From d73b129c49f42bdd844c5ed0a9408370881a7694 Mon Sep 17 00:00:00 2001 From: justinpw-sm Date: Thu, 9 Jan 2020 12:29:52 -0700 Subject: [PATCH 1/2] Got the app working as intended - defect State is now updated with a card move between columns --- src/apps/kanban/ColumnSettingsField.js | 29 +++++++++++++++++++++++--- src/apps/kanban/KanbanApp.js | 5 ++++- src/apps/kanban/KanbanApp.less | 3 ++- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/apps/kanban/ColumnSettingsField.js b/src/apps/kanban/ColumnSettingsField.js index ea6cfcb44..9594d2150 100644 --- a/src/apps/kanban/ColumnSettingsField.js +++ b/src/apps/kanban/ColumnSettingsField.js @@ -54,7 +54,7 @@ this.callParent(arguments); this._store = Ext.create('Ext.data.Store', { - fields: ['column', 'shown', 'wip', 'scheduleStateMapping', 'cardFields'], + fields: ['column', 'shown', 'wip', 'scheduleStateMapping', 'defectStateMapping', 'cardFields'], data: [] }); @@ -134,6 +134,26 @@ noMapping[combo.displayField] = '--No Mapping--'; noMapping[combo.valueField] = ''; + combo.store.insert(0, [noMapping]); + } + } + } + }, + { + text: 'Defect State Mapping', + dataIndex: 'defectStateMapping', + emptyCellText: '--No Mapping--', + flex: 2, + editor: { + xtype: 'rallyfieldvaluecombobox', + model: Ext.identityFn('Defect'), + field: 'State', + listeners: { + ready: function (combo) { + var noMapping = {}; + noMapping[combo.displayField] = '--No Mapping--'; + noMapping[combo.valueField] = ''; + combo.store.insert(0, [noMapping]); } } @@ -233,7 +253,8 @@ if (record.get('shown')) { columns[record.get('column')] = { wip: record.get('wip'), - scheduleStateMapping: record.get('scheduleStateMapping') + scheduleStateMapping: record.get('scheduleStateMapping'), + defectStateMapping: record.get('defectStateMapping') }; if (this.shouldShowColumnLevelFieldPicker) { var cardFields = this._getCardFields(record.get('cardFields')); @@ -284,6 +305,7 @@ shown: false, wip: '', scheduleStateMapping: '', + defectStateMapping: '', cardFields: this.defaultCardFields }; @@ -291,7 +313,8 @@ Ext.apply(column, { shown: true, wip: pref.wip, - scheduleStateMapping: pref.scheduleStateMapping + scheduleStateMapping: pref.scheduleStateMapping, + defectStateMapping: pref.defectStateMapping }); if (pref.cardFields) { diff --git a/src/apps/kanban/KanbanApp.js b/src/apps/kanban/KanbanApp.js index dd9fece9d..0ae6c84b3 100644 --- a/src/apps/kanban/KanbanApp.js +++ b/src/apps/kanban/KanbanApp.js @@ -41,7 +41,7 @@ Completed: {wip: ''}, Accepted: {wip: ''} }), - cardFields: 'FormattedID,Name,Owner,Discussion,Tasks,Defects', //remove with COLUMN_LEVEL_FIELD_PICKER_ON_KANBAN_SETTINGS + cardFields: 'FormattedID,Name,Owner,Discussion,Tasks,Defects,Iteration,State', //remove with COLUMN_LEVEL_FIELD_PICKER_ON_KANBAN_SETTINGS hideReleasedCards: false, showCardAge: true, cardAgeThreshold: 3, @@ -416,6 +416,9 @@ if (setting && setting.scheduleStateMapping) { card.getRecord().set('ScheduleState', setting.scheduleStateMapping); } + if (setting && setting.defectStateMapping) { + card.getRecord().set('State', setting.defectStateMapping); + } } }, diff --git a/src/apps/kanban/KanbanApp.less b/src/apps/kanban/KanbanApp.less index cc655c9ee..3b14e2f10 100644 --- a/src/apps/kanban/KanbanApp.less +++ b/src/apps/kanban/KanbanApp.less @@ -30,7 +30,7 @@ } .kanban { - overflow-y: hidden; + overflow-y: auto; } .print-page { @@ -42,6 +42,7 @@ & > table { position: absolute; // So that there isn't a page-break between the column headers and the actual columns width: calc(~"100% - 24px"); // correct alignment + overflow-y: auto; // Trying to get the settings to allow scrolling when something other than ScheduleState is used for Columns } } } From 5cf54fee516190689344c03c1779b9a6ffdd0bc5 Mon Sep 17 00:00:00 2001 From: justinpw-sm Date: Fri, 10 Jan 2020 08:08:30 -0700 Subject: [PATCH 2/2] Minor cleanup: revert css setting changes that were unnecessary, comment cleanup, add .gitignore file --- src/apps/kanban/.gitignore | 2 ++ src/apps/kanban/ColumnSettingsField.js | 2 +- src/apps/kanban/KanbanApp.js | 2 +- src/apps/kanban/KanbanApp.less | 3 +-- 4 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 src/apps/kanban/.gitignore diff --git a/src/apps/kanban/.gitignore b/src/apps/kanban/.gitignore new file mode 100644 index 000000000..efbb3dd83 --- /dev/null +++ b/src/apps/kanban/.gitignore @@ -0,0 +1,2 @@ +*.sublime* +*/*.sublime* \ No newline at end of file diff --git a/src/apps/kanban/ColumnSettingsField.js b/src/apps/kanban/ColumnSettingsField.js index 9594d2150..1ffb31128 100644 --- a/src/apps/kanban/ColumnSettingsField.js +++ b/src/apps/kanban/ColumnSettingsField.js @@ -2,7 +2,7 @@ var Ext = window.Ext4 || window.Ext; /** - * Allows configuration of wip and schedule state mapping for kanban columns + * Allows configuration of wip, schedule state, and defect state mapping for kanban columns * * @example * Ext.create('Ext.Container', { diff --git a/src/apps/kanban/KanbanApp.js b/src/apps/kanban/KanbanApp.js index 0ae6c84b3..64e16febd 100644 --- a/src/apps/kanban/KanbanApp.js +++ b/src/apps/kanban/KanbanApp.js @@ -41,7 +41,7 @@ Completed: {wip: ''}, Accepted: {wip: ''} }), - cardFields: 'FormattedID,Name,Owner,Discussion,Tasks,Defects,Iteration,State', //remove with COLUMN_LEVEL_FIELD_PICKER_ON_KANBAN_SETTINGS + cardFields: 'FormattedID,Name,Owner,Discussion,Tasks,Defects', //remove with COLUMN_LEVEL_FIELD_PICKER_ON_KANBAN_SETTINGS hideReleasedCards: false, showCardAge: true, cardAgeThreshold: 3, diff --git a/src/apps/kanban/KanbanApp.less b/src/apps/kanban/KanbanApp.less index 3b14e2f10..cc655c9ee 100644 --- a/src/apps/kanban/KanbanApp.less +++ b/src/apps/kanban/KanbanApp.less @@ -30,7 +30,7 @@ } .kanban { - overflow-y: auto; + overflow-y: hidden; } .print-page { @@ -42,7 +42,6 @@ & > table { position: absolute; // So that there isn't a page-break between the column headers and the actual columns width: calc(~"100% - 24px"); // correct alignment - overflow-y: auto; // Trying to get the settings to allow scrolling when something other than ScheduleState is used for Columns } } }