Skip to content

Commit e781d03

Browse files
committed
[LimeCalendar] - changes to dates and colors
1 parent 5309322 commit e781d03

File tree

7 files changed

+80
-13
lines changed

7 files changed

+80
-13
lines changed

LimeCalendar/Install/LimeCalendar.bas

+46
Original file line numberDiff line numberDiff line change
@@ -221,3 +221,49 @@ ErrorHandler:
221221
Call UI.ShowError("LimeCalendar.GetTableLocale")
222222
End Function
223223

224+
Public Function GetDateFormat() As String
225+
On Error GoTo ErrorHandler
226+
Dim splitDate() As String
227+
Dim separator As String
228+
separator = GetDateSeparator
229+
splitDate = VBA.Split(VBA.Date, separator)
230+
Select Case VBA.Day(VBA.CDate("01-02-03"))
231+
Case 1
232+
GetDateFormat = VBA.Left("DD", VBA.Len(splitDate(0))) & separator & _
233+
VBA.Left("MM", VBA.Len(splitDate(1))) & separator & _
234+
VBA.Left("YYYY", VBA.Len(splitDate(2)))
235+
Case 2
236+
GetDateFormat = VBA.Left("MM", VBA.Len(splitDate(0))) & separator & _
237+
VBA.Left("DD", VBA.Len(splitDate(1))) & separator & _
238+
VBA.Left("YYYY", VBA.Len(splitDate(2)))
239+
Case 3
240+
GetDateFormat = VBA.Left("YYYY", VBA.Len(splitDate(0))) & separator & _
241+
VBA.Left("MM", VBA.Len(splitDate(1))) & separator & _
242+
VBA.Left("DD", VBA.Len(splitDate(2)))
243+
End Select
244+
GetDateFormat = GetDateFormat
245+
Exit Function
246+
ErrorHandler:
247+
Call UI.ShowError("LimeCalendar.GetDateFormat")
248+
End Function
249+
250+
Private Function GetDateSeparator() As String
251+
Dim sDate As String
252+
Dim i As Integer
253+
Dim retVal As String
254+
sDate = VBA.CStr(VBA.Now)
255+
256+
For i = 1 To Len(sDate)
257+
If Not VBA.IsNumeric(VBA.Mid(sDate, i, 1)) Then
258+
retVal = retVal & VBA.Mid(sDate, i, 1)
259+
End If
260+
Next i
261+
GetDateSeparator = VBA.Left(retVal, 1)
262+
End Function
263+
264+
Public Sub Test()
265+
Dim sTest() As String
266+
267+
sTest = VBA.Split(VBA.Date, GetDateSeparator)
268+
269+
End Sub

