primo commit
This commit is contained in:
69
media/plg_quickicon_privacycheck/js/privacycheck.js
Normal file
69
media/plg_quickicon_privacycheck/js/privacycheck.js
Normal file
@ -0,0 +1,69 @@
|
||||
/**
|
||||
* @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
(document => {
|
||||
|
||||
const checkPrivacy = () => {
|
||||
const variables = Joomla.getOptions('js-privacy-check');
|
||||
const ajaxUrl = variables.plg_quickicon_privacycheck_ajax_url;
|
||||
const url = variables.plg_quickicon_privacycheck_url;
|
||||
const text = variables.plg_quickicon_privacycheck_text;
|
||||
const quickicon = document.getElementById('plg_quickicon_privacycheck');
|
||||
const link = quickicon.querySelector('span.j-links-link');
|
||||
|
||||
/**
|
||||
* DO NOT use fetch() for QuickIcon requests. They must be queued.
|
||||
*
|
||||
* @see https://github.com/joomla/joomla-cms/issues/38001
|
||||
*/
|
||||
Joomla.enqueueRequest({
|
||||
url: ajaxUrl,
|
||||
method: 'GET',
|
||||
promise: true
|
||||
}).then(xhr => {
|
||||
const response = xhr.responseText;
|
||||
const request = JSON.parse(response);
|
||||
if (request.data.number_urgent_requests) {
|
||||
// Quickicon on dashboard shows message
|
||||
const countBadge = document.createElement('span');
|
||||
countBadge.classList.add('badge', 'text-dark', 'bg-light');
|
||||
countBadge.textContent = request.data.number_urgent_requests;
|
||||
link.textContent = `${text.REQUESTFOUND} `;
|
||||
link.appendChild(countBadge);
|
||||
|
||||
// Quickicon becomes red
|
||||
quickicon.classList.add('danger');
|
||||
|
||||
// Span in alert
|
||||
const countSpan = document.createElement('span');
|
||||
countSpan.classList.add('label', 'label-important');
|
||||
countSpan.textContent = `${text.REQUESTFOUND_MESSAGE.replace('%s', request.data.number_urgent_requests)} `;
|
||||
|
||||
// Button in alert to 'view requests'
|
||||
const requestButton = document.createElement('button');
|
||||
requestButton.classList.add('btn', 'btn-primary', 'btn-sm');
|
||||
requestButton.setAttribute('onclick', `document.location='${url}'`);
|
||||
requestButton.textContent = text.REQUESTFOUND_BUTTON;
|
||||
const div = document.createElement('div');
|
||||
div.classList.add('alert', 'alert-error', 'alert-joomlaupdate');
|
||||
div.appendChild(countSpan);
|
||||
div.appendChild(requestButton);
|
||||
|
||||
// Add elements to container for alert messages
|
||||
const container = document.querySelector('#system-message-container');
|
||||
container.insertBefore(div, container.firstChild);
|
||||
} else {
|
||||
quickicon.classList.add('success');
|
||||
link.textContent = text.NOREQUEST;
|
||||
}
|
||||
}).catch(() => {
|
||||
quickicon.classList.add('danger');
|
||||
link.textContent = text.ERROR;
|
||||
});
|
||||
};
|
||||
|
||||
// Give some times to the layout and other scripts to settle their stuff
|
||||
window.addEventListener('load', () => setTimeout(checkPrivacy, 360));
|
||||
})(document);
|
||||
4
media/plg_quickicon_privacycheck/js/privacycheck.min.js
vendored
Normal file
4
media/plg_quickicon_privacycheck/js/privacycheck.min.js
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
/**
|
||||
* @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/(e=>{const u=()=>{const r=Joomla.getOptions("js-privacy-check"),p=r.plg_quickicon_privacycheck_ajax_url,_=r.plg_quickicon_privacycheck_url,t=r.plg_quickicon_privacycheck_text,n=e.getElementById("plg_quickicon_privacycheck"),s=n.querySelector("span.j-links-link");Joomla.enqueueRequest({url:p,method:"GET",promise:!0}).then(E=>{const g=E.responseText,o=JSON.parse(g);if(o.data.number_urgent_requests){const i=e.createElement("span");i.classList.add("badge","text-dark","bg-light"),i.textContent=o.data.number_urgent_requests,s.textContent=`${t.REQUESTFOUND} `,s.appendChild(i),n.classList.add("danger");const l=e.createElement("span");l.classList.add("label","label-important"),l.textContent=`${t.REQUESTFOUND_MESSAGE.replace("%s",o.data.number_urgent_requests)} `;const a=e.createElement("button");a.classList.add("btn","btn-primary","btn-sm"),a.setAttribute("onclick",`document.location='${_}'`),a.textContent=t.REQUESTFOUND_BUTTON;const c=e.createElement("div");c.classList.add("alert","alert-error","alert-joomlaupdate"),c.appendChild(l),c.appendChild(a);const d=e.querySelector("#system-message-container");d.insertBefore(c,d.firstChild)}else n.classList.add("success"),s.textContent=t.NOREQUEST}).catch(()=>{n.classList.add("danger"),s.textContent=t.ERROR})};window.addEventListener("load",()=>setTimeout(u,360))})(document);
|
||||
BIN
media/plg_quickicon_privacycheck/js/privacycheck.min.js.gz
Normal file
BIN
media/plg_quickicon_privacycheck/js/privacycheck.min.js.gz
Normal file
Binary file not shown.
Reference in New Issue
Block a user