diff --git a/lib/Alchemy/Phrasea/Helper/Record/Edit.php b/lib/Alchemy/Phrasea/Helper/Record/Edit.php index 1be24d70b4..e406a5e423 100644 --- a/lib/Alchemy/Phrasea/Helper/Record/Edit.php +++ b/lib/Alchemy/Phrasea/Helper/Record/Edit.php @@ -87,7 +87,7 @@ class Edit extends RecordHelper if ($this->is_single_grouping()) { - $record = array_pop($this->selection->get_elements()); + $record = array_pop($this->selection->get_elements()); $children = $record->get_children(); foreach ($children as $child) { @@ -100,9 +100,9 @@ class Edit extends RecordHelper if ($this->is_possible()) { $this->generate_javascript_fields() - ->generate_javascript_sugg_values() - ->generate_javascript_status() - ->generate_javascript_elements(); + ->generate_javascript_sugg_values() + ->generate_javascript_status() + ->generate_javascript_elements(); } return $this; @@ -203,12 +203,12 @@ class Edit extends RecordHelper foreach ($this->selection as $record) { - $indice = $record->get_number(); + $indice = $record->get_number(); $_lst[$indice] = array( - 'bid' => $record->get_base_id(), - 'rid' => $record->get_record_id(), - 'sselcont_id' => null, - '_selected' => false + 'bid' => $record->get_base_id(), + 'rid' => $record->get_record_id(), + 'sselcont_id' => null, + '_selected' => false ); $_lst[$indice]['statbits'] = array(); @@ -216,12 +216,12 @@ class Edit extends RecordHelper { foreach ($this->javascript_status as $n => $s) { - $tmp_val = substr(strrev($record->get_status()), $n, 1); + $tmp_val = substr(strrev($record->get_status()), $n, 1); $_lst[$indice]['statbits'][$n]['value'] = ($tmp_val == '1') ? '1' : '0'; $_lst[$indice]['statbits'][$n]['dirty'] = false; } } - $_lst[$indice]['fields'] = array(); + $_lst[$indice]['fields'] = array(); $_lst[$indice]['originalname'] = ''; $_lst[$indice]['originalname'] = $record->get_original_name(); @@ -234,23 +234,32 @@ class Edit extends RecordHelper continue; } + $values = array(); + foreach ($field->get_values() as $value) + { + $values[$value->getId()] = array( + 'meta_id' => $value->getId(), + 'value' => $value->getValue() + ); + } + $_lst[$indice]['fields'][$meta_struct_id] = array( - 'dirty' => false, - 'meta_id' => $field->get_meta_id(), - 'meta_struct_id' => $meta_struct_id, - 'value' => $field->get_value() + 'dirty' => false, +// 'meta_id' => $field->get_meta_id(), + 'meta_struct_id' => $meta_struct_id, + 'values' => $values ); } - $_lst[$indice]['subdefs'] = array('thumbnail' => null, 'preview' => null); + $_lst[$indice]['subdefs'] = array('thumbnail' => null, 'preview' => null); $thumbnail = $record->get_thumbnail(); $_lst[$indice]['subdefs']['thumbnail'] = array( - 'url' => $thumbnail->get_url() - , 'w' => $thumbnail->get_width() - , 'h' => $thumbnail->get_height() + 'url' => $thumbnail->get_url() + , 'w' => $thumbnail->get_width() + , 'h' => $thumbnail->get_height() ); $_lst[$indice]['preview'] = $twig->render('common/preview.html', array('record' => $record)); @@ -283,9 +292,9 @@ class Edit extends RecordHelper foreach ($this->selection as $record) { /* @var $record record_adapter */ - $base_id = $record->get_base_id(); + $base_id = $record->get_base_id(); $record_id = $record->get_record_id(); - $databox = $record->get_databox(); + $databox = $record->get_databox(); if (isset($done[$base_id])) continue; @@ -313,12 +322,12 @@ class Edit extends RecordHelper foreach ($vi->value as $oneValue) // les valeurs sug { $T_sgval['b' . $base_id][$field->get_id()][] = - (string) $oneValue; + (string) $oneValue; } } } unset($collection); - $done[$base_id] = true; + $done[$base_id] = true; } $this->javascript_sugg_values = $T_sgval; @@ -343,11 +352,11 @@ class Edit extends RecordHelper foreach ($status[$this->get_sbas_id()] as $n => $statbit) { $_tstatbits[$n] = array(); - $_tstatbits[$n]['label0'] = $statbit['labeloff']; - $_tstatbits[$n]['label1'] = $statbit['labelon']; + $_tstatbits[$n]['label0'] = $statbit['labeloff']; + $_tstatbits[$n]['label1'] = $statbit['labelon']; $_tstatbits[$n]['img_off'] = $statbit['img_off']; - $_tstatbits[$n]['img_on'] = $statbit['img_on']; - $_tstatbits[$n]['_value'] = 0; + $_tstatbits[$n]['img_on'] = $statbit['img_on']; + $_tstatbits[$n]['_value'] = 0; } } } @@ -364,11 +373,11 @@ class Edit extends RecordHelper */ protected function generate_javascript_fields() { - $_tfields = $fields = array(); + $_tfields = $fields = array(); $this->has_thesaurus = false; - $databox = \databox::get_instance($this->get_sbas_id()); + $databox = \databox::get_instance($this->get_sbas_id()); $meta_struct = $databox->get_meta_structure(); foreach ($meta_struct as $meta) @@ -389,19 +398,19 @@ class Edit extends RecordHelper switch ($meta->get_type()) { case 'datetime': - $format = _('phraseanet::technique::datetime-edit-format'); + $format = _('phraseanet::technique::datetime-edit-format'); $explain = _('phraseanet::technique::datetime-edit-explain'); break; case 'date': - $format = _('phraseanet::technique::date-edit-format'); + $format = _('phraseanet::technique::date-edit-format'); $explain = _('phraseanet::technique::date-edit-explain'); break; case 'time': - $format = _('phraseanet::technique::time-edit-format'); + $format = _('phraseanet::technique::time-edit-format'); $explain = _('phraseanet::technique::time-edit-explain'); break; default: - $format = $explain = ""; + $format = $explain = ""; break; } @@ -411,22 +420,22 @@ class Edit extends RecordHelper $separator = $meta->get_separator(); $datas = array( - 'meta_struct_id' => $meta->get_id() - , 'name' => $meta->get_name() - , '_status' => 0 - , '_value' => '' - , '_sgval' => array() - , 'required' => $meta->is_required() - , 'readonly' => $meta->is_readonly() - , 'type' => $meta->get_type() - , 'format' => $format - , 'explain' => $explain - , 'tbranch' => $meta->get_tbranch() - , 'maxLength' => $meta->get_source()->maxlength() - , 'minLength' => $meta->get_source()->minLength() - , 'regfield' => $regfield - , 'multi' => $meta->is_multi() - , 'separator' => $separator + 'meta_struct_id' => $meta->get_id() + , 'name' => $meta->get_name() + , '_status' => 0 + , '_value' => '' + , '_sgval' => array() + , 'required' => $meta->is_required() + , 'readonly' => $meta->is_readonly() + , 'type' => $meta->get_type() + , 'format' => $format + , 'explain' => $explain + , 'tbranch' => $meta->get_tbranch() + , 'maxLength' => $meta->get_source()->maxlength() + , 'minLength' => $meta->get_source()->minLength() + , 'regfield' => $regfield + , 'multi' => $meta->is_multi() + , 'separator' => $separator ); if (trim($meta->get_tbranch()) !== '') @@ -448,7 +457,7 @@ class Edit extends RecordHelper { try { - $reg_record = $this->get_grouping_head(); + $reg_record = $this->get_grouping_head(); $reg_sbas_id = $reg_record->get_sbas_id(); $newsubdef_reg = new record_adapter($reg_sbas_id, $request->get('newrepresent')); @@ -458,7 +467,7 @@ class Edit extends RecordHelper foreach ($newsubdef_reg->get_subdefs() as $name => $value) { - $pathfile = $value->get_pathfile(); + $pathfile = $value->get_pathfile(); $system_file = new system_file($pathfile); $reg_record->substitute_subdef($name, $system_file); } @@ -472,11 +481,11 @@ class Edit extends RecordHelper if (!is_array($request->get('mds'))) return $this; - $sbas_id = (int) $request->get('sbid'); - $databox = \databox::get_instance($sbas_id); - $meta_struct = $databox->get_meta_structure(); + $sbas_id = (int) $request->get('sbid'); + $databox = \databox::get_instance($sbas_id); + $meta_struct = $databox->get_meta_structure(); $write_edit_el = false; - $date_obj = new DateTime(); + $date_obj = new DateTime(); foreach ($meta_struct->get_elements() as $meta_struct_el) { if ($meta_struct_el->get_metadata_namespace() == "PHRASEANET" && $meta_struct_el->get_metadata_tagname() == 'tf-editdate') @@ -502,7 +511,7 @@ class Edit extends RecordHelper if (!array_key_exists($key, $elements)) continue; - $statbits = $rec['status']; + $statbits = $rec['status']; $editDirty = $rec['edit']; if ($editDirty == '0') @@ -515,28 +524,38 @@ class Edit extends RecordHelper $record->set_metadatas($rec['metadatas']); } - if ($write_edit_el instanceof \Acmedatabox_field) + /** + *todo : this should not work + */ + if ($write_edit_el instanceof \databox_field) { $fields = $record->get_caption()->get_fields(array($write_edit_el->get_name())); $field = array_pop($fields); - + + $meta_id = null; + + if($field && !$field->is_multi()) + { + $meta_id = array_pop($field->get_values())->getId(); + } + $metas = array( - array( - 'meta_struct_id' => $write_edit_el->get_id() - , 'meta_id' => ($field ? $field->get_meta_id() : null) - , 'value' => array($date_obj->format('Y-m-d h:i:s')) - ) + array( + 'meta_struct_id' => $write_edit_el->get_id() + , 'meta_id' => $meta_id + , 'value' => array($date_obj->format('Y-m-d h:i:s')) + ) ); - + $record->set_metadatas($metas); } - $newstat = $record->get_status(); + $newstat = $record->get_status(); $statbits = ltrim($statbits, 'x'); if (!in_array($statbits, array('', 'null'))) { $mask_and = ltrim(str_replace( - array('x', '0', '1', 'z'), array('1', 'z', '0', '1'), $statbits), '0'); + array('x', '0', '1', 'z'), array('1', 'z', '0', '1'), $statbits), '0'); if ($mask_and != '') $newstat = \databox_status::operation_and_not($newstat, $mask_and); @@ -553,14 +572,14 @@ class Edit extends RecordHelper if ($statbits != '') { $appbox->get_session() - ->get_logger($record->get_databox()) - ->log($record, Session_Logger::EVENT_STATUS, '', ''); + ->get_logger($record->get_databox()) + ->log($record, Session_Logger::EVENT_STATUS, '', ''); } if ($editDirty) { $appbox->get_session() - ->get_logger($record->get_databox()) - ->log($record, Session_Logger::EVENT_EDIT, '', ''); + ->get_logger($record->get_databox()) + ->log($record, Session_Logger::EVENT_EDIT, '', ''); } }