Pick default colors for the calendar based on start time

This commit is contained in:
Albert Santoni 2015-08-28 18:16:55 -04:00
parent 13f62cc118
commit e1d5126e8b
4 changed files with 36 additions and 10 deletions

View File

@ -1042,7 +1042,7 @@ SQL;
if (!empty($show["background_color"])) {
$event["color"] = "#" . $show["background_color"];
} else {
$event["color"] = "#" . DEFAULT_SHOW_COLOR;
$event["color"] = "#" . self::getDefaultBackgroundColor($startsDT);//DEFAULT_SHOW_COLOR;
}
foreach ($options as $key => $value) {
@ -1054,6 +1054,22 @@ SQL;
return $events;
}
/** Get a palettized colour for the show. */
private static function getDefaultBackgroundColor($date) {
$palette = [['42d5a1', '56bd99', '65ab93', '7b938b'],
['42a4d5', '569bbd', '6594ab', '7b8b93'],
['4264d5', '566fbd', '6576ab', '7b8193']];
//$hashValue = (md5($date->format('d'))[0] % $cols) + ((intval($date->format('h'))/24) % $rows);
$row = intval($date->format('d')) % sizeof($palette);
$foo = $date->format('H');
$col = intval(intval($date->format('H'))/24.0 * sizeof($palette[0]));
//$color = $palette[$hashValue % sizeof($palette)];
$color = $palette[$row][$col];
return $color;
}
/**
* Calculates the percentage of a show scheduled given the start and end times in date/time format
* and the time_filled as the total time the schow is scheduled for in time format.

View File

@ -606,7 +606,7 @@ table.fc-border-separate {
width: 100%;
height: 100%;
background: #fff;
opacity: .3;
opacity: 0.3;
filter: alpha(opacity=30);
}

View File

@ -75,10 +75,17 @@ function setupStartTimeWidgets() {
$('#add_show_start_date').removeProp('disabled');
$('#add_show_start_time').removeProp('disabled');
}
}
}
function calculateShowColor() {
var bgColorEle = $("#add_show_background_color");
var textColorEle = $("#add_show_color");
var colorCode = stringToColor($('#add_show_start_time').val());//$(this).val());
//bgColorEle.val(colorCode);
//textColorEle.val(getContrastYIQ(colorCode));
}
//$el is DOM element #add-show-form
//form is the new form contents to append to $el
function redrawAddShowForm($el, form) {
@ -226,7 +233,10 @@ function intToRGB(i){
function stringToColor(s)
{
var palette = ['d56f42', 'aad542', '7242d5', '42d563', 'd542be'];
var palette = ['42d5a1', '56bd99', '65ab93', '7b938b',
'42a4d5', '569bbd', '6594ab', '7b8b93',
'4264d5', '566fbd', '6576ab', '7b8193'];
//var palette = ['d56f42', 'aad542', '7242d5', '42d563', 'd542be'];
return palette[Math.abs(hashCode(s)) % palette.length];
//return intToRGB(hashCode(s));
}
@ -943,13 +953,12 @@ function setAddShowEvents(form) {
// Since Zend's setAttrib won't apply through the wrapper, set accept=image/* here
$("#add_show_logo").prop("accept", "image/*");
var bgColorEle = $("#add_show_background_color");
var textColorEle = $("#add_show_color");
$('#add_show_name').bind('input', 'change', function(){
var colorCode = stringToColor($(this).val());
bgColorEle.val(colorCode);
textColorEle.val(getContrastYIQ(colorCode));
//$('#add_show_name').bind('input', 'change', function(){
$('#add_show_start_time').bind('input', 'change', function(){
calculateShowColor();
});
}
function showErrorSections() {

View File

@ -112,6 +112,7 @@ function dayClick(date, allDay, jsEvent, view){
$("#add_show_start_time").val(startTime_string)
$("#add_show_end_time").val(endTimeString)
}
calculateShowColor();
$("#schedule-show-when").show();
openAddShowForm();