Add version files and new GIF images for UI components
This commit is contained in:
213
themes/sources/dhtmlxGrid/codebase/ext/dhtmlxgrid_form.js
Normal file
213
themes/sources/dhtmlxGrid/codebase/ext/dhtmlxgrid_form.js
Normal file
@ -0,0 +1,213 @@
|
||||
/*
|
||||
Product Name: dhtmlxSuite
|
||||
Version: 5.2.0
|
||||
Edition: Professional
|
||||
License: content of this file is covered by DHTMLX Commercial or Enterprise license. Usage without proper license is prohibited. To obtain it contact sales@dhtmlx.com
|
||||
Copyright UAB Dinamenta http://www.dhtmlx.com
|
||||
*/
|
||||
|
||||
dhtmlXGridObject.prototype.attachHeaderA=dhtmlXGridObject.prototype.attachHeader;
|
||||
dhtmlXGridObject.prototype.attachHeader=function()
|
||||
{
|
||||
this.attachHeaderA.apply(this,arguments);
|
||||
if (this._realfake) return true;
|
||||
this.formAutoSubmit();
|
||||
if (typeof(this.FormSubmitOnlyChanged)=="undefined")
|
||||
this.submitOnlyChanged(true);
|
||||
|
||||
if (typeof(this._submitAR)=="undefined")
|
||||
this.submitAddedRows(true);
|
||||
|
||||
var that=this;
|
||||
|
||||
this._added_rows=[];
|
||||
this._deleted_rows=[];
|
||||
|
||||
this.attachEvent("onRowAdded",function(id){
|
||||
that._added_rows.push(id);
|
||||
that.forEachCell(id,function(a){ a.cell.wasChanged=true; })
|
||||
return true;
|
||||
});
|
||||
this.attachEvent("onBeforeRowDeleted",function(id){
|
||||
that._deleted_rows.push(id);
|
||||
return true;
|
||||
});
|
||||
|
||||
this.attachHeader=this.attachHeaderA;
|
||||
}
|
||||
|
||||
dhtmlXGridObject.prototype.formAutoSubmit = function()
|
||||
{
|
||||
this.parentForm = this.detectParentFormPresent();
|
||||
if (this.parentForm === false) {
|
||||
return false;
|
||||
}
|
||||
if (this.formEventAttached)
|
||||
return;
|
||||
this.formInputs = new Array();
|
||||
var self = this;
|
||||
dhtmlxEvent(this.parentForm, 'submit', function() {if (self.entBox) self.parentFormOnSubmit();});
|
||||
this.formEventAttached = true;
|
||||
}
|
||||
|
||||
dhtmlXGridObject.prototype.parentFormOnSubmit = function()
|
||||
{
|
||||
this.formCreateInputCollection();
|
||||
if (!this.callEvent("onBeforeFormSubmit",[])) return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @desc: include only changed rows in form submit
|
||||
* @type: public
|
||||
* @param: mode - {boolean} enable|disable mode
|
||||
* @topic: 0
|
||||
*/
|
||||
dhtmlXGridObject.prototype.submitOnlyChanged = function(mode)
|
||||
{
|
||||
this.FormSubmitOnlyChanged = dhx4.s2b(mode);
|
||||
}
|
||||
|
||||
dhtmlXGridObject.prototype.submitColumns=function(names){
|
||||
if (typeof names == "string") names=names.split(this.delim);
|
||||
this._submit_cols=names;
|
||||
}
|
||||
|
||||
/**
|
||||
* @desc: allows to define input name which will be used for data sending, name may contain next auto-replaced elements - GRID_ID - ID of grids container, ROW_ID - ID of row, ROW_INDEX - index of row, COLUMN_ID - id of column, COLUMN_INDEX - index of column
|
||||
* @type: public
|
||||
* @param: name - input name mask
|
||||
* @topic: 0
|
||||
*/
|
||||
dhtmlXGridObject.prototype.setFieldName=function(mask){
|
||||
mask=mask.replace(/\{GRID_ID\}/g,"'+a1+'");
|
||||
mask=mask.replace(/\{ROW_ID\}/g,"'+a2+'");
|
||||
mask=mask.replace(/\{ROW_INDEX\}/g,"'+this.getRowIndex(a2)+'");
|
||||
mask=mask.replace(/\{COLUMN_INDEX\}/g,"'+a3+'");
|
||||
mask=mask.replace(/\{COLUMN_ID\}/g,"'+this.getColumnId(a3)+'");
|
||||
this._input_mask=Function("a1","a2","a3","return '"+mask+"';");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @desc: include serialized grid as part of form submit
|
||||
* @type: public
|
||||
* @param: mode - {boolean} enable|disable mode
|
||||
* @topic: 0
|
||||
*/
|
||||
dhtmlXGridObject.prototype.submitSerialization = function(mode)
|
||||
{
|
||||
this.FormSubmitSerialization = dhx4.s2b(mode);
|
||||
}
|
||||
|
||||
/**
|
||||
* @desc: include additional data with info about which rows was added and which deleted, enabled by default
|
||||
* @type: public
|
||||
* @param: mode - {boolean} enable|disable mode
|
||||
* @topic: 0
|
||||
*/
|
||||
dhtmlXGridObject.prototype.submitAddedRows = function(mode)
|
||||
{
|
||||
this._submitAR = dhx4.s2b(mode);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @desc: include only selected rows in form submit
|
||||
* @type: public
|
||||
* @param: mode - {boolean} enable|disable mode
|
||||
* @topic: 0
|
||||
*/
|
||||
dhtmlXGridObject.prototype.submitOnlySelected = function(mode)
|
||||
{
|
||||
this.FormSubmitOnlySelected = dhx4.s2b(mode);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @desc: include only row's IDS in form submit
|
||||
* @type: public
|
||||
* @param: mode - {boolean} enable|disable mode
|
||||
* @topic: 0
|
||||
*/
|
||||
dhtmlXGridObject.prototype.submitOnlyRowID = function(mode)
|
||||
{
|
||||
this.FormSubmitOnlyRowID = dhx4.s2b(mode);
|
||||
}
|
||||
|
||||
|
||||
dhtmlXGridObject.prototype.createFormInput = function(name,value){
|
||||
var input = document.createElement('input');
|
||||
input.type = 'hidden';
|
||||
if (this._input_mask && (typeof name != "string"))
|
||||
input.name=this._input_mask.apply(this,name);
|
||||
else
|
||||
input.name =((this.globalBox||this.entBox).id||'dhtmlXGrid')+'_'+name;
|
||||
input.value = value;
|
||||
this.parentForm.appendChild(input);
|
||||
this.formInputs.push(input);
|
||||
}
|
||||
|
||||
dhtmlXGridObject.prototype.createFormInputRow = function(r){
|
||||
var id=(this.globalBox||this.entBox).id;
|
||||
for (var j=0; j<this._cCount; j++){
|
||||
var foo_cell = this.cells3(r, j);
|
||||
if (((!this.FormSubmitOnlyChanged) || foo_cell.wasChanged()) && (!this._submit_cols || this._submit_cols[j]))
|
||||
this.createFormInput(this._input_mask?[id,r.idd,j]:(r.idd+'_'+j),foo_cell.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
dhtmlXGridObject.prototype.formCreateInputCollection = function()
|
||||
{
|
||||
if (this.parentForm == false) {
|
||||
return false;
|
||||
}
|
||||
for (var i=0; i<this.formInputs.length; i++) {
|
||||
this.parentForm.removeChild(this.formInputs[i]);
|
||||
}
|
||||
this.formInputs = new Array();
|
||||
|
||||
if (this.FormSubmitSerialization){
|
||||
this.createFormInput("serialized",this.serialize());
|
||||
} else if (this.FormSubmitOnlySelected){
|
||||
//submit selected
|
||||
if (this.FormSubmitOnlyRowID)
|
||||
this.createFormInput("selected",this.getSelectedId());
|
||||
else
|
||||
for(var i=0;i<this.selectedRows.length;i++)
|
||||
this.createFormInputRow(this.selectedRows[i]);
|
||||
}
|
||||
else{
|
||||
//submit all
|
||||
if (this._submitAR){
|
||||
if (this._added_rows.length)
|
||||
this.createFormInput("rowsadded",this._added_rows.join(","));
|
||||
if (this._deleted_rows.length)
|
||||
this.createFormInput("rowsdeleted",this._deleted_rows.join(","));
|
||||
}
|
||||
this.forEachRow(function(id){
|
||||
if (this.getRowById(id) !== -1)
|
||||
this.createFormInputRow(this.rowsAr[id]);
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
dhtmlXGridObject.prototype.detectParentFormPresent = function()
|
||||
{
|
||||
var parentForm = false;
|
||||
var parent = this.entBox;
|
||||
while(parent && parent.tagName && parent != document.body) {
|
||||
if (parent.tagName.toLowerCase() == 'form') {
|
||||
parentForm = parent;
|
||||
break;
|
||||
} else {
|
||||
parent = parent.parentNode;
|
||||
}
|
||||
}
|
||||
return parentForm;
|
||||
}
|
||||
//(c)dhtmlx ltd. www.dhtmlx.com
|
||||
|
||||
Reference in New Issue
Block a user