Exemplo n.º 1
0
 function doEditWorkspaceAction()
 {
     @($workspace = DevblocksPlatform::importGPC($_POST['workspace'], 'string', ''));
     @($rename_workspace = DevblocksPlatform::importGPC($_POST['rename_workspace'], 'string', ''));
     @($ids = DevblocksPlatform::importGPC($_POST['ids'], 'array', array()));
     @($names = DevblocksPlatform::importGPC($_POST['names'], 'array', array()));
     @($pos = DevblocksPlatform::importGPC($_POST['pos'], 'array', array()));
     @($deletes = DevblocksPlatform::importGPC($_POST['deletes'], 'array', array()));
     $db = DevblocksPlatform::getDatabaseService();
     $active_worker = CerberusApplication::getActiveWorker();
     $visit = CerberusApplication::getVisit();
     $worklists = DAO_WorkerWorkspaceList::getWhere(sprintf("%s = %s", DAO_WorkerWorkspaceList::WORKSPACE, $db->qstr($workspace)));
     // Reorder worklists, rename lists, delete lists, on workspace
     if (is_array($ids) && !empty($ids)) {
         foreach ($ids as $idx => $id) {
             if (false !== array_search($id, $deletes)) {
                 DAO_WorkerWorkspaceList::delete($id);
                 C4_AbstractViewLoader::deleteView('cust_' . $id);
                 // free up a little memory
             } else {
                 if (!isset($worklists[$id])) {
                     continue;
                 }
                 $list_view = $worklists[$id]->list_view;
                 /* @var $list_view Model_WorkerWorkspaceListView */
                 // If the name changed
                 if (isset($names[$idx]) && 0 != strcmp($list_view->title, $names[$idx])) {
                     $list_view->title = $names[$idx];
                     // Save the view in the session
                     $view = C4_AbstractViewLoader::getView('', 'cust_' . $id);
                     $view->name = $list_view->title;
                     C4_AbstractViewLoader::setView('cust_' . $id, $view);
                 }
                 DAO_WorkerWorkspaceList::update($id, array(DAO_WorkerWorkspaceList::LIST_POS => @intval($pos[$idx]), DAO_WorkerWorkspaceList::LIST_VIEW => serialize($list_view)));
             }
         }
     }
     // Rename workspace
     if (!empty($rename_workspace)) {
         $fields = array(DAO_WorkerWorkspaceList::WORKSPACE => $rename_workspace);
         DAO_WorkerWorkspaceList::updateWhere($fields, sprintf("%s = %s AND %s = %d", DAO_WorkerWorkspaceList::WORKSPACE, $db->qstr($workspace), DAO_WorkerWorkspaceList::WORKER_ID, $active_worker->id));
         $workspace = $rename_workspace;
     }
     // Change active tab
     $visit->set(CerberusVisit::KEY_HOME_SELECTED_TAB, 'w_' . $workspace);
     DevblocksPlatform::redirect(new DevblocksHttpResponse(array('home')));
 }
Exemplo n.º 2
0
 function viewSaveCustomizeAction()
 {
     $translate = DevblocksPlatform::getTranslationService();
     @($id = DevblocksPlatform::importGPC($_REQUEST['id']));
     @($columns = DevblocksPlatform::importGPC($_REQUEST['columns'], 'array', array()));
     @($num_rows = DevblocksPlatform::importGPC($_REQUEST['num_rows'], 'integer', 10));
     $num_rows = max($num_rows, 1);
     // make 1 the minimum
     $view = C4_AbstractViewLoader::getView($id);
     $view->doCustomize($columns, $num_rows);
     $active_worker = CerberusApplication::getActiveWorker();
     // Conditional Persist
     if (substr($id, 0, 5) == "cust_") {
         // custom workspace
         $list_view_id = intval(substr($id, 5));
         // Special custom view fields
         @($title = DevblocksPlatform::importGPC($_REQUEST['title'], 'string', $translate->_('views.new_list')));
         $view->name = $title;
         // Persist Object
         $list_view = new Model_WorkerWorkspaceListView();
         $list_view->title = $title;
         $list_view->columns = $view->view_columns;
         $list_view->num_rows = $view->renderLimit;
         $list_view->params = $view->params;
         $list_view->sort_by = $view->renderSortBy;
         $list_view->sort_asc = $view->renderSortAsc;
         DAO_WorkerWorkspaceList::update($list_view_id, array(DAO_WorkerWorkspaceList::LIST_VIEW => serialize($list_view)));
     } else {
         $prefs = new C4_AbstractViewModel();
         $prefs->class_name = get_class($view);
         $prefs->view_columns = $view->view_columns;
         $prefs->renderLimit = $view->renderLimit;
         $prefs->renderSortBy = $view->renderSortBy;
         $prefs->renderSortAsc = $view->renderSortAsc;
         DAO_WorkerPref::set($active_worker->id, 'view' . $view->id, serialize($prefs));
     }
     C4_AbstractViewLoader::setView($id, $view);
     $view->render();
 }