uawdijnntqw1x1x1
IP : 216.73.216.141
Hostname : toronto-dev2
Kernel : Linux toronto-dev2 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
Disable Function : None :)
OS : Linux
PATH:
/
srv
/
users
/
craft4
/
apps
/
craft4-newsite-space
/
plugins
/
craft-content-buddy
/
src
/
templates
/
_scripts.twig
/
/
{% set settings = craft.app.getPlugins.getPlugin('convergine-contentbuddy').settings %} $(document).ready(function () { let working = '{{ 'Working...'|t('convergine-contentbuddy') }}'; let selectPromptText = '{{ 'selectPromptText'|t('convergine-contentbuddy') }}'; $('.buddy-button').each(function () { let $this = $(this); let $field = $this.parents('.field'); let $input = $field.find('.input input, .input textarea'); if($field.attr('data-type') !== 'craft\\redactor\\Field' && $field.attr('data-type') !== 'craft\\ckeditor\\Field') { if($field.find('.chars-left').length) { $input.css('padding-right', '158px'); $field.find('.chars-left').css('padding-right', '128px') } else { $input.css('padding-right', '125px'); } }else if($field.attr('data-type') == 'craft\\ckeditor\\Field'){ if($input.parent().find(".ck-sticky-panel")){ $input.parent().find(".ck-sticky-panel").css('padding-right', '125px'); } } }); $('body').on('click', '.buddy-menu a', function (clickEvent) { clickEvent.stopPropagation(); clickEvent.preventDefault(); let $this = $(this); let hash = $this.attr('data-hash'); let $button = $('button[data-hash="' + hash + '"]'); let $input = $button.closest('.input').find('input, textarea').first(); let disclosureMenu = $button.data('disclosureMenu'); if(disclosureMenu) { disclosureMenu.hide(); } else { let $menu = $('#' + $button.attr('aria-controls')); if($menu.length) { $menu.hide(); } } let fieldType = $button.closest('.field').attr('data-type'); let query = getInputSelection(fieldType, $input); if(!checkInputText(query)) { return; } setInputSelection(fieldType, $input, query, working); let text = $input.val(); let prompt = $this.attr('data-prompt'); let lang = $this.attr('data-lang'); sendRequest(prompt, query, $input, hash,text,lang); }); function checkInputText(query) { if(query.length < 3) { alert(selectPromptText); return false; } return true; } function getInputSelection(fieldType, $input) { let query = ''; let text = $input.val(); if(fieldType === 'craft\\redactor\\Field') { let textareaId = $input.attr('id'); query = $R('#' + textareaId).selection.getHtml(); } else if(fieldType === 'craft\\ckeditor\\Field') { //query = CKEditor5.utils.getDataFromElement($input[0]); let $ckElement = $input.next().find('.ck-editor__editable'); if($ckElement.length) { let selection = $ckElement[0].ckeditorInstance.model.document.selection.getFirstRange().getItems(); for(let item of selection) { query = item.data; } } } else if(typeof $input !== "undefined") { let s = $input[0].selectionStart; let e = $input[0].selectionEnd; let selectedText = $input.val().substring(s, e); return selectedText?selectedText:text; } else { return ''; } if(!query) { query = text } console.log('query',query); return query; } function setInputSelection(fieldType, $input, old_text, new_text) { let text = $input.val(); let value = text.replace(old_text, new_text); if(fieldType === 'craft\\redactor\\Field') { let textareaId = $input.attr('id'); $R('#' + textareaId, 'source.setCode', value); } else if(fieldType === 'craft\\ckeditor\\Field') { //CKEditor5.utils.setDataInElement(input[0], text.replace(query, working)); let $ckElement = $input.next().find('.ck-editor__editable'); if($ckElement.length) { $ckElement[0].ckeditorInstance.setData(value); } } else { $input.val(value); } } function sendRequest(prompt, query, textField, hash, text, lang) { let sendData = { "prompt": prompt, "query": query, "lang": lang, [Craft.csrfTokenName]: Craft.csrfTokenValue }; $.ajax({ type: "POST", url: "{{ actionUrl('convergine-contentbuddy/prompt-processor/process') }}", data: sendData, success: function (data) { let fieldType = $('button[data-hash="' + hash + '"]').closest('.field').attr('data-type'); if(data.res) { let result = data.result.replaceText == 1 ? data.result.response : query + ' ' + data.result.response; setInputSelection(fieldType, textField, working, result); } else { setInputSelection(fieldType, textField, working, query); let errorMessages = (data.msg).replaceAll('<br>','\n'); alert(errorMessages); } }, dataType: "json" }).fail(function (data) { result = text.replace(working, query); alert(data.responseJSON.error.message.replace('<br>','\n')); let fieldType = $('button[data-hash="' + hash + '"]').closest('.field').attr('data-type'); setInputSelection(fieldType, textField, working, query); }); } });
/srv/users/craft4/apps/craft4-newsite-space/plugins/craft-content-buddy/src/templates/_scripts.twig