";
// Headings
$sToRender .= "
";
$sToRender .= "Allocated in Browser ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= "Available Criteria ";
$sToRender .= " ";
// Initialise structure
$aInfo = InitCriteria();
// Select Boxes
$sToRender .= "\n";
$sToRender .= "\n";
$sToRender .= "\n";
// retrieve users' groups
$sToRender .= getSelected($aInfo);
$sToRender .= " \n";
$sToRender .= "";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " \n";
// Move buttons
$sToRender .= "";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= "\n";
$sToRender .= "\n";
// retrieve other groups
$sToRender .= getAvailable($aInfo);
$sToRender .= " ";
$sToRender .= " ";
// Assign/Cancel button
$sToRender .= "";
$sToRender .= " ";
$sToRender .= " \n";
$sToRender .= " ";
// Show current settings
$sBgColor = "#F5F6EE";
$sToRender .= "";
$sToRender .= "" . _("Current Users") . " ";
$sToRender .= "";
for ($i=0; $i < count($aInfo[0]); $i++) {
$sName = criterionGet($aInfo[0][$i]);
$sToRender .= "" . ($i+1) . " ". $sName ." \n";
}
$sToRender .= "
";
$sToRender .= "";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
$sToRender .= " ";
return $sToRender;
}
$aBaseCriteria = array(
-1 => _('Title'),
-2 => _('Description'),
-3 => _('Creator'),
-4 => _('Date Created'),
-5 => _('Document Type'),
-6 => _('ID'),
);
function criterionGet($iCriteriaID) {
global $default;
global $aBaseCriteria;
if ($iCriteriaID < 0) {
$sName = $aBaseCriteria[$iCriteriaID];
} else {
$aQuery = array("SELECT name FROM $default->document_fields_table WHERE id = ?", array($iCriteriaID)); /*ok*/
$sName = DBUtil::getOneResultKey($aQuery, 'name');
}
return $sName;
}
/* Initialise some structures to build ui
* Return an array of:
* Current Users assigned to Group
* UnitAdmin Manageable User Ids
*/
function InitCriteria() {
global $default;
global $aBaseCriteria;
$aAllCriteriaIDs = array_keys($aBaseCriteria);
$aQuery = array("SELECT id FROM $default->document_fields_table", array()); /*ok*/
$aIDs = DBUtil::getResultArrayKey($aQuery, 'id');
$aAllCriteriaIDs = array_merge($aAllCriteriaIDs, $aIDs);
$aQuery = array("SELECT criteria_id FROM browse_criteria ORDER BY precedence", array()); /*ok*/
$aSelectedCriteriaIDs = DBUtil::getResultArrayKey($aQuery, 'criteria_id');
return array($aSelectedCriteriaIDs, $aAllCriteriaIDs);
}
/* Get all Users in a Group */
function getSelected($aInfo) {
global $default;
global $aBaseCriteria;
foreach ($aInfo[0] as $iCriteriaID) {
if ($iCriteriaID < 0) {
$sName = $aBaseCriteria[$iCriteriaID];
} else {
$aQuery = array("SELECT name FROM $default->document_fields_table WHERE id = ?", array($iCriteriaID)); /*ok*/
$sName = DBUtil::getOneResultKey($aQuery, 'name');
}
$sToRender .= "\n";
$sToRender .= $sName;
$sToRender .= " \n";
}
return $sToRender;
}
// Get other Users
function getAvailable($aInfo) {
global $default;
global $aBaseCriteria;
$aOtherUserIDs = array();
$aOtherUserIDs = array_diff($aInfo[1], $aInfo[0]);
foreach ($aOtherUserIDs as $iCriteriaID) {
if ($iCriteriaID < 0) {
$sName = $aBaseCriteria[$iCriteriaID];
} else {
$aQuery = array("SELECT name FROM $default->document_fields_table WHERE id = ?", array($iCriteriaID)); /*ok*/
$sName = DBUtil::getOneResultKey($aQuery, 'name');
}
$sToRender .= "\n";
$sToRender .= $sName;
$sToRender .= " \n";
}
return $sToRender;
}
// get page for removal
function getPage($iGroupID) {
global $default;
$oUser = null;
$oGroup = null;
// change headings if Group selected
if (isset($iGroupID)) {
$oGroup = Group::get($iGroupID);
} else {
$heading = "" . _("Please select a Group") . ": \n";
}
$sToRender .= renderHeading(_("Edit User's Groups"));
$sToRender .= "\n";
$sToRender .= $heading;
$sToRender .= "\n";
$sToRender .= " \n";
$sToRender .= "" . _("Group Name") . ": " . getGroupDisplay($oGroup) . " \n";
$sToRender .= "\n";
$sToRender .= " \n";
$sToRender .= "\n";
$sToRender .= " \n";
$sToRender .= "\n";
$sToRender .= " \n";
$sToRender .= "
\n";
return $sToRender;
}
// page that comes up when there is nothing selected
function getPageNotSelected() {
global $default;
$sToRender .= renderHeading(_("Edit Users's Group"));
$sToRender .= "\n";
$sToRender .= "" . _("Sorry, Selection Failed") . " \n";
$sToRender .= "" . _("Please select a Group") . " \n";
$sToRender .= " \n";
$sToRender .= " \n";
$sToRender .= "\n";
$sToRender .= "rootUrl/control.php?action=listGroups\"> \n";
$sToRender .= " \n";
$sToRender .= "
\n";
return $sToRender;
}
// show listbox of Users belonging to Users_Groups_link table
function getGroupDisplay($oGroup) {
global $default;
if (!isset($oGroup)) {
$oPatternListBox = & new PatternListBox($default->groups_table, "name", "id", "fGroupID");
$oPatternListBox->setPostBackOnChange(true);
return $oPatternListBox->render();
} else {
return " getID() . "\">\n" .
$oGroup->getName();
}
}
?>