diff --git a/public/javascripts/application.js b/public/javascripts/application.js
index 7076aabcb..db7fab7ce 100644
--- a/public/javascripts/application.js
+++ b/public/javascripts/application.js
@@ -1040,9 +1040,6 @@ function inlineAutoComplete(element) {
// do not attach if Tribute is already initialized
if (element.dataset.tribute === 'true') {return;}
- const issuesUrl = element.dataset.issuesUrl;
- const usersUrl = element.dataset.usersUrl;
-
const remoteSearch = function(url, cb) {
const xhr = new XMLHttpRequest();
xhr.onreadystatechange = function ()
@@ -1060,31 +1057,57 @@ function inlineAutoComplete(element) {
xhr.send();
};
- const tribute = new Tribute({
- trigger: '#',
- values: function (text, cb) {
- if (event.target.type === 'text' && $(element).attr('autocomplete') != 'off') {
- $(element).attr('autocomplete', 'off');
+ const AutoCompleteIssueId =
+ {
+ trigger: '#',
+ values: function (text, cb) {
+ if (event.target.type === 'text' && $(element).attr('autocomplete') != 'off') {
+ $(element).attr('autocomplete', 'off');
+ }
+ remoteSearch(element.dataset.issuesUrl + text, function (issues) {
+ return cb(issues);
+ });
+ },
+ lookup: 'label',
+ fillAttr: 'label',
+ requireLeadingSpace: true,
+ selectTemplate: function (issue) {
+ return '#' + issue.original.id;
+ },
+ 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 '';
}
- });
+ const AutoCompleteWikiSyntax =
+ {
+ 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 '';
+ }
+ }
+
+ const tribute = new Tribute({
+ collection: [
+ AutoCompleteIssueId,
+ ($(element).closest('.jstEditor').length ? AutoCompleteWikiSyntax : {})
+ ]});
tribute.attach(element);
}
-
$(document).ready(setupAjaxIndicator);
$(document).ready(hideOnLoad);
$(document).ready(addFormObserversForDoubleSubmit);