Skip to content

Commit

Permalink
New jquery calendar control (yuicalendarcontrol replacement) for boot…
Browse files Browse the repository at this point in the history
…strap framework (initially) [#742 #1120]
  • Loading branch information
dleffler committed Jan 16, 2014
1 parent 5b3f885 commit e09c078
Show file tree
Hide file tree
Showing 10 changed files with 54 additions and 23 deletions.
5 changes: 5 additions & 0 deletions external/jquery/addons/js/jquery.datetimepicker.js
Expand Up @@ -1045,6 +1045,11 @@
if(!this.value || !datetimepicker.data('xdsoft_datetime').isValidDate(Date.parseDate(this.value, options.format)))
datetimepicker.data('changed',false);
datetimepicker.data('xdsoft_datetime').setCurrentTime(this.value);
break;
case 'update':
this.value = this.defaultValue;
datetimepicker.data('xdsoft_datetime').setCurrentTime(this.value);
datetimepicker.trigger('afterOpen.xdsoft');
break;
}
}else{
Expand Down
2 changes: 1 addition & 1 deletion framework/core/forms/controls/bootstrap/formcontrol.php
Expand Up @@ -85,7 +85,7 @@ function toHTML($label,$name) {
$for = '';
}

$disabled = $this->disabled != 0 ? "disabled" : "";
$disabled = $this->disabled != 0 ? "disabled='disabled'" : "";
$class = empty($this->class) ? '' : $this->class;

$html = "<div".$divID." class=\"".$this->type."-control control ".$class.$disabled;
Expand Down
48 changes: 36 additions & 12 deletions framework/core/forms/controls/bootstrap/yuicalendarcontrol.php
Expand Up @@ -34,7 +34,8 @@ class yuicalendarcontrol extends formcontrol
{

// var $disable_text = "";
// var $showtime = true;
var $showdate = true;
var $showtime = false;

static function name()
{
Expand All @@ -54,14 +55,15 @@ static function getFieldDefinition()
}

// function __construct($default = null, $disable_text = "", $showtime = true) { //FIXME $disable_text & $showtime are NOT used
function __construct($default = null)
function __construct($default = null, $showdate = true, $showtime = false)
{
// $this->disable_text = $disable_text;
if (empty($default)) {
$default = time();
}
$this->default = $default;
// $this->showtime = $showtime;
$this->showdate = $showdate;
$this->showtime = $showtime;

// if ($this->default == null) {
// if ($this->disable_text == "") $this->default = time();
Expand All @@ -75,35 +77,57 @@ function __construct($default = null)
// {
// }

function toHTML($label, $name)
{
if (!$this->showdate && !$this->showtime) {
return "";
}
$html = parent::toHTML($label, $name);
return $html;
}

function controlToHTML($name, $label = null)
{
$idname = str_replace(array('[', ']', ']['), '_', $name);
if (is_numeric($this->default)) {
$default = date('m/d/Y', $this->default);
if ($this->showdate && !$this->showtime) {
$default = date('n/j/Y', $this->default);
} elseif (!$this->showdate && $this->showtime) {
$default = date('H:i', $this->default);
} else {
$default = date('n/j/Y H:i', $this->default);
}
} else {
$default = $this->default;
}

$date_input = new textcontrol($default);
$date_input->id = $idname;
$date_input->name = $idname;
// $date_input->id = $idname;
// $date_input->name = $idname;
// $date_input->disabled = 'disabled';
$html = $date_input->toHTML(null, $name);
// $html .= "
// <div style=\"clear:both\"></div>
// ";

$script = "
$('#" . $idname . "').datetimepicker({
timepicker: false,
format: 'm/d/Y',
dayOfWeekStart: " . DISPLAY_START_OF_WEEK . ",
inline: true
$(document).ready(function() {
$('#" . $idname . "').datetimepicker({
datepicker: " . ($this->showdate ? 'true' : 'false') .",
timepicker: " . ($this->showtime ? 'true' : 'false') .",
format: '" .($this->showdate ? 'n/j/Y' : '') . ($this->showdate && $this->showtime ? ' ' : '') . ($this->showtime ? 'H:i' : '') ."',
formatTime:'g:i a',
step: 15,
dayOfWeekStart: " . DISPLAY_START_OF_WEEK . ",
inline: true,
value: '".$default."'
});
});
";

expJavascript::pushToFoot(
array(
"unique" => 'zzyuical-' . $idname,
"unique" => '00yuical-' . $idname,
"jquery" => "jquery.datetimepicker",
"content" => $script,
)
Expand Down
1 change: 0 additions & 1 deletion framework/core/forms/controls/calendarcontrol.php
Expand Up @@ -99,7 +99,6 @@ function controlToHTML($name, $label = null) {
$html .= " @ <input size=2 type=\"text\" id=\"time-h-" . $idname . "\" name=\"time-h-" . $name . "\" value=\"" . $this->default_hour . "\" class=\"timebox\" maxlength=2/>
: <input size=2 type=\"text\" id=\"time-m-" . $idname . "\" name=\"time-m-" . $name . "\" value=\"" . $this->default_min . "\" class=\"timebox\" maxlength=2/>
<select id=\"ampm-" . $idname . "\" name=\"ampm-" . $name . "\">";

if ($this->default_ampm == "AM") $html .= "<option selected>am</option><option>pm</option>";
else $html .= "<option>am</option><option selected>pm</option>";
$html .= "
Expand Down
2 changes: 1 addition & 1 deletion framework/core/forms/controls/formcontrol.php
Expand Up @@ -85,7 +85,7 @@ function toHTML($label,$name) {
$for = '';
}

$disabled = $this->disabled != 0 ? "disabled" : "";
$disabled = $this->disabled != 0 ? "disabled='disabled'" : "";
$class = empty($this->class) ? '' : $this->class;

$html = "<div".$divID." class=\"".$this->type."-control control ".$class.$disabled;
Expand Down
4 changes: 2 additions & 2 deletions framework/core/forms/controls/textcontrol.php
Expand Up @@ -63,7 +63,7 @@ function controlToHTML($name, $label) {
$html = '<input' . $inputID . ' class="text' . $extra_class . '" type="' . $this->type . '" name="' . $name . '"';
$html .= " value=\"" . str_replace('"',"&quot;",$this->default) . "\"";
$html .= ($this->size?" size=\"".$this->size."\"":"");
$html .= ($this->disabled?" disabled ":"");
$html .= ($this->disabled?" disabled='disabled' ":"");
$html .= ($this->maxlength?" maxlength=\"".$this->maxlength."\"":"");
$html .= ($this->tabindex>=0?" tabindex=\"".$this->tabindex."\"":"");
$html .= ($this->accesskey != ""?" accesskey=\"".$this->accesskey."\"":"");
Expand All @@ -78,7 +78,7 @@ function controlToHTML($name, $label) {

$caption = !empty($this->caption) ? $this->caption : str_replace(array(":","*"), "", ucwords($label));
if (!empty($this->required)) $html .= ' required="required" caption="'.$caption.'"';
$html .= "/>";
$html .= " />";
if (!empty($this->description)) $html .= "<div class=\"control-desc\">".$this->description."</div>";
return $html;
}
Expand Down
7 changes: 5 additions & 2 deletions framework/core/forms/controls/yuicalendarcontrol.php
Expand Up @@ -30,7 +30,8 @@
class yuicalendarcontrol extends formcontrol {

// var $disable_text = "";
// var $showtime = true;
// var $showdate = true;
// var $showtime = false;

static function name() {
return "Date / Time - Calendar Display";
Expand All @@ -46,10 +47,12 @@ static function getFieldDefinition() {
}

// function __construct($default = null, $disable_text = "", $showtime = true) { //FIXME $disable_text & $showtime are NOT used
function __construct($default = null) {
function __construct($default = null, $showdate = true, $showtime = false)
{
// $this->disable_text = $disable_text;
if (empty($default)) $default = time();
$this->default = $default;
// $this->showdate = $showdate;
// $this->showtime = $showtime;

// if ($this->default == null) {
Expand Down
Expand Up @@ -51,10 +51,10 @@
</div>
<div id="tab2">
<h2>{'Event Date/Time'|gettext}</h2>
{control type="yuicalendarcontrol" name="eventdate" label="Start Date of Event"|gettext value=$record->eventdate}
{control type="yuicalendarcontrol" name="eventdate" label="Start Date of Event"|gettext value=$record->eventdate showtime=false}
{control type="datetimecontrol" name="event_starttime" label="Start Time"|gettext value=$record->event_starttime+$record->eventdate showdate=false}
{control type="datetimecontrol" name="event_endtime" label="End Time"|gettext value=$record->event_endtime+$record->eventdate showdate=false}
{control type="yuicalendarcontrol" name="eventenddate" label="End Date of Event"|gettext value=$record->eventenddate description='Only used for display purposes'|gettext}
{control type="yuicalendarcontrol" name="eventenddate" label="End Date of Event"|gettext value=$record->eventenddate description='Only used for display purposes'|gettext showtime=false}
<h2>{'Signup Cutoff'|gettext}</h2>
{control type="yuicalendarcontrol" name="signup_cutoff" label="Registrations is closed after"|gettext value=$record->signup_cutoff showtime = true}
{* FIXME yuicalendarcontrol does NOT display time *}
Expand Down
2 changes: 1 addition & 1 deletion framework/modules/events/views/event/edit.tpl
Expand Up @@ -56,7 +56,7 @@
{/if}
</div>
<div id="tab2">
{control type="yuicalendarcontrol" name="eventdate" label="Event Date"|gettext value=$record->eventdate[$event_key]->date}
{control type="yuicalendarcontrol" name="eventdate" label="Event Date"|gettext value=$record->eventdate[$event_key]->date showtime=false}
{$jsHooks = ['onclick'=>'exponent_forms_disable_datetime(\'eventstart\',this.form,this.checked); exponent_forms_disable_datetime(\'eventend\',this.form,this.checked);']}
{control type="checkbox" name="is_allday" label="All Day Event?"|gettext value=1 checked=$record->is_allday hooks=$jsHooks}
{control type="datetimecontrol" name="eventstart" label="Start Time"|gettext showdate=false value=$record->eventstart+$record->eventdate[0]->date disabled=$record->is_allday}
Expand Down
2 changes: 1 addition & 1 deletion framework/plugins/function.control.php
Expand Up @@ -70,7 +70,7 @@ function smarty_function_control($params, &$smarty) {
if (empty($params['value'])) $params['value'] = time();
// $disabletext = isset($params['disable_text']) ? $params['disable_text'] : 'Change Date/Time';
// $control = new yuicalendarcontrol($params['value'], $disabletext, $showtime);
$control = new yuicalendarcontrol($params['value']);
$control = new yuicalendarcontrol($params['value'], $showdate, $showtime);
break;
case "datetimecontrol":
case "datetime":
Expand Down

0 comments on commit e09c078

Please sign in to comment.