示例#1
0
 function deleteAnswer($entry_id, $field_id)
 {
     global $thisstaff;
     if (!$thisstaff) {
         Http::response(403, 'Login required');
     }
     $ent = DynamicFormEntryAnswer::lookup(array('entry_id' => $entry_id, 'field_id' => $field_id));
     if (!$ent) {
         Http::response(404, 'Answer not found');
     }
     $ent->delete();
 }
 static function create($ht = false)
 {
     $inst = parent::create($ht);
     $inst->set('created', new SqlFunction('NOW'));
     foreach ($inst->getForm()->getFields() as $f) {
         if (!$f->hasData()) {
             continue;
         }
         $a = DynamicFormEntryAnswer::create(array('field_id' => $f->get('id')));
         $a->field = $f;
         $a->field->setAnswer($a);
         $a->entry = $inst;
         $inst->_values[] = $a;
     }
     return $inst;
 }
示例#3
0
 $names = array();
 switch (strtolower($_POST['do'])) {
     case 'update':
         foreach ($fields as $f) {
             if (in_array($f, $required) && !$_POST[$f]) {
                 $errors[$f] = sprintf(__('%s is required'), mb_convert_case($f, MB_CASE_TITLE));
             } elseif (isset($_POST[$f])) {
                 $form->set($f, $_POST[$f]);
             }
         }
         $form->save(true);
         foreach ($form->getDynamicFields() as $field) {
             $id = $field->get('id');
             if ($_POST["delete-{$id}"] == 'on' && $field->isDeletable()) {
                 if ($_POST["delete-data-{$id}"]) {
                     DynamicFormEntryAnswer::objects()->filter(array('field_id' => $id))->delete();
                 }
                 $field->delete();
                 // Don't bother updating the field
                 continue;
             }
             if (isset($_POST["type-{$id}"]) && $field->isChangeable()) {
                 $field->set('type', $_POST["type-{$id}"]);
             }
             if (isset($_POST["name-{$id}"]) && !$field->isNameForced()) {
                 $field->set('name', trim($_POST["name-{$id}"]));
             }
             # TODO: make sure all help topics still have all required fields
             $field->setRequirementMode($_POST["visibility-{$id}"]);
             foreach (array('sort', 'label') as $f) {
                 if (isset($_POST["{$f}-{$id}"])) {
示例#4
0
    $form_fields = array();
    $names = array();
    switch(strtolower($_POST['do'])) {
        case 'update':
            foreach ($fields as $f)
                if (in_array($f, $required) && !$_POST[$f])
                    $errors[$f] = sprintf(__('%s is required'),
                        mb_convert_case($f, MB_CASE_TITLE));
                elseif (isset($_POST[$f]))
                    $form->set($f, $_POST[$f]);
            $form->save(true);
            foreach ($form->getDynamicFields() as $field) {
                $id = $field->get('id');
                if ($_POST["delete-$id"] == 'on' && $field->isDeletable()) {
                    if ($_POST["delete-data-$id"]) {
                        DynamicFormEntryAnswer::objects()
                            ->filter(array('field_id'=>$id))
                            ->delete();
                    }
                    $field->delete();
                    // Don't bother updating the field
                    continue;
                }
                if (isset($_POST["type-$id"]) && $field->isChangeable())
                    $field->set('type', $_POST["type-$id"]);
                if (isset($_POST["name-$id"]) && !$field->isNameForced())
                    $field->set('name', trim($_POST["name-$id"]));
                # TODO: make sure all help topics still have all required fields
                $field->setRequirementMode($_POST["visibility-$id"]);

                foreach (array('sort','label') as $f) {