moved settings file, completed nav ordering, switched to pm2
This commit is contained in:
parent
46d04ceb1e
commit
27a1e670e3
17 changed files with 422 additions and 24 deletions
|
@ -60,7 +60,7 @@ router.post("/sync", (req, res, next) =>
|
|||
{
|
||||
if (rightsManager.check(user.role, OBJECT_SETTINGS, TASK_UPDATE))
|
||||
{
|
||||
fs.readJson('site-settings.json').then(obj =>
|
||||
fs.readJson('config/site-settings.json').then(obj =>
|
||||
{
|
||||
if (user.hande != payload.handle || user.email != payload.email)
|
||||
{
|
||||
|
@ -93,7 +93,7 @@ router.post("/sync", (req, res, next) =>
|
|||
obj.email.smtp.password = payload.mailSettings.smtp.password;
|
||||
obj.email.mailgun.domain = payload.mailSettings.mailgun.domain;
|
||||
obj.email.mailgun['api-key'] = payload.mailSettings.mailgun.key;
|
||||
fs.writeJson('site-settings.json', obj).then(() =>
|
||||
fs.writeJson('config/site-settings.json', obj).then(() =>
|
||||
{
|
||||
res.json(
|
||||
{
|
||||
|
@ -117,6 +117,44 @@ router.post("/sync", (req, res, next) =>
|
|||
}
|
||||
});
|
||||
})
|
||||
|
||||
router.post("/nav-sync", (req, res, next) =>
|
||||
{
|
||||
let payload = req.body;
|
||||
Models.User.findById(req.session.user.id).then((user) =>
|
||||
{
|
||||
if (rightsManager.check(user.role, OBJECT_SETTINGS, TASK_UPDATE))
|
||||
{
|
||||
fs.readJson('config/site-settings.json').then(obj =>
|
||||
{
|
||||
|
||||
obj.menu = payload;
|
||||
fs.writeJson('config/site-settings.json', obj).then(() =>
|
||||
{
|
||||
res.json(
|
||||
{
|
||||
message: DataEvent.SETTINGS_UPDATED
|
||||
});
|
||||
}).catch(err =>
|
||||
{
|
||||
console.error(err)
|
||||
})
|
||||
}).catch(err =>
|
||||
{
|
||||
console.error(err)
|
||||
})
|
||||
}
|
||||
else
|
||||
{
|
||||
res.json(
|
||||
{
|
||||
message: "Nah. You can't do that. Talk to the admin, sport."
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
/***
|
||||
UPLOAD AVATAR
|
||||
*/
|
||||
|
|
|
@ -2,16 +2,24 @@ const express = require('express');
|
|||
const router = express.Router();
|
||||
const Models = require('../../models');
|
||||
const fs = require("fs-extra");
|
||||
var settings = [];
|
||||
//--------------------------
|
||||
// SETTINGS
|
||||
//--------------------------
|
||||
router.get('/', function(req, res)
|
||||
{
|
||||
fs.readJson('config/site-settings.json').then(obj =>
|
||||
{
|
||||
settings = []
|
||||
settings = obj;
|
||||
}).catch(err =>
|
||||
{
|
||||
//console.error(err)
|
||||
})
|
||||
if (req.session.user)
|
||||
{
|
||||
Models.User.findById(req.session.user.id).then((user) =>
|
||||
{
|
||||
let pages = [];
|
||||
Models.FreshPost.findAll(
|
||||
{
|
||||
order: [
|
||||
|
@ -19,20 +27,32 @@ router.get('/', function(req, res)
|
|||
]
|
||||
}).then(posts =>
|
||||
{
|
||||
for (let index = 0; index < posts.length; index++)
|
||||
let pages = []
|
||||
if (settings.menu.length == 0)
|
||||
{
|
||||
let item = posts[index].post;
|
||||
if(item.page == true || item.page == "true") pages.push(posts[index]);
|
||||
for (let index = 0; index < posts.length; index++)
|
||||
{
|
||||
let item = posts[index].post;
|
||||
if (item.page == true || item.page == "true") pages.push(
|
||||
{
|
||||
title: posts[index].post.title,
|
||||
slug: posts[index].post.slug
|
||||
});
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pages = settings.menu
|
||||
}
|
||||
res.render('dash/navigation',
|
||||
{
|
||||
pages: pages,
|
||||
title: 'Dashboard | Global Nav'
|
||||
});
|
||||
}).catch(err =>
|
||||
{
|
||||
console.log("ERROR", err)
|
||||
})
|
||||
res.render('dash/navigation',
|
||||
{
|
||||
pages: pages,
|
||||
title: 'Dashboard | Global Nav'
|
||||
});
|
||||
})
|
||||
}
|
||||
else
|
||||
|
|
|
@ -9,7 +9,7 @@ var settings = [];
|
|||
//--------------------------
|
||||
router.get('/', function(req, res)
|
||||
{
|
||||
fs.readJson('site-settings.json').then(obj =>
|
||||
fs.readJson('config/site-settings.json').then(obj =>
|
||||
{
|
||||
settings = obj;
|
||||
}).catch(err =>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
var express = require('express');
|
||||
var router = express.Router();
|
||||
var Models = require('../../models');
|
||||
var config = require('../../../site-settings.json');
|
||||
var config = require('../../../config/site-settings.json');
|
||||
module.exports = function (session) {
|
||||
//--------------------------
|
||||
// Index
|
||||
|
|
54
package-lock.json
generated
54
package-lock.json
generated
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "fipamo",
|
||||
"version": "0.0.5",
|
||||
"version": "0.0.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -1948,6 +1948,11 @@
|
|||
"resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz",
|
||||
"integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw=="
|
||||
},
|
||||
"browser-split": {
|
||||
"version": "0.0.0",
|
||||
"resolved": "https://registry.npmjs.org/browser-split/-/browser-split-0.0.0.tgz",
|
||||
"integrity": "sha1-QUGcrvdpdVkp3VGJZ9PuwKYmJ3E="
|
||||
},
|
||||
"browserslist": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.4.tgz",
|
||||
|
@ -2104,6 +2109,14 @@
|
|||
"upath": "^1.0.5"
|
||||
}
|
||||
},
|
||||
"class-list": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/class-list/-/class-list-0.1.1.tgz",
|
||||
"integrity": "sha1-m5dFGSxBebXaCg12M2WOPHDXlss=",
|
||||
"requires": {
|
||||
"indexof": "0.0.1"
|
||||
}
|
||||
},
|
||||
"class-utils": {
|
||||
"version": "0.3.6",
|
||||
"resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
|
||||
|
@ -4078,6 +4091,15 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"hyperscript": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/hyperscript/-/hyperscript-1.0.7.tgz",
|
||||
"integrity": "sha1-2I7TxRk0xtb6NbKr/XwA8QCCD2U=",
|
||||
"requires": {
|
||||
"browser-split": "0.0.0",
|
||||
"class-list": "~0.1.0"
|
||||
}
|
||||
},
|
||||
"iconv-lite": {
|
||||
"version": "0.4.23",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
|
||||
|
@ -4092,6 +4114,11 @@
|
|||
"integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
|
||||
"dev": true
|
||||
},
|
||||
"indexof": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
|
||||
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
|
||||
},
|
||||
"inflection": {
|
||||
"version": "1.12.0",
|
||||
"resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz",
|
||||
|
@ -4321,6 +4348,11 @@
|
|||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
|
||||
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
|
||||
},
|
||||
"jquery-browserify": {
|
||||
"version": "1.8.1",
|
||||
"resolved": "https://registry.npmjs.org/jquery-browserify/-/jquery-browserify-1.8.1.tgz",
|
||||
"integrity": "sha1-DeqddBpPQRWuGYDEUxsiUCmRoBU="
|
||||
},
|
||||
"js-beautify": {
|
||||
"version": "1.8.8",
|
||||
"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.8.8.tgz",
|
||||
|
@ -5056,6 +5088,11 @@
|
|||
"isobject": "^3.0.1"
|
||||
}
|
||||
},
|
||||
"observable": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/observable/-/observable-1.3.1.tgz",
|
||||
"integrity": "sha1-PSogOxQw2vak1tNvI2zBPm7Vu04="
|
||||
},
|
||||
"on-finished": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
||||
|
@ -6342,6 +6379,21 @@
|
|||
"socks": "~2.2.0"
|
||||
}
|
||||
},
|
||||
"sortable": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/sortable/-/sortable-2.0.0.tgz",
|
||||
"integrity": "sha1-NLNUK0KQTFm4RU9VFIoPT2AYaUM=",
|
||||
"requires": {
|
||||
"hyperscript": "~1.0.1",
|
||||
"jquery-browserify": "~1.8.1",
|
||||
"observable": "~1.3.1"
|
||||
}
|
||||
},
|
||||
"sortablejs": {
|
||||
"version": "1.8.0-rc1",
|
||||
"resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.8.0-rc1.tgz",
|
||||
"integrity": "sha512-umyNbQVDwRgc0SZvUB+FRUIUqACnu5vCCmK0zv/xWA3eDSOh+IZsg3GHdWvEOcUBwnykqyk760+YPgVa8HfxFg=="
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
"theme": "default-light",
|
||||
"scripts": {
|
||||
"start": "forever start -r esm init.js",
|
||||
"stop": "forever stop init.js",
|
||||
"stop": "forever stop -r esm init.js",
|
||||
"dev": "nodemon -r esm init.js",
|
||||
"watch-front-scripts": "parcel watch themes/$npm_package_theme/src/com/Start.jsx --out-dir themes/$npm_package_theme/assets/js --out-file start.min.js --public-url /$npm_package_theme/assets/js",
|
||||
"watch-front-styles": "stylus -w -m -o themes/$npm_package_theme/assets/css themes/$npm_package_theme/src/styles/base.styl",
|
||||
"build-front-kit": "uglifyjs node_modules/scramble-text/dist/ScrambleText.min.js node_modules/animejs/anime.min.js node_modules/reframe.js/dist/reframe.min.js -c -o themes/$npm_package_theme/assets/js/toolkit.min.js",
|
||||
"watch-back-scripts": "parcel watch themes/dash/src/com/Start.js --out-dir themes/dash/assets/js --out-file dash.min.js --public-url /dash/assets/js",
|
||||
"watch-back-styles": "stylus -w -m -o themes/dash/assets/css themes/dash/src/styles/dash.styl",
|
||||
"build-back-kit": "uglifyjs themes/dash/src/libraries/highlight.pack.js node_modules/dompurify/dist/purify.min.js node_modules/scramble-text/dist/ScrambleText.min.js node_modules/animejs/anime.min.js node_modules/reframe.js/dist/reframe.min.js -c -o themes/dash/assets/js/dashkit.min.js"
|
||||
"build-back-kit": "uglifyjs themes/dash/src/libraries/highlight.pack.js node_modules/sortablejs/Sortable.min.js node_modules/scramble-text/dist/ScrambleText.min.js node_modules/animejs/anime.min.js node_modules/reframe.js/dist/reframe.min.js -c -o themes/dash/assets/js/dashkit.min.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.12.0"
|
||||
|
@ -52,6 +52,8 @@
|
|||
"sequelize": "^4.37.6",
|
||||
"sequelize-cli": "^5.3.0",
|
||||
"serve-favicon": "latest",
|
||||
"sortable": "^2.0.0",
|
||||
"sortablejs": "^1.8.0-rc1",
|
||||
"tiny-date-picker": "^3.2.6",
|
||||
"uuid": "^3.2.1",
|
||||
"workbox-sw": "^3.6.3"
|
||||
|
|
|
@ -2051,6 +2051,25 @@ svg.icons {
|
|||
#nav-index #nav-index-wrapper {
|
||||
padding: 0.75rem;
|
||||
}
|
||||
#nav-index #nav-index-wrapper #nav-pages div {
|
||||
display: block;
|
||||
width: 100%;
|
||||
background: #161d23;
|
||||
border-radius: 3px;
|
||||
color: #b2cce5;
|
||||
height: 30px;
|
||||
padding: 10px;
|
||||
margin: 0 0 10px 0;
|
||||
font-size: 1.5em;
|
||||
cursor: move;
|
||||
}
|
||||
#nav-index #nav-index-wrapper #nav-pages label {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
padding: 0;
|
||||
margin: -15px 0 0 10px;
|
||||
cursor: move;
|
||||
}
|
||||
/**
|
||||
-------------------------------
|
||||
-- Forms
|
||||
|
|
File diff suppressed because one or more lines are too long
146
themes/dash/assets/js/dash.min.js
vendored
146
themes/dash/assets/js/dash.min.js
vendored
|
@ -8588,7 +8588,144 @@ function () {
|
|||
}();
|
||||
|
||||
exports.default = SettingsIndex;
|
||||
},{"../actions/SettingsActions":"actions/SettingsActions.js","../../../../../brain/tools/utilities/DataUtils":"../../../../brain/tools/utilities/DataUtils.js","../../../../../brain/tools/events/DataEvent":"../../../../brain/tools/events/DataEvent.js"}],"controllers/DashManager.js":[function(require,module,exports) {
|
||||
},{"../actions/SettingsActions":"actions/SettingsActions.js","../../../../../brain/tools/utilities/DataUtils":"../../../../brain/tools/utilities/DataUtils.js","../../../../../brain/tools/events/DataEvent":"../../../../brain/tools/events/DataEvent.js"}],"actions/NavActions.js":[function(require,module,exports) {
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
|
||||
var _DataUtils = _interopRequireWildcard(require("../../../../../brain//tools/utilities/DataUtils"));
|
||||
|
||||
var _StringUtils = _interopRequireDefault(require("../../../../../brain//tools/utilities/StringUtils"));
|
||||
|
||||
var _DateUtils = _interopRequireDefault(require("../../../../../brain/tools/utilities/DateUtils"));
|
||||
|
||||
var DataEvent = _interopRequireWildcard(require("../../../../../brain/tools/events/DataEvent"));
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
||||
|
||||
var NavActions =
|
||||
/*#__PURE__*/
|
||||
function () {
|
||||
//--------------------------
|
||||
// constructor
|
||||
//--------------------------
|
||||
function NavActions() {
|
||||
_classCallCheck(this, NavActions);
|
||||
|
||||
this.dataUtils = new _DataUtils.default();
|
||||
this.dateUtils = new _DateUtils.default();
|
||||
} //--------------------------
|
||||
// methods
|
||||
//--------------------------
|
||||
|
||||
|
||||
_createClass(NavActions, [{
|
||||
key: "save",
|
||||
value: function save() {
|
||||
var self = this;
|
||||
var navData = [];
|
||||
var items = document.getElementById('nav-pages').children;
|
||||
|
||||
for (var index = 0; index < items.length; index++) {
|
||||
navData.push({
|
||||
title: items[index].getElementsByTagName('label')[0].innerHTML,
|
||||
slug: items[index].id
|
||||
});
|
||||
}
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
self.dataUtils.request('/api/settings/nav-sync', DataEvent.SETTINGS_UPDATED, _DataUtils.REQUEST_TYPE_POST, _DataUtils.CONTENT_TYPE_JSON, navData).then(function (response) {
|
||||
//console.log("RESPONSE", response)
|
||||
resolve(response);
|
||||
}).catch(function (err) {
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
} //--------------------------
|
||||
// event handlers
|
||||
//--------------------------
|
||||
|
||||
}]);
|
||||
|
||||
return NavActions;
|
||||
}();
|
||||
|
||||
exports.default = NavActions;
|
||||
},{"../../../../../brain//tools/utilities/DataUtils":"../../../../brain/tools/utilities/DataUtils.js","../../../../../brain//tools/utilities/StringUtils":"../../../../brain/tools/utilities/StringUtils.js","../../../../../brain/tools/utilities/DateUtils":"../../../../brain/tools/utilities/DateUtils.js","../../../../../brain/tools/events/DataEvent":"../../../../brain/tools/events/DataEvent.js"}],"controllers/NavIndex.js":[function(require,module,exports) {
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
|
||||
var _NavActions = _interopRequireDefault(require("../actions/NavActions"));
|
||||
|
||||
var _DataUtils = _interopRequireWildcard(require("../../../../../brain/tools/utilities/DataUtils"));
|
||||
|
||||
var DataEvent = _interopRequireWildcard(require("../../../../../brain/tools/events/DataEvent"));
|
||||
|
||||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
||||
|
||||
var NavIndex =
|
||||
/*#__PURE__*/
|
||||
function () {
|
||||
//--------------------------
|
||||
// constructor
|
||||
//--------------------------
|
||||
function NavIndex() {
|
||||
_classCallCheck(this, NavIndex);
|
||||
|
||||
this.start();
|
||||
this.dataUtils = new _DataUtils.default();
|
||||
} //--------------------------
|
||||
// methods
|
||||
//--------------------------
|
||||
|
||||
|
||||
_createClass(NavIndex, [{
|
||||
key: "start",
|
||||
value: function start() {
|
||||
var self = this;
|
||||
var menu = Sortable.create(document.getElementById("nav-pages"), {
|
||||
onUpdate: function onUpdate(e) {
|
||||
new _NavActions.default().save().then(function (r) {
|
||||
console.log(r);
|
||||
}).catch(function (err) {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
});
|
||||
} //--------------------------
|
||||
// event handlers
|
||||
//--------------------------
|
||||
|
||||
}]);
|
||||
|
||||
return NavIndex;
|
||||
}();
|
||||
|
||||
exports.default = NavIndex;
|
||||
},{"../actions/NavActions":"actions/NavActions.js","../../../../../brain/tools/utilities/DataUtils":"../../../../brain/tools/utilities/DataUtils.js","../../../../../brain/tools/events/DataEvent":"../../../../brain/tools/events/DataEvent.js"}],"controllers/DashManager.js":[function(require,module,exports) {
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
|
@ -8600,6 +8737,8 @@ var _PostIndex = _interopRequireDefault(require("./PostIndex"));
|
|||
|
||||
var _SettingsIndex = _interopRequireDefault(require("./SettingsIndex"));
|
||||
|
||||
var _NavIndex = _interopRequireDefault(require("./NavIndex"));
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
@ -8644,6 +8783,9 @@ function () {
|
|||
this.currentDisplay = new _SettingsIndex.default();
|
||||
break;
|
||||
|
||||
case 'navigation':
|
||||
this.currentDisplay = new _NavIndex.default();
|
||||
|
||||
default:
|
||||
// just chill
|
||||
break;
|
||||
|
@ -8660,7 +8802,7 @@ function () {
|
|||
}();
|
||||
|
||||
exports.default = DashManager;
|
||||
},{"./PostIndex":"controllers/PostIndex.js","./SettingsIndex":"controllers/SettingsIndex.js"}],"Base.js":[function(require,module,exports) {
|
||||
},{"./PostIndex":"controllers/PostIndex.js","./SettingsIndex":"controllers/SettingsIndex.js","./NavIndex":"controllers/NavIndex.js"}],"Base.js":[function(require,module,exports) {
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
|
|
File diff suppressed because one or more lines are too long
4
themes/dash/assets/js/dashkit.min.js
vendored
4
themes/dash/assets/js/dashkit.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -1,8 +1,9 @@
|
|||
-var versioning = Math.round(new Date().getTime()/1000)
|
||||
doctype html
|
||||
html(xmlns='http://www.w3.org/1999/xhtml', lang='en', xml:lang="en")
|
||||
head
|
||||
title= title
|
||||
meta(content="text/html;charset=utf-8", http-equiv="Content-Type")
|
||||
meta(meta content="utf-8", http-equiv="encoding")
|
||||
meta(name='viewport', content='width=device-width, initial-scale=1.0')
|
||||
meta(name="keywords" content="creative technoglogist, graphic design, web development, designer developer, social thought, political discussion, music producer, creative culture, black creative, black geek")
|
||||
meta(name="description" content="The home site of Creative Technologist, music maker, and social philoshoper, Ro. Ha, I know. Me too.")
|
||||
|
|
|
@ -2,5 +2,12 @@ extends frame
|
|||
block main-content
|
||||
#nav-index
|
||||
#nav-index-wrapper
|
||||
| NAVI BRO
|
||||
#nav-pages
|
||||
- var index = 0;
|
||||
- for ( index; index < pages.length; index++)
|
||||
.nav-item(id=pages[index].slug)
|
||||
svg#item-arrows(viewBox="0 0 20 20" class="icons")
|
||||
use(xlink:href='/dash/assets/images/sprite.svg#entypo-select-arrows')
|
||||
label
|
||||
= pages[index].title
|
||||
|
||||
|
|
51
themes/dash/src/com/actions/NavActions.js
Normal file
51
themes/dash/src/com/actions/NavActions.js
Normal file
|
@ -0,0 +1,51 @@
|
|||
import DataUtils,
|
||||
{
|
||||
REQUEST_TYPE_GET,
|
||||
REQUEST_TYPE_PUT,
|
||||
REQUEST_TYPE_POST,
|
||||
REQUEST_TYPE_DELETE,
|
||||
CONTENT_TYPE_JSON,
|
||||
CONTENT_TYPE_FORM
|
||||
}
|
||||
from '../../../../../brain//tools/utilities/DataUtils';
|
||||
import StringUtils from '../../../../../brain//tools/utilities/StringUtils';
|
||||
import DateUtils from '../../../../../brain/tools/utilities/DateUtils';
|
||||
import * as DataEvent from '../../../../../brain/tools/events/DataEvent';
|
||||
export default class NavActions
|
||||
{
|
||||
//--------------------------
|
||||
// constructor
|
||||
//--------------------------
|
||||
constructor()
|
||||
{
|
||||
this.dataUtils = new DataUtils();
|
||||
this.dateUtils = new DateUtils();
|
||||
}
|
||||
//--------------------------
|
||||
// methods
|
||||
//--------------------------
|
||||
save()
|
||||
{
|
||||
let self = this;
|
||||
let navData = [];
|
||||
let items = document.getElementById('nav-pages').children;
|
||||
for (let index = 0; index < items.length; index++) {
|
||||
navData.push({title:items[index].getElementsByTagName('label')[0].innerHTML, slug:items[index].id})
|
||||
}
|
||||
|
||||
return new Promise(function(resolve, reject)
|
||||
{
|
||||
self.dataUtils.request('/api/settings/nav-sync', DataEvent.SETTINGS_UPDATED, REQUEST_TYPE_POST, CONTENT_TYPE_JSON, navData).then((response) =>
|
||||
{
|
||||
//console.log("RESPONSE", response)
|
||||
resolve(response)
|
||||
}).catch((err) =>
|
||||
{
|
||||
reject(err);
|
||||
})
|
||||
})
|
||||
}
|
||||
//--------------------------
|
||||
// event handlers
|
||||
//--------------------------
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
import PostIndex from './PostIndex';
|
||||
import SettingsIndex from './SettingsIndex';
|
||||
import NaviIndex from './NavIndex';
|
||||
|
||||
export default class DashManager {
|
||||
//--------------------------
|
||||
|
@ -27,6 +28,8 @@ export default class DashManager {
|
|||
case 'settings':
|
||||
this.currentDisplay = new SettingsIndex();
|
||||
break;
|
||||
case 'navigation':
|
||||
this.currentDisplay = new NaviIndex();
|
||||
|
||||
default:
|
||||
// just chill
|
||||
|
|
45
themes/dash/src/com/controllers/NavIndex.js
Normal file
45
themes/dash/src/com/controllers/NavIndex.js
Normal file
|
@ -0,0 +1,45 @@
|
|||
import NavActions from "../actions/NavActions";
|
||||
import DataUtils,
|
||||
{
|
||||
REQUEST_TYPE_GET,
|
||||
REQUEST_TYPE_PUT,
|
||||
REQUEST_TYPE_POST,
|
||||
REQUEST_TYPE_DELETE,
|
||||
CONTENT_TYPE_JSON,
|
||||
CONTENT_TYPE_FORM
|
||||
}
|
||||
from "../../../../../brain/tools/utilities/DataUtils";
|
||||
import * as DataEvent from '../../../../../brain/tools/events/DataEvent';
|
||||
export default class NavIndex
|
||||
{
|
||||
//--------------------------
|
||||
// constructor
|
||||
//--------------------------
|
||||
constructor()
|
||||
{
|
||||
this.start();
|
||||
this.dataUtils = new DataUtils();
|
||||
}
|
||||
//--------------------------
|
||||
// methods
|
||||
//--------------------------
|
||||
start()
|
||||
{
|
||||
let self = this;
|
||||
let menu = Sortable.create(document.getElementById("nav-pages"),
|
||||
{
|
||||
onUpdate: e =>
|
||||
{
|
||||
|
||||
new NavActions().save().then(r=>{
|
||||
console.log(r);
|
||||
}).catch(err=>{
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
});
|
||||
}
|
||||
//--------------------------
|
||||
// event handlers
|
||||
//--------------------------
|
||||
}
|
|
@ -5,3 +5,21 @@
|
|||
|
||||
#nav-index-wrapper
|
||||
padding 0.75rem
|
||||
#nav-pages
|
||||
div
|
||||
display: block
|
||||
width: 100%
|
||||
background: $primary - 60%
|
||||
border-radius 3px
|
||||
color $secondary
|
||||
height 30px
|
||||
padding: 10px
|
||||
margin 0 0 10px 0;
|
||||
font-size 1.5em
|
||||
cursor move
|
||||
label
|
||||
display inline-block
|
||||
vertical-align: middle
|
||||
padding: 0
|
||||
margin: -15px 0 0 10px
|
||||
cursor move
|
||||
|
|
Loading…
Reference in a new issue