Merged in marcoAntonioNina/processmaker/BUG-14636 (pull request #772)

BUG-14636 New Functionality - To allow set index in tables SOLVED
This commit is contained in:
Julio Cesar Laura Avendaño
2014-09-11 11:59:40 -04:00
10 changed files with 505 additions and 230 deletions

View File

@@ -182,7 +182,7 @@ class PmTable
* Build the pmTable with all dependencies
*/
public function build ()
{
{
$this->prepare();
$this->preparePropelIniFile();
$this->buildSchema();
@@ -273,6 +273,10 @@ class PmTable
break;
}
$indexNode = $this->dom->createElement( 'index' );
$indexNode->setAttribute( 'name', 'indexTable' );
$flag = false;
foreach ($this->columns as $column) {
// create the column node
@@ -296,9 +300,20 @@ class PmTable
if ($column->field_autoincrement) {
$columnNode->setAttribute( 'autoIncrement', "true" );
}
// define the Index attribute if it is defined
if ($column->field_index) {
$columnNode->setAttribute( 'index', "true" );
$indexColumnNode = $this->dom->createElement( 'index-column' );
$indexColumnNode->setAttribute( 'name', $column->field_name );
$indexNode->appendChild( $indexColumnNode );
$flag = true;
}
$tableNode->appendChild( $columnNode );
}
if ($flag) {
$tableNode->appendChild( $indexNode );
}
$xpath = new DOMXPath( $this->dom );
$xtable = $xpath->query( '/database/table[@name="' . $this->tableName . '"]' );
@@ -377,7 +392,7 @@ class PmTable
* Save the xml schema for propel
*/
public function saveSchema ()
{
{
$this->dom->save( $this->configDir . $this->schemaFilename );
}

View File

@@ -97,6 +97,7 @@ class AdditionalTables extends BaseAdditionalTables
$oCriteria->addSelectColumn(FieldsPeer::FLD_NULL);
$oCriteria->addSelectColumn(FieldsPeer::FLD_AUTO_INCREMENT);
$oCriteria->addSelectColumn(FieldsPeer::FLD_KEY);
$oCriteria->addSelectColumn(FieldsPeer::FLD_TABLE_INDEX);
$oCriteria->addSelectColumn(FieldsPeer::FLD_FOREIGN_KEY);
$oCriteria->addSelectColumn(FieldsPeer::FLD_FOREIGN_KEY_TABLE);
$oCriteria->addSelectColumn(FieldsPeer::FLD_DYN_NAME);

View File

@@ -85,7 +85,9 @@ class FieldsMapBuilder
$tMap->addColumn('FLD_KEY', 'FldKey', 'int', CreoleTypes::TINYINT, true, null);
$tMap->addColumn('FLD_FOREIGN_KEY', 'FldForeignKey', 'int', CreoleTypes::TINYINT, true, null);
$tMap->addColumn('FLD_TABLE_INDEX', 'FldTableIndex', 'int', CreoleTypes::TINYINT, true, null);
$tMap->addColumn('FLD_FOREIGN_KEY', 'FldForeignKey', 'int', CreoleTypes::TINYINT, false, null);
$tMap->addColumn('FLD_FOREIGN_KEY_TABLE', 'FldForeignKeyTable', 'string', CreoleTypes::VARCHAR, true, 32);

View File

@@ -87,6 +87,12 @@ abstract class BaseFields extends BaseObject implements Persistent
*/
protected $fld_key = 0;
/**
* The value for the fld_table_index field.
* @var int
*/
protected $fld_table_index = 0;
/**
* The value for the fld_foreign_key field.
* @var int
@@ -241,6 +247,17 @@ abstract class BaseFields extends BaseObject implements Persistent
return $this->fld_key;
}
/**
* Get the [fld_table_index] column value.
*
* @return int
*/
public function getFldTableIndex()
{
return $this->fld_table_index;
}
/**
* Get the [fld_foreign_key] column value.
*
@@ -516,6 +533,28 @@ abstract class BaseFields extends BaseObject implements Persistent
} // setFldKey()
/**
* Set the value of [fld_table_index] column.
*
* @param int $v new value
* @return void
*/
public function setFldTableIndex($v)
{
// Since the native PHP type for this column is integer,
// we will cast the input value to an int (if it is not).
if ($v !== null && !is_int($v) && is_numeric($v)) {
$v = (int) $v;
}
if ($this->fld_table_index !== $v || $v === 0) {
$this->fld_table_index = $v;
$this->modifiedColumns[] = FieldsPeer::FLD_TABLE_INDEX;
}
} // setFldTableIndex()
/**
* Set the value of [fld_foreign_key] column.
*
@@ -663,22 +702,24 @@ abstract class BaseFields extends BaseObject implements Persistent
$this->fld_key = $rs->getInt($startcol + 9);
$this->fld_foreign_key = $rs->getInt($startcol + 10);
$this->fld_table_index = $rs->getInt($startcol + 10);
$this->fld_foreign_key_table = $rs->getString($startcol + 11);
$this->fld_foreign_key = $rs->getInt($startcol + 11);
$this->fld_dyn_name = $rs->getString($startcol + 12);
$this->fld_foreign_key_table = $rs->getString($startcol + 12);
$this->fld_dyn_uid = $rs->getString($startcol + 13);
$this->fld_dyn_name = $rs->getString($startcol + 13);
$this->fld_filter = $rs->getInt($startcol + 14);
$this->fld_dyn_uid = $rs->getString($startcol + 14);
$this->fld_filter = $rs->getInt($startcol + 15);
$this->resetModified();
$this->setNew(false);
// FIXME - using NUM_COLUMNS may be clearer.
return $startcol + 15; // 15 = FieldsPeer::NUM_COLUMNS - FieldsPeer::NUM_LAZY_LOAD_COLUMNS).
return $startcol + 16; // 16 = FieldsPeer::NUM_COLUMNS - FieldsPeer::NUM_LAZY_LOAD_COLUMNS).
} catch (Exception $e) {
throw new PropelException("Error populating Fields object", $e);
@@ -913,18 +954,21 @@ abstract class BaseFields extends BaseObject implements Persistent
return $this->getFldKey();
break;
case 10:
return $this->getFldForeignKey();
return $this->getFldTableIndex();
break;
case 11:
return $this->getFldForeignKeyTable();
return $this->getFldForeignKey();
break;
case 12:
return $this->getFldDynName();
return $this->getFldForeignKeyTable();
break;
case 13:
return $this->getFldDynUid();
return $this->getFldDynName();
break;
case 14:
return $this->getFldDynUid();
break;
case 15:
return $this->getFldFilter();
break;
default:
@@ -957,11 +1001,12 @@ abstract class BaseFields extends BaseObject implements Persistent
$keys[7] => $this->getFldNull(),
$keys[8] => $this->getFldAutoIncrement(),
$keys[9] => $this->getFldKey(),
$keys[10] => $this->getFldForeignKey(),
$keys[11] => $this->getFldForeignKeyTable(),
$keys[12] => $this->getFldDynName(),
$keys[13] => $this->getFldDynUid(),
$keys[14] => $this->getFldFilter(),
$keys[10] => $this->getFldTableIndex(),
$keys[11] => $this->getFldForeignKey(),
$keys[12] => $this->getFldForeignKeyTable(),
$keys[13] => $this->getFldDynName(),
$keys[14] => $this->getFldDynUid(),
$keys[15] => $this->getFldFilter(),
);
return $result;
}
@@ -1024,18 +1069,21 @@ abstract class BaseFields extends BaseObject implements Persistent
$this->setFldKey($value);
break;
case 10:
$this->setFldForeignKey($value);
$this->setFldTableIndex($value);
break;
case 11:
$this->setFldForeignKeyTable($value);
$this->setFldForeignKey($value);
break;
case 12:
$this->setFldDynName($value);
$this->setFldForeignKeyTable($value);
break;
case 13:
$this->setFldDynUid($value);
$this->setFldDynName($value);
break;
case 14:
$this->setFldDynUid($value);
break;
case 15:
$this->setFldFilter($value);
break;
} // switch()
@@ -1102,23 +1150,27 @@ abstract class BaseFields extends BaseObject implements Persistent
}
if (array_key_exists($keys[10], $arr)) {
$this->setFldForeignKey($arr[$keys[10]]);
$this->setFldTableIndex($arr[$keys[10]]);
}
if (array_key_exists($keys[11], $arr)) {
$this->setFldForeignKeyTable($arr[$keys[11]]);
$this->setFldForeignKey($arr[$keys[11]]);
}
if (array_key_exists($keys[12], $arr)) {
$this->setFldDynName($arr[$keys[12]]);
$this->setFldForeignKeyTable($arr[$keys[12]]);
}
if (array_key_exists($keys[13], $arr)) {
$this->setFldDynUid($arr[$keys[13]]);
$this->setFldDynName($arr[$keys[13]]);
}
if (array_key_exists($keys[14], $arr)) {
$this->setFldFilter($arr[$keys[14]]);
$this->setFldDynUid($arr[$keys[14]]);
}
if (array_key_exists($keys[15], $arr)) {
$this->setFldFilter($arr[$keys[15]]);
}
}
@@ -1172,6 +1224,10 @@ abstract class BaseFields extends BaseObject implements Persistent
$criteria->add(FieldsPeer::FLD_KEY, $this->fld_key);
}
if ($this->isColumnModified(FieldsPeer::FLD_TABLE_INDEX)) {
$criteria->add(FieldsPeer::FLD_TABLE_INDEX, $this->fld_table_index);
}
if ($this->isColumnModified(FieldsPeer::FLD_FOREIGN_KEY)) {
$criteria->add(FieldsPeer::FLD_FOREIGN_KEY, $this->fld_foreign_key);
}
@@ -1264,6 +1320,8 @@ abstract class BaseFields extends BaseObject implements Persistent
$copyObj->setFldKey($this->fld_key);
$copyObj->setFldTableIndex($this->fld_table_index);
$copyObj->setFldForeignKey($this->fld_foreign_key);
$copyObj->setFldForeignKeyTable($this->fld_foreign_key_table);

View File

@@ -25,7 +25,7 @@ abstract class BaseFieldsPeer
const CLASS_DEFAULT = 'classes.model.Fields';
/** The total number of columns. */
const NUM_COLUMNS = 15;
const NUM_COLUMNS = 16;
/** The number of lazy-loaded columns. */
const NUM_LAZY_LOAD_COLUMNS = 0;
@@ -61,6 +61,9 @@ abstract class BaseFieldsPeer
/** the column name for the FLD_KEY field */
const FLD_KEY = 'FIELDS.FLD_KEY';
/** the column name for the FLD_TABLE_INDEX field */
const FLD_TABLE_INDEX = 'FIELDS.FLD_TABLE_INDEX';
/** the column name for the FLD_FOREIGN_KEY field */
const FLD_FOREIGN_KEY = 'FIELDS.FLD_FOREIGN_KEY';
@@ -87,10 +90,10 @@ abstract class BaseFieldsPeer
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
private static $fieldNames = array (
BasePeer::TYPE_PHPNAME => array ('FldUid', 'AddTabUid', 'FldIndex', 'FldName', 'FldDescription', 'FldType', 'FldSize', 'FldNull', 'FldAutoIncrement', 'FldKey', 'FldForeignKey', 'FldForeignKeyTable', 'FldDynName', 'FldDynUid', 'FldFilter', ),
BasePeer::TYPE_COLNAME => array (FieldsPeer::FLD_UID, FieldsPeer::ADD_TAB_UID, FieldsPeer::FLD_INDEX, FieldsPeer::FLD_NAME, FieldsPeer::FLD_DESCRIPTION, FieldsPeer::FLD_TYPE, FieldsPeer::FLD_SIZE, FieldsPeer::FLD_NULL, FieldsPeer::FLD_AUTO_INCREMENT, FieldsPeer::FLD_KEY, FieldsPeer::FLD_FOREIGN_KEY, FieldsPeer::FLD_FOREIGN_KEY_TABLE, FieldsPeer::FLD_DYN_NAME, FieldsPeer::FLD_DYN_UID, FieldsPeer::FLD_FILTER, ),
BasePeer::TYPE_FIELDNAME => array ('FLD_UID', 'ADD_TAB_UID', 'FLD_INDEX', 'FLD_NAME', 'FLD_DESCRIPTION', 'FLD_TYPE', 'FLD_SIZE', 'FLD_NULL', 'FLD_AUTO_INCREMENT', 'FLD_KEY', 'FLD_FOREIGN_KEY', 'FLD_FOREIGN_KEY_TABLE', 'FLD_DYN_NAME', 'FLD_DYN_UID', 'FLD_FILTER', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, )
BasePeer::TYPE_PHPNAME => array ('FldUid', 'AddTabUid', 'FldIndex', 'FldName', 'FldDescription', 'FldType', 'FldSize', 'FldNull', 'FldAutoIncrement', 'FldKey', 'FldTableIndex', 'FldForeignKey', 'FldForeignKeyTable', 'FldDynName', 'FldDynUid', 'FldFilter', ),
BasePeer::TYPE_COLNAME => array (FieldsPeer::FLD_UID, FieldsPeer::ADD_TAB_UID, FieldsPeer::FLD_INDEX, FieldsPeer::FLD_NAME, FieldsPeer::FLD_DESCRIPTION, FieldsPeer::FLD_TYPE, FieldsPeer::FLD_SIZE, FieldsPeer::FLD_NULL, FieldsPeer::FLD_AUTO_INCREMENT, FieldsPeer::FLD_KEY, FieldsPeer::FLD_TABLE_INDEX, FieldsPeer::FLD_FOREIGN_KEY, FieldsPeer::FLD_FOREIGN_KEY_TABLE, FieldsPeer::FLD_DYN_NAME, FieldsPeer::FLD_DYN_UID, FieldsPeer::FLD_FILTER, ),
BasePeer::TYPE_FIELDNAME => array ('FLD_UID', 'ADD_TAB_UID', 'FLD_INDEX', 'FLD_NAME', 'FLD_DESCRIPTION', 'FLD_TYPE', 'FLD_SIZE', 'FLD_NULL', 'FLD_AUTO_INCREMENT', 'FLD_KEY', 'FLD_TABLE_INDEX', 'FLD_FOREIGN_KEY', 'FLD_FOREIGN_KEY_TABLE', 'FLD_DYN_NAME', 'FLD_DYN_UID', 'FLD_FILTER', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, )
);
/**
@@ -100,10 +103,10 @@ abstract class BaseFieldsPeer
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/
private static $fieldKeys = array (
BasePeer::TYPE_PHPNAME => array ('FldUid' => 0, 'AddTabUid' => 1, 'FldIndex' => 2, 'FldName' => 3, 'FldDescription' => 4, 'FldType' => 5, 'FldSize' => 6, 'FldNull' => 7, 'FldAutoIncrement' => 8, 'FldKey' => 9, 'FldForeignKey' => 10, 'FldForeignKeyTable' => 11, 'FldDynName' => 12, 'FldDynUid' => 13, 'FldFilter' => 14, ),
BasePeer::TYPE_COLNAME => array (FieldsPeer::FLD_UID => 0, FieldsPeer::ADD_TAB_UID => 1, FieldsPeer::FLD_INDEX => 2, FieldsPeer::FLD_NAME => 3, FieldsPeer::FLD_DESCRIPTION => 4, FieldsPeer::FLD_TYPE => 5, FieldsPeer::FLD_SIZE => 6, FieldsPeer::FLD_NULL => 7, FieldsPeer::FLD_AUTO_INCREMENT => 8, FieldsPeer::FLD_KEY => 9, FieldsPeer::FLD_FOREIGN_KEY => 10, FieldsPeer::FLD_FOREIGN_KEY_TABLE => 11, FieldsPeer::FLD_DYN_NAME => 12, FieldsPeer::FLD_DYN_UID => 13, FieldsPeer::FLD_FILTER => 14, ),
BasePeer::TYPE_FIELDNAME => array ('FLD_UID' => 0, 'ADD_TAB_UID' => 1, 'FLD_INDEX' => 2, 'FLD_NAME' => 3, 'FLD_DESCRIPTION' => 4, 'FLD_TYPE' => 5, 'FLD_SIZE' => 6, 'FLD_NULL' => 7, 'FLD_AUTO_INCREMENT' => 8, 'FLD_KEY' => 9, 'FLD_FOREIGN_KEY' => 10, 'FLD_FOREIGN_KEY_TABLE' => 11, 'FLD_DYN_NAME' => 12, 'FLD_DYN_UID' => 13, 'FLD_FILTER' => 14, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, )
BasePeer::TYPE_PHPNAME => array ('FldUid' => 0, 'AddTabUid' => 1, 'FldIndex' => 2, 'FldName' => 3, 'FldDescription' => 4, 'FldType' => 5, 'FldSize' => 6, 'FldNull' => 7, 'FldAutoIncrement' => 8, 'FldKey' => 9, 'FldTableIndex' => 10, 'FldForeignKey' => 11, 'FldForeignKeyTable' => 12, 'FldDynName' => 13, 'FldDynUid' => 14, 'FldFilter' => 15, ),
BasePeer::TYPE_COLNAME => array (FieldsPeer::FLD_UID => 0, FieldsPeer::ADD_TAB_UID => 1, FieldsPeer::FLD_INDEX => 2, FieldsPeer::FLD_NAME => 3, FieldsPeer::FLD_DESCRIPTION => 4, FieldsPeer::FLD_TYPE => 5, FieldsPeer::FLD_SIZE => 6, FieldsPeer::FLD_NULL => 7, FieldsPeer::FLD_AUTO_INCREMENT => 8, FieldsPeer::FLD_KEY => 9, FieldsPeer::FLD_TABLE_INDEX => 10, FieldsPeer::FLD_FOREIGN_KEY => 11, FieldsPeer::FLD_FOREIGN_KEY_TABLE => 12, FieldsPeer::FLD_DYN_NAME => 13, FieldsPeer::FLD_DYN_UID => 14, FieldsPeer::FLD_FILTER => 15, ),
BasePeer::TYPE_FIELDNAME => array ('FLD_UID' => 0, 'ADD_TAB_UID' => 1, 'FLD_INDEX' => 2, 'FLD_NAME' => 3, 'FLD_DESCRIPTION' => 4, 'FLD_TYPE' => 5, 'FLD_SIZE' => 6, 'FLD_NULL' => 7, 'FLD_AUTO_INCREMENT' => 8, 'FLD_KEY' => 9, 'FLD_TABLE_INDEX' => 10, 'FLD_FOREIGN_KEY' => 11, 'FLD_FOREIGN_KEY_TABLE' => 12, 'FLD_DYN_NAME' => 13, 'FLD_DYN_UID' => 14, 'FLD_FILTER' => 15, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, )
);
/**
@@ -224,6 +227,8 @@ abstract class BaseFieldsPeer
$criteria->addSelectColumn(FieldsPeer::FLD_KEY);
$criteria->addSelectColumn(FieldsPeer::FLD_TABLE_INDEX);
$criteria->addSelectColumn(FieldsPeer::FLD_FOREIGN_KEY);
$criteria->addSelectColumn(FieldsPeer::FLD_FOREIGN_KEY_TABLE);

View File

@@ -348,7 +348,7 @@ abstract class BaseHolidayPeer
$criteria = $values->buildCriteria(); // build Criteria from Holiday object
}
$criteria->remove(HolidayPeer::HLD_UID); // remove pkey col since this table uses auto-increment
//$criteria->remove(HolidayPeer::HLD_UID); // remove pkey col since this table uses auto-increment
// Set the correct dbName

View File

@@ -2171,21 +2171,22 @@
<parameter name="Create_options" value=""/>
<parameter name="Comment" value=""/>
</vendor>
<column name="FLD_UID" type="VARCHAR" size="32" required="true" primaryKey="true" default=""/>
<column name="ADD_TAB_UID" type="VARCHAR" size="32" required="true" default=""/>
<column name="FLD_INDEX" type="INTEGER" required="true" default="1"/>
<column name="FLD_NAME" type="VARCHAR" size="60" required="true" default=""/>
<column name="FLD_DESCRIPTION" type="LONGVARCHAR" required="true"/>
<column name="FLD_TYPE" type="VARCHAR" size="20" required="true" default=""/>
<column name="FLD_SIZE" type="INTEGER" required="false" default="0"/>
<column name="FLD_NULL" type="TINYINT" required="true" default="1"/>
<column name="FLD_AUTO_INCREMENT" type="TINYINT" required="true" default="0"/>
<column name="FLD_KEY" type="TINYINT" required="true" default="0"/>
<column name="FLD_FOREIGN_KEY" type="TINYINT" required="true" default="0"/>
<column name="FLD_FOREIGN_KEY_TABLE" type="VARCHAR" size="32" required="true" default=""/>
<column name="FLD_DYN_NAME" type="VARCHAR" size="128" required="false" default=""/>
<column name="FLD_DYN_UID" type="VARCHAR" size="128" required="false" default=""/>
<column name="FLD_FILTER" type="TINYINT" required="false" default="0"/>
<column name="FLD_UID" type="VARCHAR" size="32" required="true" primaryKey="true" default=""/>
<column name="ADD_TAB_UID" type="VARCHAR" size="32" required="true" default=""/>
<column name="FLD_INDEX" type="INTEGER" required="true" default="1"/>
<column name="FLD_NAME" type="VARCHAR" size="60" required="true" default=""/>
<column name="FLD_DESCRIPTION" type="LONGVARCHAR" required="true"/>
<column name="FLD_TYPE" type="VARCHAR" size="20" required="true" default=""/>
<column name="FLD_SIZE" type="INTEGER" required="false" default="0"/>
<column name="FLD_NULL" type="TINYINT" required="true" default="1"/>
<column name="FLD_AUTO_INCREMENT" type="TINYINT" required="true" default="0"/>
<column name="FLD_KEY" type="TINYINT" required="true" default="0"/>
<column name="FLD_TABLE_INDEX" type="TINYINT" required="true" default="0"/>
<column name="FLD_FOREIGN_KEY" type="TINYINT" required="false" default="0"/>
<column name="FLD_FOREIGN_KEY_TABLE" type="VARCHAR" size="32" required="true" default=""/>
<column name="FLD_DYN_NAME" type="VARCHAR" size="128" required="false" default=""/>
<column name="FLD_DYN_UID" type="VARCHAR" size="128" required="false" default=""/>
<column name="FLD_FILTER" type="TINYINT" required="false" default="0"/>
</table>
<table name="SHADOW_TABLE">
<vendor type="mysql">

View File

@@ -311,7 +311,23 @@ class pmTablesProxy extends HttpProxyController
// Updating pmtable fields
foreach ($columns as $i => $column) {
$field = array ('FLD_UID' => $column->uid,'FLD_INDEX' => $i,'ADD_TAB_UID' => $addTabUid,'FLD_NAME' => $column->field_name,'FLD_DESCRIPTION' => $column->field_label,'FLD_TYPE' => $column->field_type,'FLD_SIZE' => $column->field_size == '' ? null : $column->field_size,'FLD_NULL' => $column->field_null ? 1 : 0,'FLD_AUTO_INCREMENT' => $column->field_autoincrement ? 1 : 0,'FLD_KEY' => $column->field_key ? 1 : 0,'FLD_FOREIGN_KEY' => 0,'FLD_FOREIGN_KEY_TABLE' => '','FLD_DYN_NAME' => $column->field_dyn,'FLD_DYN_UID' => $column->field_uid,'FLD_FILTER' => (isset( $column->field_filter ) && $column->field_filter) ? 1 : 0
$field = array (
'FLD_UID' => $column->uid,
'FLD_INDEX' => $i,
'ADD_TAB_UID' => $addTabUid,
'FLD_NAME' => $column->field_name,
'FLD_DESCRIPTION' => $column->field_label,
'FLD_TYPE' => $column->field_type,
'FLD_SIZE' => $column->field_size == '' ? null : $column->field_size,
'FLD_NULL' => $column->field_null ? 1 : 0,
'FLD_AUTO_INCREMENT' => $column->field_autoincrement ? 1 : 0,
'FLD_KEY' => $column->field_key ? 1 : 0,
'FLD_TABLE_INDEX' => $column->field_index ? 1 : 0,
'FLD_FOREIGN_KEY' => 0,
'FLD_FOREIGN_KEY_TABLE' => '',
'FLD_DYN_NAME' => $column->field_dyn,
'FLD_DYN_UID' => $column->field_uid,
'FLD_FILTER' => (isset( $column->field_filter ) && $column->field_filter) ? 1 : 0
);
$oFields->create( $field );
}

View File

@@ -160,6 +160,12 @@ Ext.onReady(function(){
hidden: true,
hideable:false
},
{
id: 'field_index',
dataIndex: 'field_index',
hidden: true,
hideable:false
},
{
id: 'field_null',
dataIndex: 'field_null',
@@ -238,10 +244,11 @@ Ext.onReady(function(){
var fieldNull = Ext.getCmp("field_null");
var fieldPrimaryKey = Ext.getCmp("field_primary_key");
var fieldIndex = Ext.getCmp("field_index");
var fieldInc = Ext.getCmp("field_incre");
var sizeEdit = Ext.getCmp("sizeEdit");
editorFieldsEnableDisable(selCombo, fieldNull, fieldPrimaryKey, fieldInc, sizeEdit);
editorFieldsEnableDisable(selCombo, fieldNull, fieldPrimaryKey, fieldIndex, fieldInc, sizeEdit);
flagShowMessageError = 1;
}
@@ -297,6 +304,20 @@ Ext.onReady(function(){
disabled: true,
inputValue: 'always'
}
}, {
xtype: 'booleancolumn',
header: _('ID_INDEX'),
dataIndex: 'field_index',
align: 'center',
width: 80,
trueText: _('ID_YES'),
falseText: _('ID_NO'),
editor: {
xtype: 'checkbox',
id: 'field_index',
disabled: true,
inputValue: 'always'
}
}
];
@@ -331,6 +352,7 @@ Ext.onReady(function(){
{name: 'uid', type: 'string'},
{name: 'field_uid', type: 'string'},
{name: 'field_key', type: 'string'},
{name: 'field_index', type: 'string'},
{name: 'field_name', type: 'string'},
{name: 'field_label', type: 'string'},
{name: 'field_type'},
@@ -393,10 +415,11 @@ Ext.onReady(function(){
var fieldTypeValue = Ext.getCmp("fieldType").getValue();
var fieldNull = Ext.getCmp("field_null");
var fieldPrimaryKey = Ext.getCmp("field_primary_key");
var fieldIndex = Ext.getCmp("field_index");
var fieldInc = Ext.getCmp("field_incre");
var sizeEdit = Ext.getCmp("sizeEdit");
editorFieldsEnableDisable(fieldTypeValue, fieldNull, fieldPrimaryKey, fieldInc, sizeEdit);
editorFieldsEnableDisable(fieldTypeValue, fieldNull, fieldPrimaryKey, fieldIndex, fieldInc, sizeEdit);
},
250
);
@@ -407,7 +430,10 @@ Ext.onReady(function(){
//if a column was set as PK so can't be null
if (row.get('field_key') == true) {
row.data.field_null = false;
}
if (row.get('field_index') == true) {
row.data.field_null = false;
}
row.commit();
}
@@ -838,6 +864,10 @@ function createReportTable()
return false;
}
if (row.data['field_index']) {
hasSomeIndex = true;
}
if (row.data['field_key']) {
hasSomePrimaryKey = true;
}
@@ -939,6 +969,7 @@ function addColumn() {
field_type : '',
field_size : '',
field_key : 0,
field_index : 0,
field_null : 1
});
var len = assignedGrid.getStore().data.length;
@@ -968,18 +999,20 @@ function removeColumn()
});
}
function editorFieldsEnableDisable(fieldTypeValue, fieldNull, fieldPrimaryKey, fieldInc, sizeEdit)
function editorFieldsEnableDisable(fieldTypeValue, fieldNull, fieldPrimaryKey, fieldIndex, fieldInc, sizeEdit)
{
var swSize = 1; //Enable
var swNull = 1;
var swPK = 1;
var swAI = 1;
var swI = 1;
//Date
if (fieldTypeValue == "DATE" || fieldTypeValue == "DATETIME" || fieldTypeValue == "TIME") {
swSize = 0; //Disable
swPK = 0;
swAI = 0;
swI = 0;
}
//Numbers
@@ -994,12 +1027,14 @@ function editorFieldsEnableDisable(fieldTypeValue, fieldNull, fieldPrimaryKey, f
if (fieldTypeValue == "DECIMAL" || fieldTypeValue == "FLOAT") {
swPK = 0;
swAI = 0;
swI = 0;
}
if (fieldTypeValue == "DOUBLE" || fieldTypeValue == "REAL") {
swSize = 0;
swPK = 0;
swAI = 0;
swI = 0;
}
//String
@@ -1010,6 +1045,7 @@ function editorFieldsEnableDisable(fieldTypeValue, fieldNull, fieldPrimaryKey, f
if (fieldTypeValue == "LONGVARCHAR") {
swPK = 0;
swAI = 0;
swI = 0;
}
//Boolean
@@ -1018,6 +1054,7 @@ function editorFieldsEnableDisable(fieldTypeValue, fieldNull, fieldPrimaryKey, f
swNull = 0;
swPK = 0;
swAI = 0;
swI = 0;
}
//Set enable/disable
@@ -1035,6 +1072,13 @@ function editorFieldsEnableDisable(fieldTypeValue, fieldNull, fieldPrimaryKey, f
fieldPrimaryKey.setValue(false);
}
if (swI == 1) {
fieldIndex.enable();
} else {
fieldIndex.disable();
fieldIndex.setValue(false);
}
if (swAI == 1) {
fieldInc.enable();
} else {
@@ -1067,14 +1111,15 @@ AssignFieldsAction = function(){
var meta = mapPMFieldType(records[i].data['FIELD_UID']);
var row = new PMRow({
uid : '',
field_uid : records[i].data['FIELD_UID'],
field_dyn : records[i].data['FIELD_NAME'],
field_name : records[i].data['FIELD_NAME'].toUpperCase(),
field_label : records[i].data['FIELD_NAME'].toUpperCase(),
field_type : meta.type,
field_size : meta.size,
field_key : 0,
field_null : 1
field_uid : records[i].data['FIELD_UID'],
field_dyn : records[i].data['FIELD_NAME'],
field_name : records[i].data['FIELD_NAME'].toUpperCase(),
field_label : records[i].data['FIELD_NAME'].toUpperCase(),
field_type : meta.type,
field_size : meta.size,
field_key : 0,
field_index : 0,
field_null : 1
});
store.add(row);
@@ -1124,6 +1169,7 @@ AssignAllFieldsAction = function(){
field_type : meta.type,
field_size : meta.size,
field_key : 0,
field_index : 0,
field_null : 1
});
@@ -1207,6 +1253,7 @@ var DDLoadFields = function(){
field_type : meta.type,
field_size : meta.size,
field_key : 0,
field_index : 0,
field_null : 1
});
@@ -1223,25 +1270,25 @@ var DDLoadFields = function(){
function loadTableRowsFromArray(records)
{
var PMRow = assignedGrid.getStore().recordType;
if (records.length == 0) return;
for (i=0;i<records.length; i++) {
var row = new PMRow({
uid : records[i].FLD_UID,
field_uid : records[i].FLD_DYN_UID,
field_dyn : records[i].FLD_DYN_NAME,
field_name : records[i].FLD_NAME,
field_label: records[i].FLD_DESCRIPTION,
field_type : records[i].FLD_TYPE,
field_size : records[i].FLD_SIZE,
field_key : records[i].FLD_KEY == '1' ? true : false,
field_null : records[i].FLD_NULL == '1' ? true : false,
field_autoincrement : records[i].FLD_AUTO_INCREMENT == '1' ? true : false,
field_filter: records[i].FLD_FILTER == '1' ? true : false
});
store.add(row);
}
var PMRow = assignedGrid.getStore().recordType;
if (records.length == 0) return;
for (i=0;i<records.length; i++) {
var row = new PMRow({
uid : records[i].FLD_UID,
field_uid : records[i].FLD_DYN_UID,
field_dyn : records[i].FLD_DYN_NAME,
field_name : records[i].FLD_NAME,
field_label : records[i].FLD_DESCRIPTION,
field_type : records[i].FLD_TYPE,
field_size : records[i].FLD_SIZE,
field_key : records[i].FLD_KEY == '1' ? true : false,
field_index : records[i].FLD_TABLE_INDEX == '1' ? true : false,
field_null : records[i].FLD_NULL == '1' ? true : false,
field_autoincrement : records[i].FLD_AUTO_INCREMENT == '1' ? true : false,
field_filter : records[i].FLD_FILTER == '1' ? true : false
});
store.add(row);
}
}

View File

@@ -262,125 +262,138 @@ Ext.onReady(function(){
});
//columns for table columns grid
var cmColumns = [
{
id: 'uid',
dataIndex: 'uid',
hidden: true,
hideable:false
},
{
dataIndex: '_index',
hidden: true,
hideable:false
},
{
dataIndex: '_isset',
hidden: true,
hideable:false
},
{
id: 'field_uid',
dataIndex: 'field_uid',
hidden: true,
hideable:false
},
{
id: 'field_key',
dataIndex: 'field_key',
hidden: true,
hideable:false
},
{
id: 'field_null',
dataIndex: 'field_null',
hidden: true,
hideable:false
},
{
id: 'field_dyn',
header: _("ID_DYNAFORM_FIELD"),
dataIndex: 'field_dyn',
width: 220,
// use shorthand alias defined above
editor: {
xtype: 'displayfield',
style: 'font-size:11px; padding-left:7px'
}
}, {
id: 'field_name',
header: _("ID_FIELD_NAME"),
dataIndex: 'field_name',
width: 220,
editor: {
xtype: 'textfield',
allowBlank: true,
listeners:{
change: function(f,e){
this.setValue(this.getValue().toUpperCase());
//columns for table columns grid
var cmColumns = [
{
id: 'uid',
dataIndex: 'uid',
hidden: true,
hideable:false
},
{
dataIndex: '_index',
hidden: true,
hideable:false
},
{
dataIndex: '_isset',
hidden: true,
hideable:false
},
{
id: 'field_uid',
dataIndex: 'field_uid',
hidden: true,
hideable:false
},
{
id: 'field_key',
dataIndex: 'field_key',
hidden: true,
hideable:false
},
{
id: 'field_index',
dataIndex: 'field_index',
hidden: true,
hideable:false
},
{
id: 'field_null',
dataIndex: 'field_null',
hidden: true,
hideable:false
},
{
id: 'field_dyn',
header: _("ID_DYNAFORM_FIELD"),
dataIndex: 'field_dyn',
width: 220,
// use shorthand alias defined above
editor: {
xtype: 'displayfield',
style: 'font-size:11px; padding-left:7px'
}
}, {
id: 'field_name',
header: _("ID_FIELD_NAME"),
dataIndex: 'field_name',
width: 220,
editor: {
xtype: 'textfield',
allowBlank: true,
listeners:{
change: function(f,e){
this.setValue(this.getValue().toUpperCase());
}
}
}
}
}, {
id: 'field_label',
header: _("ID_FIELD_LABEL"),
dataIndex: 'field_label',
width: 220,
editor:{
xtype: 'textfield',
allowBlank: true
}
}, {
id: 'field_type',
header: _("ID_TYPE"),
dataIndex: 'field_type',
width: 105,
editor: new fm.ComboBox({
typeAhead: true,
triggerAction: 'all',
editable: false,
lazyRender: true,
mode: 'local',
displayField:'type',
valueField:'type_id',
store: new Ext.data.SimpleStore({
fields: ['type_id', 'type'],
//data : [['VARCHAR',_("ID_VARCHAR")],['TEXT',_("ID_TEXT")],['DATE',_("ID_DATE")],['INT',_("ID_INT")],['FLOAT',_("ID_FLOAT")]],
data: columnsTypes,
sortInfo: {field:'type_id', direction:'ASC'}
}),
listeners: {
beforerender: function (combo)
{
if (combo.getValue() == "" && combo.store.getAt(0)) {
combo.setValue(combo.store.getAt(0).get(combo.valueField));
}
},
beforeshow: function (combo)
{
if (combo.getValue() == "" && combo.store.getAt(0)) {
combo.setValue(combo.store.getAt(0).get(combo.valueField));
}
},
'select': function(combo, row, index) {
if (cm && cm instanceof Ext.grid.ColumnModel) {
}, {
id: 'field_label',
header: _("ID_FIELD_LABEL"),
dataIndex: 'field_label',
width: 220,
editor:{
xtype: 'textfield',
allowBlank: true
}
}, {
id: 'field_type',
header: _("ID_TYPE"),
dataIndex: 'field_type',
width: 105,
editor: new fm.ComboBox({
typeAhead: true,
triggerAction: 'all',
editable: false,
lazyRender: true,
mode: 'local',
displayField:'type',
valueField:'type_id',
store: new Ext.data.SimpleStore({
fields: ['type_id', 'type'],
//data : [['VARCHAR',_("ID_VARCHAR")],['TEXT',_("ID_TEXT")],['DATE',_("ID_DATE")],['INT',_("ID_INT")],['FLOAT',_("ID_FLOAT")]],
data: columnsTypes,
sortInfo: {field:'type_id', direction:'ASC'}
}),
listeners: {
beforerender: function (combo)
{
if (combo.getValue() == "" && combo.store.getAt(0)) {
combo.setValue(combo.store.getAt(0).get(combo.valueField));
}
},
beforeshow: function (combo)
{
if (combo.getValue() == "" && combo.store.getAt(0)) {
combo.setValue(combo.store.getAt(0).get(combo.valueField));
}
},
'select': function(combo, row, index) {
if (cm && cm instanceof Ext.grid.ColumnModel) {
var valueCombo = combo.getValue();
var changeValue = !(valueCombo === assignedGrid.getSelectionModel().getSelected().get('field_type'));
validateFieldSizeAutoincrement(valueCombo, changeValue);
var fieldTypeValue = combo.getValue();
var fieldIndex = Ext.getCmp("field_index");
var fieldInc = Ext.getCmp("field_incre");
var sizeEdit = Ext.getCmp("sizeEdit");
editorFieldsEnableDisable(fieldTypeValue, fieldIndex, fieldInc, sizeEdit);
flagShowMessageError = 1;
}
}//select
}
})
}, {
id: 'field_size',
header: _("ID_SIZE"),
dataIndex: 'field_size',
width: 50,
align: 'right',
editor: sizeField
}, {
}
}//select
}
})
}, {
id: 'field_size',
header: _("ID_SIZE"),
dataIndex: 'field_size',
width: 50,
align: 'right',
editor: sizeField
}, {
xtype: 'booleancolumn',
header: _('ID_AUTO_INCREMENT'),
@@ -395,7 +408,21 @@ Ext.onReady(function(){
disabled: true,
inputValue: 'always'
}
}
}, {
xtype: 'booleancolumn',
header: _('ID_INDEX'),
dataIndex: 'field_index',
align: 'center',
width: 80,
trueText: _('ID_YES'),
falseText: _('ID_NO'),
editor: {
xtype: 'checkbox',
id: 'field_index',
disabled: true,
inputValue: 'always'
}
}
];
function validateFieldSizeAutoincrement(valueType, defaultValue) {
@@ -470,6 +497,7 @@ function validateFieldSizeAutoincrement(valueType, defaultValue) {
{name: '_isset'},
{name: 'field_uid', type: 'string'},
{name: 'field_key', type: 'string'},
{name: 'field_index', type: 'string'},
{name: 'field_name', type: 'string'},
{name: 'field_label', type: 'string'},
{name: 'field_type'},
@@ -528,11 +556,23 @@ function validateFieldSizeAutoincrement(valueType, defaultValue) {
//
},
beforeedit: function(roweditor, rowIndex) {
row = assignedGrid.getSelectionModel().getSelected();
if (row.get('field_name') == 'APP_UID' || row.get('field_name') == 'APP_NUMBER' || row.get('field_name') == 'ROW') {
editor.stopEditing();
return false;
}
row = assignedGrid.getSelectionModel().getSelected();
if (row.get('field_name') == 'APP_UID' || row.get('field_name') == 'APP_NUMBER' || row.get('field_name') == 'ROW') {
editor.stopEditing();
return false;
}
setTimeout(
function ()
{
var fieldTypeValue = row.get('field_type');
var fieldIndex = Ext.getCmp("field_index");
var fieldInc = Ext.getCmp("field_incre");
var sizeEdit = Ext.getCmp("sizeEdit");
editorFieldsEnableDisable(fieldTypeValue, fieldIndex, fieldInc, sizeEdit);
},
250
);
}
});
@@ -1169,14 +1209,15 @@ function addColumn()
var PMRow = assignedGrid.getStore().recordType;
var row = new PMRow({
uid : '',
field_uid : '',
field_dyn : '',
uid : '',
field_uid : '',
field_dyn : '',
field_name : '',
field_label : '',
field_type : '',
field_size : '',
field_key : 0,
field_index : 0,
field_null : 1
});
var len = assignedGrid.getStore().data.length;
@@ -1196,6 +1237,93 @@ function removeColumn()
});
}
function editorFieldsEnableDisable(fieldTypeValue, fieldIndex, fieldInc, sizeEdit)
{
var swSize = 1; //Enable
var swNull = 1;
var swPK = 1;
var swAI = 1;
var swI = 1;
//Date
if (fieldTypeValue == "DATE" || fieldTypeValue == "DATETIME" || fieldTypeValue == "TIME") {
swSize = 0; //Disable
swPK = 0;
swAI = 0;
swI = 0;
}
//Numbers
if (fieldTypeValue == "INTEGER" || fieldTypeValue == "BIGINT") {
//Enable All
}
if (fieldTypeValue == "TINYINT" || fieldTypeValue == "SMALLINT") {
swSize = 0;
}
if (fieldTypeValue == "DECIMAL" || fieldTypeValue == "FLOAT") {
swPK = 0;
swAI = 0;
swI = 0;
}
if (fieldTypeValue == "DOUBLE" || fieldTypeValue == "REAL") {
swSize = 0;
swPK = 0;
swAI = 0;
swI = 0;
}
//String
if (fieldTypeValue == "CHAR" || fieldTypeValue == "VARCHAR") {
swAI = 0;
}
if (fieldTypeValue == "LONGVARCHAR") {
swPK = 0;
swAI = 0;
swI = 0;
}
//Boolean
if (fieldTypeValue == "BOOLEAN") {
swSize = 0;
swNull = 0;
swPK = 0;
swAI = 0;
swI = 0;
}
if (swI == 1) {
fieldIndex.enable();
} else {
fieldIndex.disable();
fieldIndex.setValue(false);
}
if (swAI == 1) {
fieldInc.enable();
} else {
fieldInc.disable();
fieldInc.setValue(false);
}
if (swSize == 1) {
sizeEdit.enable();
if (fieldTypeValue == "CHAR" || fieldTypeValue == "VARCHAR" || fieldTypeValue == "LONGVARCHAR") {
sizeEdit.setMaxValue(((fieldTypeValue == "CHAR") ? 255 : 999));
sizeEdit.getEl().dom.maxLength = 3;
} else {
sizeEdit.setMaxValue(99);
sizeEdit.getEl().dom.maxLength = 2;
}
} else {
sizeEdit.disable();
sizeEdit.setValue("");
}
}
////ASSIGNBUTON FUNCTIONALITY
AssignFieldsAction = function(){
records = Ext.getCmp('availableGrid').getSelectionModel().getSelections();
@@ -1342,18 +1470,19 @@ function setReportFields(records) {
typeField = 'INTEGER';
}
var row = new PMRow({
uid : '',
_index : records[i].data['_index'] !== '' ? records[i].data['_index'] : records[i].data['FIELD_DYN'],
field_uid : records[i].data['FIELD_UID'],
field_dyn : records[i].data['FIELD_NAME'],
field_name : records[i].data['FIELD_NAME'].toUpperCase(),
field_label : records[i].data['FIELD_NAME'].toUpperCase(),
field_type : typeField,
field_size : sizeField,
field_key : 0,
field_null : 1,
field_filter: 0,
field_autoincrement : 0
uid : '',
_index : records[i].data['_index'] !== '' ? records[i].data['_index'] : records[i].data['FIELD_DYN'],
field_uid : records[i].data['FIELD_UID'],
field_dyn : records[i].data['FIELD_NAME'],
field_name : records[i].data['FIELD_NAME'].toUpperCase(),
field_label : records[i].data['FIELD_NAME'].toUpperCase(),
field_type : typeField,
field_size : sizeField,
field_key : 0,
field_index : 0,
field_null : 1,
field_filter : 0,
field_autoincrement : 0
});
store.add(row);
@@ -1464,18 +1593,19 @@ function loadTableRowsFromArray(records)
}
var row = new PMRow({
uid : records[i].FLD_UID,
field_uid : records[i].FLD_DYN_UID,
field_dyn : records[i].FLD_DYN_NAME,
field_name : records[i].FLD_NAME,
field_label: records[i].FLD_DESCRIPTION,
field_type : records[i].FLD_TYPE,
field_size : records[i].FLD_SIZE,
field_key : records[i].FLD_KEY,
field_null : records[i].FLD_NULL,
field_autoincrement : records[i].FLD_AUTO_INCREMENT == '1' ? true : false,
field_filter: records[i].FLD_FILTER == '1' ? true : false,
_index : ''
uid : records[i].FLD_UID,
field_uid : records[i].FLD_DYN_UID,
field_dyn : records[i].FLD_DYN_NAME,
field_name : records[i].FLD_NAME,
field_label : records[i].FLD_DESCRIPTION,
field_type : records[i].FLD_TYPE,
field_size : records[i].FLD_SIZE,
field_key : records[i].FLD_KEY,
field_index : records[i].FLD_TABLE_INDEX == '1' ? true : false,
field_null : records[i].FLD_NULL,
field_autoincrement : records[i].FLD_AUTO_INCREMENT == '1' ? true : false,
field_filter : records[i].FLD_FILTER == '1' ? true : false,
_index : ''
});
store.add(row);