diff --git a/.imdone/sort.json b/.imdone/sort.json index dc093852..44df8d48 100644 --- a/.imdone/sort.json +++ b/.imdone/sort.json @@ -1 +1 @@ -{"BACKLOG":[null,"7","13","6"],"TODO":["28","29","27","22","20","23","19","14","2","12","9","16","15","3","10","1","7","5","0","18","13"],"DOING":["28","26","22","21","20","23","27"],"DONE":["21","17"],"Doing":["6e0b990633752e6b32e135ba687b0186d3462d1c"],"Todo":["20","23"],"never":["20"],"Never":["20"]} \ No newline at end of file +{"BACKLOG":[null,"7","13","6"],"TODO":["17f49b83456211740656484f402f526959b85d04","bb876a3eec5c634e9792060646f1a13c773f96d5","af1302ed31005e0b2fdf550cc9542f99879f3796","1fde288f5d877b3558829570f17ccb8d34422499","28","29","27","22","20","23","19","14","2","12","9","16","15","3","10","1","7","5","0","18","13"],"DOING":["28","17f49b83456211740656484f402f526959b85d04","26","22","21","20","23","27","ad74537729bd8997494a46b143fc20d41248bb4a","435f35a4d93c52c2256e8ab3d48b86ce397a3d9d","4180db6aab53d03c27b7ea4f32ef8a8393d3505b"],"DONE":["21","17"],"Doing":["6e0b990633752e6b32e135ba687b0186d3462d1c"],"Todo":["20","23"],"never":["20"],"Never":["20"]} \ No newline at end of file diff --git a/.imdone/templates/feature.yml b/.imdone/templates/feature.yml new file mode 100644 index 00000000..a4cbd3d6 --- /dev/null +++ b/.imdone/templates/feature.yml @@ -0,0 +1,12 @@ +name: feature +directory: features +type: file +workflow: # Array of lists like config.json +template: | + #BACKLOG: Feature name + ## Business Benefit + ## Acceptance Criteria + - [ ] criteria description + + Stories + ---- diff --git a/.imdoneignore b/.imdoneignore index b09d96aa..aa901363 100644 --- a/.imdoneignore +++ b/.imdoneignore @@ -3,6 +3,8 @@ !lib/**/* !test !test/**/* +!docs +!docs/**/* !DoD.md !README.md test/repos diff --git a/README.md b/README.md index 633d8b65..82ecfa52 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,7 @@ Task descriptions are captured from the lines that follow a task. In code files } ``` diff --git a/DoD.md b/docs/DoD.md similarity index 100% rename from DoD.md rename to docs/DoD.md diff --git a/docs/features/templates.md b/docs/features/templates.md new file mode 100644 index 00000000..eb334d71 --- /dev/null +++ b/docs/features/templates.md @@ -0,0 +1,14 @@ +#DOING: As a user I would like to create new files in my project from templates I define, so I can save time creating files and content +story + - [ ] Use dropdown on alt+p and alt+j to show templates +#TODO: As a user I would like to create a TODO in a readme.md file, and have a link created to the issue created on imdone.io + - [ ] Create link outside of comment +#TODO: As a user I would like to add content to my TODO descriptions from markdown templates stored in my project +- [ ] Append templates to tasks with `t:` metadata in them. (e.g. `t:story`) + - [ ] if TODO appears in a single line comment, append template with single line comment prefix and the same indentation as the TODO comment + - [ ] If TODO appears in a multiline comment, just append template at the same indentation as the TODO comment + - [ ] Remove `t:story` after the template has been appended to the description +- [ ] templates.md will contain templates in the format... + ``` + # + Any markdown for your template + ``` diff --git a/lib/file.js b/lib/file.js index ad585acd..5ae5da42 100644 --- a/lib/file.js +++ b/lib/file.js @@ -503,6 +503,8 @@ File.prototype.extractTasksInCodeFile = function(config) { }; File.prototype.extractTasksInNonCodeFile = function(config) { + // TODO: As a user I would like imdone to recognize code style tasks in markdown file comments + // - If the file type has a block attribute, then search for code style tasks in comments this.extractHashStyleTasks(config, 0, this.getContent()); this.extractLinkStyleTasks(config, 0, this.getContent()); }; diff --git a/lib/mixins/repo-fs-store.js b/lib/mixins/repo-fs-store.js index f87f5b32..0ccd364f 100644 --- a/lib/mixins/repo-fs-store.js +++ b/lib/mixins/repo-fs-store.js @@ -364,5 +364,10 @@ function mixin(repo, fs) { } else cb("Unable to delete:" + path); }; + repo.getTemplates = function(qry, cb) { + // DOING: Implement getTemplates + // - [ ] Test + }; + return repo; } diff --git a/lib/repository.js b/lib/repository.js index fc6ceb20..49eff2aa 100644 --- a/lib/repository.js +++ b/lib/repository.js @@ -1124,4 +1124,22 @@ Repository.prototype.usingImdoneioForPriority = function() { return File.usingImdoneioForPriority(this.config); }; +Repository.prototype.getTemplates = function(cb) { + inMixinsNoop(cb); +}; + +Repository.prototype.saveWorkflow = function(name, cb) { + if (!this.config.workflows) this.config.workflows = {}; + this.config.workflows[name] = _.cloneDeep(this.getLists()); + // DOING: saveConfig +}; + +Repository.prototype.deleteWorkflow = function(name, cb) { + // TODO: implement deleteWorkflow +}; + +Repository.prototype.applyWorkflow = function(name) { + // TODO: implement applyWorkflow +}; + module.exports = Repository;