/** * Store a newly created resource in storage. * * @return Response */ public function store() { // Validate the inputs $rules = array('name' => 'required|alpha_dash|unique:widgets,name', 'description' => 'required'); // Validate the inputs $validator = Validator::make(Input::all(), $rules); // Check if the form validates with success if ($validator->passes()) { // Get the inputs, with some exceptions $inputs = Input::except('csrf_token'); $this->widget->name = $inputs['name']; $this->widget->description = $inputs['description']; if ($this->widget->save($rules)) { // Redirect to the new widget page return Redirect::to('widgets')->with('success', Lang::get('widget/messages.create.success')); } else { // Redirect to the widget create page //var_dump($this->widget); return Redirect::to('widgets/create')->with('error', Lang::get('widget/messages.create.error')); } } else { // Form validation failed return Redirect::to('widgets/create')->withInput()->withErrors($validator); } }
/** * saves current widget data into the DB config * @param string $old_placeholder * @return boolean */ public function save($old_placeholder = NULL) { if (isset(Kohana::$_POST_ORIG['text_body'])) { $this->text_body = Kohana::$_POST_ORIG['text_body']; } return parent::save($old_placeholder); }
public function widget_create($tipo) { $widget = new Widget(); $widget->nombre = 'Nuevo widget'; $widget->tipo = $tipo; $widget->cuenta_id = UsuarioBackendSesion::usuario()->cuenta_id; $widget->save(); redirect($this->input->server('HTTP_REFERER')); }
/** * save * -------------------------------------------------- * Overrides save to request a new quote. * @return None * -------------------------------------------------- */ public function save(array $options = array()) { /* Calling collectData only if first creation. */ if (is_null($this->id)) { parent::save(); $this->collectData(); } else { parent::save(); } }
/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $this->addToolbar(); $model = new Widget(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['Widget'])) { $model->attributes = $_POST['Widget']; if ($model->save()) { $this->redirect(array('index')); } } $this->render('form', array('model' => $model)); }
public function actionAddwidget() { if (isset($_POST['widget'])) { $model = new Widget(); $model->attributes = $_POST['widget']; $model->taxonomy = 'widget'; if ($model->save()) { $message = "<strong>Well done!</strong> You successfully Add widget"; Yii::app()->user->setFlash('info', $message); } else { Yii::app()->user->setFlash('error', CHtml::errorSummary($model)); } $this->redirect(array('edit', 'id' => $model->groups)); } else { throw new CHttpException(404, 'The requested page does not exist.'); } }
public static function wizard($step = NULL) { // save the widget $widgetData = array(); $widgetJson = json_encode($widgetData); $widget = new Widget(); $widget->widget_name = 'API widget'; $widget->widget_type = 'api'; $widget->widget_provider = 'api'; $widget->widget_source = $widgetJson; $widget->dashboard_id = Auth::user()->dashboards()->first()->id; $widget->position = '{"size_x":3,"size_y":3,"col":1,"row":1}'; $widget->widget_ready = false; # widget needs data to load to show properly $widget->save(); $apiKey = base64_encode(json_encode(array('wid' => $widget->id))); $url = 'https://dashboard.tryfruit.com/api/0.1/' . $apiKey . '/'; return View::make('connect.connect-api')->with(array('url' => $url, 'isBackgroundOn' => Auth::user()->isBackgroundOn, 'dailyBackgroundURL' => Auth::user()->dailyBackgroundURL())); }
public static function wizard($step = NULL) { switch ($step) { case 'init': return View::make('connect.connect-text')->with(array('step' => 'select-source', 'isBackgroundOn' => Auth::user()->isBackgroundOn, 'dailyBackgroundURL' => Auth::user()->dailyBackgroundURL())); break; case 'source-selected': switch (Input::get('source')) { case 'text': return View::make('connect.connect-text')->with(array('step' => 'enter-text', 'isBackgroundOn' => Auth::user()->isBackgroundOn, 'dailyBackgroundURL' => Auth::user()->dailyBackgroundURL())); break; case 'google-spreadsheet-text-cell': return Redirect::to('connect/new/googlespreadsheet/set-type')->with(array('type' => Input::get('source'))); break; case 'google-spreadsheet-text-column-random': return Redirect::to('connect/new/googlespreadsheet/set-type')->with(array('type' => Input::get('source'))); break; default: return Redirect::route('connect.connect')->with('error', 'Something went wrong.'); break; } break; # /source-selected # /source-selected case 'save-text': $widget = new Widget(); $widget->widget_name = 'text widget'; $widget->widget_type = 'text'; $widget->widget_provider = 'text'; $widget->widget_source = Input::get('text'); $widget->widget_ready = true; $widget->dashboard_id = Auth::user()->dashboards()->first()->id; $widget->position = '{"size_x":6,"size_y":2,"col":1,"row":1}'; $widget->save(); return Redirect::route('dashboard.dashboard')->with('success', 'Text widget added.'); break; default: return Redirect::route('connect.connect')->with('error', 'Something went wrong.'); break; } # / switch ($step) }
public static function wizard($step = NULL) { // save the widget $widgetData = array(); $widgetJson = json_encode($widgetData); $widget = new Widget(); $widget->widget_name = 'note widget'; $widget->widget_type = 'note'; $widget->widget_provider = 'note'; $widget->widget_source = $widgetJson; $widget->dashboard_id = Auth::user()->dashboards()->first()->id; $widget->position = '{"size_x":3,"size_y":3,"col":1,"row":1}'; $widget->save(); // save an empty data line $text = new Data(); $text->widget_id = $widget->id; $text->data_object = ''; $text->date = Carbon::now()->toDateString(); $text->save(); return Redirect::route('dashboard.dashboard')->with('success', 'Note widget added.'); }
public static function wizard($step = NULL) { switch ($step) { case 'init': return View::make('connect.connect-iframe')->with(array('isBackgroundOn' => Auth::user()->isBackgroundOn, 'dailyBackgroundURL' => Auth::user()->dailyBackgroundURL())); break; case 'set-url': $url = Input::get('fullURL'); # save the widget $widget_data = array('iframeURL' => $url); $widget_json = json_encode($widget_data); $widget = new Widget(); $widget->widget_name = 'iframe widget'; $widget->widget_type = 'iframe'; $widget->widget_provider = 'iframe'; $widget->widget_source = $widget_json; $widget->dashboard_id = Auth::user()->dashboards()->first()->id; $widget->position = '{"size_x":6,"size_y":8,"col":1,"row":1}'; $widget->save(); return Redirect::route('dashboard.dashboard')->with('success', 'iframe widget added.'); break; } # / switch ($step) }
private function handle_op_create_new_badge($params) { $title = $params['new_widget_name']; // sanitize name $new_name = preg_replace("~[^A-Za-z0-9\-\_]~", "_", $title); // make sure we don't already have one with that name try { $this->user->load_widget($new_name); // that should throw an exception; if it doesn't, the name is a duplicate return new Badge_Redirect("$this->url?focus=new_widget_name&error=".urlencode("You already have a widget called $new_name. Please select another name.")); } catch (PAException $e) { switch ($e->getCode()) { case ROW_DOES_NOT_EXIST: // Good - this is what we want (no existing widget with this name). break; default: // A real error occurred; pass it through. throw $e; } } $widget = new Widget($this->user->user_id); $widget->badge_tag = $new_name; $widget->title = $title; $widget->save(); return new Badge_Redirect("$this->url/$new_name"); }
public function createwidget() { if (Input::has("idwidget")) { $widget = Widget::find(Input::get("idwidget")); } else { $widget = new Widget(); } $widget->name = Input::get("name"); $widget->description = Input::get("widgeteditor"); $widget->save(); return Redirect::route("widgetcreator"); }
Model::factory('ModelWithFilters')->name_is('Bob')->find_many(); $expected = "SELECT * FROM `model_with_filters` WHERE `name` = 'Bob'"; Tester::check_query("Filter with arguments", $expected); class Widget extends Model { } $widget = Model::factory('Widget'); $widget->name = "Fred"; $widget->age = 10; $widget->save(); $expected = "INSERT INTO `widget` (`name`, `age`) VALUES ('Fred', '10')"; Tester::check_query("Insert data", $expected); $widget = new Widget(); $widget->name = "Bob"; $widget->age = 15; $widget->save(); $expected = "INSERT INTO `widget` (`name`, `age`) VALUES ('Bob', '15')"; Tester::check_query("Insert data (alt)", $expected); $widget = Model::factory('Widget')->find_one(1); $widget->name = "Fred"; $widget->age = 10; $widget->save(); $expected = "UPDATE `widget` SET `name` = 'Fred', `age` = '10' WHERE `id` = '1'"; Tester::check_query("Update data", $expected); $widget = Model::factory('Widget')->find_one(1); $widget->delete(); $expected = "DELETE FROM `widget` WHERE `id` = '1'"; Tester::check_query("Delete data", $expected); class Profile extends Model { public function user()
function dashboard_plugin_actions() { global $myUser, $_, $conf; switch ($_['action']) { case 'GET_WIDGETS': header('Content-type: application/json'); require_once dirname(__FILE__) . '/Dashboard.class.php'; require_once dirname(__FILE__) . '/Widget.class.php'; $dashManager = new Dashboard(); $dashManager->change(array('default' => '0')); $dashManager->change(array('default' => '1'), array('id' => $_['dashboard'])); $widgetManager = new Widget(); $model = array(); Plugin::callHook("widgets", array(&$model)); $widgets = $widgetManager->loadAll(array('dashboard' => $_['dashboard']), 'cell'); $data = array(); foreach ($widgets as $widget) { $data[] = array('data' => $widget->data, 'column' => $widget->column, 'id' => $widget->id, 'cell' => $widget->cell, 'minified' => $widget->minified, 'model' => $widget->model); } echo json_encode(array('model' => $model, 'data' => $data)); break; case 'ADD_WIDGET': header('Content-type: application/json'); require_once dirname(__FILE__) . '/Widget.class.php'; $response = array(); $widget = new Widget(); $widget->data = json_encode($_POST['data']); $widget->column = $_['column']; $widget->cell = $_['cell']; $widget->model = $_['model']; $widget->dashboard = $_['view']; $widget->save(); $response['id'] = $widget->id; echo json_encode($response); break; case 'MINIMIZE_WIDGET': header('Content-type: application/json'); require_once dirname(__FILE__) . '/Widget.class.php'; $response = array(); $widgetManager = new Widget(); $widgetManager = $widgetManager->getById($_['id']); $widgetManager->minified = 1; $widgetManager->save(); echo json_encode($response); break; case 'MAXIMIZE_WIDGET': header('Content-type: application/json'); require_once dirname(__FILE__) . '/Widget.class.php'; $response = array(); $widgetManager = new Widget(); $widgetManager = $widgetManager->getById($_['id']); $widgetManager->minified = 0; $widgetManager->save(); echo json_encode($response); break; case 'MOVE_WIDGET': header('Content-type: application/json'); require_once dirname(__FILE__) . '/Widget.class.php'; $response = array(); $widgetManager = new Widget(); foreach ($_['sort']['cells'] as $id => $sort) { $widgetManager->change(array('cell' => $sort['cell'], 'column' => $sort['column']), array('id' => $id)); } echo json_encode($response); break; case 'DELETE_WIDGET': header('Content-type: application/json'); require_once dirname(__FILE__) . '/Widget.class.php'; $response = array(); $widgetManager = new Widget(); $widgetManager->delete(array('id' => $_['id'])); echo json_encode($response); break; case 'DASH_ADD_VIEW': global $_, $myUser; require_once dirname(__FILE__) . '/Dashboard.class.php'; $entity = new Dashboard(); $entity->user = $myUser->getId(); $entity->label = $_['viewName']; $entity->default = 0; $entity->save(); header('location: setting.php?section=preference&block=dashboard'); break; case 'DASH_DELETE_VIEW': global $_, $myUser; require_once dirname(__FILE__) . '/Dashboard.class.php'; $entity = new Dashboard(); $entity->delete(array('id' => $_['id'])); header('location: setting.php?section=preference&block=dashboard'); break; } }
public static function wizard($step = NULL) { # user is the authenticated user $user = Auth::user(); # we will need a client for spreadsheet feeds + email + offline (to get a refreshtoken) $client = GooglespreadsheetHelper::setGoogleClient(); switch ($step) { case 'init': # render wizard step #1 return View::make('connect.connect-googlespreadsheet')->with(array('step' => 'choose-type', 'isBackgroundOn' => Auth::user()->isBackgroundOn, 'dailyBackgroundURL' => Auth::user()->dailyBackgroundURL())); break; # /case 'init' # /case 'init' case 'set-type': Log::info("session - " . Session::get('type')); # save the widget type in SESSION if (Input::get('type')) { Session::put('type', Input::get('type')); } Log::info("session - " . Session::get('type')); if (!$user->isGoogleSpreadsheetConnected()) { # if the user hasn't authorized with google # go to google oauth page $url = $client->createAuthUrl(); return Redirect::to($url); break; } else { # otherwise render the spreadsheet chooser wizard page # get the spreadsheet list $access_token = GooglespreadsheetHelper::getGoogleAccessToken($client, $user); $serviceRequest = new DefaultServiceRequest($access_token); ServiceRequestFactory::setInstance($serviceRequest); $spreadsheetService = new Google\Spreadsheet\SpreadsheetService(); $spreadsheetFeed = $spreadsheetService->getSpreadsheets(); # render choose-spreadsheet wizard step return View::make('connect.connect-googlespreadsheet')->with(array('step' => 'choose-spreadsheet', 'spreadsheetFeed' => $spreadsheetFeed, 'isBackgroundOn' => Auth::user()->isBackgroundOn, 'dailyBackgroundURL' => Auth::user()->dailyBackgroundURL(), 'type' => Session::get('type'))); } break; # / case 'set-type' # / case 'set-type' case 'set-spreadsheet': Log::info("session - " . Session::get('type')); if (Input::get('type')) { Session::put('type', Input::get('type')); } Log::info("session - " . Session::get('type')); # save the spreadsheet ID in SESSION Session::put("spreadsheetId", Input::get('spreadsheetId')); # init service $access_token = GooglespreadsheetHelper::getGoogleAccessToken($client, $user); $serviceRequest = new DefaultServiceRequest($access_token); ServiceRequestFactory::setInstance($serviceRequest); # get the spreadsheet they asked for in the POST $spreadsheetService = new Google\Spreadsheet\SpreadsheetService(); $spreadsheet = $spreadsheetService->getSpreadsheetById(Input::get('spreadsheetId')); # save the spreadsheet name in SESSION Session::put("spreadsheetName", $spreadsheet->getTitle()); # get the worksheet list for the selected spreadsheet $worksheetFeed = $spreadsheet->getWorksheets(); # render choose-worksheet wizard step return View::make('connect.connect-googlespreadsheet')->with(array('step' => 'choose-worksheet', 'worksheetFeed' => $worksheetFeed, 'isBackgroundOn' => Auth::user()->isBackgroundOn, 'dailyBackgroundURL' => Auth::user()->dailyBackgroundURL(), 'type' => Session::get('type'))); break; # /case 'set-spreadsheet' # /case 'set-spreadsheet' case 'set-worksheet': Log::info("session - " . Session::get('type')); if (Input::get('type')) { Session::put('type', Input::get('type')); } Log::info("session - " . Session::get('type')); # save the worksheet name in SESSION Session::put("worksheetName", Input::get('worksheetName')); # save the widget $widget_data = array('googleSpreadsheetId' => Session::get('spreadsheetId'), 'googleWorksheetName' => Session::get('worksheetName')); $widget_json = json_encode($widget_data); $widget = new Widget(); $widget->widget_name = Session::get('worksheetName') . ' - ' . Session::get('spreadsheetName'); $widget->widget_type = Session::get('type'); $widget->widget_provider = 'googlespreadsheet'; $widget->widget_source = $widget_json; $widget->widget_ready = false; $widget->dashboard_id = $user->dashboards()->first()->id; $widget->position = '{"size_x":3,"size_y":4,"col":1,"row":1}'; $widget->save(); return Redirect::route('dashboard.dashboard')->with('success', 'Google Spreadsheet widget added.'); break; # / case 'set-worksheet' # / case 'set-worksheet' default: // input has no step, this is the google auth return part # we got a code in GET from google if (Input::has('code')) { # lets get an access token try { $client->authenticate(Input::get('code')); } catch (Exception $e) { GooglespreadsheetHelper::disconnect(); return Redirect::route('connect.connect')->with('error', 'Something went wrong, try again please.'); } $credentials = $client->getAccessToken(); // big JSON stuff # lets make it an associative array $tokens_decoded = json_decode($credentials, true); # lets check if we have a refresh token already $refresh_token = $user->googleSpreadsheetRefreshToken; if (strlen($refresh_token) < 10) { # nope, let's use the one we got now $refresh_token = $tokens_decoded['refresh_token']; } # database save the access-stuff-JSON and the refresh token $user->googleSpreadsheetCredentials = $credentials; $user->googleSpreadsheetRefreshToken = $refresh_token; $user->save(); # good job, notify intercom IntercomHelper::connected($user, 'googlespreadsheet'); # auth $access_token = GooglespreadsheetHelper::getGoogleAccessToken($client, $user); # get the spreadsheet list $serviceRequest = new DefaultServiceRequest($access_token); ServiceRequestFactory::setInstance($serviceRequest); $spreadsheetService = new Google\Spreadsheet\SpreadsheetService(); $spreadsheetFeed = $spreadsheetService->getSpreadsheets(); # render choose-spreadsheet wizard step return View::make('connect.connect-googlespreadsheet')->with(array('step' => 'choose-spreadsheet', 'spreadsheetFeed' => $spreadsheetFeed, 'isBackgroundOn' => Auth::user()->isBackgroundOn, 'dailyBackgroundURL' => Auth::user()->dailyBackgroundURL())); } else { return View::make('connect.connect')->with(array('error' => 'Something went wrong with the Google authentication.', 'isBackgroundOn' => Auth::user()->isBackgroundOn, 'dailyBackgroundURL' => Auth::user()->dailyBackgroundURL())); } break; # / default } # /switch ($step) }
private static function update(Context $ctx, $name, array $info) { $widgets = Widget::loadWidgets($ctx); if (isset($info['pages'])) { $pages = $info['pages']; unset($info['pages']); } else { $pages = null; } // Список виджетов без текущего. $reduced = array_diff(array_keys($widgets), array($name)); // Удаляем лишнее из списка маршрутов. $routes = self::remove_dead_widgets(BaseRoute::load($ctx), $reduced); // Цепляем текущий виджет к выбранным страницам. if (null !== $pages) { foreach ($pages as $page) { if (!array_key_exists($route = $page, $routes)) { throw new PageNotFoundException(t('Страница %page перестала существовать.', array('%page' => $page))); } $pwlist = isset($routes[$route]['widgets']) ? (array) $routes[$route]['widgets'] : array(); $pwlist[] = $name; sort($pwlist); $routes[$route]['widgets'] = array_unique($pwlist); } } $widgets[$name] = $info; Widget::save($widgets); BaseRoute::save($routes); }