echo substr($description, 0, 70); if (strlen($description) > 70) { echo '…'; } echo '</p>'; } echo '</td>'; // status if ($t->getStatus() == Task::STATUS_OPEN) { echo '<td class="status good">open</td>'; } else { echo '<td class="status bad">closed</td>'; } // deadline $deadline = $t->getDeadline(); $deadline = empty($deadline) ? '--' : formatTimeTag($deadline); echo '<td class="deadline">' . $deadline . '</td>'; // num needed $numNeeded = $t->getNumNeeded(); $numAccepted = $t->getNumAccepted(); if (empty($numNeeded)) { $stillNeeded = '∞'; } elseif ($numNeeded > $numAccepted) { $stillNeeded = $numNeeded - $numAccepted; } else { $stillNeeded = 0; } echo '<td class="needed">' . $stillNeeded . '</td>'; // role if (!is_null($user)) { // relationship to task
echo '<li class="invited">'; // View Invitation button echo '<input id="invitation-' . $mi->getID() . '" type="button" class="viewInvite" value="View Invitation" />'; // invite box echo '<div id="invite-box-' . $mi->getID() . '" class="invite-box hidden">'; if ($mi->getTrusted()) { echo '<p>' . $inviterLink . ' invited ' . $inviteeLink . ' to join this project as a <a href="' . Url::help() . '">trusted member</a>. (' . formatTimeTag($mi->getDateCreated()) . ')</p>'; } else { echo '<p>' . $inviterLink . ' invited ' . $inviteeLink . ' to join this project. (' . formatTimeTag($mi->getDateCreated()) . ')</p>'; } if ($mi->getInvitationMessage() != null) { echo '<blockquote>' . formatInvitationMessage($mi->getInvitationMessage()) . '</blockquote>'; } echo '<div class="line"></div>'; if ($mi->getResponse() == Invitation::DECLINED) { echo '<p>' . $inviteeLink . ' declined the invitation. (' . formatTimeTag($mi->getDateResponded()) . ')</p>'; if ($mi->getResponseMessage() != null) { echo '<blockquote>' . formatInvitationMessage($mi->getResponseMessage()) . '</blockquote>'; } } else { echo '<p>(no response yet)</p>'; } echo '</div>'; // invitee picture and username if ($mi->getInviteeID() != null) { echo formatUserPicture($mi->getInviteeID(), 'small'); } else { echo formatBlankUserPicture('mailto:' . $mi->getInviteeEmail(), 'small'); } echo '<h6 class="primary">' . $inviteeLink . '</h6>'; // response
echo '<div class="line"></div>'; echo '<ul class="segmented-list users">'; } // contributors if ($joined != null) { foreach ($joined as $j) { echo '<li>'; echo formatUserPicture($j->getCreatorID(), 'small'); echo '<h6 class="primary">' . formatUserLink($j->getCreatorID(), $project->getID()) . '</h6>'; $numUpdates = count($j->getUpdates()); $latestUpdate = $j->getLatestUpdate(); if (!empty($latestUpdate)) { echo '<p class="secondary contribution"><a href="' . Url::update($latestUpdate->getID()) . '">last contributed ' . formatTimeTag($latestUpdate->getDateCreated()) . '</a> <span class="slash">/</span> ' . $numUpdates . ' total</p>'; // echo '<h6 class="primary"><a href="'.Url::update($latestUpdate->getID()).'">'.$latestUpdate->getTitle().'</a></h6>'; // echo '<p class="secondary">posted '.formatTimeTag($latestUpdate->getDateCreated()).' by '.formatUserLink($latestUpdate->getCreatorID(), $latestUpdate->getProjectID()).'</p>'; } else { echo '<p class="secondary">no contributions <span class="slash">/</span> joined ' . formatTimeTag($j->getDateCreated()) . '</p>'; } echo '</li>'; } } if (!empty($joined)) { echo '</ul>'; } ?> </div> <?php $fork->endBlockSet(); $fork->render('site/partial/panel');
function formatEventDetails($event) { $details = ''; switch ($event->getEventTypeID()) { case 'edit_update_uploads': case 'edit_task_uploads': $addedIDs = explode(',', $event->getData2()); $added = ''; foreach ($addedIDs as $a) { if ($a == '') { continue; } // skip blanks $upload = Upload::load($a); $added .= $upload->getOriginalName() . ' (' . formatFileSize($upload->getSize()) . ')<br /><br />'; } if (!empty($added)) { $details .= '<ins>' . $added . '</ins>'; } $deletedIDs = explode(',', $event->getData1()); $deleted = ''; foreach ($deletedIDs as $d) { if ($d == '') { continue; } // skip blanks $upload = Upload::load($d); $deleted .= $upload->getOriginalName() . ' (' . formatFileSize($upload->getSize()) . ')<br /><br />'; } if (!empty($deleted)) { $details .= '<del>' . $deleted . '</del>'; } break; case 'edit_pitch': case 'edit_specs': case 'edit_rules': case 'edit_task_description': case 'edit_update_message': $from = $event->getData1(); $to = $event->getData2(); $from = str_replace(' ', '<br />', $from); $to = str_replace(' ', '<br />', $to); $diff = new FineDiff($from, $to); $htmlDiff = $diff->renderDiffToHTML(); $htmlDiff = html_entity_decode($htmlDiff, ENT_QUOTES, 'UTF-8'); $htmlDiff = html_entity_decode($htmlDiff, ENT_QUOTES, 'UTF-8'); $details .= $htmlDiff; break; case 'edit_task_title': case 'edit_update_title': $from = $event->getData1(); $to = $event->getData2(); $diff = new FineDiff($from, $to); $htmlDiff = $diff->renderDiffToHTML(); $htmlDiff = html_entity_decode($htmlDiff, ENT_QUOTES, 'UTF-8'); $htmlDiff = html_entity_decode($htmlDiff, ENT_QUOTES, 'UTF-8'); $details .= $htmlDiff; break; case 'edit_task_leader': $details .= 'Old Leader: <del>' . formatUserLink($event->getUser1ID(), $event->getProjectID()) . '</del><br /><br />'; $details .= 'New Leader: <ins>' . formatUserLink($event->getUser2ID(), $event->getProjectID()) . '</ins>'; break; case 'edit_task_num_needed': $old = $event->getData1() != null ? $event->getData1() : '∞'; $new = $event->getData2() != null ? $event->getData2() : '∞'; $details .= 'Old: <del>' . $old . '</del> people needed<br /><br />'; $details .= 'New: <ins>' . $new . '</ins> people needed'; break; case 'edit_task_deadline': case 'edit_project_deadline': $old = $event->getData1() != null ? formatTimeTag($event->getData1()) : '(none)'; $new = $event->getData2() != null ? formatTimeTag($event->getData2()) : '(none)'; $details .= 'Old Deadline: <del>' . $old . '</del><br /><br />'; $details .= 'New Deadline: <ins>' . $new . '</ins>'; break; case 'edit_project_status': $old = formatProjectStatus($event->getData1()); $new = formatProjectStatus($event->getData2()); $details .= 'Old Project Status: <del>' . $old . '</del><br /><br />'; $details .= 'New Project Status: <ins>' . $new . '</ins>'; break; case 'edit_accepted_status': $old = formatAcceptedStatus($event->getData1()); $new = formatAcceptedStatus($event->getData2()); $details .= 'Old Status: <del>' . $old . '</del><br /><br />'; $details .= 'New Status: <ins>' . $new . '</ins>'; break; case 'create_task_comment': case 'create_task_comment_reply': case 'create_update_comment': case 'create_update_comment_reply': $details .= formatComment($event->getData1()); break; case 'create_discussion': $details .= '<strong>' . $event->getData1() . '</strong><br /><br />'; $details .= formatDiscussionReply($event->getData2()); break; case 'create_discussion_reply': $details .= formatDiscussionReply($event->getData1()); break; case 'create_update': if ($event->getData1() != '') { $details .= '<strong>' . $event->getData1() . '</strong><br /><br />'; } if ($event->getData2() != '') { $details .= formatUpdate($event->getData2()); } break; case 'create_task': if ($event->getData1() != '') { $details .= '<strong>' . $event->getData1() . '</strong><br /><br />'; } if ($event->getData2() != '') { $details .= formatTaskDescription($event->getData2()); } break; } return $details; }
</script> <?php if (!empty($contribs)) { ?> <table class="contribs"> <tr> <th style="padding-left: 22px;">Contribution</th> <th>Member</th> <th>Status</th> <th>Date</th> </tr> <?php foreach ($contribs as $c) { echo '<tr>'; // title echo '<td class="name">'; echo '<h6><a href="' . Url::update($c->getID()) . '">' . $c->getTitle() . '</a></h6>'; echo '</td>'; // creator echo '<td class="member">' . formatUserLink($c->getCreatorID(), $c->getProjectID()) . '</td>'; // status if ($c->isLatestUpdate()) { $accepted = Accepted::load($c->getAcceptedID()); $status = Accepted::getStatusName($accepted->getStatus()); } else { $status = 'old'; } echo '<td class="status">' . $status . '</td>'; // date
<?php if ($updates != null) { echo '<ul class="segmented-list updates">'; foreach ($updates as $u) { echo '<li>'; echo '<h6 class="primary"><a href="' . Url::update($u->getID()) . '">' . $u->getTitle() . '</a>'; if ($u->isLatestUpdate()) { $accept = Accepted::load($u->getAcceptedID()); $statusName = Accepted::getStatusName($accept->getStatus()); echo ' <span class="status">' . $statusName . '</span>'; } echo '</h6>'; // .primary echo '<p class="secondary">'; echo 'posted ' . formatTimeTag($u->getDateCreated()); $comments = $u->getComments(); echo ' <span class="slash">/</span> ' . formatCount(count($comments), 'comment', 'comments', 'no'); echo '</p>'; // .secondary echo '</li>'; } echo '</ul>'; } else { echo "<p>(none)</p>"; } ?> <?php $fork->endBlockSet();
<th>Last Reply</th> <th>Category</th> </tr> <?php foreach ($discussions as $d) { echo '<tr>'; echo '<td class="title">'; $cssLock = $d->getLocked() ? ' class="locked"' : ''; echo '<h6' . $cssLock . '><a href="' . Url::discussion($d->getID()) . '">' . $d->getTitle() . '</a></h6>'; echo '<p>by ' . formatUserLink($d->getCreatorID(), $d->getProjectID()) . '</p>'; echo '</td>'; $numReplies = count($d->getReplies()); echo '<td class="replies">' . $numReplies . '</td>'; $lastReply = $d->getLastReply(); if (!empty($lastReply)) { $lrDate = formatTimeTag($lastReply->getDateCreated()); $lrCreator = formatUserLink($lastReply->getCreatorID(), $lastReply->getProjectID()); echo '<td class="last-reply">' . $lrDate . '<br />by ' . $lrCreator . '</td>'; } else { echo '<td class="last-reply">--</td>'; } $category = $d->getCategory() != null ? '<span>' . formatSectionLink($d->getCategory(), $d->getProjectID()) . '</span>' : '--'; echo '<td class="category">' . $category . '</td>'; echo '</tr>'; } ?> </table> <?php } $fork->endBlockSet(); $fork->render('site/partial/panel');
foreach ($comments as $comment) { echo '<li id="comment-' . $comment->getID() . '">'; echo formatUserPicture($comment->getCreatorID(), 'small'); if ($hasPermission) { echo '<input class="replyButton" type="button" value="Reply" />'; } echo '<p class="headline">' . formatUserLink($comment->getCreatorID(), $project->getID()) . ' <span class="slash">/</span> <span class="when">' . formatTimeTag($comment->getDateCreated()) . '</span></p>'; echo '<p class="message">' . formatComment($comment->getMessage()) . '</p>'; //echo '<p class="when">'.formatTimeTag($comment->getDateCreated()).'</p>'; echo '</li>'; $replies = $comment->getReplies(); if ($replies != null) { foreach ($replies as $reply) { echo '<li class="comment-reply">'; echo formatUserPicture($reply->getCreatorID(), 'small'); echo '<p class="headline">' . formatUserLink($reply->getCreatorID(), $project->getID()) . ' <span class="slash">/</span> <span class="when">' . formatTimeTag($reply->getDateCreated()) . '</span></p>'; echo '<p class="message">' . formatComment($reply->getMessage()) . '</p>'; //echo '<p class="when">'.formatTimeTag($reply->getDateCreated()).'</p>'; echo '</li>'; } } } } else { echo '<li>(none)</li>'; } ?> <?php if ($hasPermission) { ?>
} // only show response buttons if user hasn't responded yet if ($i->getResponse() === null) { echo '<div class="buttons">'; // don't allow accept invitation if already affiliated if (!$project->isAffiliated($i->getInviteeID())) { echo '<input class="accept" type="button" value="Accept" /> '; } echo '<input class="decline" type="button" value="Decline" /></div>'; } else { //echo '<div class="line"></div>'; // show the response if ($i->getResponse() == Invitation::ACCEPTED) { echo '<p>You accepted this invitation. (' . formatTimeTag($i->getDateResponded()) . ')</p>'; } else { echo '<p>You declined this invitation. (' . formatTimeTag($i->getDateResponded()) . ')</p>'; } // show the response message, if it exists if ($i->getResponseMessage() != null) { echo '<blockquote>' . formatInvitationMessage($i->getResponseMessage()) . '</blockquote>'; } } echo '</li>'; } ?> </ul> <?php $fork->endBlockSet(); $fork->render('site/partial/panel');
if (!empty($sex) || !empty($loc)) { echo $slash; } if (!empty($sex)) { echo $sex; } if (!empty($sex) && !empty($loc)) { echo $slash; } if (!empty($loc)) { echo 'from ' . $loc; } echo '</p>'; ?> <p>last login <?php echo formatTimeTag($user->getSecondLastLogin()); ?> </p> <?php // biography if (!empty($bio)) { echo '<div class="line" style="margin: 1em 0 0 55px;"></div>'; echo '<p class="biography">' . formatParagraphs($bio) . '</p>'; } ?> <div class="clear"></div> </div><!-- .view --> <?php $fork->endBlockSet();
$status = '<span class="status bad">closed</span>'; } $closed = $task->getStatus() == Task::STATUS_CLOSED ? ' class="closed"' : ''; // CSS class for strikethrough ?> <h5><?php echo $task->getTitle(); ?> </h5> <p><?php echo $status; ?> <span class="slash">/</span> <?php echo $task->getDeadline() != '' ? 'due ' . formatTimeTag($task->getDeadline()) : 'no deadline'; ?> </p> <div class="line"></div> <p><?php echo formatTaskDescription($task->getDescription()); ?> </p> <?php $SOUP->render('site/partial/newUploads', array()); ?> </div><!-- end .view -->
<?php $SOUP->render('site/partial/massEmail', array()); ?> </td> <td class="right"> <?php $data = array(); foreach ($projects as $p) { $data[] = array(formatProjectLink($p->getID()), formatUserLink($p->getCreatorID()), formatTimeTag($p->getDateCreated()), '<a href="' . Url::activity($p->getID()) . '">' . count(Event::getByProjectID($p->getID())) . '</a>'); } $SOUP->render('site/partial/itemTable', array('title' => 'All Projects (' . count($projects) . ')', 'ths' => array('Title', 'Creator', 'Created', '# Events'), 'data' => $data)); ?> <?php $data = array(); foreach ($users as $u) { $data[] = array(formatUserLink($u->getID()), formatTimeTag($u->getDateCreated()), count(Event::getUserEvents($u->getID()))); } $SOUP->render('site/partial/itemTable', array('title' => 'All Users (' . count($users) . ')', 'ths' => array('Username', 'Registered', '# Events'), 'data' => $data)); ?> </td> <?php $fork->endBlockSet(); $fork->render('site/partial/admin');
<option value="basics">Basics only</option> <option value="tasks">Tasks only</option> <option value="discussions">Discussions only</option> <option value="people">People only</option> </select> </div> </div> <div class="panel-body"> <?php if (!empty($events)) { echo '<ul class="segmented-list activity">'; foreach ($events as $event) { echo '<li class="' . $event->getCssClass() . '">'; echo '<h6 class="primary">' . formatEvent($event) . '</h6>'; echo '<p class="secondary">' . formatTimeTag($event->getDateCreated()) . '</p>'; $details = formatEventDetails($event); if (!empty($details)) { echo '<blockquote class="details">' . $details . '</blockquote>'; } echo '</li>'; } echo '</ul>'; } else { echo "<p>(none)</p>"; } ?> </div> <?php if ($numPages > 1) { ?>
$fork->set('title', $title); $fork->startBlockSet('body'); ?> <script type="text/javascript"> $(document).ready(function(){ $('#activity div.diff-box').dialog({ autoOpen: false, title: 'Activity Details', modal: true, width: 500 }); $('#activity a.diff').click(function(){ var id = $(this).attr('id').substring(5); $('#diff-box-'+id).dialog('open'); return false; }); }); </script> <?php if ($events != null) { echo '<ul class="segmented-list activity">'; foreach ($events as $event) { echo '<li class="' . $event->getCssClass() . '">'; echo '<h6 class="primary">' . formatEvent($event, $showProject) . '</h6>'; echo '<p class="secondary">' . formatTimeTag($event->getDateCreated()); $details = formatEventDetails($event); if (!empty($details)) { echo ' <span class="slash">/</span> <a id="diff-' . $event->getID() . '" class="diff" href="#">Details</a></p>'; // diff box
'buttonID':'#btnReply' }); }); }); </script> <ul class="segmented-list replies"> <li><h5><?php echo $message->getSubject(); ?> </h5></li> <?php foreach ($replies as $reply) { echo '<li>'; echo formatUserPicture($reply->getSenderID(), 'small'); echo '<p class="headline">' . formatUserLink($reply->getSenderID()) . ' <span class="slash">/</span> <span class="when">' . formatTimeTag($reply->getDateSent()) . '</span></p>'; echo '<p class="message">' . formatInboxMessage($reply->getBody()) . '</p>'; echo '</li>'; } ?> <li class="reply"> <textarea id="txtReplyMessage"></textarea> <div class="buttons"> <input type="button" class="right" id="btnReply" value="Send Reply" /> <p class="right"><a class="help-link" href="<?php echo Url::help(); ?> #help-html-allowed">Some HTML allowed</a></p> </div> </li> </ul>
<div id="flashviewer"></div> <?php function getUploadCssClass($ext) { $className = ''; switch ($ext) { case 'jpg': case 'jpeg': case 'png': case 'gif': $className = 'image'; break; case 'mp3': $className = 'audio'; break; case 'fla': case 'swf': case 'flv': $className = 'flash'; break; case 'mpeg': case 'mp4': case '3gp': case 'mpg': case 'mov': case 'avi': $className = 'video'; break; case 'psd': $className = 'photoshop'; break;
echo '<tr>'; echo '<td class="subject ' . $read . '">'; // show "Re:" if this is a reply to a previous message $subject = $m->getSubject(); if ($m->getParentID() != $m->getID()) { $subject = 'Re: ' . $subject; } echo '<h6><a href="' . Url::message($m->getID()) . '">' . $subject . '</a></h6>'; echo '<p>'; $body = strip_tags(formatInboxMessage($m->getBody())); echo substr($body, 0, 35); if (strlen($body) > 35) { echo '…'; } echo '</p>'; echo '</td>'; echo '<td class="sender">' . formatUserLink($m->getSenderID()) . '</td>'; echo '<td class="sent">' . formatTimeTag($m->getDateSent()) . '</td>'; echo '</tr>'; } ?> </table> <?php } ?> <?php $fork->endBlockSet(); $fork->render('site/partial/panel');
</div> </div> <div class="clear"> <label for="txtMessage">Message<span class="required">*</span></label> <div class="input"> <textarea id="txtMessage" name="txtMessage"><?php echo $update->getMessage(); ?> </textarea> <p>Write your contribution here, <a class="help-link" href="<?php echo Url::help(); ?> #help-html-allowed">some HTML allowed</a></p> </div> </div> <?php if ($update->isLatestUpdate()) { ?> <div class="clear"> <label for="selStatus">Status<span class="required">*</span></label> <div class="input"> <select id="selStatus" name="selStatus"> <option value="<?php echo Accepted::STATUS_PROGRESS; ?> "><?php echo Accepted::getStatusName(Accepted::STATUS_PROGRESS); ?> </option> <option value="<?php
<?php } ?> <div class="view"> <ul class="segmented-list"> <li><strong>Status</strong>: <span class="status"><?php echo formatProjectStatus($project->getStatus()); ?> </span></li> <li><strong>Deadline</strong>: <?php echo $deadline; ?> </li> <li><strong>Started</strong>: <?php echo formatTimeTag($project->getDateCreated()); ?> </li> <li><strong></strong><?php echo formatIsPrivate($project->getPrivate()); ?> </li> </ul> </div><!-- .view --> <?php $fork->endBlockSet(); $fork->render('site/partial/panel');