Velocipede's User, Sales, and Bike Inventory Web App
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

346 lines
9.2 KiB

//when signed out, or session expires forward to sign in page
Ext.Ajax.on('requestexception', function(conn, response, options) {
if (response.status === 401) { window.location = '/users/sign_in'; }
}, this);
Ext.define('Ext.ux.form.field.ColorCombo', {
extend:'Ext.form.FieldContainer',
mixins:{
field:'Ext.form.field.Field'
},
alias: 'widget.xcolorcombo',
//configurables
combineErrors: true,
msgTarget: 'under',
layout: 'hbox',
readOnly: false,
// properties
colorValue: null,
/**
* @property dateField
* @type Ext.form.field.Date
*/
colorField: null,
initComponent: function(){
var me = this
,i = 0
,key
,tab;
me.items = me.items || [];
me.colorField = Ext.create('Ext.form.field.Trigger', {
flex:1,
isFormField:false, //exclude from field query's
submitValue:false,
readOnly: me.readOnly,
onTriggerClick: function() {
//needs to be called twice because?
me.picker.alignTo(me.colorField.inputEl);
me.picker.show();
me.picker.alignTo(me.colorField.inputEl);
me.picker.show();
}
});
me.items.push(me.colorField);
me.picker = Ext.create('Ext.picker.Color', {
renderTo: document.body,
floating: true,
hidden: true,
style: {
backgroundColor: "#fff"
},
listeners: {
scope:this,
select: function(field, value, opts){
me.setValue(value);
me.picker.hide();
}
}
});
me.items.push(me.picker);
for (; i < me.items.length; i++) {
me.items[i].on('focus', Ext.bind(me.onItemFocus, me));
me.items[i].on('blur', Ext.bind(me.onItemBlur, me));
me.items[i].on('specialkey', function(field, event){
key = event.getKey();
tab = key == event.TAB;
if (tab && me.focussedItem == me.dateField) {
event.stopEvent();
me.timeField.focus();
return;
}
me.fireEvent('specialkey', field, event);
});
}
me.callParent();
// this dummy is necessary because Ext.Editor will not check whether an inputEl is present or not
this.inputEl = {
dom: document.createElement('div'),
swallowEvent:function(){}
};
me.initField();
},
focus:function(){
this.callParent(arguments);
this.colorField.focus();
var me = this;
},
onItemFocus:function(item){
if (this.blurTask){
this.blurTask.cancel();
}
this.focussedItem = item;
},
onItemBlur:function(item, e){
var me = this;
if (item != me.focussedItem){ return; }
// 100ms to focus a new item that belongs to us, otherwise we will assume the user left the field
me.blurTask = new Ext.util.DelayedTask(function(){
me.picker.hide();
me.fireEvent('blur', me, e);
});
me.blurTask.delay(100);
},
getValue: function(){
var value = null
,color = this.colorField.getSubmitValue();
if (color){
value = this.colorField.getValue();
}
return value;
},
getSubmitValue: function(){
// var value = this.getValue();
// return value ? Ext.Date.format(value, this.dateTimeFormat) : null;
var me = this
,value = me.getValue();
return value;
},
setValue: function(value){
this.colorField.setValue(value);
},
// Bug? A field-mixin submits the data from getValue, not getSubmitValue
getSubmitData: function(){
var me = this
,data = null;
if (!me.disabled && me.submitValue && !me.isFileUpload()) {
data = {};
data[me.getName()] = '' + me.getSubmitValue();
}
return data;
}
});
/**
Ext.define('Ext.ux.ColorPickerCombo', {
extend: 'Ext.form.field.Trigger',
alias: 'widget.colorcbo',
initComponent: function(){
console.log("INIT");
this.my_value = "pee";
console.log(this.getValue);
console.log(this.rawToValue(this.processRawValue(this.getRawValue())));
console.log("hmmm");
},
getSubmitValue: function(){
console.log("GETTING SUBMIT VALUE");
},
getSubmitData: function(){
console.log("GETTING SUBMIT DATA VALUE");
}
});
*/
/**
Ext.define('Ext.ux.ColorPickerCombo', {
extend: 'Ext.form.field.Trigger',
mixins: {
field:'Ext.form.field.Field'
},
alias: 'widget.colorcbo',
triggerTip: 'Please select a color.',
picker: null,
initComponent: function(){
console.log("INIT");
var me = this;
console.log(me);
me.picker = Ext.create('Ext.picker.Color', {
renderTo: document.body,
floating: true,
hidden: false,
style: {
backgroundColor: "#fff"
} ,
listeners: {
scope:this,
select: function(field, value, opts){
console.log(me.originalValue);
console.log(value);
me.setValue(value);
me.setRawValue(value);
me.setFieldStyle("background-color:#"+value+";");
me.picker.hide();
console.log("input el");
console.log(me.inputEl);
//$("#"+me.getInputId()).val(value);
console.log("owner");
console.log(me.picker.ownerCt);
console.log(me.getValue());
me.my_value = value;
console.log("my_value");
console.log(this.my_value);
console.log(this.getValue);
},
show: function(field,opts){
console.log("show");
//field.getEl().monitorMouseLeave(500, field.hide, field);
}
}
});
//me.picker.hide();
console.log(me.picker.ownerCt);
},
onTriggerClick: function() {
var me = this;
me.picker.alignTo(me.inputEl, 'tl-bl?');
//me.picker.show(me.inputEl);
},
getValue: function(){
console.log("GETTING VALUE");
var me = this,
val = me.rawToValue(me.processRawValue(me.getRawValue()));
me.value = val;
return val;
}
});*/
/**
Ext.define('Ext.ux.ColorPickerCombo', {
extend: 'Ext.form.field.Trigger',
alias: 'widget.colorcbo',
triggerTip: 'Please select a color.',
myvalue: null,
initComponent: function(){
console.log("INIT");
console.log(this);
},
onTriggerClick: function() {
var me = this;
picker = Ext.create('Ext.picker.Color', {
pickerField: this,
ownerCt: this,
renderTo: document.body,
floating: true,
hidden: true,
focusOnShow: true,
style: {
backgroundColor: "#fff"
} ,
listeners: {
scope:this,
select: function(field, value, opts){
me.setRawValue(value);
me.resetOriginalValue(value);
me.myvalue = value;
me.inputEl.setStyle({backgroundColor:value});
picker.hide();
me.focus(true);
},
show: function(field,opts){
field.getEl().monitorMouseLeave(500, field.hide, field);
}
}
});
picker.alignTo(me.inputEl, 'tl-bl?');
picker.show(me.inputEl);
picker.on('on', function(){
var me = this;
me.fireEvent('blur', me, e);
}, me);
},
getValue: function(){
console.log("GETTING VALUE");
console.log(this.myvalue);
console.log(this.inputEl.getValue());
var me = this,
val = this.myvalue || me.rawToValue(me.processRawValue(me.getRawValue()));
me.value = val;
return val;
}
});*/
/**
Ext.define('Ext.ux.ColorPickerCombo', {
extend: 'Ext.form.FieldContainer',
mixins:{
field:'Ext.form.field.Field'
},
alias: 'widget.colorcbo',
//configurables
combineErrors: true,
msgTarget: 'under',
layout: 'hbox',
readOnly: false,
initComponent: function() {
var me = this;
console.log(me);
me.picker = Ext.create('Ext.picker.Color', {
pickerField: this,
ownerCt: this,
renderTo: document.body,
floating: true,
hidden: true,
focusOnShow: true,
style: {
backgroundColor: "#fff"
},
listeners: {
scope:this,
select: function(field, value, opts){
me.setValue(value);
me.inputEl.setStyle({backgroundColor:value});
me.picker.hide();
},
show: function(field,opts){
field.getEl().monitorMouseLeave(500, field.hide, field);
}
}
});
me.callParent();
//picker.alignTo(me.inputEl, 'tl-bl?');
//picker.show(me.inputEl);
// this dummy is necessary because Ext.Editor will not check whether an inputEl is present or not
this.inputEl = {
dom: document.createElement('div'),
swallowEvent:function(){}
};
me.initField();
},
focus:function(){
this.callParent(arguments);
this.picker.focus();
}
});*/