Files
FreshRSS/p/scripts/integration.js
maTh be5848fd4f Improved: Sharing/Integration configuration (#4269)
* stick plus button to select list

* HTML improved very much

* drag and drop improved

* add URL button

* fix remove button behavior

* prepare for PR#4238

* improve length of inputs

* First draft of documentation of the sharing services

* new config option: depricated

* i18n for depricated text

* Doc: Blogotext depricated to 2023

* dropdown menu with config link and depricated sign

* Update entry_bottom.phtml

* Update 08_sharing_services.md

* Update template.rtl.css

* Typo Deprecated/Depricated

* typo

* updated the documentation comment

* Update shares.php

* Update app/i18n/fr/conf.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update p/scripts/draggable.js

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update p/scripts/draggable.js

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Documentation: services from #4270

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-03-15 22:58:30 +01:00

54 lines
1.9 KiB
JavaScript

// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
'use strict';
const init_integration = function () {
if (!window.context) {
if (window.console) {
console.log('FreshRSS integration waiting for JS…');
}
setTimeout(init_integration, 50);
return;
}
let shares = document.querySelectorAll('.group-share').length;
document.querySelector('.share.add').addEventListener('click', event => {
const shareTypes = event.target.closest('.group-controls').querySelector('select');
const shareType = shareTypes.options[shareTypes.selectedIndex];
let newShare = event.target.closest('form').getAttribute('data-' + shareType.getAttribute('data-form'));
newShare = newShare.replace(/##label##/g, shareType.text);
newShare = newShare.replace(/##type##/g, shareType.value);
newShare = newShare.replace(/##help##/g, shareType.getAttribute('data-help'));
newShare = newShare.replace(/##key##/g, shares);
newShare = newShare.replace(/##method##/g, shareType.getAttribute('data-method'));
newShare = newShare.replace(/##field##/g, shareType.getAttribute('data-field'));
event.target.closest('formgroup').insertAdjacentHTML('beforebegin', newShare);
shares++;
});
document.querySelector('.post').addEventListener('click', event => {
if (!event.target || !event.target.closest) {
return;
}
const deleteButton = event.target.closest('.remove');
if (null === deleteButton || !deleteButton.closest) {
return;
}
const share = deleteButton.closest('.group-share');
const form = deleteButton.closest('form');
if (!share.remove || !form.submit) {
return;
}
share.remove();
form.submit();
});
};
if (document.readyState && document.readyState !== 'loading') {
init_integration();
} else if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', event => init_integration(), false);
}
// @license-end