示例#1
0
 /**
  * Edit or create a rule
  *
  * @param md5 $edit_id
  */
 function edit_action($id = null)
 {
     //get data
     $user_field = 'user';
     $semdata_field = 'usersemdata';
     $this->semFields = AuxLockRules::getSemFields();
     $this->entries_user = DataField::getDataFields($user_field);
     $this->entries_semdata = DataField::getDataFields($semdata_field);
     $this->rule = is_null($id) ? false : AuxLockRules::getLockRuleByID($id);
     if ($GLOBALS['perm']->have_perm('root') && count($this->entries_semdata) == 0) {
         $this->flash['info'] = sprintf(_('Sie müssen zuerst im Bereich %sDatenfelder%s in der Kategorie ' . '<i>Datenfelder für Personenzusatzangaben in Veranstaltungen</i> einen neuen Eintrag erstellen.'), '<a href="' . URLHelper::getLink('dispatch.php/admin/datafields') . '">', '</a>');
     }
     // save action
     if (Request::submitted('erstellen') || Request::submitted('uebernehmen')) {
         //checking for errors
         $errors = array();
         if (!Request::get('rulename')) {
             array_push($errors, _("Bitte geben Sie der Regel mindestens einen Namen!"));
         }
         if (!AuxLockRules::checkLockRule(Request::getArray('fields'))) {
             array_push($errors, _('Bitte wählen Sie mindestens ein Feld aus der Kategorie "Zusatzinformationen" aus!'));
         }
         if (!empty($errors)) {
             $this->flash['error'] = _("Ihre Eingaben sind ungültig.");
             $this->flash['error_detail'] = $errors;
             // save
         } else {
             //new
             if (is_null($id)) {
                 AuxLockRules::createLockRule(Request::get('rulename'), Request::get('description'), Request::getArray('fields'), Request::getArray('order'));
                 //edit
             } else {
                 AuxLockRules::updateLockRule($id, Request::get('rulename'), Request::get('description'), Request::getArray('fields'), Request::getArray('order'));
             }
             $this->flash['success'] = sprintf(_('Die Regel "%s" wurde erfolgreich gespeichert!'), htmlReady(Request::get('rulename')));
             $this->redirect('admin/specification');
         }
     }
 }