Huge rewrite and update of style/layout + theme simplification
parent
63b7855bf0
commit
32ea7da4da
10
app.js
10
app.js
|
@ -121,19 +121,19 @@ handlebars = handlebars.create({
|
|||
},
|
||||
perRowClass: (numProducts) => {
|
||||
if(parseInt(numProducts) === 1){
|
||||
return'col-md-12 col-xl-12 col m12 xl12 product-item';
|
||||
return'col-md-12 product-item';
|
||||
}
|
||||
if(parseInt(numProducts) === 2){
|
||||
return'col-md-6 col-xl-6 col m6 xl6 product-item';
|
||||
return'col-md-6 product-item';
|
||||
}
|
||||
if(parseInt(numProducts) === 3){
|
||||
return'col-md-4 col-xl-4 col m4 xl4 product-item';
|
||||
return'col-md-4 product-item';
|
||||
}
|
||||
if(parseInt(numProducts) === 4){
|
||||
return'col-md-3 col-xl-3 col m3 xl3 product-item';
|
||||
return'col-md-3 product-item';
|
||||
}
|
||||
|
||||
return'col-md-6 col-xl-6 col m6 xl6 product-item';
|
||||
return'col-md-6 product-item';
|
||||
},
|
||||
menuMatch: (title, search) => {
|
||||
if(!title || !search){
|
||||
|
|
|
@ -4,6 +4,12 @@ const cleanCSS = require('gulp-clean-css');
|
|||
const minify = require('gulp-minify');
|
||||
const rename = require('gulp-rename');
|
||||
|
||||
function less(){
|
||||
return gulp.src('public/stylesheets/less/**/*.less')
|
||||
.pipe(less())
|
||||
.pipe(gulp.dest('./'));
|
||||
};
|
||||
|
||||
function compressJS(){
|
||||
return src([
|
||||
'public/javascripts/*.js',
|
||||
|
@ -58,4 +64,4 @@ function compressThemeJS(){
|
|||
};
|
||||
|
||||
// run the tasks
|
||||
gulp.task('default', series(compressJS, compressCss, compressThemeCss, compressThemeJS));
|
||||
gulp.task('default', series(less, compressJS, compressCss, compressThemeCss, compressThemeJS));
|
||||
|
|
|
@ -436,9 +436,10 @@ const orderMenu = (req, res) => {
|
|||
const db = req.app.db;
|
||||
return getMenu(db)
|
||||
.then((menu) => {
|
||||
const menuOrder = req.body['order[]'];
|
||||
// update the order
|
||||
for(let i = 0; i < req.body.navId.length; i++){
|
||||
_.find(menu.items, ['title', req.body.navId[i]]).order = i;
|
||||
for(let i = 0; i < menuOrder.length; i++){
|
||||
_.find(menu.items, ['title', menuOrder[i]]).order = i;
|
||||
}
|
||||
return db.menu.updateOne({}, { $set: { items: menu.items } }, { upsert: true })
|
||||
.then(() => {
|
||||
|
|
|
@ -504,6 +504,75 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"accord": {
|
||||
"version": "0.29.0",
|
||||
"resolved": "https://registry.npmjs.org/accord/-/accord-0.29.0.tgz",
|
||||
"integrity": "sha512-3OOR92FTc2p5/EcOzPcXp+Cbo+3C15nV9RXHlOUBCBpHhcB+0frbSNR9ehED/o7sTcyGVtqGJpguToEdlXhD0w==",
|
||||
"requires": {
|
||||
"convert-source-map": "^1.5.0",
|
||||
"glob": "^7.0.5",
|
||||
"indx": "^0.2.3",
|
||||
"lodash.clone": "^4.3.2",
|
||||
"lodash.defaults": "^4.0.1",
|
||||
"lodash.flatten": "^4.2.0",
|
||||
"lodash.merge": "^4.4.0",
|
||||
"lodash.partialright": "^4.1.4",
|
||||
"lodash.pick": "^4.2.1",
|
||||
"lodash.uniq": "^4.3.0",
|
||||
"resolve": "^1.5.0",
|
||||
"semver": "^5.3.0",
|
||||
"uglify-js": "^2.8.22",
|
||||
"when": "^3.7.8"
|
||||
},
|
||||
"dependencies": {
|
||||
"camelcase": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
|
||||
"integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
|
||||
},
|
||||
"cliui": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
|
||||
"integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
|
||||
"requires": {
|
||||
"center-align": "^0.1.1",
|
||||
"right-align": "^0.1.1",
|
||||
"wordwrap": "0.0.2"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.5.7",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
||||
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
|
||||
},
|
||||
"uglify-js": {
|
||||
"version": "2.8.29",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
|
||||
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
|
||||
"requires": {
|
||||
"source-map": "~0.5.1",
|
||||
"uglify-to-browserify": "~1.0.0",
|
||||
"yargs": "~3.10.0"
|
||||
}
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "0.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
|
||||
"integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
|
||||
},
|
||||
"yargs": {
|
||||
"version": "3.10.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
|
||||
"integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
|
||||
"requires": {
|
||||
"camelcase": "^1.0.2",
|
||||
"cliui": "^2.1.0",
|
||||
"decamelize": "^1.0.0",
|
||||
"window-size": "0.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"acorn": {
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
|
||||
|
@ -535,6 +604,16 @@
|
|||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"align-text": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
|
||||
"integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
|
||||
"requires": {
|
||||
"kind-of": "^3.0.2",
|
||||
"longest": "^1.0.1",
|
||||
"repeat-string": "^1.5.2"
|
||||
}
|
||||
},
|
||||
"ansi-align": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
|
||||
|
@ -597,7 +676,6 @@
|
|||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz",
|
||||
"integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-wrap": "0.1.0"
|
||||
}
|
||||
|
@ -624,7 +702,6 @@
|
|||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz",
|
||||
"integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-wrap": "0.1.0"
|
||||
}
|
||||
|
@ -664,8 +741,7 @@
|
|||
"ansi-wrap": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
|
||||
"integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
|
||||
"dev": true
|
||||
"integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768="
|
||||
},
|
||||
"anymatch": {
|
||||
"version": "3.1.1",
|
||||
|
@ -743,8 +819,7 @@
|
|||
"arr-flatten": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
|
||||
"integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
|
||||
"dev": true
|
||||
"integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
|
||||
},
|
||||
"arr-map": {
|
||||
"version": "2.0.2",
|
||||
|
@ -876,6 +951,21 @@
|
|||
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
||||
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
|
||||
},
|
||||
"asn1": {
|
||||
"version": "0.2.4",
|
||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
|
||||
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safer-buffer": "~2.1.0"
|
||||
}
|
||||
},
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"optional": true
|
||||
},
|
||||
"assign-symbols": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
|
||||
|
@ -926,8 +1016,7 @@
|
|||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
|
||||
"dev": true
|
||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
|
||||
},
|
||||
"atob": {
|
||||
"version": "2.1.2",
|
||||
|
@ -1153,6 +1242,18 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"aws-sign2": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
||||
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
|
||||
"optional": true
|
||||
},
|
||||
"aws4": {
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz",
|
||||
"integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==",
|
||||
"optional": true
|
||||
},
|
||||
"axios": {
|
||||
"version": "0.19.0",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
|
||||
|
@ -1291,6 +1392,15 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"bcrypt-pbkdf": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"tweetnacl": "^0.14.3"
|
||||
}
|
||||
},
|
||||
"bcryptjs": {
|
||||
"version": "2.4.3",
|
||||
"resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
|
||||
|
@ -1656,6 +1766,21 @@
|
|||
"resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz",
|
||||
"integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs="
|
||||
},
|
||||
"caseless": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
|
||||
"optional": true
|
||||
},
|
||||
"center-align": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
|
||||
"integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
|
||||
"requires": {
|
||||
"align-text": "^0.1.3",
|
||||
"lazy-cache": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
|
@ -1943,8 +2068,7 @@
|
|||
"clone": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
|
||||
"integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
|
||||
"dev": true
|
||||
"integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
|
||||
},
|
||||
"clone-buffer": {
|
||||
"version": "1.0.0",
|
||||
|
@ -2073,7 +2197,6 @@
|
|||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
|
||||
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
|
@ -2262,8 +2385,7 @@
|
|||
"convert-source-map": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
|
||||
"integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
|
||||
"dev": true
|
||||
"integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU="
|
||||
},
|
||||
"convert-to-spaces": {
|
||||
"version": "1.0.2",
|
||||
|
@ -2379,6 +2501,15 @@
|
|||
"es5-ext": "^0.10.9"
|
||||
}
|
||||
},
|
||||
"dashdash": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
||||
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"dasherize": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz",
|
||||
|
@ -2621,8 +2752,7 @@
|
|||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||
"dev": true
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
|
||||
},
|
||||
"depd": {
|
||||
"version": "1.1.2",
|
||||
|
@ -2780,6 +2910,16 @@
|
|||
"object.defaults": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"ecc-jsbn": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"ee-first": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||
|
@ -2832,6 +2972,15 @@
|
|||
"integrity": "sha1-IcoRLUirJLTh5//A5TOdMf38J0w=",
|
||||
"dev": true
|
||||
},
|
||||
"errno": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
|
||||
"integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"prr": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"error-ex": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
|
||||
|
@ -3654,8 +3803,7 @@
|
|||
"extend": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
|
||||
"dev": true
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
|
||||
},
|
||||
"extend-shallow": {
|
||||
"version": "3.0.2",
|
||||
|
@ -3760,6 +3908,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"extsprintf": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
|
||||
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
|
||||
"optional": true
|
||||
},
|
||||
"fancy-log": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
|
||||
|
@ -4065,11 +4219,16 @@
|
|||
"for-in": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"forever-agent": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
|
||||
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
|
||||
"optional": true
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.6",
|
||||
|
@ -4174,6 +4333,15 @@
|
|||
"integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
|
||||
"dev": true
|
||||
},
|
||||
"getpass": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
||||
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.5",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz",
|
||||
|
@ -5044,6 +5212,20 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"gulp-less": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/gulp-less/-/gulp-less-4.0.1.tgz",
|
||||
"integrity": "sha512-hmM2k0FfQp7Ptm3ZaqO2CkMX3hqpiIOn4OHtuSsCeFym63F7oWlEua5v6u1cIjVUKYsVIs9zPg9vbqTEb/udpA==",
|
||||
"requires": {
|
||||
"accord": "^0.29.0",
|
||||
"less": "2.6.x || ^3.7.1",
|
||||
"object-assign": "^4.0.1",
|
||||
"plugin-error": "^0.1.2",
|
||||
"replace-ext": "^1.0.0",
|
||||
"through2": "^2.0.0",
|
||||
"vinyl-sourcemaps-apply": "^0.2.0"
|
||||
}
|
||||
},
|
||||
"gulp-minify": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/gulp-minify/-/gulp-minify-3.1.0.tgz",
|
||||
|
@ -5084,6 +5266,22 @@
|
|||
"uglify-js": "^3.1.4"
|
||||
}
|
||||
},
|
||||
"har-schema": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
||||
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
|
||||
"optional": true
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "5.1.3",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
|
||||
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ajv": "^6.5.5",
|
||||
"har-schema": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"has": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
||||
|
@ -5281,6 +5479,17 @@
|
|||
"toidentifier": "1.0.0"
|
||||
}
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"jsprim": "^1.2.2",
|
||||
"sshpk": "^1.7.0"
|
||||
}
|
||||
},
|
||||
"https-proxy-agent": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz",
|
||||
|
@ -5350,6 +5559,12 @@
|
|||
"integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=",
|
||||
"dev": true
|
||||
},
|
||||
"image-size": {
|
||||
"version": "0.5.5",
|
||||
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
|
||||
"integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
|
||||
"optional": true
|
||||
},
|
||||
"import-fresh": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz",
|
||||
|
@ -5396,6 +5611,11 @@
|
|||
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
|
||||
"dev": true
|
||||
},
|
||||
"indx": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/indx/-/indx-0.2.3.tgz",
|
||||
"integrity": "sha1-Fdz1bunPZcAjTFE8J/vVgOcPvFA="
|
||||
},
|
||||
"inflight": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
|
@ -5545,8 +5765,7 @@
|
|||
"is-buffer": {
|
||||
"version": "1.1.6",
|
||||
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
||||
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
|
||||
"dev": true
|
||||
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
||||
},
|
||||
"is-builtin-module": {
|
||||
"version": "1.0.0",
|
||||
|
@ -5777,8 +5996,7 @@
|
|||
"is-typedarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
|
||||
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
|
||||
"dev": true
|
||||
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
|
||||
},
|
||||
"is-unc-path": {
|
||||
"version": "1.0.0",
|
||||
|
@ -5836,6 +6054,12 @@
|
|||
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
|
||||
"dev": true
|
||||
},
|
||||
"isstream": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
|
||||
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
|
||||
"optional": true
|
||||
},
|
||||
"js-string-escape": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
|
||||
|
@ -5857,6 +6081,12 @@
|
|||
"esprima": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"jsbn": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
|
||||
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
|
||||
"optional": true
|
||||
},
|
||||
"jsesc": {
|
||||
"version": "2.5.2",
|
||||
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
|
||||
|
@ -5875,6 +6105,12 @@
|
|||
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
|
||||
"dev": true
|
||||
},
|
||||
"json-schema": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
|
||||
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
|
||||
"optional": true
|
||||
},
|
||||
"json-schema-traverse": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
|
@ -5886,6 +6122,12 @@
|
|||
"integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
|
||||
"dev": true
|
||||
},
|
||||
"json-stringify-safe": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
||||
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
|
||||
"optional": true
|
||||
},
|
||||
"json5": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
|
||||
|
@ -5903,6 +6145,18 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"jsprim": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
|
||||
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0",
|
||||
"extsprintf": "1.3.0",
|
||||
"json-schema": "0.2.3",
|
||||
"verror": "1.10.0"
|
||||
}
|
||||
},
|
||||
"just-debounce": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz",
|
||||
|
@ -5927,7 +6181,6 @@
|
|||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
||||
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-buffer": "^1.1.5"
|
||||
}
|
||||
|
@ -5951,6 +6204,11 @@
|
|||
"package-json": "^6.3.0"
|
||||
}
|
||||
},
|
||||
"lazy-cache": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
|
||||
"integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
|
||||
},
|
||||
"lazystream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
|
||||
|
@ -5978,6 +6236,33 @@
|
|||
"flush-write-stream": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"less": {
|
||||
"version": "3.10.3",
|
||||
"resolved": "https://registry.npmjs.org/less/-/less-3.10.3.tgz",
|
||||
"integrity": "sha512-vz32vqfgmoxF1h3K4J+yKCtajH0PWmjkIFgbs5d78E/c/e+UQTnI+lWK+1eQRE95PXM2mC3rJlLSSP9VQHnaow==",
|
||||
"requires": {
|
||||
"clone": "^2.1.2",
|
||||
"errno": "^0.1.1",
|
||||
"graceful-fs": "^4.1.2",
|
||||
"image-size": "~0.5.0",
|
||||
"mime": "^1.4.1",
|
||||
"mkdirp": "^0.5.0",
|
||||
"promise": "^7.1.1",
|
||||
"request": "^2.83.0",
|
||||
"source-map": "~0.6.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"promise": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
|
||||
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"asap": "~2.0.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"levn": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
|
||||
|
@ -6058,6 +6343,11 @@
|
|||
"resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz",
|
||||
"integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU="
|
||||
},
|
||||
"lodash.clone": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz",
|
||||
"integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y="
|
||||
},
|
||||
"lodash.clonedeep": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
|
||||
|
@ -6125,6 +6415,11 @@
|
|||
"resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz",
|
||||
"integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ=="
|
||||
},
|
||||
"lodash.partialright": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash.partialright/-/lodash.partialright-4.2.1.tgz",
|
||||
"integrity": "sha1-ATDYDoM2MmTUAHTzKbij56ihzEs="
|
||||
},
|
||||
"lodash.pick": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
|
||||
|
@ -6150,6 +6445,11 @@
|
|||
"resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",
|
||||
"integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0="
|
||||
},
|
||||
"lodash.uniq": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
|
||||
"integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M="
|
||||
},
|
||||
"lodash.unset": {
|
||||
"version": "4.5.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.unset/-/lodash.unset-4.5.2.tgz",
|
||||
|
@ -6164,6 +6464,11 @@
|
|||
"chalk": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"longest": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
|
||||
"integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
|
||||
},
|
||||
"loud-rejection": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-2.2.0.tgz",
|
||||
|
@ -6466,8 +6771,7 @@
|
|||
"mime": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
|
||||
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.42.0",
|
||||
|
@ -6490,7 +6794,6 @@
|
|||
"version": "2.1.21",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
|
||||
"integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mime-db": "~1.37.0"
|
||||
},
|
||||
|
@ -6498,8 +6801,7 @@
|
|||
"mime-db": {
|
||||
"version": "1.37.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
|
||||
"integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
|
||||
"dev": true
|
||||
"integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg=="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -6832,6 +7134,12 @@
|
|||
"resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz",
|
||||
"integrity": "sha1-StCAk21EPCVhrtnyGX7//iX05QY="
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
||||
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
|
||||
"optional": true
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||
|
@ -7281,8 +7589,7 @@
|
|||
"path-parse": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
|
||||
"integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
|
||||
"dev": true
|
||||
"integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME="
|
||||
},
|
||||
"path-root": {
|
||||
"version": "0.1.1",
|
||||
|
@ -7329,6 +7636,12 @@
|
|||
"semver": "^5.0.3"
|
||||
}
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
|
||||
"optional": true
|
||||
},
|
||||
"picomatch": {
|
||||
"version": "2.0.7",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz",
|
||||
|
@ -7474,7 +7787,6 @@
|
|||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz",
|
||||
"integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-cyan": "^0.1.1",
|
||||
"ansi-red": "^0.1.1",
|
||||
|
@ -7487,7 +7799,6 @@
|
|||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz",
|
||||
"integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"arr-flatten": "^1.0.1",
|
||||
"array-slice": "^0.2.3"
|
||||
|
@ -7496,20 +7807,17 @@
|
|||
"arr-union": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz",
|
||||
"integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=",
|
||||
"dev": true
|
||||
"integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0="
|
||||
},
|
||||
"array-slice": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
|
||||
"integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=",
|
||||
"dev": true
|
||||
"integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU="
|
||||
},
|
||||
"extend-shallow": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz",
|
||||
"integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"kind-of": "^1.1.0"
|
||||
}
|
||||
|
@ -7517,8 +7825,7 @@
|
|||
"kind-of": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
|
||||
"integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=",
|
||||
"dev": true
|
||||
"integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -7645,12 +7952,24 @@
|
|||
"ipaddr.js": "1.9.0"
|
||||
}
|
||||
},
|
||||
"prr": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
|
||||
"integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
|
||||
"optional": true
|
||||
},
|
||||
"pseudomap": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
|
||||
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
|
||||
"dev": true
|
||||
},
|
||||
"psl": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.6.0.tgz",
|
||||
"integrity": "sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA==",
|
||||
"optional": true
|
||||
},
|
||||
"pump": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
|
||||
|
@ -7680,8 +7999,7 @@
|
|||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
|
||||
},
|
||||
"quick-lru": {
|
||||
"version": "1.1.0",
|
||||
|
@ -8020,14 +8338,12 @@
|
|||
"repeat-string": {
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
|
||||
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
|
||||
"dev": true
|
||||
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
|
||||
},
|
||||
"replace-ext": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
|
||||
"integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
|
||||
"dev": true
|
||||
"integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs="
|
||||
},
|
||||
"replace-homedir": {
|
||||
"version": "1.0.0",
|
||||
|
@ -8040,6 +8356,42 @@
|
|||
"remove-trailing-separator": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"version": "2.88.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
|
||||
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"aws-sign2": "~0.7.0",
|
||||
"aws4": "^1.8.0",
|
||||
"caseless": "~0.12.0",
|
||||
"combined-stream": "~1.0.6",
|
||||
"extend": "~3.0.2",
|
||||
"forever-agent": "~0.6.1",
|
||||
"form-data": "~2.3.2",
|
||||
"har-validator": "~5.1.0",
|
||||
"http-signature": "~1.2.0",
|
||||
"is-typedarray": "~1.0.0",
|
||||
"isstream": "~0.1.2",
|
||||
"json-stringify-safe": "~5.0.1",
|
||||
"mime-types": "~2.1.19",
|
||||
"oauth-sign": "~0.9.0",
|
||||
"performance-now": "^2.1.0",
|
||||
"qs": "~6.5.2",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"tough-cookie": "~2.4.3",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"uuid": "^3.3.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"safe-buffer": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
|
||||
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"require-directory": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
||||
|
@ -8070,7 +8422,6 @@
|
|||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
|
||||
"integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"path-parse": "^1.0.5"
|
||||
}
|
||||
|
@ -8153,6 +8504,14 @@
|
|||
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
|
||||
"dev": true
|
||||
},
|
||||
"right-align": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
|
||||
"integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
|
||||
"requires": {
|
||||
"align-text": "^0.1.1"
|
||||
}
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.7.1",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
|
||||
|
@ -8669,6 +9028,23 @@
|
|||
"number-is-nan": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"sshpk": {
|
||||
"version": "1.16.1",
|
||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
|
||||
"integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"asn1": "~0.2.3",
|
||||
"assert-plus": "^1.0.0",
|
||||
"bcrypt-pbkdf": "^1.0.0",
|
||||
"dashdash": "^1.12.0",
|
||||
"ecc-jsbn": "~0.1.1",
|
||||
"getpass": "^0.1.1",
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.0.2",
|
||||
"tweetnacl": "~0.14.0"
|
||||
}
|
||||
},
|
||||
"stack-trace": {
|
||||
"version": "0.0.10",
|
||||
"resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
|
||||
|
@ -9051,7 +9427,6 @@
|
|||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
|
||||
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"readable-stream": "^2.1.5",
|
||||
"xtend": "~4.0.1"
|
||||
|
@ -9155,6 +9530,24 @@
|
|||
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
|
||||
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.4.3",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
|
||||
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"psl": "^1.1.24",
|
||||
"punycode": "^1.4.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"punycode": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
||||
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"trim-newlines": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz",
|
||||
|
@ -9179,6 +9572,21 @@
|
|||
"integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
|
||||
"dev": true
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"tweetnacl": {
|
||||
"version": "0.14.5",
|
||||
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
||||
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
|
||||
"optional": true
|
||||
},
|
||||
"type-check": {
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
|
||||
|
@ -9247,6 +9655,12 @@
|
|||
"source-map": "~0.6.1"
|
||||
}
|
||||
},
|
||||
"uglify-to-browserify": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
|
||||
"integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
|
||||
"optional": true
|
||||
},
|
||||
"uglifycss": {
|
||||
"version": "0.0.27",
|
||||
"resolved": "https://registry.npmjs.org/uglifycss/-/uglifycss-0.0.27.tgz",
|
||||
|
@ -9494,6 +9908,12 @@
|
|||
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
||||
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
|
||||
"integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==",
|
||||
"optional": true
|
||||
},
|
||||
"v8-compile-cache": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
|
||||
|
@ -9530,6 +9950,17 @@
|
|||
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
|
||||
},
|
||||
"verror": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
|
||||
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"core-util-is": "1.0.2",
|
||||
"extsprintf": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"vinyl": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
|
||||
|
@ -9596,7 +10027,6 @@
|
|||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
|
||||
"integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"source-map": "^0.5.1"
|
||||
},
|
||||
|
@ -9604,8 +10034,7 @@
|
|||
"source-map": {
|
||||
"version": "0.5.7",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
||||
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
|
||||
"dev": true
|
||||
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -9624,6 +10053,11 @@
|
|||
"integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==",
|
||||
"dev": true
|
||||
},
|
||||
"when": {
|
||||
"version": "3.7.8",
|
||||
"resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz",
|
||||
"integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I="
|
||||
},
|
||||
"which": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
|
||||
|
@ -9681,6 +10115,11 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"window-size": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
|
||||
"integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
"express-rate-limit": "^5.0.0",
|
||||
"express-session": "^1.17.0",
|
||||
"glob": "^7.1.5",
|
||||
"gulp-less": "^4.0.1",
|
||||
"helmet": "^3.21.2",
|
||||
"html-entities": "^1.2.0",
|
||||
"i18n": "^0.8.4",
|
||||
|
@ -80,6 +81,7 @@
|
|||
"gulp-clean-css": "^3.10.0",
|
||||
"gulp-minify": "^3.1.0",
|
||||
"gulp-rename": "^1.4.0",
|
||||
"less": "^3.10.3",
|
||||
"mime-db": "^1.42.0",
|
||||
"supertest": "^3.4.2",
|
||||
"supertest-session": "^4.0.0"
|
||||
|
|
|
@ -48,12 +48,12 @@ $(document).ready(function (){
|
|||
|
||||
var html = '<li class="list-group-item">';
|
||||
html += '<div class="row">';
|
||||
html += '<div class="col-lg-2 opt-name">' + optName + '</div>';
|
||||
html += '<div class="col-lg-2">' + optLabel + '</div>';
|
||||
html += '<div class="col-lg-2">' + optType + '</div>';
|
||||
html += '<div class="col-lg-4">' + optOptions + '</div>';
|
||||
html += '<div class="col-lg-2 text-right">';
|
||||
html += '<button class="product_opt_remove btn btn-danger btn-sm">Remove</button>';
|
||||
html += '<div class="col-sm-2 opt-name">' + optName + '</div>';
|
||||
html += '<div class="col-sm-2">' + optLabel + '</div>';
|
||||
html += '<div class="col-sm-2">' + optType + '</div>';
|
||||
html += '<div class="col-sm-4">' + optOptions + '</div>';
|
||||
html += '<div class="col-sm-2 text-right">';
|
||||
html += '<button class="product_opt_remove btn btn-outline-danger">Remove</button>';
|
||||
html += '</div></div></li>';
|
||||
|
||||
// append data
|
||||
|
@ -252,6 +252,7 @@ $(document).ready(function (){
|
|||
});
|
||||
|
||||
$('.btn-delete-image').on('click', function(){
|
||||
if(confirm('Are you sure you want to delete this image?')){
|
||||
$.ajax({
|
||||
method: 'POST',
|
||||
url: '/admin/product/deleteimage',
|
||||
|
@ -263,9 +264,11 @@ $(document).ready(function (){
|
|||
.fail(function(msg){
|
||||
showNotification(msg.responseJSON.message, 'danger');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$('.btn-delete-product').on('click', function(){
|
||||
if(confirm('Are you sure you want to delete this product?')){
|
||||
$.ajax({
|
||||
method: 'POST',
|
||||
url: '/admin/product/delete',
|
||||
|
@ -277,6 +280,7 @@ $(document).ready(function (){
|
|||
.fail(function(msg){
|
||||
showNotification(msg.responseJSON.message, 'danger');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Call to API to check if a permalink is available
|
||||
|
@ -544,6 +548,28 @@ $(document).ready(function (){
|
|||
}
|
||||
});
|
||||
|
||||
if($('#draggable_list').length){
|
||||
$('#draggable_list').sortable({
|
||||
update: function (){
|
||||
var menuOrder = [];
|
||||
$('.navId').each(function(val){
|
||||
menuOrder.push($($('.navId')[val]).val());
|
||||
});
|
||||
$.ajax({
|
||||
data: { order: menuOrder },
|
||||
type: 'POST',
|
||||
url: '/admin/settings/menu/save_order'
|
||||
})
|
||||
.done(function(){
|
||||
showNotification('Menu order saved', 'success', true);
|
||||
})
|
||||
.fail(function(msg){
|
||||
showNotification(msg.responseJSON.message, 'danger', true);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$(document).on('click', '#uploadButton', function(e){
|
||||
e.preventDefault();
|
||||
var formData = new FormData($('#uploadForm')[0]);
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -40,23 +40,23 @@ $(document).ready(function (){
|
|||
}
|
||||
});
|
||||
|
||||
$('.shipping-form input').each(function(e){
|
||||
$(this).wrap('<fieldset></fieldset>');
|
||||
var tag = $(this).attr('placeholder');
|
||||
$(this).after('<label for="name" class="hidden">' + tag + '</label>');
|
||||
});
|
||||
// $('.shipping-form input').each(function(e){
|
||||
// $(this).wrap('<fieldset></fieldset>');
|
||||
// var tag = $(this).attr('placeholder');
|
||||
// $(this).after('<label for="name" class="hidden">' + tag + '</label>');
|
||||
// });
|
||||
|
||||
$('.shipping-form input').on('focus', function(){
|
||||
$(this).next().addClass('floatLabel');
|
||||
$(this).next().removeClass('hidden');
|
||||
});
|
||||
// $('.shipping-form input').on('focus', function(){
|
||||
// $(this).next().addClass('floatLabel');
|
||||
// $(this).next().removeClass('hidden');
|
||||
// });
|
||||
|
||||
$('.shipping-form input').on('blur', function(){
|
||||
if($(this).val() === ''){
|
||||
$(this).next().addClass('hidden');
|
||||
$(this).next().removeClass('floatLabel');
|
||||
}
|
||||
});
|
||||
// $('.shipping-form input').on('blur', function(){
|
||||
// if($(this).val() === ''){
|
||||
// $(this).next().addClass('hidden');
|
||||
// $(this).next().removeClass('floatLabel');
|
||||
// }
|
||||
// });
|
||||
|
||||
$(document).on('click', '.menu-btn', function(e){
|
||||
e.preventDefault();
|
||||
|
@ -76,27 +76,25 @@ $(document).ready(function (){
|
|||
$(this).toggleClass('hover');
|
||||
});
|
||||
|
||||
if($('.product-title').length){
|
||||
$('.product-title').dotdotdot({
|
||||
ellipsis: '...'
|
||||
});
|
||||
}
|
||||
|
||||
$(document).on('click', '.btn-qty-minus', function(e){
|
||||
e.preventDefault();
|
||||
var qtyElement = $(e.target).parent().parent().find('.cart-product-quantity');
|
||||
// console.log('qtyElement', qtyElement);
|
||||
$(qtyElement).val(parseInt(qtyElement.val()) - 1);
|
||||
cartUpdate(qtyElement);
|
||||
});
|
||||
|
||||
$(document).on('click', '.btn-qty-add', function(e){
|
||||
e.preventDefault();
|
||||
var qtyElement = $(e.target).parent().parent().find('.cart-product-quantity');
|
||||
$(qtyElement).val(parseInt(qtyElement.val()) + 1);
|
||||
cartUpdate(qtyElement);
|
||||
});
|
||||
|
||||
$(document).on('change', '.cart-product-quantity', function (e){
|
||||
cartUpdate(e.target);
|
||||
});
|
||||
// $(document).on('change', '.cart-product-quantity', function (e){
|
||||
// console.log('test');
|
||||
// cartUpdate(e.target);
|
||||
// });
|
||||
|
||||
$(document).on('click', '.btn-delete-from-cart', function(e){
|
||||
deleteFromCart($(e.target));
|
||||
|
@ -123,9 +121,14 @@ $(document).ready(function (){
|
|||
maxVisible: 5,
|
||||
href: pagerHref,
|
||||
wrapClass: 'pagination',
|
||||
prevClass: 'waves-effect',
|
||||
nextClass: 'waves-effect',
|
||||
activeClass: 'pag-active waves-effect'
|
||||
prevClass: 'page-item previous',
|
||||
nextClass: 'page-item next',
|
||||
activeClass: 'page-item active'
|
||||
});
|
||||
|
||||
// Fix for Bootstrap 4
|
||||
$('#pager a').each(function(){
|
||||
$(this).addClass('page-link');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -409,7 +412,7 @@ $(document).ready(function (){
|
|||
$('#input_notify_messageType').val('');
|
||||
|
||||
// alert
|
||||
showNotification(messageVal, messageTypeVal, false);
|
||||
showNotification(messageVal, messageTypeVal || 'danger', false);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -443,6 +446,7 @@ function deleteFromCart(element){
|
|||
}
|
||||
|
||||
function cartUpdate(element){
|
||||
console.log('element', element.val());
|
||||
if($(element).val() > 0){
|
||||
if($(element).val() !== ''){
|
||||
updateCart();
|
||||
|
@ -462,6 +466,8 @@ function updateCart(){
|
|||
});
|
||||
});
|
||||
|
||||
console.log('cartItems', cartItems)
|
||||
|
||||
// update cart on server
|
||||
$.ajax({
|
||||
method: 'POST',
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
.btn-outline-danger, .btn-warning, .btn-outline-primary {
|
||||
color: #ffffff !important;
|
||||
background-color: #000000;
|
||||
border-color: #000000;
|
||||
}
|
||||
|
||||
.search-bar-input, #frm_search, .search-bar-input .btn{
|
||||
padding-top: 10px;
|
||||
height: 45px;
|
||||
|
@ -38,7 +44,7 @@
|
|||
padding-left: 0;
|
||||
}
|
||||
|
||||
.product_wrapper>a:hover{
|
||||
.product-wrapper>a:hover{
|
||||
color: #cc4135 !important;
|
||||
}
|
||||
|
||||
|
@ -55,12 +61,15 @@
|
|||
background-color: #cc4135 !important;
|
||||
}
|
||||
|
||||
/* Fixes summernote editor issue: https://github.com/summernote/summernote/issues/2516 */
|
||||
body .popover{display:none !important; }
|
||||
|
||||
.navbar-brand{
|
||||
color: #cc4135 !important;
|
||||
letter-spacing: 4px;
|
||||
padding-left: 20px !important;
|
||||
padding-top: 20px !important;
|
||||
height: 100px !important;
|
||||
padding-top: 0 !important;
|
||||
height: 80px !important;
|
||||
font-size: 55px !important;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,270 +0,0 @@
|
|||
/*
|
||||
* CSS file with Bootstrap grid classes for screens bigger than 1600px. Just add this file after the Bootstrap CSS file and you will be able to juse col-xl, col-xl-push, hidden-xl, etc.
|
||||
*
|
||||
* Author: Marc van Nieuwenhuijzen
|
||||
* Company: WebVakman
|
||||
* Site: WebVakman.nl
|
||||
*
|
||||
*/
|
||||
|
||||
@media (min-width: 1200px) and (max-width: 1599px) {
|
||||
.hidden-lg {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.visible-xl-block,
|
||||
.visible-xl-inline,
|
||||
.visible-xl-inline-block,
|
||||
.visible-xl{
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@media (min-width: 1600px) {
|
||||
.container {
|
||||
width: 1570px;
|
||||
}
|
||||
|
||||
.col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.col-xl-12 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.col-xl-11 {
|
||||
width: 91.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-10 {
|
||||
width: 83.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-9 {
|
||||
width: 75%;
|
||||
}
|
||||
|
||||
.col-xl-8 {
|
||||
width: 66.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-7 {
|
||||
width: 58.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-6 {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.col-xl-5 {
|
||||
width: 41.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-4 {
|
||||
width: 33.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-3 {
|
||||
width: 25%;
|
||||
}
|
||||
|
||||
.col-xl-2 {
|
||||
width: 16.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-1 {
|
||||
width: 8.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-pull-12 {
|
||||
right: 100%;
|
||||
}
|
||||
|
||||
.col-xl-pull-11 {
|
||||
right: 91.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-pull-10 {
|
||||
right: 83.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-pull-9 {
|
||||
right: 75%;
|
||||
}
|
||||
|
||||
.col-xl-pull-8 {
|
||||
right: 66.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-pull-7 {
|
||||
right: 58.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-pull-6 {
|
||||
right: 50%;
|
||||
}
|
||||
|
||||
.col-xl-pull-5 {
|
||||
right: 41.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-pull-4 {
|
||||
right: 33.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-pull-3 {
|
||||
right: 25%;
|
||||
}
|
||||
|
||||
.col-xl-pull-2 {
|
||||
right: 16.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-pull-1 {
|
||||
right: 8.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-pull-0 {
|
||||
right: auto;
|
||||
}
|
||||
|
||||
.col-xl-push-12 {
|
||||
left: 100%;
|
||||
}
|
||||
|
||||
.col-xl-push-11 {
|
||||
left: 91.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-push-10 {
|
||||
left: 83.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-push-9 {
|
||||
left: 75%;
|
||||
}
|
||||
|
||||
.col-xl-push-8 {
|
||||
left: 66.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-push-7 {
|
||||
left: 58.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-push-6 {
|
||||
left: 50%;
|
||||
}
|
||||
|
||||
.col-xl-push-5 {
|
||||
left: 41.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-push-4 {
|
||||
left: 33.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-push-3 {
|
||||
left: 25%;
|
||||
}
|
||||
|
||||
.col-xl-push-2 {
|
||||
left: 16.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-push-1 {
|
||||
left: 8.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-push-0 {
|
||||
left: auto;
|
||||
}
|
||||
|
||||
.col-xl-offset-12 {
|
||||
margin-left: 100%;
|
||||
}
|
||||
|
||||
.col-xl-offset-11 {
|
||||
margin-left: 91.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-offset-10 {
|
||||
margin-left: 83.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-offset-9 {
|
||||
margin-left: 75%;
|
||||
}
|
||||
|
||||
.col-xl-offset-8 {
|
||||
margin-left: 66.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-offset-7 {
|
||||
margin-left: 58.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-offset-6 {
|
||||
margin-left: 50%;
|
||||
}
|
||||
|
||||
.col-xl-offset-5 {
|
||||
margin-left: 41.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-offset-4 {
|
||||
margin-left: 33.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-offset-3 {
|
||||
margin-left: 25%;
|
||||
}
|
||||
|
||||
.col-xl-offset-2 {
|
||||
margin-left: 16.66666667%;
|
||||
}
|
||||
|
||||
.col-xl-offset-1 {
|
||||
margin-left: 8.33333333%;
|
||||
}
|
||||
|
||||
.col-xl-offset-0 {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.visible-xl {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
table.visible-xl {
|
||||
display: table;
|
||||
}
|
||||
|
||||
tr.visible-xl {
|
||||
display: table-row !important;
|
||||
}
|
||||
|
||||
th.visible-xl, td.visible-xl {
|
||||
display: table-cell !important;
|
||||
}
|
||||
|
||||
.visible-xl-block {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
.visible-xl-inline {
|
||||
display: inline !important;
|
||||
}
|
||||
|
||||
.visible-xl-inline-block {
|
||||
display: inline-block !important;
|
||||
}
|
||||
|
||||
.hidden-xl {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
@media (min-width:1200px) and (max-width:1599px){.hidden-lg{display:none!important}}.visible-xl,.visible-xl-block,.visible-xl-inline,.visible-xl-inline-block{display:none!important}@media (min-width:1600px){.container{width:1570px}.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{float:left}.col-xl-12{width:100%}.col-xl-11{width:91.66666667%}.col-xl-10{width:83.33333333%}.col-xl-9{width:75%}.col-xl-8{width:66.66666667%}.col-xl-7{width:58.33333333%}.col-xl-6{width:50%}.col-xl-5{width:41.66666667%}.col-xl-4{width:33.33333333%}.col-xl-3{width:25%}.col-xl-2{width:16.66666667%}.col-xl-1{width:8.33333333%}.col-xl-pull-12{right:100%}.col-xl-pull-11{right:91.66666667%}.col-xl-pull-10{right:83.33333333%}.col-xl-pull-9{right:75%}.col-xl-pull-8{right:66.66666667%}.col-xl-pull-7{right:58.33333333%}.col-xl-pull-6{right:50%}.col-xl-pull-5{right:41.66666667%}.col-xl-pull-4{right:33.33333333%}.col-xl-pull-3{right:25%}.col-xl-pull-2{right:16.66666667%}.col-xl-pull-1{right:8.33333333%}.col-xl-pull-0{right:auto}.col-xl-push-12{left:100%}.col-xl-push-11{left:91.66666667%}.col-xl-push-10{left:83.33333333%}.col-xl-push-9{left:75%}.col-xl-push-8{left:66.66666667%}.col-xl-push-7{left:58.33333333%}.col-xl-push-6{left:50%}.col-xl-push-5{left:41.66666667%}.col-xl-push-4{left:33.33333333%}.col-xl-push-3{left:25%}.col-xl-push-2{left:16.66666667%}.col-xl-push-1{left:8.33333333%}.col-xl-push-0{left:auto}.col-xl-offset-12{margin-left:100%}.col-xl-offset-11{margin-left:91.66666667%}.col-xl-offset-10{margin-left:83.33333333%}.col-xl-offset-9{margin-left:75%}.col-xl-offset-8{margin-left:66.66666667%}.col-xl-offset-7{margin-left:58.33333333%}.col-xl-offset-6{margin-left:50%}.col-xl-offset-5{margin-left:41.66666667%}.col-xl-offset-4{margin-left:33.33333333%}.col-xl-offset-3{margin-left:25%}.col-xl-offset-2{margin-left:16.66666667%}.col-xl-offset-1{margin-left:8.33333333%}.col-xl-offset-0{margin-left:0}.visible-xl{display:block!important}table.visible-xl{display:table}tr.visible-xl{display:table-row!important}td.visible-xl,th.visible-xl{display:table-cell!important}.visible-xl-block{display:block!important}.visible-xl-inline{display:inline!important}.visible-xl-inline-block{display:inline-block!important}.hidden-xl{display:none!important}}
|
|
@ -91,7 +91,7 @@ a.text-danger:hover, a.text-danger:focus {
|
|||
width: auto;
|
||||
}
|
||||
|
||||
.thumbnail-image-container .img-responsive {
|
||||
.thumbnail-image-container .img-fluid {
|
||||
display: block;
|
||||
width: auto;
|
||||
max-height: 100%;
|
||||
|
@ -118,7 +118,7 @@ input[type=number]::-webkit-outer-spin-button {
|
|||
align-items: center;
|
||||
}
|
||||
|
||||
.title-image-container .img-responsive {
|
||||
.title-image-container .img-fluid {
|
||||
display: block;
|
||||
width: auto;
|
||||
max-height: 100%;
|
||||
|
@ -193,6 +193,18 @@ input[type=number]::-webkit-outer-spin-button {
|
|||
padding-right: 0px;
|
||||
}
|
||||
|
||||
.top-marg-10{
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.top-marg-15{
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.top-marg-20{
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.top-pad-10{
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
@ -201,10 +213,38 @@ input[type=number]::-webkit-outer-spin-button {
|
|||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.top-pad-50{
|
||||
padding-top: 50px;
|
||||
}
|
||||
|
||||
.top-pad-100{
|
||||
padding-top: 100px;
|
||||
}
|
||||
|
||||
.bottom-pad-10{
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.bottom-pad-15{
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
.bottom-pad-20{
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.bottom-marg-10{
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.bottom-marg-15{
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.bottom-marg-20{
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.left-pad-30{
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
@ -230,6 +270,11 @@ input[type=number]::-webkit-outer-spin-button {
|
|||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.breadcrumb{
|
||||
background-color: #f8f9fa;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.breadcrumbProPerRow-3{
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
|
@ -261,11 +306,6 @@ input[type=number]::-webkit-outer-spin-button {
|
|||
font-size: 19px;
|
||||
}
|
||||
|
||||
.customer-details{
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
.file-form{
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
|
@ -293,7 +333,6 @@ input[type=number]::-webkit-outer-spin-button {
|
|||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 22px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.input-group .form-control {
|
||||
|
@ -404,18 +443,13 @@ input.form-control.customerDetails{
|
|||
color: #000000;
|
||||
}
|
||||
|
||||
.alert-success{
|
||||
background-color: #000000;
|
||||
opacity: 0.65;
|
||||
}
|
||||
|
||||
.btn-danger, .btn-warning, .btn-primary {
|
||||
.btn-outline-danger, .btn-warning, .btn-outline-primary {
|
||||
color: #ffffff;
|
||||
background-color: #000000;
|
||||
border-color: #000000;
|
||||
}
|
||||
|
||||
.btn-warning:hover, .btn-danger:hover {
|
||||
.btn-warning:hover, .btn-outline-danger:hover {
|
||||
color: #ffffff;
|
||||
background-color: #000000;
|
||||
border-color: #000000;
|
||||
|
@ -459,22 +493,13 @@ a {
|
|||
border-color: #000000;
|
||||
}
|
||||
|
||||
.pagination>.disabled>span, .pagination>.disabled>span:hover, .pagination>.disabled>span:focus, .pagination>.disabled>a, .pagination>.disabled>a:hover, .pagination>.disabled>a:focus {
|
||||
background-color: #000000;
|
||||
.page-item.disabled .page-link{
|
||||
color:#b7b7b7;
|
||||
}
|
||||
|
||||
.pagination>li>a, .pagination>li>span {
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
.pagination>.active>a, .pagination>.active>span, .pagination>.active>a:hover, .pagination>.active>span:hover, .pagination>.active>a:focus, .pagination>.active>span:focus {
|
||||
background-color: #000000;
|
||||
opacity: 0.65;
|
||||
}
|
||||
|
||||
.pagination>li>a:hover, .pagination>li>span:hover, .pagination>li>a:focus, .pagination>li>span:focus {
|
||||
background-color: #000000;
|
||||
opacity: 0.65;
|
||||
.page-link {
|
||||
color: white;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
|
||||
|
@ -494,24 +519,6 @@ a {
|
|||
border-top-left-radius: 0px;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.btn {
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.pagination>li:first-child>a, .pagination>li:first-child>span{
|
||||
border-bottom-left-radius: 0px;
|
||||
border-top-left-radius: 0px;
|
||||
}
|
||||
|
||||
.pagination>li:last-child>a, .pagination>li:last-child>span {
|
||||
border-bottom-right-radius: 0px;
|
||||
border-top-right-radius: 0px;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px){
|
||||
.pushy {
|
||||
width: 700px;
|
||||
|
@ -561,7 +568,8 @@ a {
|
|||
}
|
||||
|
||||
.product-title{
|
||||
padding-top: 25px;
|
||||
font-size: 18px;
|
||||
padding-top: 18px;
|
||||
min-height: auto;
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -349,7 +349,7 @@ router.post('/admin/settings/menu/save_order', restrict, checkAccess, (req, res)
|
|||
res.status(400).json({ message: 'Failed saving menu order' });
|
||||
return;
|
||||
}
|
||||
res.status(200);
|
||||
res.status(200).json({});
|
||||
});
|
||||
|
||||
// validate the permalink
|
||||
|
|
|
@ -180,6 +180,7 @@ router.get('/checkout/payment', (req, res) => {
|
|||
paymentType,
|
||||
cartSize: 'part',
|
||||
cartClose: true,
|
||||
cartReadOnly: true,
|
||||
page: 'checkout-information',
|
||||
countryList,
|
||||
message: clearSessionValue(req.session, 'message'),
|
||||
|
@ -250,12 +251,16 @@ router.post('/product/updatecart', (req, res, next) => {
|
|||
let hasError = false;
|
||||
let stockError = false;
|
||||
|
||||
console.log('cartItems', cartItems);
|
||||
|
||||
// Check cart exists
|
||||
if(!req.session.cart){
|
||||
emptyCart(req, res, 'json', 'There are no items if your cart or your cart is expired');
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('req.session.cart', req.session.cart);
|
||||
|
||||
async.eachSeries(cartItems, async (cartItem, callback) => {
|
||||
// Find index in cart
|
||||
const cartIndex = _.findIndex(req.session.cart, { productId: cartItem.productId });
|
||||
|
@ -265,6 +270,8 @@ router.post('/product/updatecart', (req, res, next) => {
|
|||
if(typeof productQuantity === 'string'){
|
||||
productQuantity = parseInt(productQuantity);
|
||||
}
|
||||
|
||||
console.log('productQuantity', productQuantity);
|
||||
if(productQuantity === 0){
|
||||
// quantity equals zero so we remove the item
|
||||
req.session.cart.splice(cartIndex, 1);
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
{{> partials/menu}}
|
||||
<div class="col-lg-9">
|
||||
<div class="col-lg-10">
|
||||
<div class="row">
|
||||
<div class="col-sm-9">
|
||||
<div class="col-sm-10">
|
||||
<div class="page-header">
|
||||
<h2>Dashboard</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -1,87 +1,84 @@
|
|||
{{> partials/menu}}
|
||||
<div class="col-lg-9">
|
||||
<div class="row">
|
||||
<div class="col-sm-9 top-pad-10">
|
||||
<form method="post" class="form-horizontal" id="customer-form" role="form" data-toggle="validator" novalidate="false">
|
||||
<div class="col-xs-12 col-md-12">
|
||||
<div class="row">
|
||||
<div class="col-sm-10">
|
||||
<div class="page-header">
|
||||
<div class="pull-right">
|
||||
<button class="btn btn-success" id="updateCustomer">Save customer <i class="fa fa-floppy-o"></i></button>
|
||||
</div>
|
||||
<div class="pull-right">
|
||||
<button id="deleteCustomer" onclick="return confirm('Are you sure you want to delete this customer?');" class="btn btn-info">Delete customer <i class="fa fa-trash"></i></button>
|
||||
<div class="btn-group float-right" role="group" aria-label="Basic example">
|
||||
<button class="btn btn-outline-success" id="updateCustomer">Save customer <i class="fa fa-floppy-o"></i></button>
|
||||
<button id="deleteCustomer" onclick="return confirm('Are you sure you want to delete this customer?');" class="btn btn-outline-info">Delete customer <i class="fa fa-trash"></i></button>
|
||||
</div>
|
||||
<h2>Customer</h2>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Email *</label>
|
||||
</div>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Email *</label>
|
||||
<input type="text" class="form-control" name="email" id="email" value={{result.email}} required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-5">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">{{ @root.__ "First name" }} *</label>
|
||||
<div class="col-sm-10">
|
||||
<label class="control-label">{{ @root.__ "First name" }} *</label>
|
||||
<input type="text" class="form-control" name="firstName" id="firstName" value={{result.firstName}} required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-5">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">{{ @root.__ "Last name" }} *</label>
|
||||
<div class="col-sm-10">
|
||||
<label class="control-label">{{ @root.__ "Last name" }} *</label>
|
||||
<input type="text" class="form-control" name="lastName" id="lastName" value={{result.lastName}} required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">{{ @root.__ "Address 1" }} *</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label class="control-label">{{ @root.__ "Address 1" }} *</label>
|
||||
<input type="text" class="form-control" name="address1" id="address1" value={{result.address1}} required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">{{ @root.__ "Address 2" }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label class="control-label">{{ @root.__ "Address 2" }}</label>
|
||||
<input type="text" class="form-control" name="address2" id="address2" value={{result.address2}}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">{{ @root.__ "Country" }} *</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label class="control-label">{{ @root.__ "Country" }} *</label>
|
||||
<input type="text" class="form-control" name="country" id="country" value={{result.country}} required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-5">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">{{ @root.__ "State" }} *</label>
|
||||
<div class="col-sm-10">
|
||||
<label class="control-label">{{ @root.__ "State" }} *</label>
|
||||
<input type="text" class="form-control" name="state" id="state" value={{result.state}} required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-5">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">{{ @root.__ "Postcode" }} *</label>
|
||||
<div class="col-sm-10">
|
||||
<label class="control-label">{{ @root.__ "Postcode" }} *</label>
|
||||
<input type="text" class="form-control" name="postcode" id="postcode" value={{result.postcode}} required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-5">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">{{ @root.__ "Phone number" }} *</label>
|
||||
<div class="col-sm-10">
|
||||
<label class="control-label">{{ @root.__ "Phone number" }} *</label>
|
||||
<input type="text" class="form-control" name="phone" id="phone" value={{result.phone}} required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-5">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">{{ @root.__ "Password" }}</label>
|
||||
<div class="col-sm-10">
|
||||
<label class="control-label">{{ @root.__ "Password" }}</label>
|
||||
<input type="password" class="form-control" name="password" id="password">
|
||||
<p class="help-block">Only populate if wanting to reset the customers password</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">{{ @root.__ "Creation date" }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label class="control-label">{{ @root.__ "Creation date" }}</label>
|
||||
<input type="text" class="form-control" value="{{formatDate result.created "DD/MM/YYYY hh:mmA"}}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="customerId" id="customerId" value="{{result._id}}">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
|
@ -1,20 +1,20 @@
|
|||
{{> partials/menu}}
|
||||
<div class="col-lg-9">
|
||||
<div class="col-lg-12">
|
||||
<div class="col-sm-9">
|
||||
<div class="col-sm-12">
|
||||
<h2>Customers</h2>
|
||||
</div>
|
||||
<div class="col-lg-12 search_bar">
|
||||
<div class="col-sm-12 search_bar">
|
||||
<div class="input-group">
|
||||
<input type="text" name="customer_filter" id="customer_filter" class="form-control input-lg" placeholder="Filter customers">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-success btn-lg" id="btn_customer_filter">Filter</button>
|
||||
<a href="/admin/customers" class="hidden-xs btn btn-warning btn-lg"><i class="fa fa-times" aria-hidden="true"></i></a>
|
||||
</span>
|
||||
<input type="text" name="customer_filter" id="customer_filter" class="form-control" placeholder="Filter customers">
|
||||
<div class="input-group-append">
|
||||
<button type="button" class="btn btn-outline-success" id="btn_customer_filter">Filter</button>
|
||||
<a href="/admin/customers" class="hidden-xs btn btn-outline-warning"><i class="fa fa-times" aria-hidden="true"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-warning top-pad-10">{{ @root.__ "Customers can be filtered by: email, name or phone number" }}</p>
|
||||
</div>
|
||||
{{#if customers}}
|
||||
<div class="col-lg-12">
|
||||
<div class="col-sm-12">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">
|
||||
<strong>
|
||||
|
@ -26,32 +26,34 @@
|
|||
</li>
|
||||
<li class="list-group-item">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h5 class="text-info"><strong>{{ @root.__ "Email address" }}</strong></h5>
|
||||
<div class="col-sm-6">
|
||||
<h6 class="text-info"><strong>{{ @root.__ "Email address" }}</strong></h6>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h5 class="text-info"><strong>{{ @root.__ "Name" }}</strong></h5>
|
||||
<div class="col-sm-3">
|
||||
<h6 class="text-info"><strong>{{ @root.__ "Name" }}</strong></h6>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h5 class="text-info"><strong>{{ @root.__ "Phone number" }}</strong></h5>
|
||||
<div class="col-sm-3">
|
||||
<h6 class="text-info"><strong>{{ @root.__ "Phone number" }}</strong></h6>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
{{#each customers}}
|
||||
<li class="list-group-item">
|
||||
<div class="row">
|
||||
|
||||
<a href="/admin/customer/view/{{this._id}}">
|
||||
<div class="col-md-4">
|
||||
<h5 class="">{{this.email}}</h5>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<h6 class="">{{this.email}}</h6>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h5 class="">{{this.firstName}} {{this.lastName}}</h5>
|
||||
<div class="col-sm-3">
|
||||
<h6 class="">{{this.firstName}} {{this.lastName}}</h6>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<h6 class="">{{this.phone}}</h6>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h5 class="">{{this.phone}}</h5>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<div class="col-md-12">
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<div class="col-md-6 offset-md-3">
|
||||
<h1 class="text-center">{{message}}</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<div class="col-md-offset-4 col-md-4 col-lg-offset-4 col-lg-4" style="padding-top: 100px" >
|
||||
<div class="col-md-4 ffset-md-4 top-pad-100">
|
||||
<form class="form-signin" id="customerForgotten" data-toggle="validator">
|
||||
<h2 class="form-signin-heading">{{ @root.__ "Please enter your email address" }}</h2>
|
||||
<div class="form-group">
|
||||
<input type="email" id="email" class="form-control" placeholder="email address" required autofocus>
|
||||
</div>
|
||||
<button class="btn btn-lg btn-primary btn-block">{{ @root.__ "Reset" }}</button>
|
||||
<button class="btn btn-outline-primary btn-block">{{ @root.__ "Reset" }}</button>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
<meta name="description" content="{{config.cartDescription}}">
|
||||
{{/if}}
|
||||
<meta name="keywords" content="{{config.cartTitle}}">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.7/flatly/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="/stylesheets/bootstrap-xl.css">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha256-L/W5Wfqfa0sdBNIKN9cG6QA5F2qx4qICmU2VgLruv9Y=" crossorigin="anonymous" />
|
||||
<link rel="stylesheet" href="/stylesheets/pushy.css">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/codemirror.min.css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
|
@ -30,12 +29,13 @@
|
|||
{{#if admin}}
|
||||
<link rel="stylesheet" href="/stylesheets/admin{{config.env}}.css">
|
||||
{{/if}}
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha256-WqU1JavFxSAMcLP2WIOI+GB2zWmShMI82mTpLDcqFUg=" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/codemirror.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/mode/css/css.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.20.2/mode/xml/xml.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.min.js"></script>
|
||||
<script src="/javascripts/jquery.bootpag.min.js"></script>
|
||||
<script src="/javascripts/cssbeautify.min.js"></script>
|
||||
|
@ -47,7 +47,6 @@
|
|||
{{#if admin}}
|
||||
<script src="/javascripts/admin{{config.env}}.js"></script>
|
||||
{{/if}}
|
||||
<script src="/javascripts/jquery.dotdotdot.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-tokenfield/0.12.0/bootstrap-tokenfield.min.js"></script>
|
||||
<!-- SEO data -->
|
||||
<link rel="canonical" href="{{config.baseUrl}}" />
|
||||
|
@ -67,6 +66,7 @@
|
|||
"url": "{{config.baseUrl}}"
|
||||
}
|
||||
</script>
|
||||
<!-- SEO data -->
|
||||
{{#if config.googleAnalytics}}{{{config.googleAnalytics}}}{{/if}}
|
||||
{{#if config.customCss}}<style>{{{config.customCss}}}</style>{{/if}}
|
||||
{{#if admin}}
|
||||
|
@ -77,7 +77,6 @@
|
|||
<script src="/{{config.theme}}/index{{config.env}}.js"></script>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
<!-- SEO data -->
|
||||
</head>
|
||||
{{#if admin}}
|
||||
<body class="admin">
|
||||
|
@ -85,33 +84,15 @@
|
|||
<body>
|
||||
{{/if}}
|
||||
<!-- Static navbar -->
|
||||
<nav class="navbar navbar-default navbar-static-top">
|
||||
<div class="container-fluid mainNavBar">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed offcanvas-trigger" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light mainNavBar">
|
||||
<a class="navbar-brand" href="/">CLOTH</a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
{{#if admin}}
|
||||
<a class="navbar-brand navbar-brand-image" href="/admin"><img class="img-responsive" src="/images/logo-admin.png"></a>
|
||||
{{else}}
|
||||
{{#isNull @root.config.cartLogo}}
|
||||
{{#isNull @root.config.cartTitle}}
|
||||
<a class="navbar-brand" href="/">expressCart</a>
|
||||
{{else}}
|
||||
<a class="navbar-brand" href="/">{{@root.config.cartTitle}}</a>
|
||||
{{/isNull}}
|
||||
{{else}}
|
||||
<a class="navbar-brand navbar-brand-image" href="/"><img class="img-responsive" src="{{@root.config.cartLogo}}"></a>
|
||||
{{/isNull}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<div id="navbar" class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<div class="collapse navbar-collapse" id="navbarText">
|
||||
<ul class="navbar-nav ml-auto">
|
||||
{{#ifCond @root.config.enableLanguages "!=" false}}
|
||||
<li class="dropdown">
|
||||
<li class="nav-item dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{{ @root.__ "Languages" }} <span class="caret"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
{{#availableLanguages}}
|
||||
|
@ -122,28 +103,27 @@
|
|||
{{/ifCond}}
|
||||
{{#unless admin}}
|
||||
{{#if @root.session.cart}}
|
||||
<li><a href="/checkout/cart" class="menu-btn"><i class="fa fa-shopping-cart" aria-hidden="true"></i> {{ @root.__ "Cart" }} <span class="badge" id="cart-count">{{@root.session.cartTotalItems}}</span></a></li>
|
||||
<li class="nav-item"><a href="/checkout/cart" class="btn menu-btn"><i class="fa fa-shopping-cart" aria-hidden="true"></i> {{ @root.__ "Cart" }} <span class="badge badge-danger" id="cart-count">{{@root.session.cartTotalItems}}</span></a></li>
|
||||
{{else}}
|
||||
<li><a href="/checkout/cart" class="menu-btn"><i class="fa fa-shopping-cart" aria-hidden="true"></i> {{ @root.__ "Cart" }} <span class="badge" id="cart-count">0</span></a></li>
|
||||
<li class="nav-item"><a href="/checkout/cart" class="btn menu-btn"><i class="fa fa-shopping-cart" aria-hidden="true"></i> {{ @root.__ "Cart" }} <span class="badge badge-danger" id="cart-count">0</span></a></li>
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
{{#if admin}}
|
||||
{{#if @root.session.user}}
|
||||
<li><a href="/admin/logout"><i class="fa fa-sign-out" aria-hidden="true"> </i>Logout</a></li>
|
||||
<li class="nav-item"><a href="/admin/logout"><i class="fa fa-sign-out" aria-hidden="true"> </i>Logout</a></li>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="site-overlay"></div>
|
||||
{{#unless admin}}
|
||||
{{#ifCond page '!=' 'checkout'}}
|
||||
{{#ifCond page '!=' 'pay'}}
|
||||
<div id="cart" class="col-md-12 pad-left-12 pushy pushy-right">
|
||||
<div id="cart" class="col-md-12 pad-left-12 top-pad-10 pushy pushy-right">
|
||||
<div class="row {{checkout}}">
|
||||
<div class="col-lg-12 col l12 text-right">
|
||||
<button class="pushy-link btn btn-primary" type="button">X</button>
|
||||
<div class="col-sm-12 text-right">
|
||||
<button class="pushy-link btn btn-outline-primary" type="button">X</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
@ -151,9 +131,9 @@
|
|||
{{> (getTheme 'cart')}}
|
||||
<div class="row">
|
||||
{{#if @root.session.cart}}
|
||||
<div class="col-xs-12 col s12">
|
||||
<button class="btn btn-danger pull-left" id="empty-cart" type="button">{{ @root.__ "Empty cart" }}</button>
|
||||
<a href="/checkout/information" class="btn btn-primary pull-right">Checkout</a>
|
||||
<div class="col-sm-12">
|
||||
<button class="btn btn-outline-danger pull-left" id="empty-cart" type="button">{{ @root.__ "Empty cart" }}</button>
|
||||
<a href="/checkout/information" class="btn btn-outline-primary pull-right">Checkout</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
@ -166,9 +146,7 @@
|
|||
<div class="container-fluid content-body" id="container">
|
||||
<div class="row">
|
||||
{{#if admin}}
|
||||
<div class="col-xs-12 col s12">
|
||||
{{{body}}}
|
||||
</div>
|
||||
{{else}}
|
||||
{{{body}}}
|
||||
{{/if}}
|
||||
|
@ -183,7 +161,7 @@
|
|||
<footer class="footer">
|
||||
<div class="container-fluid">
|
||||
{{#isNull @root.config.footerHtml}}
|
||||
<h4 class="text-center">Powered by expressCart</h4>
|
||||
<h5 class="text-center">Powered by expressCart</h5>
|
||||
{{else}}
|
||||
{{{@root.config.footerHtml}}}
|
||||
{{/isNull}}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="col-md-offset-4 col-md-4 col-lg-offset-4 col-lg-4" style="padding-top: 100px" >
|
||||
<div class="col-md-4 offset-md-4 top-pad-100">
|
||||
<form class="form-signin" method="post" role="form" data-toggle="validator">
|
||||
<input type="hidden" name="frm_referringUrl" value="{{referringUrl}}">
|
||||
<h2 class="form-signin-heading">{{ @root.__ "Please sign in" }}</h2>
|
||||
|
@ -8,6 +8,6 @@
|
|||
<div class="form-group">
|
||||
<input type="password" id="password" name="password" class="form-control" placeholder="Password" required>
|
||||
</div>
|
||||
<button class="btn btn-lg btn-primary btn-block" id="loginForm" type="submit">{{ @root.__ "Sign in" }}</button>
|
||||
<button class="btn btn-outline-primary btn-block" id="loginForm" type="submit">{{ @root.__ "Sign in" }}</button>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{{> partials/menu}}
|
||||
<div class="col-lg-9">
|
||||
<div class="col-lg-12">
|
||||
<div class="col-sm-9">
|
||||
<div class="col-sm-12">
|
||||
<h2>View Order</h2>
|
||||
</div>
|
||||
<div class="order-layout col-md-12">
|
||||
<div class="row">
|
||||
<div class="col-md-12 bottom-pad-20">
|
||||
<a id="orderStatusUpdate" class="btn btn-sm btn-success pull-left">{{ @root.__ "Update status" }}</a>
|
||||
<a href="/admin/orders" class="btn btn-sm btn-info pull-right">{{ @root.__ "Go Back" }}</a>
|
||||
<button id="orderStatusUpdate" class="btn btn-outline-success pull-left">{{ @root.__ "Update status" }}</button>
|
||||
<a href="/admin/orders" class="btn btn-outline-info pull-right">{{ @root.__ "Go Back" }}</a>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="list-group">
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
{{> partials/menu}}
|
||||
<div class="col-lg-9">
|
||||
<div class="col-lg-12">
|
||||
<div class="col-sm-9 top-pad-5">
|
||||
<div class="col-sm-12">
|
||||
<h2>Orders</h2>
|
||||
</div>
|
||||
<div class="col-lg-12 search_bar">
|
||||
<div class="col-sm-12 search_bar">
|
||||
<div class="input-group">
|
||||
<input type="text" name="order_filter" id="order_filter" class="form-control input-lg" placeholder="Filter orders">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-success btn-lg" id="btn_order_filter">{{ @root.__ "Filter" }}</button>
|
||||
<a href="/admin/orders/bystatus/" class="hidden-xs btn btn-info btn-lg orderFilterByStatus">{{ @root.__ "By status" }}</a>
|
||||
<a href="/admin/orders" class="hidden-xs btn btn-warning btn-lg"><i class="fa fa-times" aria-hidden="true"></i></a>
|
||||
</span>
|
||||
<input type="text" name="order_filter" id="order_filter" class="form-control" placeholder="Filter orders">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-success" id="btn_order_filter">{{ @root.__ "Filter" }}</button>
|
||||
<a href="/admin/orders/bystatus/" class="hidden-xs btn btn-outline-info orderFilterByStatus">{{ @root.__ "By status" }}</a>
|
||||
<a href="/admin/orders" class="hidden-xs btn btn-outline-warning"><i class="fa fa-times" aria-hidden="true"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="orderFilter">
|
||||
<div class="text-warning top-pad-10 col-md-8">{{ @root.__ "Orders can be filtered by: surname, email address or postcode/zipcode" }}</div>
|
||||
<div class="col-md-4 no-pad-right">
|
||||
<div class="row">
|
||||
<div class="text-warning top-pad-10 col-sm-8">{{ @root.__ "Orders can be filtered by: surname, email address or postcode/zipcode" }}</div>
|
||||
<div class="col-sm-4">
|
||||
<div class="form-group">
|
||||
<label for="orderStatusFilter" class="col-sm-2 control-label formLabel">Status</label>
|
||||
<div class="col-sm-10 no-pad-right">
|
||||
<div class="no-pad-right">
|
||||
<select class="form-control input-sm" id="orderStatusFilter">
|
||||
<option>{{ @root.__ "Completed" }}</option>
|
||||
<option>{{ @root.__ "Paid" }}</option>
|
||||
|
@ -32,8 +33,8 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-12 top-pad-10">
|
||||
</div>
|
||||
<div class="col-sm-12 top-pad-10">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">
|
||||
{{#if searchTerm}}
|
||||
|
@ -45,13 +46,13 @@
|
|||
{{#if orders}}
|
||||
{{#each orders}}
|
||||
<li class="list-group-item">
|
||||
<h4 class="pull-right" style="padding-left: 10px;">
|
||||
<h6 class="pull-right top-pad-5">
|
||||
{{ @root.__ "Status" }}: <span class="text-{{getStatusColor this.orderStatus}}">{{this.orderStatus}}</span>
|
||||
<a class="text-danger" href="/admin/order/delete/{{this._id}}" onclick="return confirm('Are you sure you want to delete this order?');"> <i class="fa fa-trash-o"></i></a>
|
||||
</h4>
|
||||
<h5>
|
||||
</h6>
|
||||
<h6>
|
||||
<a href="/admin/order/view/{{this._id}}" class="text-success">View order</a> - <span class="text-info">Date: </span>{{formatDate this.orderDate "DD/MM/YYYY hh:mm"}} | <span class="text-info">Email:</span> {{this.orderEmail}} | <span class="text-info">{{ @root.__ "Last name" }}:</span> {{this.orderLastname}}
|
||||
</h5>
|
||||
</h6>
|
||||
</li>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="col-lg-3">
|
||||
<div class="col-sm-3">
|
||||
<h2> </h2>
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item"><strong>Products</strong></li>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="col-xs-12 col s12 text-center">
|
||||
<div class="col-sm-12 text-center">
|
||||
<div id="adyen-dropin"></div>
|
||||
<link rel="stylesheet" href="https://checkoutshopper-live.adyen.com/checkoutshopper/sdk/3.2.0/adyen.css"/>
|
||||
<script src="https://checkoutshopper-live.adyen.com/checkoutshopper/sdk/3.2.0/adyen.js"></script>
|
||||
|
|
|
@ -41,12 +41,12 @@
|
|||
});
|
||||
}
|
||||
</script>
|
||||
<div class="col-sm-12 col s12 text-center">
|
||||
<div class="col-sm-12 text-center">
|
||||
<form id="paymentForm" method="POST">
|
||||
<input type="hidden" name="dataValue" id="dataValue" />
|
||||
<input type="hidden" name="dataDescriptor" id="dataDescriptor" />
|
||||
<button type="button"
|
||||
class="AcceptUI btn btn-success waves-effect waves-light blue darken-3"
|
||||
class="AcceptUI btn btn-outline-success waves-effect waves-light blue darken-3"
|
||||
data-billingAddressOptions='{"show":false, "required":false}'
|
||||
data-apiLoginID="{{@root.paymentConfig.loginId}}"
|
||||
data-clientKey="{{@root.paymentConfig.clientKey}}"
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<div class="paypal_button col-sm-12 col s12 text-center">
|
||||
<button id="checkout_paypal" class="btn btn-success waves-effect waves-light blue darken-3" type="submit"><i class="fa fa-cc-paypal fa-lg" aria-hidden="true"></i> Pay with PayPal <i class="fa fa-cc-paypal fa-lg" aria-hidden="true"></i></button>
|
||||
<div class="paypal_button col-sm-12 text-center">
|
||||
<button id="checkout_paypal" class="btn btn-outline-success waves-effect waves-light blue darken-3" type="submit"><i class="fa fa-cc-paypal fa-lg" aria-hidden="true"></i> Pay with PayPal <i class="fa fa-cc-paypal fa-lg" aria-hidden="true"></i></button>
|
||||
</div>
|
|
@ -1,10 +1,10 @@
|
|||
<div class="col-xs-12 col s12 text-center">
|
||||
<div class="col-sm-12 text-center">
|
||||
<form method="POST" id="payment-form">
|
||||
<button
|
||||
type="submit"
|
||||
id="stripeButton"
|
||||
value="Process payment"
|
||||
class="btn btn-success waves-effect waves-light blue darken-3"
|
||||
class="btn btn-outline-success waves-effect waves-light blue darken-3"
|
||||
type="submit"
|
||||
data-key="{{@root.paymentConfig.publicKey}}"
|
||||
data-amount="{{amountNoDecimal @root.session.totalCartAmount}}"
|
||||
|
|
|
@ -1,32 +1,35 @@
|
|||
{{> partials/menu}}
|
||||
<div class="col-lg-9">
|
||||
<div class="col-sm-9 top-pad-10">
|
||||
<form class="form-horizontal" id="productEditForm" data-toggle="validator">
|
||||
<div class="col-lg-12">
|
||||
<div class="col-sm-12">
|
||||
<div class="page-header">
|
||||
<div class="pull-right">
|
||||
<button type="button" class="btn btn-info" data-toggle="modal" data-target="#myModal">{{ @root.__ "Upload image" }}</button>
|
||||
<button id="productUpdate" class="btn btn-success">{{ @root.__ "Save product" }} <i class="fa fa-floppy-o"></i></button>
|
||||
<button type="button" class="btn btn-outline-info" data-toggle="modal" data-target="#myModal">{{ @root.__ "Upload image" }}</button>
|
||||
<button id="productUpdate" class="btn btn-outline-success">{{ @root.__ "Save product" }} <i class="fa fa-floppy-o"></i></button>
|
||||
</div>
|
||||
<h2>{{ @root.__ "Edit product" }}</h2>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="productTitle" class="col-sm-2 control-label">{{ @root.__ "Product title" }} *</label>
|
||||
</div>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label for="productTitle" class="control-label">{{ @root.__ "Product title" }} *</label>
|
||||
<input type="text" id="productTitle" class="form-control" minlength="5" maxlength="200" value="{{result.productTitle}}" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="productPrice" class="col-sm-2 control-label">{{ @root.__ "Product price" }} *</label>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label for="productPrice" class="control-label">{{ @root.__ "Product price" }} *</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon">{{currencySymbol config.currencySymbol}}</span>
|
||||
<div class="input-group-prepend">
|
||||
<label class="input-group-text">{{currencySymbol config.currencySymbol}}</label>
|
||||
</div>
|
||||
<input type="number" id="productPrice" class="form-control" value="{{result.productPrice}}" step="any" required/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="productPublished" class="col-sm-2 control-label">{{ @root.__ "Status" }}</label>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label for="productPublished" class="control-label">{{ @root.__ "Status" }}</label>
|
||||
<select class="form-control" id="productPublished">
|
||||
<option value="true" {{selectState result.productPublished "true"}}>{{ @root.__ "Published" }}</option>
|
||||
<option value="false" {{selectState result.productPublished "false"}}>{{ @root.__ "Draft" }}</option>
|
||||
|
@ -34,47 +37,47 @@
|
|||
</div>
|
||||
</div>
|
||||
{{#if config.trackStock}}
|
||||
<div class="form-group">
|
||||
<label for="productStock" class="col-sm-2 control-label">{{ @root.__ "Stock level" }}</label>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label for="productStock" class="control-label">{{ @root.__ "Stock level" }}</label>
|
||||
<input type="number" id="productStock" class="form-control" value="{{result.productStock}}" step="any" />
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="form-group">
|
||||
<label for="productDescription" class="col-sm-2 control-label">{{ @root.__ "Product description" }} *</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label for="productDescription" class="control-label">{{ @root.__ "Product description" }} *</label>
|
||||
<textarea minlength="5" rows="10" id="productDescription" class="form-control" required>{{result.productDescription}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Permalink</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Permalink</label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="productPermalink" placeholder="Permalink for the article" value={{result.productPermalink}}>
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-success" id="validate_permalink" type="button">{{ @root.__ "Validate" }}</button>
|
||||
</span>
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-success" id="validate_permalink" type="button">{{ @root.__ "Validate" }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<p class="help-block">{{ @root.__ "This sets a readable URL for the product" }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<input type="hidden" id="productOptions" value="{{stringify result.productOptions}}" />
|
||||
<label class="col-sm-2 control-label">{{ @root.__ "Product options" }}</label>
|
||||
<div class="col-lg-10">
|
||||
<label class="control-label">{{ @root.__ "Product options" }}</label>
|
||||
<ul class="list-group" id="product_opt_wrapper">
|
||||
<li class="list-group-item">
|
||||
<div class="row">
|
||||
<div class="col-lg-2">
|
||||
<div class="col-sm-2">
|
||||
<strong>{{ @root.__ "Name" }}:</strong>
|
||||
<input type="text" id="product_optName" class="form-control" placeholder="size" />
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<div class="col-sm-2">
|
||||
<strong>{{ @root.__ "Label" }}:</strong>
|
||||
<input type="text" id="product_optLabel" class="form-control" placeholder="Select size"/>
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<div class="col-sm-2">
|
||||
<strong>{{ @root.__ "Type" }}:</strong>
|
||||
<select id="product_optType" class="form-control">
|
||||
<option value="select">Select</option>
|
||||
|
@ -82,23 +85,23 @@
|
|||
<option value="checkbox">Checkbox</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="col-sm-4">
|
||||
<strong>{{ @root.__ "Options" }}:</strong>
|
||||
<input type="text" id="product_optOptions" class="form-control" placeholder="comma, seporated, list"/>
|
||||
</div>
|
||||
<div class="col-lg-2 text-right"></br>
|
||||
<button id="product_opt_add" class="btn btn-success">{{ @root.__ "Add" }}</button>
|
||||
<div class="col-sm-2 text-right"></br>
|
||||
<button id="product_opt_add" class="btn btn-outline-success">{{ @root.__ "Add" }}</button>
|
||||
</div></div>
|
||||
</li>
|
||||
{{#each options}}
|
||||
<li class="list-group-item">
|
||||
<div class="row">
|
||||
<div class='col-lg-2 opt-name'>{{this.optName}}</div>
|
||||
<div class='col-lg-2'>{{this.optLabel}}</div>
|
||||
<div class='col-lg-2'>{{this.optType}}</div>
|
||||
<div class='col-lg-4'>{{{this.optOptions}}}</div>
|
||||
<div class='col-lg-2 text-right'>
|
||||
<button class='product_opt_remove btn btn-danger btn-sm'>{{ @root.__ "Remove" }}</button>
|
||||
<div class='col-sm-2 opt-name'>{{this.optName}}</div>
|
||||
<div class='col-sm-2'>{{this.optLabel}}</div>
|
||||
<div class='col-sm-2'>{{this.optType}}</div>
|
||||
<div class='col-sm-4'>{{{this.optOptions}}}</div>
|
||||
<div class='col-sm-2 text-right'>
|
||||
<button class='product_opt_remove btn btn-outline-danger'>{{ @root.__ "Remove" }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -108,17 +111,17 @@
|
|||
</div>
|
||||
</div>
|
||||
{{#ifCond config.paymentGateway '==' 'stripe'}}
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Subscription plan</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Subscription plan</label>
|
||||
<input type="text" class="form-control" id="productSubscription" placeholder="plan_XXXXXXXXXXXXXX" value={{@root.result.productSubscription}}>
|
||||
<p class="help-block">First setup the plan in <strong>Stripe</strong> dashboard and enter the Plan ID. Format: plan_XXXXXXXXXXXXXX</p>
|
||||
</div>
|
||||
</div>
|
||||
{{/ifCond}}
|
||||
<div class="form-group">
|
||||
<label for="productComment" class="col-sm-2 control-label">{{ @root.__ "Allow comment" }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label for="productComment" class="control-label">{{ @root.__ "Allow comment" }}</label>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input class="productComment" type="checkbox" {{checkedState result.productComment}} id="productComment">
|
||||
|
@ -127,26 +130,27 @@
|
|||
<p class="help-block">{{ @root.__ "Allow free form comments when adding products to cart" }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="productTags" class="col-sm-2 control-label">{{ @root.__ "Product tag words" }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label for="productTags" class="control-label">{{ @root.__ "Product tag words" }}</label>
|
||||
<input type="text" class="form-control" id="productTags" value="{{result.productTags}}">
|
||||
<p class="help-block">{{ @root.__ "Tag words used to indexed products, making them easier to find and filter." }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<div id="product-images">
|
||||
<h2>{{ @root.__ "Product images" }}</h2>
|
||||
{{#if images}}
|
||||
<div class="row">
|
||||
<div class="col-md-10 col-md-offset-2">
|
||||
<div class="col-sm-10 offset-sm-2">
|
||||
{{#each images}}
|
||||
<div class="col-md-3">
|
||||
<div class="col-sm-3">
|
||||
<p>
|
||||
<a data-id="{{this.path}}" class="btn-delete-image btn btn-danger btn-sm">{{ @root.__ "Delete" }}</a>
|
||||
<a data-id="{{this.path}}" class="btn-delete-image btn btn-outline-danger">{{ @root.__ "Delete" }}</a>
|
||||
{{#ifCond this.productImage '==' true}}
|
||||
<span class="label label-info">{{ @root.__ "main image" }}</span>
|
||||
{{else}}
|
||||
<a data-id="{{../this.path}}" class="set-as-main-image btn btn-sm btn-success">{{ @root.__ "Set as main image" }}</a>
|
||||
<a data-id="{{../this.path}}" class="set-as-main-image btn btn-outline-success">{{ @root.__ "Set as main image" }}</a>
|
||||
{{/ifCond}}
|
||||
</p>
|
||||
<img src="{{this.path}}" class="product-main-image img-responsive">
|
||||
|
@ -159,6 +163,7 @@
|
|||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" id="productId" value="{{result._id}}" />
|
||||
</form>
|
||||
</div>
|
||||
|
@ -173,20 +178,20 @@
|
|||
<h4 class="modal-title" id="myModalLabel">{{ @root.__ "Product image upload" }}</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<span class="btn btn-info btn-file">
|
||||
<span class="btn btn-outline-info btn-file">
|
||||
{{ @root.__ "Select file" }}<input type="file" name="uploadFile" id="uploadFile" form="uploadForm">
|
||||
</span>
|
||||
<input type="hidden" id="productId" name="productId" value="{{result._id}}"/>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
|
||||
<button type="button" id="uploadButton" class="btn btn-primary">{{ @root.__ "Upload" }}</button>
|
||||
<button type="button" id="uploadButton" class="btn btn-outline-primary">{{ @root.__ "Upload" }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.2/summernote.min.js"></script>
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.2/summernote.css" rel="stylesheet">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.12/summernote.min.js" integrity="sha256-Q4K0T9IUORjpebn9dIu9szj2Rgn7GmLF+S3RjgM8aXw=" crossorigin="anonymous"></script>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.12/summernote.css" integrity="sha256-f/v2ew/bb0v4el1ALE7bOoXGUDWGk2k+dkPLo3JPhLw=" crossorigin="anonymous" />
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#productDescription').summernote({
|
||||
|
|
|
@ -1,31 +1,34 @@
|
|||
{{> partials/menu}}
|
||||
<div class="col-lg-9">
|
||||
<div class="col-sm-9 top-pad-10">
|
||||
<form class="form-horizontal" id="productNewForm" data-toggle="validator">
|
||||
<div class="col-lg-12">
|
||||
<div class="col-sm-12">
|
||||
<div class="page-header">
|
||||
<div class="pull-right">
|
||||
<button id="frm_edit_product_save" class="btn btn-success" type="submit">Add product <i class="fa fa-plus"></i></button>
|
||||
<button id="frm_edit_product_save" class="btn btn-outline-success" type="submit">Add product <i class="fa fa-plus"></i></button>
|
||||
</div>
|
||||
<h2>{{ @root.__ "New product" }}</h2>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="productTitle" class="col-sm-2 control-label">{{ @root.__ "Product title" }} *</label>
|
||||
</div>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label for="productTitle" class="control-label">{{ @root.__ "Product title" }} *</label>
|
||||
<input type="text" id="productTitle" class="form-control" minlength="5" maxlength="200" value="{{productTitle}}" required/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="productPrice" class="col-sm-2 control-label">{{ @root.__ "Product price" }} *</label>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label for="productPrice" class="control-label">{{ @root.__ "Product price" }} *</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon">$</span>
|
||||
<div class="input-group-prepend">
|
||||
<label class="input-group-text">{{currencySymbol config.currencySymbol}}</label>
|
||||
</div>
|
||||
<input type="number" id="productPrice" class="form-control" step="any" value="{{productPrice}}" required/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="productPublished" class="col-sm-2 control-label">{{ @root.__ "Status" }}</label>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label for="productPublished" class="control-label">{{ @root.__ "Status" }}</label>
|
||||
<select class="form-control" id="productPublished">
|
||||
<option value="true" selected>{{ @root.__ "Published" }}</option>
|
||||
<option value="false">{{ @root.__ "Draft" }}</option>
|
||||
|
@ -33,47 +36,47 @@
|
|||
</div>
|
||||
</div>
|
||||
{{#if config.trackStock}}
|
||||
<div class="form-group">
|
||||
<label for="productStock" class="col-sm-2 control-label">{{ @root.__ "Stock level" }}</label>
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label for="productStock" class="control-label">{{ @root.__ "Stock level" }}</label>
|
||||
<input type="number" id="productStock" class="form-control" value="{{productStock}}" step="any" />
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="form-group" id="editor-wrapper">
|
||||
<label for="editor" class="col-sm-2 control-label">{{ @root.__ "Product description" }} *</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group" id="editor-wrapper">
|
||||
<label for="editor" class="control-label">{{ @root.__ "Product description" }} *</label>
|
||||
<textarea minlength="5" rows="10" id="productDescription" class="form-control" required>{{productDescription}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Permalink</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Permalink</label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="productPermalink" placeholder="Permalink for the article" value={{productPermalink}}>
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-success" id="validate_permalink" type="button">Validate</button>
|
||||
</span>
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-success" id="validate_permalink" type="button">Validate</button>
|
||||
</div>
|
||||
</div>
|
||||
<p class="help-block">{{ @root.__ "This sets a readable URL for the product" }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label class="control-label">{{ @root.__ "Product options" }}</label>
|
||||
<input type="hidden" id="productOptions" value="{{result.productOptions}}" />
|
||||
<label for="editor" class="col-sm-2 control-label">{{ @root.__ "Product options" }}</label>
|
||||
<div class="col-lg-10">
|
||||
<ul class="list-group" id="product_opt_wrapper">
|
||||
<li class="list-group-item">
|
||||
<div class="row">
|
||||
<div class="col-lg-2">
|
||||
<div class="col-sm-2">
|
||||
<strong>{{ @root.__ "Name" }}:</strong>
|
||||
<input type="text" id="product_optName" class="form-control" placeholder="Size" />
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<div class="col-sm-2">
|
||||
<strong>{{ @root.__ "Label" }}:</strong>
|
||||
<input type="text" id="product_optLabel" class="form-control" placeholder="Select size"/>
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<div class="col-sm-2">
|
||||
<strong>{{ @root.__ "Type" }}:</strong>
|
||||
<select id="product_optType" class="form-control">
|
||||
<option value="select">Select</option>
|
||||
|
@ -81,23 +84,23 @@
|
|||
<option value="checkbox">Checkbox</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="col-sm-4">
|
||||
<strong>{{ @root.__ "Options" }}:</strong>
|
||||
<input type="text" id="product_optOptions" class="form-control" placeholder="comma, seporated, list"/>
|
||||
</div>
|
||||
<div class="col-lg-2 text-right"></br>
|
||||
<button id="product_opt_add" class="btn btn-success">{{ @root.__ "Add" }}</button>
|
||||
<div class="col-sm-2 text-right"></br>
|
||||
<button id="product_opt_add" class="btn btn-outline-success">{{ @root.__ "Add" }}</button>
|
||||
</div></div>
|
||||
</li>
|
||||
{{#each options}}
|
||||
<li class="list-group-item">
|
||||
<div class="row">
|
||||
<div class='col-lg-2 opt-name'>{{this.optName}}</div>
|
||||
<div class='col-lg-2'>{{this.optLabel}}</div>
|
||||
<div class='col-lg-2'>{{this.optType}}</div>
|
||||
<div class='col-lg-4'>{{{this.optOptions}}}</div>
|
||||
<div class='col-lg-2 text-right'>
|
||||
<button class='product_opt_remove btn btn-danger btn-sm'>{{ @root.__ "Remove" }}</button>
|
||||
<div class='col-sm-2 opt-name'>{{this.optName}}</div>
|
||||
<div class='col-sm-2'>{{this.optLabel}}</div>
|
||||
<div class='col-sm-2'>{{this.optType}}</div>
|
||||
<div class='col-sm-4'>{{{this.optOptions}}}</div>
|
||||
<div class='col-sm-2 text-right'>
|
||||
<button class='product_opt_remove btn btn-outline-danger'>{{ @root.__ "Remove" }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -107,17 +110,17 @@
|
|||
</div>
|
||||
</div>
|
||||
{{#ifCond config.paymentGateway '==' 'stripe'}}
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Subscription plan</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Subscription plan</label>
|
||||
<input type="text" class="form-control" id="productSubscription" placeholder="plan_XXXXXXXXXXXXXX">
|
||||
<p class="help-block">First setup the plan in <strong>Stripe</strong> dashboard and enter the Plan ID. Format: plan_XXXXXXXXXXXXXX</p>
|
||||
</div>
|
||||
</div>
|
||||
{{/ifCond}}
|
||||
<div class="form-group">
|
||||
<label for="productComment" class="col-sm-2 control-label">{{ @root.__ "Allow comment" }}</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label for="productComment" class="control-label">{{ @root.__ "Allow comment" }}</label>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input class="productComment" type="checkbox" {{checkedState result.productComment}} id="productComment">
|
||||
|
@ -126,9 +129,9 @@
|
|||
<p class="help-block">{{ @root.__ "Allow free form comments when adding products to cart" }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="productTags" class="col-sm-2 control-label">Product tag words</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="form-group">
|
||||
<label for="productTags" class="control-label">Product tag words</label>
|
||||
<input type="text" class="form-control" id="productTags">
|
||||
<p class="help-block">{{ @root.__ "Tag words used to indexed products, making them easier to find and filter." }}</p>
|
||||
</div>
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
{{> partials/menu}}
|
||||
<div class="col-lg-9">
|
||||
<div class="col-lg-12">
|
||||
<div class="col-sm-9">
|
||||
<div class="col-sm-12">
|
||||
<h2>Products</h2>
|
||||
</div>
|
||||
<div class="col-lg-12 search_bar">
|
||||
<div class="col-sm-12 search_bar">
|
||||
<div class="input-group">
|
||||
<input type="text" name="product_filter" id="product_filter" class="form-control input-lg" placeholder="Filter products">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-success btn-lg" id="btn_product_filter">Filter</button>
|
||||
<a href="/admin/products" class="hidden-xs btn btn-warning btn-lg"><i class="fa fa-times" aria-hidden="true"></i></a>
|
||||
</span>
|
||||
<input type="text" name="product_filter" id="product_filter" class="form-control" placeholder="Filter products">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-success" id="btn_product_filter">Filter</button>
|
||||
<a href="/admin/products" class="hidden-xs btn btn-outline-warning"><i class="fa fa-times" aria-hidden="true"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-warning top-pad-10">{{ @root.__ "Products can be filtered by: product title or product description keywords" }}</p>
|
||||
</div>
|
||||
<div class="col-lg-12">
|
||||
<div class="col-sm-12">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">
|
||||
<span class="pull-right"><strong>{{ @root.__ "Published" }}</strong></span>
|
||||
|
@ -27,7 +27,7 @@
|
|||
<li class="list-group-item">
|
||||
<button class="pull-right btn text-danger btn-delete-product" data-id="{{this._id}}"> <i class="fa fa-trash-o"></i></button>
|
||||
<h4 class="pull-right"><input id="{{this._id}}" class="published_state" type="checkbox" {{checkedState this.productPublished}}></h4>
|
||||
<h5><a href="/admin/product/edit/{{this._id}}">{{this.productTitle}}</a></h5>
|
||||
<h6><a href="/admin/product/edit/{{this._id}}">{{this.productTitle}}</a></h6>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="col-md-offset-4 col-md-4 col-lg-offset-4 col-lg-4">
|
||||
<div class="col-md-4 offset-md-4">
|
||||
<form class="form-signin" action="/{{route}}/reset/{{token}}" method="post" role="form" data-toggle="validator">
|
||||
<h2 class="form-signin-heading">Password reset</h2>
|
||||
<div class="form-group">
|
||||
|
@ -9,7 +9,7 @@
|
|||
<label for="frm_user_password_confirm">{{ @root.__ "Confirm" }} password *</label>
|
||||
<input type="password" data-match="#user_password" placeholder="Confirm password" class="form-control" name="frm_user_password_confirm" required>
|
||||
</div>
|
||||
<button class="btn btn-lg btn-success btn-block" type="submit">{{ @root.__ "Update" }} password</button>
|
||||
<button class="btn btn-outline-success btn-block" type="submit">{{ @root.__ "Update" }} password</button>
|
||||
</br>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{{> partials/menu}}
|
||||
<div class="col-lg-9">
|
||||
<div class="col-sm-9">
|
||||
<div class="row">
|
||||
<div class="col-md-10">
|
||||
<form id="settingsForm" data-toggle="validator">
|
||||
<h2 class="clearfix">{{ @root.__ "General settings" }}
|
||||
<div class="pull-right">
|
||||
<button type="submit" id="btnSettingsUpdate" class="btn btn-success">{{ @root.__ "Update" }}</button>
|
||||
<button type="submit" id="btnSettingsUpdate" class="btn btn-outline-success">{{ @root.__ "Update" }}</button>
|
||||
</h2>
|
||||
<div class="form-group">
|
||||
<label>{{ @root.__ "Cart name" }} *</label>
|
||||
|
@ -146,7 +146,7 @@
|
|||
<input type="password" class="form-control" name="emailPassword" value="{{config.emailPassword}}" autocomplete="off" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button id="sendTestEmail" class="btn btn-success">{{ @root.__ "Send test email" }}</button>
|
||||
<button id="sendTestEmail" class="btn btn-outline-success">{{ @root.__ "Send test email" }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,73 +1,53 @@
|
|||
{{> partials/menu}}
|
||||
<script src="https://code.jquery.com/ui/1.11.3/jquery-ui.min.js"></script>
|
||||
<div class="col-lg-9">
|
||||
<div class="col-sm-9">
|
||||
<div class="row">
|
||||
<div class="col-md-10">
|
||||
<div class="col-sm-10">
|
||||
<h2>Menu</h2>
|
||||
<table class="table table-condensed">
|
||||
<th></th>
|
||||
<th>Menu</th>
|
||||
<th>Link</th>
|
||||
<th></th>
|
||||
<tbody id="draggable_list">
|
||||
<div class="row">
|
||||
<div class="col-sm-2 offset-sm-1">Menu</div>
|
||||
<div class="col-sm-9">link</div>
|
||||
</div>
|
||||
<div id="draggable_list">
|
||||
{{#each menu.items}}
|
||||
<tr class="drag-row" id="menuId-{{@key}}">
|
||||
<div class="row drag-row" id="menuId-{{@key}}">
|
||||
<input type="hidden" class="navId" value="{{title}}">
|
||||
<td class="dragable_item col-md-1 td-pad"><i class="fa fa-arrows"></i></td>
|
||||
<td class="dragable_item col-md-2">
|
||||
<input type="text" class="form-control input-sm navMenu" value="{{title}}">
|
||||
</td>
|
||||
<td class="dragable_item col-md-6">
|
||||
<input type="text" class="form-control input-sm navLink" value="{{link}}">
|
||||
</td>
|
||||
<td class="col-md-2">
|
||||
<a class="btn btn-danger btn-sm settings-menu-delete" data-id="{{@key}}">
|
||||
<div class="col-sm-1 dragable_item"><i class="fa fa-arrows"></i></div>
|
||||
<div class="col-sm-2 dragable_item">
|
||||
<input type="text" class="form-control navMenu navItem" value="{{title}}">
|
||||
</div>
|
||||
<div class="col-sm-6 dragable_item">
|
||||
<input type="text" class="form-control navLink navItem" value="{{link}}">
|
||||
</div>
|
||||
<div class="col-sm-3 dragable_item">
|
||||
<a class="btn btn-outline-danger settings-menu-delete" data-id="{{@key}}">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
<button type="submit" class="btn btn-success btn-sm" id="settings-menu-update" >
|
||||
<button type="submit" class="btn btn-outline-success" id="settings-menu-update" data-id="{{@key}}">
|
||||
<i class="fa fa-floppy-o"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
<tr>
|
||||
<td class="dragable_item col-md-1"></td>
|
||||
<td class="dragable_item col-md-2">
|
||||
<input type="text" class="form-control input-sm" id="newNavMenu">
|
||||
</td>
|
||||
<td class="dragable_item col-md-6">
|
||||
<input type="text" class="form-control input-sm" id="newNavLink">
|
||||
</td>
|
||||
<td class="col-md-2">
|
||||
<button type="submit" id="settings-menu-new" class="btn btn-success btn-sm">
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-2 offset-sm-1">
|
||||
<input type="text" class="form-control input-sm" id="newNavMenu" placeholder="Contact Us">
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control input-sm" id="newNavLink" placeholder="/contact">
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<button type="submit" id="settings-menu-new" class="btn btn-outline-success">
|
||||
<i class="fa fa-plus"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="text-muted">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<p class="text-muted">
|
||||
{{ @root.__ "Setting_menu_explain" }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#draggable_list').sortable({
|
||||
update: function (event, ui) {
|
||||
var sorted = $( ".navId" ).serialize();
|
||||
$.ajax({
|
||||
data: sorted,
|
||||
type: 'POST',
|
||||
url: '/admin/settings/menu/save_order'
|
||||
})
|
||||
.fail(function(msg){
|
||||
showNotification(msg.responseJSON.message, 'danger', true);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
|
@ -1,9 +1,9 @@
|
|||
{{> partials/menu}}
|
||||
<div class="col-lg-9">
|
||||
<div class="col-sm-9">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<form id="settingsPageEditor">
|
||||
<h2 class="clearfix">{{ @root.__ "Static page" }} <div class="pull-right"><button type="submit" id="btnPageUpdate" class="btn btn-success">{{button_text}}</button></div></h2>
|
||||
<h2 class="clearfix">{{ @root.__ "Static page" }} <div class="pull-right"><button type="submit" id="btnPageUpdate" class="btn btn-outline-success">{{button_text}}</button></div></h2>
|
||||
<input type="hidden" id="pageId" value="{{page._id}}">
|
||||
<div class="form-group">
|
||||
<label>{{ @root.__ "Page name" }} *</label>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{{> partials/menu}}
|
||||
<div class="col-lg-9">
|
||||
<div class="col-sm-9">
|
||||
<div class="row">
|
||||
<div class="col-md-10">
|
||||
<h2 class="clearfix">{{ @root.__ "Static pages" }} <div class="pull-right"><a href="/admin/settings/pages/new" class="btn btn-success">{{ @root.__ "New page" }}</a></div></h2>
|
||||
<h2 class="clearfix">{{ @root.__ "Static pages" }} <div class="pull-right"><a href="/admin/settings/pages/new" class="btn btn-outline-success">{{ @root.__ "New page" }}</a></div></h2>
|
||||
<p class="text-muted">
|
||||
{{ @root.__ "Static_Pages_Info" }}
|
||||
</p>
|
||||
|
@ -11,12 +11,12 @@
|
|||
{{#each pages}}
|
||||
<li class="list-group-item">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<h5><strong>{{ @root.__ "Name" }}:</strong> {{pageName}}</h5>
|
||||
<div class="col-sm-8">
|
||||
<h6><strong>{{ @root.__ "Name" }}:</strong> {{pageName}}</h6>
|
||||
</div>
|
||||
<div class="col-lg-4 text-right">
|
||||
<a class="btn btn-sm btn-success" href="/admin/settings/pages/edit/{{_id}}">{{ @root.__ "Edit" }}</a>
|
||||
<button class="btn btn-sm btn-danger" id="btnPageDelete" data-id="{{_id}}">{{ @root.__ "Delete" }}</button>
|
||||
<div class="col-sm-4 text-right">
|
||||
<a class="btn btn-outline-success" href="/admin/settings/pages/edit/{{_id}}">{{ @root.__ "Edit" }}</a>
|
||||
<button class="btn btn-outline-danger" id="btnPageDelete" data-id="{{_id}}">{{ @root.__ "Delete" }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -25,7 +25,7 @@
|
|||
{{else}}
|
||||
<h4 class="text-warning text-center">{{ @root.__ "There are currently no static pages setup. Please setup a static page." }}</h4>
|
||||
<p class="text-center">
|
||||
<a class="btn btn-success" href="/admin/settings/pages/new"> {{ @root.__ "Create new" }}</a>
|
||||
<a class="btn btn-outline-success" href="/admin/settings/pages/new"> {{ @root.__ "Create new" }}</a>
|
||||
</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="col-md-offset-4 col-md-4 col-lg-offset-4 col-lg-4" style="padding-top: 50px">
|
||||
<div class="col-md-4 offset-md-4 top-pad-50">
|
||||
<form class="form-signin" id="userSetupForm" role="form" data-toggle="validator">
|
||||
<h2 class="form-signin-heading text-center">expressCart Setup</h2>
|
||||
<div class="form-group">
|
||||
|
@ -17,6 +17,6 @@
|
|||
<label for="frm_userPassword_confirm">{{ @root.__ "Password confirm" }} *</label>
|
||||
<input type="password" data-match="#userPassword" placeholder="Confirm password" class="form-control" id="frm_userPassword_confirm" name="frm_userPassword_confirm" required>
|
||||
</div>
|
||||
<button class="btn btn-lg btn-primary btn-block" type="submit">{{ @root.__ "Complete setup" }}</button>
|
||||
<button class="btn btn-outline-primary btn-block" type="submit">{{ @root.__ "Complete setup" }}</button>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,21 +1,20 @@
|
|||
|
||||
<div class="panel panel-default" style="margin-top: 30px;">
|
||||
<div class="panel-heading">{{ @root.__ "Cart contents" }}</div>
|
||||
<div class="panel-body cart-body">
|
||||
<div class="container-fluid">
|
||||
<div class="card top-marg-15 bottom-marg-15">
|
||||
<div class="card-body cart-body">
|
||||
<h5 class="card-title">{{ @root.__ "Cart contents" }}</h5>
|
||||
{{#each @root.session.cart}}
|
||||
<div class="row cart-row">
|
||||
<div class="col-xs-4 col-md-2 col s4 m2">
|
||||
<div class="d-flex flex-row bottom-pad-15">
|
||||
<div class="col-xs-4 col-md-3">
|
||||
{{#if productImage}}
|
||||
<img class="img-responsive" src="{{this.productImage}}" alt="{{this.title}} product image"> {{else}}
|
||||
<img class="img-responsive" src="/uploads/placeholder.png" alt="{{this.title}} product image"> {{/if}}
|
||||
<img class="img-fluid" src="{{this.productImage}}" alt="{{this.title}} product image"> {{else}}
|
||||
<img class="img-fluid" src="/uploads/placeholder.png" alt="{{this.title}} product image"> {{/if}}
|
||||
</div>
|
||||
<div class="cart-item-row text-left col-xs-12 col-md-7 col s12 m7">
|
||||
<p>
|
||||
<a class="cart-link" href="/product/{{this.link}}">{{this.title}}</a>
|
||||
</p>
|
||||
<p>
|
||||
|
||||
<div class="col-sm-12 col-md-7">
|
||||
<div class="row h-200">
|
||||
<div class="col-sm-12 text-left no-pad-left">
|
||||
<h6><a href="/product/{{this.link}}">{{this.title}}</a></h6>
|
||||
</div>
|
||||
<div class="col-sm-12 text-left no-pad-left">
|
||||
{{#each this.options}}
|
||||
{{#if @last}}
|
||||
{{@key}}: {{this}}
|
||||
|
@ -23,37 +22,35 @@
|
|||
{{@key}}: {{this}} /
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</p>
|
||||
<p>
|
||||
<div class="form-group">
|
||||
<div class="col-lg-5 col l5 no-pad-left">
|
||||
</div>
|
||||
{{#ifCond cartReadOnly '!=' true}}
|
||||
<div class="col-md-8 no-pad-left">
|
||||
<div class="input-group">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-sm btn-primary btn-qty-minus" type="button">-</button>
|
||||
</span>
|
||||
<input type="number" class="form-control cart-product-quantity input-sm text-center" data-id="{{this.productId}}" data-index="{{@key}}"
|
||||
maxlength="2" value="{{this.quantity}}">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-sm btn-primary btn-qty-add" type="button">+</button>
|
||||
</span>
|
||||
<div class="input-group-prepend">
|
||||
<button class="btn btn-outline-primary btn-qty-minus" type="button">-</button>
|
||||
</div>
|
||||
<input type="number" class="form-control cart-product-quantity input-sm text-center" data-id="{{../this.productId}}" data-index="{{@key}}"
|
||||
maxlength="2" value="{{../this.quantity}}">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-primary btn-qty-add" type="button">+</button>
|
||||
</div>
|
||||
</div>
|
||||
<span class="pull-right">
|
||||
<button class="btn btn-sm btn-danger btn-delete-from-cart" data-id="{{this.productId}}" type="button"><i class="fa fa-trash" data-id="{{this.productId}}" aria-hidden="true"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
</p>
|
||||
<div class="col-md-4 text-right">
|
||||
<button class="btn btn-outline-danger btn-delete-from-cart" data-id="{{../this.productId}}" type="button"><i class="fa fa-trash" data-id="{{../this.productId}}" aria-hidden="true"></i></button>
|
||||
</div>
|
||||
<div class="col-xs-12 col-lg-4 col s12 l4 cart-item-row text-right no-pad-right">
|
||||
<strong>{{currencySymbol ../config.currencySymbol}}{{formatAmount this.totalItemPrice}}</strong>
|
||||
{{/ifCond}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="align-self-center col-sm-12 col-md-2 text-right no-pad-right">
|
||||
<strong class="my-auto">{{currencySymbol @root.config.currencySymbol}}{{formatAmount this.totalItemPrice}}</strong>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="container-fluid">
|
||||
{{#if @root.session.cart}}
|
||||
<div class="row">
|
||||
<div class="cart-contents-shipping col-md-12 col m12 no-pad-right">
|
||||
<div class="cart-contents-shipping col-md-12 no-pad-right">
|
||||
{{#ifCond @root.session.shippingCostApplied '===' true}}
|
||||
<div class="text-right">
|
||||
{{ @root.__ "Shipping" }}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<div class="col-xl-8 col-xl-offset-2 col-xs-12">
|
||||
<div class="col-md-10 offset-md-1 col-sm-12">
|
||||
<div class="row">
|
||||
<div id="cart" class="col-md-12">
|
||||
{{> (getTheme 'cart')}}
|
||||
<div class="row">
|
||||
{{#if @root.session.cart}}
|
||||
<div class="col-xs-12 col s12">
|
||||
<button class="btn btn-danger pull-left" id="empty-cart" type="button">{{ @root.__ "Empty cart" }}</button>
|
||||
<a href="/checkout/information" class="btn btn-danger pull-right">Checkout</a>
|
||||
<div class="col-sm-12">
|
||||
<button class="btn btn-outline-danger pull-left" id="empty-cart" type="button">{{ @root.__ "Empty cart" }}</button>
|
||||
<a href="/checkout/information" class="btn btn-outline-danger pull-right">Checkout</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="col-xl-8 col-xl-offset-2 col-xs-12">
|
||||
<div class="col-md-10 offset-md-1 col-sm-12">
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
||||
|
@ -12,48 +12,62 @@
|
|||
{{/if}}
|
||||
</ol>
|
||||
</nav>
|
||||
<div class="row">
|
||||
<div class="row 1">
|
||||
{{#if paymentMessage}}
|
||||
<div class="col-sm-12">
|
||||
<p class="text-danger text-center">{{paymentMessage}}</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="col-md-5">
|
||||
<div class="panel panel-default" style="margin-top: 30px;">
|
||||
<div class="panel-heading">{{ @root.__ "Customer details" }}</div>
|
||||
<div class="card top-marg-15">
|
||||
<div class="card-body customer-details-login">
|
||||
<h5 class="card-heading">{{ @root.__ "Customer details" }}</h5>
|
||||
{{#unless @root.session.customerPresent}}
|
||||
<div class="panel-body customer-details-login">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 bottom-marg-15">
|
||||
<p>{{ @root.__ "Existing customer" }}</p>
|
||||
<div class="form-group">
|
||||
<input type="email" class="form-control" id="customerLoginEmail" name="loginEmail" minlength="5" placeholder="Email address" required>
|
||||
<input type="email" class="form-control" id="customerLoginEmail" name="loginEmail"
|
||||
minlength="5" placeholder="Email address" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="password" class="form-control" id="customerLoginPassword" name="loginPassword" minlength="5" placeholder="Password" required>
|
||||
<input type="password" class="form-control" id="customerLoginPassword"
|
||||
name="loginPassword" minlength="5" placeholder="Password" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<a href="/customer/forgotten" class="btn btn-default pull-left">{{ @root.__ "Forgotten" }}</a>
|
||||
<a href="/customer/forgotten"
|
||||
class="btn btn-outline-primary float-left">{{ @root.__ "Forgotten" }}</a>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button id="customerLogin" class="btn btn-primary pull-right" type="submit">Login</button>
|
||||
<button id="customerLogin" class="btn btn-outline-primary float-right"
|
||||
type="submit">Login</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/unless}}
|
||||
<div class="panel-body customer-details">
|
||||
{{#if @root.session.customerPresent}}
|
||||
<div class="col-xs-12 col-md-12">
|
||||
<button id="customerLogout" class="btn btn-sm btn-primary pull-right">{{ @root.__ "Change customer" }}</button>
|
||||
<div class="row bottom-marg-15">
|
||||
<div class="col-sm-12">
|
||||
<button id="customerLogout"
|
||||
class="btn btn-outline-primary pull-right">{{ @root.__ "Change customer" }}</button>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
<form id="shipping-form" class="shipping-form" role="form" data-toggle="validator" novalidate="false">
|
||||
{{> themes/Cloth/shipping-form}}
|
||||
<div class="row">
|
||||
{{#unless @root.session.customerPresent}}
|
||||
<div class="col-xs-12 col-md-12">
|
||||
<p class="text-muted">{{ @root.__ "Enter a password to create an account for next time" }}</p>
|
||||
<div class="col-sm-12">
|
||||
<p class="text-muted">
|
||||
{{ @root.__ "Enter a password to create an account for next time" }}</p>
|
||||
</div>
|
||||
<div class="col-xs-6 col-md-6">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<input type="password" class="form-control customerDetails" id="newCustomerPassword" name="newCustomerPassword" placeholder="Password">
|
||||
<input type="password" class="form-control customerDetails" id="newCustomerPassword"
|
||||
name="newCustomerPassword" placeholder="Password">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-md-6">
|
||||
<div class="col-sm-6">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" id="createAccountCheckbox"> Create an account
|
||||
|
@ -61,20 +75,21 @@
|
|||
</div>
|
||||
</div>
|
||||
{{/unless}}
|
||||
<div class="col-xs-12 col-md-12">
|
||||
<a href="/checkout/cart" class="btn btn-primary pull-left">Return to cart</a>
|
||||
<a href="/checkout/shipping" id="checkoutInformation" class="btn btn-primary pull-right">Continue to shipping</a>
|
||||
<div class="col-sm-12">
|
||||
<a href="/checkout/cart" class="btn btn-outline-primary pull-left">Return to cart</a>
|
||||
<a href="/checkout/shipping" id="checkoutInformation" class="btn btn-outline-primary pull-right">Continue to shipping</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="cart" class="col-md-7">
|
||||
<div class="col-md-7" id="cart">
|
||||
{{> (getTheme 'cart')}}
|
||||
<div class="row">
|
||||
{{#if @root.session.cart}}
|
||||
<div class="col-xs-12 col s12">
|
||||
<button class="btn btn-danger pull-right" id="empty-cart" type="button">{{ @root.__ "Empty cart" }}</button>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<button class="btn btn-outline-danger pull-right" id="empty-cart" type="button">{{ @root.__ "Empty cart" }}</button>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="col-xl-8 col-xl-offset-2 col-xs-12">
|
||||
<div class="col-md-10 offset-md-1 col-sm-12">
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
||||
|
@ -12,17 +12,17 @@
|
|||
<p class="text-danger text-center">{{paymentMessage}}</p>
|
||||
{{/if}}
|
||||
<div class="col-md-5">
|
||||
<div class="panel panel-default" style="margin-top: 30px;">
|
||||
<div class="panel-heading">{{ @root.__ "Customer details" }}</div>
|
||||
<div class="panel-body">
|
||||
<ul class="list-group">
|
||||
<div class="card top-marg-15">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ @root.__ "Customer details" }}</h5>
|
||||
<ul class="list-group bottom-pad-15">
|
||||
<li class="list-group-item">
|
||||
{{@root.session.customerFirstname}} {{@root.session.customerLastname}} -
|
||||
{{@root.session.customerEmail}}
|
||||
<span class="pull-right"><a href="/checkout/information">Change</a></span>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="list-group">
|
||||
<ul class="list-group bottom-pad-15">
|
||||
{{#if @root.session.shippingCostApplied}}
|
||||
<li class="list-group-item">
|
||||
<div class="row">
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="col-xl-8 col-xl-offset-2 col-xs-12">
|
||||
<div class="col-md-10 offset-md-1 col-sm-12">
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="/">Home</a></li>
|
||||
|
@ -9,9 +9,9 @@
|
|||
</nav>
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<div class="panel panel-default" style="margin-top: 30px;">
|
||||
<div class="panel-heading">{{ @root.__ "Shipping options" }}</div>
|
||||
<div class="panel-body cart-body">
|
||||
<div class="card top-marg-15 bottom-marg-15">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ @root.__ "Shipping options" }}</h5>
|
||||
{{#unless @root.session.shippingOptions}}
|
||||
<ul class="list-group">
|
||||
{{#if @root.session.shippingCostApplied}}
|
||||
|
@ -23,15 +23,15 @@
|
|||
{{/unless}}
|
||||
</div>
|
||||
</div>
|
||||
<a href="/checkout/information" class="btn btn-primary pull-left">{{ @root.__ "Return to information" }}</a>
|
||||
<a href="/checkout/payment" class="btn btn-primary pull-right">{{ @root.__ "Proceed to payment" }}</a>
|
||||
<a href="/checkout/information" class="btn btn-outline-primary pull-left">{{ @root.__ "Return to information" }}</a>
|
||||
<a href="/checkout/payment" class="btn btn-outline-primary pull-right">{{ @root.__ "Proceed to payment" }}</a>
|
||||
</div>
|
||||
<div id="cart" class="col-md-7">
|
||||
{{> (getTheme 'cart')}}
|
||||
<div class="row">
|
||||
{{#if @root.session.cart}}
|
||||
<div class="col-xs-12 col s12">
|
||||
<button class="btn btn-danger pull-right" id="empty-cart" type="button">{{ @root.__ "Empty cart" }}</button>
|
||||
<div class="col-sm-12">
|
||||
<button class="btn btn-outline-danger pull-right" id="empty-cart" type="button">{{ @root.__ "Empty cart" }}</button>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
|
|
@ -1,25 +1,19 @@
|
|||
<nav class="navbar navbar-default navbarMenuWrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="col-md-8 col-md-offset-2 navbarMenu">
|
||||
<ul class="nav navbar-nav">
|
||||
|
||||
<li {{#unless searchTerm}}class="navActive"{{/unless}}><a href="/">Home</a></li>
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light navbarMenuWrapper col-sm-12">
|
||||
{{!-- <div class="col-sm-8 navbarMenu1"> --}}
|
||||
<div class="col-sm-8 offset-md-2 collapse navbar-collapse" id="navbarSupportedContent">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item {{#unless searchTerm}}active{{/unless}}"><a class="nav-link" href="/">Home</a></li>
|
||||
{{#each menu.items}}
|
||||
<li
|
||||
<li class="nav-item"
|
||||
{{#menuMatch this.title @root.searchTerm}}{{/menuMatch}}
|
||||
{{#menuMatch this.title @root.title}}{{/menuMatch}}>
|
||||
<a href="{{this.link}}">{{this.title}}</a>
|
||||
<a class="nav-link" href="{{this.link}}">{{this.title}}</a>
|
||||
</li>
|
||||
{{/each}}
|
||||
<li class="pull-right col-md-4 searchBarWrapper">
|
||||
<div class="search-bar-input input-group searchMenuLocation-{{config.menuLocation}} searchProPerRow-{{config.productsPerRow}}">
|
||||
<input type="text" name="frm_search" id="frm_search" class="form-control" placeholder="Search the shop">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-primary" id="btn_search" type="submit">{{ @root.__ "Search" }}</button>
|
||||
</span>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<form class="form-inline ml-auto">
|
||||
<input class="form-control mr-sm-2" name="frm_search" id="frm_search" type="search" placeholder="Search shop" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">{{ @root.__ "Search" }}</button>
|
||||
</form>
|
||||
</div>
|
||||
</nav>
|
|
@ -1,7 +1,7 @@
|
|||
{{> themes/Cloth/front-menu}}
|
||||
<div class="productsWrapper col-md-8 col-md-offset-2">
|
||||
<div class="productsWrapper col-sm-8 offset-sm-2">
|
||||
{{#if filtered}}
|
||||
<div class="product-layout col-md-12">
|
||||
<div class="product-layout col-sm-12">
|
||||
{{#ifCond @root.paginateUrl '==' 'category'}}
|
||||
<h4>{{ @root.__ "Category" }}: <strong>{{@root.searchTerm}}</strong></h4>
|
||||
{{else}}
|
||||
|
@ -11,21 +11,21 @@
|
|||
{{/if}}
|
||||
<div class="row product-layout">
|
||||
{{#ifCond results.length '==' 0}}
|
||||
<div class="col-md-12">
|
||||
<div class="col-sm-12">
|
||||
<p class="text-danger">{{ @root.__ "No products found" }}</p>
|
||||
</div>
|
||||
{{/ifCond}}
|
||||
{{#each results}}
|
||||
<div class="{{perRowClass ../config.productsPerRow}}">
|
||||
<div class="thumbnail">
|
||||
<div class="thumbnail1">
|
||||
{{#if productPermalink}}
|
||||
<div class="product_wrapper">
|
||||
<div class="product-wrapper">
|
||||
<a href="/product/{{this.productPermalink}}">
|
||||
<div class="vertical-center thumbnail-image-container">
|
||||
<div class="vertical-center img-thumbnail">
|
||||
{{#if productImage}}
|
||||
<img class="img-responsive" src="{{this.productImage}}" alt="...">
|
||||
<img class="img-fluid" src="{{this.productImage}}" alt="...">
|
||||
{{else}}
|
||||
<img class="img-responsive" src="/uploads/placeholder.png" alt="...">
|
||||
<img class="img-fluid" src="/uploads/placeholder.png" alt="...">
|
||||
{{/if}}
|
||||
</div>
|
||||
<h3 class="product-title product-title-home top-pad-10">
|
||||
|
@ -35,11 +35,11 @@
|
|||
</div>
|
||||
{{else}}
|
||||
<a href="/product/{{this._id}}">
|
||||
<div class="vertical-center thumbnail-image-container">
|
||||
<div class="vertical-center img-thumbnail">
|
||||
{{#if productImage}}
|
||||
<img class="img-responsive" src="{{this.productImage}}" alt="...">
|
||||
<img class="img-fluid" src="{{this.productImage}}" alt="...">
|
||||
{{else}}
|
||||
<img class="img-responsive" src="/uploads/placeholder.png" alt="...">
|
||||
<img class="img-fluid" src="/uploads/placeholder.png" alt="...">
|
||||
{{/if}}
|
||||
</div>
|
||||
<h3 class="product-title product-title-home top-pad-10">
|
||||
|
@ -51,7 +51,7 @@
|
|||
{{currencySymbol ../config.currencySymbol}}{{formatAmount productPrice}}
|
||||
</h3>
|
||||
<p class="text-center">
|
||||
<a class="btn btn-primary add-to-cart" data-id="{{this._id}}" data-link="{{this.productPermalink}}" data-has-options="{{checkProductOptions this.productOptions}}" role="button">{{ @root.__ "Add to cart" }}</a>
|
||||
<a class="btn btn-outline-primary add-to-cart" data-id="{{this._id}}" data-link="{{this.productPermalink}}" data-has-options="{{checkProductOptions this.productOptions}}" role="button">{{ @root.__ "Add to cart" }}</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -64,5 +64,5 @@
|
|||
<input type="hidden" id="paginateUrl" value="{{paginateUrl}}">
|
||||
<input type="hidden" id="searchTerm" value="{{searchTerm}}">
|
||||
<div class="col-md-12">
|
||||
<div id="pager" class="text-center"></div>
|
||||
<div id="pager" class="d-flex justify-content-center"></div>
|
||||
</div>
|
|
@ -1,6 +1,6 @@
|
|||
{{> themes/Cloth/front-menu}}
|
||||
<div class="row">
|
||||
<div class="col-md-8 col-md-offset-2 col-lg-8 col-lg-offset-2">
|
||||
<div class="col-md-8 offset-md-2">
|
||||
<div class="product-layout">
|
||||
{{{page.pageContent}}}
|
||||
</div>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<div class="col-xl-8 col-xl-offset-2 col-xs-12">
|
||||
<div class="col-md-10 offset-md-1 col-sm-12 top-pad-50">
|
||||
<div class="row">
|
||||
<div class="text-center col-md-10 col-md-offset-1">
|
||||
<div class="text-center col-md-10 offset-md-1">
|
||||
{{#ifCond result.orderStatus '==' 'Paid'}}
|
||||
<h2 class="text-success">{{ @root.__ "Your payment has been successfully processed" }}</h2>
|
||||
{{else}}
|
||||
|
@ -15,7 +15,7 @@
|
|||
{{#ifCond result.orderStatus '==' 'Paid'}}
|
||||
<h3 class="text-warning">{{ @root.__ "Please retain the details above as a reference of payment." }}</h3>
|
||||
{{/ifCond}}
|
||||
<a href="/" class="btn btn-warning">Home</a>
|
||||
<a href="/" class="btn btn-outline-warning">Home</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,9 +1,29 @@
|
|||
{{> themes/Cloth/front-menu}}
|
||||
<div class="product-layout col-md-8 col-md-offset-2">
|
||||
<div class="product-layout col-sm-8 offset-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6 pull-right">
|
||||
<div class="col-sm-12 col-md-6 mr-auto">
|
||||
{{#if result.productImage}}
|
||||
<div class="title-image-container">
|
||||
<div class="image-prev image-button"> <i class="fa fa-chevron-left" aria-hidden="true"></i></div>
|
||||
<img src="{{result.productImage}}" id="product-title-image" class="product-title-image img-fluid" alt="...">
|
||||
<div class="image-next image-button"> <i class="fa fa-chevron-right" aria-hidden="true"></i></div>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="title-image-container">
|
||||
<img src="/uploads/placeholder.png" id="product-title-image" class="product-title-image img-fluid" alt="...">
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#ifCond images.length '>' 1}}
|
||||
{{#each images}}
|
||||
<div class="vertical-center top-pad-20 col-sm-6">
|
||||
<img src="{{this.path}}" class="thumbnail-image img-fluid">
|
||||
</div>
|
||||
{{/each}}
|
||||
{{/ifCond}}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-6 ml-auto">
|
||||
<div class="row">
|
||||
<h1 class="col-md-10 product-title">{{result.productTitle}}</h1>
|
||||
<h1 class="col-md-10 product-title text-truncate">{{result.productTitle}}</h1>
|
||||
<h4 class="col-md-10 product-price">{{currencySymbol config.currencySymbol}}{{result.productPrice}}</h4>
|
||||
{{#if productOptions}}
|
||||
<h4 class="col-md-10 product-option">{{ @root.__ "Options" }}</h4>
|
||||
|
@ -50,13 +70,13 @@
|
|||
<div class="col-md-10 productOptions">
|
||||
<p class="product-option-text">{{ @root.__ "Quantity" }}</p>
|
||||
<div class="input-group">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-primary qty-btn-minus" type="button">-</button>
|
||||
</span>
|
||||
<div class="input-group-prepend">
|
||||
<button class="btn btn-outline-primary qty-btn-minus" type="button">-</button>
|
||||
</div>
|
||||
<input type="text" class="form-control add-color text-center" id="product_quantity" maxlength="3" value="1">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-primary qty-btn-plus" type="button">+</button>
|
||||
</span>
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-primary qty-btn-plus" type="button">+</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{#if result.productComment}}
|
||||
|
@ -66,33 +86,13 @@
|
|||
</div>
|
||||
{{/if}}
|
||||
<div class="col-md-10 btnAddToCart">
|
||||
<button class="btn btn-primary btn-block product-add-to-cart" type="button">{{ @root.__ "Add to cart" }}</button>
|
||||
<button class="btn btn-outline-primary btn-block product-add-to-cart" type="button">{{ @root.__ "Add to cart" }}</button>
|
||||
</div>
|
||||
<div class="col-md-10 body_text">
|
||||
{{{productDescription}}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6 pull-left">
|
||||
{{#if result.productImage}}
|
||||
<div class="title-image-container">
|
||||
<div class="image-prev image-button"> <i class="fa fa-chevron-left" aria-hidden="true"></i></div>
|
||||
<img src="{{result.productImage}}" id="product-title-image" class="product-title-image img-responsive" alt="...">
|
||||
<div class="image-next image-button"> <i class="fa fa-chevron-right" aria-hidden="true"></i></div>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="title-image-container">
|
||||
<img src="/uploads/placeholder.png" id="product-title-image" class="product-title-image img-responsive" alt="...">
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#ifCond images.length '>' 1}}
|
||||
{{#each images}}
|
||||
<div class="vertical-center top-pad-20 col-xs-6 col-lg-6 col-xl-6">
|
||||
<img src="{{this.path}}" class="thumbnail-image img-responsive">
|
||||
</div>
|
||||
{{/each}}
|
||||
{{/ifCond}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" id="productId" value="{{result._id}}">
|
|
@ -1,29 +1,33 @@
|
|||
<div class="col-xs-12 col-md-12">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12">
|
||||
<div class="form-group">
|
||||
<input type="email" class="form-control customerDetails" id="shipEmail" name="shipEmail" minlength="5" placeholder="Email address" value="{{@root.session.customerEmail}}" required>
|
||||
<div class="invalid-feedback">
|
||||
Please enter a valid email address
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control customerDetails" id="shipFirstname" name="shipFirstname" placeholder="First name" value="{{@root.session.customerFirstname}}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6">
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control customerDetails" id="shipLastname" name="shipLastname" placeholder="Last name" value="{{@root.session.customerLastname}}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-12">
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12">
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control customerDetails" id="shipAddr1" name="shipAddr1" placeholder="Address 1" value="{{@root.session.customerAddress1}}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-12">
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12">
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control customerDetails" id="shipAddr2" name="shipAddr2" placeholder="Address 2 (optional)" value="{{@root.session.customerAddress2}}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12">
|
||||
<div class="form-group">
|
||||
<select class="form-control" id="shipCountry" name="shipCountry" required>
|
||||
<option value="" disabled selected>Select Country</option>
|
||||
|
@ -32,24 +36,25 @@
|
|||
{{/each}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6">
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control customerDetails" id="shipState" name="shipState" placeholder="State" value="{{@root.session.customerState}}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6">
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control customerDetails" id="shipPostcode" name="shipPostcode" placeholder="Post code" value="{{@root.session.customerPostcode}}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-12">
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12">
|
||||
<div class="form-group">
|
||||
<input type="number" class="form-control customerDetails" id="shipPhoneNumber" name="shipPhoneNumber" placeholder="Phone number" value="{{@root.session.customerPhone}}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-12">
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12">
|
||||
<div class="form-group">
|
||||
<textarea class="form-control customerDetails" placeholder="Order comment" id="orderComment" name="orderComment">{{@root.session.orderComment}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -1,6 +1,5 @@
|
|||
.search-bar-input, #frm_search, .search-bar-input .btn{
|
||||
padding-top: 10px;
|
||||
height: 45px;
|
||||
.add-to-cart{
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
.searchMenuLocation-side {
|
||||
|
@ -18,17 +17,22 @@
|
|||
}
|
||||
|
||||
.footer{
|
||||
padding-top: 20px;
|
||||
padding-top: 30px;
|
||||
}
|
||||
|
||||
.product-price {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.navbarMenuWrapper{
|
||||
.navbarMenuWrapper, .mainNavBar{
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.navbarMenuWrapper{
|
||||
padding-top: 0px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.navbarMenu>ul>li>a:hover{
|
||||
color: #cc4135 !important;
|
||||
}
|
||||
|
@ -38,7 +42,7 @@
|
|||
padding-left: 0;
|
||||
}
|
||||
|
||||
.product_wrapper>a:hover{
|
||||
.product-wrapper>a:hover{
|
||||
color: #cc4135 !important;
|
||||
}
|
||||
|
||||
|
@ -51,7 +55,11 @@
|
|||
padding-top: 35px;
|
||||
}
|
||||
|
||||
.pagination>li>a{
|
||||
.img-thumbnail {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.pagination .page-link{
|
||||
background-color: #cc4135 !important;
|
||||
}
|
||||
|
||||
|
@ -59,8 +67,8 @@
|
|||
color: #cc4135 !important;
|
||||
letter-spacing: 4px;
|
||||
padding-left: 20px !important;
|
||||
padding-top: 20px !important;
|
||||
height: 100px !important;
|
||||
padding-top: 0px !important;
|
||||
height: 80px !important;
|
||||
font-size: 55px !important;
|
||||
}
|
||||
|
||||
|
@ -100,6 +108,10 @@
|
|||
font-size: 20px;
|
||||
}
|
||||
|
||||
.has-error input{
|
||||
border-color: #dc3545;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 768px){
|
||||
.navbar-default .navbar-brand {
|
||||
padding-top: 10px;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{> partials/menu}}
|
||||
<div class="col-lg-9">
|
||||
<div class="col-sm-9">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2>User edit</h2>
|
||||
|
@ -34,14 +34,14 @@
|
|||
<label>API Key</label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="apiKey" value="{{user.apiKey}}" aria-label="..." readonly>
|
||||
<div class="input-group-btn">
|
||||
<button id="btnGenerateAPIkey" class="btn btn-success">{{ @root.__ "Generate" }}</button>
|
||||
<div class="input-group-append">
|
||||
<button id="btnGenerateAPIkey" class="btn btn-outline-success">{{ @root.__ "Generate" }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div><br/>
|
||||
<div class="form-group">
|
||||
<div class="pull-right">
|
||||
<button type="submit" class="btn btn-success">{{ @root.__ "Update" }}</button>
|
||||
<button type="submit" class="btn btn-outline-success">{{ @root.__ "Update" }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{> partials/menu}}
|
||||
<div class="col-lg-9">
|
||||
<div class="col-sm-9">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2>{{ @root.__ "New User" }}</h2>
|
||||
|
@ -22,7 +22,7 @@
|
|||
</div>
|
||||
<div class="form-group">
|
||||
<div class="pull-right">
|
||||
<button type="submit" class="btn btn-success">{{ @root.__ "Create" }}</button>
|
||||
<button type="submit" class="btn btn-outline-success">{{ @root.__ "Create" }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{{> partials/menu}}
|
||||
<div class="col-lg-9">
|
||||
<div class="col-sm-9">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<h2>Users <span class="pull-right"><a href="/admin/user/new" class="btn btn-success btn-sm">{{ @root.__ "New user" }}</a></span></h2>
|
||||
<h2>Users <span class="pull-right"><a href="/admin/user/new" class="btn btn-outline-success">{{ @root.__ "New user" }}</a></span></h2>
|
||||
<ul class="list-group">
|
||||
{{#each users}}
|
||||
<li class="list-group-item">
|
||||
|
|
Loading…
Reference in New Issue