[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [14292] fixing forms
From: |
Saul |
Subject: |
[Fmsystem-commits] [14292] fixing forms |
Date: |
Fri, 06 Nov 2015 21:46:59 +0000 |
Revision: 14292
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=14292
Author: psaul
Date: 2015-11-06 21:46:59 +0000 (Fri, 06 Nov 2015)
Log Message:
-----------
fixing forms
Modified Paths:
--------------
branches/dev-syncromind/bookingfrontend/inc/class.uibuilding.inc.php
branches/dev-syncromind/bookingfrontend/inc/class.uievent.inc.php
branches/dev-syncromind/bookingfrontend/inc/class.uiresource.inc.php
branches/dev-syncromind/bookingfrontend/templates/base/application_edit.xsl
Added Paths:
-----------
branches/dev-syncromind/bookingfrontend/js/bookingfrontend/event.js
branches/dev-syncromind/bookingfrontend/js/bookingfrontend/schedule.js
Modified: branches/dev-syncromind/bookingfrontend/inc/class.uibuilding.inc.php
===================================================================
--- branches/dev-syncromind/bookingfrontend/inc/class.uibuilding.inc.php
2015-11-06 21:44:29 UTC (rev 14291)
+++ branches/dev-syncromind/bookingfrontend/inc/class.uibuilding.inc.php
2015-11-06 21:46:59 UTC (rev 14292)
@@ -274,7 +274,7 @@
$building['date'] = phpgw::get_var('date', 'GET');
}
- self::add_javascript('booking', 'booking', 'schedule.js');
+ self::add_javascript('bookingfrontend', 'bookingfrontend',
'schedule.js');
phpgwapi_jquery::load_widget("datepicker");
$building['picker_img'] =
$GLOBALS['phpgw']->common->image('phpgwapi','cal');
@@ -299,7 +299,7 @@
$building['date'] = phpgw::get_var('date', 'GET');
}
$building['deactivate_application'] = 1;
- self::add_javascript('booking', 'booking', 'schedule.js');
+ self::add_javascript('bookingfrontend', 'bookingfrontend',
'schedule.js');
self::render_template('building_schedule', array('building' =>
$building, 'backend' => $backend));
}
Modified: branches/dev-syncromind/bookingfrontend/inc/class.uievent.inc.php
===================================================================
--- branches/dev-syncromind/bookingfrontend/inc/class.uievent.inc.php
2015-11-06 21:44:29 UTC (rev 14291)
+++ branches/dev-syncromind/bookingfrontend/inc/class.uievent.inc.php
2015-11-06 21:46:59 UTC (rev 14292)
@@ -125,7 +125,7 @@
}
$date = substr($event['from_'], 0, 10);
- self::add_javascript('booking', 'booking', 'event.js');
+ self::add_javascript('bookingfrontend', 'bookingfrontend',
'event.js');
$event['resources_json'] = json_encode(array_map('intval',
$event['resources']));
$event['cancel_link'] = self::link(array('menuaction' =>
'bookingfrontend.uibuilding.schedule', 'id'=> $event['building_id'], 'date' =>
$date));
$activities = $this->activity_bo->fetch_activities();
@@ -203,7 +203,7 @@
}
$this->flash_form_errors($errors);
$date = substr($event['from_'], 0, 10);
- self::add_javascript('booking', 'booking', 'event.js');
+ self::add_javascript('bookingfrontend', 'bookingfrontend',
'event.js');
$event['resources_json'] = json_encode(array_map('intval',
$event['resources']));
$event['cancel_link'] = self::link(array('menuaction' =>
'bookingfrontend.uibuilding.schedule', 'id'=> $event['building_id'], 'date' =>
$date));
$activities = $this->activity_bo->fetch_activities();
Modified: branches/dev-syncromind/bookingfrontend/inc/class.uiresource.inc.php
===================================================================
--- branches/dev-syncromind/bookingfrontend/inc/class.uiresource.inc.php
2015-11-06 21:44:29 UTC (rev 14291)
+++ branches/dev-syncromind/bookingfrontend/inc/class.uiresource.inc.php
2015-11-06 21:46:59 UTC (rev 14292)
@@ -64,7 +64,7 @@
'resource_id' => $resource['id'],
'phpgw_return_as' => 'json',
));
- self::add_javascript('booking', 'booking', 'schedule.js');
+ self::add_javascript('bookingfrontend', 'bookingfrontend',
'schedule.js');
phpgwapi_jquery::load_widget("datepicker");
$resource['picker_img'] =
$GLOBALS['phpgw']->common->image('phpgwapi','cal');
Added: branches/dev-syncromind/bookingfrontend/js/bookingfrontend/event.js
===================================================================
--- branches/dev-syncromind/bookingfrontend/js/bookingfrontend/event.js
(rev 0)
+++ branches/dev-syncromind/bookingfrontend/js/bookingfrontend/event.js
2015-11-06 21:46:59 UTC (rev 14292)
@@ -0,0 +1,221 @@
+var building_id_selection = "";
+$(document).ready(function() {
+
JqueryPortico.autocompleteHelper('index.php?menuaction=booking.uibuilding.index&phpgw_return_as=json&',
+ 'field_building_name',
'field_building_id', 'building_container');
+
+
JqueryPortico.autocompleteHelper('index.php?menuaction=booking.uiorganization.index&phpgw_return_as=json&',
+ 'field_org_name', 'field_org_id',
'org_container');
+
+ $("#field_activity").change(function(){
+ var oArgs =
{menuaction:'bookingfrontend.uiapplication.get_activity_data',
activity_id:$(this).val()};
+ var requestUrl = phpGWLink('index.php', oArgs, true);
+
+ $.ajax({
+ type: 'POST',
+ dataType: 'json',
+ url: requestUrl,
+ success: function(data) {
+ var html_agegroups = '';
+ var html_audience = '';
+
+ if( data != null)
+ {
+ var agegroups = data.agegroups;
+ for ( var i = 0; i < agegroups.length; ++i )
+ {
+ html_agegroups += "<tr>";
+ html_agegroups += "<th>" + agegroups[i]['name'] +
"</th>";
+ html_agegroups += "<td>";
+ html_agegroups += "<input class=\"input50\"
type=\"text\" name='male[" +agegroups[i]['id'] + "]' value='0'></input>";
+ html_agegroups += "</td>";
+ html_agegroups += "<td>";
+ html_agegroups += "<input class=\"input50\"
type=\"text\" name='female[" +agegroups[i]['id'] + "]' value='0'></input>";
+ html_agegroups += "</td>";
+ html_agegroups += "</tr>";
+ }
+ $("#agegroup_tbody").html( html_agegroups );
+
+ var audience = data.audience;
+ for ( var i = 0; i < audience.length; ++i )
+ {
+ html_audience += "<li>";
+ html_audience += "<label>";
+ html_audience += "<input type=\"radio\"
name=\"audience[]\" value='" +audience[i]['id'] + "'></input>";
+ html_audience += audience[i]['name'];
+ html_audience += "</label>";
+ html_audience += "</li>";
+ }
+ $("#audience").html( html_audience );
+ }
+ }
+ });
+ });
+});
+
+$(window).load(function() {
+ var building_id = $('#field_building_id').val();
+ if(building_id) {
+ populateTableChkResources(building_id, initialSelection);
+ building_id_selection = building_id;
+ }
+ $("#field_building_name").on("autocompleteselect", function(event, ui){
+ var building_id = ui.item.value;
+ if (building_id != building_id_selection){
+ populateTableChkResources(building_id, []);
+ building_id_selection = building_id;
+ }
+ });
+});
+
+$.formUtils.addValidator({
+ name: 'target_audience',
+ validatorFunction: function(value, $el, config, languaje, $form) {
+ var n = 0;
+ $('#audience input[name="audience[]"]').each(function(){
+ if ($(this).is(':checked')) {
+ n++;
+ }
+ });
+ var v = (n > 0) ? true : false;
+ return v;
+ },
+ errorMessage: 'Please choose at least 1 target audience',
+ errorMessageKey: ''
+})
+
+$.formUtils.addValidator({
+ name: 'number_participants',
+ validatorFunction: function(value, $el, config, languaje, $form) {
+ var n = 0;
+ $('#agegroup_tbody input').each(function() {
+ if ($(this).val() != "" && $(this).val() > 0) {
+ n++;
+ }
+ });
+ var v = (n > 0) ? true : false;
+ return v;
+ },
+ errorMessage: 'Number of participants is required',
+ errorMessageKey: ''
+});
+
+$.formUtils.addValidator({
+ name: 'customer_identifier',
+ validatorFunction: function(value, $el, config, languaje, $form) {
+ var v = true;
+ var customer_ssn = $('#field_customer_ssn').val();
+ var customer_organization_number =
$('#field_customer_organization_number').val();
+ var cost = $('#field_cost').val();
+ if ( (customer_ssn == "" && customer_organization_number == "") &&
(cost > 0) ) {
+ v = false;
+ }
+ return v;
+ },
+ errorMessage: 'There is set a cost, but no invoice data is filled inn',
+ errorMessageKey: ''
+});
+
+$.formUtils.addValidator({
+ name: 'application_dates',
+ validatorFunction: function(value, $el, config, languaje, $form) {
+ var n = 0;
+ if ($('input[name="from_[]"]').length == 0 ||
$('input[name="from_[]"]').length == 0) {
+ return false;
+ }
+ $('input[name="from_[]"]').each(function(){
+ if ($(this).val() == "") {
+ $($(this).addClass("error").css("border-color","red"));
+ n++;
+ } else {
+ $($(this).removeClass("error").css("border-color",""));
+ }
+ });
+ $('input[name="to_[]"]').each(function(){
+ if ($(this).val() == "") {
+ $($(this).addClass("error").css("border-color","red"));
+ n++;
+ } else {
+ $($(this).removeClass("error").css("border-color",""));
+ }
+ });
+ var v = (n == 0) ? true : false;
+ return v;
+ },
+ errorMessage: 'Invalida date',
+ errorMessageKey: ''
+});
+
+function populateTableChkResources (building_id, selection) {
+ var url =
'index.php?menuaction=booking.uiresource.index&sort=name&filter_building_id=' +
building_id + '&phpgw_return_as=json&';
+ var container = 'resources_container';
+ var colDefsResources = [{label: '', object: [{type: 'input', attrs:
[{name: 'type', value: 'checkbox'},{name: 'name', value: 'resources[]'},{name:
'data-validation', value: 'checkbox_group'},{name: 'data-validation-qty',
value: 'min1'},{name: 'data-validation-error-msg', value: 'Please choose at
least 1 resource'}]}], value: 'id', checked: selection},{key: 'name', label:
lang['Name']}, {key: 'type', label: lang['Resource Type']}];
+ populateTableChk(url, container, colDefsResources);
+}
+
+function populateTableChk (url, container, colDefs) {
+ createTable(container,url,colDefs);
+}
+
+
+/*
+
+populateResourceTable = function(building_id, selection) {
+ YAHOO.booking.checkboxTableHelper('resources_container',
'index.php?menuaction=booking.uiresource.index&sort=name&filter_building_id=' +
building_id + '&phpgw_return_as=json&',
+ 'resources[]', selection, {additional_fields: [{key: 'type', label:
lang['Resource Type']}]});
+}
+
+var createFromToDatePickerSection = function(containerEl) {
+ if (!this.counter) { this.counter = 0; }
+ containerEl.className = 'date-container';
+ containerEl.innerHTML = '
' +
+' <a href="#" class="close-btn">-</a> ' +
+' <div><label>'+lang['From']+'</label></div>
' +
+' <div class="datetime-picker"> ' +
+' <input id="js_date_'+this.counter+'_from"
type="text" name="from_[]"> ' +
+' </div>
' +
+' <div><label>'+lang['To']+'</label></div>
' +
+' <div class="datetime-picker"> ' +
+' <input id="js_date_'+this.counter+'_to"
type="text" name="to_[]"> ' +
+' </div>';
+ this.counter++;
+}
+
+removeDateRow = function(e) {
+ this.parentNode.parentNode.removeChild(this.parentNode);
+ YAHOO.util.Event.stopEvent(e);
+}
+
+YAHOO.util.Event.addListener(window, "load", function() {
+ var Dom = YAHOO.util.Dom;
+ var building_id = YAHOO.util.Dom.get('field_building_id').value;
+ if(building_id) {
+ populateResourceTable(building_id, YAHOO.booking.initialSelection);
+ }
+ var ac =
YAHOO.booking.autocompleteHelper('index.php?menuaction=booking.uibuilding.index&phpgw_return_as=json&',
+ 'field_building_name',
'field_building_id', 'building_container');
+ // Update the resource table as soon a new building is selected
+ ac.itemSelectEvent.subscribe(function(sType, aArgs) {
+ populateResourceTable(aArgs[2].id, []);
+ });
+ Dom.getElementsByClassName('close-btn', 'a', null, function(a) {
+ a.onclick = removeDateRow;
+ });
+ // Add more From-To datepicker pairs when the user clicks on the add
link/button
+ YAHOO.util.Event.addListener("add-date-link", "click", function(e) {
+ var container = Dom.get('dates-container');
+ var div = document.createElement('div');
+
+ createFromToDatePickerSection(div);
+
+ container.appendChild(div);
+ var a = div.getElementsByTagName('a')[0];
+ a.onclick = removeDateRow;
+ YAHOO.booking.setupDatePickers();
+ YAHOO.util.Event.stopEvent(e);
+ });
+
YAHOO.booking.autocompleteHelper('index.php?menuaction=booking.uiorganization.index&phpgw_return_as=json&',
+ 'field_org_name', 'field_org_id',
'org_container');
+});
+
+
+*/
\ No newline at end of file
Added: branches/dev-syncromind/bookingfrontend/js/bookingfrontend/schedule.js
===================================================================
--- branches/dev-syncromind/bookingfrontend/js/bookingfrontend/schedule.js
(rev 0)
+++ branches/dev-syncromind/bookingfrontend/js/bookingfrontend/schedule.js
2015-11-06 21:46:59 UTC (rev 14292)
@@ -0,0 +1,489 @@
+var schedule = new Array();
+
+schedule.renderSchedule = function(container, url, date, colFormatter,
includeResource, classTable) {
+ classTable = (classTable) ? classTable : "pure-table";
+ while(date.getDay() != 1) {
+ date.setDate(date.getDate()-1);
+ }
+// var container = document.getElementById(container);
+// container.innerHTML = '';
+ url += '&date=' + date.getFullYear() + '-' + (date.getMonth()+1) + '-' +
date.getDate();
+
+ var lang = {
+ WEEKDAYS_FULL: ['Sunday', 'Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday', 'Saturday'],
+ MONTHS_LONG: ['January', 'February', 'March', 'April', 'May',
'June', 'July', 'August', 'September', 'October', 'November', 'December'],
+ LBL_TIME: 'Time',
+ LBL_RESOURCE: 'Resource',
+ LBL_WEEK: 'Week'
+ };
+
+ var colDefs = [{key: 'time', label: date.getFullYear() +'<br/>' +
lang['LBL_TIME']}];
+ if(includeResource) {
+ colDefs.push({key: 'resource', label: lang['LBL_RESOURCE'], formatter:
'scheduleResourceColumn'});
+ }
+ schedule.dates = {};
+ var keys = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
+ for (var i=0;i<7;i++) {
+ var d = new Date(date.getFullYear(), date.getMonth(), date.getDate());
+ d.setDate(d.getDate() + i);
+ var x = (i<6) ? i+1 : 0;
+ schedule.dates[keys[x]] = d;
+ colDefs.push({key: keys[x], label: lang['WEEKDAYS_FULL'][x] + '<br>' +
lang['MONTHS_LONG'][d.getMonth()] + ' ' + d.getDate(), formatter: colFormatter,
date: d, day: d.getDate()});
+ }
+ var r = [{n: 'ResultSet'},{n: 'Result'}];
+// createta d u c r cl
+ createTableSchedule(container, url, colDefs, r, classTable,
schedule.state);
+
+};
+
+schedule.setupWeekPicker = function(){}
+$(function() {
+ $( "#cal_container #datepicker" ).datepicker({
+ showWeek: true,
+ changeMonth: true,
+ changeYear: true,
+ firstDay: 1,
+ onSelect: function(a,e){
+ if (a != schedule.dateSelected){
+ var date = new Date(a);
+ schedule.dateSelected = a;
+ schedule.updateSchedule(date);
+ }
+ }
+ });
+ $("#cal_container #pickerImg").on('click', function(){
+ $( "#cal_container #datepicker" ).datepicker( "show" );
+ });
+});
+
+schedule.updateSchedule = function (date) {
+ schedule.week = $.datepicker.iso8601Week(date);
+ $('#cal_container #numberWeek').text(schedule.week);
+ $("#cal_container #datepicker").datepicker("setDate", date);
+ classTable = (schedule.classTable) ? schedule.classTable : 'pure-table';
+
+ var url = self.location.href;
+ url = url.substr(0, (url.indexOf("#date")));
+ url += '#date=' + date.getFullYear() + '-' + (date.getMonth()+1) + '-' +
date.getDate();
+ location.replace(url);
+ schedule.renderSchedule('schedule_container', schedule.datasourceUrl,
date, schedule.colFormatter, schedule.includeResource, classTable);
+ schedule.date = date;
+}
+
+schedule.moveWeek = function (n) {
+ var date = schedule.date;
+ while(date.getDay() != 1) {
+ date.setDate(date.getDate()-1);
+ }
+ date.setDate(date.getDate() + n);
+ schedule.updateSchedule(date);
+}
+schedule.prevWeek = function () {
+ schedule.moveWeek(-7)
+};
+schedule.nextWeek = function () {
+ schedule.moveWeek(7)
+}
+
+
+schedule.newApplicationForm = function(date, _from, _to, resource) {
+// console.log(arguments);
+// console.log(arguments.length);
+ var url = schedule.newApplicationUrl;
+ if (!url){
+ return;
+ }
+ if (arguments.length == 0) {
+ window.location.href = url;
+ return;
+ }
+ resource = (resource) ? resource : null;
+ date = (date) ? date : schedule.date;
+ _from = _from ? '%20' + _from: '';
+ _to = _to ? '%20' + _to: '';
+ var state = date.getFullYear() + '-' + (date.getMonth()+1) + '-' +
date.getDate();
+ var day = date.getDay();
+ var weekday=new Array(7);
+ weekday[0]="sunday";
+ weekday[1]="monday";
+ weekday[2]="tuesday";
+ weekday[3]="wednesday";
+ weekday[4]="thursday";
+ weekday[5]="friday";
+ weekday[6]="saturday";
+ url += '&from_[]=' + state + _from + '&to_[]=' + state + _to + '&weekday='
+ weekday[day];
+ if (resource){
+ url += '&resource=' + resource;
+ }
+ window.location.href = url;
+}
+
+schedule.showInfo2 = function(url, resource) {
+ var content_overlay = document.getElementById('content_overlay');
+ var overlay = document.createElement('div');
+ var img = document.createElement('img');
+
img.setAttribute('src','/portico/phpgwapi/templates/pure/images/loading_overlay.gif');
+ overlay.appendChild(img);
+ content_overlay.appendChild(overlay);
+ var hc = $('#content_overlay').height();
+ var ho = $('#schedule_overlay').height();
+ var top = (hc-(ho+42))/2;
+ overlay.style.top = top+"px";
+ overlay.style.display = 'block';
+ resource = (resource) ? resource : null;
+ url = url.replace(/&/gi, '&') + '&resource=' + resource;
+ overlay.setAttribute('id', 'schedule_overlay');
+ content_overlay.appendChild(overlay);
+ $.get(url, function(data){
+ overlay.innerHTML = data;
+ var hc = $('#content_overlay').height();
+ var ho = $('#schedule_overlay').height();
+ var top = (hc-(ho+42))/2;
+ overlay.style.top = top+"px";
+ overlay.style.display = 'block';
+ })
+ .fail(function() {
+ $('#schedule_overlay').hide().remove();
+ alert( "Failed to load booking details page" );
+ });
+}
+
+schedule.showInfo = function(url, resource) {
+ var dialog = document.getElementById('dialog_schedule');
+ var img = document.createElement('img');
+
img.setAttribute('src','/portico/phpgwapi/templates/pure/images/loading_overlay.gif');
+ img.style.display = "block";
+ img.style.margin = "37px auto 0";
+ dialog.appendChild(img);
+
+ schedule.dialogSchedule.dialog("close");
+ schedule.dialogSchedule.dialog("destroy");
+ schedule.createDialogSchedule(300);
+ schedule.dialogSchedule.dialog("open");
+
+ resource = (resource) ? resource : null;
+ url = url.replace(/&/gi, '&') + '&resource=' + resource;
+
+ $.get(url, function(data){
+ schedule.dialogSchedule.dialog("close");
+ schedule.dialogSchedule.dialog("destroy");
+ dialog.innerHTML = data;
+ schedule.createDialogSchedule(650);
+ schedule.dialogSchedule.dialog("open");
+ })
+ .fail(function() {
+ schedule.dialogSchedule.dialog("close");
+ alert( "Failed to load booking details page" );
+ });
+}
+
+schedule.createDialogSchedule = function(w){
+ var ww = $(window).width();
+ w = (w > (ww-40)) ? (ww-40) : w;
+ schedule.dialogSchedule = $('#dialog_schedule').dialog({
+ autoOpen: false,
+ modal: true,
+ width: w,
+ close: function(){
+ schedule.cleanDialog();
+ }
+ });
+}
+
+schedule.cleanDialog = function(){
+ $('#dialog_schedule').html("");
+}
+
+schedule.closeOverlay = function(){
+ $('#schedule_overlay').hide().remove();
+}
+
+schedule.newAllocationForm = function(args) {
+
+ var oArgs = {menuaction:'booking.uiseason.wtemplate_alloc'};
+ if (typeof(args['id']) !== 'undefined')
+ {
+ oArgs['id'] = args['id'];
+ } else {
+ if (typeof(args['_from']) !== 'undefined')
+ {
+ oArgs['_from'] = args['_from'];
+ }
+ if (typeof(args['_to']) !== 'undefined')
+ {
+ oArgs['_to'] = args['_to'];
+ }
+ if (typeof(args['wday']) !== 'undefined')
+ {
+ oArgs['wday'] = args['wday'];
+ }
+ }
+
+ var sUrl = phpGWLink('index.php', oArgs);
+
+ for(var i=0; i< resource_ids.length; i++) {
+ sUrl += '&filter_id[]=' + resource_ids[i];
+ }
+
+ TINY.box.show({iframe:sUrl,
boxid:'frameless',width:650,height:500,fixed:false,maskid:'darkmask',maskopacity:40,
mask:true, animate:true,
+ close: true,
+ closejs:false
+ });
+};
+
+
+
+
+
+/*
+colors = ['color1', 'color2', 'color3', 'color4', 'color5', 'color6',
'color7', 'color8', 'color9', 'color10',
+ 'color11', 'color12', 'color13', 'color14', 'color15',
'color16', 'color17', 'color18', 'color19', 'color20',
+ 'color21', 'color22', 'color23', 'color24', 'color25', 'color26',
'color27', 'color28', 'color29', 'color30',
+ 'color31', 'color32', 'color33', 'color34', 'color35', 'color36',
'color37', 'color38', 'color39', 'color40',
+ 'color41', 'color42', 'color43', 'color44', 'color45', 'color46',
'color47', 'color48', 'color49', 'color50',
+ 'color51', 'color52', 'color53', 'color54', 'color55', 'color56',
'color57', 'color58', 'color59', 'color60',];
+colorMap = {};
+
+YAHOO.booking.shorten = function(text, max) {
+ if(max && text.length > max)
+ text = text.substr(text, max) + '...';
+ return text;
+}
+
+YAHOO.booking.link = function(label, link, max) {
+ label = YAHOO.booking.shorten(label, max);
+ if(link)
+ return '<a href="' + link + '">' + label + '</a>';
+ else
+ return label;
+}
+
+YAHOO.booking.scheduleResourceColFormatter = function(elCell, oRecord,
oColumn, text) {
+ if(text && oRecord.getData('resource_link')) {
+ elTr = elCell.parentNode.parentNode;
+ elTr.setAttribute("resource", oRecord.getData('resource_id'));
+ elCell.innerHTML = '<a href="' +
oRecord.getData('resource_link') + '">' + text + '</a>';
+ }
+ else if (text) {
+ elCell.innerHTML = text;
+ }
+}
+
+YAHOO.booking.frontendScheduleColorFormatter = function(elCell, oRecord,
oColumn, booking) {
+ if(booking) {
+ if(!colorMap[booking.name]) {
+ colorMap[booking.name] = colors.length ? colors.shift()
: 'color60';
+ }1
+ var color = colorMap[booking.name];
+ YAHOO.util.Dom.addClass(elCell, 'info');
+ YAHOO.util.Dom.addClass(elCell, color);
+ YAHOO.util.Dom.addClass(elCell, booking.type);
+ if (booking.is_public == 0) {
+ elCell.innerHTML = YAHOO.booking.shorten('Privat arr.',
9);
+ } else {
+ if (booking.shortname)
+ elCell.innerHTML =
YAHOO.booking.shorten(booking.shortname, 9);
+ else
+ elCell.innerHTML =
YAHOO.booking.shorten(booking.name, 9);
+ }
+ elCell.onclick = function()
{YAHOO.booking.showBookingInfo(booking,elCell); return false; };
+ }
+ else {
+ elCell.innerHTML = '...';
+ var data = oRecord.getData();
+ elCell.ondblclick = function()
{YAHOO.booking.newApplicationForm(YAHOO.booking.dates[oColumn.field],
data._from, data._to, elCell); return false; };
+ }
+};
+
+YAHOO.booking.showBookingInfo = function(booking,elCell) {
+ var overlay = new YAHOO.widget.Overlay("overlay-info", {
fixedcenter:true, visible:true, width:"400px" } );
+ var callback = {
+ success : function(o) {
+ overlay.setBody(o.responseText);
+ },
+ failure : function(o) {
+ overlay.hide();
+ alert('Failed to load booking details page');
+ }
+ }
+ resource = elCell.parentNode.parentNode.getAttribute('resource');
+ var conn = YAHOO.util.Connect.asyncRequest("GET",
booking.info_url.replace(/&/gi, '&') + '&resource=' + resource, callback);
+ overlay.setBody('<img
src="http://l.yimg.com/a/i/us/per/gr/gp/rel_interstitial_loading.gif" />');
+ overlay.render(document.body);
+}
+
+YAHOO.booking.bookingToHtml = function(booking) {
+ if(booking.type == 'booking') {
+ var link = 'index.php?menuaction=booking.uibooking.edit&id=' +
booking.id;
+ }
+ else if(booking.type == 'allocation') {
+ var link = 'index.php?menuaction=booking.uiallocation.edit&id='
+ booking.id;
+ }
+ else if(booking.type == 'event') {
+ var link = 'index.php?menuaction=booking.uievent.edit&id=' +
booking.id;
+ }
+ else {
+ var link = null;
+ }
+ if (booking.shortname)
+ var html = YAHOO.booking.link(booking.shortname, link, 9);
+ else
+ var html = YAHOO.booking.link(booking.name, link, 9);
+
+ if(booking.type == 'event' && booking.conflicts) {
+ for(var i=0; i<booking.conflicts.length;i++) {
+ html += '<div class="conflict">conflicts with: ' +
YAHOO.booking.bookingToHtml(booking.conflicts[i]) + '</div>';
+ }
+ }
+ return html;
+};
+
+YAHOO.booking.backendScheduleColorFormatter = function(elCell, oRecord,
oColumn, booking) {
+ if(booking) {
+ if(!colorMap[booking.name]) {
+ colorMap[booking.name] = colors.length ? colors.shift()
: 'color60';
+ }
+ var color = colorMap[booking.name];
+ YAHOO.util.Dom.addClass(elCell, color);
+ YAHOO.util.Dom.addClass(elCell, booking.type);
+ elCell.innerHTML = YAHOO.booking.bookingToHtml(booking);
+ }
+ else {
+ elCell.innerHTML = '...';
+ }
+};
+
+YAHOO.booking.scheduleColorFormatter = function(elCell, oRecord, oColumn,
booking) {
+ if(booking) {
+ if(!colorMap[booking.name]) {
+ colorMap[booking.name] = colors.length ? colors.shift()
: 'color60';
+ }
+ var color = colorMap[booking.name];
+ YAHOO.util.Dom.addClass(elCell, color);
+ if (booking.shortname)
+ elCell.innerHTML =
YAHOO.booking.link(booking.shortname, null, 9);
+ else
+ elCell.innerHTML = YAHOO.booking.link(booking.name,
null, 9);
+ }
+ else {
+ elCell.innerHTML = '...';
+ }
+};
+
+
+YAHOO.booking.scheduleRowFormatter = function(elTr, oRecord) {
+ if (!oRecord.getData('resource')) {
+ YAHOO.util.Dom.addClass(elTr, 'free');
+ }
+ if (oRecord.getData('time')) {
+ YAHOO.util.Dom.addClass(elTr, 'time');
+ }
+ return true;
+};
+
+YAHOO.booking.renderSchedule = function(container, url, date, colFormatter,
includeResource) {
+ // Make sure date is a Monday
+ while(date.getDay() != 1)
+ date.setDate(date.getDate()-1);
+ var container = YAHOO.util.Dom.get(container);
+ container.innerHTML = '';
+ url += '&date=' + date.getFullYear() + '-' + (date.getMonth()+1) + '-'
+ date.getDate();
+
+ var lang = {
+ WEEKDAYS_FULL: ['Sunday', 'Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday', 'Saturday'],
+ MONTHS_LONG: ['January', 'February', 'March', 'April', 'May',
'June', 'July', 'August', 'September', 'October', 'November', 'December'],
+ LBL_TIME: 'Time',
+ LBL_RESOURCE: 'Resource',
+ LBL_WEEK: 'Week'
+ };
+ YAHOO.booking.lang('Calendar', lang);
+ YAHOO.booking.lang('common', lang);
+ YAHOO.booking.oButton.set('label', lang['LBL_WEEK'] + ' ' +
YAHOO.booking.weeknumber(date));
+
+ var colDefs = [{key: 'time', label: date.getFullYear() +'<br/>' +
lang['LBL_TIME']}];
+ if(includeResource)
+ colDefs.push({key: 'resource', label: lang['LBL_RESOURCE'],
formatter: YAHOO.booking.scheduleResourceColFormatter});
+ YAHOO.booking.dates = {};
+ var keys = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
+ for(var i=0; i < 7; i++) {
+ var d = new Date(date.getFullYear(), date.getMonth(),
date.getDate());
+ d.setDate(d.getDate() + i);
+ var x = i < 6 ? i+1: 0;
+ YAHOO.booking.dates[keys[x]] = d;
+ colDefs.push({key: keys[x], label: lang['WEEKDAYS_FULL'][x] +
'<br/>' + lang['MONTHS_LONG'][d.getMonth()] + ' ' + d.getDate(), formatter:
colFormatter, 'date': d});
+ }
+ YAHOO.booking.inlineTableHelper('schedule_container', url, colDefs, {
+ formatRow: YAHOO.booking.scheduleRowFormatter
+ }, true);
+}
+
+YAHOO.booking.prevWeek = function() {
+ YAHOO.booking.date.setDate(YAHOO.booking.date.getDate() - 7);
+ var state = YAHOO.booking.date.getFullYear() + '-' +
(YAHOO.booking.date.getMonth()+1) + '-' + YAHOO.booking.date.getDate();
+ YAHOO.util.History.navigate('date', state);
+}
+
+YAHOO.booking.nextWeek = function() {
+ YAHOO.booking.date.setDate(YAHOO.booking.date.getDate() + 7);
+ var state = YAHOO.booking.date.getFullYear() + '-' +
(YAHOO.booking.date.getMonth()+1) + '-' + YAHOO.booking.date.getDate();
+ YAHOO.util.History.navigate('date', state);
+}
+
+YAHOO.booking.newApplicationForm = function(date, _from, _to, elCell) {
+ if(elCell)
+ {
+ resource =
elCell.parentNode.parentNode.getAttribute('resource');
+ }
+ else
+ {
+ resource = null;
+ }
+ date = date ? date : YAHOO.booking.date;
+ _from = _from ? '%20' + _from: '';
+ _to = _to ? '%20' + _to: '';
+ var url = YAHOO.booking.newApplicationUrl;
+ var state = date.getFullYear() + '-' + (date.getMonth()+1) + '-' +
date.getDate();
+ var day = date.getDay();
+ var weekday=new Array(7);
+ weekday[0]="sunday";
+ weekday[1]="monday";
+ weekday[2]="tuesday";
+ weekday[3]="wednesday";
+ weekday[4]="thursday";
+ weekday[5]="friday";
+ weekday[6]="saturday";
+ url += '&from_[]=' + state + _from + '&to_[]=' + state + _to +
'&resource=' + resource + '&weekday=' + weekday[day];
+ if (YAHOO.booking.endOfSeason === undefined || YAHOO.booking.endOfSeason >
date) {
+ window.location.href = url;
+ }
+
+}
+
+YAHOO.booking.setupWeekPicker = function(container) {
+ var Dom = YAHOO.util.Dom;
+ var oCalendarMenu = new YAHOO.widget.Overlay(Dom.generateId(), {
visible: false});
+ var oButton = new YAHOO.widget.Button({type: "menu", id:
Dom.generateId(), menu: oCalendarMenu, container: container});
+ YAHOO.booking.oButton = oButton;
+ oButton.on("appendTo", function () {
+ oCalendarMenu.setBody(" ");
+ oCalendarMenu.body.id = Dom.generateId();
+ });
+ oButton.on("click", function () {
+ var oCalendar = new YAHOO.widget.Calendar(Dom.generateId(),
oCalendarMenu.body.id, {START_WEEKDAY: 1});
+ oCalendar.cfg.setProperty("pagedate",
(YAHOO.booking.date.getMonth()+1) + "/" + YAHOO.booking.date.getFullYear());
+ oCalendar.render();
+ oCalendar.selectEvent.subscribe(function (p_sType, p_aArgs) {
+ if (p_aArgs) {
+ var aDate = p_aArgs[0][0];
+ YAHOO.util.History.navigate('date', aDate[0] +
'-' + aDate[1] + '-' + aDate[2]);
+ }
+ oCalendarMenu.hide();
+ }, this, true);
+ });
+}
+
+YAHOO.booking.closeOverlay = function() {
+ var o = YAHOO.util.Dom.get('overlay-info');
+ o.parentNode.removeChild(o);
+}
+*/
Modified:
branches/dev-syncromind/bookingfrontend/templates/base/application_edit.xsl
===================================================================
--- branches/dev-syncromind/bookingfrontend/templates/base/application_edit.xsl
2015-11-06 21:44:29 UTC (rev 14291)
+++ branches/dev-syncromind/bookingfrontend/templates/base/application_edit.xsl
2015-11-06 21:46:59 UTC (rev 14292)
@@ -80,25 +80,74 @@
</dd>
</dl>
</div>
+
+ <!--div class="date-container">
+ <a href="#" class="close-btn">-</a>
+ <dt><label for="field_{position()}_from"><xsl:value-of
select="php:function('lang', 'From')" /></label></dt>
+ <dd class="datetime-picker">
+ <input id="field_{position()}_from" name="from_[]"
type="text">
+ <xsl:attribute name="value"><xsl:value-of
select="from_"/></xsl:attribute>
+ </input>
+ </dd>
+ <dt><label for="field_{position()}_to"><xsl:value-of
select="php:function('lang', 'To')" /></label></dt>
+ <dd class="datetime-picker">
+ <input id="field_{position()}_to" name="to_[]" type="text">
+ <xsl:attribute name="value"><xsl:value-of
select="to_"/></xsl:attribute>
+ </input>
+ </dd>
+ </div-->
+
<div class="pure-u-1 pure-u-md-1-2 pure-u-lg-1-3">
<dl class="form-col">
<div class="heading">3. <xsl:value-of
select="php:function('lang', 'When?')" /></div>
<div id="dates-container">
- <xsl:for-each select="application/dates"><div
class="date-container">
- <a href="#" class="close-btn">-</a>
- <dt><label
for="field_{position()}_from"><xsl:value-of select="php:function('lang',
'From')" /></label></dt>
- <dd class="datetime-picker">
- <input id="field_{position()}_from"
name="from_[]" type="text">
- <xsl:attribute name="value"><xsl:value-of
select="from_"/></xsl:attribute>
- </input>
- </dd>
- <dt><label
for="field_{position()}_to"><xsl:value-of select="php:function('lang', 'To')"
/></label></dt>
- <dd class="datetime-picker">
- <input id="field_{position()}_to" name="to_[]"
type="text">
- <xsl:attribute name="value"><xsl:value-of
select="to_"/></xsl:attribute>
- </input>
- </dd>
- </div></xsl:for-each>
+ <xsl:for-each select="application/dates">
+ <xsl:variable name="index" select="position()-2"/>
+ <xsl:choose>
+ <xsl:when test="position() > 1">
+ <div class="date-container">
+ <a href="javascript:void(0);"
class="close-btn btnclose">-</a>
+ <dt><label
for="start_date_{$index}"><xsl:value-of select="php:function('lang', 'From)"
/></label></dt>
+ <dd>
+ <input class="newaddedpicker
datetime" id="start_date_{$index}" type="text" name="from[]">
+ <xsl:attribute name="value">
+ <xsl:value-of
select="from_" />
+ </xsl:attribute>
+ </input>
+ </dd>
+ <dt><label
for="end_date_{$index}"><xsl:value-of select="php:function('lang', 'To')"
/></label></dt>
+ <dd>
+ <input class="datepicker datetime"
id="end_date_{$index}" type="text" name="to_[]">
+ <xsl:attribute name="value">
+ <xsl:value-of select="to_"
/>
+ </xsl:attribute>
+ </input>
+ </dd>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <div class="date-container">
+ <a href="javascript:void(0);"
class="close-btn btnclose">-</a>
+ <dt><label
for="start_date"><xsl:value-of select="php:function('lang', 'From')"
/></label></dt>
+ <dd>
+ <input class="datetime"
id="start_date" type="text" name="from_[]">
+ <xsl:attribute name="value">
+ <xsl:value-of
select="from_" />
+ </xsl:attribute>
+ </input>
+ </dd>
+ <dt><label
for="end_date"><xsl:value-of select="php:function('lang', To)" /></label></dt>
+ <dd>
+ <input class="datetime"
id="end_date" type="text" name="to_[]">
+ <xsl:attribute name="value">
+ <xsl:value-of select="to_"
/>
+ </xsl:attribute>
+ </input>
+ </dd>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
</div>
<dt><a href="#" id="add-date-link"><xsl:value-of
select="php:function('lang', 'Add another date')" /></a></dt>
</dl>
@@ -184,7 +233,7 @@
</div>
<div class="pure-u-1 pure-u-md-1-2 pure-u-1-3">
<dl class="form-col">
- <div class="heading"><br /><xsl:value-of
select="php:function('lang', 'Terms and conditions')" /></div>
+ <div class="heading"><xsl:value-of
select="php:function('lang', 'Terms and conditions')" /></div>
<br/>
<div id='regulation_documents'/>
</dl>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [14292] fixing forms,
Saul <=