diff --git a/include/ajax.config.php b/include/ajax.config.php index 82d92f1ca333408a2eff3bc67c84f12d78807d39..119264c35b8d0164e3b9be2200f78de046ceaf97 100644 --- a/include/ajax.config.php +++ b/include/ajax.config.php @@ -48,5 +48,20 @@ class ConfigAjaxAPI extends AjaxController { return $config; } + + function templateLinks() { + $links = $this->json_encode(array( + array('name'=>'Select ...', 'url'=> false), + array('name'=>'Agent Ticket Link', 'url'=> '%{ticket.staff_link}'), + array('name'=>'Agent Login Page', 'url'=> '%{url}/scp'), + array('name'=>'End-User Ticket Link', 'url'=> '%{recipient.ticket_link}'), + array('name'=>'End-User Login Page', 'url'=> '%{url}/login.php'), + )); + + Http::cacheable(md5($links), filemtime(__file__)); + header('Content-Type: application/json; charset=UTF-8'); + + return $links; + } } ?> diff --git a/js/redactor-osticket.js b/js/redactor-osticket.js index e96d92a073da888b2482a54158a7ee75a1ecd87e..48d6a4597d354e967f9d8f5030662eae876db550 100644 --- a/js/redactor-osticket.js +++ b/js/redactor-osticket.js @@ -241,7 +241,9 @@ $(function() { 'linebreaks': true, 'tabFocus': false, 'toolbarFixedBox': true, - 'focusCallback': function() { this.$box.addClass('no-pjax'); } + 'focusCallback': function() { this.$box.addClass('no-pjax'); }, + 'linkSize': 100000, + 'predefinedLinks': 'ajax.php/config/links' }, options||{}); if (el.data('redactor')) return; var reset = $('input[type=reset]', el.closest('form')); diff --git a/scp/ajax.php b/scp/ajax.php index a192cce8cf92da76bf185a441840093133d03099..ab7708e0b2974903ef7eae490cbfc66665f4baea 100644 --- a/scp/ajax.php +++ b/scp/ajax.php @@ -48,7 +48,8 @@ $dispatcher = patterns('', url_post('^(?P<id>\d+)(?:/(?P<lang>\w+))?$', 'updateContent') )), url('^/config/', patterns('ajax.config.php:ConfigAjaxAPI', - url_get('^scp', 'scp') + url_get('^scp', 'scp'), + url_get('^links', 'templateLinks') )), url('^/form/', patterns('ajax.forms.php:DynamicFormsAjaxAPI', url_get('^help-topic/(?P<id>\d+)$', 'getFormsForHelpTopic'),