9b256d3da6
* ui: CSS and component changes to the <EmptyState /> component * ui: Reset the auth-form component back to its initial state Moving forwards we are going to have the auth-form on the page all the time, even when logged in (for relogging in purposes). This means the auth-form will not always be removed from the DOM when you log in. This sets the form back to its idle state before calling onsubmit * ui: Make a public api for modal-dialog with a single close method * ui : Move cache reset somewhere that makes more sense, + single refresh 1. Centralize cache resetting elsewhere, for now the store makes most sense, although I would prefer the Repository class, so using the store is temporary 2. We only need to refresh on login once, unless we have a differing nspace * ui: Ensure visibilitychange events are cleaned up * ui: Only cache DataSource data if we have any, + only clear the cache * ui: Add the modal login dialog to both unauth and auth views This means we can 'relogin' when already logged in * ui: Add new empty states * ui: CSS Tweaks * Remove marketing grays
49 lines
1.5 KiB
JavaScript
49 lines
1.5 KiB
JavaScript
import Component from '@ember/component';
|
|
import { inject as service } from '@ember/service';
|
|
import { computed } from '@ember/object';
|
|
|
|
export default Component.extend({
|
|
dom: service('dom'),
|
|
|
|
didInsertElement: function() {
|
|
this._super(...arguments);
|
|
this.dom.root().classList.remove('template-with-vertical-menu');
|
|
},
|
|
// TODO: Right now this is the only place where we need permissions
|
|
// but we are likely to need it elsewhere, so probably need a nice helper
|
|
canManageNspaces: computed('permissions', function() {
|
|
return (
|
|
typeof (this.permissions || []).find(function(item) {
|
|
return item.Resource === 'operator' && item.Access === 'write' && item.Allow;
|
|
}) !== 'undefined'
|
|
);
|
|
}),
|
|
actions: {
|
|
keypressClick: function(e) {
|
|
e.target.dispatchEvent(new MouseEvent('click'));
|
|
},
|
|
open: function() {
|
|
this.authForm.focus();
|
|
},
|
|
close: function() {
|
|
this.authForm.reset();
|
|
},
|
|
reauthorize: function(e) {
|
|
this.modal.close();
|
|
this.onchange(e);
|
|
},
|
|
change: function(e) {
|
|
const win = this.dom.viewport();
|
|
const $root = this.dom.root();
|
|
const $body = this.dom.element('body');
|
|
if (e.target.checked) {
|
|
$root.classList.add('template-with-vertical-menu');
|
|
$body.style.height = $root.style.height = win.innerHeight + 'px';
|
|
} else {
|
|
$root.classList.remove('template-with-vertical-menu');
|
|
$body.style.height = $root.style.height = null;
|
|
}
|
|
},
|
|
},
|
|
});
|