diff --git a/plugins/sphinx/index.html b/plugins/sphinx/index.html index 806be0ced..fd332a0d3 100755 --- a/plugins/sphinx/index.html +++ b/plugins/sphinx/index.html @@ -3,7 +3,7 @@

服务

自启动

-

配置修改

+

配置修改

运行日志

查询日志

运行状态

diff --git a/plugins/sphinx/index.py b/plugins/sphinx/index.py index 75e8a3f4a..1930eafca 100755 --- a/plugins/sphinx/index.py +++ b/plugins/sphinx/index.py @@ -62,10 +62,37 @@ def getArgs(): for i in range(len(args)): t = args[i].split(':') tmp[t[0]] = t[1] - return tmp +def checkArgs(data, ck=[]): + for i in range(len(ck)): + if not ck[i] in data: + return (False, public.returnJson(False, '参数:(' + ck[i] + ')没有!')) + return (True, public.returnJson(True, 'ok')) + + +def configTpl(): + path = getPluginDir() + '/tpl' + pathFile = os.listdir(path) + tmp = [] + for one in pathFile: + file = path + '/' + one + tmp.append(file) + return public.getJson(tmp) + + +def readConfigTpl(): + args = getArgs() + data = checkArgs(args, ['file']) + if not data[0]: + return data[1] + + content = public.readFile(args['file']) + content = contentReplace(content) + return public.returnJson(True, 'ok', content) + + def contentReplace(content): service_path = public.getServerDir() content = content.replace('{$ROOT_PATH}', public.getRootDir()) @@ -247,14 +274,13 @@ def sphinxCmd(): cmd_delta = [] for x in range(indexlen): if string.find(sindex[x], ':') != -1: - t = sindex[x].split(':') - cmd_delta.append(t[0].strip()) + cmd_delta.append(sindex[x]) else: cmd_index.append(sindex[x]) cmd['index'] = cmd_index cmd['delta'] = cmd_delta - cmd['cmd'] = bin_dir + '/bin/bin/searchd -c ' + bin_dir + '/sphinx.conf' + cmd['cmd'] = bin_dir + '/bin/bin/indexer -c ' + bin_dir + '/sphinx.conf' return public.returnJson(True, 'ok', cmd) else: @@ -283,6 +309,10 @@ if __name__ == "__main__": print initdUinstall() elif func == 'conf': print getConf() + elif func == 'config_tpl': + print configTpl() + elif func == 'read_config_tpl': + print readConfigTpl() elif func == 'run_log': print runLog() elif func == 'query_log': diff --git a/plugins/sphinx/js/sphinx.js b/plugins/sphinx/js/sphinx.js index b652ffec8..960a0b5d5 100755 --- a/plugins/sphinx/js/sphinx.js +++ b/plugins/sphinx/js/sphinx.js @@ -91,11 +91,22 @@ function readme(){ var con = ''; - console.log(rdata); + //主索引 + for (var i = 0; i < rdata['data']['index'].length; i++) { + var index_t = rdata['data']['index'][i]; + con += '

主索引:' + rdata['data']['cmd'] + ' '+ index_t +' --rotate

'; + } + + for (var i = 0; i < rdata['data']['delta'].length; i++) { + var delta_t = rdata['data']['delta'][i]; + var list = delta_t.split(':'); + console.log(list); + con += '

增量索引:' + rdata['data']['cmd'] + ' '+ list[0] +' --rotate

'; + con += '

合并索引:' + rdata['data']['cmd'] + ' --merge '+ list[1] + ' ' + list[0] +' --rotate

'; + } $(".soft-man-con").html(con); }); - } diff --git a/route/static/app/public.js b/route/static/app/public.js index d60f27c3a..520396d81 100755 --- a/route/static/app/public.js +++ b/route/static/app/public.js @@ -1336,6 +1336,125 @@ function pluginConfig(_name, version, func){ "Ctrl-F": "findPersistent", "Ctrl-H": "replaceAll", "Ctrl-S": function() { + $("#textBody").text(editor.getValue()); + pluginConfigSave(fileName); + } + }, + lineNumbers: true, + matchBrackets:true, + }); + editor.focus(); + $(".CodeMirror-scroll").css({"height":"300px","margin":0,"padding":0}); + $("#onlineEditFileBtn").click(function(){ + $("#textBody").text(editor.getValue()); + pluginConfigSave(fileName); + }); + },'json'); + },'json'); +} + + +//配置修改模版 --- start +function pluginConfigTpl(_name, version, func, config_tpl_func, read_config_tpl_func){ + if ( typeof(version) == 'undefined' ){ + version = ''; + } + + var func_name = 'conf'; + if ( typeof(func) != 'undefined' ){ + func_name = func; + } + + var _config_tpl_func = 'config_tpl'; + if ( typeof(config_tpl_func) != 'undefined' ){ + _config_tpl_func = config_tpl_func; + } + + var _read_config_tpl_func = 'read_config_tpl'; + if ( typeof(read_config_tpl_func) != 'undefined' ){ + _read_config_tpl_func = read_config_tpl_func; + } + + + var con = '

提示:Ctrl+F 搜索关键字,Ctrl+G 查找下一个,Ctrl+S 保存,Ctrl+Shift+R 查找替换!

\ + \ + \ + \ + '; + $(".soft-man-con").html(con); + + function getFileName(file){ + var list = file.split('/'); + var f = list[list.length-1]; + return f + } + + $.post('/plugins/run',{name:_name, func:_config_tpl_func,version:version}, function(data){ + var rdata = $.parseJSON(data.data); + for (var i = 0; i < rdata.length; i++) { + $('#config_tpl').append(''); + } + + $('#config_tpl').change(function(){ + var selected = $(this).val(); + if (selected != '0'){ + var loadT = layer.msg('配置模版获取中...',{icon:16,time:0,shade: [0.3, '#000']}); + + var _args = JSON.stringify({file:selected}); + $.post('/plugins/run', {name:_name, func:_read_config_tpl_func,version:version,args:_args}, function(data){ + layer.close(loadT); + var rdata = $.parseJSON(data.data); + if (!rdata.status){ + layer.msg(rdata.msg,{icon:0,time:2000,shade: [0.3, '#000']}); + return; + } + + $("#textBody").empty().text(rdata.data); + $(".CodeMirror").remove(); + var editor = CodeMirror.fromTextArea(document.getElementById("textBody"), { + extraKeys: { + "Ctrl-Space": "autocomplete", + "Ctrl-F": "findPersistent", + "Ctrl-H": "replaceAll", + "Ctrl-S": function() { + $("#textBody").text(editor.getValue()); + pluginConfigSave(fileName); + } + }, + lineNumbers: true, + matchBrackets:true, + }); + editor.focus(); + $(".CodeMirror-scroll").css({"height":"300px","margin":0,"padding":0}); + },'json'); + } + }); + + },'json'); + + var loadT = layer.msg('配置文件路径获取中...',{icon:16,time:0,shade: [0.3, '#000']}); + $.post('/plugins/run', {name:_name, func:func_name,version:version}, function (data) { + layer.close(loadT); + + var loadT2 = layer.msg('文件内容获取中...',{icon:16,time:0,shade: [0.3, '#000']}); + var fileName = data.data; + $.post('/files/get_body', 'path=' + fileName, function(rdata) { + layer.close(loadT2); + if (!rdata.status){ + layer.msg(rdata.msg,{icon:0,time:2000,shade: [0.3, '#000']}); + return; + } + $("#textBody").empty().text(rdata.data.data); + $(".CodeMirror").remove(); + var editor = CodeMirror.fromTextArea(document.getElementById("textBody"), { + extraKeys: { + "Ctrl-Space": "autocomplete", + "Ctrl-F": "findPersistent", + "Ctrl-H": "replaceAll", + "Ctrl-S": function() { + $("#textBody").text(editor.getValue()); pluginConfigSave(fileName); } }, @@ -1357,15 +1476,10 @@ function pluginConfig(_name, version, func){ function pluginConfigSave(fileName) { var data = encodeURIComponent($("#textBody").val()); var encoding = 'utf-8'; - var loadT = layer.msg('保存中...', { - icon: 16, - time: 0 - }); + var loadT = layer.msg('保存中...', {icon: 16,time: 0}); $.post('/files/save_body', 'data=' + data + '&path=' + fileName + '&encoding=' + encoding, function(rdata) { layer.close(loadT); - layer.msg(rdata.msg, { - icon: rdata.status ? 1 : 2 - }); + layer.msg(rdata.msg, {icon: rdata.status ? 1 : 2}); },'json'); }