From b0d23d271e0487430bc3858f0b0600fca2daf567 Mon Sep 17 00:00:00 2001
From: shinobu
Date: Sat, 20 Aug 2016 20:03:31 +0200
Subject: [PATCH] repairs the non-share version of saving queries, though it
isn't fully supported right now. This creates a db for users (with AC check)
who are allowed to creade them, the checkbox is prechecked as most user won't
have the permission to create their own dbs. Fixes Wrong Parameters and some
Typos as well.
---
extensions/queries/QueriesController.php | 14 ++++++++++----
extensions/queries/resources/savepartial.js | 7 +++----
extensions/queries/templates/savequery.phtml | 2 +-
3 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/extensions/queries/QueriesController.php b/extensions/queries/QueriesController.php
index ead13e3dc..6fb421c0e 100644
--- a/extensions/queries/QueriesController.php
+++ b/extensions/queries/QueriesController.php
@@ -408,7 +408,11 @@ public function savequeryAction()
$res = "json or desc missing";
// checking for post data to save queries
$params = $this->_request->getParams();
- if (isset($params['json']) && isset($params['json'])) {
+ $hasAC = !(
+ empty(Erfurt_App::getInstance()->isActionAllowed('ModelManagement'))
+ && ($params['share'] == 'false')
+ );
+ if (isset($params['json']) && $hasAC) {
if ($this->_request->getParam('share') == "true") {
// store in the model itself - everybody can see it
$storeGraph = $this->_owApp->selectedModel;
@@ -581,6 +585,8 @@ public function savequeryAction()
} else {
$res = 'Save failed. (Query with same pattern exists)';
}
+ } else {
+ $res = 'You dont have the permissions to save your Queries non-shared.';
}
$response->setBody($res);
}
@@ -693,12 +699,12 @@ private function createUserQueryDB()
$proposedDBname = $this->_userDbUri;
$store = $this->_erfurt->getStore();
- $newModel = $store->getNewModel($proposedDBname);
+ $newModel = $store->getNewModel($proposedDBname, null, null, true);
$object = array();
// add english label for this db
- $object['object_type'] = Erfurt_Store::TYPE_LITERAL;
+ $object['type'] = 'literal';
$object['value'] = 'GQB Query DB of ' . $this->_userName;
$newModel->addStatement($proposedDBname, EF_RDFS_LABEL, $object);
@@ -714,7 +720,7 @@ private function createUserQueryDB()
//domain of this db (needed?)
$object['value'] = $this->_privateConfig->saving->baseQueryDbUri;
- $object['object_type'] = Erfurt_Store::TYPE_IRI;
+ $object['type'] = 'uri';
$newModel->addStatement($proposedDBname, EF_RDFS_DOMAIN, $object);
//add owner/maker of this db
diff --git a/extensions/queries/resources/savepartial.js b/extensions/queries/resources/savepartial.js
index 9f3d3bfa3..280307efb 100644
--- a/extensions/queries/resources/savepartial.js
+++ b/extensions/queries/resources/savepartial.js
@@ -22,7 +22,7 @@ $(document).ready(function() {
success: function(msg){
//TODO check for status
if(msg != "All OK")
- alert("Fehler "+msg);
+ alert("Error "+msg);
//open(urlBase + "querybuilding/listquery");
}
});
@@ -46,8 +46,7 @@ $(document).ready(function() {
name: $('#qname').val(),
"query": editor.getValue(),
generator: "qe",
- //share: $("#savequerysharecheckbox").is(':checked') ? "true" : "false"
- share: "true"
+ share: $("#savequerysharecheckbox").is(':checked') ? "true" : "false"
}),
dataType: "text",
error: function(xmlHttpObj, type, error){
@@ -56,7 +55,7 @@ $(document).ready(function() {
success: function(msg){
//TODO check for status
if (msg != "All OK") {
- alert("Fehler " + msg);
+ alert("Error " + msg);
} else {
$('.innercontent').prepend("The Query was saved
");
diff --git a/extensions/queries/templates/savequery.phtml b/extensions/queries/templates/savequery.phtml
index c7351f155..e873e82c9 100644
--- a/extensions/queries/templates/savequery.phtml
+++ b/extensions/queries/templates/savequery.phtml
@@ -4,6 +4,6 @@
- share with others
+ share with others
_('Save Query'); ?>
\ No newline at end of file