Began making generic tree re-arranging methods, still buggy
This commit is contained in:
@@ -22,7 +22,8 @@
|
||||
:children="computedChildren"
|
||||
:group="group"
|
||||
:show-empty="organize"
|
||||
@moved="e => $emit('moved', e)"
|
||||
@reordered="e => $emit('reordered', e)"
|
||||
@reorganized="e => $emit('reorganized', e)"
|
||||
/>
|
||||
</div>
|
||||
</v-expand-transition>
|
||||
|
||||
@@ -18,7 +18,8 @@
|
||||
:organize="organize"
|
||||
:lazy="lazy"
|
||||
class="item"
|
||||
@moved="e => $emit('moved', e)"
|
||||
@reordered="e => $emit('reordered', e)"
|
||||
@reorganized="e => $emit('reorganized', e)"
|
||||
@dragstart.native="e => e.dataTransfer.setData('cow', child.node && child.node.name)"
|
||||
/>
|
||||
</draggable>
|
||||
@@ -54,10 +55,17 @@
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
change({added, removed, moved}){
|
||||
if (removed) return;
|
||||
let newIndex = (added || moved).newIndex;
|
||||
this.$emit('moved', {parent: this.node, newIndex});
|
||||
change({added, moved}){
|
||||
let event = moved || added;
|
||||
if (event){
|
||||
let newIndex = event.newIndex;
|
||||
let doc = event.element.node;
|
||||
if (moved){
|
||||
this.$emit('reordered', {doc, newIndex});
|
||||
} else if (added){
|
||||
this.$emit('reorganized', {doc, parent: this.node, newIndex});
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
:children="libraryChildren"
|
||||
:group="library && library._id"
|
||||
:organize="organize"
|
||||
@moved="moved"
|
||||
@reordered="reordered"
|
||||
@reorganized="reorganized"
|
||||
/>
|
||||
</v-card-text>
|
||||
</template>
|
||||
@@ -14,6 +15,7 @@
|
||||
import Libraries from '/imports/api/library/Libraries.js';
|
||||
import LibraryNodes, { libraryNodesToTree } from '/imports/api/library/LibraryNodes.js';
|
||||
import TreeNodeList from '/imports/ui/components/tree/TreeNodeList.vue';
|
||||
import { organizeDoc, reorderDoc } from '/imports/api/parenting/organizeMethods.js';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
@@ -36,8 +38,36 @@
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
moved(e){
|
||||
console.log(e)
|
||||
reordered({doc, newIndex}){
|
||||
reorderDoc.call({
|
||||
docRef: {
|
||||
id: doc._id,
|
||||
collection: 'libraryNodes',
|
||||
},
|
||||
order: newIndex,
|
||||
});
|
||||
},
|
||||
reorganized({doc, parent, newIndex}){
|
||||
let parentRef;
|
||||
if (parent){
|
||||
parentRef = {
|
||||
id: this.libraryId,
|
||||
collection: 'libraries',
|
||||
};
|
||||
} else {
|
||||
parentRef = {
|
||||
id: parent._id,
|
||||
collection: 'libraryNodes',
|
||||
};
|
||||
}
|
||||
organizeDoc.call({
|
||||
docRef: {
|
||||
id: doc._id,
|
||||
collection: 'libraryNodes',
|
||||
},
|
||||
parentRef,
|
||||
order: newIndex,
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -38,7 +38,7 @@ export default {
|
||||
mixins: [schemaFormMixin],
|
||||
data(){return {
|
||||
model: {
|
||||
libraryNodeType: this.type,
|
||||
type: this.type,
|
||||
},
|
||||
schema: undefined,
|
||||
validationContext: undefined,
|
||||
@@ -52,7 +52,7 @@ export default {
|
||||
this.schema = librarySchemas[newType];
|
||||
this.validationContext = this.schema.newContext();
|
||||
let model = this.schema.clean({});
|
||||
model.libraryNodeType = newType;
|
||||
model.type = newType;
|
||||
this.model = model;
|
||||
},
|
||||
model(newModel){
|
||||
|
||||
@@ -44,8 +44,8 @@
|
||||
elementId: 'insert-library-node-fab',
|
||||
callback(libraryNode){
|
||||
if (!libraryNode) return;
|
||||
libraryNode.parent = {collection: "library", id: that.library._id};
|
||||
libraryNode.ancestors = [ {collection: "library", id: that.library._id}];
|
||||
libraryNode.parent = {collection: "libraries", id: that.library._id};
|
||||
libraryNode.ancestors = [ {collection: "libraries", id: that.library._id}];
|
||||
setDocToLastOrder({collection: LibraryNodes, doc: libraryNode});
|
||||
console.log(libraryNode);
|
||||
let libraryNodeId = insertNode.call(libraryNode);
|
||||
|
||||
Reference in New Issue
Block a user