added display tab under account settings. added 24h time option
Этот коммит содержится в:
@@ -4,6 +4,7 @@
|
|||||||
var PostStore = require('../stores/post_store.jsx');
|
var PostStore = require('../stores/post_store.jsx');
|
||||||
var ChannelStore = require('../stores/channel_store.jsx');
|
var ChannelStore = require('../stores/channel_store.jsx');
|
||||||
var UserStore = require('../stores/user_store.jsx');
|
var UserStore = require('../stores/user_store.jsx');
|
||||||
|
var PreferenceStore = require('../stores/preference_store.jsx');
|
||||||
var UserProfile = require('./user_profile.jsx');
|
var UserProfile = require('./user_profile.jsx');
|
||||||
var AsyncClient = require('../utils/async_client.jsx');
|
var AsyncClient = require('../utils/async_client.jsx');
|
||||||
var Post = require('./post.jsx');
|
var Post = require('./post.jsx');
|
||||||
@@ -105,6 +106,7 @@ export default class PostList extends React.Component {
|
|||||||
PostStore.clearUnseenDeletedPosts(this.props.channelId);
|
PostStore.clearUnseenDeletedPosts(this.props.channelId);
|
||||||
PostStore.addChangeListener(this.onChange);
|
PostStore.addChangeListener(this.onChange);
|
||||||
UserStore.addStatusesChangeListener(this.onTimeChange);
|
UserStore.addStatusesChangeListener(this.onTimeChange);
|
||||||
|
PreferenceStore.addChangeListener(this.onTimeChange);
|
||||||
SocketStore.addChangeListener(this.onSocketChange);
|
SocketStore.addChangeListener(this.onSocketChange);
|
||||||
|
|
||||||
const postHolder = $(React.findDOMNode(this.refs.postlist));
|
const postHolder = $(React.findDOMNode(this.refs.postlist));
|
||||||
@@ -156,6 +158,7 @@ export default class PostList extends React.Component {
|
|||||||
PostStore.removeChangeListener(this.onChange);
|
PostStore.removeChangeListener(this.onChange);
|
||||||
UserStore.removeStatusesChangeListener(this.onTimeChange);
|
UserStore.removeStatusesChangeListener(this.onTimeChange);
|
||||||
SocketStore.removeChangeListener(this.onSocketChange);
|
SocketStore.removeChangeListener(this.onSocketChange);
|
||||||
|
PreferenceStore.removeChangeListener(this.onTimeChange);
|
||||||
$('body').off('click.userpopover');
|
$('body').off('click.userpopover');
|
||||||
$(window).off('resize');
|
$(window).off('resize');
|
||||||
var postHolder = $(React.findDOMNode(this.refs.postlist));
|
var postHolder = $(React.findDOMNode(this.refs.postlist));
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ var GeneralTab = require('./user_settings_general.jsx');
|
|||||||
var AppearanceTab = require('./user_settings_appearance.jsx');
|
var AppearanceTab = require('./user_settings_appearance.jsx');
|
||||||
var DeveloperTab = require('./user_settings_developer.jsx');
|
var DeveloperTab = require('./user_settings_developer.jsx');
|
||||||
var IntegrationsTab = require('./user_settings_integrations.jsx');
|
var IntegrationsTab = require('./user_settings_integrations.jsx');
|
||||||
|
var DisplayTab = require('./user_settings_display.jsx');
|
||||||
|
|
||||||
export default class UserSettings extends React.Component {
|
export default class UserSettings extends React.Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
@@ -98,6 +99,17 @@ export default class UserSettings extends React.Component {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
} else if (this.props.activeTab === 'display') {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<DisplayTab
|
||||||
|
user={this.state.user}
|
||||||
|
activeSection={this.props.activeSection}
|
||||||
|
updateSection={this.props.updateSection}
|
||||||
|
updateTab={this.props.updateTab}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return <div/>;
|
return <div/>;
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ export default class UserSettingsModal extends React.Component {
|
|||||||
if (global.window.config.EnableIncomingWebhooks === 'true') {
|
if (global.window.config.EnableIncomingWebhooks === 'true') {
|
||||||
tabs.push({name: 'integrations', uiName: 'Integrations', icon: 'glyphicon glyphicon-transfer'});
|
tabs.push({name: 'integrations', uiName: 'Integrations', icon: 'glyphicon glyphicon-transfer'});
|
||||||
}
|
}
|
||||||
|
tabs.push({name: 'display', uiName: 'Display', icon: 'glyphicon glyphicon-eye-open'});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -288,6 +288,7 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
Preferences: {
|
Preferences: {
|
||||||
CATEGORY_DIRECT_CHANNEL_SHOW: 'direct_channel_show'
|
CATEGORY_DIRECT_CHANNEL_SHOW: 'direct_channel_show',
|
||||||
|
CATEGORY_DISPLAY_SETTINGS: 'display_settings'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
var AppDispatcher = require('../dispatcher/app_dispatcher.jsx');
|
var AppDispatcher = require('../dispatcher/app_dispatcher.jsx');
|
||||||
var ChannelStore = require('../stores/channel_store.jsx');
|
var ChannelStore = require('../stores/channel_store.jsx');
|
||||||
var UserStore = require('../stores/user_store.jsx');
|
var UserStore = require('../stores/user_store.jsx');
|
||||||
|
var PreferenceStore = require('../stores/preference_store.jsx');
|
||||||
var TeamStore = require('../stores/team_store.jsx');
|
var TeamStore = require('../stores/team_store.jsx');
|
||||||
var Constants = require('../utils/constants.jsx');
|
var Constants = require('../utils/constants.jsx');
|
||||||
var ActionTypes = Constants.ActionTypes;
|
var ActionTypes = Constants.ActionTypes;
|
||||||
@@ -164,23 +165,29 @@ export function displayDate(ticks) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function displayTime(ticks) {
|
export function displayTime(ticks) {
|
||||||
var d = new Date(ticks);
|
const d = new Date(ticks);
|
||||||
var hours = d.getHours();
|
let hours = d.getHours();
|
||||||
var minutes = d.getMinutes();
|
let minutes = d.getMinutes();
|
||||||
|
let ampm = '';
|
||||||
|
|
||||||
var ampm = 'AM';
|
|
||||||
if (hours >= 12) {
|
|
||||||
ampm = 'PM';
|
|
||||||
}
|
|
||||||
|
|
||||||
hours = hours % 12;
|
|
||||||
if (!hours) {
|
|
||||||
hours = '12';
|
|
||||||
}
|
|
||||||
if (minutes <= 9) {
|
if (minutes <= 9) {
|
||||||
minutes = '0' + minutes;
|
minutes = '0' + minutes;
|
||||||
}
|
}
|
||||||
return hours + ':' + minutes + ' ' + ampm;
|
|
||||||
|
const useMilitaryTime = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'use_military_time', {value: 'false'}).value;
|
||||||
|
if(useMilitaryTime === 'false') {
|
||||||
|
ampm = ' AM';
|
||||||
|
if (hours >= 12) {
|
||||||
|
ampm = ' PM';
|
||||||
|
}
|
||||||
|
|
||||||
|
hours = hours % 12;
|
||||||
|
if (!hours) {
|
||||||
|
hours = '12';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return hours + ':' + minutes + ampm;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function displayDateTime(ticks) {
|
export function displayDateTime(ticks) {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user