diff options
Diffstat (limited to 'web')
-rw-r--r-- | web/react/components/channel_loader.jsx | 2 | ||||
-rw-r--r-- | web/react/components/sidebar.jsx | 4 | ||||
-rw-r--r-- | web/react/stores/browser_store.jsx | 18 | ||||
-rw-r--r-- | web/react/utils/async_client.jsx | 2 | ||||
-rw-r--r-- | web/static/config/manifest.json | 13 | ||||
-rw-r--r-- | web/templates/head.html | 13 |
6 files changed, 44 insertions, 8 deletions
diff --git a/web/react/components/channel_loader.jsx b/web/react/components/channel_loader.jsx index 1b389aa1d..b7cb248db 100644 --- a/web/react/components/channel_loader.jsx +++ b/web/react/components/channel_loader.jsx @@ -12,8 +12,6 @@ var Constants = require('../utils/constants.jsx'); module.exports = React.createClass({ componentDidMount: function() { - // Initalize stores - BrowserStore.initalize(); /* Start initial aysnc loads */ AsyncClient.getMe(); diff --git a/web/react/components/sidebar.jsx b/web/react/components/sidebar.jsx index 0e4d38fe0..2095978e8 100644 --- a/web/react/components/sidebar.jsx +++ b/web/react/components/sidebar.jsx @@ -263,6 +263,10 @@ var SidebarLoggedIn = React.createClass({ if (ChannelStore.getCurrentId() != msg.channel_id) { AsyncClient.getChannels(true); } + } else if (msg.action == "user_added") { + if (UserStore.getCurrentId() === msg.user_id) { + AsyncClient.getChannels(true); + } } }, updateTitle: function() { diff --git a/web/react/stores/browser_store.jsx b/web/react/stores/browser_store.jsx index b3e54cad5..82cf9a942 100644 --- a/web/react/stores/browser_store.jsx +++ b/web/react/stores/browser_store.jsx @@ -1,44 +1,52 @@ // Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. // See License.txt for license information. - var UserStore = require('../stores/user_store.jsx'); // Also change model/utils.go ETAG_ROOT_VERSION var BROWSER_STORE_VERSION = '.1'; -module.exports.initalize = function() { +var _initialized = false; + +function _initialize() { var currentVersion = localStorage.getItem("local_storage_version"); if (currentVersion !== BROWSER_STORE_VERSION) { localStorage.clear(); sessionStorage.clear(); localStorage.setItem("local_storage_version", BROWSER_STORE_VERSION); } + _initialized = true; } module.exports.setItem = function(name, value) { + if (!_initialized) _initialize(); var user_id = UserStore.getCurrentId(); localStorage.setItem(user_id + "_" + name, value); }; module.exports.getItem = function(name) { + if (!_initialized) _initialize(); var user_id = UserStore.getCurrentId(); return localStorage.getItem(user_id + "_" + name); }; module.exports.removeItem = function(name) { + if (!_initialized) _initialize(); var user_id = UserStore.getCurrentId(); localStorage.removeItem(user_id + "_" + name); }; module.exports.setGlobalItem = function(name, value) { + if (!_initialized) _initialize(); localStorage.setItem(name, value); }; module.exports.getGlobalItem = function(name) { + if (!_initialized) _initialize(); return localStorage.getItem(name); }; module.exports.removeGlobalItem = function(name) { + if (!_initialized) _initialize(); localStorage.removeItem(name); }; @@ -53,7 +61,7 @@ module.exports.actionOnItemsWithPrefix = function (prefix, action) { var user_id = UserStore.getCurrentId(); var id_len = user_id.length; var prefix_len = prefix.length; - for (key in localStorage) { + for (var key in localStorage) { if (key.substring(id_len, id_len + prefix_len) === prefix) { var userkey = key.substring(id_len); action(userkey, BrowserStore.getItem(key)); @@ -70,8 +78,8 @@ module.exports.isLocalStorageSupported = function() { localStorage.removeItem("testLocal", '1'); return true; - } + } catch (e) { return false; } -} +}; diff --git a/web/react/utils/async_client.jsx b/web/react/utils/async_client.jsx index a2a6f8db7..87dc91200 100644 --- a/web/react/utils/async_client.jsx +++ b/web/react/utils/async_client.jsx @@ -55,7 +55,7 @@ module.exports.getChannels = function(force, updateLastViewed, checkVersion) { if (checkVersion) { var serverVersion = xhr.getResponseHeader("X-Version-ID"); - if (UserStore.getLastVersion() == undefined) { + if (!UserStore.getLastVersion()) { UserStore.setLastVersion(serverVersion); } diff --git a/web/static/config/manifest.json b/web/static/config/manifest.json new file mode 100644 index 000000000..6110122c2 --- /dev/null +++ b/web/static/config/manifest.json @@ -0,0 +1,13 @@ +{ + "name": "Mattermost", + "icons": [ + { + "src": "../static/iamges/icon50x50.gif", + "sizes": "50x50", + "type": "image/png" + } + ], + "start_url": "/", + "display": "standalone", + "orientation": "portrait" +}
\ No newline at end of file diff --git a/web/templates/head.html b/web/templates/head.html index abcb30700..ead648571 100644 --- a/web/templates/head.html +++ b/web/templates/head.html @@ -5,6 +5,19 @@ <title>{{ .Title }}</title> + <!-- iOS add to homescreen --> + <meta name="apple-mobile-web-app-capable" content="yes" /> + <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> + <meta name="mobile-web-app-capable" content="yes" /> + <meta name="apple-mobile-web-app-title" content="{{ .Title }}"> + <meta name="application-name" content="{{ .Title }}"> + <meta name="format-detection" content="telephone=no"> + <!-- iOS add to homescreen --> + + <!-- Android add to homescreen --> + <link rel="manifest" href="/static/config/manifest.json"> + <!-- Android add to homescreen --> + <link rel="stylesheet" href="/static/css/bootstrap-3.3.1.min.css"> <link rel="stylesheet" href="/static/css/jasny-bootstrap.min.css" rel="stylesheet"> |