diff --git a/plugins/gogs/index.py b/plugins/gogs/index.py
index 88a27683a..bd5e8f112 100755
--- a/plugins/gogs/index.py
+++ b/plugins/gogs/index.py
@@ -727,6 +727,27 @@ def projectScriptDebug():
return mw.getJson(data)
+def projectScriptRun():
+ args = getArgs()
+ data = checkArgs(args, ['user', 'name'])
+ if not data[0]:
+ return data[1]
+
+ user = args['user']
+ name = args['name'] + '.git'
+
+ path = getRootPath() + '/' + user + '/' + name
+ commit_sh = path + '/custom_hooks/commit'
+ commit_log = path + '/custom_hooks/sh.log'
+ script_run = 'sh -x ' + commit_sh + ' 2>' + commit_log
+
+ if not os.path.exists(commit_sh):
+ return mw.returnJson(False, '脚本文件不存在!')
+
+ mw.execShell(script_run)
+ return mw.returnJson(True, '脚本文件执行成功,观察日志!')
+
+
def gogsEdit():
data = {}
data['post_receive'] = getPluginDir() + '/hook/post-receive.tpl'
@@ -805,6 +826,8 @@ if __name__ == "__main__":
print(projectScriptUnload())
elif func == 'project_script_debug':
print(projectScriptDebug())
+ elif func == 'project_script_run':
+ print(projectScriptRun())
elif func == 'gogs_edit':
print(gogsEdit())
elif func == 'get_rsa_public':
diff --git a/plugins/gogs/js/gogs.js b/plugins/gogs/js/gogs.js
index 44bd9db9d..7a80525e3 100755
--- a/plugins/gogs/js/gogs.js
+++ b/plugins/gogs/js/gogs.js
@@ -152,11 +152,13 @@ function gogsUserList(page, search) {
ulist = rdata['data']['data'];
for (i in ulist){
- email = ulist[i]["email"] == '' ? '无' : ulist[i]["email"];
+
+ var email = ulist[i]["email"] == '' ? '无' : ulist[i]["email"];
+ var user_url = rdata['data']['root_url'] + ulist[i]["name"];
content += '
| '+ulist[i]["id"]+' | '+
''+ulist[i]["name"]+' | '+
''+email+' | '+
- '项目管理 | '+
+ '项目管理 | '+
'
';
}
@@ -197,6 +199,30 @@ function userProjectList(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 = {};
@@ -271,22 +297,126 @@ function gogsRepoListPage(page, search){
var ulist = rdata['data']['data'];
var body = ''
for (i in ulist){
- console.log(ulist[i]);
+ // 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 += '
';
@@ -353,7 +483,7 @@ function projectScriptLoad(user,name){
layer.msg('加载成功!',{icon:1,time:2000,shade: [0.3, '#000']});
setTimeout(function(){
- userProjectListPage(1);
+ gogsRepoListPage(1);
}, 2000);
});
}
@@ -367,11 +497,18 @@ function projectScriptUnload(user,name){
layer.msg('卸载成功!',{icon:1,time:2000,shade: [0.3, '#000']});
setTimeout(function(){
- userProjectListPage(1);
+ 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);