sortable side panels

This commit is contained in:
yuri
2017-01-12 15:28:29 +02:00
parent 807dcb7901
commit be735e572e
2 changed files with 17 additions and 4 deletions
@@ -30,13 +30,16 @@ Espo.define('views/admin/layouts/side-panels-detail', 'views/admin/layouts/rows'
return Dep.extend({
dataAttributeList: ['name', 'style'],
dataAttributeList: ['name', 'style', 'sticked'],
dataAttributesDefs: {
style: {
type: 'enum',
options: ['default', 'success', 'danger', 'primary', 'info', 'warning'],
translation: 'LayoutManager.options.style'
},
sticked: {
type: 'bool'
}
},
@@ -85,7 +88,7 @@ Espo.define('views/admin/layouts/side-panels-detail', 'views/admin/layouts/rows'
this.rowLayout = [];
panelListAll.forEach(function (item) {
panelListAll.forEach(function (item, index) {
var disabled = false;
var itemData = layout[item] || {};
if (itemData.disabled) {
@@ -120,12 +123,15 @@ Espo.define('views/admin/layouts/side-panels-detail', 'views/admin/layouts/rows'
for (var i in itemData) {
o[i] = itemData[i];
}
o.index = ('index' in itemData) ? itemData.index : index;
this.rowLayout.push(o);
}
}, this);
this.rowLayout.sort(function (v1, v2) {
return v1.index > v2.index;
});
},
fetch: function () {
var layout = {};
$("#layout ul.disabled > li").each(function (i, el) {
@@ -146,6 +152,7 @@ Espo.define('views/admin/layouts/side-panels-detail', 'views/admin/layouts/rows'
var value = $el.data(Espo.Utils.toDom(attribute)) || null;
o[attribute] = value;
});
o.index = i;
layout[name] = o;
}.bind(this))
+7 -1
View File
@@ -155,7 +155,8 @@ Espo.define('views/record/detail-side', 'view', function (Dep) {
layoutData = layoutData || {};
var newList = [];
this.panelList.forEach(function (item) {
this.panelList.forEach(function (item, i) {
item.index = i;
if (item.name) {
var itemData = layoutData[item.name] || {};
if (itemData.disabled) return;
@@ -163,9 +164,14 @@ Espo.define('views/record/detail-side', 'view', function (Dep) {
item[i] = itemData[i];
}
}
newList.push(item);
}, this);
newList.sort(function (v1, v2) {
return v1.index > v2.index;
});
this.panelList = newList;
},