/**
  * 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);
 }
Exemple #3
0
 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");
 }
Exemple #13
0
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);
 }