diff --git a/package-lock.json b/package-lock.json
index 361ce63d1..d93af0649 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1400,9 +1400,9 @@
"dev": true
},
"commander": {
- "version": "2.12.2",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz",
- "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==",
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
+ "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
"dev": true
},
"commondir": {
@@ -1849,7 +1849,7 @@
"dev": true,
"requires": {
"bluebird": "3.5.1",
- "commander": "2.12.2",
+ "commander": "2.13.0",
"lru-cache": "3.2.0",
"semver": "5.4.1",
"sigmund": "1.0.1"
@@ -3565,9 +3565,9 @@
"dev": true
},
"js-beautify": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.7.4.tgz",
- "integrity": "sha512-6YX1g+lIl0/JDxjFFbgj7fz6i0bWFa2Hdc7PfGqFhynaEiYe1NJ3R1nda0VGaRiGU82OllR+EGDoWFpGr3k5Kg==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.7.5.tgz",
+ "integrity": "sha512-9OhfAqGOrD7hoQBLJMTA+BKuKmoEtTJXzZ7WDF/9gvjtey1koVLuZqIY6c51aPDjbNdNtIXAkiWKVhziawE9Og==",
"dev": true,
"requires": {
"config-chain": "1.1.11",
@@ -6018,9 +6018,9 @@
}
},
"vue": {
- "version": "2.5.9",
- "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.9.tgz",
- "integrity": "sha512-9B9XBpCtj8y5eJFrspIcKxIWt+lG9FMdF8qgyOlUeOIvcS4xSAvcARygbzHA6Pi0KWFj4BvxjtWbuPVWRx/wuA=="
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.2.tgz",
+ "integrity": "sha512-Au9rf8fPkBulFHfZ406UaQDd1jH9fqGRIM+0IHilrXnJ/0TeeMH4SBkNxWf2dGevl2S3aVeu0E/WklEv0/msag=="
},
"vue-custom-element": {
"version": "1.4.4",
@@ -6034,8 +6034,16 @@
"es6-promise": "4.2.4",
"prismjs": "1.10.0",
"set-prototype-of": "1.0.0",
- "vue": "2.5.9",
+ "vue": "2.5.13",
"vue-router": "3.0.1"
+ },
+ "dependencies": {
+ "vue": {
+ "version": "2.5.13",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.13.tgz",
+ "integrity": "sha512-3D+lY7HTkKbtswDM4BBHgqyq+qo8IAEE8lz8va1dz3LLmttjgo0FxairO4r1iN2OBqk8o1FyL4hvzzTFEdQSEw==",
+ "dev": true
+ }
}
},
"vue-hot-reload-api": {
@@ -6052,7 +6060,7 @@
"requires": {
"consolidate": "0.14.5",
"hash-sum": "1.0.2",
- "js-beautify": "1.7.4",
+ "js-beautify": "1.7.5",
"loader-utils": "0.2.17",
"lru-cache": "4.1.1",
"object-assign": "4.1.1",
@@ -6061,7 +6069,7 @@
"source-map": "0.5.7",
"vue-hot-reload-api": "2.2.4",
"vue-style-loader": "1.0.0",
- "vue-template-compiler": "2.5.9",
+ "vue-template-compiler": "2.5.2",
"vue-template-es2015-compiler": "1.6.0"
}
},
@@ -6081,9 +6089,9 @@
}
},
"vue-template-compiler": {
- "version": "2.5.9",
- "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.9.tgz",
- "integrity": "sha512-Icev7QPuQ3flpOvxMe09irgXPklBi/VpiveUDs5nRVH5GA8R9asLBlahsA7AuRZQbaty0cGKm6kh/icDLcr93w==",
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.2.tgz",
+ "integrity": "sha512-FtbqBWvEANPZaeRo09VKEF7tET4kPMtJYqwsy/Nm1fdr1zIcwcTI7CXqeraXMviczho5IjtxZ6Fab1Enm4rHmA==",
"dev": true,
"requires": {
"de-indent": "1.0.2",
diff --git a/src/admin/components/itens-list.vue b/src/admin/components/items-list.vue
similarity index 86%
rename from src/admin/components/itens-list.vue
rename to src/admin/components/items-list.vue
index c516b3586..849a02abf 100644
--- a/src/admin/components/itens-list.vue
+++ b/src/admin/components/items-list.vue
@@ -2,13 +2,13 @@
- {{ scope.row.name }}
+ {{ scope.row.name }}
@@ -26,7 +26,7 @@
import { mapActions, mapGetters } from 'vuex'
export default {
- name: 'ItensList',
+ name: 'ItemsList',
data(){
return {
multipleSelection: []
@@ -34,10 +34,10 @@ export default {
},
methods: {
...mapActions('item', [
- 'fetchItens'
+ 'fetchItems'
]),
...mapGetters('item', [
- 'getItens'
+ 'getItems'
]),
handleSelectionChange(value) {
this.multipleSelection = value;
@@ -50,12 +50,12 @@ export default {
}
},
computed: {
- itens(){
- return this.getItens();
+ items(){
+ return this.getItems();
}
},
created(){
- this.fetchItens();
+ this.fetchItems();
}
}
diff --git a/src/admin/js/router.js b/src/admin/js/router.js
index 6d1ad219c..e5e7b365c 100644
--- a/src/admin/js/router.js
+++ b/src/admin/js/router.js
@@ -6,7 +6,7 @@ import CollectionPage from '../pages/collection-page.vue'
import ItemCreationPage from '../pages/item-creation-page.vue'
import CollectionsList from '../components/collections-list.vue'
-import ItensList from '../components/itens-list.vue'
+import ItemsList from '../components/items-list.vue'
Vue.use(VueRouter);
@@ -14,11 +14,11 @@ const routes = [
{ path: '/', component: CollectionsList },
{ path: '/collections', component: CollectionsList },
{ path: '/collections/:id', component: CollectionPage, children: [
- { path: 'itens-list', component: ItensList }
+ { path: 'items-list', component: ItemsList }
]
},
- { path: '/collections/:id/itens/create', component: ItemCreationPage },
+ { path: '/collections/:id/items/create', component: ItemCreationPage },
{ path: '*', redirect: '/'}
]
diff --git a/src/admin/pages/collection-page.vue b/src/admin/pages/collection-page.vue
index 65569d442..65815b76d 100644
--- a/src/admin/pages/collection-page.vue
+++ b/src/admin/pages/collection-page.vue
@@ -8,7 +8,7 @@
Lista de Itens
- Criar Item
+ Criar Item
diff --git a/src/admin/pages/item-creation-page.vue b/src/admin/pages/item-creation-page.vue
index 004624bed..6ff1d22cc 100644
--- a/src/admin/pages/item-creation-page.vue
+++ b/src/admin/pages/item-creation-page.vue
@@ -2,11 +2,11 @@
Item creation
-
-
+
+
-
+
@@ -46,10 +46,12 @@ export default {
name: 'ItemCreationPage',
data(){
return {
+ collectionId: Number,
form: {
- name: '',
+ collectionId: Number,
+ title: '',
status: '',
- desc: ''
+ description: ''
},
// can be obtained from api later
statusOptions: [{
@@ -67,21 +69,21 @@ export default {
}]
}
},
- components: {
- },
methods: {
...mapActions('item', [
- 'fetchItens'
- ]),
- ...mapGetters('item', [
- 'getItens'
+ 'sendItem'
]),
onSubmit() {
+
+ let data = {collection_id: this.form.collectionId, title: this.form.title, description: this.form.description, status: this.form.status};
+ this.sendItem(data);
}
},
computed: {
},
created(){
+ this.collectionId = this.$route.params.id;
+ this.form.collectionId = this.collectionId;
}
}
diff --git a/src/admin/scss/tainacan-admin.scss b/src/admin/scss/tainacan-admin.scss
index c3e9ed1c9..041ad959e 100644
--- a/src/admin/scss/tainacan-admin.scss
+++ b/src/admin/scss/tainacan-admin.scss
@@ -1,5 +1,6 @@
/* theme color */
-$--color-primary: teal;
+$--color-primary:#25a189;
+$--color-secondary: #01295c;
/* icon font path, required */
//$--font-path: '../../assets/css/fonts/material-icons.css';
diff --git a/src/js/store/modules/item/actions.js b/src/js/store/modules/item/actions.js
index 9e5f3c8cb..12c3eb6fa 100644
--- a/src/js/store/modules/item/actions.js
+++ b/src/js/store/modules/item/actions.js
@@ -2,7 +2,7 @@ import axios from '../../../axios/axios';
export const sendMetadata = ( { commit }, { item_id, metadata_id, values }) => {
return new Promise( ( resolve, reject ) => {
- axios.post('/metadata/item/'+item_id, {
+ axios.post('/item/'+item_id+'/metadata/', {
metadata_id: metadata_id,
values: values
})
@@ -24,4 +24,31 @@ export const sendMetadata = ( { commit }, { item_id, metadata_id, values }) => {
export const updateMetadata = ({ commit }, { item_id, metadata_id, values }) => {
commit('setSingleMetadata', { item_id: item_id, metadata_id: metadata_id, values: values });
-};
\ No newline at end of file
+};
+
+export const sendItem= ( { commit }, { collection_id, title, description, status }) => {
+ return new Promise(( resolve, reject ) => {
+ axios.post('/collection/'+ collection_id + '/items/', {
+ title: title,
+ description: description,
+ status: status
+ })
+ .then( res => {
+ console.log( 'success',res.data );
+ commit('setSingleItem', { collection_id: collection_id, title: title, description: description, status: status });
+ commit('removeError', { collection_id });
+ resolve( res.data );
+ })
+ .catch(error => {
+ console.log( 'error',error.response );
+ commit('setSingleItem', { collection_id: collection_id, title: title, description: description, status: status });
+ commit('setError', { collection_id: collection_id, title: title, description: description, status: status, error: error.response.data.errors });
+ reject( error.response );
+ });
+ });
+ };
+
+
+ export const updateItem = ({ commit }, { item_id, metadata_id, values }) => {
+ commit('setSingleItem', { collection_id: collection_id, title: title, description: description, status: status });
+ };
\ No newline at end of file
diff --git a/src/js/store/modules/item/getters.js b/src/js/store/modules/item/getters.js
index 2d17a01c0..6b162a315 100644
--- a/src/js/store/modules/item/getters.js
+++ b/src/js/store/modules/item/getters.js
@@ -3,6 +3,10 @@ export const getMetadata = state => {
return state.metadata;
}
+export const getItem = state => {
+ return state.item;
+}
+
export const getError = state => {
return state.error;
}
\ No newline at end of file
diff --git a/src/js/store/modules/item/index.js b/src/js/store/modules/item/index.js
index e3af6e4f5..d9b6d0634 100644
--- a/src/js/store/modules/item/index.js
+++ b/src/js/store/modules/item/index.js
@@ -3,7 +3,7 @@ import * as getters from './getters';
import * as mutations from './mutations';
const state = {
- item: null,
+ item: [],
metadata: [],
error: []
};
diff --git a/src/js/store/modules/item/mutations.js b/src/js/store/modules/item/mutations.js
index 9b0d9028c..243802f2f 100644
--- a/src/js/store/modules/item/mutations.js
+++ b/src/js/store/modules/item/mutations.js
@@ -18,6 +18,16 @@ export const setSingleMetadata = ( state, metadata) => {
}
}
+export const setSingleItem = ( state, item) => {
+ let index = state.item.findIndex(itemItem => itemItem.item_id === item.item_id);
+ if ( index >= 0){
+ //state.metadata[index] = metadata;
+ Vue.set( state.item, index, item );
+ }else{
+ state.item.push( item );
+ }
+}
+
export const setError = ( state, metadata ) => {
let index = state.error.findIndex(itemMetadata => itemMetadata.metadata_id === metadata.metadata_id);
if ( index >= 0){