this.checkUpdates(e)}\n >\n {locale.lmsg('recheckUpdates')}\n \n )}\n />\n );\n }\n\n _renderAlert() {\n if (!this._additionalData.availableUpdates.length) {\n return;\n }\n\n this._componentElement.parentNode.querySelectorAll('.alert').forEach(el => {\n el.parentNode.removeChild(el);\n });\n\n render(\n this._componentElement,\n ce('.alert.alert-info', { role: 'alert' }, [\n ce('i.icon-update-light'),\n ' ',\n locale.lmsg('updatesAvailable', { count: this._additionalData.availableUpdates.length }),\n this._additionalData.lastChecked ? ce('span.text-muted',\n ` ${locale.lmsg('lastedChecked', { date: escapeHtml(this._additionalData.lastChecked) })}`,\n ) : '',\n ' ',\n ce('button.btn.btn-primary', {\n onclick: event => {\n event.preventDefault();\n new PopupPackagesUpdate({\n urls: this._urls,\n packages: this._additionalData.availableUpdates,\n });\n },\n }, locale.lmsg('updateAll')),\n ]),\n 'before',\n );\n }\n\n checkUpdates(event) {\n event && event.preventDefault();\n this.reload('?check-updates=true');\n }\n}\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { prepareUrl, PopupForm, Locale, escapeHtml } from 'jsw';\n\nexport default class extends PopupForm {\n _initConfiguration(config) {\n super._initConfiguration({\n singleRowButtons: true,\n locale: Locale.getSection('admin.components.lists.pumpackages'),\n ...config,\n });\n\n this._url = this._getConfigParam('url');\n this._packageName = this._getConfigParam('packageName');\n }\n\n render() {\n super.render();\n\n this.setBoxType('form-box');\n this.setTitle(this.lmsg('popupInfoTitle', { package: escapeHtml(this._packageName) }));\n\n document.getElementById(this._contentAreaId).innerHTML = `${this.lmsg('loading')}
`;\n\n this._request = new Ajax.Request(\n prepareUrl(this._url),\n {\n method: 'post',\n parameters: {\n name: this._packageName,\n },\n onSuccess: transport => {\n const response = JSON.parse(transport.responseText);\n\n if (!response.data) {\n document.getElementById(this._contentAreaId).innerHTML = '';\n if (response.statusMessages) {\n response.statusMessages.forEach(({ status, content }) => {\n this._addStatusMessage(status, content);\n });\n }\n return;\n }\n\n document.getElementById(this._contentAreaId).innerHTML = `${escapeHtml(response.data)}
`;\n },\n },\n );\n\n this.addRightButton(Locale.getSection('components.buttons').lmsg('ok'), () => {\n this.hide();\n });\n }\n\n hide() {\n if (this._request) {\n this._request.abort();\n }\n super.hide();\n }\n}\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\n/* eslint-disable camelcase */\n\nimport { escapeHtml, PopupForm, Locale } from 'jsw';\n\nexport default class extends PopupForm {\n _initConfiguration(config) {\n super._initConfiguration({\n scrollable: true,\n singleRowButtons: true,\n showLockStatus: false,\n locale: Locale.getSection('admin.components.lists.pumpackages'),\n ...config,\n });\n\n this._urls = this._getConfigParam('urls');\n this._packages = this._getConfigParam('packages', []);\n this._list = this._getConfigParam('list');\n this._showLockStatus = this._getConfigParam('showLockStatus');\n }\n\n _getPackagesIds() {\n return this._packages.map(pkg => pkg.name);\n }\n\n render() {\n super.render();\n\n this._buttonOk = this.addRightButton(Locale.getSection('components.buttons').lmsg('ok'), this._onOkClick.bind(this), true, true);\n this._buttonCancel = this.addRightButton(Locale.getSection('components.buttons').lmsg('cancel'), () => {\n this.remove();\n this.hide();\n });\n }\n\n _onOkClick() {\n // basic empty implementation\n }\n\n _getPackageHtml({ locked, name, version_to, version_from }) {\n return (\n `` +\n `${this._showLockStatus && locked ? '' : ''}${escapeHtml(name)} ` +\n `${escapeHtml(version_to)}`\n : `>${escapeHtml(version_from)}`\n }` +\n ''\n );\n }\n}\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { addStatusMessage, clearStatusMessages, prepareUrl } from 'jsw';\nimport PopupPackagesBase from './popup-packages-base';\n\nexport default class extends PopupPackagesBase {\n render() {\n super.render();\n\n this.setBoxType('form-box');\n this.setTitle(this.lmsg('popupLockTitle'));\n this.setHint(this.lmsg('popupLockDescription'));\n\n document.getElementById(this._contentAreaId).innerHTML = (\n `${this.lmsg('popupLockPackagesListTitle')}
` +\n `${this._packages.map(this._getPackageHtml.bind(this)).join('')}
`\n );\n }\n\n _onOkClick() {\n new Ajax.Request(prepareUrl(this._urls.lock), {\n method: 'post',\n parameters: {\n 'ids[]': this._getPackagesIds(),\n },\n onSuccess: transport => {\n this.remove();\n this.hide();\n\n this._list.reload();\n\n const data = JSON.parse(transport.responseText);\n if (data.status) {\n clearStatusMessages();\n data.statusMessages.forEach(({ status, content }) => {\n addStatusMessage(status, content);\n });\n }\n },\n });\n }\n}\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { addStatusMessage, clearStatusMessages, prepareUrl } from 'jsw';\nimport PopupPackagesBase from './popup-packages-base';\n\nexport default class extends PopupPackagesBase {\n render() {\n super.render();\n\n this.setBoxType('form-box');\n this.setTitle(this.lmsg('popupUnlockTitle'));\n this.setHint(this.lmsg('popupUnlockDescription'));\n\n document.getElementById(this._contentAreaId).innerHTML = (\n `${this.lmsg('popupUnlockPackagesListTitle')}
` +\n `${this._packages.map(this._getPackageHtml.bind(this)).join('')}
`\n );\n }\n\n _onOkClick() {\n new Ajax.Request(prepareUrl(this._urls.unlock), {\n method: 'post',\n parameters: {\n 'ids[]': this._getPackagesIds(),\n },\n onSuccess: transport => {\n this.remove();\n this.hide();\n\n this._list.reload();\n\n const data = JSON.parse(transport.responseText);\n if (data.status) {\n clearStatusMessages();\n data.statusMessages.forEach(({ status, content }) => {\n addStatusMessage(status, content);\n });\n }\n },\n });\n }\n}\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { getComponent, prepareUrl, render, createElement, Locale } from 'jsw';\nimport PopupPackagesBase from './popup-packages-base';\n\nexport default class extends PopupPackagesBase {\n _initConfiguration(config) {\n super._initConfiguration({\n showLockStatus: true,\n ...config,\n });\n this._onSuccess = this._getConfigParam('onSuccess');\n }\n\n render() {\n super.render();\n\n this.setBoxType('form-box');\n this.setTitle(this.lmsg('popupUpdateTitle'));\n this._updateButton(this._buttonOk, { disabled: true });\n\n document.getElementById(this._contentAreaId).innerHTML = `${this.lmsg('loading')}
`;\n\n this._request = new Ajax.Request(\n prepareUrl(this._urls.packageUpdateInfo),\n {\n method: 'post',\n parameters: {\n 'ids[]': this._getPackagesIds(),\n },\n onSuccess: transport => {\n const response = JSON.parse(transport.responseText);\n\n if (!response.data) {\n document.getElementById(this._contentAreaId).innerHTML = '';\n if (response.statusMessages) {\n response.statusMessages.forEach(({ status, content }) => {\n this._addStatusMessage(status, content);\n });\n }\n return;\n }\n\n if (!response.data.length) {\n document.getElementById(this._contentAreaId).innerHTML = '';\n this._addStatusMessage('info', this.lmsg('selectedPackagesUpToDate'));\n this._buttonOk.style.display = 'none';\n this._updateButton(this._buttonCancel, { title: Locale.getSection('components.buttons').lmsg('ok') });\n return;\n }\n\n document.getElementById(this._contentAreaId).innerHTML = (\n `${this.lmsg('popupUpdatePackagesListTitle')}
` +\n `${this._packages.map(this._getPackageHtml.bind(this)).join('')}
`\n );\n\n const packagesIds = this._getPackagesIds();\n const dependencies = response.data.filter(({ name }) => packagesIds.indexOf(name) === -1);\n\n if (dependencies.length) {\n render(document.getElementById(this._contentAreaId), [\n createElement('p', createElement('a', {\n class: 'toggler',\n onclick: event => {\n event.preventDefault();\n const dependenciesEl = event.target.closest('p').nextElementSibling;\n dependenciesEl.style.display = dependenciesEl.style.display === 'none' ? '' : 'none';\n },\n }, this.lmsg('popupUpdateDependencies', { count: dependencies.length }))),\n createElement('ul', { class: 'list-unordered', style: 'display: none;' }, dependencies.map(this._getPackageHtml.bind(this))),\n ]);\n }\n\n const lockedPackages = response.data.filter(({ locked }) => locked);\n if (lockedPackages.length) {\n render(document.getElementById(this._contentAreaId), (\n '
' +\n '' +\n '
' +\n `
${this.lmsg('popupUpdateLockedPackagesListTitle')}
` +\n `
${lockedPackages.map(this._getPackageHtml.bind(this)).join('')}
` +\n '
' +\n ''\n ));\n const unlockPackagesEl = document.getElementById('fid-unlock-packages');\n unlockPackagesEl.addEventListener('click', () => {\n this._updateButton(this._buttonOk, { disabled: !unlockPackagesEl.checked });\n });\n } else {\n this._updateButton(this._buttonOk, { disabled: false });\n }\n },\n },\n );\n }\n\n _onOkClick(event) {\n const updateUrl = this._urls.updatePackages;\n const progressBar = getComponent('asyncProgressBarWrapper');\n const itemId = progressBar.fly(\n Element.cumulativeOffset(event.target),\n this.lmsg('taskUpdatingPackages', {\n count: this._packages.length,\n }),\n () => {\n new Ajax.Request(prepareUrl(updateUrl), {\n method: 'post',\n parameters: {\n 'ids[]': this._getPackagesIds(),\n },\n onSuccess: transport => {\n if (typeof this._onSuccess === 'function') {\n this._onSuccess(JSON.parse(transport.responseText));\n }\n\n progressBar.removePreparingItem(itemId);\n progressBar.update();\n },\n });\n },\n );\n this.remove();\n this.hide();\n }\n\n hide() {\n if (this._request) {\n this._request.abort();\n }\n super.hide();\n }\n}\n","module.exports = Jsw.skinUrl + \"/images/system-up-to-date.svg?f6e07857b1a4868c807e40e850371add\";"],"names":["List","PopupPackagesUpdate","locale","Locale","getSection","_initConfiguration","updatesOnly","config","super","dataUrl","searchOveral","emptyViewMode","undefined","onRedraw","this","_renderAlert","_urls","_getConfigParam","_updatesOnly","_initActions","_initOperations","_initColumns","_itemActions","packageInfo","name","PopupPackageInfo","url","packageName","packageUpdate","item","urls","packages","packageLock","PopupPackagesLock","list","packageUnlock","PopupPackagesUnlock","_operations","updatePackages","push","componentType","SmallButton","id","title","lmsg","description","addCls","handler","event","execGroupOperation","mouseEvent","confirmationPopup","getSelectedItems","bar","Separator","lock","unlock","checkUpdates","bind","_columns","COLUMN_SELECTION","header","sortable","dataIndex","renderer","version_from","repo_from","escapeHtml","cls","locked","update","version_to","repo_to","version","emptyView","_jsx","ListEmptyView","_additionalData","lastChecked","date","image","require","actions","Button","intent","size","icon","onClick","e","children","availableUpdates","length","_componentElement","parentNode","querySelectorAll","forEach","el","removeChild","render","ce","role","count","onclick","preventDefault","reload","PopupForm","singleRowButtons","_url","_packageName","setBoxType","setTitle","package","document","getElementById","_contentAreaId","innerHTML","_request","Ajax","Request","prepareUrl","method","parameters","onSuccess","transport","response","JSON","parse","responseText","data","statusMessages","status","content","_addStatusMessage","addRightButton","hide","abort","scrollable","showLockStatus","_packages","_list","_showLockStatus","_getPackagesIds","map","pkg","_buttonOk","_onOkClick","_buttonCancel","remove","_getPackageHtml","PopupPackagesBase","setHint","join","clearStatusMessages","addStatusMessage","_onSuccess","_updateButton","disabled","packageUpdateInfo","style","display","packagesIds","dependencies","filter","indexOf","createElement","class","dependenciesEl","target","closest","nextElementSibling","lockedPackages","unlockPackagesEl","addEventListener","checked","updateUrl","progressBar","getComponent","itemId","fly","Element","cumulativeOffset","removePreparingItem","module","exports","Jsw","skinUrl"],"sourceRoot":""}