aboutsummaryrefslogtreecommitdiff
path: root/h-source/Application
diff options
context:
space:
mode:
authorAntonio Gallo <tonicucoz@gmail.com>2011-04-07 20:20:44 +0000
committerAntonio Gallo <tonicucoz@gmail.com>2011-04-07 20:20:44 +0000
commit5a90d52724c9afa5499a27b65a05033ae6b924b8 (patch)
tree7f36e3a3f8ed69fbd39620ae5e37fd4868b30968 /h-source/Application
parent105117ebccdf5cecb3e33416287bec3f44e6cf2b (diff)
h-source: improved the way errors are shown
Diffstat (limited to 'h-source/Application')
-rw-r--r--h-source/Application/Controllers/GenericController.php64
-rw-r--r--h-source/Application/Views/xml_response.php28
2 files changed, 77 insertions, 15 deletions
diff --git a/h-source/Application/Controllers/GenericController.php b/h-source/Application/Controllers/GenericController.php
index b6a5aac..31271b9 100644
--- a/h-source/Application/Controllers/GenericController.php
+++ b/h-source/Application/Controllers/GenericController.php
@@ -65,6 +65,8 @@ class GenericController extends BaseController
$clean['token'] = sanitizeAlphanum($token);
$data['notice'] = null;
+ $data['submission_response'] = 'error';
+
$data['tree'] = $this->getSpecHardLink() . " &raquo; " . " <span class='last_tree_element'>insert</span>";
$this->s['registered']->checkStatus();
@@ -103,7 +105,12 @@ class GenericController extends BaseController
}
}
+ if ($this->m['HardwareModel']->queryResult)
+ {
+ $data['submission_response'] = 'executed';
+ }
$this->viewRedirect($this->m['HardwareModel']->lastId);
+
}
}
}
@@ -115,12 +122,21 @@ class GenericController extends BaseController
$data['values'] = $this->m['HardwareModel']->getFormValues('insert','sanitizeHtml');
$this->append($data);
-
- $this->load('top_left');
- $this->load('license_notice');
- $this->load('form');
- $this->load('bottom_left');
- $this->right();
+
+ if (!isset($_POST['from_client']))
+ {
+ $this->load('top_left');
+ $this->load('license_notice');
+ $this->load('form');
+ $this->load('bottom_left');
+ $this->right();
+ }
+ else
+ {
+ header ("Content-Type:text/xml");
+ $this->clean();
+ $this->load('xml_response');
+ }
}
else
{
@@ -196,6 +212,8 @@ class GenericController extends BaseController
$clean['token'] = sanitizeAlphanum($token);
$data['notice'] = null;
+ $data['submission_response'] = 'error';
+
$this->s['registered']->checkStatus();
if (isset($_POST['id_hard']))
@@ -238,6 +256,10 @@ class GenericController extends BaseController
//carry out the update database action
$this->m['HardwareModel']->updateTable('update');
+ if ($this->m['HardwareModel']->queryResult)
+ {
+ $data['submission_response'] = 'executed';
+ }
$this->viewRedirect($this->m['HardwareModel']->lastId);
}
}
@@ -252,12 +274,21 @@ class GenericController extends BaseController
$data['hiddenInput'] = "<input type='hidden' name='id_hard' value='".$clean['id_hard']."'>\n";
$this->append($data);
-
- $this->load('top_left');
- $this->load('license_notice');
- $this->load('form');
- $this->load('bottom_left');
- $this->right();
+
+ if (!isset($_POST['from_client']))
+ {
+ $this->load('top_left');
+ $this->load('license_notice');
+ $this->load('form');
+ $this->load('bottom_left');
+ $this->right();
+ }
+ else
+ {
+ header ("Content-Type:text/xml");
+ $this->clean();
+ $this->load('xml_response');
+ }
}
else
{
@@ -344,11 +375,14 @@ class GenericController extends BaseController
protected function viewRedirect($id)
{
$clean['id'] = (int)$id;
-
+
if ($this->m['HardwareModel']->queryResult)
{
- $name = encodeUrl($this->m['HardwareModel']->getTheModelName($clean['id']));
- $this->redirect($this->controller.'/view/'.$this->lang.'/'.$clean['id'].'/'.$name.$this->viewStatus);
+ if (!isset($_POST['from_client']))
+ {
+ $name = encodeUrl($this->m['HardwareModel']->getTheModelName($clean['id']));
+ $this->redirect($this->controller.'/view/'.$this->lang.'/'.$clean['id'].'/'.$name.$this->viewStatus);
+ }
}
}
diff --git a/h-source/Application/Views/xml_response.php b/h-source/Application/Views/xml_response.php
new file mode 100644
index 0000000..2c51b88
--- /dev/null
+++ b/h-source/Application/Views/xml_response.php
@@ -0,0 +1,28 @@
+<?php if (!defined('EG')) die('Direct access not allowed!'); ?>
+<?php echo "<?xml version='1.0' encoding='UTF-8'?>\n";?>
+<user_info>
+ <status><?php echo $submission_response;?></status>
+ <notice>
+ <![CDATA[<?php echo strip_tags($notice); ?>]]>
+ </notice>
+</user_info>
+
+<?php
+// h-source, a web software to build a community of people that want to share their hardware information.
+// Copyright (C) 2010 Antonio Gallo (h-source-copyright.txt)
+//
+// This file is part of h-source
+//
+// h-source is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// h-source is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with h-source. If not, see <http://www.gnu.org/licenses/>.
+?>