From 3f5993eedfd52a0497f7a537601b2d7c9e4d744d Mon Sep 17 00:00:00 2001 From: hmhealey Date: Tue, 11 Aug 2015 14:36:45 -0400 Subject: Added initial api to allow clientside code to query serverside configuration --- web/react/utils/client.jsx | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'web/react/utils') diff --git a/web/react/utils/client.jsx b/web/react/utils/client.jsx index 6a1f7c820..5b5d8dc32 100644 --- a/web/react/utils/client.jsx +++ b/web/react/utils/client.jsx @@ -849,3 +849,24 @@ module.exports.updateValetFeature = function(data, success, error) { module.exports.track('api', 'api_teams_update_valet_feature'); }; + +module.exports.isEmailEnabledSynchronous = function() { + var enabled = false; + + $.ajax({ + async: false, + url: '/api/v1/config/get/bypass_email', + dataType: 'json', + type: 'GET', + success: function(value) { + enabled = !value; + }, + error: function(xhr, status, err) { + if (status != 200) { + handleError("isEmailEnabled", xhr, status, err); + } + } + }); + + return enabled; +}; -- cgit v1.2.3-1-g7c22 From d35065d6fd8237468ee3aa63bfba3b2aa29bc4af Mon Sep 17 00:00:00 2001 From: hmhealey Date: Tue, 11 Aug 2015 16:52:36 -0400 Subject: Reformatted code to match the style guide --- web/react/utils/client.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'web/react/utils') diff --git a/web/react/utils/client.jsx b/web/react/utils/client.jsx index 5b5d8dc32..6ae25c66d 100644 --- a/web/react/utils/client.jsx +++ b/web/react/utils/client.jsx @@ -862,8 +862,8 @@ module.exports.isEmailEnabledSynchronous = function() { enabled = !value; }, error: function(xhr, status, err) { - if (status != 200) { - handleError("isEmailEnabled", xhr, status, err); + if (status !== '200') { + handleError('isEmailEnabled', xhr, status, err); } } }); -- cgit v1.2.3-1-g7c22 From ca919538cc402ed90ce42ffc3ef98994bb1081f4 Mon Sep 17 00:00:00 2001 From: hmhealey Date: Thu, 13 Aug 2015 13:01:21 -0400 Subject: Added ConfigStore that is populated from the server --- web/react/utils/async_client.jsx | 26 ++++++++++++++++++++++++++ web/react/utils/client.jsx | 15 +++++++++++++++ web/react/utils/constants.jsx | 2 ++ 3 files changed, 43 insertions(+) (limited to 'web/react/utils') diff --git a/web/react/utils/async_client.jsx b/web/react/utils/async_client.jsx index f35b0f6cc..afb9a1d79 100644 --- a/web/react/utils/async_client.jsx +++ b/web/react/utils/async_client.jsx @@ -4,6 +4,7 @@ var client = require('./client.jsx'); var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); var ChannelStore = require('../stores/channel_store.jsx'); +var ConfigStore = require('../stores/config_store.jsx'); var PostStore = require('../stores/post_store.jsx'); var UserStore = require('../stores/user_store.jsx'); var utils = require('./utils.jsx'); @@ -383,3 +384,28 @@ module.exports.getMyTeam = function() { } ); } + +function getConfig() { + if (isCallInProgress('getConfig')) { + return; + } + + callTracker['getConfig'] = utils.getTimestamp(); + client.getConfig( + function(data, textStatus, xhr) { + callTracker['getConfig'] = 0; + + if (data && xhr.status !== 304) { + AppDispatcher.handleServerAction({ + type: ActionTypes.RECIEVED_CONFIG, + settings: data + }); + } + }, + function(err) { + callTracker['getConfig'] = 0; + dispatchError(err, 'getConfig'); + } + ); +} +module.exports.getConfig = getConfig; diff --git a/web/react/utils/client.jsx b/web/react/utils/client.jsx index 6ae25c66d..250e3edbd 100644 --- a/web/react/utils/client.jsx +++ b/web/react/utils/client.jsx @@ -850,6 +850,21 @@ module.exports.updateValetFeature = function(data, success, error) { module.exports.track('api', 'api_teams_update_valet_feature'); }; +function getConfig(success, error) { + $.ajax({ + url: '/api/v1/config/get_all', + dataType: 'json', + type: 'GET', + ifModified: true, + success: success, + error: function(xhr, status, err) { + var e = handleError('getConfig', xhr, status, err); + error(e); + } + }); +}; +module.exports.getConfig = getConfig; + module.exports.isEmailEnabledSynchronous = function() { var enabled = false; diff --git a/web/react/utils/constants.jsx b/web/react/utils/constants.jsx index bed0ec556..36c6ab653 100644 --- a/web/react/utils/constants.jsx +++ b/web/react/utils/constants.jsx @@ -30,6 +30,8 @@ module.exports = { CLICK_TEAM: null, RECIEVED_TEAM: null, + + RECIEVED_CONFIG: null }), PayloadSources: keyMirror({ -- cgit v1.2.3-1-g7c22 From 8fc4456213c5ee16863b7f1bcb20e35a19469a1d Mon Sep 17 00:00:00 2001 From: hmhealey Date: Thu, 13 Aug 2015 13:23:56 -0400 Subject: Removed isEmailEnabledSynchronous and switched the email disabled warnings to use ConfigStore --- web/react/utils/client.jsx | 21 --------------------- 1 file changed, 21 deletions(-) (limited to 'web/react/utils') diff --git a/web/react/utils/client.jsx b/web/react/utils/client.jsx index 250e3edbd..8178ab01a 100644 --- a/web/react/utils/client.jsx +++ b/web/react/utils/client.jsx @@ -864,24 +864,3 @@ function getConfig(success, error) { }); }; module.exports.getConfig = getConfig; - -module.exports.isEmailEnabledSynchronous = function() { - var enabled = false; - - $.ajax({ - async: false, - url: '/api/v1/config/get/bypass_email', - dataType: 'json', - type: 'GET', - success: function(value) { - enabled = !value; - }, - error: function(xhr, status, err) { - if (status !== '200') { - handleError('isEmailEnabled', xhr, status, err); - } - } - }); - - return enabled; -}; -- cgit v1.2.3-1-g7c22