Skip to content
This repository was archived by the owner on May 16, 2019. It is now read-only.

Commit cd0324a

Browse files
committed
initial shell of the page nav servers menu view
1 parent afb5590 commit cd0324a

File tree

10 files changed

+129
-34
lines changed

10 files changed

+129
-34
lines changed

css/obBase.css

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3435,7 +3435,7 @@ input[type="checkbox"].fieldItem:checked + label .togLabelOff {
34353435
width: 230px;
34363436
overflow: hidden;
34373437
transform: translateY(-110%);
3438-
transition: transform 200ms;
3438+
transition: transform 200ms;
34393439
}
34403440

34413441
.popMenu-opened .popMenu-navBarSubMenu-pageNav,
@@ -3451,6 +3451,10 @@ input[type="checkbox"].fieldItem:checked + label .togLabelOff {
34513451
transition: opacity .2s cubic-bezier(0, 0, 0.2, 1);
34523452
}
34533453

3454+
.popMenu-navBar .popMenu-navBarSubMenu-servers a {
3455+
padding: 0;
3456+
}
3457+
34543458
.popMenu-navBar a:hover {
34553459
opacity: 1;
34563460
background: #353535;
@@ -5516,6 +5520,9 @@ input[type="checkbox"].fieldItem:checked + label .togLabelOff {
55165520
padding: 40px;
55175521
}
55185522

5523+
#ov1 .padding010 {
5524+
padding: 0px 10px;
5525+
}
55195526
#ov1 .padding015 {
55205527
padding: 0px 15px;
55215528
}

