diff --git a/definitions/en_CA.js b/definitions/en_CA.js index b93d16cc..c7e6c35a 100644 --- a/definitions/en_CA.js +++ b/definitions/en_CA.js @@ -4224,6 +4224,11 @@ module.exports = function(s,config,lang){ "fieldType": 'div', "id": "alternate-logins" }, + { + "fieldType": "btn-group", + "forForm": true, + "btns": [], + }, ] }, "2-Factor Authentication": { @@ -5394,29 +5399,11 @@ module.exports = function(s,config,lang){ "name": lang["LDAP"], "color": "forestgreen", "info": [ - { - "name": "ldap_enable", - "field": lang.Enabled, - "description": "Enable LDAP authentication for this Group.", - "default": "0", - "example": "", - "fieldType": "select", - "possible": [ - { - "name": lang.No, - "value": "0" - }, - { - "name": lang.Yes, - "value": "1" - } - ] - }, { "name": "ldap_url", "field": lang.URL, "description": "", - "example": "", + "example": "ldap://127.0.0.1:389", "possible": "" }, { diff --git a/libs/auth/google.js b/libs/auth/google.js index 920b0eb8..e9a69f49 100644 --- a/libs/auth/google.js +++ b/libs/auth/google.js @@ -95,9 +95,8 @@ module.exports = (s,config,lang,app) => { } return response } - s.definitions["Account Settings"].blocks["AlternateLogins"].info.push({ - "form-group-class-pre-layer": "form-group", - "fieldType": "btn", + const alternateLoginsFieldList = s.definitions["Account Settings"].blocks["AlternateLogins"].info + alternateLoginsFieldList[alternateLoginsFieldList.length - 1].btns.push({ "class": `btn-info google-sign-in`, "btnContent": `   ${lang['Link Google Account']}`, }) diff --git a/libs/auth/ldap.js b/libs/auth/ldap.js index 1364b9ff..784d500b 100644 --- a/libs/auth/ldap.js +++ b/libs/auth/ldap.js @@ -75,7 +75,6 @@ module.exports = (s,config,lang,app) => { return response } async function updateLdapBaseDetails(params,updateFields){ - const enabled = updateFields.ldap_enable const url = updateFields.ldap_url const bindDN = updateFields.ldap_bindDN const searchBase = updateFields.ldap_searchBase @@ -90,7 +89,6 @@ module.exports = (s,config,lang,app) => { ], }) const userDetails = JSON.parse(userResponse.rows[0].details) - userDetails.ldap_enable = enabled userDetails.ldap_url = url userDetails.ldap_bindDN = bindDN userDetails.ldap_searchBase = searchBase @@ -148,9 +146,8 @@ module.exports = (s,config,lang,app) => { } return response } - s.definitions["Account Settings"].blocks["AlternateLogins"].info.push({ - "form-group-class-pre-layer": "form-group", - "fieldType": "btn", + const alternateLoginsFieldList = s.definitions["Account Settings"].blocks["AlternateLogins"].info + alternateLoginsFieldList[alternateLoginsFieldList.length - 1].btns.push({ "class": `btn-info ldap-sign-in`, "btnContent": `   ${lang['Link LDAP Account']}`, }) diff --git a/web/libs/js/dash2.alternateLogins.js b/web/libs/js/dash2.alternateLogins.js index c0d6df1b..8374c284 100644 --- a/web/libs/js/dash2.alternateLogins.js +++ b/web/libs/js/dash2.alternateLogins.js @@ -6,17 +6,19 @@ $(document).ready(function(){ alternateLoginsBox.empty() if(rows.length > 0){ $.each(rows,function(n,row){ - alternateLoginsBox.append(`
-
-   - ${row.type} + alternateLoginsBox.append(`
+
+   + ${row.type}
-
+
${row.name}
+
+
${moment(row.lastLogin).format('YYYY-MM-DD hh:mm:ss A')}
- `) }) diff --git a/web/libs/js/dash2.ldapSignIn.js b/web/libs/js/dash2.ldapSignIn.js index e1bffa2a..84de83bc 100644 --- a/web/libs/js/dash2.ldapSignIn.js +++ b/web/libs/js/dash2.ldapSignIn.js @@ -1,6 +1,6 @@ $(document).ready(function(){ $('#settings').on('click','.ldap-sign-in',function(){ - var signInWindow = window.open(getApiPrefix('loginTokenAddLDAP'),'popup','width=300,height=300,scrollbars=no,resizable=no'); + var signInWindow = window.open(getApiPrefix('loginTokenAddLDAP'),'popup','width=500,height=700,scrollbars=no,resizable=no'); if(!signInWindow || signInWindow.closed || typeof signInWindow.closed=='undefined'){ alert(`Your Popup Blocker is disabling this feature.`) }else{ diff --git a/web/pages/blocks/fieldBuilders.ejs b/web/pages/blocks/fieldBuilders.ejs index ce5d7857..a974a377 100644 --- a/web/pages/blocks/fieldBuilders.ejs +++ b/web/pages/blocks/fieldBuilders.ejs @@ -144,6 +144,22 @@ drawBlock = function(monitorSettings){ var fieldElement = '' var preFill = field.preFill || '' switch(fieldType){ + case'btn-group': + let fieldBtnContent = `` + field.btns.forEach((btn) => { + let btnClass = [] + let btnAttributes = [] + const btnBaseElement = btn.forForm || field.forForm ? 'button' : 'a' + if(btn.class){ + btnClass.push(`${btn.class}`) + } + if(btn.attribute){ + btnAttributes.push(btn.attribute) + } + fieldBtnContent += `<${btnBaseElement} class="btn ${btnClass.join(' ')}" ${btnAttributes.join(' ')}>${btn.btnContent}` + }) + fieldElement = `
${fieldBtnContent}
` + break; case'btn': baseElement = field.forForm ? 'button' : 'a' fieldElement = `<${baseElement} class="btn btn-block ${fieldClass.join(' ')}" ${attributes.join(' ')}>${field.btnContent}` @@ -190,7 +206,7 @@ drawBlock = function(monitorSettings){ if(field['form-group-class-pre-layer']){ %>
<% } - if(fieldType === 'ul' || fieldType === 'div' || fieldType === 'btn' || fieldType === 'table' || fieldType === 'form'){ %> + if(fieldType === 'ul' || fieldType === 'div' || fieldType === 'btn' || fieldType === 'btn-group' || fieldType === 'table' || fieldType === 'form'){ %> <%- fieldElement %> <% }else{ %>
<% - var buildOptions = function(field,possiblities){ - if(!field)console.error('field',field) - var fieldElement = '' - possiblities.forEach(function(option){ - if(option.optgroup){ - fieldElement += '' - fieldElement += buildOptions(field,option.optgroup) - fieldElement += '' - }else{ - var selected = '' - if(option.value === field.default){ - selected = 'selected' - } - fieldElement += '' - } - }) - return fieldElement - } - var drawBlock = function(monitorSettings){ - if(monitorSettings.evaluation && !eval(monitorSettings.evaluation)){ - return - } - var attributes = [] - var styles = [] - var sectionClass = [] - var headerTitle = monitorSettings.headerTitle || lang[monitorSettings.name] || monitorSettings.name - if(monitorSettings.hidden === true){ - styles.push('display:none') - } - if(monitorSettings.style){ - styles.push(monitorSettings.style) - } - if(monitorSettings.isSection === true){ - attributes.push('section') - } - if(monitorSettings.attribute){ - attributes.push(monitorSettings.attribute) - } - if(!monitorSettings.id){ - var userSettingsId = monitorSettings.name.replace(/[^a-zA-Z ]/g, '').replace(/[^a-zA-Z ]/g, '').replace(/ /g, '') - monitorSettings.id = userSettingsId - } - attributes.push(`id="${monitorSettings.id}"`) - if(monitorSettings.color){ - sectionClass.push(monitorSettings.color) - } - if(monitorSettings['section-class']){ - sectionClass.push(monitorSettings['section-class']) - } - if(monitorSettings.isAdvanced){ %> - - <% } - } + include fieldBuilders.ejs %> <% Object.keys(define['Account Settings'].blocks).forEach(function(blockKey){ var accountSettings = define['Account Settings'].blocks[blockKey]