예제 #1
0
 private function getMappingFieldValuesIndexedByTracker(Tracker $tracker)
 {
     $mappings = array();
     foreach ($this->dao->searchMappingFieldValues($tracker->getId()) as $row) {
         $field = $this->element_factory->getFieldById($row['field_id']);
         $value = $field->getListValueById($row['value_id']);
         $mappings[$row['tracker_id']][$row['field_id']][$row['value_id']] = new Cardwall_OnTop_Config_ValueMapping($value, $row['column_id']);
     }
     return $mappings;
 }
예제 #2
0
 /**
  * @see Cardwall_OnTop_Config_Command::execute()
  */
 public function execute(Codendi_Request $request)
 {
     if ($request->get('column')) {
         $deleted_columns = 0;
         foreach ($request->get('column') as $id => $column_definition) {
             if (empty($column_definition['label'])) {
                 $this->value_dao->deleteForColumn($this->tracker->getId(), $id);
                 $this->dao->delete($this->tracker->getId(), $id);
                 $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_cardwall', 'on_top_column_removed'));
                 $deleted_columns++;
             }
         }
         if (count($request->get('column')) === $deleted_columns) {
             $this->field_dao->deleteCardwall($this->tracker->getId());
         }
     }
 }
 private function saveValuesMapping(array $mapping_tracker_info, Tracker $mapping_tracker, Tracker_FormElement $field)
 {
     if (empty($mapping_tracker_info['values']) || !is_array($mapping_tracker_info['values'])) {
         return;
     }
     $nb_changes = 0;
     $mapping_changed = false;
     foreach ($mapping_tracker_info['values'] as $column_id => $values) {
         if ($this->mappingValuesChanged($mapping_tracker, $column_id, $values)) {
             $mapping_changed = true;
             $this->value_dao->deleteAllFieldValues($this->tracker->getId(), $mapping_tracker->getId(), $field->getId(), $column_id);
             foreach ($values as $value_id) {
                 $nb_changes += $this->value_dao->save($this->tracker->getId(), $mapping_tracker->getId(), $field->getId(), (int) $value_id, $column_id);
             }
         }
     }
     if ($mapping_changed && $nb_changes > 0) {
         $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_cardwall', 'on_top_mapping_values_changed', array($field->getLabel())));
     }
 }
 private function delete(Tracker $mapping_tracker)
 {
     return $this->dao->delete($this->tracker->getId(), $mapping_tracker->getId()) && $this->value_dao->delete($this->tracker->getId(), $mapping_tracker->getId());
 }