diff --git a/public/javascripts/application.js b/public/javascripts/application.js index a61b0c5cb..3cbdb5eb4 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -1049,24 +1049,49 @@ function inlineAutoComplete(element) { }; const tribute = new Tribute({ - trigger: '#', - values: function (text, cb) { - if (event.target.type === 'text' && $(element).attr('autocomplete') != 'off') { - $(element).attr('autocomplete', 'off'); + collection: [ + { + // issues + trigger: '#', + values: function (text, cb) { + if (event.target.type === 'text' && $(element).attr('autocomplete') != 'off') { + $(element).attr('autocomplete', 'off'); + } + remoteSearch(issuesUrl + text, function (issues) { + return cb(issues); + }); + }, + lookup: 'label', + fillAttr: 'label', + requireLeadingSpace: true, + selectTemplate: function (issue) { + return '#' + issue.original.id; + }, + noMatchTemplate: function () { + return ''; + } + }, + // macros + { + trigger: '{{', + values: [ + {name: 'collapse', value: '{{collapse\nThis is a block of text that is collapsed by default.\n}}'}, + {name: 'child_pages', value: '{{child_pages}}'}, + {name: 'include', value: '{{include(WikiPageName)}}'}, + {name: 'thumbnail', value: '{{thumbnail(image.png, size=300, title=Thumbnail)}}'}, + {name: 'issue', value: '{{issue(123, subject=true, project=true)}}'} + ], + lookup: 'name', + fillAttr: 'value', + requireLeadingSpace: true, + selectTemplate: function(item) { + return item.original.value; + }, + noMatchTemplate: function () { + return ''; + } } - remoteSearch(issuesUrl + text, function (issues) { - return cb(issues); - }); - }, - lookup: 'label', - fillAttr: 'label', - requireLeadingSpace: true, - selectTemplate: function (issue) { - return '#' + issue.original.id; - }, - noMatchTemplate: function () { - return ''; - } + ] }); tribute.attach(element);