diff --git a/workflow/engine/classes/class.dynaformEditor.php b/workflow/engine/classes/class.dynaformEditor.php
index ee71840b7..73026da71 100755
--- a/workflow/engine/classes/class.dynaformEditor.php
+++ b/workflow/engine/classes/class.dynaformEditor.php
@@ -229,7 +229,7 @@ class dynaformEditor extends WebResource
var DYNAFORM_URL="' . $Parameters['URL'] . '";
leimnud.event.add(window,"load",function(){ loadEditor(); });
');
- $oHeadPublisher->addScriptCode(' var jsMeta;');
+ $oHeadPublisher->addScriptCode(' var jsMeta;var usernameLogged = "' . (isset($_SESSION['USR_USERNAME']) ? $_SESSION['USR_USERNAME'] : '') . '";var SYS_LANG = "' . SYS_LANG . '";');
G::RenderPage("publish", 'blank');
}
@@ -923,4 +923,3 @@ class dynaformEditorAjax extends dynaformEditor implements iDynaformEditorAjax
}
}
}
-
\ No newline at end of file
diff --git a/workflow/engine/js/dynaformEditor/core/dynaformEditor.js b/workflow/engine/js/dynaformEditor/core/dynaformEditor.js
index 6e6e4bbb1..40f0de85b 100755
--- a/workflow/engine/js/dynaformEditor/core/dynaformEditor.js
+++ b/workflow/engine/js/dynaformEditor/core/dynaformEditor.js
@@ -5,6 +5,130 @@ var clientWinSize = null;
var strError = "";
var h3OK = 1;
+
+var promptPanel;
+var lastActionPerformed = '';
+
+var sessionPersits = function() {
+ var rpc = new leimnud.module.rpc.xmlhttp({
+ url : '../services/sessionPersists',
+ async:false
+ });
+ rpc.make();
+ var response = rpc.xmlhttp.responseText.parseJSON();
+ return response.status;
+};
+
+var verifyLogin = function() {
+ if (document.getElementById('thePassword').value.trim() == '') {
+ alert(_('ID_WRONG_PASS'));
+ return;
+ }
+ var rpc = new leimnud.module.rpc.xmlhttp({
+ url : '../login/authentication',
+ args: 'form[USR_USERNAME]=' + usernameLogged + '&form[USR_PASSWORD]=' + document.getElementById('thePassword').value.trim() + '&form[USR_LANG]=' + SYS_LANG
+ });
+ rpc.callback = function(rpc) {
+ if (rpc.xmlhttp.responseText.indexOf('form[USR_USERNAME]') == -1) {
+ promptPanel.remove();
+ switch (lastActionPerformed) {
+ case 'save':
+ dynaformEditor.save();
+ break;
+ case 'save_as':
+ dynaformEditor.save_as();
+ break;
+ case 'saveJavascript':
+ dynaformEditor.saveJavascript();
+ break;
+ case 'close':
+ dynaformEditor.close();
+ break;
+ case 'changeToPreview':
+ dynaformEditor.changeToPreview();
+ break;
+ case 'changeToXmlCode':
+ dynaformEditor.changeToXmlCode();
+ break;
+ case 'changeToHtmlCode':
+ dynaformEditor.changeToHtmlCode();
+ break;
+ case 'changeToFieldsList':
+ dynaformEditor.changeToFieldsList();
+ break;
+ case 'changeToJavascripts':
+ dynaformEditor.changeToJavascripts();
+ break;
+ case 'changeToProperties':
+ dynaformEditor.changeToProperties();
+ break;
+ case 'changeToShowHide':
+ dynaformEditor.changeToShowHide();
+ break;
+ }
+ lastActionPerformed = '';
+ } else {
+ alert(_('ID_WRONG_PASS'));
+ }
+ }.extend(this);
+ rpc.make();
+};
+
+var showPrompt = function(lastAction) {
+ lastActionPerformed = lastAction;
+ promptPanel = new leimnud.module.panel();
+ promptPanel.options={
+ statusBarButtons:[{value: _('LOGIN')}],
+ position:{center:true},
+ size:{w:300,h:110},
+ control:{
+ close:false,
+ resize:false
+ },
+ fx:{
+ modal:true
+ }
+ };
+ promptPanel.setStyle={
+ content:{
+ padding:10,
+ paddingBottom:2,
+ textAlign:'left',
+ paddingLeft:50,
+ backgroundRepeat:'no-repeat',
+ backgroundPosition:'10 50%',
+ backgroundColor:'transparent',
+ borderWidth:0
+ }
+ };
+ promptPanel.make();
+ promptPanel.addContent(_('ID_DYNAFORM_EDITOR_LOGIN_AGAIN'));
+ promptPanel.addContent('
');
+ var thePassword = $dce('input');
+ thePassword.type = 'password'
+ thePassword.id = 'thePassword';
+ leimnud.dom.setStyle(thePassword,{
+ font:'normal 8pt Tahoma,MiscFixed',
+ color:'#000',
+ width:'100%',
+ marginTop:3,
+ backgroundColor:'white',
+ border:'1px solid #919B9C'
+ });
+ promptPanel.addContent(thePassword);
+ thePassword.focus();
+ thePassword.onkeyup=function(evt)
+ {
+ var evt = (window.event)?window.event:evt;
+ var key = (evt.which)?evt.which:evt.keyCode;
+ if(key == 13) {
+ verifyLogin();
+ }
+ }.extend(this);
+ promptPanel.fixContent();
+ promptPanel.elements.statusBarButtons[0].onmouseup = verifyLogin;
+};
+
function checkErrorXML(xmlParse)
{
strError = "";
@@ -91,19 +215,22 @@ var dynaformEditor={
mainPanel.elements.headerBar.appendChild(this.toolbar);
mainPanel.events.remove = function(){
}
-// note added by krlos pacha carlos[at]colosa[dot]com
+// note added by krlos pacha carlos[at]colosa[dot]com
// the following line of code has been commented because it was executing twice the JavaScript code
// when the DynaForm was first loaded.
// this.refresh_preview();
- this.changeToJavascripts();
- this.changeToPreview();
+ this.changeToJavascripts(false);
+ this.changeToPreview(false);
},
_review:function()
{
},
save:function() {
- /*this.saveProperties();*/
+ if (!sessionPersits()) {
+ showPrompt('save');
+ return;
+ }
try {
this.saveCurrentView();
} catch (e) {
@@ -120,14 +247,15 @@ var dynaformEditor={
} else {
if (typeof(res.innerHTML) == 'undefined') {
G.alert(res["*message"]);
- } else {
- alert(G_STRINGS.ID_LOST_SESSION_XMLFORM);
}
}
}
},
save_as:function(){
- /*this.saveProperties();*/
+ if (!sessionPersits()) {
+ showPrompt('save_as');
+ return;
+ }
try {
this.saveCurrentView();
} catch (e) {
@@ -138,6 +266,10 @@ var dynaformEditor={
},
close:function()
{
+ if (!sessionPersits()) {
+ showPrompt('close');
+ return;
+ }
var modified=this.ajax.is_modified(this.A,this.dynUid);
if (typeof(modified)==="boolean")
{
@@ -149,7 +281,6 @@ var dynaformEditor={
}
else
{
- //alert(res["response"]);
alert(res["*message"]);
}
return true;
@@ -187,7 +318,6 @@ var dynaformEditor={
saveShowHide:function()
{
- ///-- this.save();
try {
this.saveCurrentView();
} catch (e) {
@@ -213,7 +343,6 @@ var dynaformEditor={
saveXmlCode:function()
{
- //var xmlCode = getField("XML").value;
var xmlCode = this.getXMLCode();
if (validateXML(xmlCode) == true) {
var todoRefreshXmlCode = xmlCode === null;
@@ -265,8 +394,15 @@ var dynaformEditor={
this.responseAction = true;
},
// Change view point functions
- changeToPreview:function()
+ changeToPreview:function(checkSessionPersists)
{
+ checkSessionPersists = typeof(checkSessionPersists) != 'undefined' ? checkSessionPersists : true;
+ if (checkSessionPersists) {
+ if (!sessionPersits()) {
+ showPrompt('changeToPreview');
+ return;
+ }
+ }
//to adecuate the view perspective @Neyek
content_div = getElementByPMClass('panel_content___processmaker')
content_div.style.overflow='auto';
@@ -275,9 +411,13 @@ var dynaformEditor={
},
changeToXmlCode:function()
{
+ if (!sessionPersits()) {
+ showPrompt('changeToXmlCode');
+ return;
+ }
content_div = getElementByPMClass('panel_content___processmaker')
content_div.style.overflow='auto';
-
+
this.refresh_xmlcode();
this.currentView="xmlcode";
if( ! xmlEditor ) {
@@ -294,34 +434,49 @@ var dynaformEditor={
lineNumbers: true,
continuousScanning: 500
});
- }
+ }
},
changeToHtmlCode:function()
{
+ if (!sessionPersits()) {
+ showPrompt('changeToHtmlCode');
+ return;
+ }
//to adecuate the view perspective @Neyek
content_div = getElementByPMClass('panel_content___processmaker')
content_div.style.overflow='auto';
-
+
this.refresh_htmlcode();
this.currentView="htmlcode";
},
changeToFieldsList:function()
{
+ if (!sessionPersits()) {
+ showPrompt('changeToFieldsList');
+ return;
+ }
//to adecuate the view perspective @Neyek
content_div = getElementByPMClass('panel_content___processmaker')
content_div.style.overflow='visible';
-
+
this.refreshFieldsList();
this.currentView="fieldslist";
},
- changeToJavascripts:function()
+ changeToJavascripts:function(checkSessionPersists)
{
+ checkSessionPersists = typeof(checkSessionPersists) != 'undefined' ? checkSessionPersists : true;
+ if (checkSessionPersists) {
+ if (!sessionPersits()) {
+ showPrompt('changeToJavascripts');
+ return;
+ }
+ }
var field=getField("JS_LIST","dynaforms_JSEditor");
var res=this.ajax.get_javascripts(this.A,field.value);
-
+
this.currentView="javascripts";
this.refreshJavascripts();
-
+
if(field.value!='' || typeof(res.aOptions[0])!='undefined'){
hideRowById('JS_TITLE');
showRowById('JS');
@@ -330,14 +485,14 @@ var dynaformEditor={
//to adecuate the view perspective @Neyek
content_div = getElementByPMClass('panel_content___processmaker')
content_div.style.overflow='auto';
-
+
//this.currentView="javascripts";
//this.refreshJavascripts();
//if (this.loadPressLoaded && !JSCodePress)
if( ! jsEditor )
{
clientWinSize = getClientWindowSize();
- startJSCodePress();
+ startJSCodePress();
jsEditor = CodeMirror.fromTextArea('form[JS]', {
height: (clientWinSize.height - 140) + "px",
width: (_BROWSER.name == 'msie' ? '100%' : '98%'),
@@ -356,19 +511,26 @@ var dynaformEditor={
},
changeToProperties:function()
{
+ if (!sessionPersits()) {
+ showPrompt('changeToProperties');
+ return;
+ }
//to adecuate the view perspective @Neyek
content_div = getElementByPMClass('panel_content___processmaker')
content_div.style.overflow='auto';
-
+
this.currentView="properties";
this.refreshProperties();
},
changeToShowHide:function()
{
+ if (!sessionPersits()) {
+ showPrompt('changeToShowHide');
+ return;
+ }
//to adecuate the view perspective @Neyek
content_div = getElementByPMClass('panel_content___processmaker')
content_div.style.overflow='auto';
- //alert('xxxxxx');
this.currentView="showHide";
this.refreshShowHide();
},
@@ -453,14 +615,14 @@ var dynaformEditor={
});
document.getElementById('dynaformEditor[6]').innerHTML = '';
oRPC.callback = function(rpc) {
-
+
var scs=rpc.xmlhttp.responseText.extractScript();
document.getElementById('dynaformEditor[6]').innerHTML = rpc.xmlhttp.responseText;
scs.evalScript();
-
+
}.extend(this);
oRPC.make();
- },
+ },
refreshShowHide:function() {
//fields_List.refresh(); return;
var oRPC = new leimnud.module.rpc.xmlhttp({
@@ -468,15 +630,15 @@ var dynaformEditor={
args: ''
});
document.getElementById('dynaformEditor[9]').innerHTML = '';
-
+
oRPC.callback = function(rpc) {
-
+
var scs=rpc.xmlhttp.responseText.extractScript();
document.getElementById('dynaformEditor[9]').innerHTML = rpc.xmlhttp.responseText;
scs.evalScript();
-
+
}.extend(this);
- oRPC.make();
+ oRPC.make();
},
getJSCode:function()
{
@@ -511,7 +673,7 @@ var dynaformEditor={
getXMLCode:function()
{
if (xmlEditor) {
- xmlEditor.save();
+ xmlEditor.save();
}
return getField("XML","dynaforms_XmlEditor").value;
},
@@ -537,12 +699,12 @@ var dynaformEditor={
refreshJavascripts:function()
{
var field=getField("JS_LIST","dynaforms_JSEditor");
-
+
for(j=0; j0) field.remove(0);
@@ -570,7 +732,7 @@ var dynaformEditor={
{
G.alert(response.error["*message"],"Error");
}
-
+
var field=getField("JS_LIST","dynaforms_JSEditor");
for(j=0; jgetAllByDynUid( $DYN_UID );
+if (isset($_SESSION['Current_Dynafom']['Parameters']['DYN_UID'])) {
+ $DYN_UID = $_SESSION['Current_Dynafom']['Parameters']['DYN_UID'];
+ $aRows = $oFieldCondition->getAllByDynUid( $DYN_UID );
+}
$aFieldNames = Array ('FCD_NRO','FCD_UID','FCD_FUNCTION','FCD_FIELDS','FCD_CONDITION','FCD_EVENTS','FCD_EVENT_OWNERS','FCD_STATUS','FCD_DYN_UID' );