Example #1
0
 /**
  * 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();
 }
 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);
 }
Example #3
0
 * You should have received a copy of the GNU Affero General Public
 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
 *
 */
/** @var $l OC_L10N */
/** @var $theme OC_Defaults */
/** @var $_ array */
/** @var $displayHelper \OCA\Activity\Display */
/** @var $dateTimeFormatter \OCP\IDateTimeFormatter */
$displayHelper = $_['displayHelper'];
$dateTimeFormatter = $_['dateTimeFormatter'];
$lastDate = null;
foreach ($_['activity'] as $event) {
    // group by date
    // TODO: use more efficient way to group by date (don't group by localized string...)
    $currentDate = (string) \OCP\Template::relative_modified_date($event['timestamp'], true);
    // new date group
    if ($currentDate !== $lastDate) {
        // not first date group ?
        if ($lastDate !== null) {
            ?>
	</div>
</div>

<?php 
        }
        $lastDate = $currentDate;
        ?>
<div class="section activity-section group" data-date="<?php 
        p($currentDate);
        ?>