Skip to content

Commit

Permalink
Dev: Remove reverseDate and put it in getJSDate
Browse files Browse the repository at this point in the history
  • Loading branch information
olleharstedt committed Apr 26, 2016
1 parent 3a722c9 commit e0f3145
Show file tree
Hide file tree
Showing 11 changed files with 42 additions and 57 deletions.
2 changes: 1 addition & 1 deletion application/controllers/admin/dataentry.php
Original file line number Diff line number Diff line change
Expand Up @@ -735,7 +735,7 @@ public function editdata($subaction, $id, $surveyid, $language='')
'name' => $fname['fieldname'],
'value' => $thisdate,
'pluginOptions' => array(
'format' => reverseDateToFitDatePicker($dateformatdetails['jsdate']) . " HH:mm",
'format' => $dateformatdetails['jsdate'] . " HH:mm",
'singleDatePicker' => true,
'startDate' => date("Y-m-d", time()),
'drops' => 'up', // TODO: Does not work. Why?
Expand Down
14 changes: 0 additions & 14 deletions application/helpers/frontend_helper.php
Original file line number Diff line number Diff line change
Expand Up @@ -2340,17 +2340,3 @@ function getMove()
}
return $move;
}

/**
* The DateTimePicker uses another date-format
* @param string $dateFormat - Like 'yyyy-mm-dd'
* @return string - E.g 'YYYY-MM-DD'
*/
function reverseDateToFitDatePicker($dateformat)
{
// Reverse case, trick from here: http://stackoverflow.com/a/6612519/2138090
$newDateFormat = strtolower($dateformat) ^ strtoupper($dateformat) ^ $dateformat;
$newDateFormat = str_replace("hh", "HH", $newDateFormat); // HH (hours) need still be in upper-case for 00-23 representation (not AM/PM)
return $newDateFormat;
}
14 changes: 4 additions & 10 deletions application/helpers/qanda_helper.php
Original file line number Diff line number Diff line change
Expand Up @@ -1104,15 +1104,10 @@ function do_date($ia)
// "+1" makes room for a trailing space in date/time values
$iLength = strlen(date($dateformatdetails['phpdate'],mktime(23,59,59,12,30,1999)))+1;

// For WhDateTimePicker, case is for some reason reversed in date format
$dateformat = $dateformatdetails['jsdate'];
// Reverse case, trick from here: http://stackoverflow.com/a/6612519/2138090
$dateformatReversed = reverseDateToFitDatePicker($dateformat);

// Hide calendar if there's no year, month or day in format
$hideCalendar = strpos($dateformatReversed, 'Y') === false
&& strpos($dateformatReversed, 'D') === false
&& strpos($dateformatReversed, 'M') === false;
// Hide calendar (but show hour/minute) if there's no year, month or day in format
$hideCalendar = strpos($dateformatdetails['jsdate'], 'Y') === false
&& strpos($dateformatdetails['jsdate'], 'D') === false
&& strpos($dateformatdetails['jsdate'], 'M') === false;

