diff --git a/contrib/openldap/core-fd.schema b/contrib/openldap/core-fd.schema index 6c7a7f66222f5ad40b8193107b7146da5c2bba8f..7c34692ec7819c87837ce12d616ac95c50fe8cc2 100644 --- a/contrib/openldap/core-fd.schema +++ b/contrib/openldap/core-fd.schema @@ -357,6 +357,17 @@ attributetype ( 1.3.6.1.4.1.38414.89.1.13 NAME 'fdTasksGranularMail' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) +attributetype ( 1.3.6.1.4.1.38414.89.1.14 NAME 'fdTasksGranularMailFrom' + DESC 'Fusion Directory - Emails sender if object mail' + EQUALITY caseExactMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) + +attributetype ( 1.3.6.1.4.1.38414.89.1.15 NAME 'fdTasksGranularRef' + DESC 'Fusion Directory - Reference towards a CN (E.g Mail Template)' + EQUALITY caseExactMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 + SINGLE-VALUE ) + ##### Classes ##### objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.4 NAME 'gosaDepartment' SUP top AUXILIARY @@ -454,5 +465,5 @@ objectclass (1.3.6.1.4.1.38414.89.2.2 NAME 'fdTasksMail' objectclass (1.3.6.1.4.1.38414.89.2.3 NAME 'fdTasksGranular' DESC 'FusionDirectory - Tasks granular objects' - MUST ( fdTasksGranularMaster $ cn $ fdTasksGranularMail $ - fdTasksGranularType $ fdTasksGranularSchedule $ fdTasksGranularStatus )) + MUST ( fdTasksGranularMaster $ cn $ fdTasksGranularMail $ fdTasksGranularMailFrom $ + fdTasksGranularRef $ fdTasksGranularType $ fdTasksGranularSchedule $ fdTasksGranularStatus )) diff --git a/plugins/addons/tasks/class_tasksGranular.inc b/plugins/addons/tasks/class_tasksGranular.inc index 7a504f34f6f8bcb1d0a7a98ab6f787d0978e3dfa..fec3e35248b928cf0d803ee7e8f8d68833475fdc 100644 --- a/plugins/addons/tasks/class_tasksGranular.inc +++ b/plugins/addons/tasks/class_tasksGranular.inc @@ -59,9 +59,13 @@ class tasksGranular extends simplePlugin new HiddenAttribute('fdTasksGranularStatus', TRUE, '1', '', 'Status', 'Status of the task'), new HiddenAttribute('fdTasksGranularMaster', TRUE, '', '', 'Master CN', 'Name of the Master task'), new HiddenAttribute('fdTasksGranularType', TRUE, '', '', 'Type', 'Type of the task'), + new HiddenAttribute('fdTasksGranularRef', TRUE, '', '', 'Type', 'Reference towards a required CN (mail template E.g'), new MailAttribute( _('Email'), _('Email address which will be sent to'), 'fdTasksGranularMail', TRUE), + new MailAttribute( + _('Email'), + _('Email address which will be sent from'), 'fdTasksGranularMailFrom', TRUE), new DateTimeAttribute( _('Schedule'), '', 'fdTasksGranularSchedule', FALSE diff --git a/plugins/addons/tasks/class_tasksMail.inc b/plugins/addons/tasks/class_tasksMail.inc index a884b5572095fb57b19b3fb8fb7792c99a92d6d4..8855749778d4d83c9f7934bc5f4a408afab95437 100644 --- a/plugins/addons/tasks/class_tasksMail.inc +++ b/plugins/addons/tasks/class_tasksMail.inc @@ -158,6 +158,9 @@ class tasksMail extends simplePlugin public function generateSlaveTasks () { $emails = $this->attributesAccess['fdTasksEmailsFromDN']->getValue(); + // Ref is supposed to be the mail object CN in this class + $ref = $this->attributesAccess['fdTasksMailObject']->getValue(); + $from = $this->attributesAccess['fdTasksEmailSender']->getValue(); // Incremental id allowing creation of different CN for sub tasks $id = 0; @@ -185,6 +188,8 @@ class tasksMail extends simplePlugin "fdTasksGranularMaster" => $this->dn, "fdTasksGranularMail" => $email, "fdTasksGranularSchedule" => $schedule, + "fdTasksGranularRef" => $ref, + "fdTasksGranularMailFrom" => $from ]; foreach ($values as $tab => $tabvalues) { @@ -202,8 +207,9 @@ class tasksMail extends simplePlugin } $errors = $tabObject->save(); + if (!empty($errors)) { - $show_error = new SimplePluginError($this, htmlescape(sprintf(_('Error : "%s", already exist ! Editing existing tasks is forbidden.'), $subTaskName))); + $show_error = new SimplePluginError($this, htmlescape(sprintf(_('Error : "%s", already exist ! Editing existing tasks is forbidden.'), $subTaskName.$errors))); $show_error->display(); } } diff --git a/plugins/admin/tasks/class_tasksColumn.inc b/plugins/admin/tasks/class_tasksColumn.inc index 664ee120d50f5f4a1770409d27be20b365a12311..847b7a24fc5b1f790f52f550b79c8516bbca46a4 100644 --- a/plugins/admin/tasks/class_tasksColumn.inc +++ b/plugins/admin/tasks/class_tasksColumn.inc @@ -32,10 +32,10 @@ class TasksColumn extends Column } else { switch ($this->attributes[0]) { case 'fdTasksStatus': - return static::filterStatus(intval($value)); + return static::filterStatus($value); case 'fdTasksGranularStatus': - return static::filterStatus(intval($value)); + return static::filterStatus($value); // This case needs optimization case 'fdTasksMailObject': @@ -56,18 +56,18 @@ class TasksColumn extends Column } } - static function filterStatus (int $status = NULL): string + static function filterStatus (string $status = NULL): string { // A call towards a status map would be interesting here. switch ($status) { - case 1 : + case "1" : return "Created"; - case 2 : + case "2" : return "Processed"; default : - return "Error Encountered"; + return $status; } } diff --git a/plugins/admin/tasks/class_tasksManagement.inc b/plugins/admin/tasks/class_tasksManagement.inc index 3d5e81417daf62c79c19dd5e572debc8b2f4aeba..0b95d5ca7268d908eec82568cdfcb8f1af983a01 100644 --- a/plugins/admin/tasks/class_tasksManagement.inc +++ b/plugins/admin/tasks/class_tasksManagement.inc @@ -31,10 +31,8 @@ class tasksManagement extends management ['LinkColumn', ['attributes' => 'cn', 'label' => 'Tasks']], //below fdTasksMailObject must be change to have a type defined within task creation (new ldap attributes ?hidden) ['TasksColumn', ['attributes' => 'fdTasksMailObject', 'label' => 'Types']], - ['TasksColumn', ['attributes' => 'fdTasksScheduleDate', 'label' => 'Schedule']], - //below fdTasksStatus attribute needs to be calculated based on the type of the task. - ['TasksColumn', ['attributes' => 'fdTasksStatus', 'label' => 'Status']], ['Column', ['attributes' => 'fdTasksCreationDate', 'label' => 'Creation Date']], + ['TasksColumn', ['attributes' => 'fdTasksScheduleDate', 'label' => 'Scheduled']], ['ActionsColumn', ['label' => 'Actions']], ];