|
@@ -250,36 +250,43 @@ BlazeComponent.extendComponent({
|
|
|
return [
|
|
|
{
|
|
|
submit(evt) {
|
|
|
- evt.preventDefault();
|
|
|
- const lastList = this.currentBoard.getLastList();
|
|
|
- const titleInput = this.find('.list-name-input');
|
|
|
- const title = titleInput.value.trim();
|
|
|
- let sortIndex = 0
|
|
|
- if (lastList) {
|
|
|
- const positionInput = this.find('.list-position-input');
|
|
|
- const position = positionInput.value.trim();
|
|
|
- const ret = ReactiveCache.getList({ boardId: Utils.getCurrentBoardId(), _id: position, archived: false })
|
|
|
- sortIndex = parseInt(JSON.stringify(ret['sort']))
|
|
|
- sortIndex = sortIndex+1
|
|
|
- } else {
|
|
|
- sortIndex = Utils.calculateIndexData(lastList, null).base;
|
|
|
- }
|
|
|
+ evt.preventDefault();
|
|
|
+
|
|
|
+const titleInput = this.find('.list-name-input');
|
|
|
+const title = titleInput?.value.trim();
|
|
|
+
|
|
|
+if (!title) return;
|
|
|
+
|
|
|
+let sortIndex = 0;
|
|
|
+const lastList = this.currentBoard.getLastList();
|
|
|
+const boardId = Utils.getCurrentBoardId();
|
|
|
+
|
|
|
+const positionInput = this.find('.list-position-input');
|
|
|
+
|
|
|
+if (positionInput) {
|
|
|
+ const positionId = positionInput.value.trim();
|
|
|
+ const selectedList = ReactiveCache.getList({ boardId, _id: positionId, archived: false });
|
|
|
+
|
|
|
+ if (selectedList) {
|
|
|
+ sortIndex = selectedList.sort + 1;
|
|
|
+ } else {
|
|
|
+ sortIndex = Utils.calculateIndexData(lastList, null).base;
|
|
|
+ }
|
|
|
+} else {
|
|
|
+ sortIndex = Utils.calculateIndexData(lastList, null).base;
|
|
|
+}
|
|
|
+
|
|
|
+Lists.insert({
|
|
|
+ title,
|
|
|
+ boardId: Session.get('currentBoard'),
|
|
|
+ sort: sortIndex,
|
|
|
+ type: this.isListTemplatesSwimlane ? 'template-list' : 'list',
|
|
|
+ swimlaneId: this.currentBoard.isTemplatesBoard() ? this.currentSwimlane._id : '',
|
|
|
+});
|
|
|
+
|
|
|
+titleInput.value = '';
|
|
|
+titleInput.focus();
|
|
|
|
|
|
- if (title) {
|
|
|
- Lists.insert({
|
|
|
- title,
|
|
|
- boardId: Session.get('currentBoard'),
|
|
|
- sort: sortIndex,
|
|
|
- type: this.isListTemplatesSwimlane ? 'template-list' : 'list',
|
|
|
- swimlaneId: this.currentBoard.isTemplatesBoard()
|
|
|
- ? this.currentSwimlane._id
|
|
|
- : '',
|
|
|
- });
|
|
|
-
|
|
|
- titleInput.value = '';
|
|
|
- titleInput.focus();
|
|
|
- }
|
|
|
- },
|
|
|
'click .js-list-template': Popup.open('searchElement'),
|
|
|
},
|
|
|
];
|