diff --git a/plugins/csvn/index.py b/plugins/csvn/index.py index 03b3c118e..2ebfaa8bc 100755 --- a/plugins/csvn/index.py +++ b/plugins/csvn/index.py @@ -220,8 +220,72 @@ def userList(): return public.getJson(data) +def projectAdd(): + args = getArgs() + if not 'name' in args: + return 'project name missing' + path = getServerDir() + '/bin/svnadmin' + dest = getServerDir() + '/data/repositories/' + args['name'] + cmd = path + ' create ' + dest + data = public.execShell(cmd) + print data + if data[0] == '': + return 'ok' + return 'fail' + + +def projectDel(): + args = getArgs() + if not 'name' in args: + return 'project name missing' + + dest = getServerDir() + '/data/repositories/' + args['name'] + cmd = 'rm -rf ' + dest + data = public.execShell(cmd) + if data[0] == '': + return 'ok' + return 'fail' + + def projectList(): - return [] + import math + args = getArgs() + + path = getServerDir() + '/data/repositories' + dlist = [] + data = {} + if os.path.exists(path): + for filename in os.listdir(path): + tmp = {} + filePath = path + '/' + filename + if os.path.isdir(filePath): + tmp['name'] = filename + verPath = filePath + '/format' + if os.path.exists(verPath): + ver = public.readFile(verPath).strip() + tmp['ver'] = ver + dlist.append(tmp) + + page = 1 + page_size = 10 + if 'page' in args: + page = int(args['page']) + + if 'page_size' in args: + page_size = int(args['page_size']) + + dlist_sum = len(dlist) + page_info = {'count': dlist_sum, 'p': page, + 'row': 10, 'tojs': 'csvnProjectList'} + data['list'] = public.getPage(page_info) + data['page'] = page + data['page_size'] = page_size + data['page_count'] = int(math.ceil(dlist_sum / page_size)) + + start = (page - 1) * page_size + data['data'] = dlist[start:start + page_size] + + return public.getJson(data) if __name__ == "__main__": func = sys.argv[1] @@ -255,5 +319,9 @@ if __name__ == "__main__": print userDel() elif func == 'project_list': print projectList() + elif func == 'project_del': + print projectDel() + elif func == 'project_add': + print projectAdd() else: print 'fail' diff --git a/plugins/csvn/js/csvn.js b/plugins/csvn/js/csvn.js index d3dede832..d861b0209 100755 --- a/plugins/csvn/js/csvn.js +++ b/plugins/csvn/js/csvn.js @@ -167,25 +167,27 @@ function csvnProjectList(page){ return; } - var rdata = $.parseJSON(data.data); + var rdata = $.parseJSON($.trim(data.data)); // console.log(rdata); - content = '
'; + content = '
'; content += '
'; content += '
'; content += ''; content += ''; - content += ''; + content += ''; + content += ''; content += ''; content += ''; ulist = rdata.data; for (i in ulist){ - content += ''; + content += ''+ + ''; } content += ''; @@ -196,7 +198,93 @@ function csvnProjectList(page){ page += ''; content += page; - $(".soft-man-con").html(content); },'json'); +} + +function csvnDelProject(name){ + var loadOpen = layer.open({ + type: 1, + title: '删除用户', + area: '350px', + content:"
\ +
你要确认要删除"+ name + "账户?
\ +
\ + \ + \ +
\ +
" + }); + + $('#csvn_del_close').click(function(){ + layer.close(loadOpen); + }); + + $('#csvn_del_ok').click(function(){ + _data = {}; + _data['name'] = name; + var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 }); + $.post('/plugins/run', {name:'csvn', func:'project_del', args:JSON.stringify(_data)}, function(data) { + layer.close(loadT); + if (!data.status){ + layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']}); + return; + } + + if (data.data !='ok'){ + layer.msg(data.data,{icon:2,time:2000,shade: [0.3, '#000']}); + return; + } + + csvnProjectList(); + layer.close(loadOpen); + layer.msg("删除成功!",{icon:1,time:3000,shade: [0.3, '#000']}); + },'json'); + }); +} + +function csvnAddProject(){ + + var loadOpen = layer.open({ + type: 1, + title: '添加项目', + area: '240px', + content:"
\ +
\ +
\ +
\ +
\ + \ + \ +
\ +
" + }); + + $('#csvn_project_close').click(function(){ + layer.close(loadOpen); + }); + + $('#csvn_project_ok').click(function(){ + _data = {}; + _data['name'] = $('#csvn_name').val(); + + var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 }); + $.post('/plugins/run', {name:'csvn', func:'project_add', args:JSON.stringify(_data)}, function(data) { + layer.close(loadT); + if (!data.status){ + layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']}); + return; + } + + if (data.data !='ok'){ + layer.msg(data.data,{icon:2,time:2000,shade: [0.3, '#000']}); + return; + } + + csvnProjectList(); + layer.close(loadOpen); + layer.msg("操作成功!",{icon:1,time:3000,shade: [0.3, '#000']}); + },'json'); + }); + } \ No newline at end of file
项目名操作当前版本操作(添加)
'+ulist[i]+''+ - '删除|' + - '改密
'+ulist[i]['name']+''+ulist[i]['ver']+''+ + '删除' + + '