Upravy v editoru webu

This commit is contained in:
Michal Kváček
2018-11-27 22:19:33 +01:00
parent 450b68b89d
commit b9611a85c1
34 changed files with 1018 additions and 423 deletions
+9 -6
View File
@@ -1,7 +1,7 @@
// $ ('#mainInfoModal').on ('show.bs.modal', function (e) { // $ ('#mainInfoModal').on ('show.bs.modal', function (e) {
$ (document).ready (function (e) { $ (document).ready (function (e) {
$ ('#map').locationpicker ({ $ ('#map').locationpicker ({
location: {latitude: 46.15242437752303, longitude: 2.7470703125}, location: {latitude: 49.8712825, longitude: 16.3073431},
radius: 10, radius: 10,
enableReverseGeocode: true, enableReverseGeocode: true,
draggable: true, draggable: true,
@@ -15,8 +15,6 @@ $ (document).ready(function (e) {
}); });
}); });
$ ('.js-move-button-trigger').click (function () { $ ('.js-move-button-trigger').click (function () {
$ ('.js-move-button').show (); $ ('.js-move-button').show ();
$ ('.gallery__buttons').show (); $ ('.gallery__buttons').show ();
@@ -32,7 +30,6 @@ $('.js-move-done-button-trigger').click(function () {
$ ('.js-move-button-trigger').attr ('hidden', false); $ ('.js-move-button-trigger').attr ('hidden', false);
}); });
$ ('.js-delete-button-trigger').click (function () { $ ('.js-delete-button-trigger').click (function () {
$ ('.js-delete-checkbox').show (); $ ('.js-delete-checkbox').show ();
$ ('.gallery__buttons').show (); $ ('.gallery__buttons').show ();
@@ -49,9 +46,15 @@ $('.js-delete-button-confirmation-trigger').click(function () {
$ ('.js-delete-button-trigger').attr ('hidden', false); $ ('.js-delete-button-trigger').attr ('hidden', false);
}); });
$(function() { $('#cp9').colorpicker({ customClass: 'colorpicker-2x', sliders: { saturation: { maxLeft: 200, maxTop: 200 }, hue: { maxTop: 200 }, alpha: { maxTop: 200 } } }); }); $ (function () {
$ ('#cp9').colorpicker ({
customClass: 'colorpicker-2x',
sliders: {saturation: {maxLeft: 200, maxTop: 200}, hue: {maxTop: 200}, alpha: {maxTop: 200}}
});
});
$(function() {$('#cp9').colorpicker().on( $ (function () {
$ ('#cp9').colorpicker ().on (
'changeColor', 'changeColor',
function () { function () {
$ ('#cp9').css ('background-color', $ ('#cp9').css ('background-color',
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

+8 -2
View File
@@ -3,20 +3,26 @@
// JS // JS
// components // components
import $ from 'jquery'; import $ from 'jquery';
window.jQuery = $;
window.$ = $;
import 'bootstrap'; import 'bootstrap';
import 'fullcalendar'; import 'fullcalendar';
import Jodit from 'jodit'; import Jodit from 'jodit';
import Sortable from 'sortablejs-float'; import Sortable from 'sortablejs-float';
import 'pc-bootstrap4-datetimepicker'; import 'pc-bootstrap4-datetimepicker';
// SASS // SASS
import './src/assets/scss/app.scss'; import './src/assets/scss/app.scss';
// globaly accessible variables and classes // globaly accessible variables and classes
window.jQuery = $;
window.$ = $;
window.Jodit = Jodit; window.Jodit = Jodit;
window.Sortable = Sortable; window.Sortable = Sortable;
import 'lightbox2';
// custom made functions - everything in src/assets/js // custom made functions - everything in src/assets/js
function requireAll(r) { function requireAll(r) {
r.keys ().forEach (r); r.keys ().forEach (r);
+5
View File
@@ -3323,6 +3323,11 @@
} }
} }
}, },
"lightbox2": {
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/lightbox2/-/lightbox2-2.10.0.tgz",
"integrity": "sha1-BrP3t718EzLCDQN2AtlldUL9feQ="
},
"load-json-file": { "load-json-file": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+2
View File
@@ -4,6 +4,7 @@
"description": "Frontend svatebniho planovace", "description": "Frontend svatebniho planovace",
"main": "index.js", "main": "index.js",
"dependencies": { "dependencies": {
"body-parser": "^1.18.3",
"bootstrap": "^4.1.3", "bootstrap": "^4.1.3",
"ejs": "^2.6.1", "ejs": "^2.6.1",
"express": "^4.16.4", "express": "^4.16.4",
@@ -13,6 +14,7 @@
"fullcalendar": "^3.9.0", "fullcalendar": "^3.9.0",
"jodit": "^3.2.22", "jodit": "^3.2.22",
"jquery": "^3.3.1", "jquery": "^3.3.1",
"lightbox2": "^2.10.0",
"pc-bootstrap4-datetimepicker": "^4.17.50", "pc-bootstrap4-datetimepicker": "^4.17.50",
"popper.js": "^1.14.5", "popper.js": "^1.14.5",
"sortablejs-float": "^1.7.0" "sortablejs-float": "^1.7.0"
+103 -2
View File
@@ -1,4 +1,3 @@
var express = require ('express'); var express = require ('express');
var app = express (); var app = express ();
@@ -10,6 +9,78 @@ app.set ('view engine', 'ejs');
app.use ('/dist', express.static ('dist')); app.use ('/dist', express.static ('dist'));
app.use (expressLayouts); app.use (expressLayouts);
var bodyParser = require ('body-parser');
app.use (bodyParser.json ());
app.use (bodyParser.urlencoded ({extended: true}));
var templateData = {
invitations: [
{
name: "Frantisek Novak",
person_count: 2,
will_come: true,
date: new Date ('2018-11-20')
},
{
name: "Frantisek Dvorak",
person_count: 4,
will_come: false,
date: new Date ('2018-11-19')
},
{
name: "Frantisek Dvorak",
person_count: 4,
will_come: null
},
{
name: "Frantisek Dvorak",
person_count: 4,
will_come: null
},
],
tasks: [
{name: "Ukol 1", done: false},
{name: "Ukol 2", done: true},
{name: "Ukol 3", done: true},
{name: "Ukol 4", done: false},
],
aboutUs: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
notes: "",
wedding: {
when: '1. 9. 2019',
where: 'Zámek Litomyšl',
at: '11:00'
},
ourStory: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
program: [
{
icon: "automobile",
time: "10:00",
title: "Příjezd nevěsty"
},
{
icon: "heart",
time: "11:00",
title: "Obřad"
},
{
icon: "cutlery",
time: "12:00",
title: "Hostina"
},
{
icon: "glass",
time: "13:00",
title: "Přípitek"
},
{
icon: "birthday-cake",
time: "12:00",
title: "Krájení dortu"
}
]
};
/** /**
* Render template - check if exists * Render template - check if exists
* *
@@ -21,8 +92,10 @@ function renderTemplate(req, res) {
var urlSegment = url.replace (/[^a-z0-9_]/, ''); var urlSegment = url.replace (/[^a-z0-9_]/, '');
var viewsRoot = app.get ('views'); var viewsRoot = app.get ('views');
templateData.queryString = req.query;
if (fs.existsSync (viewsRoot + '/' + urlSegment + ".ejs")) { if (fs.existsSync (viewsRoot + '/' + urlSegment + ".ejs")) {
res.render (urlSegment); res.render (urlSegment, templateData);
} else { } else {
res.status (404); res.status (404);
res.send ('View ' + viewsRoot + '/' + urlSegment + '.ejs not found'); res.send ('View ' + viewsRoot + '/' + urlSegment + '.ejs not found');
@@ -49,4 +122,32 @@ app.get ('/:page?', function (req, res) {
renderTemplate (req, res); renderTemplate (req, res);
}); });
function savePost(req, res) {
console.log (req.body);
for (var i in req.body) {
templateData[i] = req.body[i];
}
}
app.post ('/:page?', function (req, res) {
savePost (req, res);
var redirectUrl = '/' + (typeof req.params.page === 'undefined' ? 'index' : req.params.page);
res.redirect (redirectUrl)
});
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;
}
res.redirect (redirectUrl)
});
app.listen (8080); app.listen (8080);
View File
+6 -1
View File
@@ -1,4 +1,9 @@
$ (document).ready (function () { $ (document).ready (function () {
initDatePickers();
});
function initDatePickers() {
$ ('.select-time').datetimepicker ({ $ ('.select-time').datetimepicker ({
format: 'LT', format: 'LT',
locale: 'cs', locale: 'cs',
@@ -9,4 +14,4 @@ $ (document).ready (function () {
locale: 'cs', locale: 'cs',
minDate: new Date () minDate: new Date ()
}); });
}); }
+20 -21
View File
@@ -108,7 +108,7 @@
case "datetime": case "datetime":
$input.addClass ('select-datetime'); $input.addClass ('select-datetime');
initDateTimePickers (); // initDateTimePickers ();
$input.datetimepicker ('show'); $input.datetimepicker ('show');
break; break;
@@ -147,25 +147,25 @@
return newData; return newData;
} }
$.nette.ajax ({ // $.nette.ajax ({
url: url, // url: url,
method: "POST", // method: "POST",
data: { // data: {
value: newData // value: newData
} // }
}).done (function () { // }).done (function () {
// todo: very ugly, sorry... // // todo: very ugly, sorry...
$ ("." + $trigger.attr ('class')).editable (callback); // $ ("." + $trigger.attr ('class')).editable (callback);
//
// todo remove timepicker in nicer way // // todo remove timepicker in nicer way
$ ('.bootstrap-datetimepicker-widget').remove (); // $ ('.bootstrap-datetimepicker-widget').remove ();
//
// todo: somehow not working...? // // todo: somehow not working...?
callback (); // callback ();
//
var event = jQuery.Event ("snippet-reloaded"); // var event = jQuery.Event ("snippet-reloaded");
$ (document).trigger (event); // $ (document).trigger (event);
}); // });
return newData; return newData;
}; };
@@ -202,4 +202,3 @@ function initEditable() {
} }
$ (document).ready (initEditable); $ (document).ready (initEditable);
$ (document).on ('snippet-reloaded', initEditable);
+9
View File
@@ -0,0 +1,9 @@
$(document).ready(function () {
setTimeout(function () {
$('.js-notification').fadeOut(1000);
}, 1000);
});
+89 -3
View File
@@ -1,13 +1,99 @@
$ (document).on ('click', '.js-add-program', function () { $ (document).on ('click', '.js-add-program', function () {
var $template = $ ($ (this).data ('template')); var templateSelector = $ (this).data ('template') + ":last";
var $template = $ (templateSelector);
var $templateContainer = $ ($ (this).data ('template-container')); var $templateContainer = $ ($ (this).data ('template-container'));
var $copy = $template.clone ().removeClass ('template'); var $copy = $template.clone ().removeClass ('template');
$copy.find ('.js-remove-program').removeAttr('hidden');
var itemsCount = $ ('.template-container__item').length;
$copy.find ('input').each (function () {
var name = $ (this).attr ('name');
$ (this).attr ('name', name.replace (/\[0\]/g, '[' + itemsCount + ']'));
});
$copy.appendTo ($templateContainer); $copy.appendTo ($templateContainer);
$ ('.select-time').datetimepicker ({
format: 'LT',
locale: 'cs',
stepping: 10,
});
});
function renameInputs() {
var items = $ ('.template-container__item');
var i = 0;
items.each (function () {
var $rows = $ (this).find ('input');
$rows.each (function () {
var name = $ (this).attr ('name');
$ (this).attr ('name', name.replace (/\[[0-9]+\]/g, '[' + i + ']'));
});
i++;
});
}
$(document).on('click', '.js-sort-events', function ( ){
var $templateContainer = $ ($ (this).data ('template-container'));
var $templates = $ ($ (this).data ('template'));
sortEvents($templateContainer, $templates);
$(this).fadeOut();
});
function sortEvents($container, $templates) {
var elements = $templates.get();
elements.sort(function (a, b) {
console.log(a);
var timeA = $(a).find('.select-time').val();
var timeB = $(b).find('.select-time').val();
return timeA > timeB;
});
$container.append(elements);
renameInputs();
}
function checkEvents($container, $templates) {
var lastTime = null;
var orderCorrect = true;
$templates.each(function() {
var time = $(this).find('.select-time').val();
if (time < lastTime) {
orderCorrect = false;
}
lastTime = time;
});
if (!orderCorrect) {
$('.js-sort-events').fadeIn();
} else {
$('.js-sort-events').fadeOut();
}
}
$(document).ready(function () {
setInterval(function () {
var $templateContainer = $ ('.template-container');
var $templates = $ ('.template');
checkEvents($templateContainer, $templates);
}, 1000);
}); });
$ (document).on ('click', '.js-remove-program', function () { $ (document).on ('click', '.js-remove-program', function () {
+14 -6
View File
@@ -22,15 +22,23 @@ function initSortable() {
handle: ".sort-handle", handle: ".sort-handle",
draggable: ".draggable", draggable: ".draggable",
onEnd: function (evt) { onEnd: function (evt) {
var ordered = [];
// get item ids var items = $ ('.template-container__item');
$ ('.sortable-item').each (function () { var i = 0;
var $e = $ (this);
ordered.push ($e.data ('id')); items.each (function () {
var $rows = $ (this).find ('input');
$rows.each (function () {
var name = $ (this).attr ('name');
console.log(name);
$ (this).attr ('name', name.replace (/\[[0-9]+\]/g, '[' + i + ']'));
}); });
i++;
});
} }
}); });
} }
@@ -27,3 +27,17 @@ $ (".file-upload").change (function () {
readURL (this, preview); readURL (this, preview);
}); });
$(document).on('submit', 'form.js-upload', function (e){
// var
$(this).find('input[type=file]').each(function() {
});
// e.preventDefault();
// return false;
});
+1
View File
@@ -27,6 +27,7 @@ $fa-font-path: "~font-awesome/fonts";
@import "main"; @import "main";
@import "backToDashboard"; @import "backToDashboard";
@import "boxes"; @import "boxes";
@import "lightbox";
// editor // editor
@import "editor/app"; @import "editor/app";
+9
View File
@@ -3,3 +3,12 @@
@import "timeline"; @import "timeline";
@import "gallery"; @import "gallery";
.template:first-child {
.js-remove-program {
display: none;
}
}
.sort-handle:hover {
cursor: move;
}
+207
View File
@@ -0,0 +1,207 @@
html.lb-disable-scrolling {
overflow: hidden;
/* Position fixed required for iOS. Just putting overflow: hidden; on the body is not enough. */
position: fixed;
height: 100vh;
width: 100vw;
}
.lightboxOverlay {
position: absolute;
top: 0;
left: 0;
z-index: 9999;
background-color: black;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
opacity: 0.8;
display: none;
}
.lightbox {
position: absolute;
left: 0;
width: 100%;
z-index: 10000;
text-align: center;
line-height: 0;
font-weight: normal;
}
.lightbox .lb-image {
display: block;
height: auto;
max-width: inherit;
max-height: none;
border-radius: 3px;
/* Image border */
border: 4px solid white;
}
.lightbox a img {
border: none;
}
.lb-outerContainer {
position: relative;
*zoom: 1;
width: 250px;
height: 250px;
margin: 0 auto;
border-radius: 4px;
/* Background color behind image.
This is visible during transitions. */
background-color: white;
}
.lb-outerContainer:after {
content: "";
display: table;
clear: both;
}
.lb-loader {
position: absolute;
top: 43%;
left: 0;
height: 25%;
width: 100%;
text-align: center;
line-height: 0;
}
.lb-cancel {
display: block;
width: 32px;
height: 32px;
margin: 0 auto;
//background: url(../images/loading.gif) no-repeat;
}
.lb-nav {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 10;
}
.lb-container > .nav {
left: 0;
}
.lb-nav a {
outline: none;
background-image: url('data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
}
.lb-prev, .lb-next {
height: 100%;
cursor: pointer;
display: block;
}
.lb-nav a.lb-prev {
width: 34%;
left: 0;
float: left;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAtCAYAAADsvzj/AAAFF0lEQVR4Ac2ZW0xcVRSGPTNnhlPKcCsUAeeChkEVxhutDQwzMANaqamNWgpaH+yDIaZp1cRHbgH0gTsxkmDCI/hiRAqgD5qYRgKQ8II6TE00wfgGAcIdKeM/ydrNZIezxxg9m518gRxWmn6s9a9zhvNQJBL5T/gfjokwA5Uw0zWFeHBOugiTsAArfSWZky+iABVowAZSwRkiDSTRz1iHlJMmogATsIDTIAPYgRs8SeTTtXSQSLVKFNkivIQKksDDJFCsquqLmqZdAa/i+yCuPQ1cJHOKjdpJEWGdsIFs8BQoy83NvTEzMzO3t7f318HBweHc3Nxdj8dznWQeIWmpIryENUaiCPgdDsfN+fn5XyLcWV5eDlmt1gBqHgOpbAHIFmESySAHeECF0+m8hd/+vcgxZ3d39wBj9grqCkA6iaiyRBRunJhEpcvl+nBhYeG3iM7Z2dnZgkg1ZSgNqLI6wgebSVTZ7faPlpaW/tSTWF9f36ivr+9AbQkF3iZRhAs2dSInJ+eDUCj0h0Biq7S09BPUBkEhyAKJssKusE6QRCGoQLDfn56eDulJrK6ubgeDwS7UXgTPAztIkXUfUbhxKgLlyMRtBPtXPYm1tbXdqqoqJnEOOGhbJQCTkSJ8sJlEMNoJrFhdicPDw6PKyspe1FaD85yE2YBnLUGwSSIrK+s2bnZLehIbGxubfr+/B7WXSMJJ42QlCcVAES7YJJGdnR0dp7BgnLZKSko6qBPngIvrBEkYIKIT7PLoOKET4TjB7kbty+A8SaRxmcAxQEQn2BUI9q3Z2dl7gk7sINhRiZeoE87jMmGECB/s3JhgR8dJV2Jzc3Pb5/N1UieKKdgsEyaAY5wIk2Dj5GHBRifCgmBHb3adLBNsO3HBNkxEAWZwCmSCx4EPwb4ZJ9jbCHYXSRQDpyDYhomoNFIOUIRMvINO/KQnsbKyshMIBD5D7RVwgQWblzBahD2Sp5jN5jzM+9uLi4s/60mEw+FNbKcvUH8DVIECcAZoXLCliaRaLBbX8PBwb0RwRkZGfkftx+BdUM4+KInDbdxoWUCKoih5CQkJgYGBgS/xs6PjRPb394+ampp+RP174CIoBGcpYypQZIqYY+4dz4DLvb29Y6LONDY2fou6OuAF+SCDZCgj8kQSQDqNihfU9vX1TYlkGhoa7qDuDVBKMpQVrjMG30fYCs6gAHuRmdqurq5JkUxLS8sEaq+CMq4zJGOgCB2Fk8kHJSaTqaazs3Pi2MzQaWtrm0RtDfDFyCQyGUNFOJlEkMlkwLWenp5vRDKtra1TNGYsM5mcjKEifGeYjBfUQUaYmebm5omYzLjFC8C4zyNqTGfcNDZ1/2ABjKHudZLXkTFARJAZN/CqqnqNMqN7Ojo6vqMF4ONkVFmvFUQLQNiZ7u7u76PZAn6S4TJjrIhoAdT+iwXAdQYYKCJaAG/iPhNvAYyj7jXwAngUpAGrDBF+ATCZAuBXFOX60NDQ3TiPM1/hyfoyPf7kgNNSXyvwmSGZMk3T3hocHPwhzlPzJLLFnpZT5PztV5wZNyilbTZFmTnZrxU4GZWXATV4ap4kmeNELlEticjsSHyZq/39/V/j374P2Lk/Pj5+BznxUuDlj1acJ4B8cAH/4er29vbPR0dH58fGxubx/ac2my1Ab3iz5Yc9/gJIB05QCJ4Fz9FXD3gC5HIfi+WKCGQ0GpuzwA7yCDtdS+b/SCFfRPwaQqPxSSaS6JrlwUjR+RtEvCM0ct4sLQAAAABJRU5ErkJggg==') left 48% no-repeat;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
opacity: 0;
-webkit-transition: opacity 0.6s;
-moz-transition: opacity 0.6s;
-o-transition: opacity 0.6s;
transition: opacity 0.6s;
}
.lb-nav a.lb-prev:hover {
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}
.lb-nav a.lb-next {
width: 64%;
right: 0;
float: right;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAtCAYAAADsvzj/AAAFDUlEQVR4Ac2ZS0xcVRjHvTN3hisw0GIRZ3AeLWHQWqdVsRqgA86AUmpqoy20Whd2YYhprJq45BVAF7yJkQQTluDGiEhBF5qYRsIjYYMKQxNNMO4gQHgjZfxP8pF8ufEe0qQ5pyf5BTKcWfzyff/vnHt5xLQ0wgbsQCfswEY80BWPxx8I5sUlHMBJP0nm4RfRWAUMkAqOgseII8AFDNqjPYwiGuEAySADeEEuOEkE6bNjIIX22riQchHWSo+SRACc1nU9ahjGG+ASfn8Vn+WT0BNUMV0so04kFTwJTodCoeuTk5N3dnd397a3t/8dHx+fzM7OvoG/nQPPADdwscqoF2HBPgJynE5nZGFhYTZuWlNTU3/4fL6b2FMMnmUyTpJRLqKTSAbIQyu9vrW1tRv/n4Uqzfv9/g+x7xUQAh6QxmVUV0SnKRWESMXm5uZ63GJNT0//GQgEPsHeUibD20xTLeKioBdUV1e3rKysrFrJzM3N/eP1ej/F3jImIxgAcsOeDLLAKRAtLCz8HDKWlZmdnf3b4/F8zCojGADyz5F04AUvgPJoNNq2tLS0YSUzNjY2iwHwEWXmFHCzymiqRGwgiaaXD7wIysvKytqWl5e3rGQwAO4iM7ewt4SmmYfLqLpr2U0yZ0FFaWlp597e3r6VDEbzXapMlGQEA0COiEYyTmozP8lcKC4u7lhdXV2zksGhOZeVlXWLy5gHgDwRJsMqE6A2qygoKGhBm60L2izmdruZjGkAyBShxTNzlGTOgvMYAO2iAYDKxKjNSgQDQI6IRWb8VJnXMADaUZlNK5mJiYl5DAC6AQgGgCwRWjaWGR/IB+fD4XDr2trahqDN5lEZ3mbZ5gEgW4QPAD6aK3BotmIArAsqE2MDIMTajGTkinAZ3mb5NAAS58zGIQPgJvaGwVMgk5597ECTLcJl+AB4GVyKRCJfLi4uijLzGzLzHrWYj1pMVyXCB4BBz/J5oAzcwDT7OhaLWZ4zMzMzvyNX79rt9uOUNyewqRSxsbzk0Jh9H3w2MDDwV1yw+vv7Ox0OR4C+q1REAzr1+ON0TpSDD+rq6n7d2dmxusbs9/T0fJOUlBTRNO2gIg6lGSGJYyAXFIFrtbW1P4oq0dnZOYR9F8EZdqaoCDtVgrJBEoXgck1Nzfciia6urlHsu0rSOSADJEkXYRK8EufAlYaGhtsiiba2thFk4kAij75Po1fiOcIkkplEGFQ2NTWNCBz2W1tbb9tstkrsLaDvcQlN5hWFS2SyTFxubGwcFUl0dHT8gH1VTCITJHMJWSLmYAcPMlFfXy9sJ0gkMnGNpEnCXAkJIhYSReAtBHvosGCTRBgEWSV0qc8jPNhMIgyutLS0/CSSSGRC1/Uqkg5aZUKGiDkTQVAMqtrb238+RGJUHGyZb1F4Je4/2FfFwZYr4qRb7QnwEngTwR4+5JxIZOJtcbDlv2lMAR5wBjfUi7h2fCuS6Ovru6Np2nVqvzwmQcFW9+43HeSg10twix0RSfT29v5iGMY7dMLniTOh+N8KghN7lKZTIQgKMiG/IkwkCJELFiL7uMWOYE+lWUL8elRNa51APoqGh4cTN9p7TOJed3f3d4nz5P4l1ITdDU66XK5Ic3PzF0NDQ1ODg4NT+P0rCFbQM3qu4MRWLsIfX7PB0yAEngPP089TwA8yBMFWKmJ+qZBGj7FecJzw0mfpwBBLqBexseAbIBWkESnAEPybQLnIf4JfIzSb+FymAAAAAElFTkSuQmCC') right 48% no-repeat;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
opacity: 0;
-webkit-transition: opacity 0.6s;
-moz-transition: opacity 0.6s;
-o-transition: opacity 0.6s;
transition: opacity 0.6s;
}
.lb-nav a.lb-next:hover {
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}
.lb-dataContainer {
margin: 0 auto;
padding-top: 5px;
*zoom: 1;
width: 100%;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
.lb-dataContainer:after {
content: "";
display: table;
clear: both;
}
.lb-data {
padding: 0 4px;
color: #ccc;
}
.lb-data .lb-details {
width: 85%;
float: left;
text-align: left;
line-height: 1.1em;
}
.lb-data .lb-caption {
font-size: 13px;
font-weight: bold;
line-height: 1em;
}
.lb-data .lb-caption a {
color: #4ae;
}
.lb-data .lb-number {
display: block;
clear: left;
padding-bottom: 1em;
font-size: 12px;
color: #999999;
}
.lb-data .lb-close {
display: block;
float: right;
width: 30px;
height: 30px;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAAPFBMVEX///8AAAD9/f2CgoKAgIAAAAAAAAAAAABLS0sAAAAAAACqqqqqqqq6urpKSkpISEgAAAC7u7u5ubn////zbsMcAAAAE3RSTlMASv6rqwAWS5YMC7/AyZWVFcrJCYaKfAAAAHhJREFUeF590kkOgCAQRFEaFVGc+/53FYmbz6JqBbyQMFSYuoQuV+iTflnstI7ssLXRvMWRaEMs84e2uVckuZe6knL0hiSPObXhj6ChzoEkIolIIpKIO4joICAIeDd7QGIfCCjOKe9HEk8mnxpIAup/F31RPZP9fAG3IAyBSJe0igAAAABJRU5ErkJggg==') top right no-repeat;
text-align: right;
outline: none;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
opacity: 0.7;
-webkit-transition: opacity 0.2s;
-moz-transition: opacity 0.2s;
-o-transition: opacity 0.2s;
transition: opacity 0.2s;
}
.lb-data .lb-close:hover {
cursor: pointer;
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
opacity: 1;
}
+3
View File
@@ -1,5 +1,8 @@
<div class="container-fluid my-5"> <div class="container-fluid my-5">
<h3 class="text-center">Kdo?</h3>
<div class="row justify-content-center my-5"> <div class="row justify-content-center my-5">
<div class="col-md-4"> <div class="col-md-4">
+41 -21
View File
@@ -8,6 +8,7 @@
</div> </div>
<div class="card-body"> <div class="card-body">
<% if (typeof invitations != 'undefined') { %>
<table class="table table-bordered table-striped table-hover"> <table class="table table-bordered table-striped table-hover">
<thead> <thead>
<tr> <tr>
@@ -18,21 +19,42 @@
</tr> </tr>
<tbody> <tbody>
<% invitations.forEach(function (invitation) { %>
<% if (invitation.will_come !== null) { %>
<tr> <tr>
<td></td> <td><%= invitation.name %></td>
<td></td> <td><%= invitation.person_count %></td>
<td></td> <td>
<td></td> <% if (invitation.will_come) { %>
Ano
<% } else { %>
Ne
<% } %>
</td>
<td>
<% if (typeof invitation.date != 'undefined') { %>
<%= invitation.date.toLocaleDateString () %>
<% } %>
</td>
</tr> </tr>
<% }
}) %>
</tbody> </tbody>
</table> </table>
<% } else { %>
<div class="alert alert-warning">Zatím nikdo neodpověděl na pozvánku.</div>
<% } %>
</div> </div>
<div class="card-footer"> <div class="card-footer">
Zareagovalo 28 hostů - zúčastní se 20, nemůže 8. Zareagovalo <%= invitations.length %> hostů - zúčastní se 20, nemůže 8.
<button class="btn btn-secondary pull-right"> <button class="btn btn-secondary pull-right">
Seznam hostů Seznam hostů
@@ -46,17 +68,15 @@
<h3> <h3>
Poznámky </h3> Poznámky </h3>
</div> </div>
<form action="./" method="post">
<div class="card-body"> <div class="card-body">
<textarea name="notes" cols="30" rows="10" class="wysiwyg"><%= notes %></textarea>
<textarea name="notes" cols="30" rows="10" class="wysiwyg"></textarea>
</div> </div>
<div class="card-footer"> <div class="card-footer">
<button class="btn btn-secondary pull-right">Uložit</button> <button class="btn btn-secondary pull-right">Uložit</button>
</div> </div>
</form>
</div> </div>
@@ -84,26 +104,26 @@
<div class="card-body"> <div class="card-body">
<ul> <ul>
<% var cnt = 0 %>
<% tasks.forEach(function (task) { %>
<li> <li>
<input type="checkbox" checked> <input type="checkbox" name="tasks[<%= cnt++ %>][done]" <%= typeof task.done != 'undefined' && task.done ? 'checked' : '' %>>
<span>Ukol 1</span> <span class="edit-inline"><%= task.name %></span>
</li>
<li><input type="checkbox">
<span>Ukol 1</span>
</li>
<li>
<input type="checkbox">
<span>Ukol 1</span>
</li> </li>
<% }) %>
</ul> </ul>
</div> </div>
<div class="card-footer"> <div class="card-footer">
<input type="text"> <form method="post">
<input type="text" name="tasks[<%= tasks.length %>][name]">
<div class="btn btn-secondary ">Uložit</div> <button class="btn btn-secondary ">Uložit</button>
</form>
</div> </div>
</div> </div>
</div> </div>
+14 -10
View File
@@ -1,37 +1,41 @@
<section class="web-part container"> <section class="web-part container">
<h3 class="text-center">Fotogalerie</h3> <h3 class="text-center">Fotogalerie</h3>
<div class="btn-toolbar justify-content-center my-5" role="toolbar" aria-label="Toolbar with button groups"> <div class="btn-toolbar justify-content-center my-5" role="toolbar" aria-label="Toolbar with button groups">
<div class="btn-group" role="group" aria-label="First group"> <div class="btn-group" role="group" aria-label="First group">
<button type="button" data-target="#newPhotoModal" data-toggle="modal" class="btn btn-secondary">Přidat fotografie</button> <button type="button" data-target="#newPhotoModal" data-toggle="modal" class="btn btn-secondary">
<button type="button" data-target="#newGalleryModal" data-toggle="modal" class="btn btn-secondary">Přidat album</button> Přidat fotografie
</button>
<button type="button" data-target="#newGalleryModal" data-toggle="modal" class="btn btn-secondary">
Přidat album
</button>
</div> </div>
</div> </div>
<div class="gallery__container"> <div class="gallery__container">
<% for(var i = 1; i <= 6; i++) { %> <%- include('../partials/notification.ejs', {parameter: "newAlbum", notificationText: "Album úspěšně vytvořeno."}) %>
<%- include('../partials/notification.ejs', {parameter: "upload", notificationText: "Fotografie úspěšně nahrány do vybraných alb."}) %>
<% for(var i = 1; i <= 7; i++) { %>
<% if (i < 7 || (typeof queryString.ok !== 'undefined' && queryString.ok == "newAlbum")) { %>
<div class="gallery__item"> <div class="gallery__item">
<img src="/dist/images/gallery/<%= i %>.jpg" alt=""> <img src="/dist/images/gallery/<%= i %>.jpg" alt="">
<a href="/editor/gallery_detail" class="gallery__overlay"> <a href="/editor/gallery_detail" class="gallery__overlay">
<h4>Jméno galerie</h4> <h4>Jméno galerie</h4>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</a> </a>
</div> </div>
<% } %>
<% } %> <% } %>
</div> </div>
<% include ../partials/editor/modals/newGallery.ejs %> <% include ../partials/editor/modals/newGallery.ejs %>
<% include ../partials/editor/modals/uploadPhoto.ejs %> <% include ../partials/editor/modals/uploadPhoto.ejs %>
</section> </section>
+22 -7
View File
@@ -2,20 +2,22 @@
<h2>Nadpis alba</h2> <h2>Nadpis alba</h2>
<article> <article>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
dolore
magna aliqua. Ut enim ad minim veniam, quis magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat reprehenderit in voluptate velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
anim
id est laborum.</p> id est laborum.</p>
</article> </article>
<% include ../partials/editor/modals/editGalleryText.ejs %> <% include ../partials/editor/modals/editGalleryText.ejs %>
<div class="btn-toolbar justify-content-center my-5" role="toolbar" aria-label="Toolbar with button groups"> <div class="btn-toolbar justify-content-center my-5" role="toolbar" aria-label="Toolbar with button groups">
<!--<div class="btn-group" role="group" aria-label="First group">--> <!--<div class="btn-group" role="group" aria-label="First group">-->
<button type="button" class="btn js-move-button-trigger btn-secondary"> <button type="button" class="btn js-move-button-trigger btn-secondary">
<i class="fa fa-arrows"></i>
Přesunout fotografie Přesunout fotografie
</button> </button>
@@ -23,7 +25,11 @@
Hotovo Hotovo
</button> </button>
<button type="button" class="btn js-delete-button-trigger btn-secondary"> <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#newPhotoModal">
<i class="fa fa-plus"></i> Nahrát fotografie
</button>
<button type="button" class="btn js-delete-button-trigger btn-danger">
Smazat fotografie Smazat fotografie
</button> </button>
@@ -34,9 +40,15 @@
</div> </div>
<%- include('../partials/notification.ejs', {parameter: "upload"}) %>
<a name="program"></a>
<div class="gallery__container draggable-container"> <div class="gallery__container draggable-container">
<% for(var i = 1; i <= 6; i++) { %> <% for(var i = 1; i <= 10; i++) { %>
<% if (i < 7 || (typeof queryString.ok !== 'undefined' && queryString.ok == "upload")) { %>
<div class="gallery__item draggable"> <div class="gallery__item draggable">
<div class="gallery__buttons"> <div class="gallery__buttons">
@@ -44,14 +56,17 @@
<i class="gallery__buttons__item js-move-button sort-handle fa fa-arrows"></i> <i class="gallery__buttons__item js-move-button sort-handle fa fa-arrows"></i>
</div> </div>
<a href="/dist/images/gallery/<%= i %>.jpg" data-lightbox="gallery">
<img src="/dist/images/gallery/<%= i %>.jpg" alt=""> <img src="/dist/images/gallery/<%= i %>.jpg" alt="">
</a>
</div> </div>
<% } %> <% } %>
<% } %>
</div> </div>
<% include ../partials/editor/modals/newGallery.ejs %> <% include ../partials/editor/modals/newGallery.ejs %>
<% include ../partials/editor/modals/uploadPhoto.ejs %> <%- include('../partials/editor/modals/uploadPhoto.ejs', {hideAlbum: true}) %>
<% include ../partials/editor/modals/deletePhotos.ejs %> <% include ../partials/editor/modals/deletePhotos.ejs %>
</section> </section>
+30 -18
View File
@@ -1,5 +1,7 @@
<section class="web-part"> <section class="web-part">
<div class="title-image" style="background-image: url('/dist/images/01.jpg')"> <%- include('../partials/notification.ejs', {parameter: "titlePhoto"})%>
<div class="title-image" style="background-image: url('/dist/images/<%= (typeof queryString.ok !== 'undefined' && queryString.ok == "titlePhoto") ? '01.jpg' : '02.jpg' %>')">
<div class="web-part__edit"> <div class="web-part__edit">
<a href="#setTitlePhotoModal" data-toggle="modal" data-target="#setTitlePhotoModal"> <a href="#setTitlePhotoModal" data-toggle="modal" data-target="#setTitlePhotoModal">
@@ -11,14 +13,13 @@
</section> </section>
<section class="web-part container"> <section class="web-part container">
<a name="aboutUs"></a>
<%- include('../partials/notification.ejs', {parameter: "aboutUs"})%>
<h2> Adam a Eva </h2> <h2> Adam a Eva </h2>
<article> <article>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore <p><%- aboutUs %></p>
magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim
id est laborum.</p>
</article> </article>
<% include ../partials/editor/modals/setAboutUs.ejs %> <% include ../partials/editor/modals/setAboutUs.ejs %>
@@ -26,18 +27,21 @@
<section class="web-part container text-center"> <section class="web-part container text-center">
<%- include('../partials/notification.ejs', {parameter: "weddingInfo"})%>
<a name="mainInfo"></a>
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
<h2>Kdy?</h2> <h2>Kdy?</h2>
<p>1. 9. 2019</p> <p><%= wedding.when %></p>
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<h2>Kde?</h2> <h2>Kde?</h2>
<p>Zámek Litomyšl</p> <p><%= wedding.where %></p>
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<h2>V kolik?</h2> <h2>V kolik?</h2>
<p>11:00</p> <p><%= wedding.at %></p>
</div> </div>
<% include ../partials/editor/modals/mainInfo.ejs %> <% include ../partials/editor/modals/mainInfo.ejs %>
@@ -46,20 +50,24 @@
</section> </section>
<section class="web-part container"> <section class="web-part container">
<h3 class="text-center">Svatební program</h3>
<%- include('../partials/notification.ejs', {parameter: "program"})%>
<a name="program"></a>
<h3 class="text-center my-5">Svatební program</h3>
<div class="timeline-container"> <div class="timeline-container">
<div class="timeline timeline-horizontal"> <div class="timeline timeline-horizontal">
<% for(var i = 0; i < 5; i++) { %> <% for(var i in program) { %>
<div class="timeline__item"> <div class="timeline__item">
<i class="timeline__icon fa fa-2x fa-heart-o"></i> <i class="timeline__icon fa fa-2x fa-<%= program[i]['icon']%>"></i>
<div class="timeline__content"> <div class="timeline__content">
<h3>11:00</h3> <h3><%= program[i]['time']%></h3>
<p><%= i %> Hostina</p> <p><%= program[i]['title']%></p>
</div> </div>
</div> </div>
@@ -74,7 +82,7 @@
<section class="web-part container"> <section class="web-part container">
<h3 class="text-center">Fotogalerie</h3> <h3 class="text-center my-5">Fotogalerie</h3>
<div class="gallery__container"> <div class="gallery__container">
@@ -101,9 +109,13 @@
<section class="web-part container"> <section class="web-part container">
<h3 class="text-center">Napište nám</h3> <h3 class="text-center">Napište nám</h3>
<div id="js-contact-form-status"></div> <%- include('../partials/notification.ejs', {parameter: "contactForm", notificationText: "Zpráva úspěšně odeslána. Ozveme se co nejdříve."})%>
<form id="contact-form" method="post" action="javascript:void(0);" role="form">
<form id="contact-form" method="post" role="form">
<a name="contactForm"></a>
<input type="hidden" name="redirectParams" value="ok=contactForm#contactForm">
<div class="row"> <div class="row">
<div class="col-md-5"> <div class="col-md-5">
+7 -6
View File
@@ -1,12 +1,13 @@
<section class="web-part container"> <section class="web-part container">
<%- include('../partials/notification.ejs', {parameter: "text"})%>
<h2> Náš příběh </h2> <h2> Náš příběh </h2>
<article> <article>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore <%- ourStory %>
magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat
nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim
id est laborum.</p>
</article> </article>
<% include ../partials/editor/modals/ourStory.ejs %> <% include ../partials/editor/modals/ourStory.ejs %>
@@ -12,8 +12,10 @@
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<form method="post">
<div class="modal-body"> <div class="modal-body">
<input type="hidden" name="redirectParams" value="ok=weddingInfo#mainInfo">
<% include ../../weddingInfo.ejs %> <% include ../../weddingInfo.ejs %>
@@ -23,9 +25,10 @@
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Storno</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">Storno</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">Uložit <button type="submit" class="btn btn-primary">Uložit
</button> </button>
</div> </div>
</form>
</div> </div>
</div> </div>
</div> </div>
@@ -1,4 +1,3 @@
<div class="modal fade" id="newGalleryModal" tabindex="-1" role="dialog" aria-labelledby="newGalleryModalLabel" aria-hidden="true"> <div class="modal fade" id="newGalleryModal" tabindex="-1" role="dialog" aria-labelledby="newGalleryModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
@@ -8,19 +7,34 @@
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<form method="post">
<input type="hidden" name="redirectParams" value="ok=newAlbum">
<div class="modal-body"> <div class="modal-body">
<div class="form-group"><label for="gallery_name">Název alba</label><input type="text" name="gallery_name" id="gallery_name" class="form-control"></div> <div class="form-group">
<div class="form-group"><label for="description">Poznámka</label> <label for="gallery_name">Název alba</label>
<input type="text" required name="gallery_name" id="gallery_name" class="form-control">
</div>
<div class="form-group">
<label for="gallery_name">Vyberte fotografie</label>
<input type="file" multiple required class="form-control">
</div>
<div class="form-group">
<label for="description">Poznámka</label>
<textarea class="wysiwyg" name="description"></textarea> <textarea class="wysiwyg" name="description"></textarea>
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Storno</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">Storno</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">Uložit <button type="submit" class="btn btn-primary">Uložit
</button> </button>
</div> </div>
</form>
</div> </div>
</div> </div>
</div> </div>
@@ -13,15 +13,20 @@
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<form method="post">
<input type="hidden" name="redirectParams" value="ok=text">
<div class="modal-body"> <div class="modal-body">
<textarea class="wysiwyg" name="aboutUs"></textarea> <textarea class="wysiwyg" name="ourStory"><%= ourStory %></textarea>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Storno</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">Storno</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">Uložit <button type="submit" class="btn btn-primary">Uložit
</button> </button>
</div> </div>
</form>
</div> </div>
</div> </div>
</div> </div>
+43 -20
View File
@@ -12,69 +12,92 @@
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<form method="post">
<input type="hidden" name="redirectParams" value="ok=program#program">
<div class="modal-body"> <div class="modal-body">
<table> <table class="table">
<thead> <thead>
<tr> <tr>
<th></th>
<th>Čas</th> <th>Čas</th>
<th>Ikona</th> <th>Ikona</th>
<th>Název události</th> <th>Název události</th>
<th> <th></th>
</th>
</tr> </tr>
</thead> </thead>
<tbody class="template-container"> <tbody class="template-container draggable-container">
<tr class="template">
<td><input type="text" class="form-control time" name="time[]" placeholder="11:00"></td> <% for(var i in program) { %>
<tr class="template draggable template-container__item">
<td>
<i class="fa fa-ellipsis-v sort-handle"></i>
</td>
<td style="position: relative">
<input type="text" class="form-control time select-time" size="4" name="program[<%= i %>][time][]" value="<%= program[i]['time'] %>" placeholder="11:00">
</td>
<td class="text-center"> <td class="text-center">
<a href="javascript:void(0);" class="js-set-icon-program"> <a href="javascript:void(0);" class="js-set-icon-program">
<input type="hidden" name="icon[]" value="heart"> <input type="hidden" name="program[<%= i %>][icon][]" value="<%= program[i]['icon'] %>">
<i class="fa fa-2x fa-heart"></i> <i class="fa fa-2x fa-<%= program[i]['icon'] %>"></i>
</a> </a>
</td> </td>
<td><input type="text" class="form-control program-description" name="description[]"></td> <td>
<td><a href="javascript:void(0);" class="js-remove-program" hidden><i class="fa fa-trash"></i></a></td> <input type="text" class="form-control program-description" name="program[<%= i %>][title][]" value="<%= program[i]['title'] %>">
</td>
<td>
<a href="javascript:void(0);" class="js-remove-program"><i class="fa fa-trash"></i></a>
</td>
</tr> </tr>
<% } %>
</tbody> </tbody>
<tfoot> <tfoot>
<tr> <tr>
<td colspan="4"> <td colspan="4">
<a href="javascript:void(0);" class="js-add-program" data-template-container=".template-container" data-template=".template"><i class="fa fa-plus"></i></a> <a href="javascript:void(0);" class="btn btn-outline-secondary js-add-program" data-template-container=".template-container" data-template=".template"><i class="fa fa-plus"></i> Přidat akci</a>
<a href="javascript:void(0);" class="btn btn-outline-secondary js-sort-events" style="display: none" data-template-container=".template-container" data-template=".template"><i class="fa fa-sort-numeric-asc"></i> Seřadit akce chronologicky</a>
</td> </td>
</tr> </tr>
</tfoot> </tfoot>
</table> </table>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Storno</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">Storno</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">Uložit <button type="submit" class="btn btn-primary">Uložit
</button> </button>
</div> </div>
</form>
</div> </div>
</div> </div>
</div> </div>
<div class="modal fade" id="setIconProgramModal" tabindex="-1" role="dialog" aria-labelledby="setIconProgramModal" aria-hidden="true"> <div class="modal fade" id="setIconProgramModal" tabindex="-1" role="dialog" aria-labelledby="setIconProgramModal" aria-hidden="true">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-body"> <div class="modal-body">
<a href="javascript:void(0);" data-icon="gear" class="js-choose-icon"><i class="fa fa-2x fa-gear"></i></a> <% var icons = ['gear', 'home', 'automobile', 'bell', 'bullhorn', 'child', 'coffee', 'diamond', 'film', 'camera',
<a href="javascript:void(0);" data-icon="dashboard" class="js-choose-icon"><i class="fa fa-2x fa-dashboard"></i></a> 'camera-retro', 'fire', 'birthday-cake', 'heart', 'image', 'map', 'map-marker', 'map-o',
<a href="javascript:void(0);" data-icon="home" class="js-choose-icon"><i class="fa fa-2x fa-home"></i></a> 'motorcycle', 'plane', 'road', 'cutlery', 'paint-brush', 'gift', 'glass', 'star', 'star-o'
] %>
<% for (var i in icons) { %>
<a href="javascript:void(0);" data-icon="<%= icons[i] %>" class="js-choose-icon"><i class="fa fa-3x fa-<%= icons[i] %>"></i></a>
<% } %>
</div> </div>
</div> </div>
@@ -13,15 +13,21 @@
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<form method="post">
<input type="hidden" name="redirectParams" value="ok=aboutUs#aboutUs">
<div class="modal-body"> <div class="modal-body">
<textarea class="wysiwyg" name="aboutUs"></textarea> <textarea class="wysiwyg" name="aboutUs"><%= aboutUs %></textarea>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Storno</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">Storno</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">Uložit <button type="submit" class="btn btn-primary">Uložit</button>
</button>
</div> </div>
</form>
</div> </div>
</div> </div>
</div> </div>
@@ -8,6 +8,10 @@
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<form method="post">
<input type="hidden" name="redirectParams" value="ok=titlePhoto">
<div class="modal-body"> <div class="modal-body">
<div class="form-group"> <div class="form-group">
<label>Vybrat obrázek</label> <label>Vybrat obrázek</label>
@@ -23,8 +27,9 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Storno</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">Storno</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">Nastavit</button> <button type="submit" class="btn btn-primary">Nastavit</button>
</div> </div>
</form>
</div> </div>
</div> </div>
</div> </div>
@@ -2,25 +2,32 @@
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title" id="newGalleryModalLabel">Nahrát fotografii</h5> <h5 class="modal-title">Nahrát fotografii</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"> <button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span> <span aria-hidden="true">&times;</span>
</button> </button>
</div> </div>
<form method="post" class="js-upload">
<input type="hidden" name="redirectParams" value="ok=upload">
<div class="modal-body"> <div class="modal-body">
<table> <table>
<thead> <thead>
<tr> <tr>
<th>Výběr fotografií</th> <th>Výběr fotografií</th>
<% if (typeof hideAlbum === 'undefined' || !hideAlbum) { %>
<th>Album</th> <th>Album</th>
<th> <% } %>
</th> <th></th>
</tr> </tr>
</thead> </thead>
<tbody class="template-container"> <tbody class="template-container">
<tr class="template"> <tr class="template">
<td><input type="file" multiple name="photos[]"></td> <td><input type="file" accept="image/*" multiple required name="photos[]"></td>
<% if (typeof hideAlbum === 'undefined' || !hideAlbum) { %>
<td> <td>
<select name="album" class="form-control"> <select name="album" class="form-control">
@@ -28,11 +35,15 @@
<option value="<%= i %>">Album <%= i %></option> <option value="<%= i %>">Album <%= i %></option>
<% } %> <% } %>
</select> </select>
</td> </td>
<td><a href="javascript:void(0);" class="js-remove-program btn btn-outline-primary" hidden><i class="fa fa-trash"></i></a></td> <% } %>
<td>
<a href="javascript:void(0);" class="js-remove-program btn btn-outline-primary" hidden><i class="fa fa-trash"></i></a>
</td>
</tr> </tr>
</tbody> </tbody>
<% if (typeof hideAlbum === 'undefined' || !hideAlbum) { %>
<tfoot> <tfoot>
<tr> <tr>
<td colspan="4"> <td colspan="4">
@@ -40,15 +51,19 @@
</td> </td>
</tr> </tr>
</tfoot> </tfoot>
<% } %>
</table> </table>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Storno</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">Storno</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">Nahrát <button type="submit" class="btn btn-primary">Nahrát
</button> </button>
</div> </div>
</form>
</div> </div>
</div> </div>
</div> </div>
+14
View File
@@ -0,0 +1,14 @@
<% if (typeof queryString.ok !== "undefined" && queryString.ok == parameter) { %>
<div class="text-success alert alert-success js-notification" style="position: absolute; width: 50%; left: 25%; top: 0; z-index: 9999">
<i class="fa fa-check"></i>
<% if (typeof notificationText === 'undefined') { %>
Úspěšně uloženo
<% } else { %>
<%= notificationText %>
<% } %>
</div>
<% } %>
+6 -6
View File
@@ -1,17 +1,17 @@
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
<h2>Kdy?</h2> <h3>Kdy?</h3>
<input type="text" class="form-control select-date"> <input type="text" class="form-control select-date" name="wedding[when]" value="<%= wedding.when%>">
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<h2>Kde?</h2> <h3>Kde?</h3>
<input type="text" id="map-input" class="form-control" /> <input type="text" id="map-input" class="form-control" name="wedding[where]" value="<%= wedding.where%>" />
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<h2>V kolik?</h2> <h3>V kolik?</h3>
<input type="text" class="form-control select-time"> <input type="text" class="form-control select-time" name="wedding[at]" value="<%= wedding.at%>">
</div> </div>
</div> </div>