1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-18 12:52:42 +01:00

Remove Calendar from Conpherence

Summary: Ref T8834, cleanly removes "Calendar" widget from Conpherence. RIP. :(

Test Plan: Bounce around Conpherence, no Calendar. grep for "calendar" in apps folder, css, js

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

Maniphest Tasks: T8834

Differential Revision: https://secure.phabricator.com/D13934
This commit is contained in:
Chad Little 2015-08-18 19:55:22 -07:00
parent a1d1cf77a7
commit c87d463093
5 changed files with 2 additions and 386 deletions

View file

@ -51,7 +51,7 @@ return array(
'rsrc/css/application/conpherence/notification.css' => '6cdcc253',
'rsrc/css/application/conpherence/transaction.css' => '85d0974c',
'rsrc/css/application/conpherence/update.css' => 'faf6be09',
'rsrc/css/application/conpherence/widget-pane.css' => '419fd50c',
'rsrc/css/application/conpherence/widget-pane.css' => 'b0793769',
'rsrc/css/application/contentsource/content-source-view.css' => '4b8b05d4',
'rsrc/css/application/countdown/timer.css' => 'e7544472',
'rsrc/css/application/daemon/bulk-job.css' => 'df9c1d4a',
@ -514,7 +514,7 @@ return array(
'conpherence-thread-manager' => '01774ab2',
'conpherence-transaction-css' => '85d0974c',
'conpherence-update-css' => 'faf6be09',
'conpherence-widget-pane-css' => '419fd50c',
'conpherence-widget-pane-css' => 'b0793769',
'differential-changeset-view-css' => 'b6b0d1bb',
'differential-core-view-css' => '7ac3cabc',
'differential-inline-comment-editor' => 'd4c87bf4',

View file

@ -36,17 +36,6 @@ final class ConpherenceWidgetConfigConstants extends ConpherenceConstants {
'deviceOnly' => false,
'hasCreate' => false,
),
'widgets-calendar' => array(
'name' => pht('Calendar'),
'icon' => 'fa-calendar',
'deviceOnly' => false,
'hasCreate' => true,
'createData' => array(
'refreshFromResponse' => false,
'action' => ConpherenceUpdateActions::ADD_STATUS,
'customHref' => '/calendar/event/create/',
),
),
'widgets-settings' => array(
'name' => pht('Notifications'),
'icon' => 'fa-wrench',

View file

@ -27,14 +27,6 @@ abstract class ConpherenceController extends PhabricatorController {
->addSigil('conpherence-widget-adder')
->setMetadata(array('widget' => 'widgets-people')));
$nav->addMenuItem(
id(new PHUIListItemView())
->setName(pht('New Calendar Item'))
->setType(PHUIListItemView::TYPE_LINK)
->setHref('/calendar/event/create/')
->addSigil('conpherence-widget-adder')
->setMetadata(array('widget' => 'widgets-calendar')));
return $nav;
}

View file

@ -44,10 +44,6 @@ final class ConpherenceWidgetController extends ConpherenceController {
case 'widgets-files':
$content = $this->renderFileWidgetPaneContent();
break;
case 'widgets-calendar':
$widget = $this->renderCalendarWidgetPaneContent();
$content = phutil_implode_html('', $widget);
break;
case 'widgets-settings':
$content = $this->renderSettingsWidgetPaneContent();
break;
@ -103,14 +99,6 @@ final class ConpherenceWidgetController extends ConpherenceController {
'style' => 'display: none;',
),
$this->renderFileWidgetPaneContent());
$widgets[] = phutil_tag(
'div',
array(
'class' => 'widgets-body',
'id' => 'widgets-calendar',
'style' => 'display: none;',
),
$this->renderCalendarWidgetPaneContent());
$widgets[] = phutil_tag(
'div',
array(
@ -227,205 +215,6 @@ final class ConpherenceWidgetController extends ConpherenceController {
$layout);
}
private function renderCalendarWidgetPaneContent() {
$user = $this->getRequest()->getUser();
$conpherence = $this->getConpherence();
$participants = $conpherence->getParticipants();
$widget_data = $conpherence->getWidgetData();
// TODO: This panel is built around an outdated notion of events and isn't
// invitee-aware.
$statuses = $widget_data['events'];
$handles = $conpherence->getHandles();
$content = array();
$layout = id(new AphrontMultiColumnView())
->setFluidLayout(true);
$timestamps = CalendarTimeUtil::getCalendarWidgetTimestamps($user);
$today = $timestamps['today'];
$epoch_stamps = $timestamps['epoch_stamps'];
$one_day = 24 * 60 * 60;
$is_today = false;
$calendar_columns = 0;
$list_days = 0;
foreach ($epoch_stamps as $day) {
// build a header for the new day
if ($day->format('Ymd') == $today->format('Ymd')) {
$active_class = 'today';
$is_today = true;
} else {
$active_class = '';
$is_today = false;
}
$should_draw_list = $list_days < 7;
$list_days++;
if ($should_draw_list) {
$content[] = phutil_tag(
'div',
array(
'class' => 'day-header '.$active_class,
),
array(
phutil_tag(
'div',
array(
'class' => 'day-name',
),
$day->format('l')),
phutil_tag(
'div',
array(
'class' => 'day-date',
),
$day->format('m/d/y')),
));
}
$week_day_number = $day->format('w');
$epoch_start = $day->format('U');
$next_day = clone $day;
$next_day->modify('+1 day');
$epoch_end = $next_day->format('U');
$first_status_of_the_day = true;
$statuses_of_the_day = array();
// keep looking through statuses where we last left off
foreach ($statuses as $status) {
if ($status->getDateFrom() >= $epoch_end) {
// This list is sorted, so we can stop looking.
break;
}
if ($status->getDateFrom() < $epoch_end &&
$status->getDateTo() > $epoch_start) {
$statuses_of_the_day[$status->getUserPHID()] = $status;
if ($should_draw_list) {
$top_border = '';
if (!$first_status_of_the_day) {
$top_border = ' top-border';
}
$timespan = $status->getDateTo() - $status->getDateFrom();
if ($timespan > $one_day) {
$time_str = 'm/d';
} else {
$time_str = 'h:i A';
}
$epoch_range =
phabricator_format_local_time(
$status->getDateFrom(),
$user,
$time_str).
' - '.
phabricator_format_local_time(
$status->getDateTo(),
$user,
$time_str);
if (isset($handles[$status->getUserPHID()])) {
$secondary_info = pht(
'%s, %s',
$handles[$status->getUserPHID()]->getName(),
$epoch_range);
} else {
$secondary_info = $epoch_range;
}
$content[] = phutil_tag(
'div',
array(
'class' => 'user-status '.$top_border,
),
array(
phutil_tag(
'div',
array(
'class' => 'icon',
),
''),
phutil_tag(
'div',
array(
'class' => 'description',
),
array(
$status->getName(),
phutil_tag(
'div',
array(
'class' => 'participant',
),
$secondary_info),
)),
));
}
$first_status_of_the_day = false;
}
}
// we didn't get a status on this day so add a spacer
if ($first_status_of_the_day && $should_draw_list) {
$content[] = phutil_tag(
'div',
array('class' => 'no-events pm'),
pht('No Events Scheduled.'));
}
if ($is_today || ($calendar_columns && $calendar_columns < 3)) {
$active_class = '';
if ($is_today) {
$active_class = '-active';
}
$inner_layout = array();
foreach ($participants as $phid => $participant) {
$status = idx($statuses_of_the_day, $phid, false);
if ($status) {
$inner_layout[] = phutil_tag(
'div',
array(),
'');
} else {
$inner_layout[] = phutil_tag(
'div',
array(
'class' => 'present',
),
'');
}
}
$layout->addColumn(
phutil_tag(
'div',
array(
'class' => 'day-column'.$active_class,
),
array(
phutil_tag(
'div',
array(
'class' => 'day-name',
),
$day->format('D')),
phutil_tag(
'div',
array(
'class' => 'day-number',
),
$day->format('j')),
$inner_layout,
)));
$calendar_columns++;
}
}
return array(
$layout,
$content,
);
}
private function getWidgetURI() {
$conpherence = $this->getConpherence();
return $this->getApplicationURI('update/'.$conpherence->getID().'/');

View file

@ -158,160 +158,6 @@
margin: 8px 0px 0px 10%;
}
/* calendar widget */
.conpherence-widget-pane #widgets-calendar .aphront-multi-column-view {
width: 240px;
}
.device-phone .conpherence-widget-pane #widgets-calendar
.aphront-multi-column-view {
display: none;
}
.device-tablet .conpherence-widget-pane #widgets-calendar
.aphront-multi-column-view {
width: 100%;
}
.conpherence-widget-pane #widgets-calendar .aphront-multi-column-view
.aphront-multi-column-column {
background: white;
border-right: 1px solid {$thinblueborder};
text-align: center;
}
.device-phone .conpherence-widget-pane #widgets-calendar
.aphront-multi-column-view .aphront-multi-column-column {
border-right: 0;
}
.device-phone .conpherence-widget-pane #widgets-calendar
.aphront-multi-column-fluid .aphront-multi-column-5-up
.aphront-multi-column-column-outer {
width: 20%;
margin-bottom: 0px;
float: left;
clear: none;
}
.conpherence-widget-pane .no-events {
color: {$lightgreytext};
}
.conpherence-widget-pane #widgets-calendar .aphront-multi-column-view
.aphront-multi-column-column-last {
border-right: 0;
}
.conpherence-widget-pane #widgets-calendar .aphront-multi-column-view
.aphront-multi-column-column .day-column,
.conpherence-widget-pane #widgets-calendar .aphront-multi-column-view
.aphront-multi-column-column .day-column-active {
color: #bfbfbf;
background-color: white;
font-weight: bold;
padding: 0px 0px 10px 0px;
}
.conpherence-widget-pane #widgets-calendar .aphront-multi-column-view
.aphront-multi-column-column .day-column-active {
color: black;
}
.conpherence-widget-pane #widgets-calendar .aphront-multi-column-view
.aphront-multi-column-column .present ,
.conpherence-widget-pane #widgets-calendar .aphront-multi-column-view
.aphront-multi-column-column .sporadic ,
.conpherence-widget-pane #widgets-calendar .aphront-multi-column-view
.aphront-multi-column-column .away {
height: 10px;
margin: 5px 0px 5px 0px;
width: 100%;
}
.conpherence-widget-pane #widgets-calendar .aphront-multi-column-view
.aphront-multi-column-column .present {
background-color: white;
}
.conpherence-widget-pane #widgets-calendar .aphront-multi-column-view
.aphront-multi-column-column .sporadic {
background-color: rgb(222, 226, 232);
}
.conpherence-widget-pane #widgets-calendar .aphront-multi-column-view
.aphront-multi-column-column .away {
background-color: rgb(102, 204, 255);
}
.conpherence-widget-pane #widgets-calendar .aphront-multi-column-view
.day-name {
padding: 5px 0px 0px 0px;
font-size: {$smallerfontsize};
}
.conpherence-widget-pane #widgets-calendar .aphront-multi-column-view
.day-number {
font-size: {$biggestfontsize};
padding: 0 0 5px 0;
}
.conpherence-widget-pane #widgets-calendar .day-header {
overflow: hidden;
border-top: 1px solid {$thinblueborder};
padding: 8px 8px 0px 8px;
}
.conpherence-widget-pane #widgets-calendar .day-header.today .day-name,
.conpherence-widget-pane #widgets-calendar .day-header.today .day-date {
color: {$sky};
}
.conpherence-widget-pane #widgets-calendar .day-header .day-name {
float: left;
color: {$bluetext};
font-weight: bold;
text-transform: uppercase;
font-size: {$smallestfontsize};
}
.conpherence-widget-pane #widgets-calendar .day-header .day-date {
float: right;
color: {$lightbluetext};
font-size: {$smallestfontsize};
}
.conpherence-widget-pane #widgets-calendar .top-border {
border-top: 1px solid {$thinblueborder};
}
.conpherence-widget-pane #widgets-calendar .user-status {
padding: 10px 0px 10px 0px;
margin: 0px 0px 0px 10px;
}
.conpherence-widget-pane #widgets-calendar .user-status .icon {
border-radius: 8px;
height: 8px;
width: 8px;
margin-top: 4px;
float: left;
}
.conpherence-widget-pane #widgets-calendar .sporadic .icon {
background-color: {$orange};
}
.conpherence-widget-pane #widgets-calendar .away .icon {
background-color: {$red};
}
.conpherence-widget-pane #widgets-calendar .user-status .description {
width: 195px;
text-overflow: ellipsis;
margin: 0 0 0 16px;
}
.conpherence-widget-pane #widgets-calendar .user-status .participant {
font-size: {$smallestfontsize};
color: {$lightgreytext};
padding-top: 2px;
}
.device .conpherence-widget-pane #widgets-calendar .user-status .description,
.device .conpherence-widget-pane #widgets-calendar .user-status .participant {
/* we keep these short so no need to change the width */
}
.conpherence-widget-pane .widget-icon {
display: block;
height: 14px;