~yohanboniface/ubuntu-calendar-app/fix1280612

« back to all changes in this revision

Viewing changes to NewEvent.qml

  • Committer: Tarmac
  • Author(s): Kunal Parmar
  • Date: 2014-02-14 20:40:17 UTC
  • mfrom: (192.2.3 ubuntu-calendar-app)
  • Revision ID: tarmac-20140214204017-uw01whfcjs042yhr
Reminder support added. Fixes: https://bugs.launchpad.net/bugs/1240539, https://bugs.launchpad.net/bugs/1270241.

Approved by Renato Araujo Oliveira Filho, Ubuntu Phone Apps Jenkins Bot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
import Ubuntu.Components.Popups 0.1
5
5
import Ubuntu.Components.ListItems 0.1
6
6
import Ubuntu.Components.Themes.Ambiance 0.1
 
7
import QtOrganizer 5.0
7
8
 
8
9
import "GlobalEventModel.js" as GlobalModel
 
10
import "Defines.js" as Defines
9
11
 
10
12
Page {
11
13
    id: root
44
46
            editEvent(event);
45
47
        }
46
48
    }
 
49
 
47
50
    //Data for Add events
48
51
    function addEvent() {
49
52
        event = Qt.createQmlObject("import QtOrganizer 5.0; Event { }", Qt.application,"NewEvent.qml");
54
57
        startTime.text = Qt.formatDateTime(startDate, "dd MMM yyyy hh:mm");
55
58
        endTime.text = Qt.formatDateTime(endDate, "dd MMM yyyy hh:mm");
56
59
    }
 
60
 
57
61
    //Editing Event
58
62
    function editEvent(e) {
59
63
        startDate =new Date(e.startDateTime);
60
64
        endDate = new Date(e.endDateTime);
61
65
        startTime.text = Qt.formatDateTime(e.startDateTime, "dd MMM yyyy hh:mm");
62
66
        endTime.text = Qt.formatDateTime(e.endDateTime, "dd MMM yyyy hh:mm");
63
 
        if(e.displayLabel)
 
67
 
 
68
        if(e.displayLabel) {
64
69
            titleEdit.text = e.displayLabel;
65
 
        if(e.location)
 
70
        }
 
71
        if(e.location) {
66
72
            locationEdit.text = e.location;
 
73
        }
67
74
        if( e.description ) {
68
75
            messageEdit.text = e.description;
69
76
        }
81
88
            index = ( recurrenceRule.length > 0 ) ? recurrenceRule[0].frequency : 0;
82
89
        }
83
90
        recurrenceOption.selectedIndex = index;
 
91
 
 
92
        index = 0;
 
93
        var reminder = e.detail( Detail.VisualReminder);
 
94
        if( reminder ) {
 
95
            var reminderTime = reminder.secondsBeforeStart;
 
96
            var foundIndex = Defines.reminderValue.indexOf(reminderTime);
 
97
            index = foundIndex != -1 ? foundIndex : 0;
 
98
        }
 
99
        reminderOption.selectedIndex = index;
84
100
    }
85
101
 
86
102
    //Save the new or Existing event
94
110
            event.displayLabel = titleEdit.text;
95
111
            event.description = messageEdit.text;
96
112
            event.location = locationEdit.text
 
113
 
97
114
            event.attendees = []; // if Edit remove all attendes & add them again if any
98
115
            if( personEdit.text != "") {
99
 
                var attendee = Qt.createQmlObject("import QtOrganizer 5.0; EventAttendee{}", Qt.application, "NewEvent.qml");
 
116
                var attendee = Qt.createQmlObject("import QtOrganizer 5.0; EventAttendee{}", event, "NewEvent.qml");
100
117
                attendee.name = personEdit.text;
101
118
                event.setDetail(attendee);
102
119
            }
103
120
 
104
 
            var recurrenceRule = internal.recurrenceValue[ recurrenceOption.selectedIndex ];
 
121
            var recurrenceRule = Defines.recurrenceValue[ recurrenceOption.selectedIndex ];
