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:'gogs', 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 gogsUserList(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('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){ var email = ulist[i]["email"] == '' ? '无' : ulist[i]["email"]; var user_url = rdata['data']['root_url'] + ulist[i]["name"]; content += ''+ ''+ ''+ ''+ ''; } content += ''; content += '
序号用户或组织邮件地址操作(WEB管理)
'+ulist[i]["id"]+''+ulist[i]["name"]+''+email+'项目管理
'; var page = ''; content += page; $(".soft-man-con").html(content); }); } function userProjectList(user, search){ layer.open({ type: 1, title: '用户('+user+')项目列表', area: '500px', content:"
\
\
\ \ \ \
项目操作
\ \
\
\
", success:function(){ userProjectListPage(user,search); } }); } function userProjectList2(user, search){ layer.open({ type: 1, title: '用户('+user+')项目列表', area: '500px', content:"
\
\
\ \ \ \
项目操作
\ \
\
\
", success:function(){ userProjectListPage(user,search); } }); } function userProjectListPage(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+'\ \ 源码 | \ 脚本\ \ '; } $('#gogs_table tbody').html(list); var page = rdata['data']['list']; $('#gogs_table .gogs_page').html(page); }); } 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']); $('#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.code?2:1,time:2000,shade: [0.3, '#000']}); }); }); //--------- }); } function gogsRepoList() { content = '
'; content += '
'; content += '
'; content += ''; content += ''; content += ''; content += ''; content += ''; content += ''; content += ''; content += '
序号用户/组织项目名操作
'; var page = ''; content += page; $(".soft-man-con").html(content); gogsRepoListPage(1); } 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+'
' }); } function projectScriptEdit(user,name){ 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){ 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(1); }, 2000); }); } function projectScriptUnload(user,name){ 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(1); }, 2000); }); } function projectScriptRun(user, name){ gogsPost('project_script_run', {'user':user,'name':name}, function(data){ var data = $.parseJSON(data.data); layer.msg(data.msg,{icon:data.code?2:1,time:2000,shade: [0.3, '#000']}); }); } function projectScriptDebug(user,name){ 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']}); } }); } 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 gogsRead(){ var readme = ''; $('.soft-man-con').html(readme); }