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 += '| \ + | 数据库名 | \ +用户名 | \ +密码 | \ + '+ + // '备份 | '+ + '备注 | \ +操作 |
|---|