Skip to content

Commit

Permalink
update abe version with duplicate
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolaslabbe committed Aug 11, 2016
1 parent 2c6610b commit 857a64e
Show file tree
Hide file tree
Showing 7 changed files with 372 additions and 268 deletions.
4 changes: 4 additions & 0 deletions dist/cli/helpers/abe-create.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ var _cli = require('../../cli');

var create = function create(template, path, name, req) {
var forceJson = arguments.length <= 4 || arguments[4] === undefined ? {} : arguments[4];
var duplicate = arguments.length <= 5 || arguments[5] === undefined ? false : arguments[5];

var p = new Promise(function (resolve, reject) {
_cli.Hooks.instance.trigger('beforeCreate', template, path, name, req, forceJson);
Expand All @@ -24,6 +25,9 @@ var create = function create(template, path, name, req) {
var json = forceJson ? forceJson : {};
var tpl = templatePath;
var text = (0, _cli.getTemplate)(tpl);
if (duplicate) {
json = (0, _cli.removeDuplicateAttr)(text, json);
}
text = _cli.Util.removeDataList(text);
var resHook = _cli.Hooks.instance.trigger('beforeFirstSave', filePath, req.query, json, text);
filePath = resHook.filePath;
Expand Down
14 changes: 7 additions & 7 deletions dist/cli/helpers/abe-duplicate.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ Object.defineProperty(exports, "__esModule", {
var _cli = require('../../cli');

var duplicate = function duplicate(oldFilePath, template, path, name, req) {
var deleteFiles = arguments.length <= 5 || arguments[5] === undefined ? false : arguments[5];
var isUpdate = arguments.length <= 5 || arguments[5] === undefined ? false : arguments[5];

var p = new Promise(function (resolve, reject) {
_cli.Hooks.instance.trigger('beforeDuplicate', oldFilePath, template, path, name, req, deleteFiles);
_cli.Hooks.instance.trigger('beforeDuplicate', oldFilePath, template, path, name, req, isUpdate);

if (typeof oldFilePath !== 'undefined' && oldFilePath !== null) {
var url = _cli.fileUtils.concatPath(_cli.config.root, _cli.config.draft.url, oldFilePath);
Expand All @@ -27,7 +27,7 @@ var duplicate = function duplicate(oldFilePath, template, path, name, req) {
if (latest.length) {
url = latest[0].path;
}
} else if (deleteFiles) {
} else if (isUpdate) {
files = _cli.FileParser.getFiles(folderFilePath, true, 2);
revisions = _cli.fileAttr.getFilesRevision(files, url);
}
Expand All @@ -38,17 +38,17 @@ var duplicate = function duplicate(oldFilePath, template, path, name, req) {
delete json.abe_meta;
}

if (deleteFiles) {
_cli.Hooks.instance.trigger('beforeUpdate', json, oldFilePath, template, path, name, req, deleteFiles);
if (isUpdate) {
_cli.Hooks.instance.trigger('beforeUpdate', json, oldFilePath, template, path, name, req, isUpdate);
Array.prototype.forEach.call(revisions, function (revision) {
if (typeof revision.path !== 'undefined' && revision.path !== null) {
_cli.FileParser.deleteFile(revision.path);
}
});
}
_cli.Hooks.instance.trigger('afterDuplicate', json, oldFilePath, template, path, name, req, deleteFiles);
_cli.Hooks.instance.trigger('afterDuplicate', json, oldFilePath, template, path, name, req, isUpdate);

var pCreate = (0, _cli.abeCreate)(template, path, name, req, json);
var pCreate = (0, _cli.abeCreate)(template, path, name, req, json, isUpdate ? false : true);
pCreate.then(function (resSave) {
resolve(resSave);
}, function () {
Expand Down
54 changes: 54 additions & 0 deletions dist/cli/helpers/abe-remove-duplicate-attr.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
'use strict';

Object.defineProperty(exports, "__esModule", {
value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };

exports.default = removeDuplicateAttr;

var _cli = require('../../cli');

function recurseDeleteKey(currentLevel, arrayKeyAttr) {
var currentArray = arrayKeyAttr.slice(0);

if (arrayKeyAttr.length === 1) {
delete currentLevel[arrayKeyAttr[0]];
}

Array.prototype.forEach.call(currentArray, function (key) {
if (typeof currentLevel[key] !== 'undefined' && currentLevel[key] !== null) {
currentLevel = currentLevel[key];
currentArray.shift();
recurseDeleteKey(currentLevel, currentArray);
if ((typeof currentLevel === 'undefined' ? 'undefined' : _typeof(currentLevel)) === 'object' && Object.prototype.toString.call(currentLevel) === '[object Array]') {
Array.prototype.forEach.call(currentLevel, function (item) {
recurseDeleteKey(item, currentArray);
});
} else {
recurseDeleteKey(currentLevel, currentArray);
}
}
});
}

function removeDuplicateAttr(text, json) {
var regAbe = /{{abe[\S\s].*?duplicate=['|"]([\S\s].*?['|"| ]}})/g;
var matches = text.match(regAbe);
var requiredValue = 0;
var complete = 0;
if (typeof matches !== 'undefined' && matches !== null) {

Array.prototype.forEach.call(matches, function (match) {
var keyAttr = (0, _cli.getAttr)(match, 'key');

if (typeof match !== 'undefined' && match !== null) {
var arrayKeyAttr = keyAttr.split('.');
recurseDeleteKey(json, arrayKeyAttr);
}
});
}

return json;
}
41 changes: 41 additions & 0 deletions dist/cli/helpers/remove-abe-deep-val.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
'use strict';

Object.defineProperty(exports, "__esModule", {
value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };

var deep_value = function deep_value(obj, path) {

if (path.indexOf('.') === -1) {
return typeof obj[path] !== 'undefined' && obj[path] !== null ? obj[path] : null;
}

var pathSplit = path.split('.');
var res = JSON.parse(JSON.stringify(obj));

while (pathSplit.length > 0) {

if (typeof res[pathSplit[0]] !== 'undefined' && res[pathSplit[0]] !== null) {
if (_typeof(res[pathSplit[0]]) === 'object' && Object.prototype.toString.call(res[pathSplit[0]]) === '[object Array]') {
var resArray = [];

Array.prototype.forEach.call(res[pathSplit[0]], function (item) {
resArray.push(deep_value(item, pathSplit.join('.').replace(pathSplit[0] + '.', '')));
});
res = resArray;
pathSplit.shift();
} else {
res = res[pathSplit[0]];
}
} else {
return null;
}
pathSplit.shift();
}

return res;
};

exports.default = deep_value;
7 changes: 6 additions & 1 deletion dist/cli/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.compileAbe = exports.dateUnslug = exports.dateSlug = exports.saveJson = exports.checkRequired = exports.Locales = exports.Plugins = exports.Hooks = exports.save = exports.Page = exports.log = exports.getTemplate = exports.cli = exports.config = exports.escapeTextToRegex = exports.getEnclosingTags = exports.getAttr = exports.ifCond = exports.ifIn = exports.printConfig = exports.cleanTab = exports.folders = exports.attrAbe = exports.abeEngine = exports.listPage = exports.moduloIf = exports.className = exports.printJson = exports.notEmpty = exports.printBlock = exports.translate = exports.abeProcess = exports.Sql = exports.Create = exports.testObj = exports.math = exports.abeImport = exports.printInput = exports.fileUtils = exports.folderUtils = exports.FileParser = exports.cleanSlug = exports.slugify = exports.abeDuplicate = exports.deep_value = exports.abeCreate = exports.Util = exports.Handlebars = exports.fse = exports.moment = exports.fileAttr = undefined;
exports.compileAbe = exports.dateUnslug = exports.dateSlug = exports.saveJson = exports.checkRequired = exports.Locales = exports.Plugins = exports.Hooks = exports.save = exports.Page = exports.removeDuplicateAttr = exports.log = exports.getTemplate = exports.cli = exports.config = exports.escapeTextToRegex = exports.getEnclosingTags = exports.getAttr = exports.ifCond = exports.ifIn = exports.printConfig = exports.cleanTab = exports.folders = exports.attrAbe = exports.abeEngine = exports.listPage = exports.moduloIf = exports.className = exports.printJson = exports.notEmpty = exports.printBlock = exports.translate = exports.abeProcess = exports.Sql = exports.Create = exports.testObj = exports.math = exports.abeImport = exports.printInput = exports.fileUtils = exports.folderUtils = exports.FileParser = exports.cleanSlug = exports.slugify = exports.abeDuplicate = exports.deep_value = exports.abeCreate = exports.Util = exports.Handlebars = exports.fse = exports.moment = exports.fileAttr = undefined;

var _fileAttr = require('./helpers/file-attr');

Expand Down Expand Up @@ -69,6 +69,10 @@ var _abeLogs = require('./helpers/abe-logs');

var _abeLogs2 = _interopRequireDefault(_abeLogs);

var _abeRemoveDuplicateAttr = require('./helpers/abe-remove-duplicate-attr');

var _abeRemoveDuplicateAttr2 = _interopRequireDefault(_abeRemoveDuplicateAttr);

var _abeCreate = require('./helpers/abe-create');

var _abeCreate2 = _interopRequireDefault(_abeCreate);
Expand Down Expand Up @@ -150,6 +154,7 @@ exports.config = _abeConfig2.default;
exports.cli = _cliUtils2.default;
exports.getTemplate = _abeTemplate.getTemplate;
exports.log = _abeLogs2.default;
exports.removeDuplicateAttr = _abeRemoveDuplicateAttr2.default;
exports.Page = _Page2.default;
exports.save = _Save.save;
exports.Hooks = _abeHooks2.default;
Expand Down
Loading

0 comments on commit 857a64e

Please sign in to comment.