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