From d1d345292eeac35c82a0de5c7e9e96097c0653f7 Mon Sep 17 00:00:00 2001 From: senthuran16 Date: Fri, 14 Feb 2020 17:32:35 +0530 Subject: [PATCH 1/8] Rearrange code --- .../js/dialog/extension-install-dialog.js | 447 ++++++++++-------- .../web/editor/commons/js/utils/utils.js | 1 + 2 files changed, 239 insertions(+), 209 deletions(-) diff --git a/components/org.wso2.carbon.siddhi.editor.core/src/main/resources/web/editor/commons/js/dialog/extension-install-dialog.js b/components/org.wso2.carbon.siddhi.editor.core/src/main/resources/web/editor/commons/js/dialog/extension-install-dialog.js index ca6074aa916..8a9f57109cf 100644 --- a/components/org.wso2.carbon.siddhi.editor.core/src/main/resources/web/editor/commons/js/dialog/extension-install-dialog.js +++ b/components/org.wso2.carbon.siddhi.editor.core/src/main/resources/web/editor/commons/js/dialog/extension-install-dialog.js @@ -13,224 +13,253 @@ define(['require', 'lodash', 'jquery', 'constants'], this.dialog_containers = $(_.get(options.config.dialog, 'container')); this.extensionList = app.utils.extensionData; }, - /** - * show function for display the ExtensionInstallDialog. - */ - this.show = function () { - this._extensionListModal.modal('show'); - }, - - /** - * render function for rendering all the contents of ExtensionInstallDialog. - */ - this.render = function () { - var self = this; - if (!_.isNil(this._extensionListModal)) { - this._extensionListModal.remove(); - } + /** + * show function for display the ExtensionInstallDialog. + */ + this.show = function () { + this._extensionListModal.modal('show'); + }, - var extensionModelOpen = $( - ""); - - var extensionInstallConfigModal = extensionModelOpen.filter("#extensionInstallConfigModalId"); - var extensionInstallError = extensionModelOpen.find("#extensionInstallErrorId"); - var extensionSearch = extensionModelOpen.find("input").filter("#extensionSearchId"); - - extensionInstallConfigModal.on('shown.bs.modal', function () { - extensionSearch.focus(); - }); - var extensionContainer = extensionModelOpen.find("div").filter("#extensionTableId"); - - //define the map to store Partially extension modal based on key - var partialExtensionDetailModal = new Map(); - renderExtensions(); - var callbackExtensionFileBrowser = function (updatedExtension, isUpdated) { - if (isUpdated) { - app.utils.extensionData.set(updatedExtension.extensionInfo.name,updatedExtension); - self.renderExtensions(); - } - }; - var extensionTable; - - this.renderExtensions = function () { - extensionContainer.empty(); - extensionTable = $('
'); - app.utils.extensionData.forEach(function (extension, key) { - var extensionTableBodyData; - if (extension.extensionStatus.trim().toUpperCase() === Constants.EXTENSION_INSTALLED) { - extensionTableBodyData = $('' + extension.extensionInfo.name + 'Installed' + Constants.UNINSTALL + ''); - extensionButtonFunctionInsert(extensionTableBodyData,extension); - } else if (extension.extensionStatus.trim().toUpperCase() === Constants.EXTENSION_PARTIALLY_INSTALLED) { - extensionTableBodyData = $('' + extension.extensionInfo.name + 'Partially-Installed' + - '   ' + Constants.UNINSTALL + ''); - createAlertModalBoxForNotAndPartialExtension(extension, key, extensionTableBodyData); - extensionButtonFunctionInsert(extensionTableBodyData,extension); - - } else if (extension.extensionStatus.trim().toUpperCase() === Constants.EXTENSION_NOT_INSTALLED) { - extensionTableBodyData = $('' + extension.extensionInfo.name + 'Not-Installed' + Constants.INSTALL + ''); - extensionButtonFunctionInsert(extensionTableBodyData,extension); - } - extensionTable.append(extensionTableBodyData); - }); - extensionContainer.append(extensionTable); + this.renderExtensions = function (extensionContainer) { + var self = this; + extensionContainer.empty(); + extensionTable = $('
'); + + var serviceUrl = window.location.protocol + "//" + window.location.host+ "/siddhi-extensions"; + var getAllExtensionStatusesUrl = serviceUrl + "/status"; + console.log("REQUEST", getAllExtensionStatusesUrl) + var extensionData = {}; + + $.ajax({ + type: "GET", + contentType: "json", + url: getAllExtensionStatusesUrl, + async: false, + success: function (data) { + extensionData = new Map(Object.entries(data)); + }, + error: function (e) { + throw "Unable to read extension statuses"; } - extensionSearch.keyup(function () { - searchExtension(extensionTable, extensionSearch.val()); - }); - $(this.dialog_containers).append(extensionModelOpen); - extensionInstallError.hide(); - this._extensionListModal = extensionModelOpen; - - /** - * insert the onclick function for extension button. - * @param extensionTableBodyData - * @param extension - * @param callbackExtensionFileBrowser - * @returns {*} - */ - function extensionButtonFunctionInsert(extensionTableBodyData,extension) { - return extensionTableBodyData.find("button").click(function () { - app.utils.extensionUpdateThroughFile(extension,callbackExtensionFileBrowser); - }); + + }); + + extensionData.forEach(function (extension, key) { + var extensionTableBodyData; + if (extension.extensionStatus.trim().toUpperCase() === Constants.EXTENSION_INSTALLED) { + extensionTableBodyData = $('' + extension.extensionInfo.name + 'Installed' + Constants.UNINSTALL + ''); + self.extensionButtonFunctionInsert(extensionTableBodyData,extension,self.callbackExtensionFileBrowser); + } else if (extension.extensionStatus.trim().toUpperCase() === Constants.EXTENSION_PARTIALLY_INSTALLED) { + extensionTableBodyData = $('' + extension.extensionInfo.name + 'Partially-Installed' + + '   ' + Constants.UNINSTALL + ''); + self.createAlertModalBoxForNotAndPartialExtension(extension, key, extensionTableBodyData); + self.extensionButtonFunctionInsert(extensionTableBodyData,extension,self.callbackExtensionFileBrowser); + + } else if (extension.extensionStatus.trim().toUpperCase() === Constants.EXTENSION_NOT_INSTALLED) { + extensionTableBodyData = $('' + extension.extensionInfo.name + 'Not-Installed' + Constants.INSTALL + ''); + self.extensionButtonFunctionInsert(extensionTableBodyData,extension,self.callbackExtensionFileBrowser); } + extensionTable.append(extensionTableBodyData); + }); + extensionContainer.append(extensionTable); + }, - /** - * create a alert details model box for extension dependency. - * @param extension object - * @param key map key for object - * @param extensionTableBodyData is modal body - */ - function createAlertModalBoxForNotAndPartialExtension(extension, key, extensionTableBodyData) { - var partialModel = $( - '