Compare commits

...

2 Commits

Author SHA1 Message Date
Akash Nimare
c27db8744e Update data-tab-id on dragging server tabs. 2018-09-02 12:39:59 +05:30
Akash Nimare
d6239a3150 Add Sortablejs for reordering the org tab list. 2018-08-29 00:45:10 +05:30
3 changed files with 28 additions and 2 deletions

View File

@@ -40,7 +40,8 @@
"node-json-db": "0.7.3", "node-json-db": "0.7.3",
"request": "2.85.0", "request": "2.85.0",
"semver": "5.4.1", "semver": "5.4.1",
"wurl": "2.5.0" "wurl": "2.5.0",
"sortablejs": "*"
}, },
"optionalDependencies": { "optionalDependencies": {
"node-mac-notifier": "0.1.0" "node-mac-notifier": "0.1.0"

View File

@@ -16,6 +16,8 @@ const ReconnectUtil = require(__dirname + '/js/utils/reconnect-util.js');
const Logger = require(__dirname + '/js/utils/logger-util.js'); const Logger = require(__dirname + '/js/utils/logger-util.js');
const { feedbackHolder } = require(__dirname + '/js/feedback.js'); const { feedbackHolder } = require(__dirname + '/js/feedback.js');
const Sortable = require('sortablejs');
const logger = new Logger({ const logger = new Logger({
file: 'errors.log', file: 'errors.log',
timestamp: true timestamp: true
@@ -42,6 +44,8 @@ class ServerManagerView {
this.$sidebar = document.getElementById('sidebar'); this.$sidebar = document.getElementById('sidebar');
this.$drag = document.querySelector('.simpleList');
this.$fullscreenPopup = document.getElementById('fullscreen-popup'); this.$fullscreenPopup = document.getElementById('fullscreen-popup');
this.$fullscreenEscapeKey = process.platform === 'darwin' ? '^⌘F' : 'F11'; this.$fullscreenEscapeKey = process.platform === 'darwin' ? '^⌘F' : 'F11';
this.$fullscreenPopup.innerHTML = `Press ${this.$fullscreenEscapeKey} to exit full screen`; this.$fullscreenPopup.innerHTML = `Press ${this.$fullscreenEscapeKey} to exit full screen`;
@@ -142,6 +146,27 @@ class ServerManagerView {
initSidebar() { initSidebar() {
const showSidebar = ConfigUtil.getConfigItem('showSidebar', true); const showSidebar = ConfigUtil.getConfigItem('showSidebar', true);
this.toggleSidebar(showSidebar); this.toggleSidebar(showSidebar);
// Allow dragging of server tabs and update the data-tab-id
const _this = this;
this.$sortable = Sortable.create(this.$drag, {
dataIdAttr: 'data-sortable-id',
onEnd() {
const newTabs = [];
const tabElements = document.querySelectorAll('#tabs-container .tab');
tabElements.forEach((el, index) => {
const oldIndex = +el.getAttribute('data-tab-id');
newTabs.push(_this.tabs[oldIndex]);
el.setAttribute('data-tab-id', index.toString());
});
_this.tabs = newTabs;
ipcRenderer.send('update-menu', {
tabs: _this.tabs,
activeTabIndex: _this.activeTabIndex
});
}
});
} }
initTabs() { initTabs() {

View File

@@ -15,7 +15,7 @@
</div> </div>
<div id="sidebar" class="toggle-sidebar"> <div id="sidebar" class="toggle-sidebar">
<div id="view-controls-container"> <div id="view-controls-container">
<div id="tabs-container"></div> <div id="tabs-container" class="simpleList"></div>
<div id="add-tab" class="tab functional-tab"> <div id="add-tab" class="tab functional-tab">
<div class="server-tab" id="add-action"> <div class="server-tab" id="add-action">
<i class="material-icons">add</i> <i class="material-icons">add</i>