public function closeBacklog(AgileDashboard_Kanban $kanban, PFUser $user) { $user->setPreference(self::COLLAPSE_BACKLOG_PREFERENCE_PREFIX . $kanban->getId(), self::COLLAPSE); }
public function endTour(PFUser $user, Tuleap_Tour $tour, $current_step) { $user->setPreference($tour->name, true); $this->registerCurrentStep($user, $tour, $current_step, true); }
public function forceColumnAutoStacked(Cardwall_Column $column) { $preference_name = $this->getName($column); $this->user->setPreference($preference_name, self::STACK); $column->setAutostack(self::STACK)->setAutostackPreference($preference_name); }
/** * Display a report. Choose the report among * - the requested 'select_report' * - the last viewed report (stored in preferences) * - the default report of this tracker * * If the user request a 'link-artifact-id' then display also manual and recent * panels to ease the selection of artifacts to link * * @param Tracker_IDisplayTrackerLayout $layout Displays the page header and footer * @param Codendi_Request $request The request * @param PFUser $current_user The user who made the request * * @return void */ public function displayAReport(Tracker_IDisplayTrackerLayout $layout, $request, $current_user) { $report = null; //Does the user wants to change its report? if ($request->get('select_report')) { //Is the report id valid if ($report = $this->getReportFactory()->getReportById($request->get('select_report'), $current_user->getid())) { $current_user->setPreference('tracker_' . $this->id . '_last_report', $report->id); } } //If no valid report found. Search the last viewed report for the user if (!$report) { if ($report_id = $current_user->getPreference('tracker_' . $this->id . '_last_report')) { $report = $this->getReportFactory()->getReportById($report_id, $current_user->getid()); } } //If no valid report found. Take the default one if (!$report) { $report = $this->getReportFactory()->getDefaultReportsByTrackerId($this->id); } //If no default one, take the first private one if (!$report) { $report_for_user = $this->getReportFactory()->getReportsByTrackerId($this->id, $current_user->getid()); $report = array_shift($report_for_user); } $link_artifact_id = (int) $request->get('link-artifact-id'); if ($link_artifact_id && !$request->get('report-only')) { $linked_artifact = Tracker_ArtifactFactory::instance()->getArtifactById($link_artifact_id); if (!$linked_artifact) { $err = "Linked artifact not found or doesn't exist"; if (!$request->isAjax()) { $GLOBALS['Response']->addFeedback('error', $err); $GLOBALS['Response']->redirect('/'); } die($err); } if (!$request->isAjax()) { //screwed up $GLOBALS['Response']->addFeedback('error', 'Something is wrong with your request'); $GLOBALS['Response']->redirect(TRACKER_BASE_URL . '/?aid=' . $linked_artifact->getId()); } echo $linked_artifact->fetchTitleWithoutUnsubscribeButton($GLOBALS['Language']->getText('plugin_tracker_artifactlink', 'title_prefix')); echo '<input type="hidden" id="link-artifact-id" value="' . (int) $link_artifact_id . '" />'; echo '<table id="tracker-link-artifact-different-ways" cellpadding="0" cellspacing="0" border="0"><tbody><tr>'; //the fast ways echo '<td id="tracker-link-artifact-fast-ways">'; //Manual echo '<div id="tracker-link-artifact-manual-way">'; echo '<div class="boxtitle">'; echo $GLOBALS['HTML']->getImage('ic/lightning-white.png', array('style' => 'vertical-align:middle')) . ' '; echo $GLOBALS['Language']->getText('plugin_tracker_artifactlink', 'manual_panel_title'); echo '</div>'; echo '<div class="tracker-link-artifact-manual-way-content">'; echo $GLOBALS['Language']->getText('plugin_tracker_artifactlink', 'manual_panel_desc'); echo '<p><label for="link-artifact-manual-field">'; echo $GLOBALS['Language']->getText('plugin_tracker_artifactlink', 'manual_panel_label'); echo '</label><br />'; echo '<input type="text" name="link-artifact[manual]" value="" id="link-artifact-manual-field" />'; echo '</p>'; echo '</div>'; echo '</div>'; //History echo '<div id="tracker-link-artifact-recentitems-way">'; echo '<div class="boxtitle">'; echo $GLOBALS['HTML']->getImage('ic/star-white.png', array('style' => 'vertical-align:middle')) . ' '; echo $GLOBALS['Language']->getText('plugin_tracker_artifactlink', 'recent_panel_title'); echo '</div>'; echo '<div class="tracker-link-artifact-recentitems-way-content">'; if ($recent_items = $current_user->getRecentElements()) { echo $GLOBALS['Language']->getText('plugin_tracker_artifactlink', 'recent_panel_desc'); echo '<ul>'; foreach ($recent_items as $item) { if ($item['id'] != $link_artifact_id) { echo '<li>'; echo '<input type="checkbox" name="link-artifact[recent][]" value="' . (int) $item['id'] . '" /> '; echo $item['link']; echo '</li>'; } } echo '</ul>'; } echo '</div>'; echo '</div>'; //end of fast ways echo '</td>'; //And the slow way (aka need to search) if ($report) { echo '<td><div id="tracker-link-artifact-slow-way">'; echo '<div class="boxtitle">'; echo $GLOBALS['HTML']->getImage('ic/magnifier-white.png', array('style' => 'vertical-align:middle')) . ' '; echo $GLOBALS['Language']->getText('plugin_tracker_artifactlink', 'search_panel_title'); echo '</div>'; echo '<div id="tracker-link-artifact-slow-way-content">'; } } if ($report) { $report->process($layout, $request, $current_user); } elseif (!$link_artifact_id) { $this->displayHeader($layout, $this->name, array()); echo $GLOBALS['Language']->getText('plugin_tracker', 'no_reports_available'); if ($this->userIsAdmin($current_user)) { $action = '?tracker=' . (int) $this->getID() . '&func=create_new_public_report'; echo '<form class="form-inline" action="' . $action . '" method="POST">' . '<fieldset>' . '<legend>' . $GLOBALS['Language']->getText('plugin_tracker', 'create_new_report') . '</legend>' . '<input required type="text" name="new_report_name" placeholder="' . $GLOBALS['Language']->getText('plugin_tracker', 'create_new_report_name') . '" />' . '<button type="submit" class="btn">' . $GLOBALS['Language']->getText('plugin_tracker', 'create_new_report_submit') . '</button>' . '</fieldset></form>'; } $this->displayFooter($layout); } if ($link_artifact_id && !$request->get('report-only')) { if ($report) { echo '</div></div></td>'; //end of slow } echo '</tr></tbody></table>'; //end of ways echo '<div class="tracker-link-artifact-controls">'; echo '<a href="#cancel" onclick="myLightWindow.deactivate(); return false;">« ' . $GLOBALS['Language']->getText('global', 'btn_cancel') . '</a>'; echo ' '; echo '<button name="link-artifact-submit">' . $GLOBALS['Language']->getText('global', 'btn_submit') . '</button>'; echo '</div>'; } }
/** * Toggle the preference. * Should not be called directly unless you know what you do * * @param PFUser $current_user The user * @param string $id the id of the toggler */ public static function togglePreference(PFUser $current_user, $id) { $current_user->setPreference('toggle_' . $id, 1 - (int) $current_user->getPreference('toggle_' . $id)); }