ubuntu-touch-coreapps-reviewers team mailing list archive
-
ubuntu-touch-coreapps-reviewers team
-
Mailing list archive
-
Message #08386
[Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
Szymon Waliczek has proposed merging lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app.
Requested reviews:
Ubuntu Calendar Developers (ubuntu-calendar-dev)
For more details, see:
https://code.launchpad.net/~majster-pl/ubuntu-calendar-app/new-agenda-view/+merge/287448
New Agenda page proposal.
--
Your team Ubuntu Calendar Developers is requested to review the proposed merge of lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app.
=== modified file 'AgendaView.qml'
--- AgendaView.qml 2016-02-03 08:06:25 +0000
+++ AgendaView.qml 2016-02-29 10:27:23 +0000
@@ -19,7 +19,7 @@
import QtQuick 2.4
import QtOrganizer 5.0
import Ubuntu.Components 1.3
-import Ubuntu.Components.ListItems 1.0 as ListItem
+//import Ubuntu.Components.ListItems 1.0 as ListItem
import "dateExt.js" as DateExt
import "./3rd-party/lunar.js" as Lunar
@@ -45,33 +45,20 @@
return !!enabled_calendars.length;
}
- Action {
- id: calendarTodayAction
- objectName:"todaybutton"
- iconName: "calendar-today"
- text: i18n.tr("Today")
- onTriggered: {
- currentDay = new Date()
- goToBeginning()
- }
- }
+ // Page Header
header: PageHeader {
- id: pageHeader
-
title: i18n.tr("Agenda")
leadingActionBar.actions: tabs.tabsAction
trailingActionBar.actions: [
- calendarTodayAction,
- commonHeaderActions.newEventAction,
- commonHeaderActions.showCalendarAction,
- commonHeaderActions.reloadAction,
- commonHeaderActions.syncCalendarAction,
- commonHeaderActions.settingsAction
+ commonHeaderActions.settingsAction,
+ commonHeaderActions.newEventAction
]
flickable: eventList
}
+
+ // ListModel to hold all events for upcoming 7days.
EventListModel {
id: eventListModel
startPeriod: currentDay.midnight();
@@ -88,6 +75,7 @@
]
}
+ // spinner while agenda is loading.
ActivityIndicator {
visible: running
running: eventListModel.isLoading
@@ -95,21 +83,15 @@
z:2
}
+ // Label to be showen when there is no upcoming events or if no calendar is selected.
Label {
id: noEventsOrCalendarsLabel
- text: {
- var default_title = i18n.tr( "No upcoming events" );
-
- if ( !root.hasEnabledCalendars() ) {
- default_title = i18n.tr("You have no calendars enabled")
- }
-
- return default_title;
- }
- visible: (eventListModel.count === 0) && !eventListModel.isLoading
+ text: !root.hasEnabledCalendars() ? i18n.tr("You have no calendars enabled") : i18n.tr( "No upcoming events" )
+ visible: (eventListModel.itemCount === 0) && !eventListModel.isLoading
anchors.centerIn: parent
}
+ // button to be showen when no calendar is selected (onClick will take user to list of all calendars)
Button {
text: i18n.tr( "Enable calendars" )
visible: !root.hasEnabledCalendars()
@@ -124,6 +106,7 @@
}
}
+ // Main ListView with all upcoming events.
ListView{
id: eventList
objectName: "eventList"
@@ -134,14 +117,17 @@
delegate: listDelegate
}
+ // Scrollbar
Scrollbar{
flickableItem: eventList
align: Qt.AlignTrailing
}
+ // ListView delegate
Component{
id: listDelegate
+ // Main item to hold listitem delegate.
Item {
id: root
property var event: eventListModel.items[index];
@@ -153,14 +139,15 @@
setDetails();
}
+ // function to set all detail in delegate (to be run on every eventListModel change.
function setDetails() {
if(event === null || event === undefined) {
return;
}
- headerContainer.visible = false;
+ headerContainer.visible = false; // hide headerContainer
if( index == 0 ) {
- headerContainer.visible = true;
+ headerContainer.visible = true; // if this is first event in that date then show headerContainer
} else {
var prevEvent = eventListModel.items[index-1];
if( prevEvent.startDateTime.midnight() < event.startDateTime.midnight()) {
@@ -174,7 +161,8 @@
// TRANSLATORS: the first argument (%1) refers to a start time for an event,
// while the second one (%2) refers to the end time
- var timeString = i18n.tr("%1 - %2").arg(startTime).arg(endTime)
+ var timeStringStart = i18n.tr("%1").arg(startTime) + " -"
+ var timeStringEnd = i18n.tr("%1").arg(endTime)
if (mainView.displayLunarCalendar) {
var lunarDate = Lunar.calendar.solar2lunar(event.startDateTime.getFullYear(),
@@ -183,18 +171,31 @@
header.text = i18n.tr("%1 %2 %3 %4 %5").arg(lunarDate.gzYear).arg(lunarDate .IMonthCn).arg(lunarDate.IDayCn)
.arg(lunarDate.gzDay).arg(lunarDate.isTerm ? lunarDate.Term : "")
} else {
- header.text = date
+ header.text = date.charAt(0).toUpperCase() + date.slice(1);
}
- timeLabel.text = timeString
+ timeLabelStart.text = timeStringStart
+ timeLabelEnd.text = timeStringEnd
header.color = event.startDateTime.toLocaleDateString() === new Date().toLocaleDateString() ? UbuntuColors.orange : UbuntuColors.darkGrey
- detailsContainer.color = eventListModel.collection(event.collectionId).color
+ calendarIndicator.backgroundColor = eventListModel.collection(event.collectionId).color
- if( event.displayLabel) {
- titleLabel.text = event.displayLabel;
+ if(event.displayLabel) {
+ eventLabel.text = i18n.tr("%1").arg(event.displayLabel);
+ }
+ if(event.location) {
+ locationLabel.text = i18n.tr("%1").arg(event.location);
+ locationLabel.color = Theme.palette.selected.backgroundText
+ locationLabel.font.italic = false
+ } else {
+ locationLabel.text = i18n.tr("no location")
+ locationLabel.color = "#b3b3b3"
+ locationLabel.font.italic = true
}
}
+
+
+ // main Column to hold header (date) and details (time, Description and location)
Column {
id: container
objectName: "eventContainer" + index
@@ -202,13 +203,17 @@
width: parent.width
anchors.top: parent.top
- //Not using ListItem.Header because of bug #1380766
- ListItem.Standard{
+ // Header ListItem eg. ( Friday, October 29th 2015 )
+ ListItem {
id: headerContainer
-
- height: visible ? header.height + units.gu(1) : 0
+ height: visible ? header.height + units.gu(3) : 0
width: parent.width
-
+ // ListItem background (changing color when pressed)
+ Rectangle {
+ anchors.fill: parent
+ color: headerMouseArea.pressed ? "#ededed" : "#f7f7f7"
+ }
+ // Label to hold string with date eg. ( Friday, October 29th 2015 )
Label{
id: header
fontSize: "medium"
@@ -216,65 +221,119 @@
elide: Text.ElideRight
anchors {
left: parent.left
+ leftMargin: units.gu(2)
+ verticalCenter: parent.verticalCenter
+ }
+ }
+ // MouseArea, onClicked new page with dayle view will open.
+ MouseArea {
+ id: headerMouseArea
+ anchors.fill: parent
+ onClicked: {
+ Haptics.play()
+ dateSelected(event.startDateTime);
+ }
+ }
+
+ }
+
+ // Main ListItem to hold Details about event eg. ( 19:30 - Beer with the team )
+ // ( 20:00 Hicter )
+ ListItem {
+ id: detailsListItem
+ width: parent.width
+ height: detailsColumn.height + units.gu(4)
+
+ // ListItem background (changing color when pressed)
+ Rectangle {
+ anchors.fill: parent
+ color: detailsMouseArea.pressed ? "#f7f7f7" : "white"
+ }
+
+ // Little icon in left top corner of every event to indicate color of the calendar.
+ UbuntuShape {
+ id: calendarIndicator
+ anchors {
+ left: parent.left;
leftMargin: units.gu(1)
+ top: parent.top;
+ topMargin: units.gu(1)
+ }
+ width: units.gu(1)
+ height: width
+ aspect: UbuntuShape.DropShadow
+ }
+
+ // main Column to hold Grid with times, Description and location.
+ Column{
+ id: detailsColumn
+ anchors {
+ left: parent.left
+ right: parent.right
verticalCenter: parent.verticalCenter
}
- }
- onClicked: {
- dateSelected(event.startDateTime);
- }
- showDivider: false
- }
- ListItem.ThinDivider {}
-
- Rectangle{
- id: detailsContainer
-
- anchors {
- left: parent.left
- right: parent.right
- }
-
- height: detailsColumn.height + units.gu(1)
-
- ListItem.Standard{
- showDivider:false
- Column{
- id: detailsColumn
-
+
+ // Mian Grid
+ Grid {
+ columns: 2
+ columnSpacing: units.gu(1.5)
anchors {
- top: parent.top
left: parent.left
+ leftMargin: units.gu(3)
right: parent.right
- margins: units.gu(0.5)
}
- Label{
- id: timeLabel
- objectName: "timeLabel" + index
- color:"White"
+ // Event time start
+ Label{
+ id: timeLabelStart
+ objectName: "timeLabelStart" + index
+ color: UbuntuColors.coolGrey
+ fontSize: "small"
+ }
+ // Event descriptions
+ Label{
+ id: eventLabel
+ objectName: "eventLabel" + index
+ width: parent.width - timeLabelStart.width - parent.columnSpacing
+ elide: Text.ElideRight
+ color: UbuntuColors.coolGrey
font.bold: true
fontSize: "small"
- width: parent.width
}
+ // Event time End
Label{
- id: titleLabel
- objectName: "titleLabel" + index
-
- color:"White"
+ id: timeLabelEnd
+ objectName: "timeLabelEnd" + index
+ color: UbuntuColors.coolGrey
fontSize: "small"
- width: parent.width
- maximumLineCount: 2
+ }
+
+ // Event Location
+ Label{
+ id: locationLabel
+ objectName: "locationLabel" + index
+ width: parent.width - timeLabelStart.width - parent.columnSpacing
elide: Text.ElideRight
- wrapMode: Text.WrapAtWordBoundaryOrAnywhere
+ color: UbuntuColors.coolGrey
+ fontSize: "small"
}
}
+
+
+ }
+
+ // MouseArea, onClicked open new edit event page.
+ MouseArea {
+ id: detailsMouseArea
+ anchors.fill: parent
onClicked: {
+ Haptics.play()
pageStack.push(Qt.resolvedUrl("EventDetails.qml"), {"event":event,"model":eventListModel});
}
}
}
+
}
}
}
=== modified file 'calendar.qml'
--- calendar.qml 2016-02-03 14:55:42 +0000
+++ calendar.qml 2016-02-29 10:27:23 +0000
@@ -92,9 +92,7 @@
focus: true
Keys.forwardTo: [pageStack.currentPage]
- headerColor: "#E8E8E8"
- backgroundColor: "#f5f5f5"
- footerColor: "#ECECEC"
+ backgroundColor: "white"
anchorToKeyboard: true
Connections {
@@ -515,7 +513,7 @@
id: agendaTabLoader
asynchronous: true
- sourceComponent: agendaViewComp
+// sourceComponent: agendaViewComp
active: false
// Load page on demand and keep it on memory until the application is closed
enabled: tabs.isReady && (tabs.selectedTab == agendaTab)
@@ -524,6 +522,16 @@
active = true
}
}
+
+ // workaround to problem with not displaying agenda after app start... ( ocures only when app starts witn agenda view )
+ Timer {
+ id: loadingDelay
+ running: false
+ interval: 500
+ onTriggered: parent.sourceComponent = agendaViewComp
+ }
+
+ Component.onCompleted: loadingDelay.start()
}
}
}
@@ -611,6 +619,8 @@
tabs.currentDay = date;
tabs.selectedTabIndex = dayTab.index
}
+ Component.onCompleted: print("NOSZ KURWA!")
}
+
}
}
=== modified file 'po/com.ubuntu.calendar.pot'
--- po/com.ubuntu.calendar.pot 2016-02-17 14:56:56 +0000
+++ po/com.ubuntu.calendar.pot 2016-02-29 10:27:23 +0000
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-01-11 21:36+0800\n"
+"POT-Creation-Date: 2016-02-28 01:56+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@xxxxxx>\n"
@@ -18,28 +18,37 @@
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: ../AgendaView.qml:51 ../DayView.qml:40 ../MonthView.qml:39
-#: ../WeekView.qml:44 ../YearView.qml:36
-msgid "Today"
-msgstr ""
-
-#: ../AgendaView.qml:92
+#: ../AgendaView.qml:51 ../calendar.qml:289 ../calendar.qml:510
+msgid "Agenda"
+msgstr ""
+
+#: ../AgendaView.qml:89
+msgid "You have no calendars enabled"
+msgstr ""
+
+#: ../AgendaView.qml:89
msgid "No upcoming events"
msgstr ""
-#: ../AgendaView.qml:95
-msgid "You have no calendars enabled"
-msgstr ""
-
-#: ../AgendaView.qml:105
+#: ../AgendaView.qml:96
msgid "Enable calendars"
msgstr ""
#. TRANSLATORS: the first argument (%1) refers to a start time for an event,
#. while the second one (%2) refers to the end time
-#: ../AgendaView.qml:168 ../EventBubble.qml:133
-#, qt-format
-msgid "%1 - %2"
+#: ../AgendaView.qml:164 ../AgendaView.qml:165 ../AgendaView.qml:183
+#: ../AgendaView.qml:186
+#, qt-format
+msgid "%1"
+msgstr ""
+
+#: ../AgendaView.qml:171
+#, qt-format
+msgid "%1 %2 %3 %4 %5"
+msgstr ""
+
+#: ../AgendaView.qml:190
+msgid "no location"
msgstr ""
#. TRANSLATORS: the first parameter refers to the number of all-day events
@@ -59,21 +68,21 @@
msgstr[0] ""
msgstr[1] ""
-#: ../CalendarChoicePopup.qml:33 ../EventActions.qml:60
+#: ../CalendarChoicePopup.qml:33 ../EventActions.qml:63
msgid "Calendars"
msgstr ""
-#: ../CalendarChoicePopup.qml:37
+#: ../CalendarChoicePopup.qml:37 ../Settings.qml:32
msgid "Back"
msgstr ""
#. TRANSLATORS: Please translate this string to 15 characters only.
#. Currently ,there is no way we can increase width of action menu currently.
-#: ../CalendarChoicePopup.qml:51 ../EventActions.qml:36
+#: ../CalendarChoicePopup.qml:51 ../EventActions.qml:37
msgid "Sync"
msgstr ""
-#: ../CalendarChoicePopup.qml:51 ../EventActions.qml:36
+#: ../CalendarChoicePopup.qml:51 ../EventActions.qml:37
msgid "Syncing"
msgstr ""
@@ -98,13 +107,23 @@
msgid "Search contact"
msgstr ""
+#: ../DayView.qml:41 ../MonthView.qml:40 ../WeekView.qml:45 ../YearView.qml:43
+msgid "Today"
+msgstr ""
+
#. TRANSLATORS: this is a time formatting string,
#. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
#. It's used in the header of the month and week views
-#: ../DayView.qml:59 ../MonthView.qml:60 ../WeekView.qml:63
+#: ../DayView.qml:64 ../DayView.qml:157 ../MonthView.qml:62
+#: ../MonthView.qml:149 ../WeekView.qml:68 ../WeekView.qml:180
msgid "MMMM yyyy"
msgstr ""
+#: ../DayView.qml:155 ../MonthView.qml:144 ../WeekView.qml:178
+#, qt-format
+msgid "%1 %2"
+msgstr ""
+
#: ../DeleteConfirmationDialog.qml:31
msgid "Delete Recurring Event"
msgstr ""
@@ -136,7 +155,7 @@
msgid "Delete"
msgstr ""
-#: ../EditEventConfirmationDialog.qml:29 ../NewEvent.qml:324
+#: ../EditEventConfirmationDialog.qml:29 ../NewEvent.qml:325
msgid "Edit Event"
msgstr ""
@@ -154,10 +173,21 @@
msgid "Edit this"
msgstr ""
-#: ../EventActions.qml:50 ../NewEvent.qml:324
+#: ../EventActions.qml:52 ../NewEvent.qml:325
msgid "New Event"
msgstr ""
+#: ../EventActions.qml:75 ../Settings.qml:30
+msgid "Settings"
+msgstr ""
+
+#. TRANSLATORS: the first argument (%1) refers to a start time for an event,
+#. while the second one (%2) refers to the end time
+#: ../EventBubble.qml:133
+#, qt-format
+msgid "%1 - %2"
+msgstr ""
+
#. TRANSLATORS: the first argument (%1) refers to a time for an event,
#. while the second one (%2) refers to title of event
#: ../EventBubble.qml:144 ../EventBubble.qml:149
@@ -165,35 +195,55 @@
msgid "%1 <b>%2</b>"
msgstr ""
-#: ../EventDetails.qml:43 ../NewEvent.qml:435
+#: ../EventDetails.qml:44 ../NewEvent.qml:436
msgid "Event Details"
msgstr ""
#. TRANSLATORS: the first parameter refers to the name of event calendar.
-#: ../EventDetails.qml:68
+#: ../EventDetails.qml:69
#, qt-format
msgid "%1 Calendar"
msgstr ""
-#: ../EventDetails.qml:129
+#: ../EventDetails.qml:143
+#, qt-format
+msgid "%1 %2 %3 - %4 %5 %6 (All Day)"
+msgstr ""
+
+#: ../EventDetails.qml:147
#, qt-format
msgid "%1 - %2 (All Day)"
msgstr ""
-#: ../EventDetails.qml:133
+#: ../EventDetails.qml:153
+#, qt-format
+msgid "%1 %2 %3 (All Day)"
+msgstr ""
+
+#: ../EventDetails.qml:156
#, qt-format
msgid "%1 (All Day)"
msgstr ""
-#: ../EventDetails.qml:203
+#: ../EventDetails.qml:162
+#, qt-format
+msgid "%1 %2 %3, %4 - %5 %6 %7, %8"
+msgstr ""
+
+#: ../EventDetails.qml:171
+#, qt-format
+msgid "%1 %2 %3, %4 - %5"
+msgstr ""
+
+#: ../EventDetails.qml:238
msgid "Edit"
msgstr ""
-#: ../EventDetails.qml:354 ../NewEvent.qml:537
+#: ../EventDetails.qml:389 ../NewEvent.qml:538
msgid "Guests"
msgstr ""
-#: ../EventDetails.qml:397 ../EventReminder.qml:35 ../NewEvent.qml:634
+#: ../EventDetails.qml:432 ../EventReminder.qml:35 ../NewEvent.qml:635
msgid "Reminder"
msgstr ""
@@ -216,7 +266,7 @@
#. TRANSLATORS: this refers to how often a recurrent event repeats
#. and it is shown as the header of the option selector to choose
#. its repetition
-#: ../EventRepetition.qml:242 ../NewEvent.qml:618
+#: ../EventRepetition.qml:242 ../NewEvent.qml:619
msgid "Repeats"
msgstr ""
@@ -247,6 +297,11 @@
msgid "Weekly on %1"
msgstr ""
+#: ../HeaderDateComponent.qml:90
+#, qt-format
+msgid "%1 %2 %3"
+msgstr ""
+
#: ../LimitLabelModel.qml:25
msgid "Never"
msgstr ""
@@ -259,6 +314,10 @@
msgid "After Date"
msgstr ""
+#: ../MonthComponent.qml:262
+msgid "Wk"
+msgstr ""
+
#: ../NewEvent.qml:84
msgid "Save"
msgstr ""
@@ -267,43 +326,43 @@
msgid "End time can't be before start time"
msgstr ""
-#: ../NewEvent.qml:334
+#: ../NewEvent.qml:335
msgid "Error"
msgstr ""
-#: ../NewEvent.qml:336
+#: ../NewEvent.qml:337
msgid "OK"
msgstr ""
-#: ../NewEvent.qml:389
+#: ../NewEvent.qml:390
msgid "From"
msgstr ""
-#: ../NewEvent.qml:402
+#: ../NewEvent.qml:403
msgid "To"
msgstr ""
-#: ../NewEvent.qml:419
+#: ../NewEvent.qml:420
msgid "All day event"
msgstr ""
-#: ../NewEvent.qml:448
+#: ../NewEvent.qml:449
msgid "Event Name"
msgstr ""
-#: ../NewEvent.qml:466
+#: ../NewEvent.qml:467
msgid "Description"
msgstr ""
-#: ../NewEvent.qml:484
+#: ../NewEvent.qml:485
msgid "Location"
msgstr ""
-#: ../NewEvent.qml:499 com.ubuntu.calendar_calendar.desktop.in.in.h:1
+#: ../NewEvent.qml:500 com.ubuntu.calendar_calendar.desktop.in.in.h:1
msgid "Calendar"
msgstr ""
-#: ../NewEvent.qml:541
+#: ../NewEvent.qml:542
msgid "Add Guest"
msgstr ""
@@ -390,52 +449,56 @@
msgid "2 weeks"
msgstr ""
+#: ../Settings.qml:60
+msgid "Show week numbers"
+msgstr ""
+
+#: ../Settings.qml:91
+msgid "Show lunar calendar"
+msgstr ""
+
#: ../TimeLineBase.qml:73
msgid "Untitled"
msgstr ""
#. TRANSLATORS: W refers to Week, followed by the actual week number (%1)
-#: ../TimeLineHeader.qml:54
+#: ../TimeLineHeader.qml:53
#, qt-format
msgid "W%1"
msgstr ""
-#: ../TimeLineHeader.qml:66
+#: ../TimeLineHeader.qml:65
msgid "All Day"
msgstr ""
-#: ../YearView.qml:54
+#: ../YearView.qml:61 ../YearView.qml:112
#, qt-format
msgid "Year %1"
msgstr ""
-#: ../calendar.qml:45
+#: ../calendar.qml:46
msgid ""
"Calendar app accept four arguments: --starttime, --endtime, --newevent and --"
"eventid. They will be managed by system. See the source for a full comment "
"about them"
msgstr ""
-#: ../calendar.qml:354
+#: ../calendar.qml:257 ../calendar.qml:426
msgid "Year"
msgstr ""
-#: ../calendar.qml:388
+#: ../calendar.qml:265 ../calendar.qml:447
msgid "Month"
msgstr ""
-#: ../calendar.qml:421
+#: ../calendar.qml:273 ../calendar.qml:468
msgid "Week"
msgstr ""
-#: ../calendar.qml:459
+#: ../calendar.qml:281 ../calendar.qml:489
msgid "Day"
msgstr ""
-#: ../calendar.qml:491
-msgid "Agenda"
-msgstr ""
-
#: com.ubuntu.calendar_calendar.desktop.in.in.h:2
msgid "A calendar for Ubuntu which syncs with online accounts."
msgstr ""
Follow ups
-
[Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Nekhelesh Ramananthan, 2016-03-02
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Nekhelesh Ramananthan, 2016-03-02
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Jenkins Bot, 2016-03-01
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Nekhelesh Ramananthan, 2016-03-01
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Nekhelesh Ramananthan, 2016-03-01
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Jenkins Bot, 2016-03-01
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Jenkins Bot, 2016-03-01
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Jenkins Bot, 2016-03-01
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Jenkins Bot, 2016-03-01
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Szymon Waliczek, 2016-03-01
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Nekhelesh Ramananthan, 2016-02-29
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Jenkins Bot, 2016-02-29
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Jenkins Bot, 2016-02-29
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Szymon Waliczek, 2016-02-29
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Nekhelesh Ramananthan, 2016-02-29
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Nekhelesh Ramananthan, 2016-02-29
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Nekhelesh Ramananthan, 2016-02-29
-
Re: [Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Jenkins Bot, 2016-02-29
-
[Merge] lp:~majster-pl/ubuntu-calendar-app/new-agenda-view into lp:ubuntu-calendar-app
From: Szymon Waliczek, 2016-02-29