diff --git a/app/Console/Commands/ScheduleRunCommand.php b/app/Console/Commands/ScheduleRunCommand.php
index 36b4eb22f..10937cb62 100755
--- a/app/Console/Commands/ScheduleRunCommand.php
+++ b/app/Console/Commands/ScheduleRunCommand.php
@@ -2,11 +2,9 @@
namespace App\Console\Commands;
-use Maveriks\WebApplication;
-use \Illuminate\Support\Carbon;
+use Illuminate\Support\Carbon;
use Illuminate\Console\Scheduling\ScheduleRunCommand as BaseCommand;
-use Illuminate\Support\Facades\Log;
-use ProcessMaker\BusinessModel\TaskSchedulerBM;
+use Maveriks\WebApplication;
use ProcessMaker\Model\TaskScheduler;
class ScheduleRunCommand extends BaseCommand
@@ -24,11 +22,11 @@ class ScheduleRunCommand extends BaseCommand
{
$this->startedAt = Carbon::now();
$this->signature = "schedule:run";
- $this->signature .= '
- {--workspace=workflow : ProcessMaker Indicates the workspace to be processed.}
- {--user=apache : ProcessMaker Indicates the user to execute the crons.}
+ $this->signature .= "
+ {--workspace=workflow : Workspace to use.}
+ {--user=apache : Operating system's user who executes the crons.}
{--processmakerPath=./ : ProcessMaker path.}
- ';
+ ";
$this->description .= ' (ProcessMaker has extended this command)';
parent::__construct($schedule);
}
@@ -54,7 +52,7 @@ class ScheduleRunCommand extends BaseCommand
$ending = isset($p->startingTime) ? $p->endingTime : "23:59";
$timezone = isset($p->timezone) && $p->timezone != "" ? $p->timezone : date_default_timezone_get();
- $body = str_replace("-c", $user . " -c", $p->body);
+ $body = str_replace("-c", $user . " -c", $p->body);
$that->schedule->exec($body)->cron($p->expression)->between($starting, $ending)->timezone($timezone)->when(function () use ($p) {
$now = Carbon::now();
$result = false;
diff --git a/workflow/engine/methods/scheduler/index.php b/workflow/engine/methods/scheduler/index.php
index 1545b3824..3b6ba39b0 100755
--- a/workflow/engine/methods/scheduler/index.php
+++ b/workflow/engine/methods/scheduler/index.php
@@ -1,37 +1,27 @@
\n" .
- "var timezoneArray = " . G::json_encode($arrayTimeZoneId) . ";\n" .
- "\n";
- echo($js);
+ global $G_PUBLISH;
+ $G_PUBLISH = new Publisher();
+ $headPublisher = headPublisher::getSingleton();
+ $category = (isset($_GET["category"]))? $_GET["category"] : null;
+ /* Render page */
- }
+ $pmDynaform = new PmDynaform([]);
+ if (!empty($_SESSION['USER_LOGGED'])) {
+ $arrayTimeZoneId = DateTimeZone::listIdentifiers();
+ $fields["timezoneArray"] = G::json_encode($arrayTimeZoneId);
+ }
- $js = "" .
- "\n".
- "\n";
- echo($js);
+ $fields["server"] = System::getHttpServerHostnameRequestsFrontEnd();
+ $fields["credentials"] = G::json_encode($pmDynaform->getCredentials());
+ $fields["category"] = $category;
+ $fields["lang"] = SYS_LANG;
+ $fields["workspace"] = config("system.workspace");
+ $fields["translation"] = "/js/ext/translation.".SYS_LANG.".".G::browserCacheFilesGetUid().".js";
- $file = file_get_contents(PATH_HOME . 'public_html/lib/taskscheduler/index.html');
- echo $file;
+ $G_PUBLISH->addContent('smarty','scheduler/index.html','', '', $fields); //Adding a HTML file .html
+ $G_PUBLISH->addContent('smarty',PATH_HOME . 'public_html/lib/taskscheduler/index.html'); //Adding a HTML file .html
+ G::RenderPage("publish", "raw");
} catch (Exception $e) {
-
-}
-?>
\ No newline at end of file
+ echo($e);
+}
\ No newline at end of file
diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/TaskSchedulerBM.php b/workflow/engine/src/ProcessMaker/BusinessModel/TaskSchedulerBM.php
index 7d724a687..3a59b824c 100755
--- a/workflow/engine/src/ProcessMaker/BusinessModel/TaskSchedulerBM.php
+++ b/workflow/engine/src/ProcessMaker/BusinessModel/TaskSchedulerBM.php
@@ -1,12 +1,8 @@
count();
- if($count == 0){
+ if ($count == 0) {
TaskSchedulerBM::generateInitialData();
$tasks = TaskScheduler::all();
- }
- if(is_null($category)){
+ }
+ if (is_null($category)) {
return $tasks;
- }else{
+ } else {
return TaskScheduler::where('category', $category)->get();
}
}
/**
* Save the record Schedule in Schedule Table
*/
- public static function saveSchedule(array $request_data){
- $task = TaskScheduler::find($request_data['id']);
- if(isset($request_data['enable'])){
- $task->enable = $request_data['enable'];
+ public static function saveSchedule(array $request)
+ {
+ $task = TaskScheduler::find($request['id']);
+ if (isset($request['enable'])) {
+ $task->enable = $request['enable'];
}
- if(isset($request_data['expression'])){
- $task->expression = $request_data['expression'];
- $task->startingTime = $request_data['startingTime'];
- $task->endingTime = $request_data['endingTime'];
- $task->timezone = $request_data['timezone'];
- $task->everyOn = $request_data['everyOn'];
- $task->interval = $request_data['interval'];
-
- }
+ if (isset($request['expression'])) {
+ $task->expression = $request['expression'];
+ $task->startingTime = $request['startingTime'];
+ $task->endingTime = $request['endingTime'];
+ $task->timezone = $request['timezone'];
+ $task->everyOn = $request['everyOn'];
+ $task->interval = $request['interval'];
+ }
$task->save();
- return array();
+ return $task;
}
- public static function generateInitialData(){
+ /**
+ * Initial data for Schedule Table, with default values
+ */
+ public static function generateInitialData()
+ {
$arraySystemConfiguration = System::getSystemConfiguration('', '', config("system.workspace"));
- $toSave = array();
- $services = array(
- array(
+ $toSave = [];
+ $services = [
+ [
"title" => "ID_TASK_SCHEDULER_UNPAUSE",
"enable" => "0",
"service" => "unpause",
@@ -64,9 +65,9 @@ class TaskSchedulerBM
"everyOn" => "1",
"interval" => "week",
"expression" => "0 */1 * * 0,1,2,3,4,5,6",
- "description" => "ID_TASK_SCHEDULER_UNPAUSE_DESC"
- ),
- array(
+ "description" => "ID_TASK_SCHEDULER_UNPAUSE_DESC"
+ ],
+ [
"title" => "ID_TASK_SCHEDULER_CALCULATE_ELAPSED",
"enable" => "0",
"service" => "calculate",
@@ -77,9 +78,9 @@ class TaskSchedulerBM
"everyOn" => "1",
"interval" => "week",
"expression" => "0 */1 * * 0,1,2,3,4,5,6",
- "description" => 'ID_TASK_SCHEDULER_CALCULATE_ELAPSED_DESC'
- ),
- array(
+ "description" => 'ID_TASK_SCHEDULER_CALCULATE_ELAPSED_DESC'
+ ],
+ [
"title" => "ID_TASK_SCHEDULER_UNASSIGNED",
"enable" => "0",
"service" => "unassigned-case",
@@ -90,9 +91,9 @@ class TaskSchedulerBM
"everyOn" => "1",
"interval" => "week",
"expression" => "0 */1 * * 0,1,2,3,4,5,6",
- "description" => 'ID_TASK_SCHEDULER_UNASSIGNED_DESC'
- ),
- array(
+ "description" => 'ID_TASK_SCHEDULER_UNASSIGNED_DESC'
+ ],
+ [
"title" => "ID_TASK_SCHEDULER_CLEAN_SELF",
"enable" => "0",
"service" => "clean-self-service-tables",
@@ -103,9 +104,9 @@ class TaskSchedulerBM
"everyOn" => "1",
"interval" => "week",
"expression" => "0 */1 * * 0,1,2,3,4,5,6",
- "description" => 'ID_TASK_SCHEDULER_CLEAN_SELF_DESC'
- ),
- array(
+ "description" => 'ID_TASK_SCHEDULER_CLEAN_SELF_DESC'
+ ],
+ [
"title" => "ID_TASK_SCHEDULER_CASE_EMAILS",
"enable" => "1",
"service" => "emails",
@@ -116,9 +117,9 @@ class TaskSchedulerBM
"everyOn" => "1",
"interval" => "week",
"expression" => "*/5 * * * 0,1,2,3,4,5,6",
- "description" => "ID_TASK_SCHEDULER_CASE_EMAILS_DESC"
- ),
- array(
+ "description" => "ID_TASK_SCHEDULER_CASE_EMAILS_DESC"
+ ],
+ [
"title" => "ID_TASK_SCHEDULER_ACTION_EMAIL",
"enable" => "1",
"service" => "",
@@ -129,9 +130,9 @@ class TaskSchedulerBM
"everyOn" => "1",
"interval" => "week",
"expression" => "*/5 * * * 0,1,2,3,4,5,6",
- "description" => "ID_TASK_SCHEDULER_ACTION_EMAIL_DESC"
- ),
- array(
+ "description" => "ID_TASK_SCHEDULER_ACTION_EMAIL_DESC"
+ ],
+ [
"title" => "ID_TASK_SCHEDULER_MESSAGE_EVENTS",
"enable" => "1",
"service" => "",
@@ -142,9 +143,9 @@ class TaskSchedulerBM
"everyOn" => "1",
"interval" => "week",
"expression" => "*/5 * * * 0,1,2,3,4,5,6",
- "description" => "ID_TASK_SCHEDULER_MESSAGE_EVENTS_DESC"
- ),
- array(
+ "description" => "ID_TASK_SCHEDULER_MESSAGE_EVENTS_DESC"
+ ],
+ [
"title" => "ID_TASK_SCHEDULER_SEND_NOT",
"enable" => "1",
"service" => "",
@@ -155,9 +156,9 @@ class TaskSchedulerBM
"everyOn" => "1",
"interval" => "week",
"expression" => "*/5 * * * 0,1,2,3,4,5,6",
- "description" => "ID_TASK_SCHEDULER_SEND_NOT_DESC"
- ),
- array(
+ "description" => "ID_TASK_SCHEDULER_SEND_NOT_DESC"
+ ],
+ [
"title" => "ID_TASK_SCHEDULER_REPORT_USERS",
"enable" => "0",
"service" => "report_by_user",
@@ -168,25 +169,15 @@ class TaskSchedulerBM
"everyOn" => "1",
"interval" => "week",
"expression" => "*/10 * * * 0,1,2,3,4,5,6",
- "description" => "ID_TASK_SCHEDULER_REPORT_USERS_DESC"
- ),
- array(
+ "description" => "ID_TASK_SCHEDULER_REPORT_USERS_DESC"
+ ],
+ [
"title" => "ID_TASK_SCHEDULER_REPORT_PROCESS",
"enable" => "0",
"service" => "report_by_process",
"category" => "reporting",
"file" => "workflow/engine/bin/cron.php",
"startingTime" => null,
- "endingTime" => null,
- "everyOn" => "1",
- "interval" => "week",
- "expression" => "*/10 * * * 0,1,2,3,4,5,6",
- "description" => "ID_TASK_SCHEDULER_REPORT_PROCESS_DESC"
- ),
- array(
- "title" => "ID_TASK_SCHEDULER_CALCULATE_APP",
- "enable" => "0",
- "service" => "calculateapp",
"category" => "reporting",
"file" => "workflow/engine/bin/cron.php",
"startingTime" => null,
@@ -194,9 +185,9 @@ class TaskSchedulerBM
"everyOn" => "1",
"interval" => "week",
"expression" => "*/10 * * * 0,1,2,3,4,5,6",
- "description" => "ID_TASK_SCHEDULER_CALCULATE_APP_DESC"
- ),
- array(
+ "description" => "ID_TASK_SCHEDULER_CALCULATE_APP_DESC"
+ ],
+ [
"title" => "ID_TASK_SCHEDULER_LDAP",
"enable" => "0",
"service" => "",
@@ -207,9 +198,9 @@ class TaskSchedulerBM
"everyOn" => "1",
"interval" => "week",
"expression" => "0 */1 * * 0,1,2,3,4,5,6",
- "description" => "ID_TASK_SCHEDULER_LDAP"
- ),
- array(
+ "description" => "ID_TASK_SCHEDULER_LDAP"
+ ],
+ [
"title" => "ID_TASK_SCHEDULER_PM_PLUGINS",
"enable" => "0",
"service" => "plugins",
@@ -220,26 +211,25 @@ class TaskSchedulerBM
"everyOn" => "1",
"interval" => "week",
"expression" => "0 */1 * * 0,1,2,3,4,5,6",
- "description" => "ID_TASK_SCHEDULER_PM_PLUGINS_DESC"
- )
- );
-
- for($i = 0; $i < count($services); ++$i) {
+ "description" => "ID_TASK_SCHEDULER_PM_PLUGINS_DESC"
+ ]
+ ];
+
+ foreach ($services as $service) {
$task = new TaskScheduler;
- $task->title = $services[$i]["title"];
- $task->category = $services[$i]["category"];
- $task->description = $services[$i]["description"];
- $task->startingTime = $services[$i]["startingTime"];
- $task->endingTime = $services[$i]["endingTime"];
- $task->body = 'su -s /bin/sh -c "php '. PATH_TRUNK . $services[$i]["file"] . " " . $services[$i]["service"] . ' +w' . config("system.workspace") . ' +force"';
- $task->expression = $services[$i]["expression"];
+ $task->title = $service["title"];
+ $task->category = $service["category"];
+ $task->description = $service["description"];
+ $task->startingTime = $service["startingTime"];
+ $task->endingTime = $service["endingTime"];
+ $task->body = 'su -s /bin/sh -c "php ' . PATH_TRUNK . $service["file"] . " " . $service["service"] . ' +w' . config("system.workspace") . ' +force"';
+ $task->expression = $service["expression"];
$task->type = "shell";
$task->system = 1;
- //$task->timezone = $arraySystemConfiguration['time_zone'];
- $task->enable = $services[$i]["enable"];
- $task->everyOn = $services[$i]["everyOn"];
- $task->interval = $services[$i]["interval"];
- $task->save();
+ $task->enable = $service["enable"];
+ $task->everyOn = $service["everyOn"];
+ $task->interval = $service["interval"];
+ $task->save();
}
}
-}
\ No newline at end of file
+}
diff --git a/workflow/engine/src/ProcessMaker/Model/TaskScheduler.php b/workflow/engine/src/ProcessMaker/Model/TaskScheduler.php
index 678c357f4..4de504e52 100755
--- a/workflow/engine/src/ProcessMaker/Model/TaskScheduler.php
+++ b/workflow/engine/src/ProcessMaker/Model/TaskScheduler.php
@@ -3,11 +3,7 @@
namespace ProcessMaker\Model;
use \Illuminate\Database\Eloquent\Model;
-use \Illuminate\Support\Facades\DB;
-use \Cron\CronExpression;
-use \Illuminate\Support\Carbon;
-use \Illuminate\Console\Scheduling\ManagesFrequencies;
-use Illuminate\Console\Scheduling\Schedule;
+
/**
* Class TaskScheduler
* @package ProcessMaker\Model
diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Scheduler.php b/workflow/engine/src/ProcessMaker/Services/Api/Scheduler.php
index 0f13f24f5..2a578ad4b 100755
--- a/workflow/engine/src/ProcessMaker/Services/Api/Scheduler.php
+++ b/workflow/engine/src/ProcessMaker/Services/Api/Scheduler.php
@@ -1,12 +1,11 @@
getMessage());
}
}
/**
+ * Receive the options sent from Scheduler UI
* @url POST
* @status 200
*
@@ -37,10 +41,10 @@ class Scheduler extends Api
* @throws RestException
*
*/
- public function doPost(array $request_data) {
+ public function doPost(array $request) {
try {
- return TaskSchedulerBM::saveSchedule($request_data);
- } catch (\Exception $e) {
+ return TaskSchedulerBM::saveSchedule($request);
+ } catch (Exception $e) {
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
}
diff --git a/workflow/engine/templates/scheduler/index.html b/workflow/engine/templates/scheduler/index.html
new file mode 100644
index 000000000..42e22714b
--- /dev/null
+++ b/workflow/engine/templates/scheduler/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+
\ No newline at end of file