diff --git a/src/app.js b/src/app.js index eada60d..4383a21 100644 --- a/src/app.js +++ b/src/app.js @@ -83,6 +83,33 @@ var templateData = { } ], albumsCount: 0, + budget: [ + { + name: "Rozlucka se svobodou", + items: [ + { + name: "Polozka 1", + bought: false, + price: 1200 + }, + { + name: "Polozka 2", + bought: false, + price: 1200 + }, + { + name: "Polozka 3", + bought: true, + price: 1200 + }, + { + name: "Polozka 4", + bought: false, + price: 1200 + }, + ] + } + ] }; /** @@ -140,31 +167,127 @@ app.post ('/:page?', function (req, res) { var redirectUrl = '/' + (typeof req.params.page === 'undefined' ? 'index' : req.params.page); if (typeof req.body.redirectParams !== 'undefined') { - redirectUrl += '?'+req.body.redirectParams; + redirectUrl += '?' + req.body.redirectParams; } res.redirect (redirectUrl) }); -app.post('/editor/album', function (req, res) { - templateData.albumsCount ++; +app.post ('/editor/album', function (req, res) { + templateData.albumsCount++; var redirectUrl = '/editor/gallery_detail'; if (typeof req.body.redirectParams !== 'undefined') { - redirectUrl += '?'+req.body.redirectParams; + redirectUrl += '?' + req.body.redirectParams; } res.redirect (redirectUrl) }); +app.post ('/budget/groups', function (req, res) { + + var groups = req.body.group; + + for (var i in groups) { + if (typeof templateData.budget[i] == 'undefined') { + templateData.budget[i] = { + name: groups[i], + items: [] + } + } else { + templateData.budget[i].name = groups[i]; + } + } + + var redirectUrl = '/budget'; + + if (typeof req.body.redirectParams !== 'undefined') { + redirectUrl += '?' + req.body.redirectParams; + } + + res.redirect (redirectUrl) + +}); + +app.post ('/budget/add_item', function (req, res) { + + var items = req.body.name.length; + + var newGroupsMap = {}; + + for (var i = 0; i < items; i++) { + var group = req.body.group[i]; + var itemName = req.body.name[i]; + var price = req.body.price[i]; + + if (group == 'new') { + var newGroupName = req.body.group_name[i]; + + if (typeof newGroupsMap[newGroupName] == 'undefined') { + templateData.budget.push ({name: newGroupName, items: []}); + + newGroupsMap[newGroupName] = templateData.budget.length; + + group = templateData.budget.length - 1; + } else { + group = newGroupsMap[newGroupName]; + } + } + + templateData.budget[group].items.push ({ + name: itemName, + price: price, + bought: false + }); + + } + + var redirectUrl = '/budget'; + + if (typeof req.body.redirectParams !== 'undefined') { + redirectUrl += '?' + req.body.redirectParams; + } + + res.redirect (redirectUrl) + +}); + + +app.get('/budget/detail/:id', function (req, res) { + + var detail = templateData.budget[req.params.id]; + + app.set ('layout', false); + + app.set ('views', viewsRootBase); + + + res.render ('partials/backend/budgetDetail.ejs', detail); + + +}); + +app.post ('/budget/bought/:group/:item', function (req, res) { + + var group = req.params.group; + var item = req.params.item; + + templateData.budget[group].items[item].bought = (req.body.bought == 'true' ? true : false); + + console.log (templateData.budget[group]); + + res.end (); + +}); + app.post ('/editor/:page?', function (req, res) { savePost (req, res); var redirectUrl = '/editor/' + (typeof req.params.page === 'undefined' ? 'index' : req.params.page); if (typeof req.body.redirectParams !== 'undefined') { - redirectUrl += '?'+req.body.redirectParams; + redirectUrl += '?' + req.body.redirectParams; } res.redirect (redirectUrl) diff --git a/src/assets/js/program.js b/src/assets/js/program.js index ae1f786..fab3e3f 100644 --- a/src/assets/js/program.js +++ b/src/assets/js/program.js @@ -17,7 +17,7 @@ function renameInputs() { var i = 0; items.each (function () { - var $rows = $ (this).find ('input'); + var $rows = $ (this).find ('input,select'); $rows.each (function () { var name = $ (this).attr ('name'); $ (this).attr ('name', name.replace (/\[[0-9]+\]/g, '[' + i + ']')); diff --git a/src/assets/scss/editor/app.scss b/src/assets/scss/editor/app.scss index 266710e..89de474 100644 --- a/src/assets/scss/editor/app.scss +++ b/src/assets/scss/editor/app.scss @@ -3,7 +3,7 @@ @import "timeline"; @import "gallery"; -.program-template:first-child, .template:first-child { +.item-template:first-child, .program-template:first-child, .template:first-child { .js-remove-program { display: none; } diff --git a/src/views/backend/budget.ejs b/src/views/backend/budget.ejs index c2c7726..c53a8e5 100644 --- a/src/views/backend/budget.ejs +++ b/src/views/backend/budget.ejs @@ -1,185 +1,165 @@
|
-
-
-
- |
- Položka 1 | -1300 Kč | -
| + > + | +<%= item.name %> | +<%= item.price %> Kč | +
|
-
-
-
- |
- Položka 2 | -4500 Kč | -
+ + Dalších <%= budget[i].items.length - 4 %> položek
+ <% } %> - -|
-
-
-
- |
- Položka 1 | -1300 Kč | -
|
-
-
-
- |
- Položka 2 | -4500 Kč | -
|
-
-
-
- |
- Položka 3 | -3100 Kč | -
|
-
-
-
- |
- Položka 4 | -3400 Kč | -
|
-
-
-
- |
- Položka 5 | -2000 Kč | -
| Koupeno | +Jméno | +Cena | ++ |
|---|---|---|---|
| + + + | ++ + | +
+
+
+
+
+
+
+ Kč
+
+ |
+ + + + + | +
| + + Přidat položku + | +|||