Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Repair the non-share save Query option #392

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
34 changes: 26 additions & 8 deletions extensions/queries/QueriesController.php
Original file line number Diff line number Diff line change
Expand Up @@ -404,17 +404,33 @@ public function savequeryAction()
$store = $this->_erfurt->getStore();
$storeGraph = $this->_owApp->selectedModel;
$graphUri = (string)$this->_owApp->selectedModel;

$res = "json or desc missing";
// checking for post data to save queries
$params = $this->_request->getParams();
if (isset($params['json']) && isset($params['json'])) {
if ($this->_request->getParam('share') == "true") {
if (isset($params['json'])) {
if ($this->_request->getParam('share') == 'true') {
//The User wants to story the Query in the DB he is querying -> check if he can edit it
if (!$this->_owApp->selectedModel->isEditable()) {
$res = "The Query cannot be shared, because the Model is not editable.";
$response->setBody($res);
return;
}
// store in the model itself - everybody can see it
$storeGraph = $this->_owApp->selectedModel;
} else {
//private db - should be configured so only the user can see it
$storeGraph = $this->getUserQueryDB();
//the User wants to Store the Query in his private DB -> check rights/if it already exists
if (!Erfurt_App::getInstance()->isActionAllowed('ModelManagement')) {
if ($this->findDB($this->_userDbUri) == null) {
$res = 'You dont have the Permission to create a DB for your Queries,'
. ' ask your Admin about it.';
$response->setBody($res);
return;
} else {
$storeGraph = $this->getUserQueryDB();
}
} else {
$storeGraph = $this->getUserQueryDB();
}
}

// checking whether any queries exist yet in this store
Expand Down Expand Up @@ -581,6 +597,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);
}
Expand Down Expand Up @@ -693,12 +711,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);

Expand All @@ -714,7 +732,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
Expand Down
7 changes: 3 additions & 4 deletions extensions/queries/resources/savepartial.js
Original file line number Diff line number Diff line change
Expand Up @@ -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");
}
});
Expand All @@ -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){
Expand All @@ -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("<p class=\"messagebox info\" id=\"savequerynotification\">The Query was saved</p>");

Expand Down
2 changes: 1 addition & 1 deletion extensions/queries/templates/savequery.phtml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
</p><p>
<input id="hidden_query" type="hidden" value=""/>
<input id="hidden_json" type="hidden" value=""/>
<input id="savequerysharecheckbox" type="checkbox"> share with others
<input id="savequerysharecheckbox" type="checkbox" checked> share with others
</p>
<a id = 'savequerybutton' class="button submit"><span><?php echo $this->_('Save Query'); ?></span></a>