mirror of https://github.com/mikkolehtisalo/iw.git
77 lines
2.4 KiB
JavaScript
77 lines
2.4 KiB
JavaScript
Ext.define('IW.view.page.PageTree', {
|
|
extend: 'Ext.tree.Panel',
|
|
alias: 'widget.pagetree',
|
|
requires: [
|
|
'Ext.tree.*',
|
|
'Ext.data.*'
|
|
],
|
|
|
|
rootVisible: false,
|
|
layout: 'fit',
|
|
border: 0,
|
|
|
|
enableDD: true,
|
|
invalidateScrollerOnRefresh: false,
|
|
|
|
viewConfig: {
|
|
loadMask: false,
|
|
plugins: {
|
|
ptype: 'treeviewdragdrop',
|
|
containerScroll: true
|
|
},
|
|
listeners: {
|
|
drop: function (node, data, overModel, dropPosition) {
|
|
// Synchronize all the changes to the server side after drag & drop event
|
|
var moved = data.records;
|
|
for (index in moved) {
|
|
var record = moved[index];
|
|
// In case this was not an order change but move, fix paths. The server side will have to work on that.
|
|
var parentPath = record.parentNode.data.Path;
|
|
if (parentPath.length > 0) {
|
|
record.data.Path = parentPath + '/' + record.data.Page_id;
|
|
} else {
|
|
// Probably moved to root...
|
|
record.data.Path = record.data.Page_id;
|
|
}
|
|
for (index in record.stores) {
|
|
var st = record.stores[index];
|
|
st.sync({
|
|
success: function() {
|
|
// Nothing yet I guess
|
|
},
|
|
failure: function() {
|
|
console.log('Unable to save changes');
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
},
|
|
}
|
|
},
|
|
|
|
store: 'Pages',
|
|
displayField: 'Title',
|
|
selModel: { allowDeselect: true },
|
|
|
|
initComponent: function() {
|
|
|
|
// Creates a new instance of store
|
|
// This is probably slightly unusual, but we will be using the stores a lot later on
|
|
var theStore = Ext.create('IW.store.Pages');
|
|
Ext.apply(this, {
|
|
store: theStore
|
|
});
|
|
|
|
// Change the root depending on the wiki
|
|
this.getStore().setRootNode({
|
|
expanded: true,
|
|
//id: this.record.data.wiki_id
|
|
Wiki_id: this.record.data.Wiki_id
|
|
});
|
|
|
|
this.callParent(arguments);
|
|
|
|
}
|
|
});
|