diff --git a/src/admin/components/collections-list.vue b/src/admin/components/collections-list.vue index e76ec82be..c2c01e902 100644 --- a/src/admin/components/collections-list.vue +++ b/src/admin/components/collections-list.vue @@ -14,7 +14,6 @@ - {{ props.row.name }} @@ -25,10 +24,8 @@ - - - - + + @@ -61,9 +58,6 @@ export default { ]), handleSelectionChange(value) { this.multipleSelection = value; - }, - shareCollection(collectionId) { - }, showMoreCollection(collectionId) { diff --git a/src/admin/components/items-list.vue b/src/admin/components/items-list.vue index d7d6edc19..a2553114e 100644 --- a/src/admin/components/items-list.vue +++ b/src/admin/components/items-list.vue @@ -26,9 +26,7 @@ - - - + diff --git a/src/admin/js/router.js b/src/admin/js/router.js index f886a0ee5..a359115cf 100644 --- a/src/admin/js/router.js +++ b/src/admin/js/router.js @@ -3,6 +3,7 @@ import VueRouter from 'vue-router' import AdminPage from '../admin.vue' import CollectionPage from '../pages/collection-page.vue' +import CollectionEditionPage from '../pages/collection-edition-page.vue' import ItemPage from '../pages/item-page.vue' import ItemEditionPage from '../pages/item-edition-page.vue' @@ -19,6 +20,8 @@ const routes = [ ], meta: { title: 'Collection Page' } }, + { path: '/collections/new', component: CollectionEditionPage, meta: {title: 'Create Collection'} }, + { path: '/collections/:id/edit', component: CollectionEditionPage, meta: {title: 'Create Collection'} }, { path: '/collections/:id/items/new', component: ItemEditionPage, meta: {title: 'Create Item'} }, { path: '/collections/:collection_id/items/:id/edit', component: ItemEditionPage, meta: {title: 'Edit Item'} }, { path: '/collections/:collection_id/items/:id', component: ItemPage, meta: {title: 'Item Page'} }, diff --git a/src/admin/pages/collection-edition-page.vue b/src/admin/pages/collection-edition-page.vue new file mode 100644 index 000000000..5aba205b7 --- /dev/null +++ b/src/admin/pages/collection-edition-page.vue @@ -0,0 +1,214 @@ + + + + + + + diff --git a/src/admin/pages/item-edition-page.vue b/src/admin/pages/item-edition-page.vue index a30f3e259..4df9f4887 100644 --- a/src/admin/pages/item-edition-page.vue +++ b/src/admin/pages/item-edition-page.vue @@ -112,7 +112,6 @@ export default { onSubmit() { // Puts loading on Draft Item creation this.isLoading = true; - let loadingInstance = this; let data = {item_id: this.itemId, title: this.form.title, description: this.form.description, status: this.form.status}; this.updateItem(data).then(updatedItem => { @@ -124,7 +123,7 @@ export default { this.form.description = this.item.description; this.form.status = this.item.status; - loadingInstance.isLoading = false; + this.isLoading = false; this.$router.push('/collections/' + this.form.collectionId + '/items/' + this.itemId); }); @@ -146,7 +145,6 @@ export default { createNewItem() { // Puts loading on Draft Item creation this.isLoading = true; - let loadingInstance = this; // Creates draft Item let data = {collection_id: this.form.collectionId, title: '', description: '', status: 'draft'}; @@ -191,7 +189,6 @@ export default { } else if (this.$route.fullPath.split("/").pop() == "edit") { this.isLoading = true; - let loadingInstance = this; // Obtains current Item ID from URL this.pathArray = this.$route.fullPath.split("/").reverse(); diff --git a/src/js/store/modules/collection/actions.js b/src/js/store/modules/collection/actions.js index 699030e2a..f07eb2482 100644 --- a/src/js/store/modules/collection/actions.js +++ b/src/js/store/modules/collection/actions.js @@ -19,10 +19,34 @@ export const fetchCollections = ({ commit }) => { } export const fetchCollection = ({ commit }, id) => { - axios.get('/collections/' + id) + return new Promise((resolve, reject) =>{ + axios.get('/collections/' + id) .then(res => { + console.log(res); let collection = res.data; commit('setCollection', collection); + resolve( res.data ); }) - .catch(error => console.log(error)); -} \ No newline at end of file + .catch(error => { + console.log(error); + reject(error); + }) + }); +} + +export const updateCollection = ({ commit }, { collection_id, name, description, status }) => { + return new Promise((resolve, reject) => { + axios.patch('/collections/' + collection_id, { + name: name, + description: description, + status: status + }).then( res => { + commit('setCollection', { id: collection_id, name: name, description: description, status: status }); + resolve( res.data ); + }).catch( error => { + commit('setCollection', { id: collection_id, name: name, description: description, status: status }); + reject( error.response ); + }); + + }); +}