function gogsPost(method,args,callback, title){ var _args = null; if (typeof(args) == 'string'){ _args = JSON.stringify(toArrayObject(args)); } else { _args = JSON.stringify(args); } var _title = '正在获取...'; if (typeof(title) != 'undefined'){ _title = title; } var loadT = layer.msg(_title, { icon: 16, time: 0, shade: 0.3 }); $.post('/plugins/run', {name:'gitea', func:method, args:_args}, function(data) { layer.close(loadT); if (!data.status){ layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']}); return; } if(typeof(callback) == 'function'){ callback(data); } },'json'); } function gogsSetConfig(){ gogsPost('get_gogs_conf', '', function(data){ var rrdata = $.parseJSON(data.data); if (!rrdata.status){ layer.msg(rrdata.msg,{icon:0,time:2000,shade: [0.3, '#000']}); return; } var rdata = rrdata.data; var mlist = ''; for (var i = 0; i < rdata.length; i++) { var w = '140'; if (rdata[i].name == 'error_reporting') w = '250'; var ibody = ''; switch (rdata[i].type) { case 0: var selected_1 = (rdata[i].value == 1) ? 'selected' : ''; var selected_0 = (rdata[i].value == 0) ? 'selected' : ''; ibody = ''; break; case 1: var selected_1 = (rdata[i].value == 'On') ? 'selected' : ''; var selected_0 = (rdata[i].value == 'Off') ? 'selected' : ''; ibody = '' break; case 2: var selected_1 = (rdata[i].value == 'true') ? 'selected' : ''; var selected_0 = (rdata[i].value == 'false') ? 'selected' : ''; ibody = '' break; } mlist += '

' + rdata[i].name + '' + ibody + ', ' + rdata[i].ps + '

' } var html = '
\ ' + mlist + '\
\ \
\
'; $(".soft-man-con").html(html); }); } //提交PHP配置 function submitGogsConf() { var data = { DOMAIN: $("input[name='DOMAIN']").val(), ROOT_URL: $("input[name='ROOT_URL']").val(), HTTP_ADDR: $("select[name='HTTP_ADDR']").val(), HTTP_PORT: $("input[name='HTTP_PORT']").val(), START_SSH_SERVER: $("select[name='START_SSH_SERVER']").val() || 'false', SSH_PORT: $("input[name='SSH_PORT']").val(), REQUIRE_SIGNIN_VIEW: $("select[name='REQUIRE_SIGNIN_VIEW']").val() || 'false', ENABLE_CAPTCHA: $("select[name='ENABLE_CAPTCHA']").val() || 'true', DISABLE_REGISTRATION: $("select[name='DISABLE_REGISTRATION']").val() || 'false', ENABLE_NOTIFY_MAIL: $("select[name='ENABLE_NOTIFY_MAIL']").val() || 'false', FORCE_PRIVATE: $("select[name='FORCE_PRIVATE']").val() || 'false', SHOW_FOOTER_BRANDING: $("select[name='SHOW_FOOTER_BRANDING']").val() || 'false', SHOW_FOOTER_VERSION: $("select[name='SHOW_FOOTER_VERSION']").val() || 'false', SHOW_FOOTER_TEMPLATE_LOAD_TIME: $("select[name='SHOW_FOOTER_TEMPLATE_LOAD_TIME']").val() || 'false', }; gogsPost('submit_gogs_conf', data, function(ret_data){ var rdata = $.parseJSON(ret_data.data); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); gogsSetConfig(); }); } function gogsEdit(){ gogsPost('gogs_edit',{} , function(data){ // console.log(data); var rdata = $.parseJSON(data.data); var edit = '

通用的手动编辑:

'; edit +='
\ \ \
'; $(".soft-man-con").html(edit); }); } function giteaUserList(page, search) { var _data = {}; if (typeof(page) =='undefined'){ var page = 1; } _data['page'] = page; _data['page_size'] = 10; if(typeof(search) != 'undefined'){ _data['search'] = search; } _data['tojs'] = 'giteaUserList'; gogsPost('user_list', _data, function(data){ var rdata = $.parseJSON(data.data); if (!rdata.status){ layer.msg(rdata.msg,{icon:0,time:2000,shade: [0.3, '#000']}); return; } content = '
'; content += '
'; content += '
'; content += ''; content += ''; content += ''; content += ''; content += ''; content += ''; content += ''; ulist = rdata['data']['data']; for (i in ulist){ email = ulist[i]["email"] == '' ? '无' : ulist[i]["email"]; content += ''+ ''+ ''+ ''+ ''; } content += ''; content += '
序号用户或组织邮件地址操作(WEB管理)
'+ulist[i]["id"]+''+ulist[i]["name"]+''+email+'项目管理
'; var page = ''; content += page; $(".soft-man-con").html(content); }); } function userProjectList(user, search){ var loadOpen = layer.open({ type: 1, title: '用户('+user+')项目列表', area: '500px', content:"
\
\
\ \ \ \
项目操作
\ \
\
\
", success:function(){ userProjectListPost(user,search); } }); } function userProjectListPost(user, search){ var req = {}; if (!isNaN(user)){ req['page'] = user; req['name'] = user = getCookie('gogsUserSelected'); } else { req['page'] = 1; req['name'] = user; setCookie('gogsUserSelected', user); } req['page_size'] = 5; req['search'] = ''; if(typeof(search) != 'undefined'){ req['search'] = search; } gogsPost('user_project_list', req, function(data){ var rdata = []; try { rdata = $.parseJSON(data.data); } catch(e){} if (!rdata['status']){ layer.msg(rdata['msg'], { icon: 2 }); return; } var list = ''; // console.log(rdata); var project_list = rdata['data']['data']; for (i in project_list) { var name = project_list[i]['name']; list += '\ '+name+'\ \ 源码 | \ 脚本\ \ '; } $('#gitea_table tbody').html(list); var page = rdata['data']['list']; $('#gitea_table .gitea_page').html(page); }); } function projectScript(user, name,has_hook){ // console.log(user,name,has_hook); var html = ''; if (has_hook){ html += ''; html += ''; html += ''; html += ''; } else { html += ''; } var loadOpen = layer.open({ type: 1, title: '['+user+']['+name+']脚本设置', area: '240px', content:'
'+html+'
', success:function(layero,index) { $('.hook_edit').click(function(){ projectScriptEdit(user,name,index); }); $('.hook_log').click(function(){ projectScriptDebug(user,name,index); }); $('.hook_load').click(function(){ projectScriptLoad(user,name,index); }); $('.hook_unload').click(function(){ projectScriptUnload(user,name,index); }); } }); } function projectScriptEdit(user,name,index){ gogsPost('project_script_edit', {'user':user,'name':name}, function(data){ var rdata = $.parseJSON(data.data); if (rdata['status']){ onlineEditFile(0, rdata['data']['path']); } else { layer.msg(rdata.msg,{icon:1,time:2000,shade: [0.3, '#000']}); } }); } function projectScriptLoad(user,name,index){ gogsPost('project_script_load', {'user':user,'name':name}, function(data){ if (data.data != 'ok'){ layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']}); return; } showMsg('加载成功!',function(){ layer.close(index); userProjectListPost(1); },{icon:1,time:2000,shade: [0.3, '#000']},2000); }); } function projectScriptUnload(user,name,index){ gogsPost('project_script_unload', {'user':user,'name':name}, function(data){ if (data.data != 'ok'){ layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']}); return; } showMsg('卸载成功!',function(){ layer.close(index); userProjectListPost(1); },{icon:1,time:2000,shade: [0.3, '#000']},2000); }); } function projectScriptDebug(user,name,index){ gogsPost('project_script_debug', {'user':user,'name':name}, function(data){ var rdata = $.parseJSON(data.data); if (rdata['status']){ onlineEditFile(0, rdata['path']); } else { showMsg(rdata.msg,function(){ },{icon:1,time:2000,shade: [0.3, '#000']},2000); } }); } function gogsRepoListPage(page, search){ var _data = {}; if (typeof(page) =='undefined'){ var page = 1; } _data['page'] = page; _data['page_size'] = 10; if(typeof(search) != 'undefined'){ _data['search'] = search; } gogsPost('repo_list', _data, function(data){ var rdata = $.parseJSON(data.data); if (!rdata.status){ layer.msg(rdata.msg,{icon:0,time:2000,shade: [0.3, '#000']}); return; } var ulist = rdata['data']['data']; var body = '' for (i in ulist){ // console.log(ulist[i]); var option = ''; if(ulist[i]['has_hook']){ option += '卸载脚本' + ' | '; option += '重载' + ' | '; option += '编辑' + ' | '; option += '日志' + ' | '; option += '手动' + ' | '; option += '自定义'; } else{ option += '加载脚本'; } body += ''+ulist[i]["id"]+''+ '' + ulist[i]["name"]+''+ '' + ulist[i]["repo"]+''+ '' + '源码' + ' | ' + option + '' + ''; } $('#repo_list tbody').html(body); $('#repo_list_page').html(rdata['data']['list']); $('.find_repo').click(function(){ var find_repo = $('#find_repo').val(); gogsRepoListPage(page, find_repo); }); $('#repo_list .load').click(function(){ var i = $(this).data('index'); var user = ulist[i]["name"]; var name = ulist[i]["repo"]; gogsPost('project_script_load', {'user':user,'name':name}, function(data){ if (data.data != 'ok'){ layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']}); return; } layer.msg('加载成功!',{icon:1,time:2000,shade: [0.3, '#000']}); setTimeout(function(){ gogsRepoListPage(page, search); }, 2000); }); }); $('#repo_list .unload').click(function(){ var i = $(this).data('index'); var user = ulist[i]["name"]; var name = ulist[i]["repo"]; gogsPost('project_script_unload', {'user':user,'name':name}, function(data){ if (data.data != 'ok'){ layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']}); return; } layer.msg('卸载成功!',{icon:1,time:2000,shade: [0.3, '#000']}); setTimeout(function(){ gogsRepoListPage(page, search); }, 2000); }); }); $('#repo_list .edit').click(function(){ var i = $(this).data('index'); var user = ulist[i]["name"]; var name = ulist[i]["repo"]; gogsPost('project_script_edit', {'user':user,'name':name}, function(data){ var rdata = $.parseJSON(data.data); if (rdata['status']){ onlineEditFile(0, rdata['data']['path']); } else { layer.msg(rdata.msg,{icon:1,time:2000,shade: [0.3, '#000']}); } }); }); $('#repo_list .debug').click(function(){ var i = $(this).data('index'); var user = ulist[i]["name"]; var name = ulist[i]["repo"]; gogsPost('project_script_debug', {'user':user,'name':name}, function(data){ var rdata = $.parseJSON(data.data); if (rdata['status']){ onlineEditFile(0, rdata['path']); } else { layer.msg(rdata.msg,{icon:1,time:2000,shade: [0.3, '#000']}); } }); }); $('#repo_list .run').click(function(){ var i = $(this).data('index'); var user = ulist[i]["name"]; var name = ulist[i]["repo"]; gogsPost('project_script_run', {'user':user,'name':name}, function(data){ var data = $.parseJSON(data.data); layer.msg(data.msg,{icon:data.status?1:2,time:2000,shade: [0.3, '#000']}); }); }); //--------- }); } function giteaRepoList() { content = '
'; content += '
'; content += '
'; content += ''; content += ''; content += ''; content += ''; content += ''; content += ''; content += ''; content += '
序号用户/组织项目名操作
'; var page = ''; content += page; $(".soft-man-con").html(content); gogsRepoListPage(1); } function projectScriptSelfRender(user, name){ gogsPost('project_script_self', {'user':user,'name':name}, function(data){ var rdata = $.parseJSON(data.data); var data = rdata['data']['data']; if (rdata['data']['self_hook']){ $('#open_script').prop('checked',true); } var body = ''; if(data.length == 0 ){ body += '无脚本数据'; } else{ for (var i = 0; i < data.length; i++) { var b_status = '已使用'; if (data[i]["is_hidden"]){ b_status = '已隐藏'; } body += ''+ '' + data[i]["name"]+''+ '' + b_status + ''+ '' + '删除' + ' | ' + '编辑' + ' | ' + '日志' + ' | ' + '手动' + ' | ' + '重命名' + ''; } } $('#gogs_self_table tbody').html(body); $('#gogs_self_table .page').html(rdata['data']['list']); $('#gogs_self_table .status').click(function(){ var i = $(this).data('index'); var file = data[i]["name"]; var status = '1'; if (data[i]["is_hidden"]){ status = '0'; } gogsPost('project_script_self_status', {'user':user,'name':name,'file':file, status:status}, function(data){ var data = $.parseJSON(data.data); showMsg(data.msg ,function(){ projectScriptSelfRender(user, name); },{icon:data.code?2:1,time:2000,shade: [0.3, '#000']},2000); }); }); $('#gogs_self_table .del').click(function(){ var i = $(this).data('index'); var file = data[i]["name"]; gogsPost('project_script_self_del', {'user':user,'name':name,'file':file}, function(data){ var data = $.parseJSON(data.data); showMsg(data.msg ,function(){ projectScriptSelfRender(user, name); },{icon:data.code?2:1,time:2000,shade: [0.3, '#000']},2000); }); }); $('#gogs_self_table .edit').click(function(){ var i = $(this).data('index'); var path = data[i]["path"]; onlineEditFile(0,path); }); $('#gogs_self_table .logs').click(function(){ var i = $(this).data('index'); var file = data[i]["name"]; gogsPost('project_script_self_logs', {'user':user,'name':name,'file':file}, function(data){ var rdata = $.parseJSON(data.data); // console.log(rdata); if (rdata['status']){ onlineEditFile(0, rdata['data']['path']); } else { layer.msg(rdata.msg,{icon:data.status?2:1,time:2000,shade: [0.3, '#000']}); } }); }); $('#gogs_self_table .run').click(function(){ var i = $(this).data('index'); var file = data[i]["name"]; if (data[i]["is_hidden"]){ layer.msg("已经禁用,不能执行!",{icon:2,time:2000,shade: [0.3, '#000']}); return; } gogsPost('project_script_self_run', {'user':user,'name':name,'file':file}, function(data){ var rdata = $.parseJSON(data.data); layer.msg(rdata.msg,{icon:data.status?1:2,time:2000,shade: [0.3, '#000']}); }); }); $('#gogs_self_table .rename').click(function(){ var i = $(this).data('index'); var file = data[i]["name"]; if (data[i]["is_hidden"]){ layer.msg("已经禁用,不能执行!",{icon:2,time:2000,shade: [0.3, '#000']}); return; } file = file.split('.sh')[0]; layer.open({ type: 1, shift: 5, closeBtn: 1, area: '320px', title: '重命名', btn:['设置','关闭'], content: '
\
\ \
\
', success:function(){ $("#newFileName").focus().keyup(function(e){ if(e.keyCode == 13) $(".layui-layer-btn0").click(); }); }, yes:function(){ var n_file = $("#newFileName").val(); var o_file = file; gogsPost('project_script_self_rename', {'user':user,'name':name,'o_file':o_file,'n_file':n_file}, function(data){ var data = $.parseJSON(data.data); showMsg(data.msg ,function(){ $(".layui-layer-btn1").click(); projectScriptSelfRender(user, name); },{icon:data.code?2:1,time:2000,shade: [0.3, '#000']},2000); }); } }); //----- }); //------ }); } //新建文件 function createScriptFile(type, user, name, file) { if (type == 1) { gogsPost('project_script_self_create', {'user':user,'name':name,'file': file }, function(data){ var rdata = $.parseJSON(data.data); if(!rdata['status']){ layer.msg(rdata.msg,{icon:2,time:2000,shade: [0.3, '#000']}); return; } showMsg(rdata.msg, function(){ $(".layui-layer-btn1").click(); onlineEditFile(0,rdata['data']['abs_file']); projectScriptSelfRender(user, name); }, {icon:1,shade: [0.3, '#000']},2000); }); return; } layer.open({ type: 1, shift: 5, closeBtn: 1, area: '320px', title: '新建自定义脚本', btn:['新建','关闭'], content: '
\
\ \
\
', success:function(){ $("#newFileName").focus().keyup(function(e){ if(e.keyCode == 13) $(".layui-layer-btn0").click(); }); }, yes:function(){ var file = $("#newFileName").val();; createScriptFile(1, user, name, file); } }); } function projectScriptSelf(user, name){ layer.open({ type: 1, title: '项目('+user+'/'+name+')自定义脚本', area: '500px', content:"
\ \
\ 开启自定义脚本\ \ \
\
\ \ \ \
脚本文件名状态操作
\ \
\
", success:function(){ projectScriptSelfRender(user, name); $('#create_script').click(function(){ createScriptFile(0, user, name); }); $('#script_hook_enable').click(function(){ var enable = $('#open_script').prop('checked'); var enable_option = '0'; if (!enable){ enable_option = '1'; } gogsPost('project_script_self_enable', {'user':user,'name':name,'enable':enable_option}, function(data){ var data = $.parseJSON(data.data); showMsg(data.msg ,function(){ projectScriptSelfRender(user, name); },{icon:data.status?1:2,shade: [0.3, '#000']},2000); }); }); } }); } function getRsaPublic(){ gogsPost('get_rsa_public', {}, function(data){ var rdata = $.parseJSON(data.data); var con = '
\
\ \
\ \
' layer.open({ type: 1, area: "600px", title: '本机公钥', closeBtn: 2, shift: 5, shadeClose: false, content:con }); }); } function giteaRead(){ var readme = ''; $('.soft-man-con').html(readme); }