317 lines
8.6 KiB
XML
Executable File
317 lines
8.6 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";
|
|
|
|
if (dyntype == 'grid') {
|
|
hideRowById('PME_DEPENDENTFIELDS');
|
|
} else {
|
|
showRowById('PME_DEPENDENTFIELDS');
|
|
}
|
|
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>
|