diff options
author | sualko <klaus@jsxc.org> | 2018-05-17 11:37:21 +0300 |
---|---|---|
committer | sualko <klaus@jsxc.org> | 2018-05-17 11:37:21 +0300 |
commit | bf3d09901854f8f89a294cb1ca453cda7a45629a (patch) | |
tree | fa4a4a86812bae930c723f8ceb9f628074bdd166 /js | |
parent | 91d1b828ee38961785ddfccbe6d8322621804ebb (diff) |
add admin setting to change log in behavior (fix jsxc/jsxc#477)
Global enable/disable chat on log in. User defined option overwrites global default.
Diffstat (limited to 'js')
-rw-r--r-- | js/ojsxc.js | 20 | ||||
-rw-r--r-- | js/settings/personal.js | 17 |
2 files changed, 30 insertions, 7 deletions
diff --git a/js/ojsxc.js b/js/ojsxc.js index 3a52f77..53cfcad 100644 --- a/js/ojsxc.js +++ b/js/ojsxc.js @@ -11,6 +11,8 @@ MANAGED: 2 }; + var forceLoginFormEnable; + function observeContactsMenu() { var target = document.getElementById('contactsmenu'); @@ -212,6 +214,11 @@ success: function(d) { if (d.result === 'success' && d.data && d.data.serverType !== 'internal' && d.data.xmpp.url !== '' && d.data.xmpp.url !== null) { jsxc.storage.setItem('serverType', serverTypes[d.data.serverType.toUpperCase()]); + + if (forceLoginFormEnable) { + d.data.loginForm.enable = true; + } + cb(d.data); } else if (d.data && d.data.serverType === 'internal') { jsxc.storage.setItem('serverType', serverTypes.INTERNAL); @@ -294,6 +301,7 @@ } function addChatSubmitButton() { + var defaultEnable = OJSXC_CONFIG.defaultLoginFormEnable; var submitWrapperElement = $('#submit-wrapper'); var jsxcSubmitWrapperElement = $('<div>'); jsxcSubmitWrapperElement.attr('id', 'jsxc_submit_wrapper'); @@ -304,10 +312,16 @@ id: 'jsxc_submit', }); submitElement.addClass('login primary'); - submitElement.val($.t('Log_in_without_chat')); + submitElement.val(defaultEnable ? $.t('Log_in_without_chat') : $.t('Log_in_with_chat')); submitElement.click(function() { - jsxc.storage.setItem('login_without_chat', true); - jsxc.submitLoginForm(); + jsxc.storage.setItem('login_without_chat', defaultEnable); + + if (defaultEnable) { // log in without chat + jsxc.submitLoginForm(); + } else { // log in with chat + forceLoginFormEnable = true; + $(jsxc.options.loginForm.form).submit(); + } }); jsxcSubmitWrapperElement.append(submitElement); diff --git a/js/settings/personal.js b/js/settings/personal.js index a8cfc2b..23639c3 100644 --- a/js/settings/personal.js +++ b/js/settings/personal.js @@ -6,12 +6,21 @@ $(function() { $('#ojsxc-settings [name="loginFormEnable"]').change(function() { var loginFormData = { - enable: $(this).prop('checked') + enable: $(this).val().match(/^true|false$/) ? JSON.parse($(this).val()) : null }; if (jsxc.bid) { - loginFormData = $.extend(jsxc.options.get('loginForm'), loginFormData); - jsxc.options.set('loginForm', loginFormData); + var options = jsxc.storage.getUserItem('options'); + + if (loginFormData.enable === null && options.loginForm) { + delete options.loginForm.enable; + + jsxc.storage.setUserItem('options', options); + } else { + loginFormData = $.extend(jsxc.options.get('loginForm'), loginFormData); + + jsxc.options.set('loginForm', loginFormData); + } } $.ajax({ @@ -22,7 +31,7 @@ }, success: function(data) { if (data && data.status === 'success') { - console.log('loginFormEnable saved.'); + jsxc.debug('loginFormEnable saved.'); } } }); |