Skip to content
This repository was archived by the owner on Nov 25, 2020. It is now read-only.

Commit 7310b06

Browse files
committed
Set a correct message when enqueuing tasks in background.
Remove legacy JS code for managing background tasks client-side.
1 parent 1c8dc98 commit 7310b06

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+147
-430
lines changed

core/src/core/src/pydio/Core/Controller/CliRunner.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,6 @@ public static function applyActionInBackground(ContextInterface $ctx, $actionNam
105105
$cmd .= " --$key=" . escapeshellarg($value);
106106
}
107107
}
108-
error_log($cmd);
109108
$envSet = false;
110109
if ($ctx->getRepository()->getContextOption($ctx, "USE_SESSION_CREDENTIALS")) {
111110
$envSet = MemorySafe::setEnv();

core/src/core/src/pydio/Core/Controller/Controller.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,6 @@ private static function handleRequest($callback, ServerRequestInterface &$reques
387387
$request = $request->withParsedBody($httpVars);
388388

389389
if(!empty($result)){
390-
error_log("Action has result " . $request->getAttribute("action").", wrapping in XML Doc");
391390
$response->getBody()->write(XMLWriter::wrapDocument($result));
392391
$response = $response->withHeader("Content-type", "text/xml; charset=UTF-8");
393392
}

core/src/core/src/pydio/Core/Controller/XMLWriter.php

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -392,43 +392,6 @@ public static function requireAuth($print = true)
392392
{
393393
return XMLWriter::write("<require_auth/>", $print);
394394
}
395-
/**
396-
* Triggers a background action client side
397-
* @static
398-
* @param $actionName
399-
* @param $parameters
400-
* @param $messageId
401-
* @param bool $print
402-
* @param int $delay
403-
* @return string
404-
*/
405-
public static function triggerBgAction($actionName, $parameters, $messageId, $print=true, $delay = 0)
406-
{
407-
$messageId = StringHelper::xmlEntities($messageId);
408-
$data = XMLWriter::write("<trigger_bg_action name=\"$actionName\" messageId=\"$messageId\" delay=\"$delay\">", $print);
409-
foreach ($parameters as $paramName=>$paramValue) {
410-
$paramValue = StringHelper::xmlEntities($paramValue);
411-
$data .= XMLWriter::write("<param name=\"$paramName\" value=\"$paramValue\"/>", $print);
412-
}
413-
$data .= XMLWriter::write("</trigger_bg_action>", $print);
414-
return $data;
415-
}
416-
417-
/**
418-
* Send directly JavaScript code to the client
419-
* @param $jsCode
420-
* @param $messageId
421-
* @param bool $print
422-
* @param int $delay
423-
* @return string
424-
*/
425-
public static function triggerBgJSAction($jsCode, $messageId, $print=true, $delay = 0)
426-
{
427-
$data = XMLWriter::write("<trigger_bg_action name=\"javascript_instruction\" messageId=\"$messageId\" delay=\"$delay\">", $print);
428-
$data .= XMLWriter::write("<clientCallback><![CDATA[".$jsCode."]]></clientCallback>", $print);
429-
$data .= XMLWriter::write("</trigger_bg_action>", $print);
430-
return $data;
431-
}
432395

433396
/**
434397
* List all bookmmarks as XML

core/src/core/src/pydio/Core/Http/Message/BgActionTrigger.php renamed to core/src/core/src/pydio/Core/Http/Message/JsActionTrigger.php

Lines changed: 8 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -30,51 +30,29 @@
3030
* An XML response triggering a background action in Pydio UI.
3131
* @package Pydio\Core\Http\Message
3232
*/
33-
class BgActionTrigger implements XMLSerializableResponseChunk
33+
class JsActionTrigger implements XMLSerializableResponseChunk
3434
{
35-
private $actionName;
36-
private $parameters;
37-
private $messageId;
3835
private $delay;
39-
4036
private $javascriptCode;
4137

4238
/**
43-
* @param string $actionName
44-
* @param array $parameters
45-
* @param string $messageId
39+
* @param string $jsCode
4640
* @param int $delay
4741
*/
48-
public function __construct($actionName, $parameters, $messageId, $delay = 0)
42+
public function __construct($jsCode, $delay = 0)
4943
{
50-
$this->actionName = $actionName;
51-
$this->parameters = $parameters;
52-
$this->messageId = $messageId;
44+
$this->javascriptCode = $jsCode;
5345
$this->delay = $delay;
5446
}
5547

56-
/**
57-
* Factory for BgActionTrigger
58-
* @param string $jsCode
59-
* @param string $messageId
60-
* @param int $delay
61-
* @return BgActionTrigger
62-
*/
63-
public static function createForJsAction($jsCode, $messageId, $delay = 0){
64-
$newOne = new BgActionTrigger("javascript_action", [], $messageId, $delay);
65-
$newOne->javascriptCode = $jsCode;
66-
return $newOne;
67-
}
68-
6948
/**
7049
* @return string
7150
*/
7251
public function toXML()
7352
{
74-
if(isSet($this->javascriptCode)){
75-
return XMLWriter::triggerBgJSAction($this->javascriptCode, false, $this->delay);
76-
}else{
77-
return XMLWriter::triggerBgAction($this->actionName, $this->parameters, $this->messageId, false, $this->delay);
78-
}
53+
$data = "<trigger_bg_action name=\"javascript_instruction\" delay=\"".$this->delay."\">";
54+
$data .= "<clientCallback><![CDATA[".$this->javascriptCode."]]></clientCallback>";
55+
$data .= "</trigger_bg_action>";
56+
return $data;
7957
}
8058
}

core/src/plugins/access.fs/FsAccessDriver.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,7 @@ public function switchAction(ServerRequestInterface &$request, ResponseInterface
785785
$taskId = $request->getAttribute("pydio-task-id");
786786
if($request->getAttribute("pydio-task-id") === null){
787787
$task = TaskService::actionAsTask($ctx, $action, $httpVars);
788+
$task->setActionLabel($mess, '313');
788789
$task->setFlags(Task::FLAG_STOPPABLE);
789790
$response = TaskService::getInstance()->enqueueTask($task, $request, $response);
790791
break;
@@ -907,6 +908,7 @@ public function switchAction(ServerRequestInterface &$request, ResponseInterface
907908
$taskId = $request->getAttribute("pydio-task-id");
908909
if($taskId === null && ($size === -1 || $size > $bgSizeThreshold)){
909910
$task = TaskService::actionAsTask($ctx, $action, $httpVars);
911+
$task->setActionLabel($mess, '7');
910912
if($size === -1 || $size > $bgWorkerThreshold){
911913
$task->setSchedule(new Schedule(Schedule::TYPE_ONCE_DEFER));
912914
}
@@ -932,6 +934,7 @@ public function switchAction(ServerRequestInterface &$request, ResponseInterface
932934
$taskId = $request->getAttribute("pydio-task-id");
933935
if($taskId === null && !ApplicationState::sapiIsCli()){
934936
$task = TaskService::actionAsTask($ctx, $action, $httpVars);
937+
$task->setActionLabel($mess, '221');
935938
$response = TaskService::getInstance()->enqueueTask($task, $request, $response);
936939
break;
937940
}
@@ -991,6 +994,7 @@ public function switchAction(ServerRequestInterface &$request, ResponseInterface
991994
}
992995
if($taskId === null && ($size === -1 || $size > $bgSizeThreshold)){
993996
$task = TaskService::actionAsTask($ctx, $action, $httpVars);
997+
$task->setActionLabel($mess, $action === 'copy' ? '66' : '70');
994998
$task->setFlags(Task::FLAG_STOPPABLE);
995999
if($size === -1 || $size > $bgWorkerThreshold){
9961000
$task->setSchedule(new Schedule(Schedule::TYPE_ONCE_DEFER));

core/src/plugins/access.fs/fsActions.xml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,8 @@
146146
}
147147
if(pydio.getController().getActionByName("trigger_remote_copy")){
148148
modal.setCloseAction(function(){
149-
ajaxplorer.fireContextRefresh();
150-
var bgManager = pydio.getController().getBackgroundTasksManager();
151-
bgManager.queueAction("trigger_remote_copy", {}, "Copying files to server");
152-
bgManager.next();
149+
pydio.fireContextRefresh();
150+
PydioApi.getClient().request({get_action:'trigger_remote_copy'});
153151
});
154152
}
155153
if(uploader.dialogOnOpen){

core/src/plugins/access.ftp/FtpAccessDriver.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ public function uploadActions(ServerRequestInterface &$request, ResponseInterfac
161161
if ($nextFile!='') {
162162
//$x->addChunk(new BgActionTrigger("next_to_remote", array(), "Copying file ".TextEncoder::toUTF8($nextFile)." to remote server"));
163163
$newTask = TaskService::actionAsTask($ctx, "next_to_remote", []);
164+
$newTask->setLabel("Copying file " . $nextFile . " to remote server");
164165
$response = TaskService::getInstance()->enqueueTask($newTask, $request, $response);
165166
} else {
166167
//$x->addChunk(new BgActionTrigger("reload_node", array(), "Upload done, reloading client."));
@@ -223,6 +224,7 @@ public function uploadActions(ServerRequestInterface &$request, ResponseInterfac
223224
$this->writeUploadSuccess($request, ["PREVENT_NOTIF" => true]);
224225

225226
$task = TaskService::actionAsTask($ctx, "next_to_remote", []);
227+
$task->setLabel("Copying file to remote server");
226228
TaskService::getInstance()->enqueueTask($task, $request, $response);
227229

228230
} catch (\Exception $e) {

core/src/plugins/action.powerfs/PowerFSController.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
use Pydio\Core\PluginFramework\PluginsService;
3434
use Psr\Http\Message\ServerRequestInterface;
3535
use Psr\Http\Message\ResponseInterface;
36-
use Pydio\Core\Http\Message\BgActionTrigger;
36+
use Pydio\Core\Http\Message\JsActionTrigger;
3737
use Pydio\Tasks\Task;
3838
use Pydio\Tasks\TaskService;
3939
use RecursiveDirectoryIterator;
@@ -106,6 +106,7 @@ public function switchAction(ServerRequestInterface &$request, ResponseInterface
106106

107107
if ($taskId === null) {
108108
$task = TaskService::actionAsTask($ctx, $request->getAttribute("action"), $httpVars);
109+
$task->setLabel($mess['powerfs.1']);
109110
$task->setFlags(Task::FLAG_STOPPABLE | Task::FLAG_HAS_PROGRESS);
110111
TaskService::getInstance()->enqueueTask($task, $request, $response);
111112
return;
@@ -190,7 +191,7 @@ public function switchAction(ServerRequestInterface &$request, ResponseInterface
190191
} else {
191192
$archiveName = str_replace("'", "\'", $originalArchiveParam);
192193
$jsCode = " PydioApi.getClient().downloadSelection(null, $('download_form'), 'postcompress_download', {ope_id:'" . $opeId . "',archive_name:'" . $archiveName . "'}); ";
193-
$actionTrigger = BgActionTrigger::createForJsAction($jsCode, $mess["powerfs.3"]);
194+
$actionTrigger = new JsActionTrigger($jsCode, 0);
194195
Controller::applyHook("msg.instant", array($ctx, $actionTrigger->toXML()));
195196

196197
}

core/src/plugins/action.quicksend/class.QuicksendManager.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,8 @@ Class.create("QuicksendManager", AjxpPane, {
3737
var uploader = uploaders[0];
3838
if(pydio.getController().getActionByName("trigger_remote_copy")){
3939
modal.setCloseAction(function(){
40-
ajaxplorer.fireContextRefresh();
41-
var bgManager = pydio.getController().getBackgroundTasksManager();
42-
bgManager.queueAction("trigger_remote_copy", {}, "Copying files to server");
43-
bgManager.next();
40+
pydio.fireContextRefresh();
41+
PydioApi.getClient().request({get_action:'trigger_remote_copy'});
4442
});
4543
}
4644
if(uploader.dialogOnOpen){

core/src/plugins/cache.doctrine/src/PydioApcuCache.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,16 @@ public function setNamespace($namespace)
6767
parent::setNamespace($namespace);
6868
$this->internalNamespace = $namespace;
6969
}
70+
71+
/**
72+
* {@inheritdoc}
73+
*/
74+
protected function doFetchMultiple(array $keys)
75+
{
76+
$test = apcu_fetch($keys);
77+
if($test === false) return [];
78+
else return $test;
79+
}
80+
81+
7082
}

0 commit comments

Comments
 (0)