This commit is contained in:
Rudis Muiznieks 2023-09-25 15:57:46 -05:00
parent ba8c2a8a9b
commit 6db5e4b23a
Signed by: rudism
GPG Key ID: CABF2F86EF7884F9
3 changed files with 23 additions and 8 deletions

View File

@ -30,7 +30,7 @@ class KagiSummarizerExtension extends Minz_Extension {
'params' => array( 'params' => array(
'id' => $entry->id() 'id' => $entry->id()
))); )));
$entry->_content('<p class="kagi-summary"><a class="btn" href="' . $url .'">' . _t('ext.kagiSummarizer.ui.summarize_button') . '</a></p>' . $entry->content()); $entry->_content('<p class="kagi-summary"><a data-loading="' . htmlspecialchars(_t('ext.kagiSummarizer.ui.loading_summary')) . '" data-error="' . htmlspecialchars(_t('ext.kagiSummarizer.ui.error')) . '" class="btn" href="' . $url .'">' . _t('ext.kagiSummarizer.ui.summarize_button') . '</a></p>' . $entry->content());
return $entry; return $entry;
} }
} }

View File

@ -7,7 +7,9 @@ return array(
'kagi_token_help' => 'Copy and paste the "Session Link" from your <a href="https://kagi.com/settings?p=user_details" target="_blank">Kagi Account</a> settings.' 'kagi_token_help' => 'Copy and paste the "Session Link" from your <a href="https://kagi.com/settings?p=user_details" target="_blank">Kagi Account</a> settings.'
), ),
'ui' => array( 'ui' => array(
'summarize_button' => 'Summarize' 'summarize_button' => 'Summarize',
'loading_summary' => 'Loading summary...',
'error' => 'Error retrieving summary.'
) )
) )
); );

View File

@ -5,14 +5,14 @@ if (document.readyState && document.readyState !== 'loading') {
} }
function configureSummarizeButtons() { function configureSummarizeButtons() {
console.log(window.context);
document.getElementById('global').addEventListener('click', function(e) { document.getElementById('global').addEventListener('click', function(e) {
console.log('kagi handler triggered');
for (var target = e.target; target && target != this; target = target.parentNode) { for (var target = e.target; target && target != this; target = target.parentNode) {
if (target.matches('.kagi-summary a.btn')) { if (target.matches('.kagi-summary a.btn')) {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
if (target.href) { if (target.href) {
summarizeButtonClick(target.href, target.parentNode); summarizeButtonClick(target.href, target);
} }
break; break;
} }
@ -20,8 +20,21 @@ function configureSummarizeButtons() {
}, false); }, false);
} }
function summarizeButtonClick(url, container) { function summarizeButtonClick(url, button) {
container.innerHTML = url; var container = button.parentNode;
var request = new XMLHttpRequest();
request.open('POST', url, true);
request.responseType = 'json';
request.onload = function(e) {
if (this.status != 200) {
}
}
request.onerror = function(e) {
badAjax(this.status == 403);
container.classList.add('alert'); container.classList.add('alert');
container.classList.add('alert-success'); container.classList.add('alert-error');
}
} }