Skip to content

Commit 2e6f87a

Browse files
committed
Merge branch 'hotfix/0.10.3'
2 parents 176d1b2 + 5f74539 commit 2e6f87a

File tree

5 files changed

+91
-1
lines changed

5 files changed

+91
-1
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import Ember from 'ember';
2+
import layout from './template';
3+
import config from 'ember-get-config';
4+
5+
const levelMap = {
6+
1: 'info',
7+
2: 'warning',
8+
3: 'danger'
9+
};
10+
11+
export default Ember.Component.extend({
12+
layout,
13+
classNames: ['alert', 'alert-dismissible', 'alert-maintenance'],
14+
classNameBindings: ['alertClass'],
15+
16+
attributeBindings: [
17+
'hidden'
18+
],
19+
20+
hidden: 'true',
21+
22+
alertClass: 'alert-info',
23+
24+
maintenance: {
25+
start: new Date(),
26+
end: new Date(),
27+
},
28+
29+
init() {
30+
this._super(...arguments);
31+
32+
if (!sessionStorage.getItem('maintenance-dismissed')) {
33+
Ember.$.ajax({
34+
url: `${config.OSF.apiUrl}/v2/status/`,
35+
crossDomain: true
36+
})
37+
.then(({maintenance}) => {
38+
if (maintenance) {
39+
this.setProperties({
40+
hidden: false,
41+
maintenance
42+
});
43+
this.set('alertClass', `alert-${levelMap[maintenance.level] || 'info'}`);
44+
}
45+
});
46+
}
47+
},
48+
49+
actions: {
50+
dismiss() {
51+
sessionStorage.setItem('maintenance-dismissed', true);
52+
this.set('hidden', true);
53+
}
54+
}
55+
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<button type="button" class="close" data-dismiss="alert" aria-label="Close" {{action 'dismiss'}}>
2+
<span aria-hidden="true">&times;</span>
3+
</button>
4+
<strong>Notice:</strong>
5+
<span>
6+
{{#if maintenance.message}}
7+
{{maintenance.message}}
8+
{{else}}
9+
The site will undergo maintenance between
10+
<strong>
11+
<time>{{moment-format maintenance.start 'lll'}}</time>
12+
and
13+
<time>{{moment-format maintenance.end 'lll'}}</time>
14+
</strong>
15+
({{moment-format maintenance.start 'ZZ'}} UTC).
16+
Thank you for your patience.
17+
{{/if}}
18+
</span>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { default } from 'ember-osf/components/maintenance-banner/component';

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@centerforopenscience/ember-osf",
3-
"version": "0.10.2",
3+
"version": "0.10.3",
44
"description": "Reusable ember models and components for interacting with the Open Science Framework",
55
"directories": {
66
"doc": "docs",
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { moduleForComponent, test } from 'ember-qunit';
2+
import hbs from 'htmlbars-inline-precompile';
3+
4+
moduleForComponent('maintenance-banner', 'Integration | Component | maintenance banner', {
5+
integration: true
6+
});
7+
8+
test('it renders', function(assert) {
9+
10+
// Set any properties with this.set('myProperty', 'value');
11+
// Handle any actions with this.on('myAction', function(val) { ... });
12+
13+
this.render(hbs`{{maintenance-banner}}`);
14+
15+
assert.equal(this.$().text().trim(), '');
16+
});

0 commit comments

Comments
 (0)