From 6b3f2fc82e8f9c0bbefeec9ebd9b9e539f5e4149 Mon Sep 17 00:00:00 2001 From: Moe Date: Sun, 7 Aug 2022 18:57:16 -0700 Subject: [PATCH] Add API Key Manager for Super User --- definitions/base.js | 74 ++++++++++++++++++++++---------- web/libs/css/super-page.css | 8 ++-- web/libs/js/super.preferences.js | 40 +++++++++++++++-- 3 files changed, 93 insertions(+), 29 deletions(-) diff --git a/definitions/base.js b/definitions/base.js index db6430f5..f6861e5f 100644 --- a/definitions/base.js +++ b/definitions/base.js @@ -8460,32 +8460,62 @@ module.exports = function(s,config,lang){ "Editor": { noHeader: true, "color": "grey", + "noDefaultSectionClasses": true, + "box-wrapper-class": "row", "info": [ { - "name": "mail", - "field": lang.Email, + isFormGroupGroup: true, + "noHeader": true, + "section-pre-class": "col-md-6", + info: [ + { + "name": "mail", + "field": lang.Email, + }, + { + "name": "pass", + "type": "password", + "fieldType": "password", + "field": lang['Password'], + }, + { + "name": "pass_again", + "type": "password", + "fieldType": "password", + "field": lang['Password Again'], + }, + { + "fieldType": "btn-group", + "btns": [ + { + "fieldType": "btn", + "class": `submit btn-success`, + "btnContent": `${lang['Save']}`, + }, + ], + }, + ] }, { - "name": "pass", - "type": "password", - "fieldType": "password", - "field": lang['Password'], - }, - { - "name": "pass_again", - "type": "password", - "fieldType": "password", - "field": lang['Password Again'], - }, - { - "fieldType": "btn-group", - "btns": [ - { - "fieldType": "btn", - "class": `submit btn-success`, - "btnContent": `${lang['Save']}`, - }, - ], + isFormGroupGroup: true, + "name": lang["API Keys"], + "section-pre-class": "col-md-6", + info: [ + { + "fieldType": "btn-group", + "btns": [ + { + "fieldType": "btn", + "class": `new-token btn-success`, + "btnContent": `${lang['Add']}`, + }, + ], + }, + { + "id": "super-tokens", + "fieldType": "div", + }, + ] }, ] } diff --git a/web/libs/css/super-page.css b/web/libs/css/super-page.css index 61b46ae0..ea671435 100644 --- a/web/libs/css/super-page.css +++ b/web/libs/css/super-page.css @@ -291,17 +291,17 @@ a {cursor:pointer} } */ /* Slim Style */ .form-control { - background-color: transparent; + /* background-color: transparent; border: 1px solid #E3E3E3; border-radius: 30px; color: #2c2c2c; line-height: normal; font-size: 0.8571em; - box-shadow: none; + box-shadow: none; */ } .btn-round { - border-width: 1px; - border-radius: 30px !important; + /* border-width: 1px; */ + /* border-radius: 30px !important; */ } .btn, .navbar .navbar-nav>a.btn { font-weight: 400; diff --git a/web/libs/js/super.preferences.js b/web/libs/js/super.preferences.js index 7b08ada4..3f2fbe23 100644 --- a/web/libs/js/super.preferences.js +++ b/web/libs/js/super.preferences.js @@ -1,12 +1,49 @@ $(document).ready(function(){ var changeSuperPreferencesTab = $('#changeSuperPreferences') + var tokenContainer = $('#super-tokens') var changeSuperPreferencesForm = changeSuperPreferencesTab.find('form') + function drawTokenRow(tokenValue){ + var html = `
+
+ +
+
+ +
+
` + tokenContainer.append(html) + } + function getTokenRows(){ + var rowsFound = [] + changeSuperPreferencesTab.find('.token-row-input').each(function(n,v){ + var el = $(v) + var tokenValue = el.val().trim() + if(tokenValue)rowsFound.push(tokenValue); + }) + return rowsFound + } + function loadPreferences(){ + var tokens = $user.tokens + changeSuperPreferencesTab.find('[name=mail]').val($user.mail) + if(tokens instanceof Array){ + tokens.forEach(function(token){ + drawTokenRow(token) + }) + } + } + changeSuperPreferencesTab.find('.new-token').click(function(){ + drawTokenRow() + }) + changeSuperPreferencesTab.on('click','.delete-token',function(){ + $(this).parents('.token-row').remove() + }) changeSuperPreferencesTab.find('.submit').click(function(){ changeSuperPreferencesForm.submit() }) changeSuperPreferencesForm.submit(function(e){ e.preventDefault() var formValues = $(this).serializeObject() + formValues.tokens = getTokenRows() // $.ccio.cx({f:'accounts',ff:'saveSuper',form:formValues}) $.post(superApiPrefix + $user.sessionKey + '/accounts/saveSettings',{ data: JSON.stringify(formValues) @@ -15,8 +52,5 @@ $(document).ready(function(){ }) return false }) - function loadPreferences(){ - changeSuperPreferencesTab.find('[name=mail]').val($user.mail) - } loadPreferences() })