summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/lib/exportHTML.js2
-rw-r--r--models/cards.js55
2 files changed, 51 insertions, 6 deletions
diff --git a/client/lib/exportHTML.js b/client/lib/exportHTML.js
index b3c8d011..0cca4b04 100644
--- a/client/lib/exportHTML.js
+++ b/client/lib/exportHTML.js
@@ -2,7 +2,7 @@ const JSZip = require('jszip');
window.ExportHtml = Popup => {
const saveAs = function(blob, filename) {
- let dl = document.createElement('a');
+ const dl = document.createElement('a');
dl.href = window.URL.createObjectURL(blob);
dl.onclick = event => document.body.removeChild(event.target);
dl.style.display = 'none';
diff --git a/models/cards.js b/models/cards.js
index 939d1be3..b6cc27b7 100644
--- a/models/cards.js
+++ b/models/cards.js
@@ -1276,9 +1276,9 @@ Cards.mutations({
if (lastCardDom) sortIndex = Utils.calculateIndex(lastCardDom, null).base;
return this.moveOptionalArgs({
- boardId: boardId,
- swimlaneId: swimlaneId,
- listId: listId,
+ boardId,
+ swimlaneId,
+ listId,
sort: sortIndex,
});
},
@@ -1293,8 +1293,7 @@ Cards.mutations({
swimlaneId = board.getDefaultSwimline()._id;
}
listId = listId || this.listId;
- if (sort === undefined || sort === null)
- sort = this.sort;
+ if (sort === undefined || sort === null) sort = this.sort;
return this.move(boardId, swimlaneId, listId, sort);
},
@@ -2683,6 +2682,52 @@ if (Meteor.isServer) {
});
},
);
+
+ /**
+ * @operation get_cards_by_custom_field
+ * @summary Get all Cards that matchs a value of a specific custom field
+ *
+ * @param {string} boardId the board ID
+ * @param {string} customFieldId the list ID
+ * @param {string} customFieldValue the value to look for
+ * @return_type [{_id: string,
+ * title: string,
+ * description: string,
+ * listId: string
+ * swinlaneId: string}]
+ */
+ JsonRoutes.add(
+ 'GET',
+ '/api/boards/:boardId/cardsByCustomField/:customFieldId/:customFieldValue',
+ function(req, res) {
+ const paramBoardId = req.params.boardId;
+ const paramCustomFieldId = req.params.customFieldId;
+ const paramCustomFieldValue = req.params.customFieldValue;
+
+ Authentication.checkBoardAccess(req.userId, paramBoardId);
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: Cards.find({
+ boardId: paramBoardId,
+ customFields: {
+ $elemMatch: {
+ _id: paramCustomFieldId,
+ value: paramCustomFieldValue,
+ },
+ },
+ archived: false,
+ }).map(function(doc) {
+ return {
+ _id: doc._id,
+ title: doc.title,
+ description: doc.description,
+ listId: doc.listId,
+ swinlaneId: doc.swinlaneId,
+ };
+ }),
+ });
+ },
+ );
}
export default Cards;