function doNotificationsMarkReadAction() { $worker = UsermeetApplication::getActiveWorker(); @($view_id = DevblocksPlatform::importGPC($_REQUEST['view_id'], 'string', '')); @($row_ids = DevblocksPlatform::importGPC($_REQUEST['row_id'], 'array', array())); if (is_array($row_ids) && !empty($row_ids)) { DAO_WorkerEvent::updateWhere(array(DAO_WorkerEvent::IS_READ => 1), sprintf("%s = %d AND %s IN (%s)", DAO_WorkerEvent::WORKER_ID, $worker->id, DAO_WorkerEvent::ID, implode(',', $row_ids))); DAO_WorkerEvent::clearCountCache($worker->id); } $myEventsView = Um_AbstractViewLoader::getView($view_id); $myEventsView->render(); }
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 = Um_AbstractViewLoader::getView($id); $view->doCustomize($columns, $num_rows); $active_worker = UsermeetApplication::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 Um_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)); // } Um_AbstractViewLoader::setView($id, $view); $view->render(); }
function exportTmxAction() { $defaults = new Um_AbstractViewModel(); $defaults->class_name = 'Um_TranslationView'; $defaults->id = Um_TranslationView::DEFAULT_ID; $view = Um_AbstractViewLoader::getView(Um_TranslationView::DEFAULT_ID, $defaults); // Extract every result from the view list($results, $null) = DAO_Translation::search($view->params, -1, 0, SearchFields_Translation::STRING_ID, true, false); // Build TMX outline $xml = simplexml_load_string('<?xml version="1.0" encoding="' . LANG_CHARSET_CODE . '"?>' . '<!DOCTYPE tmx SYSTEM "tmx14.dtd">' . '<tmx version="1.4">' . '<body></body>' . '</tmx>'); /* @var $xml SimpleXMLElement */ $namespaces = $xml->getNamespaces(true); $codes = array(); // Loop translated strings if (is_array($results)) { foreach ($results as $result) { $string_id = $result[SearchFields_Translation::STRING_ID]; $lang_code = $result[SearchFields_Translation::LANG_CODE]; $string_default = $result[SearchFields_Translation::STRING_DEFAULT]; $string_override = $result[SearchFields_Translation::STRING_OVERRIDE]; $codes[$lang_code] = 1; $string = !empty($string_override) ? $string_override : $string_default; // [TODO] Nest multiple <tuv> in a single <tu> parent $eTu =& $xml->body->addChild('tu'); /* @var $eTu SimpleXMLElement */ $eTu->addAttribute('tuid', $string_id); $eTuv =& $eTu->addChild('tuv'); /* @var $eTuv SimpleXMLElement */ $eTuv->addAttribute('xml:lang', $lang_code, 'http://www.w3.org/XML/1998/namespace'); $eSeg =& $eTuv->addChild('seg', htmlspecialchars($string)); /* @var $eSeg SimpleXMLElement */ } } $imp = new DOMImplementation(); // $dtd = $imp->createDocumentType('tmx', '', 'tmx14.dtd'); // $doc = $imp->createDocument("", "", $dtd); $doc = $imp->createDocument("", ""); $doc->encoding = LANG_CHARSET_CODE; $doc->formatOutput = true; $simplexml = dom_import_simplexml($xml); /* @var $dom DOMElement */ $simplexml = $doc->importNode($simplexml, true); $simplexml = $doc->appendChild($simplexml); $filename = "portsensor_lang_" . implode('_', array_keys($codes)) . ".xml"; header("Content-type: text/xml"); header("Content-Disposition: attachment; filename=\"{$filename}\""); echo $doc->saveXML(); }
function doWorkersBulkUpdateAction() { // Checked rows @($ids_str = DevblocksPlatform::importGPC($_REQUEST['ids'], 'string')); $ids = DevblocksPlatform::parseCsvString($ids_str); // Filter: whole list or check @($filter = DevblocksPlatform::importGPC($_REQUEST['filter'], 'string', '')); // View @($view_id = DevblocksPlatform::importGPC($_REQUEST['view_id'], 'string')); $view = Um_AbstractViewLoader::getView($view_id); // Worker fields @($is_disabled = trim(DevblocksPlatform::importGPC($_POST['is_disabled'], 'string', ''))); $do = array(); // Do: Disabled if (0 != strlen($is_disabled)) { $do['is_disabled'] = $is_disabled; } // Do: Custom fields $do = DAO_CustomFieldValue::handleBulkPost($do); $view->doBulkUpdate($filter, $do, $ids); $view->render(); return; }