LimeCalendar/Scripts/fullcalendar.min.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ var fcViews = FC.views = {};
2929
$.fn.fullCalendar = function(options) {
3030
var args = Array.prototype.slice.call(arguments, 1); // for a possible method call
3131
var res = this; // what this function will return (this jQuery object by default)
32-
32+
3333
this.each(function(i, _element) { // loop each DOM element involved
3434
var element = $(_element);
3535
var calendar = element.data('fullCalendar'); // get the existing calendar object (if any)

LimeCalendar/app.css

-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ div.row > div {
7474

7575
.btn.btn-plain.open{
7676
background-image: none;
77-
background-color: red;
7877
color: #fff;
7978
}
8079

LimeCalendar/app.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,11 @@ <h4 data-bind="text: selectedEvent().detailsTitle" class="modal-title" id="cowor
112112
<div class="modal-body">
113113
<div class="row">
114114
<div data-bind="text: localize.LimeCalendar.start" class="col-xs-4"></div>
115-
<div data-bind="text: selectedEvent().start ? moment(selectedEvent().start).format(selectedEvent().dateFormat) : ''" class="col-xs-8" ></div>
115+
<div data-bind="text: selectedEvent().start ? moment(selectedEvent().start, 'YYYY-MM-DD', true).format(dateFormat) : ''" class="col-xs-8" ></div>
116116
</div>
117117
<div class="row">
118118
<div data-bind="text: localize.LimeCalendar.end" class="col-xs-4"></div>
119-
<div data-bind="text: selectedEvent().end ? moment(selectedEvent().end).format(selectedEvent().dateFormat) : ''" class="col-xs-8"></div>
119+
<div data-bind="text: selectedEvent().end ? moment(selectedEvent().end, 'YYYY-MM-DD', true).format(dateFormat) : ''" class="col-xs-8"></div>
120120
</div>
121121
<!-- ko foreach: selectedEvent().fields -->
122122
<div class="row">

LimeCalendar/app.js

+19-7
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,16 @@ lbs.apploader.register('LimeCalendar', function () {
4040
initialField: 'coworker',
4141
dateformat: 'YYYY-MM-DD',
4242
color: '#fff',
43-
backgroundColor: '#FF3296',
44-
borderColor: '#FF3296',
45-
showOnZero: false
43+
backgroundColor: '#575756',
44+
borderColor: '#575756',
45+
showOnZero: false,
46+
statusColors: {
47+
'': '#575756',
48+
'planned': '#EF6407',
49+
'ongoing': '#00C8AA',
50+
'done': '#00BEFF',
51+
'cancelled': '#FF3296',
52+
}
4653
}
4754
}
4855
];
@@ -79,6 +86,8 @@ lbs.apploader.register('LimeCalendar', function () {
7986
but, well, here you have it.
8087
*/
8188
self.initialize = function (node, viewModel) {
89+
90+
viewModel.dateFormat = lbs.common.executeVba("LimeCalendar.GetDateFormat");
8291
viewModel.selectedDate = ko.observable();
8392
viewModel.personFilter = ko.observable();
8493
viewModel.selectedEvent = ko.observable();
@@ -189,9 +198,9 @@ lbs.apploader.register('LimeCalendar', function () {
189198
return {
190199
id: event.id,
191200
table: event.table.table,
192-
start: moment(event.start).format(event.dateFormat),
201+
start: moment(event.start,"YYYY-MM-DD",true).format(viewModel.dateFormat),
193202
startfield: event.startfield,
194-
end: event.end ? moment(event.end).format(event.dateFormat) : null,
203+
end: event.end ? moment(event.end, "YYYY-MM-DD",true).format(viewModel.dateFormat) : null,
195204
endfield: event.endfield
196205
}
197206
});
@@ -241,7 +250,7 @@ lbs.apploader.register('LimeCalendar', function () {
241250
{type: 'records', source: 'LimeCalendar.GetItems, ' + btoa(params)},
242251
true
243252
);
244-
253+
245254
var items = ko.utils.arrayMap(jsonData[table.table].records, function(item) {
246255
return new model.GenericModel(
247256
viewModel,
@@ -255,10 +264,12 @@ lbs.apploader.register('LimeCalendar', function () {
255264
table.options
256265
);
257266
});
267+
258268
viewModel.tables()[index].hitcount(items.length);
259269
allItems = allItems.concat(items);
260270
});
261-
viewModel.events(allItems);
271+
272+
viewModel.events(allItems);
262273
viewModel.setItems();
263274
}
264275

@@ -341,6 +352,7 @@ lbs.apploader.register('LimeCalendar', function () {
341352
appViewModel: viewModel,
342353
viewDate: viewModel.calendarModel.viewDate
343354
});
355+
344356
}
345357

346358
viewModel.setup();

LimeCalendar/app.json

+6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55
"status": "Release",
66
"shortDesc": "Simple and configurable calendar for Lime CRM.",
77
"versions": [
8+
{
9+
"version": "1.3",
10+
"date": "2017-05-12",
11+
"comments": "Added support for multiple date formats and possibility to change color on the calendar items based on an option field."
12+
},
813
{
914
"version": "1.2",
1015
"date": "2017-03-17",
@@ -132,6 +137,7 @@
132137
"code": "chooseGroup",
133138
"sv": "V\u00E4lj grupp",
134139
"en_us": "Choose group"
140+
}
135141
, {
136142
"owner": "LimeCalendar",
137143
"code": "openCalendar",

LimeCalendar/model.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ var model = {
1313
self.startfield = start;
1414
self.endfield = end;
1515
self.statusFilter = options.statusFilter ? item[options.statusFilter].text : '';
16-
self.start = moment(item[start].text).format(options.dateformat);
17-
self.end = moment(item[end].text).format(options.dateformat);
16+
self.start = moment(item[start].text, viewModel.dateFormat, true).format("YYYY-MM-DD");
17+
self.end = moment(item[end].text, viewModel.dateFormat, true).format("YYYY-MM-DD");
1818
self.fields = ko.observableArray(ko.utils.arrayMap(self.view(), function(field, index) {
1919
return {
2020
name: eval('viewModel.localize.LimeCalendar.' + self.locales()[index]),
@@ -26,6 +26,10 @@ var model = {
2626
self.backgroundColor = options.backgroundColor;
2727
self.color = options.color;
2828
self.borderColor = options.borderColor;
29+
if(options.statusColors) {
30+
self.backgroundColor = options.statusColors[item[options.statusFilter].key] || self.backgroundColor;
31+
self.borderColor = options.statusColors[item[options.statusFilter].key] || self.borderColor;
32+
}
2933
},
3034

3135
Coworker: function(viewModel, item){

0 commit comments

Comments
 (0)