| | |
| | | console.log(this.queue); |
| | | this.config = config; |
| | | this.content = config.content || false; |
| | | this.settings = window.jvbUserSettings; |
| | | |
| | | if (!this.content) { |
| | | return; |
| | |
| | | // Initialize components |
| | | this.store = new window.jvbStore({ |
| | | name: this.content, |
| | | storeName: this.content, |
| | | endpoint: 'content', |
| | | headers: { |
| | | 'action_nonce': jvbSettings.dash, |
| | | }, |
| | | indexes: [ |
| | | { name: 'status', keyPath: 'post_status'}, |
| | | { name: 'modified', keyPath: 'modified'}, |
| | | ], |
| | | filters: { |
| | | content: this.content, |
| | | user: jvbSettings.currentUser, |
| | | page: 1, |
| | | status: 'all' |
| | | } |
| | | }, |
| | | TTL: 3600000, |
| | | cacheDOM: true |
| | | }); |
| | | |
| | | this.status = 'all'; |
| | | this.filterTimeout = null; |
| | | |
| | | this.viewController = new window.jvbViews(this.ui.container, this.store); |
| | | this.formController = new window.jvbForm(this.store); |
| | | this.formController = new window.jvbForm(); |
| | | |
| | | this.formController.subscribe((event, data) => { |
| | | switch(event) { |
| | |
| | | create: 'dialog.create form', |
| | | edit: 'dialog.edit form', |
| | | bulkEdit: 'dialog.bulkEdit form' |
| | | } |
| | | }, |
| | | uploader: 'details.uploader' |
| | | }; |
| | | this.ui = window.uiFromSelectors(this.elements); |
| | | } |
| | | init() { |
| | | this.settings.addSetting(this.ui.uploader, 'open'); |
| | | this.ui.uploader.addEventListener('toggle', (e) =>{ |
| | | console.log(e); |
| | | console.log('Is Open: ', this.ui.uploader.open); |
| | | console.log(this.ui.uploader.open ? 'on' : 'off'); |
| | | this.settings.saveSetting('open', this.ui.uploader.open ? 'on' : 'off'); |
| | | }); |
| | | |
| | | |
| | | // Set up filter controls |
| | | this.filterHandler = this.handleFilterChange.bind(this); |
| | | this.changeHandler = this.handleChange.bind(this); |
| | | |
| | | |
| | | |
| | | this.modals = {}; |
| | | for (let [name, modal] of Object.entries(this.ui.modals)) { |
| | | this.modals[name] = new window.jvbModal(modal); |
| | |
| | | |
| | | this.setupFilters(); |
| | | |
| | | // Load initial data |
| | | this.store.fetch(); |
| | | |
| | | this.queue.subscribe((event, data) => { |
| | | switch (event) { |
| | | case 'operation-status': |
| | | //update items? |
| | | break; |
| | | } |
| | | }); |
| | | |
| | | this.initialized = true; |
| | | } |
| | |
| | | }; |
| | | window.fade(actionBtn.closest('.item'), false); |
| | | this.savePosts(changes, `Sending ${this.singular} to trash...`); |
| | | this.store.deleteItem(id); |
| | | this.store.delete(id); |
| | | } |
| | | break; |
| | | case 'trash': |
| | |
| | | case 'bulk-delete': |
| | | const toDelete = Array.from(this.viewController.selectedItems); |
| | | if (toDelete.length > 0 && confirm(`Delete ${toDelete.length} items?`)) { |
| | | toDelete.forEach(id => this.store.deleteItem(id)); |
| | | toDelete.forEach(id => this.store.delete(id)); |
| | | this.viewController.clearSelection(); |
| | | } |
| | | break; |
| | | |
| | | case 'sync': |
| | | this.store.syncQueue(); |
| | | // this.store.syncQueue(); |
| | | break; |
| | | |
| | | case 'refresh': |
| | | this.store.fetchFromServer(this.store.filters); |
| | | this.store.fetch(); |
| | | break; |
| | | } |
| | | } |
| | |
| | | window.removeChildren(container); |
| | | for (let selected of this.viewController.selectedItems) { |
| | | console.log(selected); |
| | | let item = this.store.getItem(selected); |
| | | let item = this.store.get(selected); |
| | | console.log(item); |
| | | const img = window.getTemplate('bulkItem'); |
| | | if (!img) return; |
| | |
| | | } |
| | | |
| | | populateEditForm(itemID) { |
| | | let item = this.store.getItem(itemID); |
| | | console.log(itemID); |
| | | |
| | | let item = this.store.get(parseInt(itemID)); |
| | | console.log(item); |
| | | if (item) { |
| | | this.ui.modals.edit.dataset.itemID = itemID; |
| | |
| | | |
| | | setupFilters() { |
| | | document.querySelectorAll('[data-filter]').forEach(filter => { |
| | | this.settings.addSetting(filter) |
| | | filter.addEventListener('change', (e) => { |
| | | if (this.filterTimeout) { |
| | | clearTimeout(this.filterTimeout); |