mirror of https://github.com/midoks/mdserver-web
parent
18c59da28d
commit
e0c183c1ac
@ -0,0 +1,39 @@ |
||||
#!/bin/bash |
||||
|
||||
echo `date` |
||||
|
||||
GITADDR="{$GITROOTURL}/{$USERNAME}/{$PROJECT}.git" |
||||
GIT_SDIR="{$CODE_DIR}" |
||||
|
||||
GIT_USER_DIR="${GIT_SDIR}/{$USERNAME}" |
||||
GIT_PROJECT_DIR="${GIT_USER_DIR}/{$PROJECT}" |
||||
|
||||
|
||||
git config --global credential.helper store |
||||
|
||||
# echo $GIT_PROJECT_DIR |
||||
if [ ! -d $GIT_PROJECT_DIR ];then |
||||
mkdir -p $GIT_USER_DIR && cd $GIT_USER_DIR |
||||
git clone $GITADDR |
||||
fi |
||||
|
||||
unset GIT_DIR |
||||
cd $GIT_PROJECT_DIR && git pull |
||||
|
||||
# func 2 |
||||
# cd $GIT_PROJECT_DIR && env -i git pull origin master |
||||
|
||||
|
||||
#更新的目的地址 |
||||
WEB_PATH={$WEB_ROOT}/{$USERNAME}/{$PROJECT} |
||||
mkdir -p $WEB_PATH |
||||
|
||||
rsync -vauP --delete --exclude=".*" $GIT_PROJECT_DIR/ $WEB_PATH |
||||
|
||||
sysName=`uname` |
||||
if [ $sysName == 'Darwin' ]; then |
||||
USER=$(who | sed -n "2,1p" |awk '{print $1}') |
||||
chown -R $USER:staff $WEB_PATH |
||||
else |
||||
chown -R www:www $WEB_PATH |
||||
fi |
@ -0,0 +1,36 @@ |
||||
#!/bin/bash |
||||
|
||||
echo `date` |
||||
|
||||
GITADDR="{$GITROOTURL}/{$USERNAME}/{$PROJECT}" |
||||
GIT_SDIR="{$CODE_DIR}" |
||||
|
||||
GIT_USER_DIR="${GIT_SDIR}/{$USERNAME}" |
||||
GIT_PROJECT_DIR="${GIT_USER_DIR}/{$PROJECT}" |
||||
|
||||
# echo $GIT_PROJECT_DIR |
||||
if [ ! -d $GIT_PROJECT_DIR ];then |
||||
mkdir -p $GIT_USER_DIR && cd $GIT_USER_DIR |
||||
git clone $GITADDR |
||||
fi |
||||
|
||||
unset GIT_DIR |
||||
cd $GIT_PROJECT_DIR && git pull |
||||
|
||||
# func 2 |
||||
# cd $GIT_PROJECT_DIR && env -i git pull origin master |
||||
|
||||
|
||||
|
||||
WEB_PATH={$WEB_ROOT}/{$USERNAME}/{$PROJECT} |
||||
mkdir -p $WEB_PATH |
||||
|
||||
rsync -vauP --delete --exclude=".*" $GIT_PROJECT_DIR/ $WEB_PATH |
||||
|
||||
sysName=`uname` |
||||
if [ $sysName == 'Darwin' ]; then |
||||
USER=$(who | sed -n "2,1p" |awk '{print $1}') |
||||
chown -R $USER:staff $WEB_PATH |
||||
else |
||||
chown -R www:www $WEB_PATH |
||||
fi |
@ -0,0 +1,3 @@ |
||||
#!/bin/bash |
||||
|
||||
sh -x {$PATH}/commit 2>{$PATH}/sh.log |
After Width: | Height: | Size: 26 KiB |
@ -0,0 +1,24 @@ |
||||
<div class="bt-form"> |
||||
<div class="bt-w-main"> |
||||
<div class="bt-w-menu"> |
||||
<p class="bgw" onclick="pluginService('gitea');">服务</p> |
||||
<p onclick="pluginInitD('gitea');">自启动</p> |
||||
<!-- <p onclick="pluginConfig('gitea',null, 'init_conf');">启动配置</p> --> |
||||
<p onclick="gogsEdit();">手动编辑</p> |
||||
<p onclick="pluginConfig('gitea',null, 'conf');">配置文件</p> |
||||
<p onclick="gogsSetConfig();">配置修改</p> |
||||
<p onclick="giteaUserList();">用户列表</p> |
||||
<p onclick="pluginLogs('gitea',null,'run_log');">运行日志</p> |
||||
<p onclick="pluginLogs('gitea',null,'post_receive_log');" title="提交post-receive日志">提交日志</p> |
||||
<p onclick="giteaRead();">使用说明</p> |
||||
</div> |
||||
<div class="bt-w-con pd15"> |
||||
<div class="soft-man-con"></div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
<script type="text/javascript"> |
||||
$.getScript( "/plugins/file?name=gitea&f=js/gitea.js",function(){ |
||||
pluginService('gitea'); |
||||
}); |
||||
</script> |
@ -0,0 +1,16 @@ |
||||
{ |
||||
"ps": "Gitea 是一个开源社区驱动的轻量级代码托管解决方案。", |
||||
"name": "gitea", |
||||
"title": "Gitea", |
||||
"versions": ["1.17.2"], |
||||
"tip": "soft", |
||||
"checks": "server/gitea", |
||||
"path":"server/gitea", |
||||
"author": "gitea", |
||||
"date": "2022-10-03", |
||||
"home": "https://dl.gitea.io/", |
||||
"type": "Git服务器", |
||||
"shell": "install.sh", |
||||
"pid": "3", |
||||
"sort": 7 |
||||
} |
@ -0,0 +1,12 @@ |
||||
[Unit] |
||||
Description=Gogs |
||||
After=network.target |
||||
|
||||
[Service] |
||||
Type=forking |
||||
ExecStart={$SERVER_PATH}/gitea/init.d/gitea start |
||||
ExecStop={$SERVER_PATH}/gitea/init.d/gitea stop |
||||
RemainAfterExit=yes |
||||
|
||||
[Install] |
||||
WantedBy=multi-user.target |
@ -0,0 +1,110 @@ |
||||
#!/bin/sh |
||||
# |
||||
# /etc/rc.d/init.d/Gitea |
||||
# |
||||
# Runs the Gogs |
||||
# |
||||
# |
||||
# chkconfig: - 85 15 |
||||
# |
||||
|
||||
### BEGIN INIT INFO |
||||
# Provides: Gitea |
||||
# Required-Start: $remote_fs $syslog |
||||
# Required-Stop: $remote_fs $syslog |
||||
# Should-Start: mysql postgresql |
||||
# Should-Stop: mysql postgresql |
||||
# Default-Start: 2 3 4 5 |
||||
# Default-Stop: 0 1 6 |
||||
# Short-Description: Start Gitea at boot time. |
||||
# Description: Control Gitea. |
||||
### END INIT INFO |
||||
|
||||
# Source function library. |
||||
if [ -f /etc/init.d/functions ];then |
||||
. /etc/init.d/functions |
||||
fi |
||||
|
||||
if [ -f /etc/rc.d/init.d/functions ];then |
||||
. /etc/rc.d/init.d/functions |
||||
fi |
||||
|
||||
# Default values |
||||
export HOME={$HOME_DIR} |
||||
export USER={$RUN_USER} |
||||
NAME=gitea |
||||
GOGS_HOME={$SERVER_PATH}/gitea |
||||
GOGS_PATH=${GOGS_HOME}/$NAME |
||||
GOGS_USER={$RUN_USER} |
||||
SERVICENAME="gitea" |
||||
LOCKFILE=/tmp/gitea.lock |
||||
LOGPATH=${GOGS_HOME}/log |
||||
LOGFILE=${LOGPATH}/gitea.log |
||||
RETVAL=0 |
||||
|
||||
|
||||
[ -r /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME |
||||
DAEMON_OPTS="--check $NAME" |
||||
[ ! -z "$GOGS_USER" ] && DAEMON_OPTS="$DAEMON_OPTS --user=${GOGS_USER}" |
||||
|
||||
|
||||
status(){ |
||||
isStart=`ps -ef|grep 'gitea web' |grep -v grep|awk '{print $2}'` |
||||
if [ "$isStart" == '' ];then |
||||
echo -e "${SERVICENAME} not running" |
||||
else |
||||
echo -e "${SERVICENAME}(pid $(echo $isStart)) already running" |
||||
fi |
||||
} |
||||
|
||||
start() { |
||||
isStart=`ps -ef|grep 'gitea web' |grep -v grep|awk '{print $2}'` |
||||
if [ "$isStart" != '' ];then |
||||
echo "${SERVICENAME}(pid $(echo $isStart)) already running" |
||||
return $RETVAL |
||||
fi |
||||
|
||||
cd ${GOGS_HOME} |
||||
echo -e "Starting ${SERVICENAME}: \c" |
||||
${GOGS_PATH} web > ${LOGFILE} 2>&1 & |
||||
RETVAL=$? |
||||
[ $RETVAL = 0 ] && touch ${LOCKFILE} && echo -e "\033[32mdone\033[0m" |
||||
return $RETVAL |
||||
} |
||||
|
||||
stop() { |
||||
|
||||
pids=`ps -ef|grep 'gitea web' |grep -v grep|awk '{print $2}'` |
||||
arr=($pids) |
||||
echo -e "Stopping gitea... \c" |
||||
for p in ${arr[@]} |
||||
do |
||||
kill -9 $p |
||||
done |
||||
echo -e "\033[32mdone\033[0m" |
||||
} |
||||
|
||||
case "$1" in |
||||
start) |
||||
start |
||||
;; |
||||
stop) |
||||
stop |
||||
;; |
||||
status) |
||||
status |
||||
;; |
||||
restart) |
||||
stop |
||||
start |
||||
;; |
||||
reload) |
||||
stop |
||||
start |
||||
;; |
||||
*) |
||||
echo "Usage: ${NAME} {start|stop|status|restart}" |
||||
exit 1 |
||||
;; |
||||
esac |
||||
exit $RETVAL |
@ -0,0 +1,98 @@ |
||||
#!/bin/bash |
||||
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin |
||||
export PATH |
||||
|
||||
curPath=`pwd` |
||||
rootPath=$(dirname "$curPath") |
||||
rootPath=$(dirname "$rootPath") |
||||
serverPath=$(dirname "$rootPath") |
||||
|
||||
|
||||
install_tmp=${rootPath}/tmp/mw_install.pl |
||||
if [ -f ${rootPath}/bin/activate ];then |
||||
source ${rootPath}/bin/activate |
||||
fi |
||||
|
||||
|
||||
URL_DOWNLOAD=https://dl.gitea.io/ |
||||
|
||||
getOs(){ |
||||
os=`uname` |
||||
if [ "Darwin" == "$os" ];then |
||||
echo 'darwin' |
||||
else |
||||
echo 'linux' |
||||
fi |
||||
return 0 |
||||
} |
||||
|
||||
getBit(){ |
||||
echo `getconf LONG_BIT` |
||||
} |
||||
|
||||
|
||||
Install_App() |
||||
{ |
||||
mkdir -p $serverPath/source/gitea |
||||
|
||||
echo '正在安装脚本文件...' > $install_tmp |
||||
version=$1 |
||||
os=`getOs` |
||||
|
||||
git config --global push.default simple |
||||
|
||||
if [ "darwin" == "$os" ];then |
||||
file=gitea-${version}-darwin-10.12-amd64 |
||||
else |
||||
file=gitea-${version}-linux-amd64 |
||||
fi |
||||
|
||||
file_xz="${file}.xz" |
||||
echo "wget -O $serverPath/source/gitea/$file_xz ${URL_DOWNLOAD}/gitea/${version}/${file_xz}" |
||||
if [ ! -f $serverPath/source/gitea/$file_xz ];then |
||||
wget -O $serverPath/source/gitea/$file_xz ${URL_DOWNLOAD}/gitea/${version}/${file_xz} |
||||
fi |
||||
|
||||
cd $serverPath/source/gitea && xz -k -d $file_xz |
||||
if [ -f $file ];then |
||||
mkdir -p $serverPath/gitea |
||||
mv $serverPath/source/gitea/$file $serverPath/gitea/gitea |
||||
chmod +x $serverPath/gitea/gitea |
||||
fi |
||||
|
||||
if [ -d $serverPath/gitea ];then |
||||
echo $version > $serverPath/gitea/version.pl |
||||
|
||||
cd ${rootPath} && python3 plugins/gitea/index.py start |
||||
cd ${rootPath} && python3 plugins/gitea/index.py initd_install |
||||
fi |
||||
|
||||
echo 'install success' > $install_tmp |
||||
} |
||||
|
||||
Uninstall_App() |
||||
{ |
||||
|
||||
if [ -f /usr/lib/systemd/system/gitea.service ];then |
||||
systemctl stop gitea |
||||
systemctl disable gitea |
||||
rm -rf /usr/lib/systemd/system/gitea.service |
||||
systemctl daemon-reload |
||||
fi |
||||
|
||||
if [ -f $serverPath/gitea/initd/gitea ];then |
||||
$serverPath/gitea/initd/gitea stop |
||||
fi |
||||
|
||||
rm -rf $serverPath/gitea |
||||
echo 'uninstall success' > $install_tmp |
||||
} |
||||
|
||||
|
||||
action=$1 |
||||
version=$2 |
||||
if [ "${1}" == 'install' ];then |
||||
Install_App $version |
||||
else |
||||
Uninstall_App $version |
||||
fi |
@ -0,0 +1,353 @@ |
||||
|
||||
function str2Obj(str){ |
||||
var data = {}; |
||||
kv = str.split('&'); |
||||
for(i in kv){ |
||||
v = kv[i].split('='); |
||||
data[v[0]] = v[1]; |
||||
} |
||||
return data; |
||||
} |
||||
|
||||
function gogsPost(method,args,callback, title){ |
||||
|
||||
var _args = null;
|
||||
if (typeof(args) == 'string'){ |
||||
_args = JSON.stringify(str2Obj(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 = '<input style="width: ' + w + 'px;" class="bt-input-text mr5" name="' + rdata[i].name + '" value="' + rdata[i].value + '" type="text" >'; |
||||
switch (rdata[i].type) { |
||||
case 0: |
||||
var selected_1 = (rdata[i].value == 1) ? 'selected' : ''; |
||||
var selected_0 = (rdata[i].value == 0) ? 'selected' : ''; |
||||
ibody = '<select class="bt-input-text mr5" name="' + rdata[i].name + '" style="width: ' + w + 'px;">\ |
||||
<option value="1" ' + selected_1 + '>开启</option>\ |
||||
<option value="0" ' + selected_0 + '>关闭</option>\ |
||||
</select>'; |
||||
break; |
||||
case 1: |
||||
var selected_1 = (rdata[i].value == 'On') ? 'selected' : ''; |
||||
var selected_0 = (rdata[i].value == 'Off') ? 'selected' : ''; |
||||
ibody = '<select class="bt-input-text mr5" name="' + rdata[i].name + '" style="width: ' + w + 'px;">\ |
||||
<option value="On" ' + selected_1 + '>开启</option>\ |
||||
<option value="Off" ' + selected_0 + '>关闭</option></select>' |
||||
break; |
||||
case 2: |
||||
var selected_1 = (rdata[i].value == 'true') ? 'selected' : ''; |
||||
var selected_0 = (rdata[i].value == 'false') ? 'selected' : ''; |
||||
ibody = '<select class="bt-input-text mr5" name="' + rdata[i].name + '" style="width: ' + w + 'px;">\ |
||||
<option value="true" ' + selected_1 + '>开启</option>\ |
||||
<option value="false" ' + selected_0 + '>关闭</option></select>' |
||||
break; |
||||
} |
||||
mlist += '<p><span>' + rdata[i].name + '</span>' + ibody + ', <font>' + rdata[i].ps + '</font></p>' |
||||
} |
||||
var html = '<style>.conf_p p{margin-bottom: 2px}</style><div class="conf_p" style="margin-bottom:0">\ |
||||
' + mlist + '\ |
||||
<div style="margin-top:10px; padding-right:15px" class="text-right">\ |
||||
<button class="btn btn-success btn-sm mr5" onclick="gogsSetConfig()">刷新</button>\ |
||||
<button class="btn btn-success btn-sm" onclick="submitGogsConf()">保存</button></div>\ |
||||
</div>'; |
||||
$(".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 = '<p class="status">通用的手动编辑:</p>'; |
||||
edit +='<div class="sfm-opt">\ |
||||
<button class="btn btn-default btn-sm" onclick="onlineEditFile(0,\''+rdata['post_receive']+'\');">post-receive.tpl</button>\ |
||||
<button class="btn btn-default btn-sm" onclick="onlineEditFile(0,\''+rdata['commit']+'\');">commit.tpl</button>\ |
||||
</div>'; |
||||
$(".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 = '<div class="finduser"><input class="bt-input-text mr5 outline_no" type="text" placeholder="查找用户名" id="find_user" style="height: 28px; border-radius: 3px;width: 435px;">'; |
||||
content += '<button class="btn btn-success btn-sm" onclick="userFind();">查找</button></div>'; |
||||
|
||||
content += '<div class="divtable" style="margin-top:5px;"><table class="table table-hover" width="100%" cellspacing="0" cellpadding="0" border="0">'; |
||||
content += '<thead><tr>'; |
||||
content += '<th>序号</th>'; |
||||
content += '<th>用户或组织</th>'; |
||||
content += '<th>邮件地址</th>'; |
||||
content += '<th>操作(<a href="'+rdata['data']['root_url']+'" class="btlink" target="_blank">WEB管理</a>)</th>'; |
||||
content += '</tr></thead>'; |
||||
|
||||
content += '<tbody>'; |
||||
|
||||
ulist = rdata['data']['data']; |
||||
for (i in ulist){ |
||||
email = ulist[i]["email"] == '' ? '无' : ulist[i]["email"]; |
||||
content += '<tr><td>'+ulist[i]["id"]+'</td>'+ |
||||
'<td>'+ulist[i]["name"]+'</td>'+ |
||||
'<td>'+email+'</td>'+ |
||||
'<td><a class="btlink" onclick="userProjectList(\''+ulist[i]["name"]+'\')">项目管理</a></td>'+ |
||||
'</tr>'; |
||||
} |
||||
|
||||
content += '</tbody>'; |
||||
content += '</table></div>'; |
||||
|
||||
var page = '<div class="dataTables_paginate paging_bootstrap pagination" style="margin-top:0px;"><ul id="softPage" class="page"><div>'; |
||||
page += rdata['data']['list']; |
||||
page += '</div></ul></div>'; |
||||
|
||||
content += page; |
||||
|
||||
$(".soft-man-con").html(content); |
||||
}); |
||||
} |
||||
|
||||
function userProjectList(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; |
||||
} |
||||
|
||||
$('.layui-layer-close1').click(); |
||||
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 += '<tr><td>'+name+'</td>\ |
||||
<td>\ |
||||
<a class="btlink" target="_blank" href="'+rdata['data']['root_url']+user+'/'+name+'">源码</a> | \ |
||||
<a class="btlink" onclick="projectScript(\''+user+'\',\''+name+'\','+project_list[i]['has_hook']+');">脚本</a>\ |
||||
</td>\ |
||||
</tr>'; |
||||
} |
||||
|
||||
var page = '<div class="dataTables_paginate paging_bootstrap pagination" style="margin-top:0px;"><ul id="softPage" class="page"><div>'; |
||||
page += rdata['data']['list']; |
||||
page += '</div></ul></div>'; |
||||
|
||||
var loadOpen = layer.open({ |
||||
type: 1, |
||||
title: '用户('+user+')项目列表', |
||||
area: '500px', |
||||
content:"<div class='bt-form pd20 c6'>\ |
||||
<div>\ |
||||
<div class='divtable' style='margin-top:5px;'>\ |
||||
<table class='table table-hover'>\ |
||||
<thead><tr><th>项目</th><th>操作</th></tr></thead>\ |
||||
<tbody>" + list + "</tbody>\ |
||||
</table>" + |
||||
page + |
||||
"</div></div></div>" |
||||
}); |
||||
}); |
||||
} |
||||
|
||||
|
||||
function projectScript(user, name,has_hook){ |
||||
// console.log(user,name,has_hook);
|
||||
var html = ''; |
||||
if (has_hook){ |
||||
html += '<button onclick="projectScriptEdit(\''+user+'\',\''+name+'\')" class="btn btn-default btn-sm">手动编辑</button>'; |
||||
html += '<button onclick="projectScriptDebug(\''+user+'\',\''+name+'\')" class="btn btn-default btn-sm">调试日志</button>'; |
||||
html += '<button onclick="projectScriptLoad(\''+user+'\',\''+name+'\')" class="btn btn-default btn-sm">重新加载</button>'; |
||||
html += '<button onclick="projectScriptUnload(\''+user+'\',\''+name+'\')" class="btn btn-default btn-sm">卸载脚本</button>'; |
||||
} else { |
||||
html += '<button onclick="projectScriptLoad(\''+user+'\',\''+name+'\')" class="btn btn-default btn-sm">加载脚本</button>'; |
||||
} |
||||
|
||||
var loadOpen = layer.open({ |
||||
type: 1, |
||||
title: '['+user+']['+name+']脚本设置', |
||||
area: '240px', |
||||
content:'<div class="change-default pd20">'+html+'</div>' |
||||
}); |
||||
} |
||||
|
||||
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(){ |
||||
userProjectList(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(){ |
||||
userProjectList(1); |
||||
}, 2000); |
||||
}); |
||||
}
|
||||
|
||||
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 = '<div class="tab-con">\ |
||||
<div class="myKeyCon ptb15">\ |
||||
<textarea style="margin:0px;width:580px;height:110px;outline:none;" spellcheck="false">'+rdata.mw+'</textarea>\ |
||||
</div>\ |
||||
<ul class="help-info-text c7 pull-left"></ul>\ |
||||
</div>' |
||||
layer.open({ |
||||
type: 1, |
||||
area: "600px", |
||||
title: '本机公钥', |
||||
closeBtn: 2, |
||||
shift: 5, |
||||
shadeClose: false, |
||||
content:con |
||||
});
|
||||
}); |
||||
} |
||||
|
||||
function giteaRead(){ |
||||
|
||||
var readme = '<ul class="help-info-text c7">'; |
||||
readme += '<li>默认使用MySQL,第一个启动加载各种配置,并修改成正确的数据库配置</li>'; |
||||
readme += '<li>邮件端口使用456,gogs仅支持使用STARTTLS的SMTP协议</li>'; |
||||
readme += '<li>如果使用项目中脚本本地同步,<a target="_blank" href="https://github.com/midoks/mdserver-web/wiki/%E6%8F%92%E4%BB%B6%E7%AE%A1%E7%90%86%5Bgogs%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E%5D#%E5%90%AF%E5%8A%A8gogs%E5%90%8E%E5%A6%82%E6%9E%9C%E8%A6%81%E4%BD%BF%E7%94%A8hook%E8%84%9A%E6%9C%AC%E5%90%8C%E6%AD%A5%E4%BB%A3%E7%A0%81%E9%9C%80%E8%A6%81%E5%BC%80%E5%90%AFssh%E7%AB%AF%E5%8F%A3">点击查看</></li>'; |
||||
readme += '<li><a href="#" onclick="getRsaPublic();">点击查看本机公钥</></li>'; |
||||
readme += '</ul>'; |
||||
|
||||
$('.soft-man-con').html(readme);
|
||||
} |
Loading…
Reference in new issue