def preview(self): try: appdef = self.createAppDefinition(True) except WrongValueException: return problems = checkAppCanBeCreated(appdef) if problems: dlg = AppDefProblemsDialog(problems) dlg.exec_() if not dlg.ok: return try: folder = utils.tempFolderInTempFolder() self._run( lambda: createApp(appdef, True, folder, True, self.progress)) path = "file:///" + folder.replace( "\\", "/") + "/webapp/index_debug.html" webbrowser.open_new(path) except WrongValueException: pass except: QgsMessageLog.logMessage(traceback.format_exc(), level=QgsMessageLog.CRITICAL) QMessageBox.critical( iface.mainWindow(), "Error creating web app", "Could not create web app.\nSee QGIS log for more details.")
def createApp(self): try: appdef = self.createAppDefinition() problems = checkAppCanBeCreated(appdef) if problems: dlg = AppDefProblemsDialog(problems) dlg.exec_() if not dlg.ok: return folder = askForFolder(self, "Select folder to store app") if folder: if os.path.exists(os.path.join(folder, "webapp")): ret = QMessageBox.warning(self, "Output folder", " The selected folder already contains a 'webapp' subfolder.\n" "Do you confirm that you want to overwrite it?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if ret == QMessageBox.No: return self._run(lambda: createApp(appdef, not self.checkBoxDeployData.isChecked(), folder, False, self.progress)) box = QMessageBox() box.setWindowTitle("Web App Builder"); box.setTextFormat(Qt.RichText) box.setText("Application files have been correctly generated.<br>" "Use the <a href='http://boundlessgeo.com/products/opengeo-suite/'> Boundless WebSDK </a> for building the final webapp from them.") box.exec_() except WrongValueException: pass except: QgsMessageLog.logMessage(traceback.format_exc(), level=QgsMessageLog.CRITICAL) QMessageBox.critical(iface.mainWindow(), "Error creating web app", "Could not create web app.\nCheck the QGIS log for more details.")
def preview(self): try: appdef = self.createAppDefinition(True) except WrongValueException: return problems = checkAppCanBeCreated(appdef) if problems: dlg = AppDefProblemsDialog(problems) dlg.exec_() if not dlg.ok: return try: folder = utils.tempFolderInTempFolder() self._run(lambda: createApp(appdef, True, folder, True, self.progress)) path = "file:///" + folder.replace("\\","/") + "/webapp/index_debug.html" webbrowser.open_new(path) except WrongValueException: pass except: QgsMessageLog.logMessage(traceback.format_exc(), level=QgsMessageLog.CRITICAL) QMessageBox.critical(iface.mainWindow(), "Error creating web app", "Could not create web app.\nSee QGIS log for more details.")
def preview(self): try: appdef = self.createAppDefinition() except WrongValueException: return problems = checkAppCanBeCreated(appdef, True) if problems: dlg = AppDefProblemsDialog(problems) dlg.exec_() if not dlg.ok: return try: self.currentFolder = tempFolderInTempFolder("webappbuilder") pub.subscribe(self.endCreatePreviewListener, utils.topics.endFunction) try: self._run(lambda: createApp(appdef, self.currentFolder, True, self.progress)) except: QgsMessageLog.logMessage(traceback.format_exc(), level=QgsMessageLog.CRITICAL) self.endCreatePreviewListener(False, traceback.format_exc()) except WrongValueException: pass
"Do you confirm that you want to overwrite it?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if ret == QMessageBox.No: return # set buttons status self.setButtonsEnabled( status=False, excludeList=[self.buttonCreateOrStopApp]) self.createAppButtonText = self.buttonCreateOrStopApp.text() self.buttonCreateOrStopApp.setText(self.tr("Stop")) try: pub.subscribe(self.endCreateAppListener, utils.topics.endFunction) self.onCreatingApp = True self._run(lambda: createApp(appdef, folder, False, self. progress)) except Exception as ex: self.endCreateAppListener(False, traceback.format_exc()) except WrongValueException: pass def createAppDefinition(self): layers, groups = self.getLayersAndGroups() appdef = {} appdef["Settings"] = self.getSettings() appdef["Base layers"] = self.getBaseLayers() appdef["Layers"] = layers appdef["Groups"] = groups appdef["Widgets"] = self.getWidgets()