Я хочу добавить новую пакетную операцию там, где это происходит только в корзине, постоянное удаление должно выполняться без циклической зависимости. Но сначала давайте посмотрим на мои addBatchOperations
:
// In lib/modules/likes/index.js
addBatchOperations : [
{
name : 'delete',
label: 'Permanent Delete',
unlessFilter: {
trash: false
}
}
],
Теперь я создаю маршруты с супер шаблоном в нем. В конструкции:
var superRoutes = self.createRoutes;
self.createRoutes = function () {
superRoutes();
self.route('post', 'delete', self.routes.delete);
};
Затем я создаю новый BatchSimpleRoute:
self.routes.delete = function (req, res) {
return self.batchSimpleRoute(req,'delete' , function (req, piece, data, callback) {
console.log("req object?", req.body);
console.log("Any Piece ?" , piece);
return self.apos.docs.deleteFromTrash(req,callback);
});
};
Затем в public/js/manager-modal.js
переопределите, я сделал это:
// in lib/modules/likes/public/js/manager-modal.js
apos.define('apostrophe-pieces-manager-modal', {
construct: function (self, options) {
// calling from batchOperations {name : 'delete'} to self.batchDelete
self.batchDelete = function () {
return self.batchSimple(
'delete',
"Are you sure you want to delete " + self.choices.length + " items?", {}
);
};
}
});
Выше кода показывает ошибку, которая запускает cyclic dependency detected
error. Поэтому я провел онлайн-исследование и сказал, что его нужно проводить в одном документе вместо целого. Итак, я погрузился в апострофный код node_modules с self.routes.trash
и нашел интересный код. Вот оно, я пытаюсь это реализовать, но оно не работает.
self.routes.delete = function (req, res) {
return self.batchSimpleRoute(req,'delete' , function (req, piece, data, callback) {
console.log("req object?", req.body);
console.log("Any Piece ?" , piece);
var ids;
if (req.body.job) {
// New way
return self.apos.modules['apostrophe-jobs'].run(req, function (req, id, callback) {
return one(id, callback);
});
}
// bc and single id case
if (Array.isArray(req.body.ids)) {
ids = self.apos.launder.ids(req.body.ids);
} else {
ids = [self.apos.launder.id(req.body._id)];
}
function one(id , callback){
return async.series({
delete : function(callback){
return self.apos.docs.deleteFromTrash(req, id, callback);
}
}, function(err){
return callback(err);
})
}
});
};