savedSearch.php
2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
// boilerplate includes
require_once("../../../../../config/dmsDefaults.php");
require_once(KT_DIR . "/presentation/Html.inc");
require_once(KT_LIB_DIR . "/templating/templating.inc.php");
require_once(KT_LIB_DIR . "/dispatcher.inc.php");
require_once(KT_LIB_DIR . "/browse/Criteria.inc");
require_once(KT_LIB_DIR . "/search/savedsearch.inc.php");
class KTSavedSearchDispatcher extends KTStandardDispatcher {
var $bAutomaticTransaction = true;
function do_main() {
$oTemplate =& $this->oValidator->validateTemplate('ktcore/search/administration/savedsearches');
$oTemplate->setData(array(
'saved_searches' => KTSavedSearch::getList(),
));
return $oTemplate->render();
}
function do_new() {
$oTemplating = new KTTemplating;
$oTemplate = $oTemplating->loadTemplate("ktcore/boolean_search");
$aCriteria = Criteria::getAllCriteria();
$aTemplateData = array(
"title" => _("Create a new condition"),
"aCriteria" => $aCriteria,
"searchButton" => _("Save"),
);
return $oTemplate->render($aTemplateData);
}
function do_view() {
}
// XXX: Rename to do_save
function do_performSearch() {
$datavars = KTUtil::arrayGet($_REQUEST, 'boolean_search');
if (!is_array($datavars)) {
$datavars = unserialize($datavars);
}
if (empty($datavars)) {
$this->errorRedirectToMain(_('You need to have at least 1 condition.'));
}
$sName = "Neil's saved search";
$sNamespace = KTUtil::nameToLocalNamespace('Saved searches', $sName);
$oSearch = KTSavedSearch::createFromArray(array(
'name' => $sName,
'namespace' => $sNamespace,
'iscondition' => false,
'iscomplete' => true,
'userid' => null,
'search' => $datavars,
));
$this->oValidator->notError($oSearch, array(
'redirect_to' => 'main',
'message' => _('Search not saved'),
));
$this->successRedirectToMain(_('Search saved'));
}
}
$oDispatcher = new KTSavedSearchDispatcher();
$oDispatcher->dispatch();
?>