diff --git a/front-ui/app/actions/navigationActions.js b/front-ui/app/actions/navigationActions.js index 889df5c..928da51 100644 --- a/front-ui/app/actions/navigationActions.js +++ b/front-ui/app/actions/navigationActions.js @@ -1,21 +1,23 @@ var AppDispatcher = require('../dispatcher/appDispatcher'); var NavigationConstants = require('../constants/navigationConstants'); +var globals = require('../globals'); // Define action methods var NavigationActions = { + // select item goToItemDetails: function(item) { AppDispatcher.handleAction({ actionType: NavigationConstants.CHANGE_URL, - url: '/artikal/' + item.get('id') +'/' + item.get('name') + url: '/artikal/' + item.get('id') +'/' + globals.Slugify(item.get('name')) }); }, goToSection: function(section) { AppDispatcher.handleAction({ actionType: NavigationConstants.CHANGE_URL, - url: '/sekcija/'+ section.get('id') + '/' + section.get('name') + url: '/sekcija/'+ section.get('id') + '/' + globals.Slugify(section.get('name')) }); }, _getQueryStringPart: function(query, offset, limit) { @@ -46,7 +48,7 @@ var NavigationActions = { }, goToCategory: function(category,section, query, offset, limit) { - var url ='/sekcija/' + section.get('name') +'/kategorija/'+ category.get('id') + '/' + category.get('name'); + var url ='/sekcija/' + section.get('name') +'/kategorija/'+ category.get('id') + '/' + globals.Slugify(category.get('name')); var q = this._getQueryStringPart(query, offset, limit); AppDispatcher.handleAction({ actionType: NavigationConstants.CHANGE_URL, @@ -56,7 +58,7 @@ var NavigationActions = { goToSubCategory: function(subCategory, offset, limit, query) { var q = this._getQueryStringPart(query, offset, limit); - var url = '/podkategorija/' + subCategory.get('id') + '/' + subCategory.get('name'); + var url = '/podkategorija/' + subCategory.get('id') + '/' + globals.Slugify(subCategory.get('name')); AppDispatcher.handleAction({ actionType: NavigationConstants.CHANGE_URL, url: (url + q) diff --git a/front-ui/app/globals.js b/front-ui/app/globals.js index 5d4b61c..e5b14ec 100644 --- a/front-ui/app/globals.js +++ b/front-ui/app/globals.js @@ -4,12 +4,24 @@ module.exports = { ItemGroupIdOfStartPage: "1", ItemGroupIdOfEmptyCartPage: "1", FormatCurrency: function(amount_s) { - var amount = parseFloat(amount_s); - return ( amount.toFixed(2) + " KM" ) + var amount = parseFloat(amount_s); + return (amount.toFixed(2) + " KM") }, FormatPercentage: function(amount_s) { - var amount = parseFloat(amount_s); - return ( amount.toFixed(2) + "%" ) + var amount = parseFloat(amount_s); + return (amount.toFixed(2) + "%") }, - MaxNumberOfItemsToBeAdded: 1000 + MaxNumberOfItemsToBeAdded: 1000, + + Slugify: function(text) { + return text.toString().toLowerCase() + .replace(/š/g,'s') + .replace(/[čć]/g,'c') + .replace(/[ž]/g,'z') + .replace(/\s+/g, '-') // Replace spaces with - + .replace(/[^\w\-]+/g, '') // Remove all non-word chars + .replace(/\-\-+/g, '-') // Replace multiple - with single - + .replace(/^-+/, '') // Trim - from start of text + .replace(/-+$/, ''); // Trim - from end of text + } };