completed CRUD functionality for new data syncing methodology. fuck. yes.
This commit is contained in:
parent
22af04f59a
commit
b0cb4d9229
10 changed files with 621 additions and 718 deletions
|
@ -55,7 +55,6 @@ var post_upload = multer(
|
||||||
router.post("/sync", (req, res, next) =>
|
router.post("/sync", (req, res, next) =>
|
||||||
{
|
{
|
||||||
let payload = req.body;
|
let payload = req.body;
|
||||||
console.log("***PAYLOAD***", payload)
|
|
||||||
Models.User.findById(req.session.user.id).then((user) =>
|
Models.User.findById(req.session.user.id).then((user) =>
|
||||||
{
|
{
|
||||||
if (rightsManager.check(user.role, OBJECT_POST, TASK_UPDATE))
|
if (rightsManager.check(user.role, OBJECT_POST, TASK_UPDATE))
|
||||||
|
@ -122,7 +121,19 @@ router.get('/json', function(req, res, next)
|
||||||
]
|
]
|
||||||
}).then(function(posts)
|
}).then(function(posts)
|
||||||
{
|
{
|
||||||
res.json(posts)
|
let newlist = [];
|
||||||
|
|
||||||
|
for (let index = 0; index < posts.length; index++) {
|
||||||
|
let item = posts[index].post;
|
||||||
|
if(typeof item.deleted == 'undefined' || item.deleted == false)
|
||||||
|
{
|
||||||
|
newlist.push(posts[index])
|
||||||
|
}else{
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
res.json(newlist)
|
||||||
}).catch(function(err)
|
}).catch(function(err)
|
||||||
{
|
{
|
||||||
//next(err);
|
//next(err);
|
||||||
|
|
|
@ -25,7 +25,21 @@ router.get('/:page?', function(req, res)
|
||||||
]
|
]
|
||||||
}).then(function(posts)
|
}).then(function(posts)
|
||||||
{
|
{
|
||||||
var count = Math.round(posts.length / 6);
|
let filtered = [];
|
||||||
|
for (let index = 0; index < posts.length; index++)
|
||||||
|
{
|
||||||
|
let item = posts[index].post;
|
||||||
|
if (typeof item.deleted == 'undefined' || item.deleted == false)
|
||||||
|
{
|
||||||
|
filtered.push(posts[index])
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var count = Math.round(filtered.length / 6);
|
||||||
//console.log("COUNT: "+count);
|
//console.log("COUNT: "+count);
|
||||||
var pageItems = [];
|
var pageItems = [];
|
||||||
var itemLimit = 6;
|
var itemLimit = 6;
|
||||||
|
@ -36,7 +50,7 @@ router.get('/:page?', function(req, res)
|
||||||
{
|
{
|
||||||
if (posts[i + rangeStart].id != null)
|
if (posts[i + rangeStart].id != null)
|
||||||
{
|
{
|
||||||
pageItems.push(posts[i + rangeStart]);
|
pageItems.push(filtered[i + rangeStart]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e)
|
catch (e)
|
||||||
|
@ -109,8 +123,7 @@ router.get('/edit/:id', function(req, res)
|
||||||
}).then(item =>
|
}).then(item =>
|
||||||
{
|
{
|
||||||
let featured = 'null';
|
let featured = 'null';
|
||||||
if(item.post.feature != null || item.post.feature != '')
|
if (item.post.feature != null || item.post.feature != '') featured = item.post.feature.substr(8, item.post.feature.length);
|
||||||
featured = item.post.feature.substr(8, item.post.feature.length);
|
|
||||||
let pretty = hljs.highlight('markdown', item.post.plaintext).value;
|
let pretty = hljs.highlight('markdown', item.post.plaintext).value;
|
||||||
let sexydate = dateUtils.getDate('year', item.post.created) + "-" + dateUtils.getDate('month', item.post.created) + "-" + dateUtils.getDate('day', item.post.created)
|
let sexydate = dateUtils.getDate('year', item.post.created) + "-" + dateUtils.getDate('month', item.post.created) + "-" + dateUtils.getDate('day', item.post.created)
|
||||||
res.render('dash/post-edit',
|
res.render('dash/post-edit',
|
||||||
|
|
|
@ -23,11 +23,24 @@ router.get('/', function(req, res)
|
||||||
limit: 5
|
limit: 5
|
||||||
}).then(function(posts)
|
}).then(function(posts)
|
||||||
{
|
{
|
||||||
|
let filtered = [];
|
||||||
|
for (let index = 0; index < posts.length; index++)
|
||||||
|
{
|
||||||
|
let item = posts[index].post;
|
||||||
|
if (typeof item.deleted == 'undefined' || item.deleted == false)
|
||||||
|
{
|
||||||
|
filtered.push(posts[index])
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
res.render('dash/index',
|
res.render('dash/index',
|
||||||
{
|
{
|
||||||
title: 'Dashboard',
|
title: 'Dashboard',
|
||||||
user_status: loggedIn,
|
user_status: loggedIn,
|
||||||
items: posts
|
items: filtered
|
||||||
});
|
});
|
||||||
}).then(function(value)
|
}).then(function(value)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,18 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
import DataUtils from '../../../themes/default/src/com/tools/utilities/DataUtils';
|
import DataUtils,
|
||||||
|
{
|
||||||
|
REQUEST_TYPE_GET,
|
||||||
|
REQUEST_TYPE_PUT,
|
||||||
|
REQUEST_TYPE_POST,
|
||||||
|
REQUEST_TYPE_DELETE,
|
||||||
|
CONTENT_TYPE_JSON,
|
||||||
|
CONTENT_TYPE_FORM
|
||||||
|
}
|
||||||
|
from '../utilities/DataUtils';
|
||||||
import Dexie from 'dexie';
|
import Dexie from 'dexie';
|
||||||
import * as DataEvent from '../events/DataEvent';
|
import * as DataEvent from '../events/DataEvent';
|
||||||
|
export var COUNT;
|
||||||
|
export var FINAL_KEY;
|
||||||
export default class DBUtils
|
export default class DBUtils
|
||||||
{
|
{
|
||||||
//--------------------------
|
//--------------------------
|
||||||
|
@ -15,11 +26,68 @@ export default class DBUtils
|
||||||
{
|
{
|
||||||
postList: 'id,post'
|
postList: 'id,post'
|
||||||
});
|
});
|
||||||
|
this.db.postList.toArray(array =>
|
||||||
|
{
|
||||||
|
COUNT = array.length;
|
||||||
|
FINAL_KEY = array[COUNT - 1].id;
|
||||||
|
})
|
||||||
}
|
}
|
||||||
//--------------------------
|
//--------------------------
|
||||||
// methods
|
// methods
|
||||||
//--------------------------
|
//--------------------------
|
||||||
resetLocal(array)
|
modify(id, postData)
|
||||||
|
{
|
||||||
|
let self = this;
|
||||||
|
let freshID;
|
||||||
|
return new Promise(function(resolve, reject)
|
||||||
|
{
|
||||||
|
if (id == null)
|
||||||
|
{
|
||||||
|
self.db.postList.put(postData).then(fresh =>
|
||||||
|
{
|
||||||
|
freshID = fresh;
|
||||||
|
}).catch(e =>
|
||||||
|
{
|
||||||
|
let err = {
|
||||||
|
message: "PUT ERROR",
|
||||||
|
error: e
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self.db.postList.update(Number(id),
|
||||||
|
{
|
||||||
|
post: postData
|
||||||
|
}).then(updated =>
|
||||||
|
{}).catch(e =>
|
||||||
|
{
|
||||||
|
consol.log("ERROR", e)
|
||||||
|
let err = {
|
||||||
|
message: "UPDATE ERROR",
|
||||||
|
error: e
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
self.db.postList.toArray(array =>
|
||||||
|
{
|
||||||
|
self.syncRemote(array, freshID).then(response =>
|
||||||
|
{
|
||||||
|
resolve(
|
||||||
|
{
|
||||||
|
response
|
||||||
|
})
|
||||||
|
}).catch(err =>
|
||||||
|
{
|
||||||
|
reject(
|
||||||
|
{
|
||||||
|
err
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
syncLocal(array)
|
||||||
{
|
{
|
||||||
let self = this;
|
let self = this;
|
||||||
return new Promise(function(resolve, reject)
|
return new Promise(function(resolve, reject)
|
||||||
|
@ -46,6 +114,86 @@ export default class DBUtils
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
syncRemote(db, newPostId)
|
||||||
|
{
|
||||||
|
let self = this;
|
||||||
|
return new Promise(function(resolve, reject)
|
||||||
|
{
|
||||||
|
self.dataUtils.request('/api/post/sync', DataEvent.POSTS_SYNCED, REQUEST_TYPE_POST, CONTENT_TYPE_JSON, db).then((response) =>
|
||||||
|
{
|
||||||
|
let bounce = {
|
||||||
|
message: response,
|
||||||
|
newPost: newPostId
|
||||||
|
}
|
||||||
|
resolve(bounce)
|
||||||
|
}).catch((err) =>
|
||||||
|
{
|
||||||
|
reject(err);
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
getPost(id)
|
||||||
|
{
|
||||||
|
let self = this;
|
||||||
|
if (id == null)
|
||||||
|
{
|
||||||
|
return new Promise(function(resolve, reject)
|
||||||
|
{
|
||||||
|
self.db.postList.toArray(array =>
|
||||||
|
{
|
||||||
|
resolve(array)
|
||||||
|
}).catch(err =>
|
||||||
|
{
|
||||||
|
reject(err)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return new Promise(function(resolve, reject)
|
||||||
|
{
|
||||||
|
self.db.postList.get(Number(id)).then(obj =>
|
||||||
|
{
|
||||||
|
resolve(obj)
|
||||||
|
}).catch(err =>
|
||||||
|
{
|
||||||
|
reject(err)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
archivePost(id, archive)
|
||||||
|
{
|
||||||
|
let self = this;
|
||||||
|
return new Promise(function(resolve, reject)
|
||||||
|
{
|
||||||
|
self.db.postList.update(Number(id),
|
||||||
|
{
|
||||||
|
post: archive
|
||||||
|
}).then(deleted =>
|
||||||
|
{
|
||||||
|
self.db.postList.toArray(array =>
|
||||||
|
{
|
||||||
|
self.syncRemote(array, null).then(response =>
|
||||||
|
{
|
||||||
|
resolve(
|
||||||
|
{
|
||||||
|
response
|
||||||
|
})
|
||||||
|
}).catch(err =>
|
||||||
|
{
|
||||||
|
reject(
|
||||||
|
{
|
||||||
|
err
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}).catch(e =>
|
||||||
|
{
|
||||||
|
console.log("ERROR", e)
|
||||||
|
});
|
||||||
|
})
|
||||||
|
}
|
||||||
//--------------------------
|
//--------------------------
|
||||||
// event handlers
|
// event handlers
|
||||||
//--------------------------
|
//--------------------------
|
||||||
|
|
|
@ -6,109 +6,134 @@ export const CONTENT_TYPE_JSON = 'json';
|
||||||
export const CONTENT_TYPE_FORM = 'x-www-form-urlencoded';
|
export const CONTENT_TYPE_FORM = 'x-www-form-urlencoded';
|
||||||
import EventEmitter from '../events/EventEmitter';
|
import EventEmitter from '../events/EventEmitter';
|
||||||
import * as DataEvent from '../events/DataEvent';
|
import * as DataEvent from '../events/DataEvent';
|
||||||
class DataUtils extends EventEmitter {
|
class DataUtils extends EventEmitter
|
||||||
//--------------------------
|
{
|
||||||
// constructor
|
//--------------------------
|
||||||
//--------------------------
|
// constructor
|
||||||
constructor() {
|
//--------------------------
|
||||||
super();
|
constructor()
|
||||||
var self = this;
|
{
|
||||||
}
|
super();
|
||||||
//--------------------------
|
var self = this;
|
||||||
// methods
|
}
|
||||||
//--------------------------
|
//--------------------------
|
||||||
request(requestURL, eventType, requestType = REQUEST_TYPE_GET, contentType = CONTENT_TYPE_JSON, requestData = null) {
|
// methods
|
||||||
var self = this;
|
//--------------------------
|
||||||
return new Promise(function(resolve, reject) {
|
request(requestURL, eventType, requestType = REQUEST_TYPE_GET, contentType = CONTENT_TYPE_JSON, requestData = null)
|
||||||
var request = new XMLHttpRequest();
|
{
|
||||||
request.upload.onprogress = self.handleLoadProgress;
|
var self = this;
|
||||||
request.open(requestType, requestURL, true);
|
return new Promise(function(resolve, reject)
|
||||||
request.onload = function(e) {
|
{
|
||||||
if (request.status == 200) {
|
var request = new XMLHttpRequest();
|
||||||
resolve({
|
request.upload.onprogress = self.handleLoadProgress;
|
||||||
request,
|
request.open(requestType, requestURL, true);
|
||||||
eventType
|
request.onload = function(e)
|
||||||
});
|
{
|
||||||
} else {
|
if (request.status == 200)
|
||||||
reject({
|
{
|
||||||
request,
|
resolve(
|
||||||
eventType
|
{
|
||||||
});
|
request,
|
||||||
}
|
eventType
|
||||||
;
|
});
|
||||||
};
|
}
|
||||||
if (requestType == REQUEST_TYPE_PUT || requestType == REQUEST_TYPE_POST) {
|
else
|
||||||
switch (contentType) {
|
{
|
||||||
case CONTENT_TYPE_JSON:
|
reject(
|
||||||
request.setRequestHeader("Content-type", "application/" + contentType);
|
{
|
||||||
request.send(JSON.stringify(requestData));
|
request,
|
||||||
break;
|
eventType
|
||||||
case CONTENT_TYPE_FORM:
|
});
|
||||||
request.send(requestData);
|
};
|
||||||
break;
|
};
|
||||||
}
|
if (requestType == REQUEST_TYPE_PUT || requestType == REQUEST_TYPE_POST)
|
||||||
} else {
|
{
|
||||||
request.send();
|
switch (contentType)
|
||||||
}
|
{
|
||||||
})
|
case CONTENT_TYPE_JSON:
|
||||||
}
|
request.setRequestHeader("Content-type", "application/" + contentType);
|
||||||
imgLoad(url) {
|
request.send(JSON.stringify(requestData));
|
||||||
'use strict';
|
break;
|
||||||
// Create new promise with the Promise() constructor;
|
case CONTENT_TYPE_FORM:
|
||||||
// This has as its argument a function with two parameters, resolve and reject
|
request.send(requestData);
|
||||||
return new Promise(function(resolve, reject) {
|
break;
|
||||||
// Standard XHR to load an image
|
}
|
||||||
var request = new XMLHttpRequest();
|
}
|
||||||
request.open('GET', url);
|
else
|
||||||
request.responseType = 'blob';
|
{
|
||||||
// When the request loads, check whether it was successful
|
request.send();
|
||||||
request.onload = function() {
|
}
|
||||||
if (request.status === 200) {
|
})
|
||||||
// If successful, resolve the promise by passing back the request response
|
}
|
||||||
resolve(request.response);
|
imgLoad(url)
|
||||||
} else {
|
{
|
||||||
// If it fails, reject the promise with a error message
|
'use strict';
|
||||||
reject(new Error('Image didn\'t load successfully; error code:' + request.statusText));
|
// Create new promise with the Promise() constructor;
|
||||||
}
|
// This has as its argument a function with two parameters, resolve and reject
|
||||||
};
|
return new Promise(function(resolve, reject)
|
||||||
request.onerror = function() {
|
{
|
||||||
// Also deal with the case when the entire request fails to begin with
|
// Standard XHR to load an image
|
||||||
// This is probably a network error, so reject the promise with an appropriate message
|
var request = new XMLHttpRequest();
|
||||||
reject(new Error('There was a network error.'));
|
request.open('GET', url);
|
||||||
};
|
request.responseType = 'blob';
|
||||||
// Send the request
|
// When the request loads, check whether it was successful
|
||||||
request.send();
|
request.onload = function()
|
||||||
});
|
{
|
||||||
}
|
if (request.status === 200)
|
||||||
loadImage(src) {
|
{
|
||||||
'use strict';
|
// If successful, resolve the promise by passing back the request response
|
||||||
let self = this;
|
resolve(request.response);
|
||||||
return new Promise(function(resolve, reject) {
|
}
|
||||||
// Get a reference to the body element, and create a new image object
|
else
|
||||||
var body = document.querySelector('body'),
|
{
|
||||||
myImage = new Image();
|
// If it fails, reject the promise with a error message
|
||||||
myImage.crossOrigin = ""; // or "anonymous"
|
reject(new Error('Image didn\'t load successfully; error code:' + request.statusText));
|
||||||
// Call the function with the URL we want to load, but then chain the
|
}
|
||||||
// promise then() method on to the end of it. This contains two callbacks
|
};
|
||||||
self.imgLoad(src).then(function(response) {
|
request.onerror = function()
|
||||||
// The first runs when the promise resolves, with the request.reponse specified within the resolve() method.
|
{
|
||||||
var imageURL = window.URL.createObjectURL(response);
|
// Also deal with the case when the entire request fails to begin with
|
||||||
resolve(imageURL);
|
// This is probably a network error, so reject the promise with an appropriate message
|
||||||
//$('background-content').setStyle('background-image', 'url('+imageURL+')') //myImage.src = imageURL;
|
reject(new Error('There was a network error.'));
|
||||||
//console.log(imageURL);
|
};
|
||||||
//body.appendChild(myImage);
|
// Send the request
|
||||||
// The second runs when the promise is rejected, and logs the Error specified with the reject() method.
|
request.send();
|
||||||
}, function(Error) {
|
});
|
||||||
reject(Error)
|
}
|
||||||
});
|
loadImage(src)
|
||||||
});
|
{
|
||||||
}
|
'use strict';
|
||||||
//--------------------------
|
let self = this;
|
||||||
// event handlers
|
return new Promise(function(resolve, reject)
|
||||||
//--------------------------
|
{
|
||||||
handleLoadProgress(e) {
|
// Get a reference to the body element, and create a new image object
|
||||||
var percentComplete = Math.ceil((e.loaded / e.total) * 100);
|
var body = document.querySelector('body'),
|
||||||
//console.log(percentComplete);
|
myImage = new Image();
|
||||||
}
|
myImage.crossOrigin = ""; // or "anonymous"
|
||||||
|
// Call the function with the URL we want to load, but then chain the
|
||||||
|
// promise then() method on to the end of it. This contains two callbacks
|
||||||
|
self.imgLoad(src).then(function(response)
|
||||||
|
{
|
||||||
|
// The first runs when the promise resolves, with the request.reponse specified within the resolve() method.
|
||||||
|
var imageURL = window.URL.createObjectURL(response);
|
||||||
|
resolve(imageURL);
|
||||||
|
//$('background-content').setStyle('background-image', 'url('+imageURL+')') //myImage.src = imageURL;
|
||||||
|
//console.log(imageURL);
|
||||||
|
//body.appendChild(myImage);
|
||||||
|
// The second runs when the promise is rejected, and logs the Error specified with the reject() method.
|
||||||
|
}, function(Error)
|
||||||
|
{
|
||||||
|
reject(Error)
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//--------------------------
|
||||||
|
// event handlers
|
||||||
|
//--------------------------
|
||||||
|
handleLoadProgress(e)
|
||||||
|
{
|
||||||
|
var percentComplete = Math.ceil((e.loaded / e.total) * 100);
|
||||||
|
//console.log(percentComplete);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
export default DataUtils;
|
export default DataUtils;
|
727
themes/dash/assets/js/dash.min.js
vendored
727
themes/dash/assets/js/dash.min.js
vendored
|
@ -27452,7 +27452,192 @@ function () {
|
||||||
|
|
||||||
var _default = DateUtils;
|
var _default = DateUtils;
|
||||||
exports.default = _default;
|
exports.default = _default;
|
||||||
},{}],"../../../../node_modules/markdown-it/lib/common/entities.js":[function(require,module,exports) {
|
},{}],"../../../../brain/tools/utilities/DBUtils.js":[function(require,module,exports) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = exports.FINAL_KEY = exports.COUNT = void 0;
|
||||||
|
|
||||||
|
var _DataUtils = _interopRequireWildcard(require("../utilities/DataUtils"));
|
||||||
|
|
||||||
|
var _dexie = _interopRequireDefault(require("dexie"));
|
||||||
|
|
||||||
|
var DataEvent = _interopRequireWildcard(require("../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 COUNT;
|
||||||
|
exports.COUNT = COUNT;
|
||||||
|
var FINAL_KEY;
|
||||||
|
exports.FINAL_KEY = FINAL_KEY;
|
||||||
|
|
||||||
|
var DBUtils =
|
||||||
|
/*#__PURE__*/
|
||||||
|
function () {
|
||||||
|
//--------------------------
|
||||||
|
// constructor
|
||||||
|
//--------------------------
|
||||||
|
function DBUtils() {
|
||||||
|
_classCallCheck(this, DBUtils);
|
||||||
|
|
||||||
|
this.dataUtils = new _DataUtils.default();
|
||||||
|
this.db = new _dexie.default("fipamo_posts");
|
||||||
|
this.db.version(1).stores({
|
||||||
|
postList: 'id,post'
|
||||||
|
});
|
||||||
|
this.db.postList.toArray(function (array) {
|
||||||
|
exports.COUNT = COUNT = array.length;
|
||||||
|
exports.FINAL_KEY = FINAL_KEY = array[COUNT - 1].id;
|
||||||
|
});
|
||||||
|
} //--------------------------
|
||||||
|
// methods
|
||||||
|
//--------------------------
|
||||||
|
|
||||||
|
|
||||||
|
_createClass(DBUtils, [{
|
||||||
|
key: "modify",
|
||||||
|
value: function modify(id, postData) {
|
||||||
|
var self = this;
|
||||||
|
var freshID;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
if (id == null) {
|
||||||
|
self.db.postList.put(postData).then(function (fresh) {
|
||||||
|
freshID = fresh;
|
||||||
|
}).catch(function (e) {
|
||||||
|
var err = {
|
||||||
|
message: "PUT ERROR",
|
||||||
|
error: e
|
||||||
|
};
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
self.db.postList.update(Number(id), {
|
||||||
|
post: postData
|
||||||
|
}).then(function (updated) {}).catch(function (e) {
|
||||||
|
consol.log("ERROR", e);
|
||||||
|
var err = {
|
||||||
|
message: "UPDATE ERROR",
|
||||||
|
error: e
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
self.db.postList.toArray(function (array) {
|
||||||
|
self.syncRemote(array, freshID).then(function (response) {
|
||||||
|
resolve({
|
||||||
|
response: response
|
||||||
|
});
|
||||||
|
}).catch(function (err) {
|
||||||
|
reject({
|
||||||
|
err: err
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "syncLocal",
|
||||||
|
value: function syncLocal(array) {
|
||||||
|
var self = this;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
self.db.postList.clear().then(function (result) {
|
||||||
|
self.db.postList.bulkAdd(array).then(function (key) {
|
||||||
|
self.db.postList.toArray(function (array) {
|
||||||
|
var event = DataEvent.LOCAL_DB_READY;
|
||||||
|
resolve({
|
||||||
|
event: event
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}).catch(_dexie.default.BulkError, function (e) {
|
||||||
|
reject({
|
||||||
|
e: e
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "syncRemote",
|
||||||
|
value: function syncRemote(db, newPostId) {
|
||||||
|
var self = this;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
self.dataUtils.request('/api/post/sync', DataEvent.POSTS_SYNCED, _DataUtils.REQUEST_TYPE_POST, _DataUtils.CONTENT_TYPE_JSON, db).then(function (response) {
|
||||||
|
var bounce = {
|
||||||
|
message: response,
|
||||||
|
newPost: newPostId
|
||||||
|
};
|
||||||
|
resolve(bounce);
|
||||||
|
}).catch(function (err) {
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "getPost",
|
||||||
|
value: function getPost(id) {
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
if (id == null) {
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
self.db.postList.toArray(function (array) {
|
||||||
|
resolve(array);
|
||||||
|
}).catch(function (err) {
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
self.db.postList.get(Number(id)).then(function (obj) {
|
||||||
|
resolve(obj);
|
||||||
|
}).catch(function (err) {
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "archivePost",
|
||||||
|
value: function archivePost(id, archive) {
|
||||||
|
var self = this;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
self.db.postList.update(Number(id), {
|
||||||
|
post: archive
|
||||||
|
}).then(function (deleted) {
|
||||||
|
self.db.postList.toArray(function (array) {
|
||||||
|
self.syncRemote(array, null).then(function (response) {
|
||||||
|
resolve({
|
||||||
|
response: response
|
||||||
|
});
|
||||||
|
}).catch(function (err) {
|
||||||
|
reject({
|
||||||
|
err: err
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}).catch(function (e) {
|
||||||
|
console.log("ERROR", e);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} //--------------------------
|
||||||
|
// event handlers
|
||||||
|
//--------------------------
|
||||||
|
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return DBUtils;
|
||||||
|
}();
|
||||||
|
|
||||||
|
exports.default = DBUtils;
|
||||||
|
},{"../utilities/DataUtils":"../../../../brain/tools/utilities/DataUtils.js","dexie":"../../../../node_modules/dexie/dist/dexie.es.js","../events/DataEvent":"../../../../brain/tools/events/DataEvent.js"}],"../../../../node_modules/markdown-it/lib/common/entities.js":[function(require,module,exports) {
|
||||||
// HTML5 entities map: { name -> utf16string }
|
// HTML5 entities map: { name -> utf16string }
|
||||||
//
|
//
|
||||||
'use strict';
|
'use strict';
|
||||||
|
@ -34989,6 +35174,8 @@ var _sanitizeHtml = _interopRequireDefault(require("sanitize-html"));
|
||||||
|
|
||||||
var _DateUtils = _interopRequireDefault(require("../../../../../brain/tools/utilities/DateUtils"));
|
var _DateUtils = _interopRequireDefault(require("../../../../../brain/tools/utilities/DateUtils"));
|
||||||
|
|
||||||
|
var _DBUtils = _interopRequireDefault(require("../../../../../brain/tools/utilities/DBUtils"));
|
||||||
|
|
||||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
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 _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; } }
|
||||||
|
@ -35014,10 +35201,7 @@ function () {
|
||||||
|
|
||||||
this.dataUtils = new _DataUtils.default();
|
this.dataUtils = new _DataUtils.default();
|
||||||
this.dateUtils = new _DateUtils.default();
|
this.dateUtils = new _DateUtils.default();
|
||||||
this.db = new _dexie.default("fipamo_posts");
|
this.dbUtils = new _DBUtils.default();
|
||||||
this.db.version(1).stores({
|
|
||||||
postList: 'id,post'
|
|
||||||
});
|
|
||||||
} //--------------------------
|
} //--------------------------
|
||||||
// methods
|
// methods
|
||||||
//--------------------------
|
//--------------------------
|
||||||
|
@ -35027,7 +35211,7 @@ function () {
|
||||||
key: "update",
|
key: "update",
|
||||||
value: function update(id, data, files, lastKey) {
|
value: function update(id, data, files, lastKey) {
|
||||||
var self = this;
|
var self = this;
|
||||||
var newID = null;
|
var freshData;
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
var txt = document.createElement("textarea");
|
var txt = document.createElement("textarea");
|
||||||
txt.innerHTML = document.getElementById('edit-post-text').innerHTML;
|
txt.innerHTML = document.getElementById('edit-post-text').innerHTML;
|
||||||
|
@ -35066,11 +35250,12 @@ function () {
|
||||||
|
|
||||||
data.feature = "/content/blog-images/" + self.dateUtils.getDate('year', new Date()) + "/" + self.dateUtils.getDate('month', new Date()) + "/" + file.name;
|
data.feature = "/content/blog-images/" + self.dateUtils.getDate('year', new Date()) + "/" + self.dateUtils.getDate('month', new Date()) + "/" + file.name;
|
||||||
}
|
}
|
||||||
} else {//data.feature = "";
|
} else {
|
||||||
|
if (typeof data.feature == 'undefined') data.feature = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (id == null) {
|
if (id == null) {
|
||||||
self.db.postList.put({
|
freshData = {
|
||||||
id: lastKey + 1,
|
id: lastKey + 1,
|
||||||
post: {
|
post: {
|
||||||
uuid: uuidv4(),
|
uuid: uuidv4(),
|
||||||
|
@ -35084,63 +35269,33 @@ function () {
|
||||||
page: data.page,
|
page: data.page,
|
||||||
featured: data.featured,
|
featured: data.featured,
|
||||||
published: data.published,
|
published: data.published,
|
||||||
|
deleted: "",
|
||||||
author: "user"
|
author: "user"
|
||||||
}
|
}
|
||||||
}).then(function (fresh) {
|
};
|
||||||
newID = fresh;
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
self.db.postList.update(Number(id), {
|
freshData = data;
|
||||||
post: data
|
|
||||||
}).then(function (updated) {});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
self.db.postList.toArray(function (array) {
|
self.dbUtils.modify(id, freshData).then(function (response) {
|
||||||
self.sync(array, newID).then(function (response) {
|
resolve(response);
|
||||||
resolve({
|
|
||||||
response: response
|
|
||||||
});
|
|
||||||
}).catch(function (err) {
|
|
||||||
reject({
|
|
||||||
err: err
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "sync",
|
|
||||||
value: function sync(db, newPostId) {
|
|
||||||
var self = this;
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
self.dataUtils.request('/api/post/sync', DataEvent.POSTS_SYNCED, _DataUtils.REQUEST_TYPE_POST, _DataUtils.CONTENT_TYPE_JSON, db).then(function (response) {
|
|
||||||
var bounce = {
|
|
||||||
message: response,
|
|
||||||
newPost: newPostId
|
|
||||||
};
|
|
||||||
resolve({
|
|
||||||
bounce: bounce
|
|
||||||
});
|
|
||||||
}).catch(function (err) {
|
}).catch(function (err) {
|
||||||
reject({
|
reject(err);
|
||||||
err: err
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
key: "deletePost",
|
key: "deletePost",
|
||||||
value: function deletePost() {
|
value: function deletePost(id, body) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
body.deleted = new Date().toString();
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
self.dataUtils.request("/api/post/delete/" + postID, DataEvent.POST_DELETED, _DataUtils.REQUEST_TYPE_POST, _DataUtils.CONTENT_TYPE_FORM).then(function (response) {
|
self.dbUtils.archivePost(id, body).then(function (response) {
|
||||||
resolve({
|
console.log(response);
|
||||||
response: response
|
resolve(response);
|
||||||
});
|
|
||||||
}).catch(function (err) {
|
}).catch(function (err) {
|
||||||
reject({
|
console.log(err);
|
||||||
err: err
|
reject(error);
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} //--------------------------
|
} //--------------------------
|
||||||
|
@ -35153,7 +35308,7 @@ function () {
|
||||||
}();
|
}();
|
||||||
|
|
||||||
exports.default = PostActions;
|
exports.default = PostActions;
|
||||||
},{"../../../../../brain//tools/utilities/DataUtils":"../../../../brain/tools/utilities/DataUtils.js","../../../../../brain//tools/events/DataEvent":"../../../../brain/tools/events/DataEvent.js","../../../../../brain//tools/utilities/StringUtils":"../../../../brain/tools/utilities/StringUtils.js","dexie":"../../../../node_modules/dexie/dist/dexie.es.js","sanitize-html":"../../../../node_modules/sanitize-html/dist/index.js","../../../../../brain/tools/utilities/DateUtils":"../../../../brain/tools/utilities/DateUtils.js","markdown-it":"../../../../node_modules/markdown-it/index.js","uuid/v4":"../../../../node_modules/uuid/v4.js"}],"../../../../brain/tools/events/EditorEvent.js":[function(require,module,exports) {
|
},{"../../../../../brain//tools/utilities/DataUtils":"../../../../brain/tools/utilities/DataUtils.js","../../../../../brain//tools/events/DataEvent":"../../../../brain/tools/events/DataEvent.js","../../../../../brain//tools/utilities/StringUtils":"../../../../brain/tools/utilities/StringUtils.js","dexie":"../../../../node_modules/dexie/dist/dexie.es.js","sanitize-html":"../../../../node_modules/sanitize-html/dist/index.js","../../../../../brain/tools/utilities/DateUtils":"../../../../brain/tools/utilities/DateUtils.js","../../../../../brain/tools/utilities/DBUtils":"../../../../brain/tools/utilities/DBUtils.js","markdown-it":"../../../../node_modules/markdown-it/index.js","uuid/v4":"../../../../node_modules/uuid/v4.js"}],"../../../../brain/tools/events/EditorEvent.js":[function(require,module,exports) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
@ -37141,6 +37296,8 @@ var _TextEditor = _interopRequireDefault(require("../../../../../brain/tools/ui/
|
||||||
|
|
||||||
var _dexie = _interopRequireDefault(require("dexie"));
|
var _dexie = _interopRequireDefault(require("dexie"));
|
||||||
|
|
||||||
|
var _DBUtils = _interopRequireWildcard(require("../../../../../brain/tools/utilities/DBUtils"));
|
||||||
|
|
||||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
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 _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; } }
|
||||||
|
@ -37167,21 +37324,21 @@ function () {
|
||||||
this.dataUtils = new _DataUtils.default();
|
this.dataUtils = new _DataUtils.default();
|
||||||
this.dateUtils = new _DateUtils.default();
|
this.dateUtils = new _DateUtils.default();
|
||||||
this.urlPieces = document.URL.split("/");
|
this.urlPieces = document.URL.split("/");
|
||||||
|
this.dbUtils = new _DBUtils.default();
|
||||||
this.post = [];
|
this.post = [];
|
||||||
this.postID = null;
|
this.postID = null;
|
||||||
this.postCount = null;
|
|
||||||
this.postFinalKey = null;
|
if (document.getElementById('post-edit-index').getAttribute('data-index')) {
|
||||||
if (document.getElementById('post-edit-index').getAttribute('data-index')) this.postID = document.getElementById('post-edit-index').getAttribute('data-index');
|
this.postID = document.getElementById('post-edit-index').getAttribute('data-index');
|
||||||
var fipamoPosts = new _dexie.default("fipamo_posts");
|
this.dbUtils.getPost(this.postID).then(function (body) {
|
||||||
fipamoPosts.version(1).stores({
|
self.post = body.post;
|
||||||
postList: 'id, post'
|
|
||||||
});
|
_this.start();
|
||||||
fipamoPosts.postList.toArray(function (array) {
|
}).catch(function (err) {//console.log(err)
|
||||||
self.setListVars(array);
|
});
|
||||||
});
|
} else {
|
||||||
if (this.postID != null) fipamoPosts.postList.get(Number(this.postID)).then(function (obj) {
|
this.start();
|
||||||
return _this.setPost(obj.post);
|
}
|
||||||
});else this.start();
|
|
||||||
|
|
||||||
if (document.getElementById('edit-post-text')) {
|
if (document.getElementById('edit-post-text')) {
|
||||||
this.editor = new _TextEditor.default(document.getElementById('edit-post-text'), document.getElementById('header').offsetHeight + document.getElementById('post-header').offsetHeight + document.getElementById('post-feature').offsetHeight);
|
this.editor = new _TextEditor.default(document.getElementById('edit-post-text'), document.getElementById('header').offsetHeight + document.getElementById('post-header').offsetHeight + document.getElementById('post-feature').offsetHeight);
|
||||||
|
@ -37214,18 +37371,6 @@ function () {
|
||||||
|
|
||||||
|
|
||||||
_createClass(PostEditor, [{
|
_createClass(PostEditor, [{
|
||||||
key: "setPost",
|
|
||||||
value: function setPost(array) {
|
|
||||||
this.post = array;
|
|
||||||
this.start();
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "setListVars",
|
|
||||||
value: function setListVars(array) {
|
|
||||||
this.postCount = array.length;
|
|
||||||
this.postFinalKey = array[this.postCount - 1].id;
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "start",
|
key: "start",
|
||||||
value: function start() {
|
value: function start() {
|
||||||
var _this2 = this;
|
var _this2 = this;
|
||||||
|
@ -37287,37 +37432,33 @@ function () {
|
||||||
value: function handleEditorOptions(e) {
|
value: function handleEditorOptions(e) {
|
||||||
var _this3 = this;
|
var _this3 = this;
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
switch (e) {
|
switch (e) {
|
||||||
case EditorEvent.EDITOR_SAVE:
|
case EditorEvent.EDITOR_SAVE:
|
||||||
new _PostActions.default().update(this.postID, this.post, PostEditor.uploadFiles, this.postFinalKey).then(function (response) {
|
new _PostActions.default().update(this.postID, this.post, PostEditor.uploadFiles, _DBUtils.FINAL_KEY).then(function (response) {
|
||||||
var freshDB = new _dexie.default("fipamo_posts");
|
|
||||||
freshDB.version(1).stores({
|
|
||||||
postList: 'id, post'
|
|
||||||
});
|
|
||||||
setTimeout(function (f) {
|
setTimeout(function (f) {
|
||||||
freshDB.postList.get(Number(response.response.bounce.newPost)).then(function (obj) {
|
self.dbUtils.getPost(Number(response.response.newPost)).then(function (r) {
|
||||||
window.location = "/@/dashboard/posts/edit/" + obj.post.slug;
|
window.location = "/@/dashboard/posts/edit/" + r.post.slug;
|
||||||
});
|
});
|
||||||
}, 200);
|
}, 100);
|
||||||
}).catch(function (err) {
|
}).catch(function (err) {//console.log("ERROR", err)
|
||||||
console.log("ERROR", err);
|
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EditorEvent.EDITOR_UPDATE:
|
case EditorEvent.EDITOR_UPDATE:
|
||||||
new _PostActions.default().update(this.postID, this.post, PostEditor.uploadFiles, this.postFinalKey).then(function (response) {
|
new _PostActions.default().update(this.postID, this.post, PostEditor.uploadFiles, _DBUtils.FINAL_KEY).then(function (response) {
|
||||||
//console.log(response.response.bounce.newPost);
|
|
||||||
_this3.editor.notify(DataEvent.POST_UPDATED, _this3.postID);
|
_this3.editor.notify(DataEvent.POST_UPDATED, _this3.postID);
|
||||||
}).catch(function (err) {
|
}).catch(function (err) {//console.log("ERRORZ", err)
|
||||||
console.log("ERROR", err);
|
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EditorEvent.EDITOR_DELETE:
|
case EditorEvent.EDITOR_DELETE:
|
||||||
if (confirm('Aye! You know you\'re deleting this post, right?')) {
|
if (confirm('Aye! You know you\'re deleting this post, right?')) {
|
||||||
new _PostActions.default().deletePost().then(function (response) {
|
new _PostActions.default().deletePost(this.postID, this.post).then(function (response) {
|
||||||
var note = JSON.parse(response['response']['request'].response);
|
setTimeout(function (f) {
|
||||||
window.location = "/@/dashboard/posts/";
|
window.location = "/@/dashboard/posts/";
|
||||||
|
}, 100);
|
||||||
}).catch(function (err) {
|
}).catch(function (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
});
|
});
|
||||||
|
@ -37401,8 +37542,7 @@ function () {
|
||||||
this.dataUtils.request(url, eventType, _DataUtils.REQUEST_TYPE_POST, _DataUtils.CONTENT_TYPE_FORM, imageData).then(function (response) {
|
this.dataUtils.request(url, eventType, _DataUtils.REQUEST_TYPE_POST, _DataUtils.CONTENT_TYPE_FORM, imageData).then(function (response) {
|
||||||
var r = JSON.parse(response.request['response']);
|
var r = JSON.parse(response.request['response']);
|
||||||
if (r.message == DataEvent.POST_IMAGE_ADDED) self.editor.notify(EditorEvent.EDITOR_UPLOAD_POST_IMAGE, r.url);
|
if (r.message == DataEvent.POST_IMAGE_ADDED) self.editor.notify(EditorEvent.EDITOR_UPLOAD_POST_IMAGE, r.url);
|
||||||
}).catch(function (err) {
|
}).catch(function (err) {//console.log(err)
|
||||||
console.log(err);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}]);
|
}]);
|
||||||
|
@ -37412,7 +37552,7 @@ function () {
|
||||||
|
|
||||||
exports.default = PostEditor;
|
exports.default = PostEditor;
|
||||||
PostEditor.uploadFiles = [];
|
PostEditor.uploadFiles = [];
|
||||||
},{"../../../../../brain/tools/utilities/DataUtils":"../../../../brain/tools/utilities/DataUtils.js","../../../../../brain/tools/events/DataEvent":"../../../../brain/tools/events/DataEvent.js","../../../../../brain/tools/effects/Animate":"../../../../brain/tools/effects/Animate.js","../actions/PostActions":"actions/PostActions.js","../../../../../brain/tools/events/EditorEvent":"../../../../brain/tools/events/EditorEvent.js","tiny-date-picker":"../../../../node_modules/tiny-date-picker/dist/tiny-date-picker.js","../../../../../brain/tools/utilities/DateUtils":"../../../../brain/tools/utilities/DateUtils.js","../../../../../brain/tools/ui/TextEditor":"../../../../brain/tools/ui/TextEditor.js","dexie":"../../../../node_modules/dexie/dist/dexie.es.js"}],"controllers/PostIndex.js":[function(require,module,exports) {
|
},{"../../../../../brain/tools/utilities/DataUtils":"../../../../brain/tools/utilities/DataUtils.js","../../../../../brain/tools/events/DataEvent":"../../../../brain/tools/events/DataEvent.js","../../../../../brain/tools/effects/Animate":"../../../../brain/tools/effects/Animate.js","../actions/PostActions":"actions/PostActions.js","../../../../../brain/tools/events/EditorEvent":"../../../../brain/tools/events/EditorEvent.js","tiny-date-picker":"../../../../node_modules/tiny-date-picker/dist/tiny-date-picker.js","../../../../../brain/tools/utilities/DateUtils":"../../../../brain/tools/utilities/DateUtils.js","../../../../../brain/tools/ui/TextEditor":"../../../../brain/tools/ui/TextEditor.js","dexie":"../../../../node_modules/dexie/dist/dexie.es.js","../../../../../brain/tools/utilities/DBUtils":"../../../../brain/tools/utilities/DBUtils.js"}],"controllers/PostIndex.js":[function(require,module,exports) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
@ -37549,396 +37689,7 @@ function () {
|
||||||
}();
|
}();
|
||||||
|
|
||||||
exports.default = DashManager;
|
exports.default = DashManager;
|
||||||
},{"./PostEditor":"controllers/PostEditor.js","../../../../../brain/tools/effects/Animate":"../../../../brain/tools/effects/Animate.js","./PostIndex":"controllers/PostIndex.js"}],"../../../default/src/com/tools/events/EventEmitter.jsx":[function(require,module,exports) {
|
},{"./PostEditor":"controllers/PostEditor.js","../../../../../brain/tools/effects/Animate":"../../../../brain/tools/effects/Animate.js","./PostIndex":"controllers/PostIndex.js"}],"Base.js":[function(require,module,exports) {
|
||||||
"use strict";
|
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
|
||||||
value: true
|
|
||||||
});
|
|
||||||
exports.default = void 0;
|
|
||||||
|
|
||||||
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 EventEmitter =
|
|
||||||
/*#__PURE__*/
|
|
||||||
function () {
|
|
||||||
//--------------------------
|
|
||||||
// constructor
|
|
||||||
//--------------------------
|
|
||||||
function EventEmitter() {
|
|
||||||
_classCallCheck(this, EventEmitter);
|
|
||||||
|
|
||||||
this.listeners = new Map();
|
|
||||||
} //--------------------------
|
|
||||||
// methods
|
|
||||||
//--------------------------
|
|
||||||
|
|
||||||
|
|
||||||
_createClass(EventEmitter, [{
|
|
||||||
key: "addListener",
|
|
||||||
value: function addListener(label, callback) {
|
|
||||||
this.listeners.has(label) || this.listeners.set(label, []);
|
|
||||||
this.listeners.get(label).push(callback);
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "removeListener",
|
|
||||||
value: function removeListener(label, callback) {
|
|
||||||
var isFunction = function isFunction(obj) {
|
|
||||||
return typeof obj == 'function' || false;
|
|
||||||
};
|
|
||||||
|
|
||||||
var listeners = this.listeners.get(label),
|
|
||||||
index;
|
|
||||||
|
|
||||||
if (listeners && listeners.length) {
|
|
||||||
index = listeners.reduce(function (i, listener, index) {
|
|
||||||
return isFunction(listener) && listener === callback ? i = index : i;
|
|
||||||
}, -1);
|
|
||||||
|
|
||||||
if (index > -1) {
|
|
||||||
listeners.splice(index, 1);
|
|
||||||
this.listeners.set(label, listeners);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "emitEvent",
|
|
||||||
value: function emitEvent(label) {
|
|
||||||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
||||||
args[_key - 1] = arguments[_key];
|
|
||||||
}
|
|
||||||
|
|
||||||
var listeners = this.listeners.get(label);
|
|
||||||
|
|
||||||
if (listeners && listeners.length) {
|
|
||||||
listeners.forEach(function (listener) {
|
|
||||||
listener.apply(void 0, args);
|
|
||||||
});
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
} //--------------------------
|
|
||||||
// event handlers
|
|
||||||
//--------------------------
|
|
||||||
|
|
||||||
}]);
|
|
||||||
|
|
||||||
return EventEmitter;
|
|
||||||
}();
|
|
||||||
|
|
||||||
var _default = EventEmitter;
|
|
||||||
exports.default = _default;
|
|
||||||
},{}],"../../../default/src/com/tools/events/DataEvent.jsx":[function(require,module,exports) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
|
||||||
value: true
|
|
||||||
});
|
|
||||||
exports.default = exports.PROJECTS_SORTED = exports.PROJECT_ADDED = exports.PROJECT_UPDATED = exports.ARCHIVES_ENTRY_LOADED = exports.ARCHIVES_PAGE_LOADED = exports.ARCHIVES_JSON_LOADED = exports.HTML_LOADED = exports.SETTINGS_LOADED = exports.IMG_REQUEST_LAME = exports.IMG_REQUEST_GOOD = exports.REQUEST_LAME = exports.REQUEST_GOOD = void 0;
|
|
||||||
|
|
||||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
||||||
|
|
||||||
var REQUEST_GOOD = 'requestGood';
|
|
||||||
exports.REQUEST_GOOD = REQUEST_GOOD;
|
|
||||||
var REQUEST_LAME = 'requestLame';
|
|
||||||
exports.REQUEST_LAME = REQUEST_LAME;
|
|
||||||
var IMG_REQUEST_GOOD = 'imgRequestGood';
|
|
||||||
exports.IMG_REQUEST_GOOD = IMG_REQUEST_GOOD;
|
|
||||||
var IMG_REQUEST_LAME = 'imgRequestLame';
|
|
||||||
exports.IMG_REQUEST_LAME = IMG_REQUEST_LAME;
|
|
||||||
var SETTINGS_LOADED = 'dataLoaded';
|
|
||||||
exports.SETTINGS_LOADED = SETTINGS_LOADED;
|
|
||||||
var HTML_LOADED = 'htmlLoaded';
|
|
||||||
exports.HTML_LOADED = HTML_LOADED;
|
|
||||||
var ARCHIVES_JSON_LOADED = 'archivesJSONLoaded';
|
|
||||||
exports.ARCHIVES_JSON_LOADED = ARCHIVES_JSON_LOADED;
|
|
||||||
var ARCHIVES_PAGE_LOADED = 'archivesPAGELoaded';
|
|
||||||
exports.ARCHIVES_PAGE_LOADED = ARCHIVES_PAGE_LOADED;
|
|
||||||
var ARCHIVES_ENTRY_LOADED = 'archivesEntryLoaded';
|
|
||||||
exports.ARCHIVES_ENTRY_LOADED = ARCHIVES_ENTRY_LOADED;
|
|
||||||
var PROJECT_UPDATED = 'projectUpdated';
|
|
||||||
exports.PROJECT_UPDATED = PROJECT_UPDATED;
|
|
||||||
var PROJECT_ADDED = 'projectAdded';
|
|
||||||
exports.PROJECT_ADDED = PROJECT_ADDED;
|
|
||||||
var PROJECTS_SORTED = 'projectsSorted';
|
|
||||||
exports.PROJECTS_SORTED = PROJECTS_SORTED;
|
|
||||||
|
|
||||||
var DataEvent = function DataEvent() {
|
|
||||||
_classCallCheck(this, DataEvent);
|
|
||||||
};
|
|
||||||
|
|
||||||
var _default = new DataEvent();
|
|
||||||
|
|
||||||
exports.default = _default;
|
|
||||||
},{}],"../../../default/src/com/tools/utilities/DataUtils.jsx":[function(require,module,exports) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
|
||||||
value: true
|
|
||||||
});
|
|
||||||
exports.default = exports.CONTENT_TYPE_FORM = exports.CONTENT_TYPE_JSON = exports.REQUEST_TYPE_DELETE = exports.REQUEST_TYPE_PUT = exports.REQUEST_TYPE_GET = exports.REQUEST_TYPE_POST = void 0;
|
|
||||||
|
|
||||||
var _EventEmitter2 = _interopRequireDefault(require("../events/EventEmitter.jsx"));
|
|
||||||
|
|
||||||
var DataEvent = _interopRequireWildcard(require("../events/DataEvent.jsx"));
|
|
||||||
|
|
||||||
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 _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(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; }
|
|
||||||
|
|
||||||
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
||||||
|
|
||||||
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
||||||
|
|
||||||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
||||||
|
|
||||||
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
||||||
|
|
||||||
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
||||||
|
|
||||||
var REQUEST_TYPE_POST = "POST";
|
|
||||||
exports.REQUEST_TYPE_POST = REQUEST_TYPE_POST;
|
|
||||||
var REQUEST_TYPE_GET = "GET";
|
|
||||||
exports.REQUEST_TYPE_GET = REQUEST_TYPE_GET;
|
|
||||||
var REQUEST_TYPE_PUT = "PUT";
|
|
||||||
exports.REQUEST_TYPE_PUT = REQUEST_TYPE_PUT;
|
|
||||||
var REQUEST_TYPE_DELETE = "DELETE";
|
|
||||||
exports.REQUEST_TYPE_DELETE = REQUEST_TYPE_DELETE;
|
|
||||||
var CONTENT_TYPE_JSON = 'json';
|
|
||||||
exports.CONTENT_TYPE_JSON = CONTENT_TYPE_JSON;
|
|
||||||
var CONTENT_TYPE_FORM = 'x-www-form-urlencoded';
|
|
||||||
exports.CONTENT_TYPE_FORM = CONTENT_TYPE_FORM;
|
|
||||||
|
|
||||||
var DataUtils =
|
|
||||||
/*#__PURE__*/
|
|
||||||
function (_EventEmitter) {
|
|
||||||
_inherits(DataUtils, _EventEmitter);
|
|
||||||
|
|
||||||
//--------------------------
|
|
||||||
// constructor
|
|
||||||
//--------------------------
|
|
||||||
function DataUtils() {
|
|
||||||
var _this;
|
|
||||||
|
|
||||||
_classCallCheck(this, DataUtils);
|
|
||||||
|
|
||||||
_this = _possibleConstructorReturn(this, _getPrototypeOf(DataUtils).call(this));
|
|
||||||
|
|
||||||
var self = _assertThisInitialized(_assertThisInitialized(_this));
|
|
||||||
|
|
||||||
return _this;
|
|
||||||
} //--------------------------
|
|
||||||
// methods
|
|
||||||
//--------------------------
|
|
||||||
|
|
||||||
|
|
||||||
_createClass(DataUtils, [{
|
|
||||||
key: "request",
|
|
||||||
value: function request(requestURL, eventType) {
|
|
||||||
var requestType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : REQUEST_TYPE_GET;
|
|
||||||
var contentType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : CONTENT_TYPE_JSON;
|
|
||||||
var requestData = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
||||||
var self = this;
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
var request = new XMLHttpRequest();
|
|
||||||
request.upload.onprogress = self.handleLoadProgress;
|
|
||||||
request.open(requestType, requestURL, true);
|
|
||||||
|
|
||||||
request.onload = function (e) {
|
|
||||||
if (request.status == 200) {
|
|
||||||
resolve({
|
|
||||||
request: request,
|
|
||||||
eventType: eventType
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
reject({
|
|
||||||
request: request,
|
|
||||||
eventType: eventType
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (requestType == REQUEST_TYPE_PUT || requestType == REQUEST_TYPE_POST) {
|
|
||||||
switch (contentType) {
|
|
||||||
case CONTENT_TYPE_JSON:
|
|
||||||
request.setRequestHeader("Content-type", "application/" + contentType);
|
|
||||||
request.send(JSON.stringify(requestData));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CONTENT_TYPE_FORM:
|
|
||||||
request.send(requestData);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
request.send();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "imgLoad",
|
|
||||||
value: function imgLoad(url) {
|
|
||||||
'use strict'; // Create new promise with the Promise() constructor;
|
|
||||||
// This has as its argument a function with two parameters, resolve and reject
|
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
// Standard XHR to load an image
|
|
||||||
var request = new XMLHttpRequest();
|
|
||||||
request.open('GET', url);
|
|
||||||
request.responseType = 'blob'; // When the request loads, check whether it was successful
|
|
||||||
|
|
||||||
request.onload = function () {
|
|
||||||
if (request.status === 200) {
|
|
||||||
// If successful, resolve the promise by passing back the request response
|
|
||||||
resolve(request.response);
|
|
||||||
} else {
|
|
||||||
// If it fails, reject the promise with a error message
|
|
||||||
reject(new Error('Image didn\'t load successfully; error code:' + request.statusText));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
request.onerror = function () {
|
|
||||||
// Also deal with the case when the entire request fails to begin with
|
|
||||||
// This is probably a network error, so reject the promise with an appropriate message
|
|
||||||
reject(new Error('There was a network error.'));
|
|
||||||
}; // Send the request
|
|
||||||
|
|
||||||
|
|
||||||
request.send();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "loadImage",
|
|
||||||
value: function loadImage(src) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var self = this;
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
// Get a reference to the body element, and create a new image object
|
|
||||||
var body = document.querySelector('body'),
|
|
||||||
myImage = new Image();
|
|
||||||
myImage.crossOrigin = ""; // or "anonymous"
|
|
||||||
// Call the function with the URL we want to load, but then chain the
|
|
||||||
// promise then() method on to the end of it. This contains two callbacks
|
|
||||||
|
|
||||||
self.imgLoad(src).then(function (response) {
|
|
||||||
// The first runs when the promise resolves, with the request.reponse specified within the resolve() method.
|
|
||||||
var imageURL = window.URL.createObjectURL(response);
|
|
||||||
resolve(imageURL); //$('background-content').setStyle('background-image', 'url('+imageURL+')') //myImage.src = imageURL;
|
|
||||||
//console.log(imageURL);
|
|
||||||
//body.appendChild(myImage);
|
|
||||||
// The second runs when the promise is rejected, and logs the Error specified with the reject() method.
|
|
||||||
}, function (Error) {
|
|
||||||
reject(Error);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} //--------------------------
|
|
||||||
// event handlers
|
|
||||||
//--------------------------
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: "handleLoadProgress",
|
|
||||||
value: function handleLoadProgress(e) {
|
|
||||||
var percentComplete = Math.ceil(e.loaded / e.total * 100); //console.log(percentComplete);
|
|
||||||
}
|
|
||||||
}]);
|
|
||||||
|
|
||||||
return DataUtils;
|
|
||||||
}(_EventEmitter2.default);
|
|
||||||
|
|
||||||
var _default = DataUtils;
|
|
||||||
exports.default = _default;
|
|
||||||
},{"../events/EventEmitter.jsx":"../../../default/src/com/tools/events/EventEmitter.jsx","../events/DataEvent.jsx":"../../../default/src/com/tools/events/DataEvent.jsx"}],"../../../../brain/tools/utilities/DBUtils.js":[function(require,module,exports) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
|
||||||
value: true
|
|
||||||
});
|
|
||||||
exports.default = void 0;
|
|
||||||
|
|
||||||
var _DataUtils = _interopRequireDefault(require("../../../themes/default/src/com/tools/utilities/DataUtils"));
|
|
||||||
|
|
||||||
var _dexie = _interopRequireDefault(require("dexie"));
|
|
||||||
|
|
||||||
var DataEvent = _interopRequireWildcard(require("../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 DBUtils =
|
|
||||||
/*#__PURE__*/
|
|
||||||
function () {
|
|
||||||
//--------------------------
|
|
||||||
// constructor
|
|
||||||
//--------------------------
|
|
||||||
function DBUtils() {
|
|
||||||
_classCallCheck(this, DBUtils);
|
|
||||||
|
|
||||||
this.dataUtils = new _DataUtils.default();
|
|
||||||
this.db = new _dexie.default("fipamo_posts");
|
|
||||||
this.db.version(1).stores({
|
|
||||||
postList: 'id,post'
|
|
||||||
});
|
|
||||||
} //--------------------------
|
|
||||||
// methods
|
|
||||||
//--------------------------
|
|
||||||
|
|
||||||
|
|
||||||
_createClass(DBUtils, [{
|
|
||||||
key: "resetLocal",
|
|
||||||
value: function resetLocal(array) {
|
|
||||||
var self = this;
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
self.db.postList.clear().then(function (result) {
|
|
||||||
self.db.postList.bulkAdd(array).then(function (key) {
|
|
||||||
self.db.postList.toArray(function (array) {
|
|
||||||
var event = DataEvent.LOCAL_DB_READY;
|
|
||||||
resolve({
|
|
||||||
event: event
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}).catch(_dexie.default.BulkError, function (e) {
|
|
||||||
reject({
|
|
||||||
e: e
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} //--------------------------
|
|
||||||
// event handlers
|
|
||||||
//--------------------------
|
|
||||||
|
|
||||||
}]);
|
|
||||||
|
|
||||||
return DBUtils;
|
|
||||||
}();
|
|
||||||
|
|
||||||
exports.default = DBUtils;
|
|
||||||
},{"../../../themes/default/src/com/tools/utilities/DataUtils":"../../../default/src/com/tools/utilities/DataUtils.jsx","dexie":"../../../../node_modules/dexie/dist/dexie.es.js","../events/DataEvent":"../../../../brain/tools/events/DataEvent.js"}],"Base.js":[function(require,module,exports) {
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
@ -38005,7 +37756,7 @@ function () {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
self.dbUtils.resetLocal(list).then(function (r) {
|
self.dbUtils.syncLocal(list).then(function (r) {
|
||||||
self.start();
|
self.start();
|
||||||
}).catch(function (err) {
|
}).catch(function (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -44,7 +44,7 @@ export default class Base
|
||||||
for (let index = 0; index < posts.length; index++) {
|
for (let index = 0; index < posts.length; index++) {
|
||||||
list.push({id:posts[index].id ,post:posts[index].post});
|
list.push({id:posts[index].id ,post:posts[index].post});
|
||||||
}
|
}
|
||||||
self.dbUtils.resetLocal(list).then(r=>{
|
self.dbUtils.syncLocal(list).then(r=>{
|
||||||
self.start();
|
self.start();
|
||||||
}).catch(err=>{
|
}).catch(err=>{
|
||||||
console.log(err);
|
console.log(err);
|
||||||
|
|
|
@ -13,6 +13,7 @@ import StringUtils from '../../../../../brain//tools/utilities/StringUtils';
|
||||||
import Dexie from 'dexie';
|
import Dexie from 'dexie';
|
||||||
import sanitize from 'sanitize-html' //NOTE: Santize is a really big add - explore ways to reduce this
|
import sanitize from 'sanitize-html' //NOTE: Santize is a really big add - explore ways to reduce this
|
||||||
import DateUtils from '../../../../../brain/tools/utilities/DateUtils';
|
import DateUtils from '../../../../../brain/tools/utilities/DateUtils';
|
||||||
|
import DBUtils from '../../../../../brain/tools/utilities/DBUtils';
|
||||||
var md = require('markdown-it')('commonmark');
|
var md = require('markdown-it')('commonmark');
|
||||||
var uuidv4 = require('uuid/v4');
|
var uuidv4 = require('uuid/v4');
|
||||||
export default class PostActions
|
export default class PostActions
|
||||||
|
@ -24,11 +25,7 @@ export default class PostActions
|
||||||
{
|
{
|
||||||
this.dataUtils = new DataUtils();
|
this.dataUtils = new DataUtils();
|
||||||
this.dateUtils = new DateUtils();
|
this.dateUtils = new DateUtils();
|
||||||
this.db = new Dexie("fipamo_posts");
|
this.dbUtils = new DBUtils();
|
||||||
this.db.version(1).stores(
|
|
||||||
{
|
|
||||||
postList: 'id,post'
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
//--------------------------
|
//--------------------------
|
||||||
// methods
|
// methods
|
||||||
|
@ -36,7 +33,7 @@ export default class PostActions
|
||||||
update(id, data, files, lastKey)
|
update(id, data, files, lastKey)
|
||||||
{
|
{
|
||||||
let self = this;
|
let self = this;
|
||||||
let newID = null;
|
let freshData;
|
||||||
return new Promise(function(resolve, reject)
|
return new Promise(function(resolve, reject)
|
||||||
{
|
{
|
||||||
let txt = document.createElement("textarea");
|
let txt = document.createElement("textarea");
|
||||||
|
@ -53,7 +50,7 @@ export default class PostActions
|
||||||
iframe: ['height', 'width', 'src', 'frameborder', 'allow', 'allowfullscreen']
|
iframe: ['height', 'width', 'src', 'frameborder', 'allow', 'allowfullscreen']
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
buffed = new StringUtils().decodeHTML(buffed)
|
buffed = new StringUtils().decodeHTML(buffed);
|
||||||
data.title = document.getElementById('post_title').value;
|
data.title = document.getElementById('post_title').value;
|
||||||
data.slug = new StringUtils().cleanString(document.getElementById('post_title').value)
|
data.slug = new StringUtils().cleanString(document.getElementById('post_title').value)
|
||||||
data.plaintext = buffed;
|
data.plaintext = buffed;
|
||||||
|
@ -82,12 +79,12 @@ export default class PostActions
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//data.feature = "";
|
if (typeof data.feature == 'undefined')
|
||||||
|
data.feature = ""
|
||||||
}
|
}
|
||||||
if (id == null)
|
if (id == null)
|
||||||
{
|
{
|
||||||
self.db.postList.put(
|
freshData = {
|
||||||
{
|
|
||||||
id: lastKey + 1,
|
id: lastKey + 1,
|
||||||
post:
|
post:
|
||||||
{
|
{
|
||||||
|
@ -102,80 +99,36 @@ export default class PostActions
|
||||||
page: data.page,
|
page: data.page,
|
||||||
featured: data.featured,
|
featured: data.featured,
|
||||||
published: data.published,
|
published: data.published,
|
||||||
|
deleted: "",
|
||||||
author: "user"
|
author: "user"
|
||||||
}
|
}
|
||||||
}).then(fresh =>
|
}
|
||||||
{
|
|
||||||
newID = fresh;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
self.db.postList.update(Number(id),
|
freshData = data;
|
||||||
{
|
|
||||||
post: data
|
|
||||||
}).then(updated =>
|
|
||||||
{});
|
|
||||||
}
|
}
|
||||||
self.db.postList.toArray(array =>
|
self.dbUtils.modify(id, freshData).then((response) =>
|
||||||
{
|
{
|
||||||
self.sync(array, newID).then(response =>
|
resolve(response)
|
||||||
{
|
}).catch((err) =>
|
||||||
resolve(
|
{
|
||||||
{
|
reject(err)
|
||||||
response
|
|
||||||
})
|
|
||||||
}).catch(err =>
|
|
||||||
{
|
|
||||||
reject(
|
|
||||||
{
|
|
||||||
err
|
|
||||||
});
|
|
||||||
});
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
sync(db, newPostId)
|
deletePost(id, body)
|
||||||
{
|
{
|
||||||
let self = this;
|
let self = this;
|
||||||
return new Promise(function(resolve, reject)
|
|
||||||
{
|
body.deleted = new Date().toString();
|
||||||
self.dataUtils.request('/api/post/sync', DataEvent.POSTS_SYNCED, REQUEST_TYPE_POST, CONTENT_TYPE_JSON, db).then((response) =>
|
return new Promise(function(resolve, reject){
|
||||||
{
|
self.dbUtils.archivePost(id, body).then(response=>{
|
||||||
let bounce = {
|
console.log(response)
|
||||||
message: response,
|
resolve(response)
|
||||||
newPost: newPostId
|
}).catch(err=>{
|
||||||
}
|
console.log(err)
|
||||||
resolve(
|
reject(error)
|
||||||
{
|
|
||||||
bounce
|
|
||||||
})
|
|
||||||
}).catch((err) =>
|
|
||||||
{
|
|
||||||
reject(
|
|
||||||
{
|
|
||||||
err
|
|
||||||
});
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
deletePost()
|
|
||||||
{
|
|
||||||
let self = this;
|
|
||||||
return new Promise(function(resolve, reject)
|
|
||||||
{
|
|
||||||
self.dataUtils.request("/api/post/delete/" + postID, DataEvent.POST_DELETED, REQUEST_TYPE_POST, CONTENT_TYPE_FORM).then((response) =>
|
|
||||||
{
|
|
||||||
resolve(
|
|
||||||
{
|
|
||||||
response
|
|
||||||
})
|
|
||||||
}).catch((err) =>
|
|
||||||
{
|
|
||||||
reject(
|
|
||||||
{
|
|
||||||
err
|
|
||||||
});
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@ import TinyDatePicker from 'tiny-date-picker';
|
||||||
import DateUtils from '../../../../../brain/tools/utilities/DateUtils';
|
import DateUtils from '../../../../../brain/tools/utilities/DateUtils';
|
||||||
import TextEditor from '../../../../../brain/tools/ui/TextEditor';
|
import TextEditor from '../../../../../brain/tools/ui/TextEditor';
|
||||||
import Dexie from 'dexie';
|
import Dexie from 'dexie';
|
||||||
|
import DBUtils , {COUNT, FINAL_KEY} from '../../../../../brain/tools/utilities/DBUtils';
|
||||||
export default class PostEditor
|
export default class PostEditor
|
||||||
{
|
{
|
||||||
//--------------------------
|
//--------------------------
|
||||||
|
@ -29,22 +30,22 @@ export default class PostEditor
|
||||||
this.dataUtils = new DataUtils();
|
this.dataUtils = new DataUtils();
|
||||||
this.dateUtils = new DateUtils();
|
this.dateUtils = new DateUtils();
|
||||||
this.urlPieces = document.URL.split("/");
|
this.urlPieces = document.URL.split("/");
|
||||||
|
this.dbUtils = new DBUtils();
|
||||||
this.post = [];
|
this.post = [];
|
||||||
this.postID = null;
|
this.postID = null;
|
||||||
this.postCount = null;
|
|
||||||
this.postFinalKey = null;
|
if (document.getElementById('post-edit-index').getAttribute('data-index'))
|
||||||
if (document.getElementById('post-edit-index').getAttribute('data-index')) this.postID = document.getElementById('post-edit-index').getAttribute('data-index');
|
|
||||||
var fipamoPosts = new Dexie("fipamo_posts");
|
|
||||||
fipamoPosts.version(1).stores(
|
|
||||||
{
|
{
|
||||||
postList: 'id, post'
|
this.postID = document.getElementById('post-edit-index').getAttribute('data-index');
|
||||||
});
|
this.dbUtils.getPost(this.postID).then(body=>{
|
||||||
fipamoPosts.postList.toArray(array =>
|
self.post = body.post;
|
||||||
{
|
this.start()
|
||||||
self.setListVars(array);
|
}).catch(err=>{
|
||||||
})
|
//console.log(err)
|
||||||
if (this.postID != null) fipamoPosts.postList.get(Number(this.postID)).then(obj => this.setPost(obj.post));
|
})
|
||||||
else this.start();
|
}else{
|
||||||
|
this.start()
|
||||||
|
}
|
||||||
if (document.getElementById('edit-post-text'))
|
if (document.getElementById('edit-post-text'))
|
||||||
{
|
{
|
||||||
this.editor = new TextEditor(document.getElementById('edit-post-text'), document.getElementById('header').offsetHeight + document.getElementById('post-header').offsetHeight + document.getElementById('post-feature').offsetHeight);
|
this.editor = new TextEditor(document.getElementById('edit-post-text'), document.getElementById('header').offsetHeight + document.getElementById('post-header').offsetHeight + document.getElementById('post-feature').offsetHeight);
|
||||||
|
@ -70,16 +71,6 @@ export default class PostEditor
|
||||||
//--------------------------
|
//--------------------------
|
||||||
// methods
|
// methods
|
||||||
//--------------------------
|
//--------------------------
|
||||||
setPost(array)
|
|
||||||
{
|
|
||||||
this.post = array;
|
|
||||||
this.start();
|
|
||||||
}
|
|
||||||
setListVars(array)
|
|
||||||
{
|
|
||||||
this.postCount = array.length;
|
|
||||||
this.postFinalKey = array[this.postCount - 1].id;
|
|
||||||
}
|
|
||||||
start()
|
start()
|
||||||
{
|
{
|
||||||
let self = this;
|
let self = this;
|
||||||
|
@ -128,45 +119,43 @@ export default class PostEditor
|
||||||
}
|
}
|
||||||
handleEditorOptions(e)
|
handleEditorOptions(e)
|
||||||
{
|
{
|
||||||
|
let self = this;
|
||||||
switch (e)
|
switch (e)
|
||||||
{
|
{
|
||||||
case EditorEvent.EDITOR_SAVE:
|
case EditorEvent.EDITOR_SAVE:
|
||||||
new PostActions().update(this.postID, this.post, PostEditor.uploadFiles, this.postFinalKey).then(response =>
|
new PostActions().update(this.postID, this.post, PostEditor.uploadFiles, FINAL_KEY).then(response =>
|
||||||
{
|
{
|
||||||
let freshDB = new Dexie("fipamo_posts");
|
|
||||||
freshDB.version(1).stores(
|
|
||||||
{
|
|
||||||
postList: 'id, post'
|
|
||||||
});
|
|
||||||
setTimeout(f =>
|
setTimeout(f =>
|
||||||
{
|
{
|
||||||
freshDB.postList.get(Number(response.response.bounce.newPost)).then(obj =>
|
self.dbUtils.getPost(Number(response.response.newPost)).then(r=>{
|
||||||
{
|
window.location = "/@/dashboard/posts/edit/" + r.post.slug;
|
||||||
window.location = "/@/dashboard/posts/edit/" + obj.post.slug;
|
})
|
||||||
});
|
|
||||||
}, 200);
|
}, 100);
|
||||||
}).catch(err =>
|
}).catch(err =>
|
||||||
{
|
{
|
||||||
console.log("ERROR", err)
|
//console.log("ERROR", err)
|
||||||
})
|
})
|
||||||
break
|
break
|
||||||
case EditorEvent.EDITOR_UPDATE:
|
case EditorEvent.EDITOR_UPDATE:
|
||||||
new PostActions().update(this.postID, this.post, PostEditor.uploadFiles, this.postFinalKey).then(response =>
|
new PostActions().update(this.postID, this.post, PostEditor.uploadFiles, FINAL_KEY).then(response =>
|
||||||
{
|
{
|
||||||
//console.log(response.response.bounce.newPost);
|
|
||||||
this.editor.notify(DataEvent.POST_UPDATED, this.postID);
|
this.editor.notify(DataEvent.POST_UPDATED, this.postID);
|
||||||
}).catch(err =>
|
}).catch(err =>
|
||||||
{
|
{
|
||||||
console.log("ERROR", err)
|
//console.log("ERRORZ", err)
|
||||||
})
|
})
|
||||||
break;
|
break;
|
||||||
case EditorEvent.EDITOR_DELETE:
|
case EditorEvent.EDITOR_DELETE:
|
||||||
if (confirm('Aye! You know you\'re deleting this post, right?'))
|
if (confirm('Aye! You know you\'re deleting this post, right?'))
|
||||||
{
|
{
|
||||||
new PostActions().deletePost().then((response) =>
|
new PostActions().deletePost(this.postID, this.post).then((response) =>
|
||||||
{
|
{
|
||||||
let note = JSON.parse(response['response']['request'].response);
|
setTimeout(f =>
|
||||||
window.location = "/@/dashboard/posts/";
|
{
|
||||||
|
window.location = "/@/dashboard/posts/"
|
||||||
|
|
||||||
|
}, 100);
|
||||||
}).catch((err) =>
|
}).catch((err) =>
|
||||||
{
|
{
|
||||||
console.log(err)
|
console.log(err)
|
||||||
|
@ -253,7 +242,7 @@ export default class PostEditor
|
||||||
if (r.message == DataEvent.POST_IMAGE_ADDED) self.editor.notify(EditorEvent.EDITOR_UPLOAD_POST_IMAGE, r.url);
|
if (r.message == DataEvent.POST_IMAGE_ADDED) self.editor.notify(EditorEvent.EDITOR_UPLOAD_POST_IMAGE, r.url);
|
||||||
}).catch((err) =>
|
}).catch((err) =>
|
||||||
{
|
{
|
||||||
console.log(err)
|
//console.log(err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue