/** * Get the template for a specific activity-event in the activities * * @param array $activity An array with all the activity data in it * @return string */ public function show($activity) { $tmpl = new Template('activity', 'stream.item'); $tmpl->assign('formattedDate', $this->dateTimeFormatter->formatDateTime($activity['timestamp'])); $tmpl->assign('formattedTimestamp', Template::relative_modified_date($activity['timestamp'])); if (strpos($activity['subjectformatted']['markup']['trimmed'], '<a ') !== false) { // We do not link the subject as we create links for the parameters instead $activity['link'] = ''; } $tmpl->assign('event', $activity); if ($activity['file']) { $this->view->chroot('/' . $activity['affecteduser'] . '/files'); $exist = $this->view->file_exists($activity['file']); $is_dir = $this->view->is_dir($activity['file']); $tmpl->assign('previewLink', $this->getPreviewLink($activity['file'], $is_dir)); // show a preview image if the file still exists $mimeType = Files::getMimeType($activity['file']); if ($mimeType && !$is_dir && $this->preview->isMimeSupported($mimeType) && $exist) { $tmpl->assign('previewImageLink', $this->urlGenerator->linkToRoute('core_ajax_preview', array('file' => $activity['file'], 'x' => 150, 'y' => 150))); } else { $mimeTypeIcon = Template::mimetype_icon($is_dir ? 'dir' : $mimeType); $mimeTypeIcon = substr($mimeTypeIcon, -4) === '.png' ? substr($mimeTypeIcon, 0, -4) . '.svg' : $mimeTypeIcon; $tmpl->assign('previewImageLink', $mimeTypeIcon); $tmpl->assign('previewLinkIsDir', true); } } return $tmpl->fetchPage(); }
/** * @return TemplateResponse */ public function displayPanel() { $lastUpdateCheck = $this->dateTimeFormatter->formatDateTime($this->config->getAppValue('core', 'lastupdatedat')); $channels = ['daily', 'beta', 'stable', 'production']; $currentChannel = \OCP\Util::getChannel(); // Remove the currently used channel from the channels list if (($key = array_search($currentChannel, $channels)) !== false) { unset($channels[$key]); } $updateState = $this->updateChecker->getUpdateState(); $params = ['isNewVersionAvailable' => $updateState === [] ? false : true, 'lastChecked' => $lastUpdateCheck, 'currentChannel' => $currentChannel, 'channels' => $channels, 'newVersionString' => $updateState === [] ? '' : $updateState['updateVersion']]; return new TemplateResponse($this->appName, 'admin', $params, ''); }
public function fetch($page, $user, $filter = 'all', $objecttype = '', $objectid = 0) { $pageOffset = $page - 1; $filter = $this->data->validateFilter($filter); $activities = $this->data->read($this->helper, $this->settings, $pageOffset * self::DEFAULT_PAGE_SIZE, self::DEFAULT_PAGE_SIZE, $filter, $user, $objecttype, $objectid); $preparedActivities = []; foreach ($activities as $activity) { $activity['relativeTimestamp'] = (string) Template::relative_modified_date($activity['timestamp'], true); $activity['readableTimestamp'] = (string) $this->dateTimeFormatter->formatDate($activity['timestamp']); $activity['relativeDateTimestamp'] = (string) Template::relative_modified_date($activity['timestamp']); $activity['readableDateTimestamp'] = (string) $this->dateTimeFormatter->formatDateTime($activity['timestamp']); if (strpos($activity['subjectformatted']['markup']['trimmed'], '<a ') !== false) { // We do not link the subject as we create links for the parameters instead $activity['link'] = ''; } $activity['previews'] = []; if ($activity['object_type'] === 'files' && !empty($activity['files'])) { foreach ($activity['files'] as $objectId => $objectName) { if ((int) $objectId === 0 || $objectName === '') { // No file, no preview continue; } $activity['previews'][] = $this->getPreview($activity['affecteduser'], (int) $objectId, $objectName); if (sizeof($activity['previews']) >= self::MAX_NUM_THUMBNAILS) { // Don't want to clutter the page, so we stop after a few thumbnails break; } } } else { if ($activity['object_type'] === 'files' && $activity['object_id']) { $activity['previews'][] = $this->getPreview($activity['affecteduser'], (int) $activity['object_id'], $activity['file']); } } $preparedActivities[] = $activity; } return new JSONResponse($preparedActivities); }