~mihirsoni/ubuntu-calendar-app/dateSelectNewEventTest

« back to all changes in this revision

Viewing changes to AllDayEventComponent.qml

  • Committer: Kunal Parmar
  • Date: 2014-09-28 11:49:35 UTC
  • mfrom: (478 ubuntu-calendar-app)
  • mto: This revision was merged to the branch mainline in revision 480.
  • Revision ID: pkunal.parmar@gmail.com-20140928114935-scs25xpajdxn358p
mergeĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
 * You should have received a copy of the GNU General Public License
16
16
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
17
 */
18
 
import QtQuick 2.0
19
 
import Ubuntu.Components 0.1
20
 
import Ubuntu.Components.Popups 0.1
 
18
import QtQuick 2.3
 
19
import Ubuntu.Components 1.1
 
20
import Ubuntu.Components.Popups 1.0
21
21
 
22
22
import "dateExt.js" as DateExt
23
23
import "ViewType.js" as ViewType
24
24
 
25
 
Rectangle{
 
25
Item {
26
26
    id: root
27
27
 
28
28
    property var allDayEvents;
31
31
 
32
32
    property int type: ViewType.ViewTypeWeek
33
33
 
34
 
    height: units.gu(6)
35
34
    width: parent.width
36
 
    color: "#C8C8C8"
37
35
 
38
36
    function getAllDayEvents(startDate, endDate) {
39
37
        var map = {};
60
58
        allDayEvents = getAllDayEvents(sd,ed);
61
59
    }
62
60
 
63
 
    Row {
64
 
        width: parent.width
65
 
        anchors.verticalCenter: parent.verticalCenter
66
 
 
67
 
        Repeater{
68
 
            model: type == ViewType.ViewTypeWeek ? 7 : 1
69
 
            delegate: Label{
70
 
                id: allDayLabel
71
 
 
72
 
                property var events;
73
 
 
74
 
                clip: true
75
 
                width: parent.width/ (type == ViewType.ViewTypeWeek ? 7 : 1)
76
 
                horizontalAlignment: Text.AlignHCenter
77
 
 
78
 
                MouseArea{
79
 
                    anchors.fill: parent
80
 
                    onClicked: {
81
 
                        if(!allDayLabel.events || allDayLabel.events.length === 0) {
82
 
                            return;
83
 
                        }
84
 
 
85
 
                        if(type == ViewType.ViewTypeWeek) {
86
 
                            PopupUtils.open(popoverComponent, root,{"events": allDayLabel.events})
87
 
                        } else {
88
 
                            if( allDayLabel.events.length > 1 ) {
89
 
                                PopupUtils.open(popoverComponent, root,{"events": allDayLabel.events})
90
 
                            } else {
91
 
                                pageStack.push(Qt.resolvedUrl("EventDetails.qml"),{"event":allDayLabel.events[0],"model": root.model});
92
 
                            }
93
 
                        }
94
 
                    }
95
 
                }
96
 
 
97
 
                Connections{
98
 
                    target: root
99
 
                    onAllDayEventsChanged:{
100
 
                        var sd = startDay.midnight();
101
 
                        sd = sd.addDays(index);
102
 
                        var key  = Qt.formatDateTime(sd, "dd-MMM-yyyy");
103
 
                        events = allDayEvents[key];
104
 
 
105
 
                        if(!events || events.length === 0) {
106
 
                            text = "";
107
 
                            return;
108
 
                        }
109
 
 
110
 
                        if(type == ViewType.ViewTypeWeek) {
111
 
                            // TRANSLATORS: the first parameter refers to the number of all-day events
112
 
                            // on a given day. "Ev." is short form for "Events".
113
 
                            // Please keep the translation of "Ev." to 3 characters only, as the week view
114
 
                            // where it's shown has limited space
115
 
                            text =  i18n.tr("%1 Ev.").arg(events.length)
116
 
                        } else {
117
 
                            if( events.length > 1) {
118
 
                                text = i18n.tr("%1 All day events").arg(events.length)
119
 
                            } else {
120
 
                                text = events[0].displayLabel;
121
 
                            }
 
61
    Repeater{
 
62
        model: type == ViewType.ViewTypeWeek ? 7 : 1
 
63
        delegate: Button {
 
64
            id: allDayButton
 
65
 
 
66
            property var events;
 
67
            gradient: UbuntuColors.orangeGradient
 
68
 
 
69
            x: type === ViewType.ViewTypeWeek ? root.width/7*index : 0
 
70
            height: units.gu(3)
 
71
            clip: true
 
72
            width: parent.width/ (type == ViewType.ViewTypeWeek ? 7 : 1)
 
73
            visible: !allDayButton.events || allDayButton.events.length === 0 ? false : true
 
74
 
 
75
            onClicked: {
 
76
                if(!allDayButton.events || allDayButton.events.length === 0) {
 
77
                    return;
 
78
                }
 
79
 
 
80
                if(type == ViewType.ViewTypeWeek) {
 
81
                    PopupUtils.open(popoverComponent, root,{"events": allDayButton.events})
 
82
                } else {
 
83
                    if( allDayButton.events.length > 1 ) {
 
84
                        PopupUtils.open(popoverComponent, root,{"events": allDayButton.events})
 
85
                    } else {
 
86
                        pageStack.push(Qt.resolvedUrl("EventDetails.qml"),{"event":allDayButton.events[0],"model": root.model});
 
87
                    }
 
88
                }
 
89
            }
 
90
 
 
91
            Connections{
 
92
                target: root
 
93
                onAllDayEventsChanged:{
 
94
                    var sd = startDay.midnight();
 
95
                    sd = sd.addDays(index);
 
96
                    var key  = Qt.formatDateTime(sd, "dd-MMM-yyyy");
 
97
                    events = allDayEvents[key];
 
98
 
 
99
                    if(!events || events.length === 0) {
 
100
                        text = "";
 
101
                        return;
 
102
                    }
 
103
 
 
104
                    if(type == ViewType.ViewTypeWeek) {
 
105
                        // TRANSLATORS: the first parameter refers to the number of all-day events
 
106
                        // on a given day. "Ev." is short form for "Events".
 
107
                        // Please keep the translation of "Ev." to 3 characters only, as the week view
 
108
                        // where it's shown has limited space
 
109
                        text =  i18n.tr("%1 Ev.").arg(events.length)
 
110
                    } else {
 
111
                        if( events.length > 1) {
 
112
                            text = i18n.tr("%1 All day events").arg(events.length)
 
113
                        } else {
 
114
                            text = events[0].displayLabel;
122
115
                        }
123
116
                    }
124
117
                }