diff --git a/dockerfile b/dockerfile index 6e5dd25..6712f23 100644 --- a/dockerfile +++ b/dockerfile @@ -8,6 +8,9 @@ RUN cd /front; npm i ADD src/package.json /src/package.json RUN cd /src; npm i +# Working on backend +ADD src /src + # add source ADD front /front @@ -15,10 +18,6 @@ ADD front /front RUN cd /front;npm run dist RUN cd /front;mv public /src/ -# Working on backend -ADD src /src - - WORKDIR /src EXPOSE 80 diff --git a/front/assets/Redux/Reducers/Login.js b/front/assets/Redux/Reducers/Login.js index a2c5b88..618fd65 100644 --- a/front/assets/Redux/Reducers/Login.js +++ b/front/assets/Redux/Reducers/Login.js @@ -7,6 +7,23 @@ let sortByTitle = function(a, b) { if (nameA > nameB) {return 1;} return 0; } +let sortByFamily = function(a, b) { + var nameA = a.family.toUpperCase(); // ignore upper and lowercase + var nameB = b.family.toUpperCase(); // ignore upper and lowercase + if (nameA < nameB) {return -1;} + if (nameA > nameB) {return 1;} + return 0; +} +let sortVersions = function(a, b) { + const familyPrio = [3,4,1,2]; + var familyA = familyPrio.indexOf(a.id_language); + var familyB = familyPrio.indexOf(b.id_language); + if(familyB == -1){return -1} + if(familyA == -1){return 1} + if (familyA < familyB) {return -1;} + if (familyA > familyB) {return 1;} + return 0; +} export function login(state = initialState, action) { @@ -28,7 +45,10 @@ export function login(state = initialState, action) { console.log(action.type); for (var i = 0, len = action.payload.length; i < len; i++) { lookup[action.payload[i].id_author] = action.payload[i]; + action.payload[i].versions.sort(sortVersions); + action.payload[i].title = action.payload[i].versions.map(i=>i.name).join(' / '); } + action.payload.sort(sortByTitle); return Object.assign({},state,{authors:action.payload,authorsLookup:lookup}) break; @@ -36,7 +56,10 @@ export function login(state = initialState, action) { console.log(action.type); for (var i = 0, len = action.payload.length; i < len; i++) { lookup[action.payload[i].id_city] = action.payload[i]; + action.payload[i].versions.sort(sortVersions); + action.payload[i].title = action.payload[i].versions.map(i=>i.name).join(' / '); } + action.payload.sort(sortByTitle); return Object.assign({},state,{cities:action.payload, citiesLookup:lookup}) break; @@ -45,6 +68,7 @@ export function login(state = initialState, action) { for (var i = 0, len = action.payload.length; i < len; i++) { lookup[action.payload[i].id_language] = action.payload[i]; } + action.payload.sort(sortByFamily); return Object.assign({},state,{languages:action.payload,languagesLookup:lookup}) break; @@ -71,6 +95,7 @@ export function login(state = initialState, action) { for (var i = 0, len = action.payload.length; i < len; i++) { lookup[action.payload[i].id_keyword_category] = action.payload[i]; } + action.payload.sort(sortByTitle); return Object.assign({},state,{keywordCategory:action.payload,keywordCategoryLookup:lookup}) break; @@ -78,11 +103,14 @@ export function login(state = initialState, action) { console.log(action.type); let unassignedKeywords = []; for (var i = 0, len = action.payload.length; i < len; i++) { - lookup[action.payload[i].id_keyword] = action.payload[i]; - if(!action.payload[i].category){ - unassignedKeywords.push(action.payload[i].id_keyword); - } + action.payload[i].versions.sort(sortVersions); + action.payload[i].title = action.payload[i].versions.map(i=>i.title).join(' / '); + lookup[action.payload[i].id_keyword] = action.payload[i]; + if(!action.payload[i].category){ + unassignedKeywords.push(action.payload[i].id_keyword); + } } + action.payload.sort(sortByTitle); return Object.assign({},state,{keywords:action.payload,keywordsLookup:lookup,unassignedKeywords:unassignedKeywords}) break; diff --git a/front/assets/components/App/preload.js b/front/assets/components/App/preload.js index 9873958..1e60e19 100644 --- a/front/assets/components/App/preload.js +++ b/front/assets/components/App/preload.js @@ -17,7 +17,7 @@ resolveFirst.push(fetch("/api/v1/status", return null}) .catch(()=>(null))); -resolveFirst.push(fetch('/api/v1/Languages',{ +resolveFirst.push(fetch('/api/v2/languages',{ method:'GET', credentials: 'same-origin' }) diff --git a/front/assets/components/Authors/mainAuthors.jsx b/front/assets/components/Authors/mainAuthors.jsx index f5254d0..5a63bc0 100644 --- a/front/assets/components/Authors/mainAuthors.jsx +++ b/front/assets/components/Authors/mainAuthors.jsx @@ -38,7 +38,7 @@ export default class mainAuthors extends Component {
anthologia.ecrituresnumeriques.ca/api/v1/authors
{store.getState().loggedIn && add new author} - {this.authors.map((author,i)=>({author.versions.map(a => a.name).join(" / ")}))} + {this.authors.map((author,i)=>({author.title}))} ); } diff --git a/front/assets/components/Keywords/mainKeywords.jsx b/front/assets/components/Keywords/mainKeywords.jsx index b7f9081..84be0ff 100644 --- a/front/assets/components/Keywords/mainKeywords.jsx +++ b/front/assets/components/Keywords/mainKeywords.jsx @@ -38,7 +38,7 @@ export default class mainKeywords extends Component {
anthologia.ecrituresnumeriques.ca/api/v1/keywords
{store.getState().loggedIn && add new keyword} - {this.keywords.map((keyword,i)=>({keyword.versions.map(a => a.title).join(" / ")}))} + {this.keywords.map((keyword,i)=>({keyword.title}))} ); } diff --git a/front/assets/components/Notes/mainNotes.jsx b/front/assets/components/Notes/mainNotes.jsx index fe4cf40..f04580d 100644 --- a/front/assets/components/Notes/mainNotes.jsx +++ b/front/assets/components/Notes/mainNotes.jsx @@ -16,6 +16,13 @@ export default class mainNotes extends Component { } fetchNotes(){ + let sortByTitle = function(a, b) { + var nameA = a.title.toUpperCase(); // ignore upper and lowercase + var nameB = b.title.toUpperCase(); // ignore upper and lowercase + if (nameA < nameB) {return -1;} + if (nameA > nameB) {return 1;} + return 0; + } let that = this; fetch('/api/v1/notes') .then(function(response){ @@ -23,7 +30,7 @@ export default class mainNotes extends Component { }) .then(function(json){ //console.log(json) - that.notes = json; + that.notes = json.sort(sortByTitle); that.forceUpdate(); }); } diff --git a/front/assets/components/Scholies/mainScholies.jsx b/front/assets/components/Scholies/mainScholies.jsx index 798bd83..6847b5d 100644 --- a/front/assets/components/Scholies/mainScholies.jsx +++ b/front/assets/components/Scholies/mainScholies.jsx @@ -17,13 +17,20 @@ export default class mainScholies extends Component { fetchScholies(){ let that = this; + let sortByTitle = function(a, b) { + var nameA = a.title.toUpperCase(); // ignore upper and lowercase + var nameB = b.title.toUpperCase(); // ignore upper and lowercase + if (nameA < nameB) {return -1;} + if (nameA > nameB) {return 1;} + return 0; + } fetch('/api/v1/scholies') .then(function(response){ return response.json(); }) .then(function(json){ //console.log(json) - that.scholies = json; + that.scholies = json.sort(sortByTitle); that.forceUpdate(); }); } diff --git a/src/config/routes.js b/src/config/routes.js index ad070ed..8ebbf29 100644 --- a/src/config/routes.js +++ b/src/config/routes.js @@ -171,6 +171,7 @@ module.exports.routes = { //Languages 'GET /api/v1/languages':'Languages.find', + 'GET /api/v2/languages':{model:'languages',blueprint:'find',populate:false}, 'POST /api/v1/languages':'Languages.create', 'GET /api/v1/languages/:id':'Languages.findOne', 'POST /api/v1/languages/:id':'Languages.update',