// HTML for date question using datepicker
$answer = Yii::app()->getController()->renderPartial('/survey/questions/date/selector/answer', array(
Expand All @@ -1121,7 +1116,6 @@ function do_date($ia)
'mindate' => $mindate,
'maxdate' => $maxdate,
'dateformatdetails' => $dateformatdetails['dateformat'],
'dateformatReversed' => $dateformatReversed,
'dateformatdetailsjs' => $dateformatdetails['jsdate'],
'goodchars' => "return goodchars(event,'".$goodchars."')",
'checkconditionFunction' => $checkconditionFunction.'(this.value, this.name, this.type)',
Expand Down
45 changes: 25 additions & 20 deletions application/helpers/surveytranslator_helper.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,20 @@
*/
function getDateFormatData($iDateFormat=0,$sLanguageCode='en')
{
// Bootstrap DateTimePicker uses capital letters.
$aDateFormats= array(
1=> array ('phpdate' => 'd.m.Y', 'jsdate' => 'dd.mm.yyyy', 'dateformat' => gT('dd.mm.yyyy')),
2=> array ('phpdate' => 'd-m-Y', 'jsdate' => 'dd-mm-yyyy', 'dateformat' => gT('dd-mm-yyyy')),
3=> array ('phpdate' => 'Y.m.d', 'jsdate' => 'yyyy.mm.dd', 'dateformat' => gT('yyyy.mm.dd')),
4=> array ('phpdate' => 'j.n.Y', 'jsdate' => 'd.m.yyyy', 'dateformat' => gT('d.m.yyyy')),
5=> array ('phpdate' => 'd/m/Y', 'jsdate' => 'dd/mm/yyyy', 'dateformat' => gT('dd/mm/yyyy')),
6=> array ('phpdate' => 'Y-m-d', 'jsdate' => 'yyyy-mm-dd', 'dateformat' => gT('yyyy-mm-dd')),
7=> array ('phpdate' => 'Y/m/d', 'jsdate' => 'yyyy/mm/dd', 'dateformat' => gT('yyyy/mm/dd')),
8=> array ('phpdate' => 'j/n/Y', 'jsdate' => 'd/m/yyyy', 'dateformat' => gT('d/m/yyyy')),
9=> array ('phpdate' => 'm-d-Y', 'jsdate' => 'mm-dd-yyyy', 'dateformat' => gT('mm-dd-yyyy')),
10=>array ('phpdate' => 'm.d.Y', 'jsdate' => 'mm.dd.yyyy', 'dateformat' => gT('mm.dd.yyyy')),
11=>array ('phpdate' => 'm/d/Y', 'jsdate' => 'mm/dd/yyyy', 'dateformat' => gT('mm/dd/yyyy')),
12=>array ('phpdate' => 'j-n-Y', 'jsdate' => 'd-m-yyyy', 'dateformat' => gT('d-m-yyyy'))
1=> array ('phpdate' => 'd.m.Y', 'jsdate' => 'DD.MM.YYYY', 'dateformat' => gT('dd.mm.yyyy')),
2=> array ('phpdate' => 'd-m-Y', 'jsdate' => 'DD-MM-YYYY', 'dateformat' => gT('dd-mm-yyyy')),
3=> array ('phpdate' => 'Y.m.d', 'jsdate' => 'YYYY.MM.DD', 'dateformat' => gT('yyyy.mm.dd')),
4=> array ('phpdate' => 'j.n.Y', 'jsdate' => 'D.M.YYYY', 'dateformat' => gT('d.m.yyyy')),
5=> array ('phpdate' => 'd/m/Y', 'jsdate' => 'DD/MM/YYYY', 'dateformat' => gT('dd/mm/yyyy')),
6=> array ('phpdate' => 'Y-m-d', 'jsdate' => 'YYYY-MM-DD', 'dateformat' => gT('yyyy-mm-dd')),
7=> array ('phpdate' => 'Y/m/d', 'jsdate' => 'YYYY/MM/DD', 'dateformat' => gT('yyyy/mm/dd')),
8=> array ('phpdate' => 'j/n/Y', 'jsdate' => 'D/M/YYYY', 'dateformat' => gT('d/m/yyyy')),
9=> array ('phpdate' => 'm-d-Y', 'jsdate' => 'MM-DD-YYYY', 'dateformat' => gT('mm-dd-yyyy')),
10=>array ('phpdate' => 'm.d.Y', 'jsdate' => 'MM.DD.YYYY', 'dateformat' => gT('mm.dd.yyyy')),
11=>array ('phpdate' => 'm/d/Y', 'jsdate' => 'MM/DD/YYYY', 'dateformat' => gT('mm/dd/yyyy')),
12=>array ('phpdate' => 'j-n-Y', 'jsdate' => 'D-M-YYYY', 'dateformat' => gT('d-m-yyyy'))
);

if ($iDateFormat > 12 || $iDateFormat<0) {
Expand Down Expand Up @@ -781,16 +782,20 @@ function getPHPDateFromDateFormat($sDateformat)


/**
* Convert a 'dateformat' format string to a 'jsdate' format.
*
* @param $sDateformat string
* @returns string
*
*/
* Convert a 'dateformat' format string to a 'jsdate' format.
* For Bootstrap, that means using capital letters, e.g.
* MM/DD/YYYY instead of mm/dd/yyyy.
*
* @param $sDateformat string
* @returns string
*
*/
function getJSDateFromDateFormat($sDateformat)
{
// No constraints for Bootstrap time-picker
return $sDateformat;
// Reverse case, trick from here: http://stackoverflow.com/a/6612519/2138090
$newDateFormat = strtolower($sDateformat) ^ strtoupper($sDateformat) ^ $sDateformat;
$newDateFormat = str_replace("hh", "HH", $newDateFormat); // HH (hours) need still be in upper-case for 00-23 representation (not AM/PM)
return $newDateFormat;
}


Expand Down
2 changes: 1 addition & 1 deletion application/views/admin/dataentry/content_view.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
<?php Yii::app()->getController()->widget('yiiwheels.widgets.datetimepicker.WhDateTimePicker', array(
'name' => $fieldname,
'pluginOptions' => array(
'format' => reverseDateToFitDatePicker($dateformatdetails['jsdate']) . " HH:mm",
'format' => $dateformatdetails['jsdate'] . " HH:mm",
'singleDatePicker' => true,
'startDate' => date("Y-m-d", time()),
'drops' => 'up', // TODO: Does not work. Why?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
'id' => 'datestampG',
'value' => isset($_POST['datestampG']) ? $_POST['datestampG'] : '',
'pluginOptions' => array(
'format' => reverseDateToFitDatePicker($dateformatdetails['jsdate']) . " HH:mm",
'format' => $dateformatdetails['jsdate'] . " HH:mm",
'singleDatePicker' => true,
'startDate' => date("Y-m-d H:i", time()),
'drops' => 'up', // TODO: Does not work. Why?
Expand All @@ -52,7 +52,7 @@
'id' => 'datestampL',
'value' => isset($_POST['datestampL']) ? $_POST['datestampL'] : '',
'pluginOptions' => array(
'format' => reverseDateToFitDatePicker($dateformatdetails['jsdate']) . " HH:mm",
'format' => $dateformatdetails['jsdate'] . " HH:mm",
'singleDatePicker' => true,
'startDate' => date("Y-m-d H:i", time()),
'drops' => 'up', // TODO: Does not work. Why?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
'id' => 'startdate',
'value' => $startdate,
'pluginOptions' => array(
'format' => reverseDateToFitDatePicker($dateformatdetails['jsdate']) . " HH:mm",
'format' => $dateformatdetails['jsdate'] . " HH:mm",
'singleDatePicker' => true,
'startDate' => date("Y-m-d hh:ii", time()),
'drops' => 'up', // TODO: Does not work. Why?
Expand All @@ -58,7 +58,7 @@
'id' => 'expires',
'value' => $expires,
'pluginOptions' => array(
'format' => reverseDateToFitDatePicker($dateformatdetails['jsdate']) . " HH:mm",
'format' => $dateformatdetails['jsdate'] . " HH:mm",
'singleDatePicker' => true,
'startDate' => date("Y-m-d", time()),
'drops' => 'up', // TODO: Does not work. Why?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
'id' => 'startdate',
'value' => isset($startdate) ? $startdate : '',
'pluginOptions' => array(
'format' => reverseDateToFitDatePicker($dateformatdetails['jsdate']) . " HH:mm",
'format' => $dateformatdetails['jsdate'] . " HH:mm",
'singleDatePicker' => true,
'startDate' => date("Y-m-d H:i", time()),
'drops' => 'up', // TODO: Does not work. Why?
Expand All @@ -47,7 +47,7 @@
'id' => 'expires',
'value' => isset($expires) ? $expires : '',
'pluginOptions' => array(
'format' => reverseDateToFitDatePicker($dateformatdetails['jsdate']) . " HH:mm",
'format' => $dateformatdetails['jsdate'] . " HH:mm",
'singleDatePicker' => true,
'startDate' => date("Y-m-d H:i", time()),
'drops' => 'up', // TODO: Does not work. Why?
Expand Down
4 changes: 2 additions & 2 deletions application/views/admin/token/dummytokenform.php
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@
'name' => "validfrom",
'value' => isset($validfrom) ? $validfrom : '',
'pluginOptions' => array(
'format' => reverseDateToFitDatePicker($dateformatdetails['jsdate']) . " HH:mm",
'format' => $dateformatdetails['jsdate'] . " HH:mm",
'singleDatePicker' => true,
'startDate' => date("Y-m-d", time()),
'drops' => 'up', // TODO: Does not work. Why?
Expand All @@ -102,7 +102,7 @@
'name' => "validuntil",
'value' => isset($validuntil) ? $validuntil : '',
'pluginOptions' => array(
'format' => reverseDateToFitDatePicker($dateformatdetails['jsdate']) . " HH:mm",
'format' => $dateformatdetails['jsdate'] . " HH:mm",
'singleDatePicker' => true,
'startDate' => date("Y-m-d", time()),
'drops' => 'up',
Expand Down
4 changes: 2 additions & 2 deletions application/views/admin/token/tokenform.php
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@
'name' => "validfrom",
'value' => isset($validfrom) ? $validfrom : '',
'pluginOptions' => array(
'format' => reverseDateToFitDatePicker($dateformatdetails['jsdate']) . " HH:mm",
'format' => $dateformatdetails['jsdate'] . " HH:mm",
'singleDatePicker' => true,
'startDate' => date("Y-m-d", time()),
'drops' => 'up', // TODO: Does not work. Why?
Expand All @@ -160,7 +160,7 @@
'name' => "validuntil",
'value' => isset($validuntil) ? $validuntil : '',
'pluginOptions' => array(
'format' => reverseDateToFitDatePicker($dateformatdetails['jsdate']) . " HH:mm",
'format' => $dateformatdetails['jsdate'] . " HH:mm",
'singleDatePicker' => true,
'startDate' => date("Y-m-d", time()),
'drops' => 'up',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class='form-control'
'value' => $dateoutput,
'pluginOptions' => array(
'class' => 'test',
'format' => $dateformatReversed,
'format' => $dateformatdetailsjs,
'singleDatePicker' => true,
'startDate' => date("Y-m-d H:i", time()),
'drops' => 'up', // TODO: Does not work. Why?
Expand Down

0 comments on commit e0f3145

Please sign in to comment.