- Al momento de crear o modificar un campo suggest en grids no mostraba la opción de campos dependientes. Cuando un campo suggest tenia campos dependientes agregaba un espacio en blanco al final de cada atributo dependentfields lo cual desplegaba un mensaje de error. - Adjustments several in the Suggest on grids.
312 lines
8.5 KiB
XML
Executable File
312 lines
8.5 KiB
XML
Executable File
<?xml version="1.0" encoding="UTF-8"?>
|
|
<dynaForm
|
|
name="text"
|
|
type="xmlform"
|
|
width="100%"
|
|
labelWidth="350px"
|
|
enableTemplate="1"
|
|
>
|
|
<PME_A type="hidden" />
|
|
<PME_TYPE type="hidden" />
|
|
<PME_PRO_UID type="hidden" />
|
|
<PME_PRO_UID type="hidden" />
|
|
<PME_DYN_TYPE type="phpvariable"/>
|
|
<PME_TITLE type="title" enableHTML="1">
|
|
<en>Properties</en>
|
|
</PME_TITLE>
|
|
<PME_XMLNODE_NAME type="text" size="42" maxlength="64" validate="NodeName" dependentFields="PME_VALIDATE_NAME" required="1">
|
|
<en>Field Name</en>
|
|
</PME_XMLNODE_NAME>
|
|
<PME_XMLNODE_NAME_OLD type="hidden" />
|
|
|
|
<PME_VALIDATE_NAME type="hidden" sqlConnection="XMLDB">
|
|
SELECT XMLNODE_NAME, TYPE FROM dynaForm WHERE XMLNODE_NAME = @@PME_XMLNODE_NAME
|
|
</PME_VALIDATE_NAME>
|
|
|
|
<PME_LABEL type="text" maxlength="255" size="42">
|
|
<en>Label</en>
|
|
</PME_LABEL>
|
|
|
|
<PME_SUBTITLE3 type="title" enableHTML="1">
|
|
<en>Behaviour</en>
|
|
</PME_SUBTITLE3>
|
|
|
|
|
|
<!--<PME_STRTO type="dropdown" defaultvalue="" >
|
|
|
|
<en>Text transform
|
|
<option name=""></option>
|
|
<option name="UPPER">UPPER</option>
|
|
<option name="LOWER">LOWER</option>
|
|
</en>
|
|
</PME_STRTO>-->
|
|
|
|
<PME_REQUIRED type="checkbox" falseValue="0" value="1" defaultvalue="0" labelOnRight="0">
|
|
<en>Required</en>
|
|
</PME_REQUIRED>
|
|
|
|
<!--<PME_READONLY type="checkbox" falseValue="0" value="1" defaultvalue="0" labelOnRight="0">
|
|
<en>Read Only</en>
|
|
</PME_READONLY>-->
|
|
|
|
<PME_DEPENDENTFIELDS type="listbox" defaultvalue="" sqlconnection="XMLDB" width="362"><![CDATA[
|
|
select XMLNODE_NAME, XMLNODE_NAME AS NAME FROM dynaForm WHERE XMLNODE_NAME <> @@PME_XMLNODE_NAME AND XMLNODE_NAME <> "" AND ( TYPE="text" or TYPE="textarea" or TYPE="dropdown" or TYPE="listbox" or TYPE="hidden" or TYPE="suggest")
|
|
]]><en>Dependent Fields<option name="">(none)</option></en>
|
|
</PME_DEPENDENTFIELDS>
|
|
|
|
<PME_HINT type="textarea" cols="44" rows="1">
|
|
<en>Hint</en>
|
|
</PME_HINT>
|
|
|
|
<PME_SUBTITLE type="title" enableHTML="1">
|
|
<en>Appearance</en>
|
|
</PME_SUBTITLE>
|
|
|
|
<PME_SIZE type="text" maxlength="10" size="10" validate="Int" defaultvalue="15" >
|
|
<en>Size</en>
|
|
</PME_SIZE>
|
|
|
|
|
|
<PME_MODE type="dropdown" defaultvalue="edit">
|
|
<en>Mode
|
|
<option name="edit">Edit</option>
|
|
<option name="view">View</option>
|
|
</en>
|
|
</PME_MODE>
|
|
|
|
|
|
<PME_SUBTITLE2 type="title" enableHTML="1">
|
|
<en>Autosuggest behaviour</en>
|
|
</PME_SUBTITLE2>
|
|
|
|
<PME_SQLCONNECTION type="dropdown" sqlConnection="dbarray" required="1" >
|
|
SELECT * FROM DB_CONNECTIONS
|
|
<en>Sql Connection <option name="">(none)</option></en>
|
|
</PME_SQLCONNECTION>
|
|
|
|
<PME_XMLNODE_VALUE type="textarea" cols="40" rows="3" required="1">
|
|
<en>Sql</en>
|
|
</PME_XMLNODE_VALUE>
|
|
|
|
<PME_MAXRESULTS type="text" maxlength="10" size="10" validate="Int" defaultvalue="6" >
|
|
<en>Max Results</en>
|
|
</PME_MAXRESULTS>
|
|
|
|
<PME_SHOWNORESULTS type="checkbox" falseValue="0" value="1" defaultvalue="0" labelOnRight="1">
|
|
<en>Show no results message</en>
|
|
</PME_SHOWNORESULTS>
|
|
|
|
<PME_SAVELABEL type="dropdown" falseValue="0" value="1" defaultvalue="1" labelOnRight="1">
|
|
<en>Save selected option as
|
|
<option name="0">Value</option>
|
|
<option name="1">Label</option>
|
|
</en>
|
|
</PME_SAVELABEL>
|
|
|
|
<PME_STORE_NEW_ENTRY type="checkbox" falseValue="0" value="1" defaultvalue="0" labelOnRight="1">
|
|
<en>Store new entry</en>
|
|
</PME_STORE_NEW_ENTRY>
|
|
|
|
<PME_TABLE_DATA type="hidden"/>
|
|
<PME_TABLE type="dropdown" sqlconnection="" required="1">
|
|
<en>Table</en>
|
|
</PME_TABLE>
|
|
|
|
<PME_PRIMARY_KEY_DATA type="hidden"/>
|
|
<PME_PRIMARY_KEY type="dropdown" sqlconnection="" required="1">
|
|
<en>Primary Key</en>
|
|
</PME_PRIMARY_KEY>
|
|
|
|
<PME_FIELD type="hidden"/>
|
|
|
|
<PME_PRIMARY_KEY_TYPE_DATA type="hidden"/>
|
|
<PME_PRIMARY_KEY_TYPE type="dropdown" sqlconnection="">
|
|
<en>Type
|
|
<option name="0"></option>
|
|
<option name="int">Integer</option>
|
|
<option name="varchar">Varchar</option>
|
|
</en>
|
|
</PME_PRIMARY_KEY_TYPE>
|
|
|
|
<PME_CALLBACK type="textarea" cols="40" rows="2">
|
|
<en>Javascript callback to execute by a selection</en>
|
|
</PME_CALLBACK>
|
|
|
|
<BTN_CANCEL type="button" onclick="cancel();">
|
|
<en>Cancel</en>
|
|
</BTN_CANCEL>
|
|
|
|
<PME_ACCEPT type="button" onclick="doSave(this.form)">
|
|
<en>Save</en>
|
|
</PME_ACCEPT>
|
|
|
|
<PME_JS type="javascript">
|
|
<![CDATA[
|
|
var fieldForm = "text";
|
|
var fieldName = getField("PME_XMLNODE_NAME", fieldForm);
|
|
var savedFieldName = fieldName.value;
|
|
var pme_validating;
|
|
|
|
fieldName.focus();
|
|
fieldName.select();
|
|
|
|
leimnud.event.add(fieldName, "change", {method: dynaformVerifyFieldName, instance: fieldName, event: true});
|
|
|
|
var dyntype = "@#PME_DYN_TYPE";
|
|
|
|
storeNewEntriesOptions(getField("PME_STORE_NEW_ENTRY"));
|
|
|
|
leimnud.event.add(
|
|
getField("PME_STORE_NEW_ENTRY"),
|
|
"click",
|
|
function ()
|
|
{
|
|
storeNewEntriesOptions(getField("PME_STORE_NEW_ENTRY"));
|
|
}
|
|
);
|
|
|
|
function storeNewEntriesOptions(o)
|
|
{
|
|
if (o.checked) {
|
|
showRowById("PME_PRIMARY_KEY");
|
|
getTablesNames();
|
|
getTableFields()
|
|
getField("PME_TABLE").value = getField("PME_TABLE_DATA").value.trim();
|
|
getField("PME_PRIMARY_KEY").value = getField("PME_PRIMARY_KEY_DATA").value.trim();
|
|
getField("PME_PRIMARY_KEY_TYPE").value = getField("PME_PRIMARY_KEY_TYPE_DATA").value.trim();
|
|
} else {
|
|
hideRowById("PME_PRIMARY_KEY");
|
|
}
|
|
}
|
|
|
|
leimnud.event.add(getField('PME_XMLNODE_VALUE'), 'keyup', function(){
|
|
getTablesNames();
|
|
});
|
|
|
|
leimnud.event.add(getField('PME_TABLE'), 'change', function(){
|
|
getTableFields();
|
|
getField('PME_TABLE_DATA').value = this.value.trim();
|
|
});
|
|
|
|
leimnud.event.add(getField('PME_PRIMARY_KEY'), 'change', function(){
|
|
getField('PME_PRIMARY_KEY_DATA').value = this.value.trim();
|
|
for(i=1; i<this.length; i++){
|
|
if(this.options[i].value != this.value){
|
|
getField('PME_FIELD').value = this.options[i].value.trim();
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
leimnud.event.add(getField('PME_PRIMARY_KEY_TYPE'), 'change', function(){
|
|
getField('PME_PRIMARY_KEY_TYPE_DATA').value = this.value.trim();
|
|
});
|
|
|
|
function getTablesNames() {
|
|
var strSql = getField("PME_XMLNODE_VALUE").value;
|
|
|
|
strSql = stringReplace("\\x0A", " ", strSql); //\n 10
|
|
strSql = stringReplace("\\x0D", " ", strSql); //\r 13
|
|
strSql = stringReplace("\\x09", " ", strSql); //\t 9
|
|
|
|
var s0 = strSql;
|
|
var s = strSql.toUpperCase();
|
|
|
|
p1 = s.indexOf(" FROM ");
|
|
if(p1 > 0){
|
|
p2 = s.indexOf(" WHERE ");
|
|
if( p2 < 0 ){
|
|
p2 = s.indexOf(" ORDER ");
|
|
if( p2 < 0 ){
|
|
p2 = s.indexOf(" JOIN ");
|
|
if( p2 < 0 )
|
|
p2 = s.length
|
|
}
|
|
}
|
|
|
|
|
|
ss = s0.substring(p1, p2);
|
|
ss = ss.replace("FROM", "").trim();
|
|
ss = ss.replace("from", "").trim();
|
|
|
|
aTables = ss.split(',');
|
|
|
|
otable = getField('PME_TABLE');
|
|
oPK = getField('PME_PRIMARY_KEY');
|
|
oPKT = getField('PME_PRIMARY_KEY_TYPE');
|
|
oPK.length = 0;
|
|
oPKT.value = '';
|
|
otable.length = 0;
|
|
var newOption = new Option("", "0");
|
|
otable.options[0] = newOption;
|
|
|
|
var t = "";
|
|
|
|
for (var i = 0; i <= aTables.length - 1; i++) {
|
|
t = aTables[i].trim();
|
|
|
|
var newOption = new Option(t, t);
|
|
otable.options[i + 1] = newOption;
|
|
}
|
|
}
|
|
}
|
|
|
|
function getTableFields() {
|
|
var strSql = getField("PME_XMLNODE_VALUE").value;
|
|
|
|
strSql = stringReplace("\\x0A", " ", strSql); //\n 10
|
|
strSql = stringReplace("\\x0D", " ", strSql); //\r 13
|
|
strSql = stringReplace("\\x09", " ", strSql); //\t 9
|
|
|
|
var s0 = strSql;
|
|
var s = strSql.toUpperCase();
|
|
|
|
p1 = s.indexOf("SELECT ");
|
|
if(p1 >= 0){
|
|
p2 = s.indexOf(" FROM ");
|
|
p2 = (p2 > 0)? p2: s.length;
|
|
ss = s0.substring(p1, p2);
|
|
ss = ss.replace("SELECT", "").trim();
|
|
ss = ss.replace("FROM", "").trim();
|
|
ss = ss.replace("select", "").trim();
|
|
ss = ss.replace("from", "").trim();
|
|
|
|
aTables = ss.split(',');
|
|
|
|
otable = getField('PME_PRIMARY_KEY');
|
|
otable.length = 0;
|
|
var newOption = new Option("", "0");
|
|
otable.options[0] = newOption;
|
|
|
|
var t = "";
|
|
|
|
for (var i = 0; i <= aTables.length - 1; i++) {
|
|
t = aTables[i].trim();
|
|
|
|
var newOption = new Option(t, t);
|
|
otable.options[i + 1] = newOption;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
function doSave(form){
|
|
if( getField('PME_STORE_NEW_ENTRY').checked ){
|
|
if(getField('PME_TABLE').value.trim() != '0' && getField('PME_PRIMARY_KEY').value.trim() != '0' && getField('PME_PRIMARY_KEY_TYPE').value.trim() != '0'){
|
|
fieldsSave(form);
|
|
} else {
|
|
msgBox(G_STRINGS.ID_SUGGEST_NEW_ENTRIES_ALERT, "alert");
|
|
}
|
|
} else {
|
|
fieldsSave(form);
|
|
}
|
|
}
|
|
|
|
function cancel(){
|
|
currentPopupWindow.remove();
|
|
}
|
|
|
|
]]></PME_JS>
|
|
</dynaForm>
|