/** * @param $parameters Parameters * @param $form array * @param $files array * @param $class_name string * @return mixed */ public function run(Parameters $parameters, $form, $files, $class_name) { $element_class_name = Set::elementClassNameOf($class_name); $parameters = $parameters->getObjects(); $list_controller = new Data_List_Controller(); $data_list_settings = Data_List_Settings::current($element_class_name); $list_controller->applyParametersToListSettings($data_list_settings, $parameters, $form); return View::run($parameters, $form, $files, $class_name, 'dataListSetting'); }
/** * @param $class_name string * @param $property_path string */ public function addPropertyToList($class_name, $property_path) { $list_settings = Data_List_Settings::current($class_name); $list_settings->addProperty($property_path); $list_settings->save(); }
/** * Gets properties alias from current list settings * * @todo user must place himself into the list settings matching the import, should search it * @param $class_name string * @return string[] $property_alias = string[string $property_name] */ public static function getPropertiesAlias($class_name) { $list_settings = Data_List_Settings::current($class_name); $properties_alias = []; foreach ($list_settings->properties_title as $property_path => $property_title) { $properties_alias[Names::displayToProperty($property_title)] = $property_path; } return $properties_alias; }
/** * @param $parameters Parameters * @param $form array * @param $class_name string * @return mixed[] */ protected function getViewParameters(Parameters $parameters, $form, $class_name) { $this->class_names = $class_name; $class_name = $parameters->getMainObject()->element_class_name; $parameters = $parameters->getObjects(); $list_settings = Data_List_Settings::current($class_name); $list_settings->cleanup(); $this->applyParametersToListSettings($list_settings, $parameters, $form); $customized_list_settings = $list_settings->getCustomSettings(); $count = new Count(); $data = $this->readData($class_name, $list_settings, $count); $displayed_lines_count = min($data->length(), $list_settings->maximum_displayed_lines_count); $less_twenty = $displayed_lines_count > 20; $more_hundred = $displayed_lines_count < 1000 && $displayed_lines_count < $count->count; $more_thousand = $displayed_lines_count < 1000 && $displayed_lines_count < $count->count; $parameters = array_merge([$class_name => $data], $parameters, ['customized_lists' => $customized_list_settings, 'displayed_lines_count' => $displayed_lines_count, 'less_twenty' => $less_twenty, 'more_hundred' => $more_hundred, 'more_thousand' => $more_thousand, 'reversed' => $this->getReverseClasses($list_settings), 'rows_count' => $count->count, 'search' => $this->getSearchValues($list_settings), 'search_summary' => $this->getSearchSummary($list_settings), 'settings' => $list_settings, 'short_titles' => $this->getShortTitles($list_settings), 'sort_options' => $this->getSortLinks($list_settings), 'sorted' => $this->getSortClasses($list_settings), 'display_start' => $list_settings->start_display_line_number, 'title' => $list_settings->title(), 'titles' => $this->getTitles($list_settings)]); // buttons $parameters['general_buttons'] = $this->getGeneralButtons($class_name, $parameters); $parameters['selection_buttons'] = $this->getSelectionButtons($class_name); if (!isset($customized_list_settings[$list_settings->name])) { unset($parameters['general_buttons']['delete']); } return $parameters; }
/** * @param $class_name string * @param $property_path string */ public function removePropertyFromList($class_name, $property_path) { $list_settings = Data_List_Settings::current($class_name); $list_settings->removeProperty($property_path); $list_settings->save(); }