fix observations

fix the timezone import
This commit is contained in:
Henry Jordan
2020-06-15 17:42:10 +00:00
parent 1327b1766b
commit 09cbb6061d
6 changed files with 133 additions and 143 deletions

View File

@@ -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;

View File

@@ -1,37 +1,27 @@
<?php
use Illuminate\Support\Facades\Log;
try {
$category = (isset($_GET["category"]))? $_GET["category"] : null;
/* Render page */
$oHeadPublisher = headPublisher::getSingleton();
$pmDynaform = new PmDynaform(array());
$G_MAIN_MENU = "processmaker";
$G_ID_MENU_SELECTED = "ID_SCHEDULER_MNU_01";
$dateTime = new \ProcessMaker\Util\DateTime();
if (!empty($_SESSION['USER_LOGGED'])) {
$arrayTimeZoneId = \DateTimeZone::listIdentifiers();
$js = "" .
"<script type='text/javascript'>\n" .
"var timezoneArray = " . G::json_encode($arrayTimeZoneId) . ";\n" .
"</script>\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 = "" .
"<script type=\"text/javascript\" src=/js/ext/translation.".SYS_LANG.".".G::browserCacheFilesGetUid() .".js></script>\n".
"<script type='text/javascript'>\n" .
"var server = '" . System::getHttpServerHostnameRequestsFrontEnd() . "';\n" .
"var credentials = " . G::json_encode($pmDynaform->getCredentials()) . ";\n" .
"var category = '" . $category . "';\n" .
"var lang = '" . SYS_LANG . "';\n" .
"var workspace = '" .config("system.workspace") . "';\n" .
"</script>\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) {
}
?>
echo($e);
}

View File

@@ -1,12 +1,8 @@
<?php
namespace ProcessMaker\BusinessModel;
use ProcessMaker\Model\TaskScheduler;
use \G;
use ProcessMaker\Plugins\Interfaces\StepDetail;
use ProcessMaker\Plugins\PluginRegistry;
use \ProcessMaker\Util;
use Illuminate\Support\Facades\Log;
use ProcessMaker\Core\System;
class TaskSchedulerBM
@@ -14,46 +10,51 @@ class TaskSchedulerBM
/**
* Return the records in Schedule Table by category
*/
public static function getSchedule($category){
public static function getSchedule($category)
{
$tasks = TaskScheduler::all();
$count = $tasks->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();
}
}
}
}

View File

@@ -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

View File

@@ -1,12 +1,11 @@
<?php
namespace ProcessMaker\Services\Api;
use \ProcessMaker\Services\Api;
use Illuminate\Support\Facades\DB;
use \Luracast\Restler\RestException;
use \ProcessMaker\Model\TaskScheduler;
use Illuminate\Support\Facades\Log;
use Exception;
use Luracast\Restler\RestException;
use ProcessMaker\BusinessModel\TaskSchedulerBM;
use ProcessMaker\Services\Api;
/**
* TaskScheduler Controller
*
@@ -15,19 +14,24 @@ use ProcessMaker\BusinessModel\TaskSchedulerBM;
class Scheduler extends Api
{
/**
* Returns the records of SchedulerTask by category
* @url GET
*
* @param string $category
*
* @return mixed
* @throws RestException
*/
public function doGet($category = null) {
try {
return TaskSchedulerBM::getSchedule($category);
} catch (\Exception $e) {
} catch (Exception $e) {
throw new RestException(Api::STAT_APP_EXCEPTION, $e->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());
}
}

View File

@@ -0,0 +1,12 @@
<script type="text/javascript" src="{$translation}"></script>
<script type="text/javascript">
var server = "{$server}";
var credentials = {$credentials};
var category = "{$category}";
var lang = "{$lang}";
var workspace = "{$workspace}";
var timezoneArray = {$timezoneArray};
</script>