~mihirsoni/ubuntu-calendar-app/dateSelectNewEventTest

« back to all changes in this revision

Viewing changes to NewEvent.qml

  • Committer: Andrea Cerisara
  • Date: 2013-10-22 17:32:19 UTC
  • mfrom: (158 ubuntu-calendar-app)
  • mto: This revision was merged to the branch mainline in revision 162.
  • Revision ID: andreacerisara@gmail.com-20131022173219-5iyw2hqialxuam35
Merged master, fixed autopilot tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
import Ubuntu.Components.ListItems 0.1
5
5
import Ubuntu.Components.Themes.Ambiance 0.1
6
6
 
7
 
import "dataService.js" as DataService
 
7
import "GlobalEventModel.js" as GlobalModel
8
8
 
9
9
Page {
10
10
    id: root
11
11
 
12
12
    property var date: new Date();
13
 
    property alias errorText: errorPopupDialog.text;
14
 
    property var startDate: date
15
 
    property var endDate: date
 
13
    property var startDate;
 
14
    property var endDate;
 
15
 
16
16
    property alias scrollY: flickable.contentY
17
17
 
18
18
    Component.onCompleted: {
19
 
        startDate = new Date(date)
20
 
        endDate = new Date(date)
21
 
        endDate.setMinutes( endDate.getMinutes() + 10)
 
19
        // If startDate is setted by argument we have to not change it
 
20
        if (typeof(startDate) === 'undefined')
 
21
            startDate = new Date(date)
 
22
 
 
23
        // If endDate is setted by argument we have to not change it
 
24
        if (typeof(endDate) === 'undefined') {
 
25
            endDate = new Date(date)
 
26
            endDate.setMinutes( endDate.getMinutes() + 10)
 
27
        }
 
28
 
 
29
        internal.eventModel = GlobalModel.gloablModel();
22
30
 
23
31
        startTime.text = Qt.formatDateTime(startDate, "dd MMM yyyy hh:mm");
24
32
        endTime.text = Qt.formatDateTime(endDate, "dd MMM yyyy hh:mm");
25
33
    }
26
34
 
 
35
    function saveToQtPim() {
 
36
 
 
37
        internal.clearFocus()
 
38
 
 
39
        if ( startDate >= endDate ) {
 
40
            PopupUtils.open(errorDlgComponent,root,{"text":i18n.tr("End time can't be before start time")});
 
41
        } else {
 
42
 
 
43
            var event = Qt.createQmlObject("import QtOrganizer 5.0; Event { }", Qt.application,"NewEvent.qml");
 
44
 
 
45
            event.startDateTime = startDate;
 
46
            event.endDateTime = endDate;
 
47
            event.displayLabel = titleEdit.text;
 
48
            event.description = messageEdit.text;
 
49
 
 
50
            event.location = locationEdit.text
 
51
 
 
52
            if( personEdit.text != "") {
 
53
                var attendee = Qt.createQmlObject("import QtOrganizer 5.0; EventAttendee{}", Qt.application, "NewEvent.qml");
 
54
                attendee.name = personEdit.text;
 
55
                attendee.emailAddress = "none@nowhere.com";
 
56
                event.setDetail(attendee);
 
57
            }
 
58
 
 
59
            internal.eventModel.saveItem(event);
 
60
            pageStack.pop();
 
61
        }
 
62
    }
 
63
 
27
64
    width: parent.width
28
65
    height: parent.height
29
66
 
39
76
            objectName: "eventCancelButton"
40
77
            action: Action {
41
78
                text: i18n.tr("Cancel");
 
79
                iconSource: Qt.resolvedUrl("cancel.svg");
42
80
                onTriggered: {
43
81
                    pageStack.pop();
44
82
                }
49
87
            objectName: "eventSaveButton"
50
88
            action: Action {
51
89
                text: i18n.tr("Save");
 
90
                iconSource: Qt.resolvedUrl("save.svg");
52
91
                onTriggered: {
53
 
                    saveEvent();
54
 
                    pageStack.pop();
 
92
                    saveToQtPim();
55
93
                }
56
94
            }
57
95
        }
58
96
    }
59
97
 
60
 
    function saveEvent() {
61
 
        internal.clearFocus()
62
 
 
63
 
        var error = 0;
64
 
 
65
 
        if ( startDate > endDate )
66
 
            error = 2;
67
 
 
68
 
        var event = {
69
 
            title: titleEdit.text,
70
 
            message: null,
71
 
            startTime: startDate.getTime(),
72
 
            endTime: endDate.getTime()
73
 
        }
74
 
 
75
 
        if (!error) {
76
 
            DataService.addEvent(event);
77
 
        } else {
78
 
            errorText = i18n.tr("End time can't be before start time");
79
 
            errorPopupDialog.show();
80
 
        }
81
 
 
82
 
        error = 0;
83
 
    }
84
 
 
85
 
    QtObject {
86
 
        id: internal
87
 
        function clearFocus() {
88
 
            Qt.inputMethod.hide()
89
 
            titleEdit.focus = false
90
 
            locationEdit.focus = false
91
 
            personEdit.focus = false
92
 
            startTime.focus = false
93
 
            endTime.focus = false
94
 
            messageEdit.focus = false
95
 
        }
96
 
    }
97
 
 
98
 
    Dialog {
99
 
        id: errorPopupDialog
100
 
        title: i18n.tr("Error")
101
 
        text: ""
102
 
        Button {
103
 
            text: i18n.tr("Ok")
104
 
            onClicked: PopupUtils.close(errorPopupDialog)
 
98
    Component{
 
99
        id: errorDlgComponent
 
100
        Dialog {
 
101
            id: dialog
 
102
            title: i18n.tr("Error")
 
103
            Button {
 
104
                text: i18n.tr("Ok")
 
105
                onClicked: PopupUtils.close(dialog)
 
106
            }
105
107
        }
106
108
    }
107
109
 
275
277
            }
276
278
        }
277
279
    }
 
280
 
 
281
    QtObject {
 
282
        id: internal
 
283
        property var eventModel;
 
284
 
 
285
        function clearFocus() {
 
286
            Qt.inputMethod.hide()
 
287
            titleEdit.focus = false
 
288
            locationEdit.focus = false
 
289
            personEdit.focus = false
 
290
            startTime.focus = false
 
291
            endTime.focus = false
 
292
            messageEdit.focus = false
 
293
        }
 
294
    }
278
295
}