function saveTabBucketsAction() { @($team_id = DevblocksPlatform::importGPC($_REQUEST['team_id'], 'integer')); @($active_worker = CerberusApplication::getActiveWorker()); if (!$active_worker->isTeamManager($team_id) && !$active_worker->is_superuser) { return; } // Inbox assignable @($inbox_assignable = DevblocksPlatform::importGPC($_REQUEST['inbox_assignable'], 'integer', 0)); DAO_GroupSettings::set($team_id, DAO_GroupSettings::SETTING_INBOX_IS_ASSIGNABLE, intval($inbox_assignable)); //========== BUCKETS @($ids = DevblocksPlatform::importGPC($_REQUEST['ids'], 'array')); @($add_str = DevblocksPlatform::importGPC($_REQUEST['add'], 'string')); @($pos = DevblocksPlatform::importGPC($_REQUEST['pos'], 'array')); @($names = DevblocksPlatform::importGPC($_REQUEST['names'], 'array')); @($assignables = DevblocksPlatform::importGPC($_REQUEST['is_assignable'], 'array')); @($deletes = DevblocksPlatform::importGPC($_REQUEST['deletes'], 'array')); // Updates if (!empty($ids)) { $cats = DAO_Bucket::getList($ids); foreach ($ids as $idx => $id) { @($cat = $cats[$id]); if (is_object($cat)) { $is_assignable = false === array_search($id, $assignables) ? 0 : 1; $fields = array(DAO_Bucket::NAME => $names[$idx], DAO_Bucket::POS => intval($pos[$idx]), DAO_Bucket::IS_ASSIGNABLE => intval($is_assignable)); DAO_Bucket::update($id, $fields); } } } // Adds: Sort and insert team categories $categories = DevblocksPlatform::parseCrlfString($add_str); if (is_array($categories)) { foreach ($categories as $category) { $cat_id = DAO_Bucket::create($category, $team_id); } } if (!empty($deletes)) { DAO_Bucket::delete(array_values($deletes)); } DevblocksPlatform::redirect(new DevblocksHttpResponse(array('groups', $team_id, 'buckets'))); }