Added a proceed URL after worker has finished
authorAlexander Ebert <ebert@woltlab.com>
Wed, 14 Sep 2011 14:02:46 +0000 (16:02 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Wed, 14 Sep 2011 14:02:46 +0000 (16:02 +0200)
wcfsetup/install/files/acp/js/WCF.ACP.js
wcfsetup/install/files/lib/acp/action/WorkerProxyAction.class.php
wcfsetup/install/files/lib/system/worker/IWorker.class.php
wcfsetup/install/files/lib/system/worker/MailWorker.class.php

index f09fda84c753da39093f48a2514787239cba47e2..66509e65b05c6ea9c4e06accd7f3838863751a8c 100644 (file)
@@ -614,5 +614,16 @@ WCF.ACP.Worker.prototype = {
                                }
                        });
                }
+               else {
+                       // display proceed button
+                       var $proceedButton = $('<input type="submit" value="Proceed" />').appendTo('#workerInnerContent');
+                       $proceedButton.click(function() {
+                               window.location = $data.proceedURL;
+                       });
+                       
+                       $('#workerInnerContentContainer').wcfBlindIn();
+                       
+                       this._dialog.wcfDialog('redraw');
+               }
        }
 };
\ No newline at end of file
index ac0268b45b11bc6d58657e088578fe705093275c..874950cd6c032cf3eace419e7e9d68389c5482a3 100644 (file)
@@ -109,7 +109,7 @@ class WorkerProxyAction extends AbstractSecureAction {
                $this->worker->execute();
                
                // send current state
-               $this->sendResponse($progress, $this->worker->getParameters());
+               $this->sendResponse($progress, $this->worker->getParameters(), $this->worker->getProceedURL());
                
        }
        
@@ -118,8 +118,9 @@ class WorkerProxyAction extends AbstractSecureAction {
         * 
         * @param       integer         $progress
         * @param       array           $parameters
+        * @param       string          $proceedURL
         */
-       protected function sendResponse($progress = 0, array $parameters = null) {
+       protected function sendResponse($progress = 0, array $parameters = null, $proceedURL = '') {
                if ($parameters === null) $parameters = $this->parameters;
                
                // build return values
@@ -127,6 +128,7 @@ class WorkerProxyAction extends AbstractSecureAction {
                        'className' => $this->className,
                        'loopCount' => ($this->loopCount + 1),
                        'parameters' => $parameters,
+                       'proceedURL' => $proceedURL,
                        'progress' => $progress
                );
                
index b30c396b131160bcfc221ebf2e01aa95c62380a5..27fc66d20a9614faf5f9f33ea44f3b198ad09894 100644 (file)
@@ -50,4 +50,11 @@ interface IWorker {
         * Validates parameters.
         */
        public function validate();
+       
+       /**
+        * Returns URL for redirect after worker finished.
+        * 
+        * @return      string
+        */
+       public function getProceedURL();
 }
index 1a2f11430ae741dc46b9035f4988e8c76a397adb..f634af53f8cfc47128f3fb25987c309c5a921ade 100644 (file)
@@ -131,4 +131,11 @@ class MailWorker extends AbstractWorker {
                }
                catch (SystemException $e) {} // ignore errors
        }
+       
+       /**
+        * @see wcf\system\worker\IWorker::getProceedURL()
+        */
+       public function getProceedURL() {
+               return 'index.php?page=UserList' . SID_ARG_2ND_NOT_ENCODED;
+       }
 }