From 91802b3cd6428fbfc7783bba0262009262f2de39 Mon Sep 17 00:00:00 2001 From: Aidaho Date: Tue, 3 Dec 2024 15:28:55 +0300 Subject: [PATCH] v8.1.3: Add dark theme support and update HAProxy management. Introduce a dark theme for the web interface, enabling users to switch between themes seamlessly. Additionally, enhance HAProxy management by updating available versions and streamlining API routes for list management, ensuring smoother operations and integration. --- app/api/routes/routes.py | 3 + app/create_db.py | 2 +- app/modules/common/common_classes.py | 4 +- app/modules/config/add.py | 20 +- app/modules/roxywi/class_models.py | 9 + app/modules/roxywi/nettools.py | 2 +- app/modules/service/installation.py | 2 +- app/routes/add/routes.py | 44 +-- app/routes/main/routes.py | 4 +- app/static/css/dark.css | 85 ++++++ app/static/css/styles.css | 11 +- app/static/images/HAProxy_icon_white.png | Bin 0 -> 14086 bytes app/static/images/NGINX_icon_white.png | Bin 0 -> 5656 bytes app/static/images/keepalived_icon_white.png | Bin 0 -> 4600 bytes app/static/images/logo_menu_white.png | Bin 0 -> 8333 bytes app/static/images/logo_white.png | Bin 0 -> 73894 bytes app/static/images/roxy_icon_white.png | Bin 0 -> 29536 bytes app/static/js/add.js | 115 ++++---- app/static/js/overview.js | 24 +- app/static/js/script.js | 56 +++- app/templates/base.html | 12 +- app/templates/include/main_menu.html | 11 +- app/templates/install.html | 4 +- app/templates/languages/en.html | 3 + app/templates/languages/fr.html | 3 + app/templates/languages/pt-br.html | 3 + app/templates/languages/ru.html | 3 + app/templates/login.html | 18 +- app/templates/runtimeapi.html | 10 +- app/templates/service.html | 1 + app/views/service/haproxy_lists_views.py | 302 ++++++++++++++++++++ 31 files changed, 582 insertions(+), 169 deletions(-) create mode 100644 app/static/css/dark.css create mode 100644 app/static/images/HAProxy_icon_white.png create mode 100644 app/static/images/NGINX_icon_white.png create mode 100644 app/static/images/keepalived_icon_white.png create mode 100644 app/static/images/logo_menu_white.png create mode 100644 app/static/images/logo_white.png create mode 100644 app/static/images/roxy_icon_white.png create mode 100644 app/views/service/haproxy_lists_views.py diff --git a/app/api/routes/routes.py b/app/api/routes/routes.py index c085dfe9..f5326783 100644 --- a/app/api/routes/routes.py +++ b/app/api/routes/routes.py @@ -13,6 +13,7 @@ from app.views.service.views import (ServiceView, ServiceActionView, ServiceBack from app.views.service.haproxy_section_views import ListenSectionView, UserListSectionView, PeersSectionView, \ GlobalSectionView, DefaultsSectionView from app.views.service.lets_encrypt_views import LetsEncryptsView, LetsEncryptView +from app.views.service.haproxy_lists_views import HaproxyListView from app.views.ha.views import HAView, HAVIPView, HAVIPsView from app.views.user.views import UserView, UserGroupView, UserRoles from app.views.udp.views import UDPListener, UDPListeners, UDPListenerActionView @@ -75,6 +76,8 @@ register_api_id_ip(PeersSectionView, 'haproxy_peers_post', '/section/peers', met register_api_id_ip(PeersSectionView, 'haproxy_peers', '/section/peers/', methods=['GET', 'PUT', 'DELETE']) register_api_id_ip(GlobalSectionView, 'haproxy_global', '/section/global', methods=['GET', 'PUT']) register_api_id_ip(DefaultsSectionView, 'haproxy_defaults', '/section/defaults', methods=['GET', 'PUT']) +bp.add_url_rule('/service//list//', view_func=HaproxyListView.as_view('list_get'), methods=['GET']) +bp.add_url_rule('/service//list', view_func=HaproxyListView.as_view('list_post'), methods=['POST', 'PUT', 'DELETE']) bp.add_url_rule('/service///config/list', view_func=ServiceConfigList.as_view('config_list_ip'), methods=['GET']) bp.add_url_rule('/service///config/list', view_func=ServiceConfigList.as_view('config_list'), methods=['GET']) register_api_id_ip(CheckerView, 'checker', '/tools') diff --git a/app/create_db.py b/app/create_db.py index b4e84313..d25403c2 100644 --- a/app/create_db.py +++ b/app/create_db.py @@ -692,7 +692,7 @@ def update_db_v_8_1_2(): def update_ver(): try: - Version.update(version='8.1.2').execute() + Version.update(version='8.1.3').execute() except Exception: print('Cannot update version') diff --git a/app/modules/common/common_classes.py b/app/modules/common/common_classes.py index 785f4431..49fc1fa8 100644 --- a/app/modules/common/common_classes.py +++ b/app/modules/common/common_classes.py @@ -4,7 +4,7 @@ from flask import g import app.modules.db.server as server_sql import app.modules.roxywi.common as roxywi_common -from app.modules.roxywi.class_models import ServerRequest, GroupQuery, CredRequest, ChannelRequest +from app.modules.roxywi.class_models import ServerRequest, GroupQuery, CredRequest, ChannelRequest, ListRequest from app.middleware import get_user_params @@ -36,7 +36,7 @@ class SupportClass: @staticmethod @get_user_params() - def return_group_id(body: Union[ServerRequest, CredRequest, GroupQuery, ChannelRequest]): + def return_group_id(body: Union[ServerRequest, CredRequest, GroupQuery, ChannelRequest, ListRequest]): if body.group_id: if g.user_params['role'] == 1: return body.group_id diff --git a/app/modules/config/add.py b/app/modules/config/add.py index 5194434c..9836f4a6 100644 --- a/app/modules/config/add.py +++ b/app/modules/config/add.py @@ -86,26 +86,19 @@ def save_bwlist(list_name: str, list_con: str, color: str, group: str, server_ip lib_path = get_config.get_config_var('main', 'lib_path') list_path = f"{lib_path}/lists/{group}/{color}/{list_name}" path = sql.get_setting('haproxy_dir') + "/" + color - servers = [] + servers = [server_ip] output = '' try: with open(list_path, "w") as file: file.write(list_con) except IOError as e: - return f'error: Cannot save {color} list. {e}' + raise Exception(f'Cannot save {color} list: {e}') - if server_ip != 'all': - servers.append(server_ip) - - masters = server_sql.is_master(server_ip) - for master in masters: - if master[0] is not None: - servers.append(master[0]) - else: - server = roxywi_common.get_dick_permit() - for s in server: - servers.append(s[2]) + masters = server_sql.is_master(server_ip) + for master in masters: + if master[0] is not None: + servers.append(master[0]) for serv in servers: server_mod.ssh_command(serv, f"sudo mkdir {path}") @@ -113,6 +106,7 @@ def save_bwlist(list_name: str, list_con: str, color: str, group: str, server_ip try: config_mod.upload(serv, f'{path}/{list_name}', list_path) except Exception as e: + roxywi_common.logging(serv, f'error: Upload fail: to {serv}: {e}', roxywi=1, login=1) output += f'error: Upload fail: to {serv}: {e} , ' output += f'success: Edited {color} list was uploaded to {serv} , ' diff --git a/app/modules/roxywi/class_models.py b/app/modules/roxywi/class_models.py index 9983bbdc..ec419c66 100644 --- a/app/modules/roxywi/class_models.py +++ b/app/modules/roxywi/class_models.py @@ -517,3 +517,12 @@ class NettoolsRequest(BaseModel): record_type: Optional[Literal['a', 'aaaa', 'caa', 'cname', 'mx', 'ns', 'ptr', 'sao', 'src', 'txt']] = None ip: Optional[IPvAnyAddress] = None netmask: Optional[int] = None + + +class ListRequest(BaseModel): + server_ip: Optional[Union[IPvAnyAddress, DomainName]] = None + color: Literal['white', 'black'] + name: EscapedString + action: Optional[Literal['reload', 'restart', 'save']] = None + content: Optional[str] = '' + group_id: Optional[int] = None diff --git a/app/modules/roxywi/nettools.py b/app/modules/roxywi/nettools.py index 311d04eb..f1ddbe68 100644 --- a/app/modules/roxywi/nettools.py +++ b/app/modules/roxywi/nettools.py @@ -47,7 +47,7 @@ def ping_from_server(server_from: str, server_to: str, action: str) -> Response: return Response(stream_with_context(paint_output(ssh_generator.generate(action_for_sending))), mimetype='text/html') -def telnet_from_server(server_from: str, server_to: str, port_to: str) -> str: +def telnet_from_server(server_from: str, server_to: str, port_to: int) -> str: count_string = 0 stderr = '' output1 = '' diff --git a/app/modules/service/installation.py b/app/modules/service/installation.py index 9f714d72..16638e3a 100644 --- a/app/modules/service/installation.py +++ b/app/modules/service/installation.py @@ -127,7 +127,7 @@ def generate_haproxy_inv(json_data: ServiceInstall, installed_service: str) -> o stats_password = sql.get_setting('haproxy_stats_password') haproxy_dir = sql.get_setting('haproxy_dir') container_name = sql.get_setting('haproxy_container_name') - haproxy_ver = '2.9.6-1' + haproxy_ver = '3.1.0-1' is_docker = json_data['services']['haproxy']['docker'] for v in json_data['servers']: diff --git a/app/routes/add/routes.py b/app/routes/add/routes.py index 4b0a5b88..51dccdcf 100644 --- a/app/routes/add/routes.py +++ b/app/routes/add/routes.py @@ -18,6 +18,7 @@ import app.modules.roxywi.common as roxywi_common import app.modules.roxy_wi_tools as roxy_wi_tools from app.views.service.haproxy_section_views import (GlobalSectionView, DefaultsSectionView, ListenSectionView, UserListSectionView, PeersSectionView) +from app.views.service.haproxy_lists_views import HaproxyListView from app.modules.roxywi.class_models import DomainName get_config = roxy_wi_tools.GetConfigVar() @@ -38,6 +39,8 @@ register_api_id_ip(PeersSectionView, 'haproxy_peers_post_a', '/section/peers', m register_api_id_ip(PeersSectionView, 'haproxy_peers_a', '/section/peers/', methods=['GET', 'PUT', 'DELETE']) register_api_id_ip(GlobalSectionView, 'haproxy_global_a', '/section/global', methods=['GET', 'PUT']) register_api_id_ip(DefaultsSectionView, 'haproxy_defaults_a', '/section/defaults', methods=['GET', 'PUT']) +bp.add_url_rule('//list//', view_func=HaproxyListView.as_view('list_get'), methods=['GET']) +bp.add_url_rule('//list', view_func=HaproxyListView.as_view('list_post'), methods=['POST', 'DELETE']) @bp.before_request @@ -101,47 +104,6 @@ def get_section_html(): return render_template('ajax/config_show_add_sections.html', lang=lang) -@bp.post('/haproxy/bwlist/create') -@get_user_params() -def create_bwlist(): - server_ip = common.is_ip_or_dns(request.form.get('serv')) - color = common.checkAjaxInput(request.form.get('color')) - group = g.user_params['group_id'] - list_name = common.checkAjaxInput(request.form.get('bwlists_create')) - - return add_mod.create_bwlist(server_ip, list_name, color, group) - - -@bp.post('/haproxy/bwlist/save') -@get_user_params() -def save_bwlist(): - server_ip = common.is_ip_or_dns(request.form.get('serv')) - color = common.checkAjaxInput(request.form.get('color')) - group = g.user_params['group_id'] - bwlists_save = common.checkAjaxInput(request.form.get('bwlists_save')) - list_con = request.form.get('bwlists_content') - action = common.checkAjaxInput(request.form.get('bwlists_restart')) - - return add_mod.save_bwlist(bwlists_save, list_con, color, group, server_ip, action) - - -@bp.route('/haproxy/bwlist/delete////') -@validate() -def delete_bwlist(server_ip: Union[IPvAnyAddress, DomainName], color, name, group): - color = common.checkAjaxInput(color) - list_name = common.checkAjaxInput(name) - - return add_mod.delete_bwlist(list_name, color, group, str(server_ip)) - - -@bp.route('/haproxy/bwlist///') -def get_bwlist(bwlists, color, group): - color = common.checkAjaxInput(color) - bwlists = common.checkAjaxInput(bwlists) - - return add_mod.get_bwlist(color, group, bwlists) - - @bp.route('/haproxy/bwlists//') def get_bwlists(color, group): color = common.checkAjaxInput(color) diff --git a/app/routes/main/routes.py b/app/routes/main/routes.py index 40287546..fd81056e 100644 --- a/app/routes/main/routes.py +++ b/app/routes/main/routes.py @@ -199,7 +199,7 @@ def nettools_check(check, body: NettoolsRequest): @jwt_required() @get_user_params() @validate() -def service_history(service: str, server_ip: Union[IPvAnyAddress, DomainName]): +def service_history(service: str, server_ip: Union[IPvAnyAddress, DomainName, int]): history = '' server_ip = str(server_ip) @@ -217,7 +217,7 @@ def service_history(service: str, server_ip: Union[IPvAnyAddress, DomainName]): server_id = server_sql.get_server_by_ip(server_ip).server_id history = history_sql.select_action_history_by_server_id(server_id) elif service == 'user': - history = history_sql.select_action_history_by_user_id(server_ip) + history = history_sql.select_action_history_by_user_id(int(server_ip)) else: abort(404, 'History not found') diff --git a/app/static/css/dark.css b/app/static/css/dark.css new file mode 100644 index 00000000..5d845300 --- /dev/null +++ b/app/static/css/dark.css @@ -0,0 +1,85 @@ +body, .container, .footer { + background-color: #171717 !important; + color: #F0F0F0 !important; +} +h2 { + color: #F0F0F0; +} +h3 { + background: #b2b2b2; + color: #F0F0F0; +} +.menu a, .v_menu a, .top-menu { + background-color: #1b1b1b !important; + color: #f0f0f0 !important; +} +.menu a:hover { + background: #1f1f1f !important; + color: #f0f0f0 !important; + border-left: none; +} +.overview-wi .overviewHead, .overviewHead { + background-color: #686868 !important; +} +.odd { + background-color: #171717 !important; +} +.even { + background-color: #1f1f1f !important; +} +.menu a { + background-color: #1b1b1b !important; + color: #f0f0f0 !important; +} +.addName { + background-color: #171717; +} +.addButton:hover { + background-color: #171717 !important; +} +.alert-info { + color: #f0f0f0 !important; +} +.form-login { + background-color: #1b1b1b !important; +} +#enter { + color: #F0F0F0; + background-color: #171717 !important; +} +.ui-widget-header { + background-color: #797878 !important; +} +.ui-tabs .ui-tabs-panel { + background-color: #171717 !important; +} +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { + color: #F0F0EF; +} +.ui-dialog .ui-dialog-title { + color: #f0f0f0; +} +.ui-dialog .ui-dialog-content, .ui-widget-content { + background-color: #1f1f1f !important; +} +.ui-widget-header { + border: 1px solid #1f1f1f; +} +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited, a.ui-button, a:link.ui-button, a:visited.ui-button, .ui-button { + color: #f0f0f0; +} +.ui-state-active { + background-color: #797878 !important; + border: none; +} +.ui-widget-content { + color: #f0f0f0 !important; +} +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default, .ui-button, html .ui-button.ui-state-disabled:hover, html .ui-button.ui-state-disabled:active { + border: 1px solid #797878 !important; + background: #1f1f1f !important; + color: #f0f0f0 !important; +} +.ui-menu, .ui-menu-item { + background: #797878 !important; +} \ No newline at end of file diff --git a/app/static/css/styles.css b/app/static/css/styles.css index d9a8e917..d59b9ad2 100644 --- a/app/static/css/styles.css +++ b/app/static/css/styles.css @@ -571,7 +571,7 @@ ul{ border-bottom: 1px solid var(--color-secondary); } .form-login { - background-color: var(--color-gray) !important; + background-color: var(--color-gray); padding: 10px 10px 10px 30px; width: 220px; background-size: 0 !important; @@ -1379,3 +1379,12 @@ label { background-color: #f5f5f5; border: 1px solid #ccc; } +#enter { + width: 220px; + padding: 10px; + background-color: var(--background); + font-weight: bold; + color: var(--color-wanring); + border: 1px solid var(--color-wanring); + border-radius: var(--border-radius); +} diff --git a/app/static/images/HAProxy_icon_white.png b/app/static/images/HAProxy_icon_white.png new file mode 100644 index 0000000000000000000000000000000000000000..227cdec261ad5d1d15c9d01b8c9b87f349620dfc GIT binary patch literal 14086 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 H?Ek+2Q2n#0 literal 0 HcmV?d00001 diff --git a/app/static/images/NGINX_icon_white.png b/app/static/images/NGINX_icon_white.png new file mode 100644 index 0000000000000000000000000000000000000000..6cf56572741964068ffb9dd01500b7883ece1c4e GIT binary patch literal 5656 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 literal 0 HcmV?d00001 diff --git a/app/static/images/keepalived_icon_white.png b/app/static/images/keepalived_icon_white.png new file mode 100644 index 0000000000000000000000000000000000000000..062755ba3eade196b6814e10359cb05a163abf69 GIT binary patch literal 4600 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 literal 0 HcmV?d00001 diff --git a/app/static/images/logo_white.png b/app/static/images/logo_white.png new file mode 100644 index 0000000000000000000000000000000000000000..8b9080ad3b2691e792349f80927905625120e3a6 GIT binary patch literal 73894 zcmce-WmFsA7cLyE6k4E2ic4`RR@~h^xE8kn#T|;fyIb)RiX}Ld;uhSk6nA%M-~8Tn z@Av)z3B>(_*`t>US0I4Rd-3`%! z;ViF@II_|F_eb(B6Y~TBr~nGm5?bDQ$7}H(K%tB}GrM`LpKyRp5RI)+Nbu|B1XC(x zD&(x!$I$>mWPh5U#J|~*g-`;NjK~=?zpGYN!%A5X0_G3r2)$6C$*|>dj9q%B0T1p56>}27zF+_~bukss57* z|KyE~%=s(d2ynB{l*~v^-hX&U;nj}CvwKG-QV>}tS|wJ&*U=vq_eFJh*YePS_4cZs zk|!@H4M*}I5^`;ZDsKkgx1Ox@ z7u&UBF*t^%;jEtD!B%IBtDXeq&ggO0e7Tu)70G(@DE?X;jUR&td!_ucM(yGrXblt{ z21xD87SWxQu)OZct8y%iG|LMXqOE3~eTBnQ@)R=}wLHbV`A4>pYwF4)UPIH*hT}*? zA#y9Iq|HkvN*&Kn}6lCY1LG&9r$G5(r4~8 zfX7$kc1n(;7?^hsyiNE{{*;ZklX2L&-4ic|m6@fs|Lu1~9$6&K-;qRgwoa+r8g{qB z?Od;DB^R&l#vhf%mz&Z*>MCUQ><#EoxgT5{8gACH2`Co5XPvX}1C}t?v*dJn`S;e( zC%1bPOeCmwFRsYWY!a?4A;3Z_^XVT>MG=Og-=YLaZ)i~ob zJlpunLeUaXGT7?+!E+|Qc~&*Y>9q4`#hg;dzWJnb(-Y)=^)gbJ;)n9JrWb`lyhr7p zTQ#vDDxy?gdn*_pkD{#^P4sd4$EPIk#XPsd#FzH3m3M)%XSNiyNi4OgW0gj(!47Jb zn|QDJ_N;y-wv4s{IdO8yC|aazpk5z#ll{-T!tFk1PG8a6BzTPUMpTFG{aN7V=-wT3 z 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�_G#;!4+rg>q5Wc6Ct`m8b2@?S~$JX*_vunRf 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 J4X8ZP_iWCOIYV6cR28$ffM?;x&LDXU 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 F|3CSe0cHRI literal 0 HcmV?d00001 diff --git a/app/static/images/roxy_icon_white.png b/app/static/images/roxy_icon_white.png new file mode 100644 index 0000000000000000000000000000000000000000..693420adbcb10c962b3d4a2eebf3d7e4876c0cd3 GIT binary patch literal 29536 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

>~kcUmUDc1?6Tj(kou!fhUZeK7RbDu1P%s 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 literal 0 HcmV?d00001 diff --git a/app/static/js/add.js b/app/static/js/add.js index ca4ec044..6eec8932 100644 --- a/app/static/js/add.js +++ b/app/static/js/add.js @@ -839,7 +839,7 @@ function resetProxySettings() { $('.advance-show').fadeIn(); $('.advance').fadeOut(); $('[id^=https-hide]').hide(); - $('[name=mode').val('http'); + $('[name=mode]').val('http'); $('select').selectmenu('refresh'); $("#path-cert-listen" ).attr('required',false); $("#path-cert-frontend" ).attr('required',false); @@ -1124,26 +1124,23 @@ function change_select_waf(id) { }); } function createList(color) { - if(color == 'white') { + let list = $('#new_blacklist_name').val() + if (color === 'white') { list = $('#new_whitelist_name').val() - } else { - list = $('#new_blacklist_name').val() } - list = escapeHtml(list); - $.ajax( { - url: "/add/haproxy/bwlist/create", - data: { - bwlists_create: list, - color: color - }, + let jsonData = { + 'name': escapeHtml(list), + 'color': color + } + $.ajax({ + url: "/add/haproxy/list", + data: JSON.stringify(jsonData), type: "POST", - success: function( data ) { - if (data.indexOf('error:') != '-1' || data.indexOf('Failed') != '-1' || data.indexOf('Errno') != '-1') { - toastr.error(data); - } else if (data.indexOf('Info') != '-1' ){ - toastr.clear(); - toastr.info(data); - } else if (data.indexOf('success') != '-1' ) { + contentType: "application/json; charset=utf-8", + success: function (data) { + if (data.status === 'failed') { + toastr.error(data.error); + } else { toastr.clear(); toastr.success('List has been created'); setTimeout(function () { @@ -1151,16 +1148,17 @@ function createList(color) { }, 2500); } } - } ); + }); } function editList(list, color) { $.ajax( { - url: "/add/haproxy/bwlist/" + list + "/" + color + "/" + $('#group_id').val(), + url: "/add/haproxy/list/" + list + "/" + color, + contentType: "application/json; charset=utf-8", success: function( data ) { - if (data.indexOf('error:') != '-1') { - toastr.error(data); + if (data.status === 'failed') { + toastr.error(data.error); } else { - $('#edit_lists').text(data); + $('#edit_lists').text(data.data.replaceAll('\n', '\r\n')); $( "#dialog-confirm-cert-edit" ).dialog({ resizable: false, height: "auto", @@ -1205,25 +1203,31 @@ function editList(list, color) { function saveList(action, list, color) { let serv = $("#serv-" + color + "-list option:selected").val(); if (!checkIsServerFiled($("#serv-" + color + "-list"))) return false; + let jsonData = { + name: list, + server_ip: serv, + content: $('#edit_lists').val(), + color: color, + action: action + } $.ajax({ - url: "/add/haproxy/bwlist/save", - data: { - bwlists_save: list, - serv: serv, - bwlists_content: $('#edit_lists').val(), - color: color, - bwlists_restart: action - }, + url: "/add/haproxy/list", + data: JSON.stringify(jsonData), type: "POST", + contentType: "application/json; charset=utf-8", success: function (data) { - data = data.split(" , "); - for (i = 0; i < data.length; i++) { - if (data[i]) { - if (data[i].indexOf('error: ') != '-1' || data[i].indexOf('Errno') != '-1') { - toastr.error(data[i]); - } else { - if (data[i] != '\n') { - toastr.success(data[i]); + if (data.status === 'failed') { + toastr.error(data.error) + } else { + data = data.data.split(" , "); + for (i = 0; i < data.length; i++) { + if (data[i]) { + if (data[i].indexOf('error: ') != '-1' || data[i].indexOf('Errno') != '-1') { + toastr.error(data[i]); + } else { + if (data[i] != '\n') { + toastr.success(data[i]); + } } } } @@ -1234,24 +1238,39 @@ function saveList(action, list, color) { function deleteList(list, color) { let serv = $( "#serv-"+color+"-list option:selected" ).val(); if(!checkIsServerFiled($("#serv-"+color+"-list"))) return false; + let jsonData = { + 'name': list, + 'color': color, + 'server_ip': serv + } $.ajax({ - url: "/add/haproxy/bwlist/delete/" + serv + "/" + color + "/" + list + "/" + $('#group_id').val(), - success: function (data) { - if (data.indexOf('error:') != '-1' || data.indexOf('Failed') != '-1' || data.indexOf('Errno') != '-1') { - toastr.error(data); - } else if (data.indexOf('Info') != '-1' ){ - toastr.clear(); - toastr.info(data); - } else if (data.indexOf('success') != '-1' ) { + url: "/add/haproxy/list", + type: "DELETE", + data: JSON.stringify(jsonData), + contentType: "application/json; charset=utf-8", + statusCode: { + 204: function (xhr) { toastr.clear(); toastr.success('List has been deleted'); setTimeout(function () {location.reload();}, 2500); + }, + 404: function (xhr) { + toastr.clear(); + toastr.success('List has been deleted'); + setTimeout(function () {location.reload();}, 2500); + } + }, + success: function (data) { + if (data) { + if (data.status === 'failed') { + toastr.error(data); + } } } }); } function createMap() { - map_name = $('#new_map_name').val() + let map_name = $('#new_map_name').val() map_name = escapeHtml(map_name); $.ajax( { url: "/add/map", diff --git a/app/static/js/overview.js b/app/static/js/overview.js index 2074776d..a5237d13 100644 --- a/app/static/js/overview.js +++ b/app/static/js/overview.js @@ -298,11 +298,7 @@ function change_pos(pos, id) { } function showBytes(serv) { $.ajax( { - url: "/service/haproxy/bytes", - data: { - showBytes: serv - }, - type: "POST", + url: "/service/haproxy/bytes/" + serv, beforeSend: function() { $("#show_bin_bout").html(''); $("#sessions").html(''); @@ -320,11 +316,7 @@ function showBytes(serv) { } function showNginxConnections(serv) { $.ajax( { - url: "/service/nginx/connections", - data: { - nginxConnections: serv - }, - type: "POST", + url: "/service/nginx/connections/" + serv, beforeSend: function() { $("#sessions").html(''); }, @@ -341,11 +333,7 @@ function showNginxConnections(serv) { } function showApachekBytes(serv) { $.ajax( { - url: "/service/apache/bytes", - data: { - apachekBytes: serv - }, - type: "POST", + url: "/service/apache/bytes/" + serv, beforeSend: function() { $("#sessions").html(''); }, @@ -362,11 +350,7 @@ function showApachekBytes(serv) { } function keepalivedBecameMaster(serv) { $.ajax( { - url: "/service/keepalived/become-master", - data: { - keepalivedBecameMaster: serv - }, - type: "POST", + url: "/service/keepalived/become-master/" + serv, beforeSend: function() { $("#bin_bout").html(''); }, diff --git a/app/static/js/script.js b/app/static/js/script.js index be320f8e..722069d7 100644 --- a/app/static/js/script.js +++ b/app/static/js/script.js @@ -29,6 +29,11 @@ function escapeHtml(unsafe) { var wait_mess_word = translate_div.attr('data-wait_mess'); var wait_mess = '

'+wait_mess_word+'
' function show_current_page(id) { + let theme = localStorage.getItem('theme'); + let correct_color = 'var(--color-gray-dark-alpha)'; + if (theme === 'dark') { + correct_color = '#181818'; + } id.parent().css('display', 'contents'); id.parent().css('font-size', '13px'); id.parent().css('top', '0'); @@ -36,7 +41,7 @@ function show_current_page(id) { id.parent().children().css('margin-left', '-20px'); id.parent().find('a').css('padding-left', '20px'); id.find('a').css('border-left', '4px solid var(--color-wanring) !important'); - id.find('a').css('background-color', 'var(--color-gray-dark-alpha) !important'); + id.find('a').css('background-color', correct_color +' !important'); } $( function() { $('.menu li ul li').each(function () { @@ -244,9 +249,9 @@ function clearAllAjaxFields() { function showMap() { clearAllAjaxFields(); $('#ajax-config_file_name').empty(); - $.ajax( { + $.ajax({ url: "/config/map/haproxy/" + $("#serv").val() + '/show', - success: function( data ) { + success: function (data) { if (data.indexOf('error:') != '-1') { toastr.error(data); } else { @@ -255,17 +260,17 @@ function showMap() { window.history.pushState("Show Map", "Show Map", '/config/map/' + $("#service").val() + '/' + $("#serv").val()); } } - } ); + }); } function showCompare() { - $.ajax( { + $.ajax({ url: "/config/compare/" + $("#service").val() + "/" + $("#serv").val() + "/show", data: { left: $('#left').val(), right: $("#right").val(), }, type: "POST", - success: function( data ) { + success: function (data) { if (data.indexOf('error:') != '-1') { toastr.error(data); } else { @@ -273,15 +278,15 @@ function showCompare() { $("#ajax").html(data); } } - } ); + }); } function showCompareConfigs() { clearAllAjaxFields(); $('#ajax-config_file_name').empty(); - $.ajax( { + $.ajax({ url: "/config/compare/" + $("#service").val() + "/" + $("#serv").val() + "/files", type: "GET", - success: function( data ) { + success: function (data) { if (data.indexOf('error:') != '-1') { toastr.error(data); } else { @@ -292,7 +297,7 @@ function showCompareConfigs() { window.history.pushState("Show compare config", "Show compare config", '/config/compare/' + $("#service").val() + '/' + $("#serv").val()); } } - } ); + }); } function showConfig() { let service = $('#service').val(); @@ -315,12 +320,12 @@ function showConfig() { "service": service, "config_file_name": config_file_name } - $.ajax( { + $.ajax({ url: "/config/" + service + "/show", data: JSON.stringify(json_data), type: "POST", contentType: "application/json; charset=utf-8", - success: function( data ) { + success: function (data) { if (data.status === 'failed') { toastr.error(data); } else { @@ -330,7 +335,7 @@ function showConfig() { window.history.pushState("Show config", "Show config", "/config/" + service + "/" + $("#serv").val() + "/show/" + config_file_name); } } - } ); + }); } function showConfigFiles(not_redirect=false) { var service = $('#service').val(); @@ -477,6 +482,7 @@ function viewLogs() { } } $( function() { + checkTheme(); $('a').click(function(e) { try { var cur_path = window.location.pathname; @@ -788,11 +794,29 @@ function saveUserSettings(user_id){ localStorage.setItem('disabled_alert', '1'); } changeCurrentGroupF(user_id); + changeTheme($('#theme_select').val()); Cookies.set('lang', $('#lang_select').val(), { expires: 365, path: '/', secure: 'true' }); } function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } +function changeTheme(theme) { + localStorage.setItem('theme', theme); + if (theme === 'dark') { + $('#menu-overview').children().attr('src', '/static/images/roxy_icon_white.png'); + $('#menu-haproxy').children().attr('src', '/static/images/HAProxy_icon_white.png'); + $('#menu-nginx').children().attr('src', '/static/images/NGINX_icon_white.png'); + $('#menu-keepalived').children().attr('src', '/static/images/keepalived_icon_white.png'); + $('.menu-logo').attr('src', '/static/images/logo_menu_white.png'); + $('head').append(''); + } else { + $('link[rel=stylesheet][href~="/static/css/dark.css"]').remove(); + } +} +function checkTheme() { + let theme = localStorage.getItem('theme'); + changeTheme(theme); +} function getRandomArbitrary(min, max) { return Math.random() * (max - min) + min; } @@ -1296,6 +1320,12 @@ function openUserSettings(user_id) { } else { $('#disable_alerting').prop('checked', true).checkboxradio('refresh'); } + let theme = 'light'; + if (localStorage.getItem('theme') != null) { + theme = localStorage.getItem('theme'); + } + $('#theme_select').val(theme).change(); + $('#theme_select').selectmenu('refresh'); $.ajax({ url: "/user/group", success: function (data) { diff --git a/app/templates/base.html b/app/templates/base.html index a9b09432..b59f573b 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -66,11 +66,6 @@
-{# #}