summaryrefslogtreecommitdiffstats
path: root/web/react/utils
diff options
context:
space:
mode:
Diffstat (limited to 'web/react/utils')
-rw-r--r--web/react/utils/async_client.jsx24
-rw-r--r--web/react/utils/client.jsx13
2 files changed, 37 insertions, 0 deletions
diff --git a/web/react/utils/async_client.jsx b/web/react/utils/async_client.jsx
index 3f084578a..d665dfc94 100644
--- a/web/react/utils/async_client.jsx
+++ b/web/react/utils/async_client.jsx
@@ -666,3 +666,27 @@ export function getDirectChannels() {
);
}
+export function setPreferences(preferences, success, error) {
+ client.setPreferences(
+ preferences,
+ (data, textStatus, xhr) => {
+ if (xhr.status !== 304) {
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.RECIEVED_PREFERENCES,
+ preferences
+ });
+ }
+
+ if (success) {
+ success(data);
+ }
+ },
+ (err) => {
+ dispatchError(err, 'setPreferences');
+
+ if (error) {
+ error();
+ }
+ }
+ );
+}
diff --git a/web/react/utils/client.jsx b/web/react/utils/client.jsx
index f1827f296..2134dc0f5 100644
--- a/web/react/utils/client.jsx
+++ b/web/react/utils/client.jsx
@@ -1155,3 +1155,16 @@ export function getPreferencesByName(category, name, success, error) {
});
}
+export function setPreferences(preferences, success, error) {
+ $.ajax({
+ url: '/api/v1/preferences/set',
+ dataType: 'json',
+ type: 'POST',
+ data: JSON.stringify(preferences),
+ success,
+ error: (xhr, status, err) => {
+ var e = handleError('setPreferences', xhr, status, err);
+ error(e);
+ }
+ });
+}