105
122
            if( recurrenceRule !== RecurrenceRule.Invalid ) {
106
 
                var rule = Qt.createQmlObject("import QtOrganizer 5.0; RecurrenceRule {}", event.recurrence);
 
123
                var rule = Qt.createQmlObject("import QtOrganizer 5.0; RecurrenceRule {}", event.recurrence,"NewEvent.qml");
107
124
                rule.frequency = recurrenceRule;
108
125
                event.recurrence.recurrenceRules = [rule];
109
126
            }
110
127
 
 
128
            //remove old reminder value
 
129
            var oldVisualReminder = event.detail(Detail.VisualReminder);
 
130
            if(oldVisualReminder) {
 
131
                event.removeDetail(oldVisualReminder);
 
132
            }
 
133
 
 
134
            var oldAudibleReminder = event.detail(Detail.AudibleReminder);
 
135
            if(oldAudibleReminder) {
 
136
                event.removeDetail(oldAudibleReminder);
 
137
            }
 
138
 
 
139
            var reminderTime = Defines.reminderValue[ reminderOption.selectedIndex ];
 
140
            if( reminderTime !== 0 ) {
 
141
                var visualReminder =  Qt.createQmlObject("import QtOrganizer 5.0; VisualReminder{}", event, "NewEvent.qml");
 
142
                visualReminder.repetitionCount = 3;
 
143
                visualReminder.repetitionDelay = 120;
 
144
                visualReminder.message = titleEdit.text
 
145
                visualReminder.secondsBeforeStart = reminderTime;
 
146
                event.setDetail(visualReminder);
 
147
 
 
148
                var audibleReminder =  Qt.createQmlObject("import QtOrganizer 5.0; AudibleReminder{}", event, "NewEvent.qml");
 
149
                audibleReminder.repetitionCount = 3;
 
150
                audibleReminder.repetitionDelay = 120;
 
151
                audibleReminder.secondsBeforeStart = reminderTime;
 
152
                event.setDetail(audibleReminder);
 
153
            }
 
154
 
111
155
            internal.eventModel.saveItem(event);
112
156
            pageStack.pop();
113
157
        }
301
345
                    id: recurrenceOption
302
346
                    anchors.right: parent.right
303
347
                    width: parent.width - optionSelectorWidth - units.gu(1)
304
 
                    model: internal.recurrenceLabel
 
348
                    model: Defines.recurrenceLabel
 
349
                    containerHeight: itemHeight * 4
305
350
                }
306
351
            }
307
352
 
308
353
            Item{
309
354
                width: parent.width
310
 
                height: childrenRect.height
 
355
                height: reminderOption.height
311
356
                Label{
312
357
                    id: remindLabel
313
358
                    text: i18n.tr("Remind me");
314
359
                    anchors.verticalCenter: parent.verticalCenter
315
360
                }
316
361
                OptionSelector{
 
362
                    id: reminderOption
317
363
                    anchors.right: parent.right
318
364
                    width: parent.width - optionSelectorWidth - units.gu(1)
319
 
                    model:[i18n.tr("No Reminder"),
320
 
                        i18n.tr("5 minutes"),
321
 
                        i18n.tr("15 minutes"),
322
 
                        i18n.tr("30 minutes"),
323
 
                        i18n.tr("1 hour"),
324
 
                        i18n.tr("2 hours"),
325
 
                        i18n.tr("1 day"),
326
 
                        i18n.tr("2 days"),
327
 
                        i18n.tr("1 week"),
328
 
                        i18n.tr("2 weeks")]
 
365
                    containerHeight: itemHeight * 4
 
366
                    model: Defines.reminderLabel
329
367
                }
330
368
            }
331
369
        }
334
372
    QtObject {
335
373
        id: internal
336
374
        property var eventModel;
337
 
        property var recurrenceValue: [ RecurrenceRule.Invalid,
338
 
            RecurrenceRule.Daily,
339
 
            RecurrenceRule.Weekly,
340
 
            RecurrenceRule.Monthly,
341
 
            RecurrenceRule.Yearly];
342
 
 
343
 
        property var recurrenceLabel: [ i18n.tr("Once"),
344
 
            i18n.tr("Daily"),
345
 
            i18n.tr("Weekly"),
346
 
            i18n.tr("Monthly"),
347
 
            i18n.tr("Yearly")];
348
375
 
349
376
        function clearFocus() {
350
377
            Qt.inputMethod.hide()