diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index adf8304a6..96b93cb89 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -7,6 +7,7 @@ let title = '' let sections = [] let tasks = [] let currentSection = '' +const tags = ['active', 'done', 'crit', 'milestone'] export const clear = function () { sections = [] @@ -158,7 +159,7 @@ const compileData = function (prevTask, dataStr) { const task = {} // Get tags like active, done, crit and milestone - getTaskTags(data, task) + getTaskTags(data, task, tags) for (let i = 0; i < data.length; i++) { data[i] = data[i].trim() @@ -199,7 +200,7 @@ const parseData = function (prevTaskId, dataStr) { const task = {} // Get tags like active, done, crit and milestone - getTaskTags(data, task) + getTaskTags(data, task, tags) for (let i = 0; i < data.length; i++) { data[i] = data[i].trim() @@ -330,29 +331,18 @@ export default { addTaskOrg } -function getTaskTags (data, task) { +function getTaskTags (data, task, tags) { let matchFound = true while (matchFound) { matchFound = false - if (data[0].match(/^\s*active\s*$/)) { - task.active = true - data.shift(1) - matchFound = true - } - if (data[0].match(/^\s*done\s*$/)) { - task.done = true - data.shift(1) - matchFound = true - } - if (data[0].match(/^\s*crit\s*$/)) { - task.crit = true - data.shift(1) - matchFound = true - } - if (data[0].match(/^\s*milestone\s*$/)) { - task.milestone = true - data.shift(1) - matchFound = true - } + tags.forEach(function (t) { + const pattern = '^\\s*' + t + '\\s*$' + const regex = new RegExp(pattern) + if (data[0].match(regex)) { + task[t] = true + data.shift(1) + matchFound = true + } + }) } }