/** * Gets a list of related items based on a string search param called 'term' * * @param string $modelName * @param string $field //the relationship field/method name * * @return array of objects [{id: string} ... {1: 'name'}, ...] */ public function action_search_relation($modelName, $field, $type) { //try to get the object $model = ModelHelper::getModel($modelName); //get the search term $term = Input::get('term', ''); $selectedItems = Input::get('selectedItems', false); //return the rows return Response::json(ModelHelper::getRelationshipSuggestions($model, $field, $type, $selectedItems, $term)); }
<?php use Admin\Libraries\ModelHelper; use Admin\Libraries\Fields\Field; use Admin\Libraries\Column; use Admin\Libraries\Sort; //View Composers //admin index view View::composer('administrator::index', function ($view) { //get a model instance that we'll use for constructing stuff $modelInstance = ModelHelper::getModel($view->modelName); $columns = Column::getColumns($modelInstance); $editFields = Field::getEditFields($modelInstance); $bundleConfig = Bundle::get('administrator'); //add the view fields $view->modelTitle = Config::get('administrator::administrator.models.' . $view->modelName . '.title', $view->modelName); $view->modelSingle = Config::get('administrator::administrator.models.' . $view->modelName . '.single', $view->modelTitle); $view->columns = $columns['columns']; $view->includedColumns = $columns['includedColumns']; $view->primaryKey = $modelInstance::$key; $view->sort = Sort::get($modelInstance)->toArray(); $view->rows = ModelHelper::getRows($modelInstance, $view->sort); $view->editFields = $editFields['arrayFields']; $view->dataModel = $editFields['dataModel']; $view->filters = ModelHelper::getFilters($modelInstance); $view->baseUrl = URL::to_route('admin_index'); $view->bundleHandles = $bundleConfig['handles']; $view->expandWidth = ModelHelper::getExpandWidth($modelInstance); $view->modelInstance = $modelInstance; $view->model = isset($view->model) ? $view->model : false; });
/** * POST method for handling custom actions on the settings page * * @param SettingsConfig $config * * @return JSON */ public function action_settings_custom_action($config) { $model = ModelHelper::getModel($config, $id, false, true); $actionName = Input::get('action_name', false); //get the action and perform the custom action $action = Action::getByName($config, $actionName); $result = $action->perform($model); //if the result is a string, return that as an error. if (is_string($result)) { return Response::json(array('success' => false, 'error' => $result)); } else { if (!$result) { return Response::json(array('success' => false, 'error' => $action->messages['error'])); } else { return Response::json(array('success' => true)); } } }