I'm having some trouble getting the datePicker to work on safari.
Code:
//checkboxviewapp.views.MilestoneCheckbox = Ext.extend(Ext.form.Checkbox, {
label: 'themilestone',
name: 'milestone',
labelWidth:'80%',
disabled: true,
disabledCls: 'milestoneStyle',
initComponent: function() {
this.model.addObserver(this);
if(dateHasPassed(this.model.date))this.checked=true;
var label = this.model.description;
if(this.model.dirty){
label="<i>"+label+"*</i>";
}
this.label=label;
app.views.MilestoneCheckbox.superclass.initComponent.call(this);
},
propertyChanged: function(){
//for now just update everything every time
//checking
if(dateHasPassed(this.model.date))this.check();
else this.uncheck();
//labelstuff
var label = this.model.description;
if(this.model.dirty){
label="<i>"+label+"*</i>";
}
this.labelEl.setHTML("<span>"+label+"</span>"); //hackish?
}
});
Ext.reg('app.views.MilestoneCheckbox', app.views.MilestoneCheckbox);
//class for the datepickerfield in the milestonelist.
app.views.MilestoneDatePicker = Ext.extend(Ext.form.DatePicker, {
name: 'date',
label: 'Date',
labelWidth:'40%',
initComponent: function() {
this.model.addObserver(this);
this.value = this.model.date;
app.views.MilestoneDatePicker.superclass.initComponent.call(this);
},
propertyChanged: function(){
//update the date on every kind of change
this.setValue(this.model.date);
},
listeners:{
// change:function(){ //move to controller?
// this.model.setDate(this.getValue());
// }
}
});
Ext.reg('app.views.MilestoneDatePicker', app.views.MilestoneDatePicker);
// method used to check if a date has passed
dateHasPassed = function (date) {
date = date.getTime();
var today = new Date().getTime();
if(today>date)return true;
else return false;
;}
app.views.ProjectMilestones = Ext.extend(Ext.Container, {
title: 'Milestones',
iconCls: 'flag',
scroll: 'vertical',
updateWithMilestones: function (project) {
this.removeAll(true);
var pickerConfig = {
yearFrom: project.getStartDate().getFullYear(),
yearTo : project.getEndDate().getFullYear(),
slotOrder: ['day', 'month', 'year']
};
for(var i = 0; i < project.milestones.length; i++) {
var milestone = project.milestones[i];
var milestoneCheckBox = {
xtype: 'app.views.MilestoneCheckbox',
model: milestone
};
var datePickerField = {
xtype: 'app.views.MilestoneDatePicker',
model: milestone,
picker: pickerConfig
};
this.add(milestoneCheckBox);
this.add(datePickerField);
this.add({xtype:'container', html:'<div style="padding-bottom:7px"></div>'});
}
//refresh the view
this.doLayout();
}
});
// display date in d/m/Y format
Ext.apply(Ext.util.Format, {defaultDateFormat: 'd/m/Y'} );
The error I'm getting is:
DataView requires tpl, store and itemSelector configurations to be defined.
Everything works fine on chrome it's just safari i have a problem with.
EDIT: I get the error when I'm clicking on the date.