diff --git a/workflow/engine/methods/cases/casesStreamingFile.php b/workflow/engine/methods/cases/casesStreamingFile.php
index a5e644156..fdc5c1ffb 100644
--- a/workflow/engine/methods/cases/casesStreamingFile.php
+++ b/workflow/engine/methods/cases/casesStreamingFile.php
@@ -24,8 +24,8 @@ if ($actionAjax == "streaming") {
$file = \G::getPathFromFileUID($oAppDocument->Fields['APP_UID'], $sAppDocUid);
- $realPath = PATH_DOCUMENT . $app_uid . '/' . $file[0] . $file[1] . '_' . $iDocVersion . '.' . $ext;
- $realPath1 = PATH_DOCUMENT . $app_uid . '/' . $file[0] . $file[1] . '.' . $ext;
+ $realPath = PATH_DOCUMENT . G::getPathFromUID($app_uid) . '/' . $file[0] . $file[1] . '_' . $iDocVersion . '.' . $ext;
+ $realPath1 = PATH_DOCUMENT . G::getPathFromUID($app_uid) . '/' . $file[0] . $file[1] . '.' . $ext;
if (file_exists( $realPath )) {
$finfo = finfo_open(FILEINFO_MIME_TYPE);
diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php
index ee1204f01..3b0e14ba9 100755
--- a/workflow/engine/methods/cases/cases_Step.php
+++ b/workflow/engine/methods/cases/cases_Step.php
@@ -130,7 +130,13 @@ if (isset( $oProcessFieds['PRO_DEBUG'] ) && $oProcessFieds['PRO_DEBUG']) {
}
//cleaning debug variables
-if (! isset( $_GET['breakpoint'] )) {
+$flagExecuteBeforeTriggers = !isset($_GET["breakpoint"]);
+
+if (isset($_GET["TYPE"]) && $_GET["TYPE"] == "OUTPUT_DOCUMENT" && isset($_GET["ACTION"]) && $_GET["ACTION"] != "GENERATE") {
+ $flagExecuteBeforeTriggers = false;
+}
+
+if ($flagExecuteBeforeTriggers) {
if (isset( $_SESSION['TRIGGER_DEBUG']['info'] )) {
unset( $_SESSION['TRIGGER_DEBUG']['info'] );
}
diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Light.php b/workflow/engine/src/ProcessMaker/BusinessModel/Light.php
index c2015ae7d..a45f086d1 100644
--- a/workflow/engine/src/ProcessMaker/BusinessModel/Light.php
+++ b/workflow/engine/src/ProcessMaker/BusinessModel/Light.php
@@ -403,8 +403,8 @@ class Light
//$app_uid = \G::getPathFromUID($oAppDocument->Fields['APP_UID']);
$file = \G::getPathFromFileUID($oAppDocument->Fields['APP_UID'], $sAppDocUid);
- $realPath = PATH_DOCUMENT . $app_uid . '/' . $file[0] . $file[1] . '_' . $iDocVersion . '.' . $ext;
- $realPath1 = PATH_DOCUMENT . $app_uid . '/' . $file[0] . $file[1] . '.' . $ext;
+ $realPath = PATH_DOCUMENT . G::getPathFromUID($app_uid) . '/' . $file[0] . $file[1] . '_' . $iDocVersion . '.' . $ext;
+ $realPath1 = PATH_DOCUMENT . G::getPathFromUID($app_uid) . '/' . $file[0] . $file[1] . '.' . $ext;
$width = isset($fileData['width']) ? $fileData['width']:null;
$height = isset($fileData['height']) ? $fileData['height']:null;
@@ -604,8 +604,9 @@ class Light
*/
public function getInformation($userUid, $type, $app_uid)
{
- //$response = array();
+ $response = array();
switch ($type) {
+ case 'unassigned':
case 'paused':
case 'participated':
$oCase = new \Cases();
diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Light.php b/workflow/engine/src/ProcessMaker/Services/Api/Light.php
index c3421e0c6..ea3b3382a 100644
--- a/workflow/engine/src/ProcessMaker/Services/Api/Light.php
+++ b/workflow/engine/src/ProcessMaker/Services/Api/Light.php
@@ -611,52 +611,18 @@ class Light extends Api
}
/**
- * @url POST /case/:app_uid/input-document
+ * @url POST /case/:app_uid/upload/location
*
- * @param string $app_uid { @min 32}{@max 32}
- * @param string $tas_uid {@min 32}{@max 32}
- * @param string $app_doc_comment
- * @param string $inp_doc_uid {@min 32}{@max 32}
- */
- public function doPostInputDocument($app_uid, $tas_uid, $app_doc_comment, $inp_doc_uid)
- {
- try {
- $userUid = $this->getUserId();
- $inputDocument = new \ProcessMaker\BusinessModel\Cases\InputDocument();
- $file = $inputDocument->addCasesInputDocument($app_uid, $tas_uid, $app_doc_comment, $inp_doc_uid, $userUid);
- $response = $this->parserInputDocument($file);
- } catch (\Exception $e) {
- throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
- }
- return $response;
- }
-
- public function parserInputDocument ($data)
- {
- $structure = array(
- 'app_doc_uid' => 'fileId',
- 'app_doc_filename' => 'fileName',
- 'app_doc_version' => 'version'
- );
- $response = $this->replaceFields($data, $structure);
- return $response;
- }
-
- /**
- * @url POST /case/:app_uid/input-document/location
- *
- * @param string $app_uid { @min 32}{@max 32}
- * @param string $tas_uid {@min 32}{@max 32}
- * @param string $app_doc_comment
- * @param string $inp_doc_uid {@min 32}{@max 32}
- * @param float $latitude {@min -90}{@max 90}
+ * @param string $app_uid { @min 32}{@max 32}
+ * @param float $latitude {@min -90}{@max 90}
* @param float $longitude {@min -180}{@max 180}
*/
- public function postInputDocumentLocation($app_uid, $tas_uid, $app_doc_comment, $inp_doc_uid, $latitude, $longitude)
+ public function postInputDocumentLocation($app_uid, $latitude, $longitude)
{
try {
$userUid = $this->getUserId();
- $inputDocument = new \ProcessMaker\BusinessModel\Cases\InputDocument();
+ $oMobile = new \ProcessMaker\BusinessModel\Light();
+
$url = "http://maps.googleapis.com/maps/api/staticmap?center=".$latitude.','.$longitude."&format=jpg&size=600x600&zoom=15&markers=color:blue%7Clabel:S%7C".$latitude.','.$longitude;
$imageLocation = imagecreatefromjpeg($url);
$tmpfname = tempnam("php://temp","pmm");
@@ -668,17 +634,21 @@ class Light extends Api
$_FILES["form"]["error"] = 0;
$sizes = getimagesize($tmpfname);
$_FILES["form"]["size"] = ($sizes['0'] * $sizes['1']);
- $file = $inputDocument->addCasesInputDocument($app_uid, $tas_uid, $app_doc_comment, $inp_doc_uid, $userUid);
+
+ $request_data = array(array('name' => $_FILES["form"]["name"]));
+ $file = $oMobile->postUidUploadFiles($userUid, $app_uid, $request_data);
$strPathName = PATH_DOCUMENT . G::getPathFromUID($app_uid) . PATH_SEP;
- $strFileName = $file->app_doc_uid . "_" . $file->app_doc_version . ".jpg";
- copy($tmpfname, $strPathName . "/" . $strFileName);
- $response = $this->parserInputDocument($file);
+ $strFileName = $file[0]['appDocUid'] . "_" . $file[0]['docVersion'] . ".jpg";
+ if (! is_dir( $strPathName )) {
+ G::verifyPath( $strPathName, true );
+ }
+ copy($tmpfname, $strPathName . $strFileName);
unlink($tmpfname);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
- return $response;
+ return $file;
}
/**
diff --git a/workflow/engine/templates/cases/casesDocuments.js b/workflow/engine/templates/cases/casesDocuments.js
index 9a272b7c5..481fffbbd 100755
--- a/workflow/engine/templates/cases/casesDocuments.js
+++ b/workflow/engine/templates/cases/casesDocuments.js
@@ -1739,6 +1739,16 @@ function copymoveCtx(e) {
copymove('moveExecute');
}
+var loader = new Ext.tree.TreeLoader({
+ preloadChildren : true,
+ dataUrl : '../appFolder/appFolderAjax.php',
+ baseParams : {
+ action : 'expandNode',
+ sendWhat : 'dirs',
+ renderTree : 1
+ }
+ });
+
var documentsTab = {
id : 'documents',
// title : 'Documents',
@@ -1772,15 +1782,7 @@ var documentsTab = {
}
],
// rootVisible: false,
- loader : new Ext.tree.TreeLoader({
- preloadChildren : true,
- dataUrl : '../appFolder/appFolderAjax.php',
- baseParams : {
- action : 'expandNode',
- sendWhat : 'dirs',
- renderTree : 1
- }
- }),
+ loader : loader,
containerScroll : true,
enableDD : true,
ddGroup : 'TreeDD',
@@ -1834,10 +1836,10 @@ var documentsTab = {
return true;
}
},
- 'beforenodedrop' : {
- fn : function(e) {
- dropEvent = e;
- copymoveCtx(e);
+ 'nodedrop' : {
+ fn : function(e) {
+ dropEvent = e;
+ copymoveCtx(e);
datastore.reload();
}
},
diff --git a/workflow/engine/templates/designer/index.html b/workflow/engine/templates/designer/index.html
index 5b407f802..864036d8a 100644
--- a/workflow/engine/templates/designer/index.html
+++ b/workflow/engine/templates/designer/index.html
@@ -82,12 +82,14 @@
diff --git a/workflow/engine/templates/oauth2/clientSetup.js b/workflow/engine/templates/oauth2/clientSetup.js
index 79ef6c783..e0f051809 100644
--- a/workflow/engine/templates/oauth2/clientSetup.js
+++ b/workflow/engine/templates/oauth2/clientSetup.js
@@ -254,7 +254,7 @@ clientSetup.application = {
data: [["20"], ["30"], ["40"], ["50"], ["100"]],
autoLoad: true
});
-
+
//Components
var winData = new Ext.Window({
layout: "fit",
@@ -289,7 +289,11 @@ clientSetup.application = {
id: "txtName",
name: "txtName",
- fieldLabel: "Name"
+ fieldLabel: "Name",
+ validator: function(value){
+ var val = (value=='')? false: true;
+ return val;
+ }
},
{
xtype: "label",
@@ -320,8 +324,15 @@ clientSetup.application = {
id: "txtWebSite",
name: "txtWebSite",
- fieldLabel: "Web Site",
- vtype: "url"
+ fieldLabel: "Web Site",
+ validator: function (value){
+ var regexpUrl = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi;
+ var regexStringIp = new RegExp(regexpUrl);
+ var regexpIpAdress = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/g;
+ var regexNumberIp = new RegExp(regexpIpAdress);
+ var result = (value.match(regexStringIp) || value.match(regexNumberIp))? true : false;
+ return result;
+ }
},
{
xtype: "label",
@@ -345,7 +356,7 @@ clientSetup.application = {
fieldLabel: " ",
labelSeparator: "",
- html: "" + "here should we return after successfully authenticating? For @Anywhere applications, only the domain specified in the callback will be used. OAuth 1.0a applications should explicitly specify their oauth_callback URL on the request token step, regardless of the value given here. To restrict your application from using callbacks, leave this field blank." + ""
+ html: "" + "URL where redirected after successfully authenticating (calling the {workspace}/oauth2/authorize endpoint). This URL typically contains code to get the access token from the {workspace}/oauth2/token endpoint. To prevent your application from using callbacks, leave this field blank." + ""
}
]
})
@@ -499,7 +510,7 @@ clientSetup.application = {
var btnDetail = new Ext.Action({
id: "btnDetail",
- text: _("ID_DETAIL"),
+ text: _("ID_DETAILS"),
iconCls: "button_menu_ext ss_sprite ss_zoom",
handler: function ()
@@ -695,7 +706,7 @@ clientSetup.application = {
items: [grdpnlMain]
});
}
+
}
-Ext.onReady(clientSetup.application.init, clientSetup.application);
-
+Ext.onReady(clientSetup.application.init, clientSetup.application);
\ No newline at end of file
diff --git a/workflow/engine/templates/setup/main.js b/workflow/engine/templates/setup/main.js
index 4ff9ece69..0424cb71d 100755
--- a/workflow/engine/templates/setup/main.js
+++ b/workflow/engine/templates/setup/main.js
@@ -4,6 +4,8 @@
*/
var _NODE_SELECTED;
+var flagRenderTabLog = false;
+
var main = function(){
var cookiep = new Ext.state.CookieProvider();
@@ -130,7 +132,19 @@ var main = function(){
activeTab:this.items.indexOf(this.getActiveTab())
};
},
- items: items
+ items: items,
+ listeners: {
+ tabchange: function (tabpanel, tab)
+ {
+ if (tab.id == "logs" && flagRenderTabLog) {
+ tab.getLoader().load(tab.root);
+ }
+
+ if (tab.id == "logs") {
+ flagRenderTabLog = true;
+ }
+ }
+ }
}),
{
region: 'center',
@@ -166,5 +180,3 @@ new Ext.KeyMap(document, {
});
Ext.onReady(main);
-
-