Commit 19320684244026c3ef1d9d021031523feb0d517c

Authored by bshuttle
1 parent 625f8af8

adding fieldset management basics.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3645 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/administration/permissions/manageFieldsets.php 0 → 100644
  1 +<?php
  2 +require_once("../../../../../config/dmsDefaults.php");
  3 +require_once(KT_DIR . "/presentation/Html.inc");
  4 +require_once(KT_LIB_DIR . "/templating/templating.inc.php");
  5 +require_once(KT_LIB_DIR . "/documentmanagement/DocumentFieldSet.inc");
  6 +require_once(KT_LIB_DIR . "/documentmanagement/DocumentField.inc");
  7 +require_once(KT_LIB_DIR . "/dispatcher.inc.php");
  8 +$sectionName = "Administration";
  9 +require_once(KT_DIR . "/presentation/webpageTemplate.inc");
  10 +
  11 +class ManageFieldsetsDispatcher extends KTAdminDispatcher {
  12 + function do_main() {
  13 + $oTemplating = new KTTemplating;
  14 + $aFieldSets =& DocumentFieldSet::getList();
  15 + $oTemplate = $oTemplating->loadTemplate("ktcore/manage_fieldsets");
  16 + $aTemplateData = array(
  17 + "fieldsets" => $aFieldSets,
  18 + );
  19 + return $oTemplate->render($aTemplateData);
  20 + }
  21 +
  22 + function handleOutput($data) {
  23 + global $main;
  24 + $main->bFormDisabled = true;
  25 + $main->setCentralPayload($data);
  26 + $main->render();
  27 + }
  28 +
  29 + /** assumption: this particular path is NOT followed by plugins. This sets */
  30 + function do_newFieldset() {
  31 + $name = KTUtil::arrayGet($_REQUEST, 'name');
  32 + $namespace = KTUtil::arrayGet($_REQUEST, 'namespace');
  33 + if (empty($name) || empty($namespace)) {
  34 + return $this->errorRedirectToMain("Both a human name and a namespace are required and not given");
  35 + }
  36 + $oFieldSet = DocumentFieldSet::createFromArray(array(
  37 + 'name' => $name,
  38 + 'namespace' => $namespace,
  39 + 'mandatory' => 0, /* user-created fieldsets can be deleted by users. */
  40 + ));
  41 + global $default;
  42 + $default->log->debug('Trying to create a new fieldset.' . $oFieldSet->bMandatory);
  43 + $oFieldSet = $oFieldSet->create();
  44 + if (PEAR::isError($oFieldSet)) {
  45 + return $this->errorRedirectToMain("Error creating fieldset");
  46 + }
  47 + /** FIXME: why is this errorRedirectToMain */
  48 + return $this->errorRedirectToMain("Fieldset created");
  49 + }
  50 +
  51 +
  52 + function do_deleteFieldset() {
  53 + $id = KTUtil::arrayGet($_REQUEST, 'id');
  54 + if (empty($id)) {
  55 + return $this->errorRedirectToMain("No id specified.");
  56 + }
  57 + $oFieldSet= DocumentFieldSet::get($id);
  58 + if (PEAR::isError($oFieldSet)) {
  59 + return $this->errorRedirectToMain("Error finding fieldset");
  60 + }
  61 + if ($oFieldSet->getMandatory() === true) {
  62 + return $this->errorRedirectToMain("Can't delete a mandatory permission");
  63 + }
  64 + $res = $oFieldSet->delete();
  65 + if (PEAR::isError($res)) {
  66 + return $this->errorRedirectToMain("Error deleting fieldset");
  67 + }
  68 + return $this->errorRedirectToMain("FieldSet deleted");
  69 + }
  70 +
  71 + function do_editFieldset() {
  72 + $id = KTUtil::arrayGet($_REQUEST, 'id');
  73 + $oTemplating = new KTTemplating;
  74 + $oFieldSet =& DocumentFieldSet::get($id);
  75 + if (PEAR::isError($oFieldSet)) {
  76 + return $this->errorRedirectToMain("No such fieldset.");
  77 + }
  78 + $childFields =& DocumentField::getList('parent_fieldset = ' . $id);
  79 + $freeFields =& DocumentField::getList('parent_fieldset IS NULL');
  80 + $oTemplate = $oTemplating->loadTemplate("ktcore/edit_fieldset");
  81 + $aTemplateData = array(
  82 + 'setId' => $id,
  83 + 'children' => $childFields,
  84 + 'freefields' => $freeFields,
  85 + 'fieldSet' => $oFieldSet,
  86 + );
  87 + return $oTemplate->render($aTemplateData);
  88 + }
  89 +
  90 + function do_addToFieldset() {
  91 + $id = KTUtil::arrayGet($_REQUEST, 'id');
  92 + $fieldsToAdd = KTUtil::arrayGet($_REQUEST, 'fieldsToAdd');
  93 + if (empty($id)) {
  94 + return $this->errorRedirectToMain("No id specified.");
  95 + }
  96 + if (empty($fieldsToAdd)) {
  97 + return $this->errorRedirectToMain("No fields specified.");
  98 + }
  99 + $oFieldSet= DocumentFieldSet::get($id);
  100 + if (PEAR::isError($oFieldSet)) {
  101 + return $this->errorRedirectToMain("Error finding fieldset");
  102 + }
  103 + // DEBUG LOGGING
  104 + //global $default;
  105 + // we now have a working fieldset, and need to go through
  106 + // each added item, and set this to be its parent_fieldset.
  107 + if (is_array($fieldsToAdd)) // multiple passed in
  108 + {
  109 + foreach ($fieldsToAdd as $fieldToAdd)
  110 + {
  111 + $addField =& DocumentField::get($fieldToAdd);
  112 + $addField->setParentFieldset($id);
  113 + $addField->update();
  114 + //$default->log->debug('MASSADD TO FIELDSET: ' . $addField->getParentFieldset());
  115 + }
  116 + }
  117 + else
  118 + {
  119 + $addField =& DocumentField::get($fieldsToAdd);
  120 + $addField->setParentFieldset($id);
  121 + $addField->update();
  122 + //$default->log->debug('ADD TO FIELDSET: ' . $addField->getParentFieldset());
  123 + }
  124 +
  125 + return $this->errorRedirectToMain("Fields added.");
  126 + }
  127 +
  128 + function do_removeFromFieldset() {
  129 + $id = KTUtil::arrayGet($_REQUEST, 'id');
  130 + $fieldsToRemove = KTUtil::arrayGet($_REQUEST, 'fieldsToRemove');
  131 + global $default;
  132 + $default->log->debug('PREREMOVE: ' . $fieldsToRemove);
  133 + if (empty($id)) {
  134 + return $this->errorRedirectToMain("No id specified.");
  135 + }
  136 + if (empty($fieldsToRemove)) {
  137 + return $this->errorRedirectToMain("No fields specified.");
  138 + }
  139 + $oFieldSet= DocumentFieldSet::get($id);
  140 + if (PEAR::isError($oFieldSet)) {
  141 + return $this->errorRedirectToMain("Error finding fieldset");
  142 + }
  143 + // DEBUG LOGGING
  144 + global $default;
  145 + // we now have a working fieldset, and need to go through
  146 + // each added item, and set this to be its parent_fieldset.
  147 + if (is_array($fieldsToRemove)) // multiple passed in
  148 + {
  149 + foreach ($fieldsToRemove as $fieldToRemove)
  150 + {
  151 + $addField =& DocumentField::get($fieldToRemove);
  152 + $addField->setParentFieldset(null);
  153 + $addField->update();
  154 + $default->log->debug('MASSREMOVE FROM FIELDSET: ' . $addField->getParentFieldset());
  155 + }
  156 + }
  157 + else
  158 + {
  159 + $addField =& DocumentField::get($fieldsToRemove);
  160 + $addField->setParentFieldset(null);
  161 + $addField->update();
  162 + $default->log->debug('REMOVE FROM FIELDSET: ' . $addField->getParentFieldset());
  163 + }
  164 +
  165 + return $this->errorRedirectToMain("Fields removed.");
  166 + }
  167 +
  168 + function do_addConditions() {
  169 + $fieldset_id = KTUtil::arrayGet($_REQUEST, 'fieldset_id');
  170 + }
  171 +
  172 +}
  173 +
  174 +$oDispatcher = new ManageFieldsetsDispatcher();
  175 +$oDispatcher->dispatch();
  176 +
  177 +?>
... ...