OliverWi wrote: ↑Wed Jan 30, 2019 9:20 am
But I have come accross another problem which seems to be related to the new 3.3 version. A user who is registered as an operator is not able to view the process map at all. I have compared this with an old 3.2 installation. In 3.2. this was not a problem at all.
With version 3.3 I am not able to see both the processmap and the change log.
Do I need to add extra permissions to the operator role in version 3.3 to be able to view the process-map?
Yes, I see the problem in PM 3.3.0 and 3.3.2. There is a bug when ProcessMaker tries to verify the login session of a user with the PROCESSMAKER_OPERATOR role. It shows the following error in the web browser debugger:
Code: Select allUncaught SyntaxError: Unexpected token <
at doDecode (ext-all.js:2)
bugShowingProcessMap.png (65.9 KiB) Viewed 5507 times
Here is a way to workaround the problem for now. Edit your workflow/engine/templates/cases/open.js file with a plain text editor and change the code starting at line 475 from:
Code: Select all Actions.processMap = function()
{
Actions.tabFrame('processMap');
Ext.Ajax.request({
url : 'ajaxListener' ,
params : {action : 'verifySession'},
success: function ( result, request ) {
var data = Ext.util.JSON.decode(result.responseText);
if( data.lostSession ) {
Ext.Msg.show({
title: _('ID_ERROR'),
msg: data.message,
animEl: 'elId',
icon: Ext.MessageBox.ERROR,
buttons: Ext.MessageBox.OK,
fn : function(btn) {
try
{
prnt = parent.parent;
top.location = top.location;
}
catch (err)
{
parent.location = parent.location;
}
}
});
} else {
Actions.tabFrame('processMap');
}
},
failure: function (result, request) {
if (typeof(result.responseText) != 'undefined') {
Ext.MessageBox.alert( _('ID_FAILED'), result.responseText);
}
}
});
}
To:
Code: Select all Actions.processMap = function()
{
Actions.tabFrame('processMap');
/*
Ext.Ajax.request({
url : 'ajaxListener' ,
params : {action : 'verifySession'},
success: function ( result, request ) {
var data = Ext.util.JSON.decode(result.responseText);
if( data.lostSession ) {
Ext.Msg.show({
title: _('ID_ERROR'),
msg: data.message,
animEl: 'elId',
icon: Ext.MessageBox.ERROR,
buttons: Ext.MessageBox.OK,
fn : function(btn) {
try
{
prnt = parent.parent;
top.location = top.location;
}
catch (err)
{
parent.location = parent.location;
}
}
});
} else {
Actions.tabFrame('processMap');
}
},
failure: function (result, request) {
if (typeof(result.responseText) != 'undefined') {
Ext.MessageBox.alert( _('ID_FAILED'), result.responseText);
}
}
});
*/
}
You will have to
clear the cache in your web browser after making this change to use the new code.
If you can't change the source code, then you can also get around the problem for now, by adding a button to your Dynaforms with the ID "showProcessMap". Then add the following JavaScript to the Dynaform:
Code: Select all$("#showProcessMap").getControl().click( function() {
parent.Actions.tabFrame('processMap');
});