Example #1
0
def createApp(appdef, deployData, folder, progress):
	checkAppCanBeCreated(appdef)
	if deployData:
		usesGeoServer = False
		usesPostgis = False
		layers = appdef["Layers"]
		for layer in layers:
			if layer.method != utils.METHOD_FILE:
				if layer.layer.type() == layer.layer.VectorLayer and layer.layer.providerType().lower() != "wfs":
					usesPostgis = True
					usesGeoServer = True
				elif layer.layer.type() == layer.layer.RasterLayer and layer.layer.providerType().lower() != "wms":
					usesGeoServer = True
		if usesPostgis:
			importPostgis(appdef, progress)
		if usesGeoServer:
			publishGeoserver(appdef, progress)
	writeOL(appdef, folder, deployData, progress)
	files = [os.path.join(folder, "layers/layers.js"), os.path.join(folder, "index.js")]
	for root, dirs, fs in os.walk(os.path.join(folder, "styles")):
		for f in fs:
			if f.endswith("js"):
				files.append(os.path.join(root, f))
	for path in files:
		try:
			beauty = jsbeautifier.beautify_file(path)
			with open(path, "w") as f:
				f.write(beauty)
		except:
			pass #jsbeautifier gives some random errors sometimes due to imports
	projFile = QgsProject.instance().fileName()
	if projFile:
		appdefFile =  projFile + ".appdef"
		saveAppdef(appdef, appdefFile)
Example #2
0
 def update(self):
     self.preview.settings().clearMemoryCaches()
     layers, groups, popup, visible = self.getLayersAndGroups()
     params = self.getParameters()
     writeOL(layers, groups, popup, visible, params, utils.tempFolder())
     self.preview.setUrl(QUrl(self.tempIndexFile()))
     self.labelPreview.setText('Preview &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="open">Open in external browser</a>')
Example #3
0
 def update(self):
     self.preview.settings().clearMemoryCaches()
     layers, groups, popup, visible = self.getLayersAndGroups()
     params = self.getParameters()
     writeOL(layers, groups, popup, visible, params, utils.tempFolder())
     self.preview.setUrl(QUrl(self.tempIndexFile()))
     self.labelPreview.setText(
         'Preview &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="open">Open in external browser</a>'
     )
Example #4
0
 def save(self):
     folder = QFileDialog.getExistingDirectory(self, "Save to directory", None,
                                              QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks);
     if folder:
         layers, groups, popup, visible = self.getLayersAndGroups()
         params = self.getParameters()
         writeOL(layers, groups, popup, visible, params, folder)
         reply = QMessageBox.question(self, "OL3 map correctly exported",
             "Do you want to open the resulting map in a web browser?",
             QMessageBox.Yes | QMessageBox.No)
         if reply == QMessageBox.Yes:
             webbrowser.open_new_tab(os.path.join(folder, "index.html"))
Example #5
0
 def save(self):
     folder = QFileDialog.getExistingDirectory(
         self, "Save to directory", None,
         QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks)
     if folder:
         layers, groups, popup, visible = self.getLayersAndGroups()
         params = self.getParameters()
         writeOL(layers, groups, popup, visible, params, folder)
         reply = QMessageBox.question(
             self, "OL3 map correctly exported",
             "Do you want to open the resulting map in a web browser?",
             QMessageBox.Yes | QMessageBox.No)
         if reply == QMessageBox.Yes:
             webbrowser.open_new_tab(os.path.join(folder, "index.html"))
Example #6
0
 def saveOL(self):
     params = self.getParameters()
     folder = params["Data export"]["Export folder"]
     if folder:
         layers, groups, popup, visible, json, cluster, labels = self.getLayersAndGroups()
         outputFile = writeOL(self.iface, layers, groups, popup, visible, json, cluster, labels, params, folder)
         webbrowser.open_new_tab(outputFile)
Example #7
0
 def previewOL3(self):
     self.preview.settings().clearMemoryCaches()
     layers, groups, popup, visible, json, cluster, labels = self.getLayersAndGroups()
     params = self.getParameters()
     previewFile = writeOL(self.iface, layers, groups, popup, visible, json, cluster, labels, params, utils.tempFolder())
     self.preview.setUrl(QUrl.fromLocalFile(previewFile))
     self.labelPreview.setText('Preview &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="open">Open in external browser</a>')
Example #8
0
 def previewOL3(self):
     self.preview.settings().clearMemoryCaches()
     (layers, groups, popup, visible, json,
      cluster) = self.getLayersAndGroups()
     params = self.getParameters()
     previewFile = writeOL(self.iface, layers, groups, popup, visible, json,
                           cluster, params, utils.tempFolder())
     self.preview.setUrl(QUrl.fromLocalFile(previewFile))
Example #9
0
 def previewOL3(self):
     self.preview.settings().clearMemoryCaches()
     (layers, groups, popup, visible,
      json, cluster) = self.getLayersAndGroups()
     params = self.getParameters()
     previewFile = writeOL(self.iface, layers, groups, popup, visible, json,
                           cluster, params, utils.tempFolder())
     self.preview.setUrl(QUrl.fromLocalFile(previewFile))
Example #10
0
 def saveOL(self):
     params = self.getParameters()
     folder = params["Data export"]["Export folder"]
     if folder:
         (layers, groups, popup, visible, json,
          cluster) = self.getLayersAndGroups()
         outputFile = writeOL(self.iface, layers, groups, popup, visible,
                              json, cluster, params, folder)
         webbrowser.open_new_tab(outputFile)
Example #11
0
 def saveOL(self):
     params = self.getParameters()
     folder = params["Data export"]["Export folder"]
     if folder:
         (layers, groups, popup, visible,
          json, cluster) = self.getLayersAndGroups()
         outputFile = writeOL(self.iface, layers, groups, popup, visible,
                              json, cluster, params, folder)
         if (not os.environ.get('CI') and
                 not os.environ.get('TRAVIS')):
             webbrowser.open_new_tab(outputFile)
Example #12
0
def createApp(appdef, deployData, folder, progress):
    checkAppCanBeCreated(appdef)
    if deployData:
        usesGeoServer = False
        usesPostgis = False
        layers = appdef["Layers"]
        for layer in layers:
            if layer.method != utils.METHOD_FILE:
                if layer.layer.type(
                ) == layer.layer.VectorLayer and layer.layer.providerType(
                ).lower() != "wfs":
                    usesPostgis = True
                    usesGeoServer = True
                elif layer.layer.type(
                ) == layer.layer.RasterLayer and layer.layer.providerType(
                ).lower() != "wms":
                    usesGeoServer = True
        if usesPostgis:
            importPostgis(appdef, progress)
        if usesGeoServer:
            publishGeoserver(appdef, progress)
    writeOL(appdef, folder, deployData, progress)
    files = [
        os.path.join(folder, "layers/layers.js"),
        os.path.join(folder, "index.js")
    ]
    for root, dirs, fs in os.walk(os.path.join(folder, "styles")):
        for f in fs:
            if f.endswith("js"):
                files.append(os.path.join(root, f))
    for path in files:
        try:
            beauty = jsbeautifier.beautify_file(path)
            with open(path, "w") as f:
                f.write(beauty)
        except:
            pass  #jsbeautifier gives some random errors sometimes due to imports
    projFile = QgsProject.instance().fileName()
    if projFile:
        appdefFile = projFile + ".appdef"
        saveAppdef(appdef, appdefFile)