From 9ae7644710cc2595362dc79dd616167683a250c4 Mon Sep 17 00:00:00 2001 From: Mr Chen Date: Thu, 2 May 2024 19:58:58 +0800 Subject: [PATCH] updatte --- plugins/mongodb/config/mongodb.sql | 11 ++++ plugins/mongodb/index.html | 1 + plugins/mongodb/index.py | 52 ++++++++++++++- plugins/mongodb/js/mongodb.js | 102 +++++++++++++++++++++++++++++ 4 files changed, 164 insertions(+), 2 deletions(-) diff --git a/plugins/mongodb/config/mongodb.sql b/plugins/mongodb/config/mongodb.sql index 2ad30f232..a72e3217c 100644 --- a/plugins/mongodb/config/mongodb.sql +++ b/plugins/mongodb/config/mongodb.sql @@ -14,3 +14,14 @@ CREATE TABLE IF NOT EXISTS `users` ( `addtime` TEXT ); +CREATE TABLE IF NOT EXISTS `databases` ( + `id` INTEGER PRIMARY KEY AUTOINCREMENT, + `name` TEXT, + `username` TEXT, + `password` TEXT, + `accept` TEXT, + `rw` TEXT DEFAULT 'rw', + `ps` TEXT, + `addtime` TEXT +); + diff --git a/plugins/mongodb/index.html b/plugins/mongodb/index.html index 698e242e7..6a837041f 100755 --- a/plugins/mongodb/index.html +++ b/plugins/mongodb/index.html @@ -24,6 +24,7 @@

自启动

配置修改

配置文件

+

文档列表

文档状态

负载状态

复制状态

diff --git a/plugins/mongodb/index.py b/plugins/mongodb/index.py index 8b134626b..ceb28e5f7 100755 --- a/plugins/mongodb/index.py +++ b/plugins/mongodb/index.py @@ -445,6 +445,52 @@ def runReplInfo(): return mw.returnJson(True, 'OK', result) +def getDocList(): + args = getArgs() + page = 1 + page_size = 10 + search = '' + data = {} + if 'page' in args: + page = int(args['page']) + + if 'page_size' in args: + page_size = int(args['page_size']) + + if 'search' in args: + search = args['search'] + + conn = pSqliteDb('databases') + limit = str((page - 1) * page_size) + ',' + str(page_size) + condition = '' + if not search == '': + condition = "name like '%" + search + "%'" + field = 'id,name,username,password,accept,rw,ps,addtime' + clist = conn.where(condition, ()).field( + field).limit(limit).order('id desc').select() + + # for x in range(0, len(clist)): + # dbname = clist[x]['name'] + # # blist = getDbBackupListFunc(dbname) + # # # print(blist) + # clist[x]['is_backup'] = False + # if len(blist) > 0: + # clist[x]['is_backup'] = True + + count = conn.where(condition, ()).count() + _page = {} + _page['count'] = count + _page['p'] = page + _page['row'] = page_size + _page['tojs'] = 'docList' + data['page'] = mw.getPage(_page) + data['data'] = clist + + info = {} + info['root_pwd'] = pSqliteDb('config').where('id=?', (1,)).getField('mg_root') + data['info'] = info + return mw.getJson(data) + # return mw.returnJson(True,'ok',data) def testData(): ''' @@ -473,8 +519,8 @@ def test(): python3 plugins/mongodb/index.py test ''' # https://pymongo.readthedocs.io/en/stable/examples/high_availability.html - import pymongo - from pymongo import ReadPreference + # import pymongo + # from pymongo import ReadPreference # client = mongdbClient() @@ -628,6 +674,8 @@ if __name__ == "__main__": print(saveConfig()) elif func == 'set_config_auth': print(setConfigAuth()) + elif func == 'get_doc_list': + print(getDocList()) elif func == 'run_log': print(runLog()) elif func == 'test': diff --git a/plugins/mongodb/js/mongodb.js b/plugins/mongodb/js/mongodb.js index b0b43d76f..5a6553211 100644 --- a/plugins/mongodb/js/mongodb.js +++ b/plugins/mongodb/js/mongodb.js @@ -187,3 +187,105 @@ function mongoConfigSave(){ }); } +function docList(page, search){ + var _data = {}; + if (typeof(page) =='undefined'){ + var page = 1; + } + + if(typeof(search) != 'undefined'){ + _data['search'] = search; + } + + _data['page'] = page; + _data['page_size'] = 10; + console.log(_data); + mgPost('get_doc_list', '',_data, function(data){ + console.log(data); + var rdata = $.parseJSON(data.data); + console.log(rdata); + var list = ''; + for(i in rdata.data){ + list += ''; + list +=''; + list += '' + rdata.data[i]['name'] +''; + list += '' + rdata.data[i]['username'] +''; + list += '' + + '***' + + ''+ + ''+ + ''; + + + list += ''+rdata.data[i]['ps']+''; + list += ''; + + list += ''+(rdata.data[i]['is_backup']?'备份':'未备份') +' | '; + + var rw = ''; + var rw_change = 'all'; + if (typeof(rdata.data[i]['rw'])!='undefined'){ + var rw_val = '读写'; + if (rdata.data[i]['rw'] == 'all'){ + rw_val = "所有"; + rw_change = 'rw'; + } else if (rdata.data[i]['rw'] == 'rw'){ + rw_val = "读写"; + rw_change = 'r'; + } else if (rdata.data[i]['rw'] == 'r'){ + rw_val = "只读"; + rw_change = 'all'; + } + rw = ''+rw_val+' | '; + } + + + list += '工具 | ' + + '权限 | ' + + rw + + '改密 | ' + + '删除' + + ''; + list += ''; + } + + // + var con = '
\ + \ + \ + \ + \ + \ + \ + \ +
\ +
\ + \ + \ + \ + \ + \ + '+ + // ''+ + '\ + \ + \ + '+ list +'\ +
数据库名用户名密码备份备注操作
\ +
\ +
\ +
\ + 同步选中\ + 同步所有\ + 从服务器获取\ +
\ +
\ +
'; + + $(".soft-man-con").html(con); + $('#databasePage').html(rdata.page); + + readerTableChecked(); + }); +} +