seeddms-code/views/bootstrap/class.KeywordChooser.php

207 lines
5.2 KiB
PHP

<?php
/**
* Implementation of KeywordChooser view
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2002-2005 Markus Westphal,
* 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli,
* 2010-2012 Uwe Steinmann
* @version Release: @package_version@
*/
/**
* Include parent class
*/
//require_once("class.Bootstrap.php");
/**
* Class which outputs the html page for KeywordChooser view
*
* @category DMS
* @package SeedDMS
* @author Markus Westphal, Malcolm Cowe, Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2002-2005 Markus Westphal,
* 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli,
* 2010-2012 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_View_KeywordChooser extends SeedDMS_Theme_Style {
function js() { /* {{{ */
$form = $this->params['form'];
header('Content-Type: application/javascript; charset=UTF-8');
?>
var targetObj = document.<?php echo $form ?>.keywords;
var myTA;
function insertKeywords(keywords) {
if (navigator.appName == "Microsoft Internet Explorer") {
myTA.value += " " + keywords;
}
//assuming Mozilla
else {
selStart = myTA.selectionStart;
myTA.value = myTA.value.substring(0,myTA.selectionStart) + " "
+ keywords
+ myTA.value.substring(myTA.selectionStart,myTA.value.length);
myTA.selectionStart = selStart + keywords.length+1;
myTA.selectionEnd = selStart + keywords.length+1;
}
myTA.focus();
}
function cancel() {
// window.close();
return true;
}
function acceptKeywords() {
targetObj.value = myTA.value;
// window.close();
return true;
}
obj = new Array();
obj[0] = -1;
obj[1] = -1;
function showKeywords(which) {
if (obj[which] != -1)
obj[which].style.display = "none";
list = document.getElementById("categories" + which);
id = list.options[list.selectedIndex].value;
if (id == -1)
return;
obj[which] = document.getElementById("keywords" + id);
obj[which].style.display = "";
}
$('#categories0').change(function(ev) {
showKeywords(0);
});
$('#categories1').change(function(ev) {
showKeywords(1);
});
$('.insertkeyword').click(function(ev) {
attr_keyword = $(ev.currentTarget).attr('keyword');
insertKeywords(attr_keyword);
});
myTA = document.getElementById("keywordta");
myTA.value = targetObj.value;
myTA.focus();
<?php
} /* }}} */
function show() { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$categories = $this->params['categories'];
// $this->htmlStartPage(getMLText("use_default_keywords"));
?>
<div>
<?php
$this->contentContainerStart();
$this->formField(
getMLText("keywords"),
array(
'element'=>'textarea',
'id'=>'keywordta',
'rows'=>4,
)
);
$options = array();
$options[] = array('-1', getMLText('choose_category'));
foreach ($categories as $category) {
$owner = $category->getOwner();
if($owner->isAdmin())
$options[] = array(''.$category->getID(), htmlspecialchars($category->getName()));
}
$this->formField(
getMLText("global_default_keywords"),
array(
'element'=>'select',
'id'=>'categories0',
'options'=>$options,
)
);
foreach ($categories as $category) {
$owner = $category->getOwner();
if($owner->isAdmin()) {
$lists = $category->getKeywordLists();
if(count($lists)) {
$kw = array();
foreach ($lists as $list) {
$kw[] = "<a class=\"insertkeyword\" keyword=\"".htmlspecialchars($list["keywords"])."\"><span class=\"badge badge-secondary\">".htmlspecialchars($list["keywords"])."</span></a>";
}
echo '<div id="keywords'.$category->getId().'" style="display: none;">';
$this->formField(
getMLText("default_keywords"),
array(
'element'=>'plain',
'name'=>'categories0',
'value'=>implode(' ', $kw),
)
);
echo '</div>';
}
}
}
$options = array();
$options[] = array('-1', getMLText('choose_category'));
foreach ($categories as $category) {
$owner = $category->getOwner();
if(!$owner->isAdmin())
$options[] = array(''.$category->getID(), htmlspecialchars($category->getName()));
}
$this->formField(
getMLText("personal_default_keywords"),
array(
'element'=>'select',
'id'=>'categories1',
'options'=>$options,
)
);
foreach ($categories as $category) {
$owner = $category->getOwner();
if(!$owner->isAdmin()) {
$lists = $category->getKeywordLists();
if(count($lists)) {
$kw = array();
foreach ($lists as $list) {
$kw[] = "<a class=\"insertkeyword\" keyword=\"".htmlspecialchars($list["keywords"])."\"><span class=\"badge badge-secondary\">".htmlspecialchars($list["keywords"])."</span></a>";
}
echo '<div id="keywords'.$category->getId().'" style="display: none;">';
$this->formField(
getMLText("default_keywords"),
array(
'element'=>'plain',
'name'=>'categories0',
'value'=>implode(', ', $kw),
)
);
echo '</div>';
}
}
}
$this->contentContainerEnd();
echo '<script src="../out/out.KeywordChooser.php?action=js&'.$_SERVER['QUERY_STRING'].'"></script>'."\n";
// $this->htmlEndPage();
// echo "</body>\n</html>\n";
} /* }}} */
}
?>