* Refactor desktop notification settings UI and add setting for duration * Update en.json * Update desktop_notification_settings.jsx
85 строки
2.3 KiB
JavaScript
85 строки
2.3 KiB
JavaScript
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
import AppDispatcher from 'dispatcher/app_dispatcher.jsx';
|
|
import * as AsyncClient from 'utils/async_client.jsx';
|
|
import Client from 'client/web_client.jsx';
|
|
|
|
import PreferenceStore from 'stores/preference_store.jsx';
|
|
import TeamStore from 'stores/team_store.jsx';
|
|
import UserStore from 'stores/user_store.jsx';
|
|
|
|
import {ActionTypes, Preferences} from 'utils/constants.jsx';
|
|
|
|
export function switchFromLdapToEmail(email, password, ldapPassword, onSuccess, onError) {
|
|
Client.ldapToEmail(
|
|
email,
|
|
password,
|
|
ldapPassword,
|
|
(data) => {
|
|
if (data.follow_link) {
|
|
window.location.href = data.follow_link;
|
|
}
|
|
|
|
if (onSuccess) {
|
|
onSuccess(data);
|
|
}
|
|
},
|
|
onError
|
|
);
|
|
}
|
|
|
|
export function getMoreDmList() {
|
|
AsyncClient.getTeamMembers(TeamStore.getCurrentId());
|
|
AsyncClient.getProfilesForDirectMessageList();
|
|
}
|
|
|
|
export function saveTheme(teamId, theme, onSuccess, onError) {
|
|
AsyncClient.savePreference(
|
|
Preferences.CATEGORY_THEME,
|
|
teamId,
|
|
JSON.stringify(theme),
|
|
() => {
|
|
onThemeSaved(teamId, theme, onSuccess);
|
|
},
|
|
(err) => {
|
|
onError(err);
|
|
}
|
|
);
|
|
}
|
|
|
|
function onThemeSaved(teamId, theme, onSuccess) {
|
|
const themePreferences = PreferenceStore.getCategory(Preferences.CATEGORY_THEME);
|
|
|
|
if (teamId !== '' && themePreferences.size > 1) {
|
|
// no extra handling to be done to delete team-specific themes
|
|
onSuccess();
|
|
return;
|
|
}
|
|
|
|
const toDelete = [];
|
|
|
|
for (const [name] of themePreferences) {
|
|
if (name === '') {
|
|
continue;
|
|
}
|
|
|
|
toDelete.push({
|
|
user_id: UserStore.getCurrentId(),
|
|
category: Preferences.CATEGORY_THEME,
|
|
name
|
|
});
|
|
}
|
|
|
|
// we're saving a new global theme so delete any team-specific ones
|
|
AsyncClient.deletePreferences(toDelete);
|
|
|
|
// delete them locally before we hear from the server so that the UI flow is smoother
|
|
AppDispatcher.handleServerAction({
|
|
type: ActionTypes.DELETED_PREFERENCES,
|
|
preferences: toDelete
|
|
});
|
|
|
|
onSuccess();
|
|
}
|