js/languages/en-US.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,9 @@
573573
"about": "About OpenBazaar",
574574
"support": "Support OpenBazaar",
575575
"Forward": "Forward",
576-
"Back": "Back"
576+
"Back": "Back",
577+
"newServer": "New Server",
578+
"manageServers": "Manage Servers"
577579
},
578580
"onboarding": {
579581
"intro": "OpenBazaar Configuration",

js/templates/pageNav.html

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ <h3 class="margin0 marginTop25"><%= polyglot.t('Discover') %></h3>
6868

6969
<div class="js-navProfileMenu popMenu popMenu-navBar">
7070
<div class="popMenu-navBarSubMenu popMenu-navBarSubMenu-pageNav">
71-
<a class="js-server-config-submenu-trigger">
71+
<a class="js-serverSubmenuTrigger">
7272
<div class="noOverflow inlineBlock" style="max-width: 171px"><%= ob.handle || ob.guid %></div>
7373
<span class="pull-right txt-muted ion-arrow-right-b positionRelative" style="top: 4px"></span>
7474
</a>
@@ -139,15 +139,7 @@ <h3 class="margin0 marginTop25"><%= polyglot.t('Discover') %></h3>
139139
</a>
140140
</div>
141141

142-
<div class="js-serverSubmenu popMenu-navBarSubMenu popMenu-navBarSubMenu-servers" style="right: 222px">
143-
<ol>
144-
<li>happy</li>
145-
<li>hippo</li>
146-
<li>on</li>
147-
<li>the</li>
148-
<li>rize</li>
149-
</ol>
150-
</div>
142+
<div class="js-serverSubmenu popMenu-navBarSubMenu popMenu-navBarSubMenu-servers" style="right: 222px"></div>
151143
</div>
152144

153145
<div class="popMenu popMenu-notifications js-navNotificationsMenu" data-onclose="onNotifMenuClose" data-onopen="onNotifMenuOpen">
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<% ob.servers.forEach((server) => { %>
2+
<a class="flexRow">
3+
<div class="rowItem positionRelative padding010">
4+
<div class="flexRow">
5+
<div class="table">
6+
<div>
7+
<div class="vertAlignMid noOverflow" style="width: 20px;">
8+
<% if (server.id === ob.connectedServer) { %>
9+
<span class="ion-checkmark fontSize12 marginRight2 textOpacity1"></span>
10+
<% } %>
11+
</div>
12+
<div class="vertAlignMid noOverflow">
13+
<%= server.name %>
14+
</div>
15+
</div>
16+
</div>
17+
</div>
18+
</div>
19+
</a>
20+
<% }); %>
21+
<hr/>
22+
<a class="flexRow js-newServer">
23+
<div class="rowItem positionRelative padding010">
24+
<div class="flexRow">
25+
<div class="table">
26+
<div>
27+
<div class="vertAlignMid noOverflow" style="width: 20px;">
28+
<span class="ion-plus fontSize12 textOpacity1"></span>
29+
</div>
30+
<div class="vertAlignMid noOverflow">
31+
<%= polyglot.t('nav.newServer') %>
32+
</div>
33+
</div>
34+
</div>
35+
</div>
36+
</div>
37+
</a>
38+
<a class="flexRow js-manageServers">
39+
<div class="rowItem positionRelative padding010">
40+
<div class="flexRow">
41+
<div class="table">
42+
<div>
43+
<div class="vertAlignMid noOverflow" style="width: 20px;">
44+
<span class="ion-gear-a fontSize10 marginRight3 textOpacity1"></span>
45+
</div>
46+
<div class="vertAlignMid noOverflow">
47+
<%= polyglot.t('nav.manageServers') %>
48+
</div>
49+
</div>
50+
</div>
51+
</div>
52+
</div>
53+
</a>

js/views/pageNavServersVw.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
'use strict';
2+
3+
var __ = require('underscore'),
4+
loadTemplate = require('../utils/loadTemplate'),
5+
// app = require('../App.js').getApp(),
6+
BaseVw = require('./baseVw');
7+
8+
module.exports = BaseVw.extend({
9+
className: 'flexContainer',
10+
11+
events: {
12+
},
13+
14+
initialize: function(options) {
15+
this.options = options || {};
16+
17+
if (!options.collection) {
18+
throw new Error('Please provide a ServerConfigs collection.');
19+
}
20+
21+
this.listenTo(this.collection, 'update', this.render);
22+
},
23+
24+
render: function() {
25+
loadTemplate('./js/templates/pageNavServersMenu.html', (t) => {
26+
this.$el.html(t({
27+
connectedServer: this.collection.at(0).id,
28+
servers: this.collection.toJSON()
29+
}));
30+
});
31+
32+
return this;
33+
}
34+
});

js/views/pageNavVw.js

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ var __ = require('underscore'),
1111
baseVw = require('./baseVw'),
1212
//adminPanelView = require('../views/adminPanelVw'),
1313
NotificationsVw = require('../views/notificationsVw'),
14+
PageNavServersVw = require('../views/pageNavServersVw'),
1415
remote = require('remote'),
1516
pjson = require('../../package.json');
1617

@@ -45,8 +46,10 @@ module.exports = baseVw.extend({
4546
'click .js-navDismisslUpdate': 'dismissUpdate',
4647
'click [data-popmenu]': 'onPopMenuNavClick',
4748
'click .js-OnboardingIntroDiscover': 'hideDiscoverIntro',
48-
'mouseenter .js-server-config-submenu-trigger': 'mouseenterServerSubmenuTrigger',
49-
'mouseleave .js-server-config-submenu-trigger': 'mouseleaveServerSubmenuTrigger'
49+
'mouseenter .js-serverSubmenuTrigger': 'mouseenterServerSubmenuTrigger',
50+
'mouseleave .js-serverSubmenuTrigger': 'mouseleaveServerSubmenuTrigger',
51+
'mouseenter .js-serverSubmenu': 'mouseenterServerSubmenu',
52+
'mouseleave .js-serverSubmenu': 'mouseleaveServerSubmenu'
5053
},
5154

5255
initialize: function(options){
@@ -272,7 +275,15 @@ module.exports = baseVw.extend({
272275
self.$notifMenu.find('#notificationsPanel')
273276
.html(self.notificationsVw.render().el);
274277

275-
self.setNotificationCount(self.getUnreadNotifCount());
278+
self.setNotificationCount(self.getUnreadNotifCount());
279+
280+
self.pageNavServersVw && self.pageNavServersVw.remove();
281+
self.pageNavServersVw = new PageNavServersVw({
282+
collection: app.serverConfigs
283+
});
284+
self.$('.js-serverSubmenu').html(
285+
self.pageNavServersVw.render().el
286+
);
276287

277288
//add the admin panel
278289
/*
@@ -609,6 +620,21 @@ module.exports = baseVw.extend({
609620

610621
mouseleaveServerSubmenuTrigger: function(e) {
611622
clearTimeout(this.ServerSubmenuTimeout);
623+
624+
setTimeout(() => {
625+
if (!this.overServerSubmenu) {
626+
this.serverSubmenu.removeClass('server-submenu-opened');
627+
}
628+
}, 100);
629+
},
630+
631+
mouseenterServerSubmenu: function(e) {
632+
this.overServerSubmenu = true;
633+
},
634+
635+
mouseleaveServerSubmenu: function(e) {
636+
this.overServerSubmenu = false;
637+
clearTimeout(this.ServerSubmenuTimeout);
612638
this.serverSubmenu.removeClass('server-submenu-opened');
613639
},
614640

js/views/serverConfigFormVw.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict';
22

33
var loadTemplate = require('../utils/loadTemplate'),
4-
// app = require('../App.js').getApp(),
54
BaseVw = require('./baseVw');
65

76
module.exports = BaseVw.extend({
@@ -56,10 +55,6 @@ module.exports = BaseVw.extend({
5655
this.model.set('SSL', true);
5756
},
5857

59-
remove: function() {
60-
BaseVw.prototype.remove.apply(this, arguments);
61-
},
62-
6358
render: function() {
6459
loadTemplate('./js/templates/serverConfigForm.html', (t) => {
6560
this.$el.html(

js/views/serverConfigRowVw.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
var __ = require('underscore'),
44
loadTemplate = require('../utils/loadTemplate'),
5-
// app = require('../App.js').getApp(),
65
BaseVw = require('./baseVw');
76

87
module.exports = BaseVw.extend({
@@ -55,10 +54,6 @@ module.exports = BaseVw.extend({
5554
}
5655
},
5756

58-
remove: function() {
59-
BaseVw.prototype.remove.apply(this, arguments);
60-
},
61-
6257
render: function() {
6358
loadTemplate('./js/templates/serverConfigRow.html', (t) => {
6459
this.$el.html(t(

js/views/serverConfigsVw.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
var __ = require('underscore'),
44
loadTemplate = require('../utils/loadTemplate'),
5-
// app = require('../App.js').getApp(),
65
BaseVw = require('./baseVw'),
76
ServerConfigRowVw = require('./serverConfigRowVw');
87

@@ -58,10 +57,6 @@ module.exports = BaseVw.extend({
5857
}
5958
},
6059

61-
remove: function() {
62-
BaseVw.prototype.remove.apply(this, arguments);
63-
},
64-
6560
render: function() {
6661
var scrollTop;
6762

js/views/serverConnectModal.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,6 @@ module.exports = BaseModal.extend({
4141
this.listenTo(this.serverConfigsVw, 'cancel', this.onCancelClick);
4242
},
4343

44-
remove: function() {
45-
BaseModal.prototype.remove.apply(this, arguments);
46-
},
47-
4844
hideMessageBar: function() {
4945
this.$jsMsgBar.addClass('slide-out');
5046
},

0 commit comments

Comments
 (0)