Updating oauth local auth.
This commit is contained in:
@@ -1,20 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm width="100%" menu="additionalTables/additionalTablesOptions">
|
||||
|
||||
<ADD_TAB_UID type="private" showInTable="0"/>
|
||||
|
||||
<ADD_TAB_NAME type="text" colWidth="200" titleAlign="left" align="left">
|
||||
<en>Name</en>
|
||||
</ADD_TAB_NAME>
|
||||
|
||||
<ADD_TAB_DESCRIPTION type="text" colWidth="300" titleAlign="left" align="left">
|
||||
<en>Description</en>
|
||||
</ADD_TAB_DESCRIPTION>
|
||||
|
||||
<EDIT type="link" colWidth="40" value="@G::LoadTranslation(ID_EDIT)" link="additionalTablesEdit?sUID=@#ADD_TAB_UID" onclick=""><en></en></EDIT>
|
||||
|
||||
<DATA type="link" colWidth="40" value="@G::LoadTranslation(ID_DATA)" link="additionalTablesData?sUID=@#ADD_TAB_UID" onclick=""/>
|
||||
|
||||
<DELETE type="link" colWidth="40" value="@G::LoadTranslation(ID_DELETE)" link="#" onclick="additionalTablesDelete(@QADD_TAB_UID);return false;"><en></en></DELETE>
|
||||
|
||||
</dynaForm>
|
||||
<ADD_TAB_UID type="private" showInTable="0"/>
|
||||
<ADD_TAB_NAME type="text" colWidth="200" titleAlign="left" align="left">
|
||||
<en><![CDATA[Name]]></en>
|
||||
</ADD_TAB_NAME>
|
||||
<ADD_TAB_DESCRIPTION type="text" colWidth="300" titleAlign="left" align="left">
|
||||
<en><![CDATA[Description]]></en>
|
||||
</ADD_TAB_DESCRIPTION>
|
||||
<EDIT type="link" colWidth="40" value="@G::LoadTranslation(ID_EDIT)" link="additionalTablesEdit?sUID=@#ADD_TAB_UID" onclick="">
|
||||
<en><![CDATA[]]></en>
|
||||
</EDIT>
|
||||
<DATA type="link" colWidth="40" value="@G::LoadTranslation(ID_DATA)" link="additionalTablesData?sUID=@#ADD_TAB_UID" onclick=""/>
|
||||
<DELETE type="link" colWidth="40" value="@G::LoadTranslation(ID_DELETE)" link="#" onclick="additionalTablesDelete(@QADD_TAB_UID);return false;">
|
||||
<en><![CDATA[]]></en>
|
||||
</DELETE>
|
||||
</dynaForm>
|
||||
|
||||
@@ -1,31 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm name="additionalTables/additionalTablesDataImportForm" type="xmlform" width="500" enableTemplate="1">
|
||||
|
||||
<TITLE type="title">
|
||||
<en>Import Data from CSV file</en>
|
||||
</TITLE>
|
||||
|
||||
<ADD_TAB_UID type="hidden"/>
|
||||
|
||||
<CSV_FILE type="file" required="1">
|
||||
<en>CSV File</en>
|
||||
</CSV_FILE>
|
||||
|
||||
<CSV_DELIMITER type="dropdown">
|
||||
<en>Delimited by<option name=";">SemiColon (;)</option><option name=",">Comma (,)</option></en>
|
||||
</CSV_DELIMITER>
|
||||
|
||||
<btnSave type="submit">
|
||||
<en>Save</en>
|
||||
</btnSave>
|
||||
<BTN_CANCEL type="button" onclick="cancel();">
|
||||
<en>Cancel</en>
|
||||
</BTN_CANCEL>
|
||||
|
||||
<JS type="javascript" replacetags="1"><![CDATA[
|
||||
|
||||
function cancel(){
|
||||
window.location = 'additionalTablesData?sUID=@#ADD_TAB_UID';
|
||||
}
|
||||
]]></JS>
|
||||
</dynaForm>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm name="additionalTables/additionalTablesDataImportForm" type="xmlform" width="500" enableTemplate="1">
|
||||
<TITLE type="title">
|
||||
<en><![CDATA[Import Data from CSV file]]></en>
|
||||
</TITLE>
|
||||
<ADD_TAB_UID type="hidden"/>
|
||||
<CSV_FILE type="file" required="1">
|
||||
<en><![CDATA[CSV File]]></en>
|
||||
</CSV_FILE>
|
||||
<CSV_DELIMITER type="dropdown">
|
||||
<en><![CDATA[Delimited by]]><option name=";"><![CDATA[SemiColon (;)]]></option><option name=","><![CDATA[Comma (,)]]></option></en>
|
||||
</CSV_DELIMITER>
|
||||
<btnSave type="submit">
|
||||
<en><![CDATA[Save]]></en>
|
||||
</btnSave>
|
||||
<BTN_CANCEL type="button" onclick="cancel();">
|
||||
<en><![CDATA[Cancel]]></en>
|
||||
</BTN_CANCEL>
|
||||
<JS type="javascript" replacetags="1"><![CDATA[
|
||||
|
||||
function cancel(){
|
||||
window.location = 'additionalTablesData?sUID=@#ADD_TAB_UID';
|
||||
}
|
||||
]]></JS>
|
||||
</dynaForm>
|
||||
|
||||
@@ -1,351 +1,331 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm name="additionalTables/additionalTablesEdit" type="xmlform" width="900" mode="" enableTemplate="1">
|
||||
|
||||
<TITLE1 type="title">
|
||||
<en>Table Information</en>
|
||||
</TITLE1>
|
||||
|
||||
<ADD_TAB_UID type="hidden" />
|
||||
|
||||
<ADD_TAB_NAME type="text" size="60" maxlength="64" validate="Field" required="1" mode="view">
|
||||
<en>Table Name</en>
|
||||
</ADD_TAB_NAME>
|
||||
<!-- renamed text by hidden -->
|
||||
<ADD_TAB_CLASS_NAME type="hidden" size="60" maxlength="100" validate="Field" required="1" mode="view">
|
||||
<en>PHP Class Name</en>
|
||||
</ADD_TAB_CLASS_NAME>
|
||||
|
||||
<ADD_TAB_DESCRIPTION type="textarea" cols="70" rows="5" required="0">
|
||||
<en>Description</en>
|
||||
</ADD_TAB_DESCRIPTION>
|
||||
|
||||
<TITLE2 type="title">
|
||||
<en>Log Configuration</en>
|
||||
</TITLE2>
|
||||
|
||||
<ADD_TAB_SDW_LOG_INSERT type="checkbox" defaultValue="on">
|
||||
<en>Save log for insert actions</en>
|
||||
</ADD_TAB_SDW_LOG_INSERT>
|
||||
|
||||
<ADD_TAB_SDW_LOG_UPDATE type="checkbox" defaultValue="on">
|
||||
<en>Save log for update actions</en>
|
||||
</ADD_TAB_SDW_LOG_UPDATE>
|
||||
|
||||
<ADD_TAB_SDW_LOG_DELETE type="checkbox" defaultValue="on">
|
||||
<en>Save log for delete actions</en>
|
||||
</ADD_TAB_SDW_LOG_DELETE>
|
||||
|
||||
<!--<ADD_TAB_SDW_LOG_SELECT type="checkbox" defaultValue="off">
|
||||
<en>Save log for select actions</en>
|
||||
</ADD_TAB_SDW_LOG_SELECT>
|
||||
|
||||
<ADD_TAB_SDW_MAX_LENGTH type="text" size="5" maxlength="10" required="1" defaultValue="-1">
|
||||
<en>Maximun rows to store (-1 for unlimited)</en>
|
||||
</ADD_TAB_SDW_MAX_LENGTH>-->
|
||||
|
||||
<ADD_TAB_SDW_AUTO_DELETE type="checkbox" defaultValue="off">
|
||||
<en>Delete related log when table is deleted</en>
|
||||
</ADD_TAB_SDW_AUTO_DELETE>
|
||||
|
||||
<!--<ADD_TAB_STATUS type="hidden" defaultValue="ACTIVE" />-->
|
||||
|
||||
<TITLE3 type="title">
|
||||
<en>Fields</en>
|
||||
</TITLE3>
|
||||
|
||||
<FIELDS type="grid" xmlgrid="additionalTables/additionalTablesFields2" addrow="1" deleterow="1" mode="edit" />
|
||||
|
||||
<btnSave type="button" onclick="verifyData(this.form);">
|
||||
<en>Save</en>
|
||||
</btnSave>
|
||||
|
||||
<BTN_CANCEL type="button" onclick="cancel();">
|
||||
<en>Cancel</en>
|
||||
</BTN_CANCEL>
|
||||
|
||||
<JS type="javascript">
|
||||
<![CDATA[
|
||||
var onChangeType = function(iRow, bEmpty) {
|
||||
var iRow = iRow | this.name.split('][')[1];
|
||||
var oAux;
|
||||
switch (getGridField('FIELDS', iRow, 'FLD_TYPE').value) {
|
||||
case 'VARCHAR':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.readOnly = '';
|
||||
break;
|
||||
case 'TEXT':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.value = '';
|
||||
oAux.readOnly = 'readOnly';
|
||||
break;
|
||||
case 'DATE':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.value = '';
|
||||
oAux.readOnly = 'readOnly';
|
||||
break;
|
||||
case 'INT':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.readOnly = '';
|
||||
break;
|
||||
case 'FLOAT':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.readOnly = '';
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
var verifyData = function(oForm) {
|
||||
if (oForm.onsubmit()) {
|
||||
var bContinue = true;
|
||||
var iMessage = 0;
|
||||
var iRows = Number_Rows_Grid('FIELDS', 'FLD_UID');
|
||||
var fieldsTmp = [];
|
||||
var words = '';
|
||||
var aReservedWords = new Array('ADD','ALL','ALTER','ANALYZE','AND','AS','ASC','ASENSITIVE','BEFORE',
|
||||
'BETWEEN','BIGINT','BINARY','BLOB','BOTH','BY','CALL','CASCADE','CASE',
|
||||
'CHANGE','CHAR','CHARACTER','CHECK','COLLATE','COLUMN','CONDITION',
|
||||
'CONSTRAINT','CONTINUE','CONVERT','CREATE','CROSS','CURRENT_DATE',
|
||||
'CURRENT_TIME','CURRENT_TIMESTAMP','CURRENT_USER','CURSOR','DATABASE',
|
||||
'DATABASES','DAY_HOUR','DAY_MICROSECOND','DAY_MINUTE','DAY_SECOND','DEC',
|
||||
'DECIMAL','DECLARE','DEFAULT','DELAYED','DELETE','DESC','DESCRIBE',
|
||||
'DETERMINISTIC','DISTINCT','DISTINCTROW','DIV','DOUBLE','DROP','DUAL',
|
||||
'EACH','ELSE','ELSEIF','ENCLOSED','ESCAPED','EXISTS','EXIT','EXPLAIN',
|
||||
'FALSE','FETCH','FLOAT','FLOAT4','FLOAT8','FOR','FORCE','FOREIGN','FROM',
|
||||
'FULLTEXT','GRANT','GROUP','HAVING','HIGH_PRIORITY','HOUR_MICROSECOND',
|
||||
'HOUR_MINUTE','HOUR_SECOND','IF','IGNORE','IN','INDEX','INFILE','INNER',
|
||||
'INOUT','INSENSITIVE','INSERT','INT','INT1','INT2','INT3','INT4','INT8',
|
||||
'INTEGER','INTERVAL','INTO','IS','ITERATE','JOIN','KEY','KEYS','KILL',
|
||||
'LEADING','LEAVE','LEFT','LIKE','LIMIT','LINES','LOAD','LOCALTIME',
|
||||
'LOCALTIMESTAMP','LOCK','LONG','LONGBLOB','LONGTEXT','LOOP','LOW_PRIORITY',
|
||||
'MATCH','MEDIUMBLOB','MEDIUMINT','MEDIUMTEXT','MIDDLEINT','MINUTE_MICROSECOND',
|
||||
'MINUTE_SECOND','MOD','MODIFIES','NATURAL','NOT','NO_WRITE_TO_BINLOG','NULL',
|
||||
'NUMERIC','ON','OPTIMIZE','OPTION','OPTIONALLY','OR','ORDER','OUT','OUTER',
|
||||
'OUTFILE','PRECISION','PRIMARY','PROCEDURE','PURGE','READ','READS','REAL',
|
||||
'REFERENCES','REGEXP','RELEASE','RENAME','REPEAT','REPLACE','REQUIRE',
|
||||
'RESTRICT','RETURN','REVOKE','RIGHT','RLIKE','SCHEMA','SCHEMAS','SECOND_MICROSECOND',
|
||||
'SELECT','SENSITIVE','SEPARATOR','SET','SHOW','SMALLINT','SONAME','SPATIAL',
|
||||
'SPECIFIC','SQL','SQLEXCEPTION','SQLSTATE','SQLWARNING','SQL_BIG_RESULT',
|
||||
'SQL_CALC_FOUND_ROWS','SQL_SMALL_RESULT','SSL','STARTING','STRAIGHT_JOIN',
|
||||
'TABLE','TERMINATED','THEN','TINYBLOB','TINYINT','TINYTEXT','TO','TRAILING',
|
||||
'TRIGGER','TRUE','UNDO','UNION','UNIQUE','UNLOCK','UNSIGNED','UPDATE','USAGE',
|
||||
'USE','USING','UTC_DATE','UTC_TIME','UTC_TIMESTAMP','VALUES','VARBINARY',
|
||||
'VARCHAR','VARCHARACTER','VARYING','WHEN','WHERE','WHILE','WITH','WRITE',
|
||||
'XOR','YEAR_MONTH','ZEROFILL','ASENSITIVE','CALL','CONDITION','CONTINUE',
|
||||
'CURSOR','DECLARE','DETERMINISTIC','EACH','ELSEIF','EXIT','FETCH','INOUT',
|
||||
'INSENSITIVE','ITERATE','LEAVE','LOOP','MODIFIES','OUT','READS','RELEASE',
|
||||
'REPEAT','RETURN','SCHEMA','SCHEMAS','SENSITIVE','SPECIFIC','SQL',
|
||||
'SQLEXCEPTION','SQLSTATE','SQLWARNING','TRIGGER','UNDO','WHILE');
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
for(var j = 0; j < aReservedWords.length; j++ ) {
|
||||
if(getGridField('FIELDS', i, 'FLD_NAME').value == aReservedWords[j]) {
|
||||
words = words +" "+getGridField('FIELDS', i, 'FLD_NAME').value;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (words != ''){
|
||||
new leimnud.module.app.alert().make({
|
||||
label:G_STRINGS.ID_FIELDS_RESERVED_WORDS + ' ' + words
|
||||
});
|
||||
words='';
|
||||
bContinue = false;
|
||||
}
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
if (getGridField('FIELDS', i, 'FLD_NAME').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 1;
|
||||
}
|
||||
if (bContinue) {
|
||||
switch (getGridField('FIELDS', i, 'FLD_TYPE').value) {
|
||||
case 'VARCHAR':
|
||||
if (getGridField('FIELDS', i, 'FLD_SIZE').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 2;
|
||||
}
|
||||
break;
|
||||
case 'TEXT':
|
||||
if (getGridField('FIELDS', i, 'FLD_KEY').checked ) {
|
||||
bContinue = false;
|
||||
iMessage = 4;
|
||||
}
|
||||
break;
|
||||
case 'DATE':
|
||||
break;
|
||||
case 'INT':
|
||||
if (getGridField('FIELDS', i, 'FLD_SIZE').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 2;
|
||||
}
|
||||
break;
|
||||
case 'FLOAT':
|
||||
if (getGridField('FIELDS', i, 'FLD_SIZE').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Check duplicate fields
|
||||
if(bContinue) {
|
||||
if(!(getGridField('FIELDS', i, 'FLD_NAME').value in fieldsTmp)) {
|
||||
fieldsTmp[getGridField('FIELDS', i, 'FLD_NAME').value]++;
|
||||
} else {
|
||||
bContinue = false;
|
||||
iMessage = 5;
|
||||
sDuplicate = getGridField('FIELDS', i, 'FLD_NAME').value;
|
||||
}
|
||||
}
|
||||
if(bContinue){
|
||||
var sFldName = getGridField('FIELDS', i, 'FLD_NAME').value;
|
||||
var sFirstCharFldName = sFldName.charAt(0);
|
||||
pattern =/[A-Za-z_]/;
|
||||
if(pattern.test(sFirstCharFldName) == false) {
|
||||
bContinue = false;
|
||||
iMessage = 6;
|
||||
sInvalidField = getGridField('FIELDS', i, 'FLD_NAME').value;
|
||||
}
|
||||
}
|
||||
}
|
||||
var bContinueKey = false;
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
if (getGridField('FIELDS', i, 'FLD_KEY').checked) {
|
||||
bContinueKey = true;
|
||||
}
|
||||
if (getGridField('FIELDS', i, 'FLD_KEY').checked) {
|
||||
getGridField('FIELDS', i, 'FLD_KEY_HDN').value = "on" ;
|
||||
}
|
||||
if (getGridField('FIELDS', i, 'FLD_NULL').checked) {
|
||||
getGridField('FIELDS', i, 'FLD_NULL_HDN').value = "on" ;
|
||||
}
|
||||
}
|
||||
if (bContinue && bContinueKey) {
|
||||
oForm.submit();
|
||||
}
|
||||
else {
|
||||
if (!bContinue) {
|
||||
switch (iMessage) {
|
||||
case 1:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_NAME_REQUIRED)"
|
||||
});
|
||||
break;
|
||||
case 2:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_SIZE_REQUIRED)"
|
||||
});
|
||||
break;
|
||||
case 3:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:G_STRINGS.ID_FIELD_FOREIGN_TABLE
|
||||
});
|
||||
break;
|
||||
case 4:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_CANNOT_BE_PRIMARY_KEY)"
|
||||
});
|
||||
break;
|
||||
case 5:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_DUPLICATE)" + " " + sDuplicate
|
||||
});
|
||||
break;
|
||||
case 6:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_INVALID)" + " " + sInvalidField
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_KEY_TABLE)"
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var changeValues = function(iRow, sType) {
|
||||
iRow = parseInt(iRow);
|
||||
switch (sType) {
|
||||
case 'UP':
|
||||
if (iRow == 1) {
|
||||
return;
|
||||
}
|
||||
var iOtherRow = iRow - 1;
|
||||
break;
|
||||
case 'DOWN':
|
||||
if (iRow == Number_Rows_Grid('FIELDS', 'FLD_UID')) {
|
||||
return;
|
||||
}
|
||||
var iOtherRow = iRow + 1;
|
||||
break;
|
||||
}
|
||||
|
||||
var FLD_UID = getGridField('FIELDS', iOtherRow, 'FLD_UID').value;
|
||||
var FLD_NAME = getGridField('FIELDS', iOtherRow, 'FLD_NAME').value;
|
||||
var FLD_DESCRIPTION = getGridField('FIELDS', iOtherRow, 'FLD_DESCRIPTION').value;
|
||||
var FLD_TYPE = getGridField('FIELDS', iOtherRow, 'FLD_TYPE').value;
|
||||
var FLD_SIZE = getGridField('FIELDS', iOtherRow, 'FLD_SIZE').value;
|
||||
var FLD_NULL = getGridField('FIELDS', iOtherRow, 'FLD_NULL').checked;
|
||||
var FLD_KEY = getGridField('FIELDS', iOtherRow, 'FLD_KEY').checked;
|
||||
|
||||
var FLD_NULL_HDN = getGridField('FIELDS', iOtherRow, 'FLD_NULL_HDN').value;
|
||||
var FLD_KEY_HDN = getGridField('FIELDS', iOtherRow, 'FLD_KEY_HDN').value;
|
||||
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_UID').value = getGridField('FIELDS', iRow, 'FLD_UID').value;
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_NAME').value = getGridField('FIELDS', iRow, 'FLD_NAME').value;
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_DESCRIPTION').value = getGridField('FIELDS', iRow, 'FLD_DESCRIPTION').value;
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_TYPE').value = getGridField('FIELDS', iRow, 'FLD_TYPE').value;
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_SIZE').value = getGridField('FIELDS', iRow, 'FLD_SIZE').value;
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_NULL').checked = getGridField('FIELDS', iRow, 'FLD_NULL').checked;
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_KEY').checked = getGridField('FIELDS', iRow, 'FLD_KEY').checked;
|
||||
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_NULL_HDN').value = getGridField('FIELDS', iRow, 'FLD_NULL_HDN').value;
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_KEY_HDN').value = getGridField('FIELDS', iRow, 'FLD_KEY_HDN').value;
|
||||
|
||||
|
||||
getGridField('FIELDS', iRow, 'FLD_UID').value = FLD_UID;
|
||||
getGridField('FIELDS', iRow, 'FLD_NAME').value = FLD_NAME;
|
||||
getGridField('FIELDS', iRow, 'FLD_DESCRIPTION').value = FLD_DESCRIPTION;
|
||||
getGridField('FIELDS', iRow, 'FLD_TYPE').value = FLD_TYPE;
|
||||
getGridField('FIELDS', iRow, 'FLD_SIZE').value = FLD_SIZE;
|
||||
getGridField('FIELDS', iRow, 'FLD_NULL').checked = FLD_NULL;
|
||||
getGridField('FIELDS', iRow, 'FLD_KEY').checked = FLD_KEY;
|
||||
|
||||
getGridField('FIELDS', iRow, 'FLD_NULL_HDN').value = FLD_NULL_HDN;
|
||||
getGridField('FIELDS', iRow, 'FLD_KEY_HDN').value = FLD_KEY_HDN;
|
||||
|
||||
|
||||
onChangeType(iRow, false);
|
||||
onChangeType(iOtherRow, false);
|
||||
};
|
||||
|
||||
function LoadPMTable() {
|
||||
//Adding events for the grid fields
|
||||
var iRows = Number_Rows_Grid('FIELDS', 'FLD_UID');
|
||||
var oAux;
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
oAux = getGridField('FIELDS', i, 'FLD_TYPE');
|
||||
leimnud.event.add(oAux, 'change', {method:onChangeType,instance:oAux,event:true});
|
||||
onChangeType(i, false);
|
||||
}
|
||||
getObject('FIELDS').onaddrow = function(iRow) {
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_TYPE');
|
||||
leimnud.event.add(oAux, 'change', {method:onChangeType,instance:oAux,event:true});
|
||||
onChangeType(iRow, true);
|
||||
document.getElementById('FIELDS').rows[iRow].getElementsByTagName('td')[10].innerHTML = document.getElementById('FIELDS').rows[1].getElementsByTagName('td')[10].innerHTML.replace('[1]', '[' + iRow + ']');
|
||||
document.getElementById('FIELDS').rows[iRow].getElementsByTagName('td')[11].innerHTML = document.getElementById('FIELDS').rows[1].getElementsByTagName('td')[11].innerHTML.replace('[1]', '[' + iRow + ']');
|
||||
};
|
||||
};
|
||||
|
||||
function cancel(){
|
||||
window.location = 'additionalTablesList';
|
||||
}
|
||||
|
||||
dynaformOnload = LoadPMTable;
|
||||
|
||||
]]>
|
||||
|
||||
</JS>
|
||||
|
||||
</dynaForm>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm name="additionalTables/additionalTablesEdit" type="xmlform" width="900" mode="" enableTemplate="1">
|
||||
<TITLE1 type="title">
|
||||
<en><![CDATA[Table Information]]></en>
|
||||
</TITLE1>
|
||||
<ADD_TAB_UID type="hidden"/>
|
||||
<ADD_TAB_NAME type="text" size="60" maxlength="64" validate="Field" required="1" mode="view">
|
||||
<en><![CDATA[Table Name]]></en>
|
||||
</ADD_TAB_NAME>
|
||||
<!-- renamed text by hidden -->
|
||||
<ADD_TAB_CLASS_NAME type="hidden" size="60" maxlength="100" validate="Field" required="1" mode="view">
|
||||
<en>PHP Class Name</en>
|
||||
</ADD_TAB_CLASS_NAME>
|
||||
<ADD_TAB_DESCRIPTION type="textarea" cols="70" rows="5" required="0">
|
||||
<en><![CDATA[Description]]></en>
|
||||
</ADD_TAB_DESCRIPTION>
|
||||
<TITLE2 type="title">
|
||||
<en><![CDATA[Log Configuration]]></en>
|
||||
</TITLE2>
|
||||
<ADD_TAB_SDW_LOG_INSERT type="checkbox" defaultValue="on">
|
||||
<en><![CDATA[Save log for insert actions]]></en>
|
||||
</ADD_TAB_SDW_LOG_INSERT>
|
||||
<ADD_TAB_SDW_LOG_UPDATE type="checkbox" defaultValue="on">
|
||||
<en><![CDATA[Save log for update actions]]></en>
|
||||
</ADD_TAB_SDW_LOG_UPDATE>
|
||||
<ADD_TAB_SDW_LOG_DELETE type="checkbox" defaultValue="on">
|
||||
<en><![CDATA[Save log for delete actions]]></en>
|
||||
</ADD_TAB_SDW_LOG_DELETE>
|
||||
<!--<ADD_TAB_SDW_LOG_SELECT type="checkbox" defaultValue="off">
|
||||
<en>Save log for select actions</en>
|
||||
</ADD_TAB_SDW_LOG_SELECT>
|
||||
|
||||
<ADD_TAB_SDW_MAX_LENGTH type="text" size="5" maxlength="10" required="1" defaultValue="-1">
|
||||
<en>Maximun rows to store (-1 for unlimited)</en>
|
||||
</ADD_TAB_SDW_MAX_LENGTH>-->
|
||||
<ADD_TAB_SDW_AUTO_DELETE type="checkbox" defaultValue="off">
|
||||
<en><![CDATA[Delete related log when table is deleted]]></en>
|
||||
</ADD_TAB_SDW_AUTO_DELETE>
|
||||
<!--<ADD_TAB_STATUS type="hidden" defaultValue="ACTIVE" />-->
|
||||
<TITLE3 type="title">
|
||||
<en><![CDATA[Fields]]></en>
|
||||
</TITLE3>
|
||||
<FIELDS type="grid" xmlgrid="additionalTables/additionalTablesFields2" addrow="1" deleterow="1" mode="edit"/>
|
||||
<btnSave type="button" onclick="verifyData(this.form);">
|
||||
<en><![CDATA[Save]]></en>
|
||||
</btnSave>
|
||||
<BTN_CANCEL type="button" onclick="cancel();">
|
||||
<en><![CDATA[Cancel]]></en>
|
||||
</BTN_CANCEL>
|
||||
<JS type="javascript"><![CDATA[
|
||||
var onChangeType = function(iRow, bEmpty) {
|
||||
var iRow = iRow | this.name.split('][')[1];
|
||||
var oAux;
|
||||
switch (getGridField('FIELDS', iRow, 'FLD_TYPE').value) {
|
||||
case 'VARCHAR':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.readOnly = '';
|
||||
break;
|
||||
case 'TEXT':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.value = '';
|
||||
oAux.readOnly = 'readOnly';
|
||||
break;
|
||||
case 'DATE':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.value = '';
|
||||
oAux.readOnly = 'readOnly';
|
||||
break;
|
||||
case 'INT':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.readOnly = '';
|
||||
break;
|
||||
case 'FLOAT':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.readOnly = '';
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
var verifyData = function(oForm) {
|
||||
if (oForm.onsubmit()) {
|
||||
var bContinue = true;
|
||||
var iMessage = 0;
|
||||
var iRows = Number_Rows_Grid('FIELDS', 'FLD_UID');
|
||||
var fieldsTmp = [];
|
||||
var words = '';
|
||||
var aReservedWords = new Array('ADD','ALL','ALTER','ANALYZE','AND','AS','ASC','ASENSITIVE','BEFORE',
|
||||
'BETWEEN','BIGINT','BINARY','BLOB','BOTH','BY','CALL','CASCADE','CASE',
|
||||
'CHANGE','CHAR','CHARACTER','CHECK','COLLATE','COLUMN','CONDITION',
|
||||
'CONSTRAINT','CONTINUE','CONVERT','CREATE','CROSS','CURRENT_DATE',
|
||||
'CURRENT_TIME','CURRENT_TIMESTAMP','CURRENT_USER','CURSOR','DATABASE',
|
||||
'DATABASES','DAY_HOUR','DAY_MICROSECOND','DAY_MINUTE','DAY_SECOND','DEC',
|
||||
'DECIMAL','DECLARE','DEFAULT','DELAYED','DELETE','DESC','DESCRIBE',
|
||||
'DETERMINISTIC','DISTINCT','DISTINCTROW','DIV','DOUBLE','DROP','DUAL',
|
||||
'EACH','ELSE','ELSEIF','ENCLOSED','ESCAPED','EXISTS','EXIT','EXPLAIN',
|
||||
'FALSE','FETCH','FLOAT','FLOAT4','FLOAT8','FOR','FORCE','FOREIGN','FROM',
|
||||
'FULLTEXT','GRANT','GROUP','HAVING','HIGH_PRIORITY','HOUR_MICROSECOND',
|
||||
'HOUR_MINUTE','HOUR_SECOND','IF','IGNORE','IN','INDEX','INFILE','INNER',
|
||||
'INOUT','INSENSITIVE','INSERT','INT','INT1','INT2','INT3','INT4','INT8',
|
||||
'INTEGER','INTERVAL','INTO','IS','ITERATE','JOIN','KEY','KEYS','KILL',
|
||||
'LEADING','LEAVE','LEFT','LIKE','LIMIT','LINES','LOAD','LOCALTIME',
|
||||
'LOCALTIMESTAMP','LOCK','LONG','LONGBLOB','LONGTEXT','LOOP','LOW_PRIORITY',
|
||||
'MATCH','MEDIUMBLOB','MEDIUMINT','MEDIUMTEXT','MIDDLEINT','MINUTE_MICROSECOND',
|
||||
'MINUTE_SECOND','MOD','MODIFIES','NATURAL','NOT','NO_WRITE_TO_BINLOG','NULL',
|
||||
'NUMERIC','ON','OPTIMIZE','OPTION','OPTIONALLY','OR','ORDER','OUT','OUTER',
|
||||
'OUTFILE','PRECISION','PRIMARY','PROCEDURE','PURGE','READ','READS','REAL',
|
||||
'REFERENCES','REGEXP','RELEASE','RENAME','REPEAT','REPLACE','REQUIRE',
|
||||
'RESTRICT','RETURN','REVOKE','RIGHT','RLIKE','SCHEMA','SCHEMAS','SECOND_MICROSECOND',
|
||||
'SELECT','SENSITIVE','SEPARATOR','SET','SHOW','SMALLINT','SONAME','SPATIAL',
|
||||
'SPECIFIC','SQL','SQLEXCEPTION','SQLSTATE','SQLWARNING','SQL_BIG_RESULT',
|
||||
'SQL_CALC_FOUND_ROWS','SQL_SMALL_RESULT','SSL','STARTING','STRAIGHT_JOIN',
|
||||
'TABLE','TERMINATED','THEN','TINYBLOB','TINYINT','TINYTEXT','TO','TRAILING',
|
||||
'TRIGGER','TRUE','UNDO','UNION','UNIQUE','UNLOCK','UNSIGNED','UPDATE','USAGE',
|
||||
'USE','USING','UTC_DATE','UTC_TIME','UTC_TIMESTAMP','VALUES','VARBINARY',
|
||||
'VARCHAR','VARCHARACTER','VARYING','WHEN','WHERE','WHILE','WITH','WRITE',
|
||||
'XOR','YEAR_MONTH','ZEROFILL','ASENSITIVE','CALL','CONDITION','CONTINUE',
|
||||
'CURSOR','DECLARE','DETERMINISTIC','EACH','ELSEIF','EXIT','FETCH','INOUT',
|
||||
'INSENSITIVE','ITERATE','LEAVE','LOOP','MODIFIES','OUT','READS','RELEASE',
|
||||
'REPEAT','RETURN','SCHEMA','SCHEMAS','SENSITIVE','SPECIFIC','SQL',
|
||||
'SQLEXCEPTION','SQLSTATE','SQLWARNING','TRIGGER','UNDO','WHILE');
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
for(var j = 0; j < aReservedWords.length; j++ ) {
|
||||
if(getGridField('FIELDS', i, 'FLD_NAME').value == aReservedWords[j]) {
|
||||
words = words +" "+getGridField('FIELDS', i, 'FLD_NAME').value;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (words != ''){
|
||||
new leimnud.module.app.alert().make({
|
||||
label:G_STRINGS.ID_FIELDS_RESERVED_WORDS + ' ' + words
|
||||
});
|
||||
words='';
|
||||
bContinue = false;
|
||||
}
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
if (getGridField('FIELDS', i, 'FLD_NAME').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 1;
|
||||
}
|
||||
if (bContinue) {
|
||||
switch (getGridField('FIELDS', i, 'FLD_TYPE').value) {
|
||||
case 'VARCHAR':
|
||||
if (getGridField('FIELDS', i, 'FLD_SIZE').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 2;
|
||||
}
|
||||
break;
|
||||
case 'TEXT':
|
||||
if (getGridField('FIELDS', i, 'FLD_KEY').checked ) {
|
||||
bContinue = false;
|
||||
iMessage = 4;
|
||||
}
|
||||
break;
|
||||
case 'DATE':
|
||||
break;
|
||||
case 'INT':
|
||||
if (getGridField('FIELDS', i, 'FLD_SIZE').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 2;
|
||||
}
|
||||
break;
|
||||
case 'FLOAT':
|
||||
if (getGridField('FIELDS', i, 'FLD_SIZE').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Check duplicate fields
|
||||
if(bContinue) {
|
||||
if(!(getGridField('FIELDS', i, 'FLD_NAME').value in fieldsTmp)) {
|
||||
fieldsTmp[getGridField('FIELDS', i, 'FLD_NAME').value]++;
|
||||
} else {
|
||||
bContinue = false;
|
||||
iMessage = 5;
|
||||
sDuplicate = getGridField('FIELDS', i, 'FLD_NAME').value;
|
||||
}
|
||||
}
|
||||
if(bContinue){
|
||||
var sFldName = getGridField('FIELDS', i, 'FLD_NAME').value;
|
||||
var sFirstCharFldName = sFldName.charAt(0);
|
||||
pattern =/[A-Za-z_]/;
|
||||
if(pattern.test(sFirstCharFldName) == false) {
|
||||
bContinue = false;
|
||||
iMessage = 6;
|
||||
sInvalidField = getGridField('FIELDS', i, 'FLD_NAME').value;
|
||||
}
|
||||
}
|
||||
}
|
||||
var bContinueKey = false;
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
if (getGridField('FIELDS', i, 'FLD_KEY').checked) {
|
||||
bContinueKey = true;
|
||||
}
|
||||
if (getGridField('FIELDS', i, 'FLD_KEY').checked) {
|
||||
getGridField('FIELDS', i, 'FLD_KEY_HDN').value = "on" ;
|
||||
}
|
||||
if (getGridField('FIELDS', i, 'FLD_NULL').checked) {
|
||||
getGridField('FIELDS', i, 'FLD_NULL_HDN').value = "on" ;
|
||||
}
|
||||
}
|
||||
if (bContinue && bContinueKey) {
|
||||
oForm.submit();
|
||||
}
|
||||
else {
|
||||
if (!bContinue) {
|
||||
switch (iMessage) {
|
||||
case 1:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_NAME_REQUIRED)"
|
||||
});
|
||||
break;
|
||||
case 2:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_SIZE_REQUIRED)"
|
||||
});
|
||||
break;
|
||||
case 3:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:G_STRINGS.ID_FIELD_FOREIGN_TABLE
|
||||
});
|
||||
break;
|
||||
case 4:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_CANNOT_BE_PRIMARY_KEY)"
|
||||
});
|
||||
break;
|
||||
case 5:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_DUPLICATE)" + " " + sDuplicate
|
||||
});
|
||||
break;
|
||||
case 6:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_INVALID)" + " " + sInvalidField
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_KEY_TABLE)"
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var changeValues = function(iRow, sType) {
|
||||
iRow = parseInt(iRow);
|
||||
switch (sType) {
|
||||
case 'UP':
|
||||
if (iRow == 1) {
|
||||
return;
|
||||
}
|
||||
var iOtherRow = iRow - 1;
|
||||
break;
|
||||
case 'DOWN':
|
||||
if (iRow == Number_Rows_Grid('FIELDS', 'FLD_UID')) {
|
||||
return;
|
||||
}
|
||||
var iOtherRow = iRow + 1;
|
||||
break;
|
||||
}
|
||||
|
||||
var FLD_UID = getGridField('FIELDS', iOtherRow, 'FLD_UID').value;
|
||||
var FLD_NAME = getGridField('FIELDS', iOtherRow, 'FLD_NAME').value;
|
||||
var FLD_DESCRIPTION = getGridField('FIELDS', iOtherRow, 'FLD_DESCRIPTION').value;
|
||||
var FLD_TYPE = getGridField('FIELDS', iOtherRow, 'FLD_TYPE').value;
|
||||
var FLD_SIZE = getGridField('FIELDS', iOtherRow, 'FLD_SIZE').value;
|
||||
var FLD_NULL = getGridField('FIELDS', iOtherRow, 'FLD_NULL').checked;
|
||||
var FLD_KEY = getGridField('FIELDS', iOtherRow, 'FLD_KEY').checked;
|
||||
|
||||
var FLD_NULL_HDN = getGridField('FIELDS', iOtherRow, 'FLD_NULL_HDN').value;
|
||||
var FLD_KEY_HDN = getGridField('FIELDS', iOtherRow, 'FLD_KEY_HDN').value;
|
||||
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_UID').value = getGridField('FIELDS', iRow, 'FLD_UID').value;
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_NAME').value = getGridField('FIELDS', iRow, 'FLD_NAME').value;
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_DESCRIPTION').value = getGridField('FIELDS', iRow, 'FLD_DESCRIPTION').value;
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_TYPE').value = getGridField('FIELDS', iRow, 'FLD_TYPE').value;
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_SIZE').value = getGridField('FIELDS', iRow, 'FLD_SIZE').value;
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_NULL').checked = getGridField('FIELDS', iRow, 'FLD_NULL').checked;
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_KEY').checked = getGridField('FIELDS', iRow, 'FLD_KEY').checked;
|
||||
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_NULL_HDN').value = getGridField('FIELDS', iRow, 'FLD_NULL_HDN').value;
|
||||
getGridField('FIELDS', iOtherRow, 'FLD_KEY_HDN').value = getGridField('FIELDS', iRow, 'FLD_KEY_HDN').value;
|
||||
|
||||
|
||||
getGridField('FIELDS', iRow, 'FLD_UID').value = FLD_UID;
|
||||
getGridField('FIELDS', iRow, 'FLD_NAME').value = FLD_NAME;
|
||||
getGridField('FIELDS', iRow, 'FLD_DESCRIPTION').value = FLD_DESCRIPTION;
|
||||
getGridField('FIELDS', iRow, 'FLD_TYPE').value = FLD_TYPE;
|
||||
getGridField('FIELDS', iRow, 'FLD_SIZE').value = FLD_SIZE;
|
||||
getGridField('FIELDS', iRow, 'FLD_NULL').checked = FLD_NULL;
|
||||
getGridField('FIELDS', iRow, 'FLD_KEY').checked = FLD_KEY;
|
||||
|
||||
getGridField('FIELDS', iRow, 'FLD_NULL_HDN').value = FLD_NULL_HDN;
|
||||
getGridField('FIELDS', iRow, 'FLD_KEY_HDN').value = FLD_KEY_HDN;
|
||||
|
||||
|
||||
onChangeType(iRow, false);
|
||||
onChangeType(iOtherRow, false);
|
||||
};
|
||||
|
||||
function LoadPMTable() {
|
||||
//Adding events for the grid fields
|
||||
var iRows = Number_Rows_Grid('FIELDS', 'FLD_UID');
|
||||
var oAux;
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
oAux = getGridField('FIELDS', i, 'FLD_TYPE');
|
||||
leimnud.event.add(oAux, 'change', {method:onChangeType,instance:oAux,event:true});
|
||||
onChangeType(i, false);
|
||||
}
|
||||
getObject('FIELDS').onaddrow = function(iRow) {
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_TYPE');
|
||||
leimnud.event.add(oAux, 'change', {method:onChangeType,instance:oAux,event:true});
|
||||
onChangeType(iRow, true);
|
||||
document.getElementById('FIELDS').rows[iRow].getElementsByTagName('td')[10].innerHTML = document.getElementById('FIELDS').rows[1].getElementsByTagName('td')[10].innerHTML.replace('[1]', '[' + iRow + ']');
|
||||
document.getElementById('FIELDS').rows[iRow].getElementsByTagName('td')[11].innerHTML = document.getElementById('FIELDS').rows[1].getElementsByTagName('td')[11].innerHTML.replace('[1]', '[' + iRow + ']');
|
||||
};
|
||||
};
|
||||
|
||||
function cancel(){
|
||||
window.location = 'additionalTablesList';
|
||||
}
|
||||
|
||||
dynaformOnload = LoadPMTable;
|
||||
|
||||
]]></JS>
|
||||
</dynaForm>
|
||||
|
||||
@@ -1,32 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm sqlConnection="" width="100%" rowsPerPage="11">
|
||||
|
||||
<ADD_TAB_UID type="CheckboxTable" colWidth="3" titleAlign="left" align="left" value="">
|
||||
<en/>
|
||||
</ADD_TAB_UID>
|
||||
|
||||
<ADD_TAB_NAME type="text" colWidth="200" titleAlign="left" align="left">
|
||||
<en>Name</en>
|
||||
</ADD_TAB_NAME>
|
||||
|
||||
<ADD_TAB_DESCRIPTION type="text" colWidth="300" titleAlign="left" align="left">
|
||||
<en>Description</en>
|
||||
</ADD_TAB_DESCRIPTION>
|
||||
|
||||
<ADD_SCHEMA type="checkboxpt" colWidth="5" value="@#ADD_TAB_UID">
|
||||
<en><![CDATA[Schema ]]></en>
|
||||
</ADD_SCHEMA>
|
||||
|
||||
<ADD_DATA type="checkboxpt" colWidth="5" value="@#ADD_TAB_UID">
|
||||
<en><![CDATA[Data ]]></en>
|
||||
</ADD_DATA>
|
||||
|
||||
<PAGED_TABLE_ID type="private" showInTable="0"/>
|
||||
|
||||
<JSFILTER type="javascript" replaceTags="1" showInTable="0">
|
||||
<ADD_TAB_UID type="CheckboxTable" colWidth="3" titleAlign="left" align="left" value="">
|
||||
<en/>
|
||||
</ADD_TAB_UID>
|
||||
<ADD_TAB_NAME type="text" colWidth="200" titleAlign="left" align="left">
|
||||
<en><![CDATA[Name]]></en>
|
||||
</ADD_TAB_NAME>
|
||||
<ADD_TAB_DESCRIPTION type="text" colWidth="300" titleAlign="left" align="left">
|
||||
<en><![CDATA[Description]]></en>
|
||||
</ADD_TAB_DESCRIPTION>
|
||||
<ADD_SCHEMA type="checkboxpt" colWidth="5" value="@#ADD_TAB_UID">
|
||||
<en><![CDATA[Schema ]]></en>
|
||||
</ADD_SCHEMA>
|
||||
<ADD_DATA type="checkboxpt" colWidth="5" value="@#ADD_TAB_UID">
|
||||
<en><![CDATA[Data ]]></en>
|
||||
</ADD_DATA>
|
||||
<PAGED_TABLE_ID type="private" showInTable="0"/>
|
||||
<JSFILTER type="javascript" replaceTags="1" showInTable="0">
|
||||
function pagedTableFilter( form ) {
|
||||
@#PAGED_TABLE_ID.doFilter( form );
|
||||
}
|
||||
</JSFILTER>
|
||||
|
||||
</dynaForm>
|
||||
</dynaForm>
|
||||
|
||||
@@ -1,35 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm type="grid" name="additionalTablesFields">
|
||||
|
||||
<FLD_UID type="text" size="1" style="display:none;"/>
|
||||
|
||||
<FLD_NAME type="text" size="15" maxlength="64" validate="Field" strto="UPPER">
|
||||
<en>Field Name</en>
|
||||
</FLD_NAME>
|
||||
|
||||
<FLD_DESCRIPTION type="text" size="20" maxlength="255">
|
||||
<en>Field Label</en>
|
||||
</FLD_DESCRIPTION>
|
||||
|
||||
<FLD_TYPE type="dropdown">
|
||||
<en>Type<option name="VARCHAR">VARCHAR</option><option name="TEXT">TEXT</option><option name="DATE">DATE</option><option name="INT">INT</option><option name="FLOAT">FLOAT</option></en>
|
||||
</FLD_TYPE>
|
||||
|
||||
<FLD_SIZE type="text" size="3" maxlength="3" validate="Int">
|
||||
<en>Size</en>
|
||||
</FLD_SIZE>
|
||||
|
||||
<FLD_NULL type="checkbox" defaultValue="on">
|
||||
<en>Null</en>
|
||||
</FLD_NULL>
|
||||
|
||||
<FLD_KEY type="checkbox" defaultValue="on">
|
||||
<en>Primary Key</en>
|
||||
</FLD_KEY>
|
||||
|
||||
<FLD_NULL_HDN type="hidden" defaultvalue="" mode="edit" btn_cancel="Cancel">
|
||||
<FLD_UID type="text" size="1" style="display:none;"/>
|
||||
<FLD_NAME type="text" size="15" maxlength="64" validate="Field" strto="UPPER">
|
||||
<en><![CDATA[Field Name]]></en>
|
||||
</FLD_NAME>
|
||||
<FLD_DESCRIPTION type="text" size="20" maxlength="255">
|
||||
<en><![CDATA[Field Label]]></en>
|
||||
</FLD_DESCRIPTION>
|
||||
<FLD_TYPE type="dropdown">
|
||||
<en><![CDATA[Type]]><option name="VARCHAR"><![CDATA[VARCHAR]]></option><option name="TEXT"><![CDATA[TEXT]]></option><option name="DATE"><![CDATA[DATE]]></option><option name="INT"><![CDATA[INT]]></option><option name="FLOAT"><![CDATA[FLOAT]]></option></en>
|
||||
</FLD_TYPE>
|
||||
<FLD_SIZE type="text" size="3" maxlength="3" validate="Int">
|
||||
<en><![CDATA[Size]]></en>
|
||||
</FLD_SIZE>
|
||||
<FLD_NULL type="checkbox" defaultValue="on">
|
||||
<en><![CDATA[Null]]></en>
|
||||
</FLD_NULL>
|
||||
<FLD_KEY type="checkbox" defaultValue="on">
|
||||
<en><![CDATA[Primary Key]]></en>
|
||||
</FLD_KEY>
|
||||
<FLD_NULL_HDN type="hidden" defaultvalue="" mode="edit" btn_cancel="Cancel">
|
||||
</FLD_NULL_HDN>
|
||||
<FLD_KEY_HDN type="hidden" defaultvalue="" mode="edit" btn_cancel="Cancel">
|
||||
<FLD_KEY_HDN type="hidden" defaultvalue="" mode="edit" btn_cancel="Cancel">
|
||||
</FLD_KEY_HDN>
|
||||
|
||||
</dynaForm>
|
||||
</dynaForm>
|
||||
|
||||
@@ -1,39 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm type="grid" name="additionalTablesFields2">
|
||||
|
||||
<FLD_UID type="text" size="1" style="display:none;"/>
|
||||
|
||||
<FLD_NAME type="text" size="15" maxlength="64" validate="Field" strto="UPPER">
|
||||
<en>Field Name</en>
|
||||
</FLD_NAME>
|
||||
|
||||
<FLD_DESCRIPTION type="text" size="20" maxlength="255">
|
||||
<en>Field Label</en>
|
||||
</FLD_DESCRIPTION>
|
||||
|
||||
<FLD_TYPE type="dropdown">
|
||||
<en>Type<option name="VARCHAR">VARCHAR</option><option name="TEXT">TEXT</option><option name="DATE">DATE</option><option name="INT">INT</option><option name="FLOAT">FLOAT</option></en>
|
||||
</FLD_TYPE>
|
||||
|
||||
<FLD_SIZE type="text" size="3" maxlength="3" validate="Int">
|
||||
<en>Size</en>
|
||||
</FLD_SIZE>
|
||||
|
||||
<FLD_NULL type="checkbox" defaultValue="on">
|
||||
<en>Null</en>
|
||||
</FLD_NULL>
|
||||
|
||||
<FLD_KEY type="checkbox" defaultValue="on">
|
||||
<en>Primary Key</en>
|
||||
</FLD_KEY>
|
||||
|
||||
<FLD_NULL_HDN type="hidden" defaultvalue="" mode="edit" btn_cancel="Cancel">
|
||||
<FLD_UID type="text" size="1" style="display:none;"/>
|
||||
<FLD_NAME type="text" size="15" maxlength="64" validate="Field" strto="UPPER">
|
||||
<en><![CDATA[Field Name]]></en>
|
||||
</FLD_NAME>
|
||||
<FLD_DESCRIPTION type="text" size="20" maxlength="255">
|
||||
<en><![CDATA[Field Label]]></en>
|
||||
</FLD_DESCRIPTION>
|
||||
<FLD_TYPE type="dropdown">
|
||||
<en><![CDATA[Type]]><option name="VARCHAR"><![CDATA[VARCHAR]]></option><option name="TEXT"><![CDATA[TEXT]]></option><option name="DATE"><![CDATA[DATE]]></option><option name="INT"><![CDATA[INT]]></option><option name="FLOAT"><![CDATA[FLOAT]]></option></en>
|
||||
</FLD_TYPE>
|
||||
<FLD_SIZE type="text" size="3" maxlength="3" validate="Int">
|
||||
<en><![CDATA[Size]]></en>
|
||||
</FLD_SIZE>
|
||||
<FLD_NULL type="checkbox" defaultValue="on">
|
||||
<en><![CDATA[Null]]></en>
|
||||
</FLD_NULL>
|
||||
<FLD_KEY type="checkbox" defaultValue="on">
|
||||
<en><![CDATA[Primary Key]]></en>
|
||||
</FLD_KEY>
|
||||
<FLD_NULL_HDN type="hidden" defaultvalue="" mode="edit" btn_cancel="Cancel">
|
||||
</FLD_NULL_HDN>
|
||||
<FLD_KEY_HDN type="hidden" defaultvalue="" mode="edit" btn_cancel="Cancel">
|
||||
<FLD_KEY_HDN type="hidden" defaultvalue="" mode="edit" btn_cancel="Cancel">
|
||||
</FLD_KEY_HDN>
|
||||
|
||||
<FLD_UP_LINK type="link" link="#" onclick="changeValues(this.id.split('][')[1], 'UP');return false;" value="@G::LoadTranslation(ID_UP)"/>
|
||||
|
||||
<FLD_DOWN_LINK type="link" link="#" onclick="changeValues(this.id.split('][')[1], 'DOWN');return false;" value="@G::LoadTranslation(ID_DOWN)"/>
|
||||
|
||||
</dynaForm>
|
||||
<FLD_UP_LINK type="link" link="#" onclick="changeValues(this.id.split('][')[1], 'UP');return false;" value="@G::LoadTranslation(ID_UP)"/>
|
||||
<FLD_DOWN_LINK type="link" link="#" onclick="changeValues(this.id.split('][')[1], 'DOWN');return false;" value="@G::LoadTranslation(ID_DOWN)"/>
|
||||
</dynaForm>
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm width="100%" menu="additionalTables/additionalTablesOptions">
|
||||
|
||||
<ADD_TAB_UID type="private" showInTable="0"/>
|
||||
|
||||
<ADD_TAB_NAME type="text" colWidth="200" titleAlign="left" align="left">
|
||||
<en>Name</en>
|
||||
</ADD_TAB_NAME>
|
||||
|
||||
<ADD_TAB_DESCRIPTION type="text" colWidth="300" titleAlign="left" align="left">
|
||||
<en>Description</en>
|
||||
</ADD_TAB_DESCRIPTION>
|
||||
|
||||
<EDIT type="link" colWidth="40" value="@G::LoadTranslation(ID_EDIT)" link="additionalTablesEdit?sUID=@#ADD_TAB_UID" onclick=""><en></en></EDIT>
|
||||
|
||||
<DATA type="link" colWidth="40" value="@G::LoadTranslation(ID_DATA)" link="additionalTablesData?sUID=@#ADD_TAB_UID" onclick=""/>
|
||||
|
||||
<DELETE type="link" colWidth="40" value="@G::LoadTranslation(ID_DELETE)" link="#" onclick="additionalTablesDelete(@QADD_TAB_UID);return false;"><en></en></DELETE>
|
||||
|
||||
</dynaForm>
|
||||
<ADD_TAB_UID type="private" showInTable="0"/>
|
||||
<ADD_TAB_NAME type="text" colWidth="200" titleAlign="left" align="left">
|
||||
<en><![CDATA[Name]]></en>
|
||||
</ADD_TAB_NAME>
|
||||
<ADD_TAB_DESCRIPTION type="text" colWidth="300" titleAlign="left" align="left">
|
||||
<en><![CDATA[Description]]></en>
|
||||
</ADD_TAB_DESCRIPTION>
|
||||
<EDIT type="link" colWidth="40" value="@G::LoadTranslation(ID_EDIT)" link="additionalTablesEdit?sUID=@#ADD_TAB_UID" onclick="">
|
||||
<en><![CDATA[]]></en>
|
||||
</EDIT>
|
||||
<DATA type="link" colWidth="40" value="@G::LoadTranslation(ID_DATA)" link="additionalTablesData?sUID=@#ADD_TAB_UID" onclick=""/>
|
||||
<DELETE type="link" colWidth="40" value="@G::LoadTranslation(ID_DELETE)" link="#" onclick="additionalTablesDelete(@QADD_TAB_UID);return false;">
|
||||
<en><![CDATA[]]></en>
|
||||
</DELETE>
|
||||
</dynaForm>
|
||||
|
||||
@@ -1,404 +1,383 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm name="additionalTables/additionalTablesNew" type="xmlform" width="900" enableTemplate="1">
|
||||
|
||||
<TITLE1 type="title">
|
||||
<en>Table Information</en>
|
||||
</TITLE1>
|
||||
|
||||
<ADD_TAB_UID type="hidden" />
|
||||
|
||||
<ADD_TAB_NAME type="text" size="60" maxlength="64" validate="Field" required="1">
|
||||
<en>Table Name</en>
|
||||
</ADD_TAB_NAME>
|
||||
|
||||
<ADD_TAB_NAME_OLD type="hidden" />
|
||||
<!-- renamed text by hidden -->
|
||||
<ADD_TAB_CLASS_NAME type="hidden" size="60" maxlength="100" validate="Field" required="0" readonly="1" >
|
||||
<en>PHP Class Name</en>
|
||||
</ADD_TAB_CLASS_NAME>
|
||||
|
||||
<ADD_TAB_CLASS_NAME_OLD type="hidden" />
|
||||
|
||||
<ADD_TAB_DESCRIPTION type="textarea" cols="70" rows="5" required="0">
|
||||
<en>Description</en>
|
||||
</ADD_TAB_DESCRIPTION>
|
||||
|
||||
<TITLE2 type="title">
|
||||
<en>Log configuration</en>
|
||||
</TITLE2>
|
||||
|
||||
<ADD_TAB_SDW_LOG_INSERT type="checkbox" defaultValue="on">
|
||||
<en>Save log for insert actions</en>
|
||||
</ADD_TAB_SDW_LOG_INSERT>
|
||||
|
||||
<ADD_TAB_SDW_LOG_UPDATE type="checkbox" defaultValue="on">
|
||||
<en>Save log for update actions</en>
|
||||
</ADD_TAB_SDW_LOG_UPDATE>
|
||||
|
||||
<ADD_TAB_SDW_LOG_DELETE type="checkbox" defaultValue="on">
|
||||
<en>Save log for delete actions</en>
|
||||
</ADD_TAB_SDW_LOG_DELETE>
|
||||
|
||||
<!--<ADD_TAB_SDW_LOG_SELECT type="checkbox" defaultValue="off">
|
||||
<en>Save log for select actions</en>
|
||||
</ADD_TAB_SDW_LOG_SELECT>
|
||||
|
||||
<ADD_TAB_SDW_MAX_LENGTH type="text" size="5" maxlength="10" required="1" defaultValue="-1">
|
||||
<en>Maximun rows to store (-1 for unlimited)</en>
|
||||
</ADD_TAB_SDW_MAX_LENGTH>-->
|
||||
|
||||
<ADD_TAB_SDW_AUTO_DELETE type="checkbox" defaultValue="off">
|
||||
<en>Delete related log when table is deleted</en>
|
||||
</ADD_TAB_SDW_AUTO_DELETE>
|
||||
|
||||
<!--<ADD_TAB_STATUS type="hidden" defaultValue="ACTIVE" />-->
|
||||
|
||||
<TITLE3 type="title">
|
||||
<en>Fields</en>
|
||||
</TITLE3>
|
||||
|
||||
<FIELDS type="grid" xmlgrid="additionalTables/additionalTablesFields" addrow="1" deleterow="1" mode="edit" />
|
||||
|
||||
<btnSave type="button" onclick="verifyData(this.form);">
|
||||
<en>Save</en>
|
||||
</btnSave>
|
||||
|
||||
<BTN_CANCEL type="button" onclick="cancel();">
|
||||
<en>Cancel</en>
|
||||
</BTN_CANCEL>
|
||||
|
||||
<JS type="javascript">
|
||||
<![CDATA[
|
||||
var onChangeType = function(iRow) {
|
||||
var iRow = iRow | this.name.split('][')[1];
|
||||
var oAux;
|
||||
switch (getGridField('FIELDS', iRow, 'FLD_TYPE').value) {
|
||||
case 'VARCHAR':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.readOnly = '';
|
||||
break;
|
||||
case 'TEXT':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.value = '';
|
||||
oAux.readOnly = 'readOnly';
|
||||
break;
|
||||
case 'DATE':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.value = '';
|
||||
oAux.readOnly = 'readOnly';
|
||||
break;
|
||||
case 'INT':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.readOnly = '';
|
||||
break;
|
||||
case 'FLOAT':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.readOnly = '';
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
var onClickForeignKey = function(iRow) {
|
||||
var iRow = iRow | this.name.split('][')[1];
|
||||
var oAux = getGridField('FIELDS', iRow, 'FLD_FOREIGN_KEY_TABLE');
|
||||
if (getGridField('FIELDS', iRow, 'FLD_FOREIGN_KEY').checked) {
|
||||
oAux.disabled = false;
|
||||
oAux.value = '';
|
||||
}
|
||||
else {
|
||||
oAux.disabled = true;
|
||||
oAux.value = '';
|
||||
}
|
||||
};
|
||||
var aReservedWords = new Array('ADD','ALL','ALTER','ANALYZE','AND','AS','ASC','ASENSITIVE','BEFORE',
|
||||
'BETWEEN','BIGINT','BINARY','BLOB','BOTH','BY','CALL','CASCADE','CASE',
|
||||
'CHANGE','CHAR','CHARACTER','CHECK','COLLATE','COLUMN','CONDITION',
|
||||
'CONSTRAINT','CONTINUE','CONVERT','CREATE','CROSS','CURRENT_DATE',
|
||||
'CURRENT_TIME','CURRENT_TIMESTAMP','CURRENT_USER','CURSOR','DATABASE',
|
||||
'DATABASES','DAY_HOUR','DAY_MICROSECOND','DAY_MINUTE','DAY_SECOND','DEC',
|
||||
'DECIMAL','DECLARE','DEFAULT','DELAYED','DELETE','DESC','DESCRIBE',
|
||||
'DETERMINISTIC','DISTINCT','DISTINCTROW','DIV','DOUBLE','DROP','DUAL',
|
||||
'EACH','ELSE','ELSEIF','ENCLOSED','ESCAPED','EXISTS','EXIT','EXPLAIN',
|
||||
'FALSE','FETCH','FLOAT','FLOAT4','FLOAT8','FOR','FORCE','FOREIGN','FROM',
|
||||
'FULLTEXT','GRANT','GROUP','HAVING','HIGH_PRIORITY','HOUR_MICROSECOND',
|
||||
'HOUR_MINUTE','HOUR_SECOND','IF','IGNORE','IN','INDEX','INFILE','INNER',
|
||||
'INOUT','INSENSITIVE','INSERT','INT','INT1','INT2','INT3','INT4','INT8',
|
||||
'INTEGER','INTERVAL','INTO','IS','ITERATE','JOIN','KEY','KEYS','KILL',
|
||||
'LEADING','LEAVE','LEFT','LIKE','LIMIT','LINES','LOAD','LOCALTIME',
|
||||
'LOCALTIMESTAMP','LOCK','LONG','LONGBLOB','LONGTEXT','LOOP','LOW_PRIORITY',
|
||||
'MATCH','MEDIUMBLOB','MEDIUMINT','MEDIUMTEXT','MIDDLEINT','MINUTE_MICROSECOND',
|
||||
'MINUTE_SECOND','MOD','MODIFIES','NATURAL','NOT','NO_WRITE_TO_BINLOG','NULL',
|
||||
'NUMERIC','ON','OPTIMIZE','OPTION','OPTIONALLY','OR','ORDER','OUT','OUTER',
|
||||
'OUTFILE','PRECISION','PRIMARY','PROCEDURE','PURGE','READ','READS','REAL',
|
||||
'REFERENCES','REGEXP','RELEASE','RENAME','REPEAT','REPLACE','REQUIRE',
|
||||
'RESTRICT','RETURN','REVOKE','RIGHT','RLIKE','SCHEMA','SCHEMAS','SECOND_MICROSECOND',
|
||||
'SELECT','SENSITIVE','SEPARATOR','SET','SHOW','SMALLINT','SONAME','SPATIAL',
|
||||
'SPECIFIC','SQL','SQLEXCEPTION','SQLSTATE','SQLWARNING','SQL_BIG_RESULT',
|
||||
'SQL_CALC_FOUND_ROWS','SQL_SMALL_RESULT','SSL','STARTING','STRAIGHT_JOIN',
|
||||
'TABLE','TERMINATED','THEN','TINYBLOB','TINYINT','TINYTEXT','TO','TRAILING',
|
||||
'TRIGGER','TRUE','UNDO','UNION','UNIQUE','UNLOCK','UNSIGNED','UPDATE','USAGE',
|
||||
'USE','USING','UTC_DATE','UTC_TIME','UTC_TIMESTAMP','VALUES','VARBINARY',
|
||||
'VARCHAR','VARCHARACTER','VARYING','WHEN','WHERE','WHILE','WITH','WRITE',
|
||||
'XOR','YEAR_MONTH','ZEROFILL','ASENSITIVE','CALL','CONDITION','CONTINUE',
|
||||
'CURSOR','DECLARE','DETERMINISTIC','EACH','ELSEIF','EXIT','FETCH','INOUT',
|
||||
'INSENSITIVE','ITERATE','LEAVE','LOOP','MODIFIES','OUT','READS','RELEASE',
|
||||
'REPEAT','RETURN','SCHEMA','SCHEMAS','SENSITIVE','SPECIFIC','SQL',
|
||||
'SQLEXCEPTION','SQLSTATE','SQLWARNING','TRIGGER','UNDO','WHILE');
|
||||
var verifyData = function(oForm) {
|
||||
if (oForm.onsubmit()) {
|
||||
var bContinue = true;
|
||||
var iMessage = 0;
|
||||
var iRows = Number_Rows_Grid('FIELDS', 'FLD_UID');
|
||||
var fieldsTmp = [];
|
||||
var words = '';
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
for(var j = 0; j < aReservedWords.length; j++ ) {
|
||||
if(getGridField('FIELDS', i, 'FLD_NAME').value == aReservedWords[j]) {
|
||||
words = words +" "+getGridField('FIELDS', i, 'FLD_NAME').value;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (words != ''){
|
||||
new leimnud.module.app.alert().make({
|
||||
label:G_STRINGS.ID_FIELDS_RESERVED_WORDS + ' ' + words
|
||||
});
|
||||
words='';
|
||||
bContinue = false;
|
||||
}
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
if (getGridField('FIELDS', i, 'FLD_NAME').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 1;
|
||||
}
|
||||
if (bContinue) {
|
||||
switch (getGridField('FIELDS', i, 'FLD_TYPE').value) {
|
||||
case 'VARCHAR':
|
||||
if (getGridField('FIELDS', i, 'FLD_SIZE').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 2;
|
||||
}
|
||||
break;
|
||||
case 'TEXT':
|
||||
if (getGridField('FIELDS', i, 'FLD_KEY').checked ) {
|
||||
bContinue = false;
|
||||
iMessage = 4;
|
||||
}
|
||||
break;
|
||||
case 'DATE':
|
||||
break;
|
||||
case 'INT':
|
||||
if (getGridField('FIELDS', i, 'FLD_SIZE').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 2;
|
||||
}
|
||||
break;
|
||||
case 'FLOAT':
|
||||
if (getGridField('FIELDS', i, 'FLD_SIZE').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Check duplicate fields
|
||||
if(bContinue) {
|
||||
if(!(getGridField('FIELDS', i, 'FLD_NAME').value.toUpperCase() in fieldsTmp)) {
|
||||
fieldsTmp[getGridField('FIELDS', i, 'FLD_NAME').value.toUpperCase()]++;
|
||||
} else {
|
||||
bContinue = false;
|
||||
iMessage = 5;
|
||||
sDuplicate = getGridField('FIELDS', i, 'FLD_NAME').value.toUpperCase();
|
||||
}
|
||||
}
|
||||
// Check invalid character
|
||||
if(bContinue){
|
||||
var sFld_name = getGridField('FIELDS', i, 'FLD_NAME').value;
|
||||
var firstChar = sFld_name.charAt(sFld_name);
|
||||
pattern =/[A-Za-z_]/;
|
||||
if(pattern.test(firstChar) == false) {
|
||||
bContinue = false;
|
||||
iMessage = 6;
|
||||
sInvalidCharacter = sFld_name;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var bContinueKey = false;
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
if (getGridField('FIELDS', i, 'FLD_KEY').checked) {
|
||||
bContinueKey = true;
|
||||
}
|
||||
if (getGridField('FIELDS', i, 'FLD_KEY').checked) {
|
||||
getGridField('FIELDS', i, 'FLD_KEY_HDN').value = "on" ;
|
||||
}
|
||||
if (getGridField('FIELDS', i, 'FLD_NULL').checked) {
|
||||
getGridField('FIELDS', i, 'FLD_NULL_HDN').value = "on" ;
|
||||
}
|
||||
}
|
||||
if (bContinue && bContinueKey) {
|
||||
oForm.submit();
|
||||
} else {
|
||||
if (!bContinue) {
|
||||
switch (iMessage) {
|
||||
case 1:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:'@G::LoadTranslation(ID_FIELD_NAME_REQUIRED)'
|
||||
});
|
||||
break;
|
||||
case 2:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:'@G::LoadTranslation(ID_FIELD_SIZE_REQUIRED)'
|
||||
});
|
||||
break;
|
||||
case 3:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:G_STRINGS.ID_FIELD_FOREIGN_TABLE
|
||||
});
|
||||
break;
|
||||
case 4:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_CANNOT_BE_PRIMARY_KEY)"
|
||||
});
|
||||
break;
|
||||
case 5:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_DUPLICATE)" + " " + sDuplicate
|
||||
});
|
||||
break;
|
||||
case 6:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_INVALID)" + " " + sInvalidCharacter
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
new leimnud.module.app.alert().make({
|
||||
label:'@G::LoadTranslation(ID_FIELD_KEY_TABLE)'
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
function LoadPMTable(){
|
||||
leimnud.event.add(getField('ADD_TAB_NAME'), 'change', function() {
|
||||
getField('ADD_TAB_NAME').value = getField('ADD_TAB_NAME').value.toUpperCase();
|
||||
var sTableNameOld = getField('ADD_TAB_NAME_OLD').value;
|
||||
var oSaveButton = getField('btnSave');
|
||||
if (sTableNameOld != getField('ADD_TAB_NAME').value) {
|
||||
oSaveButton.disabled = true;
|
||||
var oRPC = new leimnud.module.rpc.xmlhttp({
|
||||
url : '../additionalTables/additionalTablesAjax',
|
||||
async : false,
|
||||
method: 'POST',
|
||||
args : 'action=tableExists&sTableName=' + getField('ADD_TAB_NAME').value
|
||||
});
|
||||
oRPC.make();
|
||||
if (oRPC.xmlhttp.responseText == '1') {
|
||||
new leimnud.module.app.alert().make({
|
||||
label:'@G::LoadTranslation(ID_TABLE_ALREADY_EXISTS)'
|
||||
});
|
||||
}
|
||||
else {
|
||||
oSaveButton.disabled = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (sTableNameOld != '') {
|
||||
oSaveButton.disabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
var aAux = getField('ADD_TAB_NAME').value.split('_');
|
||||
var sAux = '';
|
||||
var i;
|
||||
for (i = 0; i < aAux.length; i++) {
|
||||
var sChar = aAux[i].substring(0,1).toUpperCase();
|
||||
sAux += sChar + aAux[i].substring(1,aAux[i].length).toLowerCase();
|
||||
}
|
||||
pattern =/[A-Za-z_]/;
|
||||
var first = sAux.charAt(sAux);
|
||||
if(pattern.test(first) == false) {
|
||||
sAux = '_' + sAux;;
|
||||
}
|
||||
getField('ADD_TAB_CLASS_NAME').value = sAux;
|
||||
|
||||
|
||||
// Validate ilegal character
|
||||
var sTbl_name = getField('ADD_TAB_NAME').value.toUpperCase();
|
||||
var firstChar = sTbl_name.charAt(sTbl_name);
|
||||
pattern =/[A-Za-z_]/;
|
||||
if(pattern.test(firstChar) == false) {
|
||||
new leimnud.module.app.alert().make({
|
||||
label:'@G::LoadTranslation(ID_TABLE_INVALID_SYNTAX)' + ' ' + sTbl_name
|
||||
});
|
||||
oSaveButton.disabled = true;
|
||||
}
|
||||
|
||||
// Reserved words
|
||||
var sTableName = getField('ADD_TAB_NAME').value.toUpperCase();
|
||||
|
||||
for(var i = 0; i < aReservedWords.length; i++ ) {
|
||||
if(sTableName == aReservedWords[i]) {
|
||||
new leimnud.module.app.alert().make({
|
||||
label:G_STRINGS.ID_TABLE_RESERVED_WORDS + ' ' + sTableName
|
||||
});
|
||||
oSaveButton.disabled = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
leimnud.event.add(getField('ADD_TAB_CLASS_NAME'), 'change', function() {
|
||||
var sClassNameOld = getField('ADD_TAB_CLASS_NAME_OLD').value;
|
||||
var oSaveButton = getField('btnSave');
|
||||
if (sClassNameOld != getField('ADD_TAB_CLASS_NAME').value) {
|
||||
oSaveButton.disabled = true;
|
||||
var oRPC = new leimnud.module.rpc.xmlhttp({
|
||||
url : '../additionalTables/additionalTablesAjax',
|
||||
async : false,
|
||||
method: 'POST',
|
||||
args : 'action=classExists&sClassName=' + getField('ADD_TAB_CLASS_NAME').value
|
||||
});
|
||||
oRPC.make();
|
||||
if (oRPC.xmlhttp.responseText == '1') {
|
||||
new leimnud.module.app.alert().make({
|
||||
label:'@G::LoadTranslation(ID_CLASS_ALREADY_EXISTS)'
|
||||
});
|
||||
}
|
||||
else {
|
||||
oSaveButton.disabled = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
oSaveButton.disabled = false;
|
||||
}
|
||||
});
|
||||
|
||||
//Adding events for the grid fields
|
||||
var iRows = Number_Rows_Grid('FIELDS', 'FLD_UID');
|
||||
var oAux;
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
oAux = getGridField('FIELDS', i, 'FLD_TYPE');
|
||||
leimnud.event.add(oAux, 'change', {method:onChangeType,instance:oAux,event:true});
|
||||
onChangeType(i);
|
||||
}
|
||||
getObject('FIELDS').onaddrow = function(iRow) {
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_TYPE');
|
||||
leimnud.event.add(oAux, 'change', {method:onChangeType,instance:oAux,event:true});
|
||||
onChangeType(iRow);
|
||||
};
|
||||
};
|
||||
|
||||
function cancel(){
|
||||
window.location = 'additionalTablesList';
|
||||
}
|
||||
|
||||
dynaformOnload = LoadPMTable;
|
||||
|
||||
]]>
|
||||
</JS>
|
||||
|
||||
</dynaForm>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm name="additionalTables/additionalTablesNew" type="xmlform" width="900" enableTemplate="1">
|
||||
<TITLE1 type="title">
|
||||
<en><![CDATA[Table Information]]></en>
|
||||
</TITLE1>
|
||||
<ADD_TAB_UID type="hidden"/>
|
||||
<ADD_TAB_NAME type="text" size="60" maxlength="64" validate="Field" required="1">
|
||||
<en><![CDATA[Table Name]]></en>
|
||||
</ADD_TAB_NAME>
|
||||
<ADD_TAB_NAME_OLD type="hidden"/>
|
||||
<!-- renamed text by hidden -->
|
||||
<ADD_TAB_CLASS_NAME type="hidden" size="60" maxlength="100" validate="Field" required="0" readonly="1">
|
||||
<en>PHP Class Name</en>
|
||||
</ADD_TAB_CLASS_NAME>
|
||||
<ADD_TAB_CLASS_NAME_OLD type="hidden"/>
|
||||
<ADD_TAB_DESCRIPTION type="textarea" cols="70" rows="5" required="0">
|
||||
<en><![CDATA[Description]]></en>
|
||||
</ADD_TAB_DESCRIPTION>
|
||||
<TITLE2 type="title">
|
||||
<en><![CDATA[Log configuration]]></en>
|
||||
</TITLE2>
|
||||
<ADD_TAB_SDW_LOG_INSERT type="checkbox" defaultValue="on">
|
||||
<en><![CDATA[Save log for insert actions]]></en>
|
||||
</ADD_TAB_SDW_LOG_INSERT>
|
||||
<ADD_TAB_SDW_LOG_UPDATE type="checkbox" defaultValue="on">
|
||||
<en><![CDATA[Save log for update actions]]></en>
|
||||
</ADD_TAB_SDW_LOG_UPDATE>
|
||||
<ADD_TAB_SDW_LOG_DELETE type="checkbox" defaultValue="on">
|
||||
<en><![CDATA[Save log for delete actions]]></en>
|
||||
</ADD_TAB_SDW_LOG_DELETE>
|
||||
<!--<ADD_TAB_SDW_LOG_SELECT type="checkbox" defaultValue="off">
|
||||
<en>Save log for select actions</en>
|
||||
</ADD_TAB_SDW_LOG_SELECT>
|
||||
|
||||
<ADD_TAB_SDW_MAX_LENGTH type="text" size="5" maxlength="10" required="1" defaultValue="-1">
|
||||
<en>Maximun rows to store (-1 for unlimited)</en>
|
||||
</ADD_TAB_SDW_MAX_LENGTH>-->
|
||||
<ADD_TAB_SDW_AUTO_DELETE type="checkbox" defaultValue="off">
|
||||
<en><![CDATA[Delete related log when table is deleted]]></en>
|
||||
</ADD_TAB_SDW_AUTO_DELETE>
|
||||
<!--<ADD_TAB_STATUS type="hidden" defaultValue="ACTIVE" />-->
|
||||
<TITLE3 type="title">
|
||||
<en><![CDATA[Fields]]></en>
|
||||
</TITLE3>
|
||||
<FIELDS type="grid" xmlgrid="additionalTables/additionalTablesFields" addrow="1" deleterow="1" mode="edit"/>
|
||||
<btnSave type="button" onclick="verifyData(this.form);">
|
||||
<en><![CDATA[Save]]></en>
|
||||
</btnSave>
|
||||
<BTN_CANCEL type="button" onclick="cancel();">
|
||||
<en><![CDATA[Cancel]]></en>
|
||||
</BTN_CANCEL>
|
||||
<JS type="javascript"><![CDATA[
|
||||
var onChangeType = function(iRow) {
|
||||
var iRow = iRow | this.name.split('][')[1];
|
||||
var oAux;
|
||||
switch (getGridField('FIELDS', iRow, 'FLD_TYPE').value) {
|
||||
case 'VARCHAR':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.readOnly = '';
|
||||
break;
|
||||
case 'TEXT':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.value = '';
|
||||
oAux.readOnly = 'readOnly';
|
||||
break;
|
||||
case 'DATE':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.value = '';
|
||||
oAux.readOnly = 'readOnly';
|
||||
break;
|
||||
case 'INT':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.readOnly = '';
|
||||
break;
|
||||
case 'FLOAT':
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_SIZE');
|
||||
oAux.readOnly = '';
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
var onClickForeignKey = function(iRow) {
|
||||
var iRow = iRow | this.name.split('][')[1];
|
||||
var oAux = getGridField('FIELDS', iRow, 'FLD_FOREIGN_KEY_TABLE');
|
||||
if (getGridField('FIELDS', iRow, 'FLD_FOREIGN_KEY').checked) {
|
||||
oAux.disabled = false;
|
||||
oAux.value = '';
|
||||
}
|
||||
else {
|
||||
oAux.disabled = true;
|
||||
oAux.value = '';
|
||||
}
|
||||
};
|
||||
var aReservedWords = new Array('ADD','ALL','ALTER','ANALYZE','AND','AS','ASC','ASENSITIVE','BEFORE',
|
||||
'BETWEEN','BIGINT','BINARY','BLOB','BOTH','BY','CALL','CASCADE','CASE',
|
||||
'CHANGE','CHAR','CHARACTER','CHECK','COLLATE','COLUMN','CONDITION',
|
||||
'CONSTRAINT','CONTINUE','CONVERT','CREATE','CROSS','CURRENT_DATE',
|
||||
'CURRENT_TIME','CURRENT_TIMESTAMP','CURRENT_USER','CURSOR','DATABASE',
|
||||
'DATABASES','DAY_HOUR','DAY_MICROSECOND','DAY_MINUTE','DAY_SECOND','DEC',
|
||||
'DECIMAL','DECLARE','DEFAULT','DELAYED','DELETE','DESC','DESCRIBE',
|
||||
'DETERMINISTIC','DISTINCT','DISTINCTROW','DIV','DOUBLE','DROP','DUAL',
|
||||
'EACH','ELSE','ELSEIF','ENCLOSED','ESCAPED','EXISTS','EXIT','EXPLAIN',
|
||||
'FALSE','FETCH','FLOAT','FLOAT4','FLOAT8','FOR','FORCE','FOREIGN','FROM',
|
||||
'FULLTEXT','GRANT','GROUP','HAVING','HIGH_PRIORITY','HOUR_MICROSECOND',
|
||||
'HOUR_MINUTE','HOUR_SECOND','IF','IGNORE','IN','INDEX','INFILE','INNER',
|
||||
'INOUT','INSENSITIVE','INSERT','INT','INT1','INT2','INT3','INT4','INT8',
|
||||
'INTEGER','INTERVAL','INTO','IS','ITERATE','JOIN','KEY','KEYS','KILL',
|
||||
'LEADING','LEAVE','LEFT','LIKE','LIMIT','LINES','LOAD','LOCALTIME',
|
||||
'LOCALTIMESTAMP','LOCK','LONG','LONGBLOB','LONGTEXT','LOOP','LOW_PRIORITY',
|
||||
'MATCH','MEDIUMBLOB','MEDIUMINT','MEDIUMTEXT','MIDDLEINT','MINUTE_MICROSECOND',
|
||||
'MINUTE_SECOND','MOD','MODIFIES','NATURAL','NOT','NO_WRITE_TO_BINLOG','NULL',
|
||||
'NUMERIC','ON','OPTIMIZE','OPTION','OPTIONALLY','OR','ORDER','OUT','OUTER',
|
||||
'OUTFILE','PRECISION','PRIMARY','PROCEDURE','PURGE','READ','READS','REAL',
|
||||
'REFERENCES','REGEXP','RELEASE','RENAME','REPEAT','REPLACE','REQUIRE',
|
||||
'RESTRICT','RETURN','REVOKE','RIGHT','RLIKE','SCHEMA','SCHEMAS','SECOND_MICROSECOND',
|
||||
'SELECT','SENSITIVE','SEPARATOR','SET','SHOW','SMALLINT','SONAME','SPATIAL',
|
||||
'SPECIFIC','SQL','SQLEXCEPTION','SQLSTATE','SQLWARNING','SQL_BIG_RESULT',
|
||||
'SQL_CALC_FOUND_ROWS','SQL_SMALL_RESULT','SSL','STARTING','STRAIGHT_JOIN',
|
||||
'TABLE','TERMINATED','THEN','TINYBLOB','TINYINT','TINYTEXT','TO','TRAILING',
|
||||
'TRIGGER','TRUE','UNDO','UNION','UNIQUE','UNLOCK','UNSIGNED','UPDATE','USAGE',
|
||||
'USE','USING','UTC_DATE','UTC_TIME','UTC_TIMESTAMP','VALUES','VARBINARY',
|
||||
'VARCHAR','VARCHARACTER','VARYING','WHEN','WHERE','WHILE','WITH','WRITE',
|
||||
'XOR','YEAR_MONTH','ZEROFILL','ASENSITIVE','CALL','CONDITION','CONTINUE',
|
||||
'CURSOR','DECLARE','DETERMINISTIC','EACH','ELSEIF','EXIT','FETCH','INOUT',
|
||||
'INSENSITIVE','ITERATE','LEAVE','LOOP','MODIFIES','OUT','READS','RELEASE',
|
||||
'REPEAT','RETURN','SCHEMA','SCHEMAS','SENSITIVE','SPECIFIC','SQL',
|
||||
'SQLEXCEPTION','SQLSTATE','SQLWARNING','TRIGGER','UNDO','WHILE');
|
||||
var verifyData = function(oForm) {
|
||||
if (oForm.onsubmit()) {
|
||||
var bContinue = true;
|
||||
var iMessage = 0;
|
||||
var iRows = Number_Rows_Grid('FIELDS', 'FLD_UID');
|
||||
var fieldsTmp = [];
|
||||
var words = '';
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
for(var j = 0; j < aReservedWords.length; j++ ) {
|
||||
if(getGridField('FIELDS', i, 'FLD_NAME').value == aReservedWords[j]) {
|
||||
words = words +" "+getGridField('FIELDS', i, 'FLD_NAME').value;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (words != ''){
|
||||
new leimnud.module.app.alert().make({
|
||||
label:G_STRINGS.ID_FIELDS_RESERVED_WORDS + ' ' + words
|
||||
});
|
||||
words='';
|
||||
bContinue = false;
|
||||
}
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
if (getGridField('FIELDS', i, 'FLD_NAME').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 1;
|
||||
}
|
||||
if (bContinue) {
|
||||
switch (getGridField('FIELDS', i, 'FLD_TYPE').value) {
|
||||
case 'VARCHAR':
|
||||
if (getGridField('FIELDS', i, 'FLD_SIZE').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 2;
|
||||
}
|
||||
break;
|
||||
case 'TEXT':
|
||||
if (getGridField('FIELDS', i, 'FLD_KEY').checked ) {
|
||||
bContinue = false;
|
||||
iMessage = 4;
|
||||
}
|
||||
break;
|
||||
case 'DATE':
|
||||
break;
|
||||
case 'INT':
|
||||
if (getGridField('FIELDS', i, 'FLD_SIZE').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 2;
|
||||
}
|
||||
break;
|
||||
case 'FLOAT':
|
||||
if (getGridField('FIELDS', i, 'FLD_SIZE').value == '') {
|
||||
bContinue = false;
|
||||
iMessage = 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Check duplicate fields
|
||||
if(bContinue) {
|
||||
if(!(getGridField('FIELDS', i, 'FLD_NAME').value.toUpperCase() in fieldsTmp)) {
|
||||
fieldsTmp[getGridField('FIELDS', i, 'FLD_NAME').value.toUpperCase()]++;
|
||||
} else {
|
||||
bContinue = false;
|
||||
iMessage = 5;
|
||||
sDuplicate = getGridField('FIELDS', i, 'FLD_NAME').value.toUpperCase();
|
||||
}
|
||||
}
|
||||
// Check invalid character
|
||||
if(bContinue){
|
||||
var sFld_name = getGridField('FIELDS', i, 'FLD_NAME').value;
|
||||
var firstChar = sFld_name.charAt(sFld_name);
|
||||
pattern =/[A-Za-z_]/;
|
||||
if(pattern.test(firstChar) == false) {
|
||||
bContinue = false;
|
||||
iMessage = 6;
|
||||
sInvalidCharacter = sFld_name;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var bContinueKey = false;
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
if (getGridField('FIELDS', i, 'FLD_KEY').checked) {
|
||||
bContinueKey = true;
|
||||
}
|
||||
if (getGridField('FIELDS', i, 'FLD_KEY').checked) {
|
||||
getGridField('FIELDS', i, 'FLD_KEY_HDN').value = "on" ;
|
||||
}
|
||||
if (getGridField('FIELDS', i, 'FLD_NULL').checked) {
|
||||
getGridField('FIELDS', i, 'FLD_NULL_HDN').value = "on" ;
|
||||
}
|
||||
}
|
||||
if (bContinue && bContinueKey) {
|
||||
oForm.submit();
|
||||
} else {
|
||||
if (!bContinue) {
|
||||
switch (iMessage) {
|
||||
case 1:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:'@G::LoadTranslation(ID_FIELD_NAME_REQUIRED)'
|
||||
});
|
||||
break;
|
||||
case 2:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:'@G::LoadTranslation(ID_FIELD_SIZE_REQUIRED)'
|
||||
});
|
||||
break;
|
||||
case 3:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:G_STRINGS.ID_FIELD_FOREIGN_TABLE
|
||||
});
|
||||
break;
|
||||
case 4:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_CANNOT_BE_PRIMARY_KEY)"
|
||||
});
|
||||
break;
|
||||
case 5:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_DUPLICATE)" + " " + sDuplicate
|
||||
});
|
||||
break;
|
||||
case 6:
|
||||
new leimnud.module.app.alert().make({
|
||||
label:"@G::LoadTranslation(ID_FIELD_INVALID)" + " " + sInvalidCharacter
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
new leimnud.module.app.alert().make({
|
||||
label:'@G::LoadTranslation(ID_FIELD_KEY_TABLE)'
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
function LoadPMTable(){
|
||||
leimnud.event.add(getField('ADD_TAB_NAME'), 'change', function() {
|
||||
getField('ADD_TAB_NAME').value = getField('ADD_TAB_NAME').value.toUpperCase();
|
||||
var sTableNameOld = getField('ADD_TAB_NAME_OLD').value;
|
||||
var oSaveButton = getField('btnSave');
|
||||
if (sTableNameOld != getField('ADD_TAB_NAME').value) {
|
||||
oSaveButton.disabled = true;
|
||||
var oRPC = new leimnud.module.rpc.xmlhttp({
|
||||
url : '../additionalTables/additionalTablesAjax',
|
||||
async : false,
|
||||
method: 'POST',
|
||||
args : 'action=tableExists&sTableName=' + getField('ADD_TAB_NAME').value
|
||||
});
|
||||
oRPC.make();
|
||||
if (oRPC.xmlhttp.responseText == '1') {
|
||||
new leimnud.module.app.alert().make({
|
||||
label:'@G::LoadTranslation(ID_TABLE_ALREADY_EXISTS)'
|
||||
});
|
||||
}
|
||||
else {
|
||||
oSaveButton.disabled = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (sTableNameOld != '') {
|
||||
oSaveButton.disabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
var aAux = getField('ADD_TAB_NAME').value.split('_');
|
||||
var sAux = '';
|
||||
var i;
|
||||
for (i = 0; i < aAux.length; i++) {
|
||||
var sChar = aAux[i].substring(0,1).toUpperCase();
|
||||
sAux += sChar + aAux[i].substring(1,aAux[i].length).toLowerCase();
|
||||
}
|
||||
pattern =/[A-Za-z_]/;
|
||||
var first = sAux.charAt(sAux);
|
||||
if(pattern.test(first) == false) {
|
||||
sAux = '_' + sAux;;
|
||||
}
|
||||
getField('ADD_TAB_CLASS_NAME').value = sAux;
|
||||
|
||||
|
||||
// Validate ilegal character
|
||||
var sTbl_name = getField('ADD_TAB_NAME').value.toUpperCase();
|
||||
var firstChar = sTbl_name.charAt(sTbl_name);
|
||||
pattern =/[A-Za-z_]/;
|
||||
if(pattern.test(firstChar) == false) {
|
||||
new leimnud.module.app.alert().make({
|
||||
label:'@G::LoadTranslation(ID_TABLE_INVALID_SYNTAX)' + ' ' + sTbl_name
|
||||
});
|
||||
oSaveButton.disabled = true;
|
||||
}
|
||||
|
||||
// Reserved words
|
||||
var sTableName = getField('ADD_TAB_NAME').value.toUpperCase();
|
||||
|
||||
for(var i = 0; i < aReservedWords.length; i++ ) {
|
||||
if(sTableName == aReservedWords[i]) {
|
||||
new leimnud.module.app.alert().make({
|
||||
label:G_STRINGS.ID_TABLE_RESERVED_WORDS + ' ' + sTableName
|
||||
});
|
||||
oSaveButton.disabled = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
leimnud.event.add(getField('ADD_TAB_CLASS_NAME'), 'change', function() {
|
||||
var sClassNameOld = getField('ADD_TAB_CLASS_NAME_OLD').value;
|
||||
var oSaveButton = getField('btnSave');
|
||||
if (sClassNameOld != getField('ADD_TAB_CLASS_NAME').value) {
|
||||
oSaveButton.disabled = true;
|
||||
var oRPC = new leimnud.module.rpc.xmlhttp({
|
||||
url : '../additionalTables/additionalTablesAjax',
|
||||
async : false,
|
||||
method: 'POST',
|
||||
args : 'action=classExists&sClassName=' + getField('ADD_TAB_CLASS_NAME').value
|
||||
});
|
||||
oRPC.make();
|
||||
if (oRPC.xmlhttp.responseText == '1') {
|
||||
new leimnud.module.app.alert().make({
|
||||
label:'@G::LoadTranslation(ID_CLASS_ALREADY_EXISTS)'
|
||||
});
|
||||
}
|
||||
else {
|
||||
oSaveButton.disabled = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
oSaveButton.disabled = false;
|
||||
}
|
||||
});
|
||||
|
||||
//Adding events for the grid fields
|
||||
var iRows = Number_Rows_Grid('FIELDS', 'FLD_UID');
|
||||
var oAux;
|
||||
for (var i = 1; i <= iRows; i++) {
|
||||
oAux = getGridField('FIELDS', i, 'FLD_TYPE');
|
||||
leimnud.event.add(oAux, 'change', {method:onChangeType,instance:oAux,event:true});
|
||||
onChangeType(i);
|
||||
}
|
||||
getObject('FIELDS').onaddrow = function(iRow) {
|
||||
oAux = getGridField('FIELDS', iRow, 'FLD_TYPE');
|
||||
leimnud.event.add(oAux, 'change', {method:onChangeType,instance:oAux,event:true});
|
||||
onChangeType(iRow);
|
||||
};
|
||||
};
|
||||
|
||||
function cancel(){
|
||||
window.location = 'additionalTablesList';
|
||||
}
|
||||
|
||||
dynaformOnload = LoadPMTable;
|
||||
|
||||
]]></JS>
|
||||
</dynaForm>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm type="xmlmenu">
|
||||
<MNU_ADD type="link" link="additionalTablesNew" colAlign="left" colWidth="50">
|
||||
<en>New</en>
|
||||
<en><![CDATA[New]]></en>
|
||||
</MNU_ADD>
|
||||
<MNU_IMPORT type="link" link="additionalTablesToImport" colAlign="left" colWidth="60">
|
||||
<en>Import</en>
|
||||
<en><![CDATA[Import]]></en>
|
||||
</MNU_IMPORT>
|
||||
<MNU_EXPORT type="link" link="#" onclick="toExport()" colAlign="left" colWidth="100">
|
||||
<en>Export</en>
|
||||
<en><![CDATA[Export]]></en>
|
||||
</MNU_EXPORT>
|
||||
<PAGED_TABLE_ID type="private"/>
|
||||
<JS type="javascript" replaceTags="1"><![CDATA[
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm name="additionalTables/additionalTablesTitle" type="xmlform" width="400">
|
||||
|
||||
<ADD_TAB_NAME type="hidden"/>
|
||||
|
||||
<TITLE type="title" label="@#ADD_TAB_NAME"><en>@#ADD_TAB_NAME</en></TITLE>
|
||||
|
||||
</dynaForm>
|
||||
<ADD_TAB_NAME type="hidden"/>
|
||||
<TITLE type="title" label="@#ADD_TAB_NAME">
|
||||
<en><![CDATA[@#ADD_TAB_NAME]]></en>
|
||||
</TITLE>
|
||||
</dynaForm>
|
||||
|
||||
@@ -1,44 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm name="cases_AttachInputDocument3" type="xmlform" width="400px" labelWidth="200px" enableTemplate="1">
|
||||
|
||||
<TITLE1 type="title">
|
||||
<en>Import PMTables</en>
|
||||
</TITLE1>
|
||||
|
||||
<MAX_FILE_SIZE type="edit" mode="view">
|
||||
<en>Max upload file size in bytes</en>
|
||||
</MAX_FILE_SIZE>
|
||||
|
||||
<FILENAME type="file">
|
||||
<en>File</en>
|
||||
</FILENAME>
|
||||
|
||||
<OVERWRITE type="checkbox">
|
||||
<en>Overwrite if exist</en>
|
||||
</OVERWRITE>
|
||||
|
||||
<SAVE type="button" onclick="verifyFile(this.form);">
|
||||
<en>Import</en>
|
||||
</SAVE>
|
||||
|
||||
<BTN_CANCEL type="button" onclick="cancel();">
|
||||
<en>Cancel</en>
|
||||
</BTN_CANCEL>
|
||||
|
||||
<JS type="javascript" replacetags="1"><![CDATA[
|
||||
|
||||
var verifyFile = function(oForm) {
|
||||
if (document.getElementById('form[FILENAME]').value != '') {
|
||||
oForm.submit();
|
||||
}
|
||||
else {
|
||||
alert('@G::LoadTranslation(ID_SELECT_FILE_PMT_IMPORT)');
|
||||
}
|
||||
}
|
||||
|
||||
function cancel(){
|
||||
window.location = 'additionalTablesList';
|
||||
}
|
||||
|
||||
]]></JS>
|
||||
</dynaForm>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm name="cases_AttachInputDocument3" type="xmlform" width="400px" labelWidth="200px" enableTemplate="1">
|
||||
<TITLE1 type="title">
|
||||
<en><![CDATA[Import PMTables]]></en>
|
||||
</TITLE1>
|
||||
<MAX_FILE_SIZE type="edit" mode="view">
|
||||
<en><![CDATA[Max upload file size in bytes]]></en>
|
||||
</MAX_FILE_SIZE>
|
||||
<FILENAME type="file">
|
||||
<en><![CDATA[File]]></en>
|
||||
</FILENAME>
|
||||
<OVERWRITE type="checkbox">
|
||||
<en><![CDATA[Overwrite if exist]]></en>
|
||||
</OVERWRITE>
|
||||
<SAVE type="button" onclick="verifyFile(this.form);">
|
||||
<en><![CDATA[Import]]></en>
|
||||
</SAVE>
|
||||
<BTN_CANCEL type="button" onclick="cancel();">
|
||||
<en><![CDATA[Cancel]]></en>
|
||||
</BTN_CANCEL>
|
||||
<JS type="javascript" replacetags="1"><![CDATA[
|
||||
|
||||
var verifyFile = function(oForm) {
|
||||
if (document.getElementById('form[FILENAME]').value != '') {
|
||||
oForm.submit();
|
||||
}
|
||||
else {
|
||||
alert('@G::LoadTranslation(ID_SELECT_FILE_PMT_IMPORT)');
|
||||
}
|
||||
}
|
||||
|
||||
function cancel(){
|
||||
window.location = 'additionalTablesList';
|
||||
}
|
||||
|
||||
]]></JS>
|
||||
</dynaForm>
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dynaForm name="processes_Export" type="xmlform" width="100%" labelWidth="130px">
|
||||
<FILENAME type="phpVariable"/>
|
||||
<FILENAME_LINK type="phpVariable"/>
|
||||
<FILENAME_LABEL type="link" value="@#FILENAME" link="@#FILENAME_LINK" target="_blank">
|
||||
<en>File</en>
|
||||
</FILENAME_LABEL>
|
||||
<SIZE type="caption">
|
||||
<en>File size</en>
|
||||
</SIZE>
|
||||
<META type="textarea" required="0" readonly="0" rows="14" cols="82" mode="view">
|
||||
<en>Summary</en>
|
||||
</META>
|
||||
</dynaForm>
|
||||
<FILENAME type="phpVariable"/>
|
||||
<FILENAME_LINK type="phpVariable"/>
|
||||
<FILENAME_LABEL type="link" value="@#FILENAME" link="@#FILENAME_LINK" target="_blank">
|
||||
<en><![CDATA[File]]></en>
|
||||
</FILENAME_LABEL>
|
||||
<SIZE type="caption">
|
||||
<en><![CDATA[File size]]></en>
|
||||
</SIZE>
|
||||
<META type="textarea" required="0" readonly="0" rows="14" cols="82" mode="view">
|
||||
<en><![CDATA[Summary]]></en>
|
||||
</META>
|
||||
</dynaForm>
|
||||
|
||||
Reference in New Issue
Block a user