From 44da2fc7efbf5fb10b6d1e1b8a29fa9595fac7f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20David?= Date: Tue, 9 Aug 2022 10:56:11 +0200 Subject: [PATCH 01/66] [Signature] add: sql & classes --- class/actions_dolimeet.class.php | 124 ++++ class/dolimeetsignature.class.php | 628 ++++++++++++++++++ meeting_attendants.php | 585 ++++++++++++++++ meeting_contact.php | 0 sql/llx_categorie_meeting.key.sql | 20 + sql/llx_categorie_meeting.sql | 20 + .../llx_dolimeet_object_signature.key.sql | 17 + .../llx_dolimeet_object_signature.sql | 41 ++ 8 files changed, 1435 insertions(+) create mode 100644 class/actions_dolimeet.class.php create mode 100644 class/dolimeetsignature.class.php create mode 100644 meeting_attendants.php create mode 100644 meeting_contact.php create mode 100644 sql/llx_categorie_meeting.key.sql create mode 100644 sql/llx_categorie_meeting.sql create mode 100644 sql/signature/llx_dolimeet_object_signature.key.sql create mode 100644 sql/signature/llx_dolimeet_object_signature.sql diff --git a/class/actions_dolimeet.class.php b/class/actions_dolimeet.class.php new file mode 100644 index 0000000..4c01d09 --- /dev/null +++ b/class/actions_dolimeet.class.php @@ -0,0 +1,124 @@ + + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file class/actions_dolismq.class.php + * \ingroup dolismq + * \brief DoliSMQ hook overload. + */ + +/** + * Class ActionsDolismq + */ +class ActionsDolismq +{ + /** + * @var DoliDB Database handler. + */ + public $db; + + /** + * @var string Error code (or message) + */ + public $error = ''; + + /** + * @var array Errors + */ + public $errors = array(); + + + /** + * @var array Hook results. Propagated to $hookmanager->resArray for later reuse + */ + public $results = array(); + + /** + * @var string String displayed by executeHook() immediately after return + */ + public $resprints; + + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + public function __construct($db) + { + $this->db = $db; + } + + /** + * Overloading the constructCategory function : replacing the parent's function with the one below + * + * @param array $parameters Hook metadatas (context, etc...) + * @param CommonObject $object The object to process (an invoice if you are in invoice module, a propale in propale's module, etc...) + * @return int < 0 on error, 0 on success, 1 to replace standard code + */ + public function constructCategory($parameters, &$object) + { + $error = 0; // Error counter + + if (in_array($parameters['currentcontext'], array('category', 'somecontext2'))) { // do something only for the context 'somecontext1' or 'somecontext2' + $tags = array( + 'question' => array( + 'id' => 50, + 'code' => 'question', + 'obj_class' => 'Question', + 'obj_table' => 'dolismq_question', + ), + 'sheet' => array( + 'id' => 51, + 'code' => 'sheet', + 'obj_class' => 'Sheet', + 'obj_table' => 'dolismq_sheet', + ), + ); + } + + if (!$error) { + $this->results = $tags; + return 0; // or return 1 to replace standard code + } else { + $this->errors[] = 'Error message'; + return -1; + } + } + + /** + * Overloading the printCommonFooter function : replacing the parent's function with the one below + * + * @param array $parameters Hook metadatas (context, etc...) + * @return int < 0 on error, 0 on success, 1 to replace standard code + */ + public function printCommonFooter($parameters) + { + $error = 0; // Error counter + + if (preg_match('/categoryindex/', $parameters['context'])) { // do something only for the context 'somecontext1' or 'somecontext2' + print ''; + } + + if (!$error) { + $this->results = array('myreturn' => 999); + return 0; // or return 1 to replace standard code + } else { + $this->errors[] = 'Error message'; + return -1; + } + } +} diff --git a/class/dolimeetsignature.class.php b/class/dolimeetsignature.class.php new file mode 100644 index 0000000..79affbf --- /dev/null +++ b/class/dolimeetsignature.class.php @@ -0,0 +1,628 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file class/digirisksignature.class.php + * \ingroup digiriskdolibarr + * \brief This file is a CRUD class file for DigiriskSignature (Create/Read/Update/Delete) + */ + +// Put here all includes required by your class file +require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/ticket.lib.php'; + +/** + * Class for DigiriskSignature + */ +class DigiriskSignature extends CommonObject +{ + /** + * @var DoliDB Database handler. + */ + public $db; + + /** + * @var string[] Array of error strings + */ + public $errors = array(); + + /** + * @var string ID of module. + */ + public $module = 'digiriskdolibarr'; + + /** + * @var string ID to identify managed object. + */ + public $element = 'object_signature'; + + /** + * @var string Name of table without prefix where object is stored. This is also the key used for extrafields management. + */ + public $table_element = 'digiriskdolibarr_object_signature'; + + /** + * @var int Does this object support multicompany module ? + * 0=No test on entity, 1=Test with field entity, 'field@table'=Test with link by field@table + */ + public $ismultientitymanaged = 1; + + /** + * @var int Does object support extrafields ? 0=No, 1=Yes + */ + public $isextrafieldmanaged = 0; + + /** + * @var string String with name of icon for digirisksignature. Must be the part after the 'object_' into object_digirisksignature.png + */ + public $picto = 'object_signature@digiriskdolibarr'; + + /** + * @var string Label status of const. + */ + public $labelStatus; + + /** + * @var string Label status short of const. + */ + public $labelStatusShort; + + const STATUS_DELETED = 0; + const STATUS_REGISTERED = 1; + const STATUS_SIGNATURE_REQUEST = 2; + const STATUS_PENDING_SIGNATURE = 3; + const STATUS_DENIED = 4; + const STATUS_SIGNED = 5; + const STATUS_UNSIGNED = 6; + const STATUS_ABSENT = 7; + const STATUS_JUSTIFIED_ABSENT = 8; + + /** + * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. + */ + public $fields = array( + 'rowid' => array('type' => 'integer', 'label' => 'TechnicalID', 'enabled' => '1', 'position' => 1, 'notnull' => 1, 'visible' => 0, 'noteditable' => '1', 'index' => 1, 'comment' => "Id"), + 'entity' => array('type' => 'integer', 'label' => 'Entity', 'enabled' => '1', 'position' => 10, 'notnull' => 1, 'visible' => -1,), + 'date_creation' => array('type' => 'datetime', 'label' => 'DateCreation', 'enabled' => '1', 'position' => 20, 'notnull' => 1, 'visible' => -2,), + 'tms' => array('type' => 'timestamp', 'label' => 'DateModification', 'enabled' => '1', 'position' => 30, 'notnull' => 0, 'visible' => -2,), + 'import_key' => array('type' => 'integer', 'label' => 'ImportId', 'enabled' => '1', 'position' => 40, 'notnull' => 1, 'visible' => -2,), + 'status' => array('type' => 'smallint', 'label' => 'Status', 'enabled' => '1', 'position' => 50, 'notnull' => 0, 'visible' => 1, 'index' => 1,), + 'role' => array('type' => 'varchar(255)', 'label' => 'Role', 'enabled' => '1', 'position' => 60, 'notnull' => 0, 'visible' => 3,), + 'firstname' => array('type' => 'varchar(255)', 'label' => 'Firstname', 'enabled' => '1', 'position' => 70, 'notnull' => 0, 'visible' => 3,), + 'lastname' => array('type' => 'varchar(255)', 'label' => 'Lastname', 'enabled' => '1', 'position' => 80, 'notnull' => 0, 'visible' => 3,), + 'email' => array('type' => 'varchar(255)', 'label' => 'Email', 'enabled' => '1', 'position' => 90, 'notnull' => 0, 'visible' => 3,), + 'phone' => array('type' => 'varchar(255)', 'label' => 'Phone', 'enabled' => '1', 'position' => 100, 'notnull' => 0, 'visible' => 3,), + 'society_name' => array('type' => 'varchar(255)', 'label' => 'SocietyName', 'enabled' => '1', 'position' => 110, 'notnull' => 0, 'visible' => 3,), + 'signature_date' => array('type' => 'datetime', 'label' => 'SignatureDate', 'enabled' => '1', 'position' => 120, 'notnull' => 0, 'visible' => 3,), + 'signature_location' => array('type' => 'varchar(255)', 'label' => 'SignatureLocation', 'enabled' => '1', 'position' => 125, 'notnull' => 0, 'visible' => 3,), + 'signature_comment' => array('type' => 'varchar(255)', 'label' => 'SignatureComment', 'enabled' => '1', 'position' => 130, 'notnull' => 0, 'visible' => 3,), + 'element_id' => array('type' => 'integer', 'label' => 'ElementType', 'enabled' => '1', 'position' => 140, 'notnull' => 1, 'visible' => 1,), + 'element_type' => array('type' => 'varchar(50)', 'label' => 'ElementType', 'enabled' => '1', 'position' => 150, 'notnull' => 0, 'visible' => 1,), + 'signature' => array('type' => 'varchar(255)', 'label' => 'Signature', 'enabled' => '1', 'position' => 160, 'notnull' => 0, 'visible' => 3,), + 'stamp' => array('type' => 'varchar(255)', 'label' => 'Stamp', 'enabled' => '1', 'position' => 165, 'notnull' => 0, 'visible' => 3,), + 'signature_url' => array('type' => 'varchar(50)', 'label' => 'SignatureUrl', 'enabled' => '1', 'position' => 170, 'notnull' => 0, 'visible' => 1, 'default' => null,), + 'transaction_url' => array('type' => 'varchar(50)', 'label' => 'TransactionUrl', 'enabled' => '1', 'position' => 180, 'notnull' => 0, 'visible' => 1,'default' => null,), + 'last_email_sent_date' => array('type' => 'datetime', 'label' => 'LastEmailSentDate', 'enabled' => '1', 'position' => 190, 'notnull' => 0, 'visible' => 3,), + 'object_type' => array('type' => 'varchar(255)', 'label' => 'object_type', 'enabled' => '1', 'position' => 195, 'notnull' => 0, 'visible' => 0,), + 'fk_object' => array('type' => 'integer', 'label' => 'FKObject', 'enabled' => '1', 'position' => 200, 'notnull' => 1, 'visible' => 0,), + ); + + public $rowid; + public $entity; + public $date_creation; + public $tms; + public $import_key; + public $status; + public $role; + public $firstname; + public $lastname; + public $email; + public $phone; + public $society_name; + public $signature_date; + public $signature_location; + public $signature_comment; + public $element_id; + public $element_type; + public $signature; + public $stamp; + public $signature_url; + public $transaction_url; + public $last_email_sent_date; + public $object_type; + public $fk_object; + + /** + * Constructor + * + * @param DoliDb $db Database handler + */ + public function __construct(DoliDB $db) + { + global $conf, $langs; + + $this->db = $db; + + if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) $this->fields['rowid']['visible'] = 0; + if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) $this->fields['entity']['enabled'] = 0; + + // Example to show how to set values of fields definition dynamically + /*if ($user->rights->digiriskdolibarr->digirisksignature->read) { + $this->fields['myfield']['visible'] = 1; + $this->fields['myfield']['noteditable'] = 0; + }*/ + + // Unset fields that are disabled + foreach ($this->fields as $key => $val) { + if (isset($val['enabled']) && empty($val['enabled'])) { + unset($this->fields[$key]); + } + } + + // Translate some data of arrayofkeyval + if (is_object($langs)) { + foreach ($this->fields as $key => $val) { + if ( ! empty($val['arrayofkeyval']) && is_array($val['arrayofkeyval'])) { + foreach ($val['arrayofkeyval'] as $key2 => $val2) { + $this->fields[$key]['arrayofkeyval'][$key2] = $langs->trans($val2); + } + } + } + } + } + + /** + * Create object into database + * + * @param User $user User that creates + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, Id of created object if OK + */ + public function create(User $user, $notrigger = false) + { + return $this->createCommon($user, $notrigger); + } + + /** + * Load object in memory from the database + * + * @param int $id Id object + * @param string $ref Ref + * @param string $morewhere More SQL filters (' AND ...') + * @return int <0 if KO, 0 if not found, >0 if OK + */ + public function fetch($id, $ref = null, $morewhere = '') + { + return $this->fetchCommon($id, $ref, $morewhere); + } + + /** + * Load list of objects in memory from the database. + * + * @param string $sortorder Sort Order + * @param string $sortfield Sort field + * @param int $limit limit + * @param int $offset Offset + * @param array $filter Filter array. Example array('field'=>'valueforlike', 'customurl'=>...) + * @param string $filtermode Filter mode (AND or OR) + * @param string $old_table_element + * @return array|int int <0 if KO, array of pages if OK + * @throws Exception + */ + public function fetchAll($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND', $old_table_element = '') + { + dol_syslog(__METHOD__, LOG_DEBUG); + + $records = array(); + + $sql = 'SELECT '; + if (dol_strlen($old_table_element) > 0) { + unset($this->fields['signature_location']); + unset($this->fields['object_type']); + } + $sql .= $this->getFieldList(); + + if (dol_strlen($old_table_element)) { + $sql .= ' FROM ' . MAIN_DB_PREFIX . $old_table_element . ' as t'; + } else { + $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t'; + } if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) $sql .= ' WHERE t.entity IN (' . getEntity($this->table_element) . ')'; + else $sql .= ' WHERE 1 = 1'; + // Manage filter + $sqlwhere = array(); + if (count($filter) > 0) { + foreach ($filter as $key => $value) { + if ($key == 't.rowid') { + $sqlwhere[] = $key . '=' . $value; + } elseif (in_array($this->fields[$key]['type'], array('date', 'datetime', 'timestamp'))) { + $sqlwhere[] = $key . ' = \'' . $this->db->idate($value) . '\''; + } elseif ($key == 'customsql') { + $sqlwhere[] = $value; + } elseif (strpos($value, '%') === false) { + $sqlwhere[] = $key . ' IN (' . $this->db->sanitize($this->db->escape($value)) . ')'; + } else { + $sqlwhere[] = $key . ' LIKE \'%' . $this->db->escape($value) . '%\''; + } + } + } + if (count($sqlwhere) > 0) { + $sql .= ' AND (' . implode(' ' . $filtermode . ' ', $sqlwhere) . ')'; + } + + if ( ! empty($sortfield)) { + $sql .= $this->db->order($sortfield, $sortorder); + } + if ( ! empty($limit)) { + $sql .= ' ' . $this->db->plimit($limit, $offset); + } + $resql = $this->db->query($sql); + if ($resql) { + $num = $this->db->num_rows($resql); + $i = 0; + while ($i < ($limit ? min($limit, $num) : $num)) { + $obj = $this->db->fetch_object($resql); + + $record = new self($this->db); + $record->setVarsFromFetchObj($obj); + + $records[$record->id] = $record; + + $i++; + } + $this->db->free($resql); + + return $records; + } else { + $this->errors[] = 'Error ' . $this->db->lasterror(); + dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); + + return -1; + } + } + + /** + * Update object into database + * + * @param User $user User that modifies + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, >0 if OK + */ + public function update(User $user, $notrigger = false) + { + return $this->updateCommon($user, $notrigger); + } + + /** + * Delete object in database + * + * @param User $user User that deletes + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, >0 if OK + */ + public function delete(User $user, $notrigger = false) + { + return $this->deleteCommon($user, $notrigger); + } + + /** + * Set registered status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, >0 if OK + */ + public function setRegistered($user, $notrigger = 0) + { + return $this->setStatusCommon($user, self::STATUS_REGISTERED, $notrigger, 'DIGIRISKSIGNATURE_REGISTERED'); + } + + /** + * Set pending status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, >0 if OK + */ + public function setPending($user, $notrigger = 0) + { + return $this->setStatusCommon($user, self::STATUS_PENDING_SIGNATURE, $notrigger, 'DIGIRISKSIGNATURE_PENDING_SIGNATURE'); + } + + /** + * Set signed status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, >0 if OK + */ + public function setSigned($user, $notrigger = 0) + { + return $this->setStatusCommon($user, self::STATUS_SIGNED, $notrigger, 'DIGIRISKSIGNATURE_SIGNED'); + } + + /** + * Set absent status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, >0 if OK + */ + public function setAbsent($user, $notrigger = 0) + { + return $this->setStatusCommon($user, self::STATUS_ABSENT, $notrigger, 'DIGIRISKSIGNATURE_ABSENT'); + } + + /** + * Set deleted status + * + * @param User $user Object user that modify + * @param int $notrigger 1=Does not execute triggers, 0=Execute triggers + * @return int <0 if KO, >0 if OK + */ + public function setDeleted($user, $notrigger = 0) + { + return $this->setStatusCommon($user, self::STATUS_DELETED, $notrigger, 'DIGIRISKSIGNATURE_DELETED'); + } + + /** + * Return the label of the status + * + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto + * @return string Label of status + */ + public function getLibStatut($mode = 0) + { + return $this->LibStatut($this->status, $mode); + } + + /** + * Return the status + * + * @param int $status Id status + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 6=Long label + Picto + * @return string Label of status + */ + public function LibStatut($status, $mode = 0) + { + if (empty($this->labelStatus) || empty($this->labelStatusShort)) { + global $langs; + $this->labelStatus[self::STATUS_DELETED] = $langs->transnoentities('Deleted'); + $this->labelStatus[self::STATUS_REGISTERED] = $langs->transnoentities('Registered'); + $this->labelStatus[self::STATUS_SIGNATURE_REQUEST] = $langs->transnoentities('SignatureRequest'); + $this->labelStatus[self::STATUS_PENDING_SIGNATURE] = $langs->transnoentities('PendingSignature'); + $this->labelStatus[self::STATUS_DENIED] = $langs->transnoentities('Denied'); + $this->labelStatus[self::STATUS_SIGNED] = $langs->transnoentities('Signed'); + $this->labelStatus[self::STATUS_UNSIGNED] = $langs->transnoentities('Unsigned'); + $this->labelStatus[self::STATUS_ABSENT] = $langs->transnoentities('Absent'); + $this->labelStatus[self::STATUS_JUSTIFIED_ABSENT] = $langs->transnoentities('JustifiedAbsent'); + } + + $statusType = 'status' . $status; + if ($status == self::STATUS_SIGNED) $statusType = 'status4'; + if ($status == self::STATUS_ABSENT) $statusType = 'status8'; + + return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status], '', $statusType, $mode); + } + + /** + * Create signatory in database + * + * @param int $fk_object ID of object linked + * @param $object_type + * @param string $element_type Type of resource + * @param array $element_ids Id of resource + * @param string $role Role of resource + * @param int $noupdate Update previous signatories + * @return int + * @throws Exception + */ + public function setSignatory($fk_object, $object_type, $element_type, $element_ids, $role = "", $noupdate = 0) + { + global $conf, $user; + + $society = new Societe($this->db); + $result = 0; + if ( ! empty($element_ids) && $element_ids > 0) { + if ( ! $noupdate) { + $this->deletePreviousSignatories($role, $fk_object, $object_type); + } + foreach ($element_ids as $element_id) { + if ($element_id > 0) { + $signatory_data = ''; + if ($element_type == 'user') { + $signatory_data = new User($this->db); + + $signatory_data->fetch($element_id); + + if ($signatory_data->socid > 0) { + $society->fetch($signatory_data->socid); + $this->society_name = $society->name; + } else { + $this->society_name = $conf->global->MAIN_INFO_SOCIETE_NOM; + } + + $this->phone = $signatory_data->user_mobile; + } elseif ($element_type == 'socpeople') { + $signatory_data = new Contact($this->db); + + $signatory_data->fetch($element_id); + if (!is_object($signatory_data)) { + $signatory_data = new StdClass(); + } + + $society->fetch($signatory_data->socid); + + $this->society_name = $society->name; + $this->phone = $signatory_data->phone_mobile; + } + + $this->status = self::STATUS_REGISTERED; + + $this->firstname = $signatory_data->firstname; + $this->lastname = $signatory_data->lastname; + $this->email = $signatory_data->email; + $this->role = $role; + + $this->element_type = $element_type; + $this->element_id = $element_id; + + $this->signature_url = generate_random_id(16); + + $this->fk_object = $fk_object; + + $result = $this->create($user, false); + if ($result > 0) { + if ($role == 'PP_EXT_SOCIETY_INTERVENANTS' || $role == 'FP_EXT_SOCIETY_INTERVENANTS') { + $this->call_trigger(strtoupper(get_class($this)) . '_ADDATTENDANT', $user); + } + } + } + } + } + if ($result > 0 ) { + return 1; + } else { + return 0; + } + } + + /** + * Fetch signatory from database + * + * @param string $role Role of resource + * @param int $fk_object ID of object linked + * @param string $object_type ID of object linked + * @return array|int + * @throws Exception + */ + public function fetchSignatory($role, $fk_object, $object_type) + { + $filter = array('customsql' => 'fk_object=' . $fk_object . ' AND status!=0 AND object_type="' . $object_type . '"'); + if (strlen($role)) { + $filter['customsql'] .= ' AND role = "' . $role . '"'; + return $this->fetchAll('', '', 0, 0, $filter, 'AND'); + } else { + $signatories = $this->fetchAll('', '', 0, 0, $filter, 'AND'); + if ( ! empty($signatories) && $signatories > 0) { + $signatoriesArray = array(); + foreach ($signatories as $signatory) { + $signatoriesArray[$signatory->role][$signatory->id] = $signatory; + } + return $signatoriesArray; + } else { + return 0; + } + } + } + + /** + * Fetch signatories in database with parent ID + * + * @param $fk_object + * @param $object_type + * @param string $morefilter + * @return array|integer + * @throws Exception + */ + public function fetchSignatories($fk_object, $object_type, $morefilter = '1 = 1') + { + $filter = array('customsql' => 'fk_object=' . $fk_object . ' AND ' . $morefilter . ' AND object_type="' . $object_type . '"'); + return $this->fetchAll('', '', 0, 0, $filter, 'AND'); + } + + /** + * Check if signatories signed + * + * @param $fk_object + * @param $object_type + * @return int + * @throws Exception + */ + public function checkSignatoriesSignatures($fk_object, $object_type) + { + $morefilter = 'status != 0'; + + $signatories = $this->fetchSignatories($fk_object, $object_type, $morefilter); + + if ( ! empty($signatories) && $signatories > 0) { + foreach ($signatories as $signatory) { + if ($signatory->status == 5 || $signatory->status == 7) { + continue; + } else { + return 0; + } + } + return 1; + } else { + return -1; + } + } + + /** + * Delete signatories signatures + * + * @param $fk_object + * @param $object_type + * @return int + * @throws Exception + */ + public function deleteSignatoriesSignatures($fk_object, $object_type) + { + global $user; + + $signatories = $this->fetchSignatories($fk_object, $object_type); + + if ( ! empty($signatories) && $signatories > 0) { + foreach ($signatories as $signatory) { + if (dol_strlen($signatory->signature)) { + $signatory->signature = ''; + $signatory->signature_date = ''; + $signatory->status = 1; + $signatory->update($user); + } + } + return 1; + } else { + return -1; + } + } + + /** + * Set previous signatories status to 0 + * + * @param string $role Role of resource + * @param int $fk_object ID of object linked + * @param string $object_type type of object linked + * @return int + * @throws Exception + */ + public function deletePreviousSignatories($role, $fk_object, $object_type) + { + global $user; + $filter = array('customsql' => ' role="' . $role . '" AND fk_object=' . $fk_object . ' AND status=1 AND object_type="' . $object_type . '"'); + $signatoriesToDelete = $this->fetchAll('', '', 0, 0, $filter, 'AND'); + + if ( ! empty($signatoriesToDelete) && $signatoriesToDelete > 0) { + foreach ($signatoriesToDelete as $signatoryToDelete) { + $signatoryToDelete->setDeleted($user, true); + } + return 1; + } else { + return -1; + } + } +} diff --git a/meeting_attendants.php b/meeting_attendants.php new file mode 100644 index 0000000..effaaa2 --- /dev/null +++ b/meeting_attendants.php @@ -0,0 +1,585 @@ + + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file view/preventionplan/preventionplan_attendants.php + * \ingroup digiriskdolibarr + * \brief Page to add/edit/view preventionplan_signature + */ + +// Load Dolibarr environment +$res = 0; +// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) +if ( ! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"] . "/main.inc.php"; +// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME +$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1; +while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { $i--; $j--; } +if ( ! $res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1)) . "/main.inc.php")) $res = @include substr($tmp, 0, ($i + 1)) . "/main.inc.php"; +if ( ! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1))) . "/main.inc.php")) $res = @include dirname(substr($tmp, 0, ($i + 1))) . "/main.inc.php"; +// Try main.inc.php using relative path +if ( ! $res && file_exists("../../main.inc.php")) $res = @include "../../main.inc.php"; +if ( ! $res && file_exists("../../../main.inc.php")) $res = @include "../../../main.inc.php"; +if ( ! $res && file_exists("../../../../main.inc.php")) $res = @include "../../../../main.inc.php"; +if ( ! $res) die("Include of main fails"); + +require_once DOL_DOCUMENT_ROOT . '/core/lib/images.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php'; + +require_once __DIR__ . '/../../class/digiriskresources.class.php'; +require_once __DIR__ . '/../../class/preventionplan.class.php'; +require_once __DIR__ . '/../../lib/digiriskdolibarr_preventionplan.lib.php'; +require_once __DIR__ . '/../../lib/digiriskdolibarr_function.lib.php'; + +global $db, $langs; + +// Load translation files required by the page +$langs->loadLangs(array("digiriskdolibarr@digiriskdolibarr", "other")); + +// Get parameters +$id = GETPOST('id', 'int'); +$action = GETPOST('action', 'aZ09'); +$contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'preventionplansignature'; // To manage different context of search +$backtopage = GETPOST('backtopage', 'alpha'); + +// Initialize technical objects +$object = new PreventionPlan($db); +$signatory = new PreventionPlanSignature($db); +$digiriskresources = new DigiriskResources($db); +$usertmp = new User($db); +$contact = new Contact($db); +$form = new Form($db); +$project = new Project($db); + +$object->fetch($id); + +$hookmanager->initHooks(array('preventionplansignature', 'globalcard')); // Note that conf->hooks_modules contains array + +//Security check +$permissiontoread = $user->rights->digiriskdolibarr->preventionplan->read; +$permissiontoadd = $user->rights->digiriskdolibarr->preventionplan->write; +$permissiontodelete = $user->rights->digiriskdolibarr->preventionplan->delete; + +if ( ! $permissiontoread) accessforbidden(); +require_once './../../core/tpl/digirisk_security_checks.php'; + +/* +/* + * Actions + */ + +$parameters = array(); +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + +if (empty($backtopage) || ($cancel && empty($id))) { + if (empty($backtopage) || ($cancel && strpos($backtopage, '__ID__'))) { + $backtopage = dol_buildpath('/digiriskdolibarr/view/preventionplan/preventionplan_attendants.php', 1) . '?id=' . ($object->id > 0 ? $object->id : '__ID__'); + } +} + +// Action to add record +if ($action == 'addAttendant') { + $error = 0; + $object->fetch($id); + $extintervenant_ids = GETPOST('ext_intervenants'); + + //Check email of intervenants + if ( ! empty($extintervenant_ids) && $extintervenant_ids > 0) { + foreach ($extintervenant_ids as $extintervenant_id) { + $contact->fetch($extintervenant_id); + if ( ! dol_strlen($contact->email)) { + setEventMessages($langs->trans('ErrorNoEmailForExtIntervenant', $langs->transnoentitiesnoconv('ExtIntervenant')), null, 'errors'); + $error++; + } + } + } else { + setEventMessages($langs->trans('ErrorNoAttendantSelected', $langs->transnoentitiesnoconv('ExtIntervenant')), null, 'errors'); + } + + if ( ! $error) { + $result = $signatory->setSignatory($object->id, 'preventionplan', 'socpeople', $extintervenant_ids, 'PP_EXT_SOCIETY_INTERVENANTS', 1); + if ($result > 0) { + foreach ($extintervenant_ids as $extintervenant_id) { + $contact->fetch($extintervenant_id); + setEventMessages($langs->trans('AddAttendantMessage') . ' ' . $contact->firstname . ' ' . $contact->lastname, array()); + } + // Creation attendant OK + $urltogo = str_replace('__ID__', $result, $backtopage); + $urltogo = preg_replace('/--IDFORBACKTOPAGE--/', $id, $urltogo); // New method to autoselect project after a New on another form object creation + header("Location: " . $urltogo); + exit; + } else { + // Creation attendant KO + if ( ! empty($object->errors)) setEventMessages(null, $object->errors, 'errors'); + else setEventMessages($object->error, null, 'errors'); + } + } +} + +// Action to add record +if ($action == 'addSignature') { + $signatoryID = GETPOST('signatoryID'); + $data = json_decode(file_get_contents('php://input'), true); + + $signatory->fetch($signatoryID); + $signatory->signature = $data['signature']; + $signatory->signature_date = dol_now('tzuser'); + + if ( ! $error) { + $result = $signatory->update($user, false); + + if ($result > 0) { + // Creation signature OK + $signatory->setSigned($user, 0); + $urltogo = str_replace('__ID__', $result, $backtopage); + $urltogo = preg_replace('/--IDFORBACKTOPAGE--/', $id, $urltogo); // New method to autoselect project after a New on another form object creation + header("Location: " . $urltogo); + exit; + } else { + // Creation signature KO + if ( ! empty($signatory->errors)) setEventMessages(null, $signatory->errors, 'errors'); + else setEventMessages($signatory->error, null, 'errors'); + } + } +} + +// Action to set status STATUS_ABSENT +if ($action == 'setAbsent') { + $signatoryID = GETPOST('signatoryID'); + + $signatory->fetch($signatoryID); + + if ( ! $error) { + $result = $signatory->setAbsent($user, 0); + if ($result > 0) { + // set absent OK + setEventMessages($langs->trans('Attendant') . ' ' . $signatory->firstname . ' ' . $signatory->lastname . ' ' . $langs->trans('SetAbsentAttendant'), array()); + $urltogo = str_replace('__ID__', $result, $backtopage); + $urltogo = preg_replace('/--IDFORBACKTOPAGE--/', $id, $urltogo); // New method to autoselect project after a New on another form object creation + header("Location: " . $urltogo); + exit; + } else { + // set absent KO + if ( ! empty($signatory->errors)) setEventMessages(null, $signatory->errors, 'errors'); + else setEventMessages($signatory->error, null, 'errors'); + } + } +} + +// Action to send Email +if ($action == 'send') { + $signatoryID = GETPOST('signatoryID'); + $signatory->fetch($signatoryID); + + if ( ! $error) { + $langs->load('mails'); + $sendto = $signatory->email; + + if (dol_strlen($sendto) && ( ! empty($conf->global->MAIN_MAIL_EMAIL_FROM))) { + require_once DOL_DOCUMENT_ROOT . '/core/class/CMailFile.class.php'; + + $from = $conf->global->MAIN_MAIL_EMAIL_FROM; + $url = dol_buildpath('/custom/digiriskdolibarr/public/signature/add_signature.php?track_id=' . $signatory->signature_url . '&type=' . $object->element, 3); + + $message = $langs->trans('SignatureEmailMessage') . ' ' . $url; + $subject = $langs->trans('SignatureEmailSubject') . ' ' . $object->ref; + + // Create form object + // Send mail (substitutionarray must be done just before this) + $mailfile = new CMailFile($subject, $sendto, $from, $message, array(), array(), array(), "", "", 0, -1, '', '', '', '', 'mail'); + + if ($mailfile->error) { + setEventMessages($mailfile->error, $mailfile->errors, 'errors'); + } else { + if ( ! empty($conf->global->MAIN_MAIL_SMTPS_ID)) { + $result = $mailfile->sendfile(); + if ($result) { + $signatory->last_email_sent_date = dol_now('tzuser'); + $signatory->update($user, true); + $signatory->setPending($user, false); + setEventMessages($langs->trans('SendEmailAt') . ' ' . $signatory->email, array()); + // This avoid sending mail twice if going out and then back to page + header('Location: ' . $_SERVER["PHP_SELF"] . '?id=' . $object->id); + exit; + } else { + $langs->load("other"); + $mesg = '
'; + if ($mailfile->error) { + $mesg .= $langs->transnoentities('ErrorFailedToSendMail', dol_escape_htmltag($from), dol_escape_htmltag($sendto)); + $mesg .= '
' . $mailfile->error; + } else { + $mesg .= $langs->transnoentities('ErrorFailedToSendMail', dol_escape_htmltag($from), dol_escape_htmltag($sendto)); + } + $mesg .= '
'; + setEventMessages($mesg, null, 'warnings'); + } + } else { + setEventMessages($langs->trans('ErrorSetupEmail'), '', 'errors'); + } + } + } else { + $langs->load("errors"); + setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("MailTo")), null, 'warnings'); + dol_syslog('Try to send email with no recipient defined', LOG_WARNING); + } + } else { + // Mail sent KO + if ( ! empty($signatory->errors)) setEventMessages(null, $signatory->errors, 'errors'); + else setEventMessages($signatory->error, null, 'errors'); + } +} + +// Action to delete attendant +if ($action == 'deleteAttendant') { + $signatoryToDeleteID = GETPOST('signatoryID'); + $signatory->fetch($signatoryToDeleteID); + + if ( ! $error) { + $result = $signatory->setDeleted($user, 0); + if ($result > 0) { + setEventMessages($langs->trans('DeleteAttendantMessage') . ' ' . $signatory->firstname . ' ' . $signatory->lastname, array()); + // Deletion attendant OK + $urltogo = str_replace('__ID__', $result, $backtopage); + $urltogo = preg_replace('/--IDFORBACKTOPAGE--/', $id, $urltogo); // New method to autoselect project after a New on another form object creation + header("Location: " . $urltogo); + exit; + } else { + // Deletion attendant KO + if ( ! empty($object->errors)) setEventMessages(null, $object->errors, 'errors'); + else setEventMessages($object->error, null, 'errors'); + } + } else { + $action = 'create'; + } +} + +/* + * View + */ + +$title = $langs->trans("PreventionPlanAttendants"); +$help_url = ''; +$morejs = array("/digiriskdolibarr/js/signature-pad.min.js", "/digiriskdolibarr/js/digiriskdolibarr.js.php"); +$morecss = array("/digiriskdolibarr/css/digiriskdolibarr.css"); + +llxHeader('', $title, $help_url, '', '', '', $morejs, $morecss); + +if ( ! empty($object->id)) $res = $object->fetch_optionals(); + +// Object card +// ------------------------------------------------------------ + +$head = preventionplanPrepareHead($object); +print dol_get_fiche_head($head, 'preventionplanAttendants', $langs->trans("PreventionPlan"), -1, "digiriskdolibarr@digiriskdolibarr"); + +$width = 80; $cssclass = 'photoref'; +dol_strlen($object->label) ? $morehtmlref = '' . ' - ' . $object->label . '' : ''; +$morehtmlref .= '
'; +// External Society -- Société extérieure +$ext_society = $digiriskresources->fetchResourcesFromObject('PP_EXT_SOCIETY', $object); +$morehtmlref .= $langs->trans('ExtSociety') . ' : ' . $ext_society->getNomUrl(1); +// Project +$project->fetch($preventionplan->fk_project); +$morehtmlref .= '
' . $langs->trans('Project') . ' : ' . getNomUrlProject($project, 1, 'blank'); +$morehtmlref .= '
'; + +//$morehtmlleft = '
'.digirisk_show_photos('digiriskdolibarr', $conf->digiriskdolibarr->multidir_output[$entity].'/'.$object->element_type, 'small', 5, 0, 0, 0, $width,0, 0, 0, 0, $object->element_type, $object).'
'; + +digirisk_banner_tab($object, 'ref', '', 0, 'ref', 'ref', $morehtmlref, '', 0, $morehtmlleft, $object->getLibStatut(5)); + +print dol_get_fiche_end(); ?> + +status == 1 ) : ?> +
+
+
trans('DisclaimerSignatureTitle') ?>
+
trans("PreventionPlanMustBeValidatedToSign") ?>
+
+ trans("GoToValidate") ?>; +
+ + +'; + print ''; + print ''; + print ''; + + if ($backtopageforcancel) print ''; + + print dol_get_fiche_head(array(), ''); + + print '' . "\n"; + + //Intervenants extérieurs + print ''; + print '
' . $langs->trans("ExtSocietyIntervenants") . ''; + print $form->selectcontacts(GETPOST('ext_society', 'int'), '', 'ext_intervenants[]', 1, '', '', 0, 'quatrevingtpercent', false, 0, array(), false, 'multiple', 'ext_intervenants'); + print '
' . "\n"; + + print dol_get_fiche_end(); + + print '
'; + print ''; + print '   '; + print '
'; + + print ''; +} + +// Part to show record +if ((empty($action) || ($action != 'create' && $action != 'edit'))) { + $url = $_SERVER['REQUEST_URI']; + $zone = "private"; + + //Master builder -- Maitre Oeuvre + $element = $signatory->fetchSignatory('PP_MAITRE_OEUVRE', $id, 'preventionplan'); + if (is_array($element)) { + $element = array_shift($element); + $usertmp->fetch($element->element_id); + } + + print load_fiche_titre($langs->trans("SignatureMaitreOeuvre"), '', ''); + + print '
'; + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + print ''; + + print ''; + if ($element->signature != $langs->transnoentities("FileGenerated") && $permissiontoadd) { + print ''; + } + print ''; + print '
' . $langs->trans("Name") . '' . $langs->trans("Role") . '' . $langs->trans("SignatureLink") . '' . $langs->trans("SendMailDate") . '' . $langs->trans("SignatureDate") . '' . $langs->trans("Status") . '' . $langs->trans("ActionsSignature") . '' . $langs->trans("Signature") . '
'; + print $usertmp->getNomUrl(1); + print ''; + print $langs->trans("MaitreOeuvre"); + print ''; + if ($object->status == 2) { + $signatureUrl = dol_buildpath('/custom/digiriskdolibarr/public/signature/add_signature.php?track_id=' . $element->signature_url . '&type=' . $object->element, 3); + print ''; + } else { + print '-'; + } + print ''; + print dol_print_date($element->last_email_sent_date, 'dayhour'); + print ''; + print dol_print_date($element->signature_date, 'dayhour'); + print ''; + print $element->getLibStatut(5); + print ''; + if ($object->status == 2 && $permissiontoadd) { + require __DIR__ . "/../../core/tpl/signature/digiriskdolibarr_signature_action_view.tpl.php"; + } + print ''; + require __DIR__ . "/../../core/tpl/signature/digiriskdolibarr_signature_view.tpl.php"; + print '
'; + print '
'; + + //External Society Responsible -- Responsable Société extérieure + $element = $signatory->fetchSignatory('PP_EXT_SOCIETY_RESPONSIBLE', $id, 'preventionplan'); + if (is_array($element)) { + $element = array_shift($element); + $contact->fetch($element->element_id); + } + + print load_fiche_titre($langs->trans("SignatureResponsibleExtSociety"), '', ''); + + print ''; + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + print ''; + print ''; + if ($element->signature != $langs->transnoentities("FileGenerated") && $permissiontoadd) { + print ''; + } + print ''; + print '
' . $langs->trans("Name") . '' . $langs->trans("Role") . '' . $langs->trans("SignatureLink") . '' . $langs->trans("SendMailDate") . '' . $langs->trans("SignatureDate") . '' . $langs->trans("Status") . '' . $langs->trans("ActionsSignature") . '' . $langs->trans("Signature") . '
'; + print $contact->getNomUrl(1); + print ''; + print $langs->trans("ExtSocietyResponsible"); + print ''; + if ($object->status == 2) { + $signatureUrl = dol_buildpath('/custom/digiriskdolibarr/public/signature/add_signature.php?track_id=' . $element->signature_url . '&type=' . $object->element, 3); + print ''; + } else { + print '-'; + } + print ''; + print dol_print_date($element->last_email_sent_date, 'dayhour'); + print ''; + print dol_print_date($element->signature_date, 'dayhour'); + print ''; + print $element->getLibStatut(5); + print ''; + if ($object->status == 2 && $permissiontoadd) { + require __DIR__ . "/../../core/tpl/signature/digiriskdolibarr_signature_action_view.tpl.php"; + } print ''; + require __DIR__ . "/../../core/tpl/signature/digiriskdolibarr_signature_view.tpl.php"; + print '
'; + print '
'; + + //External Society Interventants -- Intervenants Société extérieure + $ext_society_intervenants = $signatory->fetchSignatory('PP_EXT_SOCIETY_INTERVENANTS', $id, 'preventionplan'); + + print load_fiche_titre($langs->trans("SignatureIntervenants"), $newcardbutton, ''); + + print ''; + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + $contacts = fetchAllSocPeople('', '', 0, 0, array('customsql' => "s.rowid = $element->id AND c.email IS NULL OR c.email = ''" )); + $contacts_no_email = array(); + if (is_array($contacts) && ! empty($contacts) && $contacts > 0) { + foreach ($contacts as $element_id) { + $contacts_no_email[$element_id->id] = $element_id->id; + } + } + + $already_selected_intervenants[$contact->id] = $contact->id; + $j = 1; + if (is_array($ext_society_intervenants) && ! empty($ext_society_intervenants) && $ext_society_intervenants > 0) { + foreach ($ext_society_intervenants as $element) { + $contact->fetch($element->element_id); + print ''; + print ''; + if ($element->signature != $langs->transnoentities("FileGenerated") && $permissiontoadd) { + print ''; + } + print ''; + $already_selected_intervenants[$element->element_id] = $element->element_id; + $j++; + } + } else { + print ''; + } + + if ($object->status == 1 && $permissiontoadd) { + print ''; + print ''; + print ''; + print ''; + print ''; + + if ($backtopageforcancel) print ''; + + //Intervenants extérieurs + $ext_society = $digiriskresources->fetchResourcesFromObject('PP_EXT_SOCIETY', $object); + if ($ext_society < 1) { + $ext_society = new StdClass(); + } + print ''; + print ''; + print ''; + print ''; + print '
' . $langs->trans("Name") . '' . $langs->trans("Role") . '' . $langs->trans("SignatureLink") . '' . $langs->trans("SendMailDate") . '' . $langs->trans("SignatureDate") . '' . $langs->trans("Status") . '' . $langs->trans("ActionsSignature") . '' . $langs->trans("Signature") . '
'; + print $contact->getNomUrl(1); + print ''; + print $langs->trans("ExtSocietyIntervenant") . ' ' . $j; + print ''; + if ($object->status == 2) { + $signatureUrl = dol_buildpath('/custom/digiriskdolibarr/public/signature/add_signature.php?track_id=' . $element->signature_url . '&type=' . $object->element, 3); + print ''; + } else { + print '-'; + } + + print ''; + print dol_print_date($element->last_email_sent_date, 'dayhour'); + print ''; + print dol_print_date($element->signature_date, 'dayhour'); + print ''; + print $element->getLibStatut(5); + print ''; + if ($object->status < 3 && $permissiontoadd) { + require __DIR__ . "/../../core/tpl/signature/digiriskdolibarr_signature_action_view.tpl.php"; + } + print ''; + require __DIR__ . "/../../core/tpl/signature/digiriskdolibarr_signature_view.tpl.php"; + print '
'; + print $langs->trans('NoAttendants'); + print '
'; + print digirisk_selectcontacts($ext_society->id, GETPOST('ext_intervenants'), 'ext_intervenants[]', 0, $contacts_no_email, '', 0, 'width200', false, 1, 0, array(), 'multiple', 'ext_intervenants', false, 0, $already_selected_intervenants); + print '' . $langs->trans("ExtSocietyIntervenants") . ''; + print '-'; + print ''; + print '-'; + print ''; + print '-'; + print ''; + print '-'; + print ''; + print ''; + print ''; + print '-'; + print '
' . "\n"; + print ''; + print '
'; + } +} + +// End of page +llxFooter(); +$db->close(); diff --git a/meeting_contact.php b/meeting_contact.php new file mode 100644 index 0000000..e69de29 diff --git a/sql/llx_categorie_meeting.key.sql b/sql/llx_categorie_meeting.key.sql new file mode 100644 index 0000000..89ec881 --- /dev/null +++ b/sql/llx_categorie_meeting.key.sql @@ -0,0 +1,20 @@ +-- Copyright (C) 2022 EVARISK +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. + +ALTER TABLE llx_categorie_question ADD PRIMARY KEY pk_categorie_question (fk_categorie, fk_question); +ALTER TABLE llx_categorie_question ADD INDEX idx_categorie_question_fk_categorie (fk_categorie); +ALTER TABLE llx_categorie_question ADD INDEX idx_categorie_question_fk_question (fk_question); +ALTER TABLE llx_categorie_question ADD CONSTRAINT fk_categorie_question_categorie_rowid FOREIGN KEY (fk_categorie) REFERENCES llx_categorie (rowid); +ALTER TABLE llx_categorie_question ADD CONSTRAINT fk_categorie_question_dolismq_question_rowid FOREIGN KEY (fk_question) REFERENCES llx_dolismq_question (rowid); diff --git a/sql/llx_categorie_meeting.sql b/sql/llx_categorie_meeting.sql new file mode 100644 index 0000000..2d33d89 --- /dev/null +++ b/sql/llx_categorie_meeting.sql @@ -0,0 +1,20 @@ +-- Copyright (C) 2022 EVARISK +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. + +CREATE TABLE llx_categorie_question( + fk_categorie integer NOT NULL, + fk_question integer NOT NULL, + import_key varchar(14) +) ENGINE=innodb; diff --git a/sql/signature/llx_dolimeet_object_signature.key.sql b/sql/signature/llx_dolimeet_object_signature.key.sql new file mode 100644 index 0000000..b1bed5e --- /dev/null +++ b/sql/signature/llx_dolimeet_object_signature.key.sql @@ -0,0 +1,17 @@ +-- Copyright (C) 2021 EOXIA +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. + +ALTER TABLE llx_digiriskdolibarr_object_signature ADD INDEX idx_digiriskdolibarr_object_signature_rowid (rowid); +ALTER TABLE llx_digiriskdolibarr_object_signature ADD CONSTRAINT llx_digiriskdolibarr_object_signature_fk_object FOREIGN KEY (fk_object) REFERENCES llx_digiriskdolibarr_object(rowid); diff --git a/sql/signature/llx_dolimeet_object_signature.sql b/sql/signature/llx_dolimeet_object_signature.sql new file mode 100644 index 0000000..1a839b4 --- /dev/null +++ b/sql/signature/llx_dolimeet_object_signature.sql @@ -0,0 +1,41 @@ +-- Copyright (C) 2021 EOXIA +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see https://www.gnu.org/licenses/. + +CREATE TABLE llx_dolimeet_object_signature( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + entity integer DEFAULT 1 NOT NULL, + date_creation datetime NOT NULL, + tms timestamp, + import_key integer DEFAULT NULL, + status smallint, + role varchar(255), + firstname varchar(255), + lastname varchar(255), + email varchar(255), + phone varchar(255), + society_name varchar(255), + signature_date datetime DEFAULT NULL, + signature_location varchar(255), + signature_comment text DEFAULT NULL, + element_id integer NOT NULL, + element_type varchar(255), + signature text, + stamp text, + last_email_sent_date datetime DEFAULT NULL, + signature_url varchar(255), + transaction_url varchar(255), + object_type varchar(255), + fk_object integer NOT NULL +) ENGINE=innodb; From 9573c51ed6b8d665f509f83ce45c0618a138521e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20David?= Date: Tue, 9 Aug 2022 10:56:34 +0200 Subject: [PATCH 02/66] [Meeting] add: object categories --- class/actions_dolimeet.class.php | 24 +++--- class/meeting.class.php | 124 +++++++++++++++++++++++++++++ core/modules/modDoliMeet.class.php | 34 ++++++-- meeting_card.php | 76 +++++++++++------- sql/llx_categorie_meeting.key.sql | 10 +-- sql/llx_categorie_meeting.sql | 4 +- 6 files changed, 213 insertions(+), 59 deletions(-) diff --git a/class/actions_dolimeet.class.php b/class/actions_dolimeet.class.php index 4c01d09..4047c12 100644 --- a/class/actions_dolimeet.class.php +++ b/class/actions_dolimeet.class.php @@ -16,15 +16,15 @@ */ /** - * \file class/actions_dolismq.class.php - * \ingroup dolismq - * \brief DoliSMQ hook overload. + * \file class/actions_dolimeet.class.php + * \ingroup dolimeet + * \brief DoliMeet hook overload. */ /** - * Class ActionsDolismq + * Class ActionsDolimeet */ -class ActionsDolismq +class ActionsDolimeet { /** * @var DoliDB Database handler. @@ -75,17 +75,11 @@ public function constructCategory($parameters, &$object) if (in_array($parameters['currentcontext'], array('category', 'somecontext2'))) { // do something only for the context 'somecontext1' or 'somecontext2' $tags = array( - 'question' => array( + 'meeting' => array( 'id' => 50, - 'code' => 'question', + 'code' => 'meeting', 'obj_class' => 'Question', - 'obj_table' => 'dolismq_question', - ), - 'sheet' => array( - 'id' => 51, - 'code' => 'sheet', - 'obj_class' => 'Sheet', - 'obj_table' => 'dolismq_sheet', + 'obj_table' => 'dolimeet_meeting', ), ); } @@ -110,7 +104,7 @@ public function printCommonFooter($parameters) $error = 0; // Error counter if (preg_match('/categoryindex/', $parameters['context'])) { // do something only for the context 'somecontext1' or 'somecontext2' - print ''; + print ''; } if (!$error) { diff --git a/class/meeting.class.php b/class/meeting.class.php index 206f34d..d4db47e 100644 --- a/class/meeting.class.php +++ b/class/meeting.class.php @@ -514,6 +514,21 @@ public function initAsSpecimen() $this->initAsSpecimenCommon(); } + /** + * Sets object to supplied categories. + * + * Deletes object from existing categories not supplied. + * Adds it to non existing supplied categories. + * Existing categories are left untouch. + * + * @param int[]|int $categories Category or categories IDs + * @return void + */ + public function setCategories($categories) + { + return parent::setCategoriesCommon($categories, 'meeting'); + } + /** * Create a document onto disk according to template module. * @@ -553,3 +568,112 @@ public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hided } } + +/** + * Class MeetingSignature + */ +class MeetingSignature extends DolimeetSignature +{ + /** + * @var string Name of table without prefix where object is stored. This is also the key used for extrafields management. + */ + + public $object_type = 'meeting'; + + /** + * @var array Context element object + */ + public $context = array(); + + /** + * Constructor + * + * @param DoliDb $db Database handler + */ + public function __construct(DoliDB $db) + { + global $conf, $langs; + + $this->db = $db; + + if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields['rowid'])) $this->fields['rowid']['visible'] = 0; + if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) $this->fields['entity']['enabled'] = 0; + + // Unset fields that are disabled + foreach ($this->fields as $key => $val) { + if (isset($val['enabled']) && empty($val['enabled'])) { + unset($this->fields[$key]); + } + } + + // Translate some data of arrayofkeyval + if (is_object($langs)) { + foreach ($this->fields as $key => $val) { + if (is_array($val['arrayofkeyval'])) { + foreach ($val['arrayofkeyval'] as $key2 => $val2) { + $this->fields[$key]['arrayofkeyval'][$key2] = $langs->trans($val2); + } + } + } + } + } + + /** + * Clone an object into another one + * + * @param User $user User that creates + * @param int $fromid Id of object to clone + * @param $meetingid + * @return mixed New object created, <0 if KO + * @throws Exception + */ + public function createFromClone(User $user, $fromid, $meetingid) + { + $error = 0; + + dol_syslog(__METHOD__, LOG_DEBUG); + + $object = new self($this->db); + + $this->db->begin(); + + // Load source object + $object->fetchCommon($fromid); + + // Reset some properties + unset($object->id); + unset($object->fk_user_creat); + unset($object->import_key); + unset($object->signature); + unset($object->signature_date); + unset($object->last_email_sent_date); + + // Clear fields + if (property_exists($object, 'date_creation')) { + $object->date_creation = dol_now(); + } + if (property_exists($object, 'fk_object')) { + $object->fk_object = $meetingid; + } + if (property_exists($object, 'status')) { + $object->status = 1; + } + if (property_exists($object, 'signature_url')) { + $object->signature_url = generate_random_id(16); + } + + // Create clone + $object->context['createfromclone'] = 'createfromclone'; + $result = $object->createCommon($user); + unset($object->context['createfromclone']); + + // End + if ( ! $error) { + $this->db->commit(); + return $result; + } else { + $this->db->rollback(); + return -1; + } + } +} diff --git a/core/modules/modDoliMeet.class.php b/core/modules/modDoliMeet.class.php index fc61f75..511305e 100644 --- a/core/modules/modDoliMeet.class.php +++ b/core/modules/modDoliMeet.class.php @@ -83,11 +83,8 @@ public function __construct($db) ), // Set here all hooks context managed by module. To find available hook context, make a "grep -r '>initHooks(' *" on source code. You can also set hook context to 'all' 'hooks' => array( - // 'data' => array( - // 'hookcontext1', - // 'hookcontext2', - // ), - // 'entity' => '0', + 'category', + 'categoryindex' ), // Set this to 1 if features of module are opened to external users 'moduleforexternal' => 0, @@ -104,7 +101,7 @@ public function __construct($db) // A condition to hide module $this->hidden = false; // List of module class names as string that must be enabled if this module is enabled. Example: array('always1'=>'modModuleToEnable1','always2'=>'modModuleToEnable2', 'FR1'=>'modModuleToEnableFR'...) - $this->depends = array(); + $this->depends = array('modCategorie'); $this->requiredby = array(); // List of module class names as string to disable if this one is disabled. Example: array('modModuleToDisable1', ...) $this->conflictwith = array(); // List of module class names as string this module is in conflict with. Example: array('modModuleToDisable1', ...) @@ -225,6 +222,20 @@ public function __construct($db) 'target'=>'', 'user'=>0, // 0=Menu for internal users, 1=external users, 2=both ); + $this->menu[$r++] = array( + 'fk_menu' => 'fk_mainmenu=dolimeet,fk_leftmenu=meeting_list', + 'type' => 'left', + 'titre' => ' ' . $langs->trans('Categories'), + 'mainmenu' => 'dolimeet', + 'leftmenu' => 'dolimeet_meeting', + 'url' => '/categories/index.php?type=meeting', + 'langs' => 'ticket', + 'position' => 1100 + $r, + 'enabled' => '$conf->dolimeet->enabled && $conf->categorie->enabled', + 'perms' => '1', + 'target' => '', + 'user' => 0, + ); /* END MODULEBUILDER TOPMENU */ /* BEGIN MODULEBUILDER LEFTMENU MYOBJECT $this->menu[$r++]=array( @@ -336,7 +347,16 @@ public function init($options = '') global $conf, $langs; //$result = $this->_load_tables('/install/mysql/tables/', 'dolimeet'); - $result = $this->_load_tables('/dolimeet/sql/'); + $sql = array(); + // Load sql sub folders + $sqlFolder = scandir(__DIR__ . '/../../sql'); + foreach ($sqlFolder as $subFolder) { + if ( ! preg_match('/\./', $subFolder)) { + $this->_load_tables('/dolimeet/sql/' . $subFolder . '/'); + } + } + + $this->_load_tables('/dolimeet/sql/'); if ($result < 0) { return -1; // Do not activate module if error 'not allowed' returned when loading module SQL queries (the _load_table run sql with run_sql with the error allowed parameter set to 'default') } diff --git a/meeting_card.php b/meeting_card.php index f522c2d..00dcacf 100644 --- a/meeting_card.php +++ b/meeting_card.php @@ -217,10 +217,13 @@ if (!$error) { $result = $object->create($user, false); if ($result > 0) { - // Creation meeting OK - $urltogo = str_replace('__ID__', $result, $backtopage); - $urltogo = preg_replace('/--IDFORBACKTOPAGE--/', $id, $urltogo); // New method to autoselect project after a New on another form object creation - header("Location: " . $urltogo); + // Creation OK + // Category association + $categories = GETPOST('categories', 'array'); + $object->setCategories($categories); + $urltogo = $backtopage ? str_replace('__ID__', $result, $backtopage) : $backurlforlist; + $urltogo = preg_replace('/--IDFORBACKTOPAGE--/', $object->id, $urltogo); // New method to autoselect project after a New on another form object creation + header("Location: ".$urltogo); exit; } else { @@ -251,11 +254,11 @@ if (!$error) { $result = $object->update($user, false); if ($result > 0) { - $signatory->deleteSignatoriesSignatures($object->id, 0); - $object->setStatusCommon($user, 0); - $urltogo = str_replace('__ID__', $result, $backtopage); - $urltogo = preg_replace('/--IDFORBACKTOPAGE--/', $id, $urltogo); // New method to autoselect project after a New on another form object creation - header("Location: " . $urltogo); + $categories = GETPOST('categories', 'array'); + $object->setCategories($categories); + $urltogo = $backtopage ? str_replace('__ID__', $result, $backtopage) : $backurlforlist; + $urltogo = preg_replace('/--IDFORBACKTOPAGE--/', $object->id, $urltogo); // New method to autoselect project after a New on another form object creation + header("Location: ".$urltogo); exit; } else @@ -836,6 +839,15 @@ $doleditor->Create(); print ''; + // Categories + if (!empty($conf->categorie->enabled)) { + print ''.$langs->trans("Categories").''; + $cate_arbo = $form->select_all_categories('meeting', '', 'parent', 64, 0, 1); + print img_picto('', 'category').$form->multiselectarray('categories', $cate_arbo, GETPOST('categories', 'array'), '', 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0); + print ""; + } + + // //PublicNote -- Note publique // print ''; // $doleditor = new DolEditor('note_public', GETPOST('note_public'), '', 90, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_3, '90%'); @@ -905,31 +917,28 @@ print ''; print ''; - //Society -- Société - print ''.$langs->trans("Society").''; - $events = array(); - $events[1] = array('method' => 'getContacts', 'url' => dol_buildpath('/core/ajax/contacts.php?showempty=1', 1), 'htmlname' => 'contact', 'params' => array('add-customer-contact' => 'disabled')); - print $form->select_company($object->fk_soc, 'fk_soc', '', 'SelectThirdParty', 1, 0, $events, 0, 'minwidth300'); - print ' '; - print ''; - - //Contact -- Contact - print ''.$langs->trans("Contact").''; - print $form->selectcontacts(GETPOST('fk_soc', 'int'), $object->fk_contact, 'fk_contact', 1, '', '', 0, 'quatrevingtpercent', false, 0, array(), false, '', 'fk_contact'); - print ''; - - //Contact -- Contact - print ''; - $numprojet = $formproject->select_projects(0, $object->fk_project, 'fk_project', 0, 0, 1, 0, 0, 0, 0, '', 0, 0, 'minwidth300'); - print ' '; - print ''; - //Content -- Contenu print ''; $doleditor = new DolEditor('content', $object->content, '', 90, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_3, '90%'); $doleditor->Create(); print ''; + // Tags-Categories + if ($conf->categorie->enabled) { + print ''.$langs->trans("Categories").''; + $cate_arbo = $form->select_all_categories('meeting', '', 'parent', 64, 0, 1); + $c = new Categorie($db); + $cats = $c->containing($object->id, 'meeting'); + $arrayselected = array(); + if (is_array($cats)) { + foreach ($cats as $cat) { + $arrayselected[] = $cat->id; + } + } + print img_picto('', 'category').$form->multiselectarray('categories', $cate_arbo, $arrayselected, '', 0, 'quatrevingtpercent widthcentpercentminusx', 0, 0); + print ""; + } + print ''; print dol_get_fiche_end(); @@ -987,8 +996,8 @@ $linkback = ''.$langs->trans("BackToList").''; // Project $project->fetch($object->fk_project); - $morehtmlref = '
'; - + $morehtmlref = '- ' . $object->label; + $morehtmlref .= '
'; $morehtmlref .= $langs->trans('Project') . ' : ' . $project->getNomUrl(1); $morehtmlref .= ''; $morehtmlref .= '
'; @@ -1010,6 +1019,13 @@ print '
'; print ''; + // Categories + if ($conf->categorie->enabled) { + print ''.$langs->trans("Categories").''; + print $form->showCategories($object->id, 'meeting', 1); + print ""; + } + //unused display of information unset($object->fields['fk_soc']); unset($object->fields['fk_contact']); diff --git a/sql/llx_categorie_meeting.key.sql b/sql/llx_categorie_meeting.key.sql index 89ec881..6d7df9b 100644 --- a/sql/llx_categorie_meeting.key.sql +++ b/sql/llx_categorie_meeting.key.sql @@ -13,8 +13,8 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see https://www.gnu.org/licenses/. -ALTER TABLE llx_categorie_question ADD PRIMARY KEY pk_categorie_question (fk_categorie, fk_question); -ALTER TABLE llx_categorie_question ADD INDEX idx_categorie_question_fk_categorie (fk_categorie); -ALTER TABLE llx_categorie_question ADD INDEX idx_categorie_question_fk_question (fk_question); -ALTER TABLE llx_categorie_question ADD CONSTRAINT fk_categorie_question_categorie_rowid FOREIGN KEY (fk_categorie) REFERENCES llx_categorie (rowid); -ALTER TABLE llx_categorie_question ADD CONSTRAINT fk_categorie_question_dolismq_question_rowid FOREIGN KEY (fk_question) REFERENCES llx_dolismq_question (rowid); +ALTER TABLE llx_categorie_meeting ADD PRIMARY KEY pk_categorie_meeting (fk_categorie, fk_meeting); +ALTER TABLE llx_categorie_meeting ADD INDEX idx_categorie_meeting_fk_categorie (fk_categorie); +ALTER TABLE llx_categorie_meeting ADD INDEX idx_categorie_meeting_fk_meeting (fk_meeting); +ALTER TABLE llx_categorie_meeting ADD CONSTRAINT fk_categorie_meeting_categorie_rowid FOREIGN KEY (fk_categorie) REFERENCES llx_categorie (rowid); +ALTER TABLE llx_categorie_meeting ADD CONSTRAINT fk_categorie_meeting_dolimeet_meeting_rowid FOREIGN KEY (fk_meeting) REFERENCES llx_dolimeet_meeting (rowid); diff --git a/sql/llx_categorie_meeting.sql b/sql/llx_categorie_meeting.sql index 2d33d89..c18dc06 100644 --- a/sql/llx_categorie_meeting.sql +++ b/sql/llx_categorie_meeting.sql @@ -13,8 +13,8 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see https://www.gnu.org/licenses/. -CREATE TABLE llx_categorie_question( +CREATE TABLE llx_categorie_meeting( fk_categorie integer NOT NULL, - fk_question integer NOT NULL, + fk_meeting integer NOT NULL, import_key varchar(14) ) ENGINE=innodb; From e524c3a8ec4db0b1939a8c8d436a91b58d0f9136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20David?= Date: Tue, 9 Aug 2022 11:59:00 +0200 Subject: [PATCH 03/66] [Core] add: css & js --- .../dolimeet_signature_action_view.tpl.php | 53 + .../signature/dolimeet_signature_view.tpl.php | 43 + core/tpl/signature/index.php | 2 + css/dolimeet.css | 4117 +++++++++++++++++ css/dolimeet.css.php | 82 + css/dolimeet.min.css | 1 + css/index.php | 2 + css/scss/element/_form.scss | 52 + css/scss/element/index.php | 2 + css/scss/index.php | 2 + css/scss/modal/_modal.scss | 16 + css/scss/modal/_photo.scss | 74 + css/scss/modal/index.php | 2 + css/scss/module/_module.scss | 10 + css/scss/module/button/_button-add.scss | 21 + css/scss/module/button/_button.scss | 204 + css/scss/module/button/_colors.scss | 138 + css/scss/module/button/index.php | 2 + css/scss/module/dropdown/_dropdown.scss | 134 + css/scss/module/dropdown/_grid.scss | 11 + css/scss/module/dropdown/_list.scss | 30 + css/scss/module/dropdown/index.php | 2 + css/scss/module/form/_checkbox.scss | 52 + css/scss/module/form/_form.scss | 155 + css/scss/module/form/_input.scss | 78 + css/scss/module/form/_radio.scss | 53 + css/scss/module/gridlayout/_gridlayout.scss | 120 + css/scss/module/gridlayout/index.php | 2 + css/scss/module/index.php | 2 + css/scss/module/loader/_loader.scss | 35 + css/scss/module/loader/index.php | 2 + css/scss/module/modal/_modal.scss | 133 + css/scss/module/modal/index.php | 2 + css/scss/module/notice/_notice.scss | 56 + css/scss/module/notice/_status.scss | 55 + css/scss/module/notice/index.php | 2 + css/scss/module/slider/_slider.scss | 82 + css/scss/module/slider/index.php | 2 + css/scss/module/table/_flex.scss | 98 + css/scss/module/table/_table.scss | 8 + css/scss/module/table/index.php | 2 + css/scss/module/tooltip/_tooltip.scss | 107 + css/scss/module/tooltip/index.php | 2 + css/scss/page/_signature.scss | 25 + css/scss/page/index.php | 2 + css/scss/responsive/_responsive.scss | 4 + css/scss/responsive/index.php | 2 + css/scss/style.scss | 70 + css/scss/table/_table.scss | 6 + css/scss/table/index.php | 2 + css/scss/variable/_colors.scss | 14 + css/scss/variable/_structure.scss | 3 + css/scss/variable/_variable.scss | 2 + css/scss/variable/index.php | 2 + meeting_contact.php => dolimeet.js.php | 0 55 files changed, 6180 insertions(+) create mode 100644 core/tpl/signature/dolimeet_signature_action_view.tpl.php create mode 100644 core/tpl/signature/dolimeet_signature_view.tpl.php create mode 100644 core/tpl/signature/index.php create mode 100644 css/dolimeet.css create mode 100644 css/dolimeet.css.php create mode 100644 css/dolimeet.min.css create mode 100644 css/index.php create mode 100644 css/scss/element/_form.scss create mode 100644 css/scss/element/index.php create mode 100644 css/scss/index.php create mode 100644 css/scss/modal/_modal.scss create mode 100644 css/scss/modal/_photo.scss create mode 100644 css/scss/modal/index.php create mode 100644 css/scss/module/_module.scss create mode 100644 css/scss/module/button/_button-add.scss create mode 100644 css/scss/module/button/_button.scss create mode 100644 css/scss/module/button/_colors.scss create mode 100644 css/scss/module/button/index.php create mode 100644 css/scss/module/dropdown/_dropdown.scss create mode 100644 css/scss/module/dropdown/_grid.scss create mode 100644 css/scss/module/dropdown/_list.scss create mode 100644 css/scss/module/dropdown/index.php create mode 100644 css/scss/module/form/_checkbox.scss create mode 100644 css/scss/module/form/_form.scss create mode 100644 css/scss/module/form/_input.scss create mode 100644 css/scss/module/form/_radio.scss create mode 100644 css/scss/module/gridlayout/_gridlayout.scss create mode 100644 css/scss/module/gridlayout/index.php create mode 100644 css/scss/module/index.php create mode 100644 css/scss/module/loader/_loader.scss create mode 100644 css/scss/module/loader/index.php create mode 100644 css/scss/module/modal/_modal.scss create mode 100644 css/scss/module/modal/index.php create mode 100644 css/scss/module/notice/_notice.scss create mode 100644 css/scss/module/notice/_status.scss create mode 100644 css/scss/module/notice/index.php create mode 100644 css/scss/module/slider/_slider.scss create mode 100644 css/scss/module/slider/index.php create mode 100644 css/scss/module/table/_flex.scss create mode 100644 css/scss/module/table/_table.scss create mode 100644 css/scss/module/table/index.php create mode 100644 css/scss/module/tooltip/_tooltip.scss create mode 100644 css/scss/module/tooltip/index.php create mode 100644 css/scss/page/_signature.scss create mode 100644 css/scss/page/index.php create mode 100644 css/scss/responsive/_responsive.scss create mode 100644 css/scss/responsive/index.php create mode 100644 css/scss/style.scss create mode 100644 css/scss/table/_table.scss create mode 100644 css/scss/table/index.php create mode 100644 css/scss/variable/_colors.scss create mode 100644 css/scss/variable/_structure.scss create mode 100644 css/scss/variable/_variable.scss create mode 100644 css/scss/variable/index.php rename meeting_contact.php => dolimeet.js.php (100%) diff --git a/core/tpl/signature/dolimeet_signature_action_view.tpl.php b/core/tpl/signature/dolimeet_signature_action_view.tpl.php new file mode 100644 index 0000000..c85285b --- /dev/null +++ b/core/tpl/signature/dolimeet_signature_action_view.tpl.php @@ -0,0 +1,53 @@ +
+ + +
+ + + + diff --git a/core/tpl/signature/dolimeet_signature_view.tpl.php b/core/tpl/signature/dolimeet_signature_view.tpl.php new file mode 100644 index 0000000..e0a45a0 --- /dev/null +++ b/core/tpl/signature/dolimeet_signature_view.tpl.php @@ -0,0 +1,43 @@ +signature) && ($object->status == 2 || $element->signature == $langs->transnoentities("FileGenerated"))) : ?> + +signature)) : ?> + + + + + + + + diff --git a/core/tpl/signature/index.php b/core/tpl/signature/index.php new file mode 100644 index 0000000..cd6990e --- /dev/null +++ b/core/tpl/signature/index.php @@ -0,0 +1,2 @@ + classe de base du mobule + .grid -> Affichage en grille + .list -> Affichage en liste +--------------------------------------------------------------*/ +.wpeo-dropdown { + position: relative; + display: inline-block; +} +.wpeo-dropdown .dropdown-toggle { + display: inline-block; +} +.wpeo-dropdown .dropdown-toggle span ~ *[class*=icon] { + margin-left: 10px; +} +.wpeo-dropdown .dropdown-content { + opacity: 0; + pointer-events: none; + -webkit-transform: translateY(-10px); + transform: translateY(-10px); + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + position: absolute; + background: #fff; + z-index: 99; + border: 1px solid rgba(0, 0, 0, 0.1); + -webkit-box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.3); + box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.3); + width: 220px; + padding: 0.6em; +} +.wpeo-dropdown.dropdown-active .dropdown-content { + opacity: 1; + pointer-events: auto; + -webkit-transform: translateY(0); + transform: translateY(0); +} +.wpeo-dropdown ul, .wpeo-dropdown li { + margin: 0; + list-style-type: none; + padding: 0; +} +.wpeo-dropdown .dropdown-item { + display: block; + color: rgba(0, 0, 0, 0.7); + text-decoration: none; +} +.wpeo-dropdown .dropdown-item::before { + display: none; + content: ""; +} +.wpeo-dropdown .dropdown-item .dropdown-result-title, .wpeo-dropdown .dropdown-item .dropdown-result-subtitle { + display: block; +} +.wpeo-dropdown .dropdown-item .dropdown-result-title { + font-size: 14px; +} +.wpeo-dropdown .dropdown-item .dropdown-result-subtitle { + font-size: 12px; + color: rgba(0, 0, 0, 0.5); +} + +/** Taille */ +.wpeo-dropdown.dropdown-small .dropdown-content { + width: 60px; +} +.wpeo-dropdown.dropdown-medium .dropdown-content { + width: 220px; +} +.wpeo-dropdown.dropdown-large .dropdown-content { + width: 360px; +} + +/** Padding */ +.wpeo-dropdown.dropdown-padding-0 .dropdown-content { + padding: 0; +} +.wpeo-dropdown.dropdown-padding-1 .dropdown-content { + padding: 0.6em; +} +.wpeo-dropdown.dropdown-padding-2 .dropdown-content { + padding: 1.2em; +} + +/** Alignement */ +.wpeo-dropdown.dropdown-left .dropdown-content { + left: 0; +} +.wpeo-dropdown.dropdown-right .dropdown-content { + right: 0; +} +.wpeo-dropdown.dropdown-horizontal.dropdown-left .dropdown-content { + left: 100%; +} +.wpeo-dropdown.dropdown-horizontal.dropdown-right .dropdown-content { + right: 100%; +} + +/** Sens */ +.wpeo-dropdown.dropdown-horizontal .dropdown-content { + top: 0; + width: auto !important; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; +} + +/** Disable */ +.wpeo-dropdown .dropdown-item.dropdown-item-disable { + opacity: 0.6; + cursor: default !important; + pointer-events: none; +} +.wpeo-dropdown .dropdown-content .dropdown-item { + padding: 0.6em; + background: #fff; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.wpeo-dropdown .dropdown-content .dropdown-item:hover { + cursor: pointer; + background: rgba(0, 0, 0, 0.1); +} + +.wpeo-dropdown.dropdown-list .dropdown-content { + text-align: left; +} +.wpeo-dropdown.dropdown-list .dropdown-item::after { + display: block; + content: ""; + clear: both; +} +.wpeo-dropdown.dropdown-list .dropdown-item img { + float: left; + margin-right: 0.4em; +} + +.wpeo-dropdown.dropdown-grid .dropdown-item img { + width: 100%; + height: auto; + display: block; + margin: 0; +} + +/*-------------------------------------------------------------- + Module : Button + Version : 1.2.0 + + * Les boutons se forment grâce à leurs classes CSS + * .button -> classe de base pour un bouton + * .primary + * .light + * .dark + * .red + * .yellow + * .blue + * .green + * .transparent + * .bordered -> Change l'affichage du bouton. Fonctionne avec les même couleurs + * .strong -> texte en gras + * .uppercase -> texte en majuscule + * .float-right -> float right + * .float-left -> float left + * .square-30 -> bouton carré 30px + * .square-40 -> bouton carré 40px + * .square-50 -> bouton carré 50px + * .square-60 -> bouton carré 60px + * .margin -> margin haut et bas sur le bouton + * .radius-1 -> Arrondis les bords + * .radius-3 -> Arrondis les bords + * .radius-3 -> Arrondis les bords + * .rounded -> bouton en forme de rond + * .disable -> désactive les actions sur le bouton + * .size-small -> petite taille + * .size-large -> grande taille +--------------------------------------------------------------*/ +.wpeo-button { + display: inline-block; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + background: none; + text-decoration: none; + padding: 6px 14px; + line-height: 1.4; + vertical-align: middle; + height: auto; + border-radius: 0; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + position: relative; + border-width: 3px; + border-style: solid; + font-size: 16px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + background: #0d8aff; + border-color: #0d8aff; + color: #fff; +} +.wpeo-button:focus, .wpeo-button:visited { + color: #fff; +} +.wpeo-button:hover { + color: #fff; + -webkit-box-shadow: inset 0 -2.6em rgba(255, 255, 255, 0.25); + box-shadow: inset 0 -2.6em rgba(255, 255, 255, 0.25); + cursor: pointer; + text-decoration: none; +} +.wpeo-button:focus, .wpeo-button:active { + outline: none; +} + +/** Colors */ +.wpeo-button { + /* par défaut */ + background: #0d8aff; + border-color: #0d8aff; + color: #fff; +} +.wpeo-button.button-main { + background: #0d8aff; + border-color: #0d8aff; + color: #fff; +} +.wpeo-button.button-secondary { + background: #263C5C; + border-color: #263C5C; + color: #fff; +} +.wpeo-button.button-light { + background: #fff; + border-color: #fff; + color: #333333; +} +.wpeo-button.button-light:hover { + -webkit-box-shadow: inset 0 -2.6em rgba(0, 0, 0, 0.1); + box-shadow: inset 0 -2.6em rgba(0, 0, 0, 0.1); + color: #333333; +} +.wpeo-button.button-dark { + background: #2b2b2b; + border-color: #2b2b2b; +} +.wpeo-button.button-grey { + background: #ececec; + border-color: #ececec; + color: #333333; +} +.wpeo-button.button-grey:hover { + -webkit-box-shadow: inset 0 -2.6em rgba(0, 0, 0, 0.1); + box-shadow: inset 0 -2.6em rgba(0, 0, 0, 0.1); + color: #333333; +} +.wpeo-button.button-red { + background: #e05353; + border-color: #e05353; +} +.wpeo-button.button-yellow { + background: #e9ad4f; + border-color: #e9ad4f; +} +.wpeo-button.button-blue { + background: #0d8aff; + border-color: #0d8aff; +} +.wpeo-button.button-green { + background: #47e58e; + border-color: #47e58e; +} +.wpeo-button.button-transparent { + background: transparent; + border-color: transparent; + color: rgba(51, 51, 51, 0.4); +} +.wpeo-button.button-transparent:hover { + color: #333333; + -webkit-box-shadow: inset 0 -2.6em rgba(255, 255, 255, 0); + box-shadow: inset 0 -2.6em rgba(255, 255, 255, 0); +} + +.wpeo-button.button-bordered { + background: none; + /* Par defaut */ + border-color: #0d8aff; + color: #0d8aff; +} +.wpeo-button.button-bordered.button-main { + border-color: #0d8aff; + color: #0d8aff; +} +.wpeo-button.button-bordered.button-main:hover { + -webkit-box-shadow: inset 0 -2.6em #0d8aff; + box-shadow: inset 0 -2.6em #0d8aff; + color: #fff; +} +.wpeo-button.button-bordered.button-light { + border-color: #fff; + color: #fff; +} +.wpeo-button.button-bordered.button-light:hover { + -webkit-box-shadow: inset 0 -2.6em #fff; + box-shadow: inset 0 -2.6em #fff; + color: #333333; +} +.wpeo-button.button-bordered.button-dark { + border-color: #2b2b2b; + color: #2b2b2b; +} +.wpeo-button.button-bordered.button-dark:hover { + -webkit-box-shadow: inset 0 -2.6em #2b2b2b; + box-shadow: inset 0 -2.6em #2b2b2b; +} +.wpeo-button.button-bordered.button-grey { + border-color: #ececec; + color: #a0a0a0; +} +.wpeo-button.button-bordered.button-grey:hover { + -webkit-box-shadow: inset 0 -2.6em #ececec; + box-shadow: inset 0 -2.6em #ececec; + color: #333333; +} +.wpeo-button.button-bordered.button-red { + border-color: #e05353; + color: #e05353; +} +.wpeo-button.button-bordered.button-red:hover { + -webkit-box-shadow: inset 0 -2.6em #e05353; + box-shadow: inset 0 -2.6em #e05353; +} +.wpeo-button.button-bordered.button-yellow { + border-color: #e9ad4f; + color: #e9ad4f; +} +.wpeo-button.button-bordered.button-yellow:hover { + -webkit-box-shadow: inset 0 -2.6em #e9ad4f; + box-shadow: inset 0 -2.6em #e9ad4f; +} +.wpeo-button.button-bordered.button-blue { + border-color: #0d8aff; + color: #0d8aff; +} +.wpeo-button.button-bordered.button-blue:hover { + -webkit-box-shadow: inset 0 -2.6em #0d8aff; + box-shadow: inset 0 -2.6em #0d8aff; +} +.wpeo-button.button-bordered.button-green { + border-color: #47e58e; + color: #47e58e; +} +.wpeo-button.button-bordered.button-green:hover { + -webkit-box-shadow: inset 0 -2.6em #47e58e; + box-shadow: inset 0 -2.6em #47e58e; +} +.wpeo-button.button-bordered:hover { + -webkit-box-shadow: inset 0 -2.6em #0d8aff; + box-shadow: inset 0 -2.6em #0d8aff; + color: #fff; +} + +.wpeo-button .button-add { + position: absolute; + top: 0.4em; + right: 0.2em; + opacity: 0.6; + font-size: 14px; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.wpeo-button:hover .button-add { + opacity: 0.8; +} + +.wpeo-button.button-square-40 .button-add { + top: 0.1em; + right: 0; +} + +.wpeo-button .button-icon, .wpeo-button span { + position: relative; +} +.wpeo-button .button-icon ~ span { + margin-left: 10px; +} +.wpeo-button span ~ .button-icon { + margin-left: 10px; +} + +.wpeo-button.button-strong span { + font-weight: 800; +} + +.wpeo-button.button-uppercase span { + text-transform: uppercase; + font-size: 14px; +} + +.wpeo-button[class*=button-square-] { + text-align: center; + overflow: hidden; + padding: 0; +} + +.wpeo-button.button-square-30 { + width: 30px; + height: 30px; + line-height: 24px; +} +.wpeo-button.button-square-30 .button-icon { + font-size: 12px; + line-height: 24px; +} + +.wpeo-button.button-square-40 { + width: 40px; + height: 40px; + line-height: 34px; +} +.wpeo-button.button-square-40 .button-icon { + line-height: 34px; +} + +.wpeo-button.button-square-50 { + width: 50px; + height: 50px; + line-height: 44px; +} +.wpeo-button.button-square-50 .button-icon { + line-height: 44px; +} + +.wpeo-button.button-square-60 { + width: 60px; + height: 60px; + line-height: 54px; +} +.wpeo-button.button-square-60 .button-icon { + line-height: 54px; +} + +.wpeo-button.button-float-left { + float: left; +} +.wpeo-button.button-float-right { + float: right; +} + +.wpeo-button.button-margin { + margin: 1em 0; +} + +.wpeo-button.button-radius-1 { + border-radius: 2px; +} +.wpeo-button.button-radius-2 { + border-radius: 4px; +} +.wpeo-button.button-radius-3 { + border-radius: 6px; +} +.wpeo-button.button-rounded { + border-radius: 50%; +} + +.wpeo-button.button-disable { + background: #ececec !important; + border-color: #ececec !important; + color: rgba(0, 0, 0, 0.4) !important; + pointer-events: none; +} +.wpeo-button.button-disable:hover { + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +.wpeo-button.button-disable.button-event { + pointer-events: all; +} + +.wpeo-button.button-size-small { + font-size: 14px; +} +.wpeo-button.button-size-small.button-uppercase span { + font-size: 12px; +} + +.wpeo-button.button-size-large { + font-size: 18px; +} +.wpeo-button.button-size-large.button-uppercase span { + font-size: 16px; +} + +/*-------------------------------------------------------------- + Module : Modal + Version : 1.0.0 + + .wpeo-modal -> classe de base du mobule + .modalactive -> lance l'apparition de la modal + .no-modal-close -> désactive l'icone fermeture +--------------------------------------------------------------*/ +.wpeo-modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1000; + background: rgba(39, 42, 53, 0.9); + opacity: 0; + pointer-events: none; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.wpeo-modal textarea { + resize: none; +} +.wpeo-modal.modal-active { + opacity: 1; + pointer-events: auto; + z-index: 1002; +} +.wpeo-modal.modal-active .modal-container { + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} +.wpeo-modal.modal-active textarea { + resize: both; +} +.wpeo-modal.modal-active .modal-active { + z-index: 1003; +} +.wpeo-modal.modal-active .modal-active .modal-active { + z-index: 1004; +} +.wpeo-modal.modal-force-display .modal-close { + display: none; +} + +.wpeo-modal .modal-container { + position: absolute; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + width: 100%; + max-width: 860px; + height: 100%; + max-height: 560px; + background: #fff; + padding: 1em 0; + margin: auto; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -60%); + transform: translate(-50%, -60%); +} +@media (max-width: 480px) { + .wpeo-modal .modal-container { + padding: 1em; + } +} +.wpeo-modal .modal-container .modal-header { + height: 10%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding: 0 2em; +} +.wpeo-modal .modal-container .modal-content { + height: 78%; + padding: 0 2em; +} +.wpeo-modal .modal-container .modal-footer { + height: 12%; + padding: 0 2em; +} +.wpeo-modal .modal-container .modal-header .modal-title, .wpeo-modal .modal-container .modal-header .modal-close { + margin: auto 0; +} +.wpeo-modal .modal-container .modal-header .modal-title { + text-transform: uppercase; + font-size: 18px; + white-space: normal; +} +@media (max-width: 770px) { + .wpeo-modal .modal-container .modal-header .modal-title { + font-size: 16px; + } +} +@media (max-width: 480px) { + .wpeo-modal .modal-container .modal-header .modal-title { + font-size: 14px; + } +} +.wpeo-modal .modal-container .modal-header .modal-close { + margin-left: auto; + color: rgba(0, 0, 0, 0.3); + padding: 4px; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.wpeo-modal .modal-container .modal-header .modal-close:hover { + cursor: pointer; + color: #0d8aff; +} +.wpeo-modal .modal-container .modal-content { + overflow-y: auto; + font-size: 14px; +} +@media (max-width: 480px) { + .wpeo-modal .modal-container .modal-content { + font-size: 12px; + } +} +.wpeo-modal .modal-container .modal-footer { + text-align: right; + padding-top: 1em; +} +.wpeo-modal .modal-container .modal-footer.left { + text-align: left; +} +.wpeo-modal .modal-container .modal-footer.center { + text-align: center; +} + +/*-------------------------------------------------------------- + Module : Loader + Version : 1.0.0 + + .wpeo-loader => classe de base pour le module + .loader-spin => icone de chargement +--------------------------------------------------------------*/ +.wpeo-loader { + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + pointer-events: none; + opacity: 0.5; + position: relative; +} +.wpeo-loader .loader-spin { + position: absolute; + border: 3px solid #a7a7a7; + border-top: 3px solid #002140; + border-radius: 50%; + width: 20px; + height: 20px; + z-index: 99; + left: 50%; + top: 50%; + margin: 0 !important; + padding: 0 !important; + -webkit-animation: loader-spin 1s ease-out infinite; + animation: loader-spin 1s ease-out infinite; +} + +@-webkit-keyframes loader-spin { + 0% { + -webkit-transform: translate(-50%, -50%) rotate(0deg); + transform: translate(-50%, -50%) rotate(0deg); + } + 100% { + -webkit-transform: translate(-50%, -50%) rotate(360deg); + transform: translate(-50%, -50%) rotate(360deg); + } +} + +@keyframes loader-spin { + 0% { + -webkit-transform: translate(-50%, -50%) rotate(0deg); + transform: translate(-50%, -50%) rotate(0deg); + } + 100% { + -webkit-transform: translate(-50%, -50%) rotate(360deg); + transform: translate(-50%, -50%) rotate(360deg); + } +} +/*-------------------------------------------------------------- + Module : Gridlayout + Version : 1.5.0 + + * Classes pour l'élément parent + .wpeo-gridlayout -> classe de base du mobule + .grid-X -> Définit le nombre de colonnes + .grid-margin-X -> Ajoute des marges au dessus et en dessous du parent + .grid-gap-X -> Définit les gouttières des colonnes + + * Classes pour les enfants direct + .gridw-X -> Change la largeur du bloc enfant (gridw-2 = 2 fois la taille initiale) + .gridh-X -> Change la hauteur du bloc enfant (gridh-2 = 2 fois la taille initiale) +--------------------------------------------------------------*/ +.wpeo-gridlayout { + display: grid; + grid-gap: 1em 1em; + grid-template-columns: repeat(4, 1fr); +} + +/** Définition des tailles */ +.wpeo-gridlayout { + /** Du parent */ + /** Chaque enfant peut modifier sa propre taille */ + /** Chaque enfant peut modifier sa propre taille */ + /** Chaque enfant peut modifier sa propre taille */ + /** Chaque enfant peut modifier sa propre taille */ + /** Chaque enfant peut modifier sa propre taille */ + /** Chaque enfant peut modifier sa propre taille */ +} +.wpeo-gridlayout.grid-1 { + grid-template-columns: repeat(1, 1fr); +} +.wpeo-gridlayout.grid-1 > .gridw-1 { + grid-column: auto/span 1; +} +.wpeo-gridlayout.grid-2 { + grid-template-columns: repeat(2, 1fr); +} +.wpeo-gridlayout.grid-2 > .gridw-1 { + grid-column: auto/span 1; +} +.wpeo-gridlayout.grid-2 > .gridw-2 { + grid-column: auto/span 2; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-2 > .gridw-2 { + grid-column: auto/span 2; + } +} +.wpeo-gridlayout.grid-3 { + grid-template-columns: repeat(3, 1fr); +} +.wpeo-gridlayout.grid-3 > .gridw-1 { + grid-column: auto/span 1; +} +.wpeo-gridlayout.grid-3 > .gridw-2 { + grid-column: auto/span 2; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-3 > .gridw-2 { + grid-column: auto/span 2; + } +} +.wpeo-gridlayout.grid-3 > .gridw-3 { + grid-column: auto/span 3; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-3 > .gridw-3 { + grid-column: auto/span 2; + } +} +.wpeo-gridlayout.grid-4 { + grid-template-columns: repeat(4, 1fr); +} +.wpeo-gridlayout.grid-4 > .gridw-1 { + grid-column: auto/span 1; +} +.wpeo-gridlayout.grid-4 > .gridw-2 { + grid-column: auto/span 2; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-4 > .gridw-2 { + grid-column: auto/span 2; + } +} +.wpeo-gridlayout.grid-4 > .gridw-3 { + grid-column: auto/span 3; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-4 > .gridw-3 { + grid-column: auto/span 2; + } +} +.wpeo-gridlayout.grid-4 > .gridw-4 { + grid-column: auto/span 4; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-4 > .gridw-4 { + grid-column: auto/span 2; + } +} +.wpeo-gridlayout.grid-5 { + grid-template-columns: repeat(5, 1fr); +} +.wpeo-gridlayout.grid-5 > .gridw-1 { + grid-column: auto/span 1; +} +.wpeo-gridlayout.grid-5 > .gridw-2 { + grid-column: auto/span 2; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-5 > .gridw-2 { + grid-column: auto/span 2; + } +} +.wpeo-gridlayout.grid-5 > .gridw-3 { + grid-column: auto/span 3; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-5 > .gridw-3 { + grid-column: auto/span 2; + } +} +.wpeo-gridlayout.grid-5 > .gridw-4 { + grid-column: auto/span 4; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-5 > .gridw-4 { + grid-column: auto/span 2; + } +} +.wpeo-gridlayout.grid-5 > .gridw-5 { + grid-column: auto/span 5; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-5 > .gridw-5 { + grid-column: auto/span 2; + } +} +.wpeo-gridlayout.grid-6 { + grid-template-columns: repeat(6, 1fr); +} +.wpeo-gridlayout.grid-6 > .gridw-1 { + grid-column: auto/span 1; +} +.wpeo-gridlayout.grid-6 > .gridw-2 { + grid-column: auto/span 2; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-6 > .gridw-2 { + grid-column: auto/span 2; + } +} +.wpeo-gridlayout.grid-6 > .gridw-3 { + grid-column: auto/span 3; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-6 > .gridw-3 { + grid-column: auto/span 2; + } +} +.wpeo-gridlayout.grid-6 > .gridw-4 { + grid-column: auto/span 4; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-6 > .gridw-4 { + grid-column: auto/span 2; + } +} +.wpeo-gridlayout.grid-6 > .gridw-5 { + grid-column: auto/span 5; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-6 > .gridw-5 { + grid-column: auto/span 2; + } +} +.wpeo-gridlayout.grid-6 > .gridw-6 { + grid-column: auto/span 6; +} +@media (max-width: 770px) { + .wpeo-gridlayout.grid-6 > .gridw-6 { + grid-column: auto/span 2; + } +} + +/** Définition des hauteur des enfants */ +.wpeo-gridlayout > .gridh-1 { + grid-row: auto/span 1; +} +@media (max-width: 770px) { + .wpeo-gridlayout > .gridh-1 { + grid-row: auto/span 1 !important; + } +} +.wpeo-gridlayout > .gridh-2 { + grid-row: auto/span 2; +} +@media (max-width: 770px) { + .wpeo-gridlayout > .gridh-2 { + grid-row: auto/span 1 !important; + } +} +.wpeo-gridlayout > .gridh-3 { + grid-row: auto/span 3; +} +@media (max-width: 770px) { + .wpeo-gridlayout > .gridh-3 { + grid-row: auto/span 1 !important; + } +} +.wpeo-gridlayout > .gridh-4 { + grid-row: auto/span 4; +} +@media (max-width: 770px) { + .wpeo-gridlayout > .gridh-4 { + grid-row: auto/span 1 !important; + } +} +.wpeo-gridlayout > .gridh-5 { + grid-row: auto/span 5; +} +@media (max-width: 770px) { + .wpeo-gridlayout > .gridh-5 { + grid-row: auto/span 1 !important; + } +} +.wpeo-gridlayout > .gridh-6 { + grid-row: auto/span 6; +} +@media (max-width: 770px) { + .wpeo-gridlayout > .gridh-6 { + grid-row: auto/span 1 !important; + } +} + +/** Marges */ +.wpeo-gridlayout.grid-margin-0 { + margin: 0em 0; +} +.wpeo-gridlayout.grid-margin-1 { + margin: 1em 0; +} +.wpeo-gridlayout.grid-margin-2 { + margin: 2em 0; +} +.wpeo-gridlayout.grid-margin-3 { + margin: 3em 0; +} +.wpeo-gridlayout.grid-margin-4 { + margin: 4em 0; +} +.wpeo-gridlayout.grid-margin-5 { + margin: 5em 0; +} +.wpeo-gridlayout.grid-margin-6 { + margin: 6em 0; +} + +/** Gouttières */ +.wpeo-gridlayout.grid-gap-0 { + grid-gap: 0em 0em; +} +.wpeo-gridlayout.grid-gap-1 { + grid-gap: 1em 1em; +} +.wpeo-gridlayout.grid-gap-2 { + grid-gap: 2em 2em; +} +.wpeo-gridlayout.grid-gap-3 { + grid-gap: 3em 3em; +} +.wpeo-gridlayout.grid-gap-4 { + grid-gap: 4em 4em; +} +.wpeo-gridlayout.grid-gap-5 { + grid-gap: 5em 5em; +} +.wpeo-gridlayout.grid-gap-6 { + grid-gap: 6em 6em; +} + +/** Alignements */ +.wpeo-gridlayout .grid-align-center { + margin-left: auto; + margin-right: auto; +} +.wpeo-gridlayout .grid-align-right { + margin-left: auto; +} +.wpeo-gridlayout .grid-align-middle { + margin-top: auto; + margin-bottom: auto; +} +.wpeo-gridlayout .grid-align-bottom { + margin-top: auto; +} + +/** Media queries */ +@media (max-width: 480px) { + .wpeo-gridlayout:not(.dropdown-content).grid-2 { + grid-template-columns: repeat(1, 1fr) !important; + } +} +@media (max-width: 770px) { + .wpeo-gridlayout:not(.dropdown-content).grid-3 { + grid-template-columns: repeat(2, 1fr) !important; + } +} +@media (max-width: 480px) { + .wpeo-gridlayout:not(.dropdown-content).grid-3 { + grid-template-columns: repeat(1, 1fr) !important; + } +} +@media (max-width: 770px) { + .wpeo-gridlayout:not(.dropdown-content).grid-4 { + grid-template-columns: repeat(2, 1fr) !important; + } +} +@media (max-width: 480px) { + .wpeo-gridlayout:not(.dropdown-content).grid-4 { + grid-template-columns: repeat(1, 1fr) !important; + } +} +@media (max-width: 770px) { + .wpeo-gridlayout:not(.dropdown-content).grid-5 { + grid-template-columns: repeat(2, 1fr) !important; + } +} +@media (max-width: 480px) { + .wpeo-gridlayout:not(.dropdown-content).grid-5 { + grid-template-columns: repeat(1, 1fr) !important; + } +} +@media (max-width: 770px) { + .wpeo-gridlayout:not(.dropdown-content).grid-6 { + grid-template-columns: repeat(2, 1fr) !important; + } +} +@media (max-width: 480px) { + .wpeo-gridlayout:not(.dropdown-content).grid-6 { + grid-template-columns: repeat(1, 1fr) !important; + } +} +@media (max-width: 480px) { + .wpeo-gridlayout:not(.dropdown-content) > * { + grid-column: auto/span 1 !important; + } +} + +/*-------------------------------------------------------------- + Module : Table + Version : 1.0.0 + .wpeo-table -> classe de base du mobule +--------------------------------------------------------------*/ +/*-------------------------------------------------------------- + Table Flex + + .table-25 : max-width: 25px + .table-50 : max-width: 50px + .table-75 : max-width: 75px + .table-100 : max-width: 100px + ... + .table-500 : max-width: 500px; + + .table-end : Utiliser la classe table-end justifie la cellule sur la droite + .table-padding-0 : Enleve les marges internes d’une cellule +--------------------------------------------------------------*/ +.wpeo-table.table-flex { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + font-size: 14px; +} + +/** Ligne */ +.wpeo-table.table-flex .table-row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; +} +.wpeo-table.table-flex .table-row:not(.table-header):nth-of-type(odd) { + background: rgba(0, 0, 0, 0.05); +} + +/** Ligne entete */ +.wpeo-table.table-flex .table-row.table-header { + background: #263C5C; +} +.wpeo-table.table-flex .table-row.table-header .table-cell { + font-weight: 700; + color: #fff; +} + +/** Cellule */ +.wpeo-table.table-flex .table-cell { + margin: auto 0; + width: 100%; + padding: 0.8em 0.6em; +} +@media (max-width: 770px) { + .wpeo-table.table-flex .table-cell { + padding: 0.4em; + } +} + +/** Taille générale des cellules */ +.wpeo-table.table-flex.table-1 .table-cell { + width: 100%; +} +.wpeo-table.table-flex.table-2 .table-cell { + width: 50%; +} +.wpeo-table.table-flex.table-3 .table-cell { + width: 33.3333333333%; +} +.wpeo-table.table-flex.table-4 .table-cell { + width: 25%; +} +.wpeo-table.table-flex.table-5 .table-cell { + width: 20%; +} +.wpeo-table.table-flex.table-6 .table-cell { + width: 16.6666666667%; +} +.wpeo-table.table-flex.table-7 .table-cell { + width: 14.2857142857%; +} +.wpeo-table.table-flex.table-8 .table-cell { + width: 12.5%; +} +.wpeo-table.table-flex.table-9 .table-cell { + width: 11.1111111111%; +} +.wpeo-table.table-flex.table-10 .table-cell { + width: 10%; +} + +/** Taille spécifiques des cellules */ +.wpeo-table.table-flex .table-cell.table-25 { + max-width: 25px; + min-width: 25px; +} +.wpeo-table.table-flex .table-cell.table-50 { + max-width: 50px; + min-width: 50px; +} +.wpeo-table.table-flex .table-cell.table-75 { + max-width: 75px; + min-width: 75px; +} +.wpeo-table.table-flex .table-cell.table-100 { + max-width: 100px; + min-width: 100px; +} +.wpeo-table.table-flex .table-cell.table-125 { + max-width: 125px; + min-width: 125px; +} +.wpeo-table.table-flex .table-cell.table-150 { + max-width: 150px; + min-width: 150px; +} +.wpeo-table.table-flex .table-cell.table-175 { + max-width: 175px; + min-width: 175px; +} +.wpeo-table.table-flex .table-cell.table-200 { + max-width: 200px; + min-width: 200px; +} +.wpeo-table.table-flex .table-cell.table-225 { + max-width: 225px; + min-width: 225px; +} +.wpeo-table.table-flex .table-cell.table-250 { + max-width: 250px; + min-width: 250px; +} +.wpeo-table.table-flex .table-cell.table-275 { + max-width: 275px; + min-width: 275px; +} +.wpeo-table.table-flex .table-cell.table-300 { + max-width: 300px; + min-width: 300px; +} +.wpeo-table.table-flex .table-cell.table-325 { + max-width: 325px; + min-width: 325px; +} +.wpeo-table.table-flex .table-cell.table-350 { + max-width: 350px; + min-width: 350px; +} +.wpeo-table.table-flex .table-cell.table-375 { + max-width: 375px; + min-width: 375px; +} +.wpeo-table.table-flex .table-cell.table-400 { + max-width: 400px; + min-width: 400px; +} +.wpeo-table.table-flex .table-cell.table-425 { + max-width: 425px; + min-width: 425px; +} +.wpeo-table.table-flex .table-cell.table-450 { + max-width: 450px; + min-width: 450px; +} +.wpeo-table.table-flex .table-cell.table-475 { + max-width: 475px; + min-width: 475px; +} +.wpeo-table.table-flex .table-cell.table-500 { + max-width: 500px; + min-width: 500px; +} +.wpeo-table.table-flex .table-cell.table-full { + width: 100%; +} + +/** Différentes classes */ +.wpeo-table.table-flex .table-cell.table-end { + text-align: right; + margin-left: auto; +} +.wpeo-table.table-flex .table-cell.table-padding-0 { + padding: 0; +} + +/** Responsive mobile */ +@media (max-width: 480px) { + .wpeo-table.table-flex .table-row { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + } + .wpeo-table.table-flex .table-cell { + width: 100%; + } +} +/*-------------------------------------------------------------- + Module : Tooltip + Version : 1.0.0 + + .wpeo-tooltip -> classe de base du mobule + .tooltip-primary -> tooltip sur fond rouge + .tooltip-light -> tooltip sur fond rouge + .tooltip-red -> tooltip sur fond rouge +--------------------------------------------------------------*/ +.wpeo-tooltip { + display: block; + position: absolute; + bottom: 0; + left: 0; + opacity: 0; + pointer-events: none; + z-index: 99999; + white-space: nowrap; + background: #2b2b2b; + color: #fff; + border-radius: 6px; + font-size: 0.8rem; + padding: 0 1em; + height: 2.2em; + line-height: 2.2em; +} +.wpeo-tooltip::before { + display: block; + content: ""; + width: 0; + height: 0; + border-style: solid; + position: absolute; +} +.wpeo-tooltip:focus { + outline: none; +} + +/* Couleurs */ +.wpeo-tooltip.tooltip-dark { + background: #2b2b2b; +} +.wpeo-tooltip.tooltip-dark.tooltip-top::before { + border-color: #2b2b2b transparent transparent transparent; +} +.wpeo-tooltip.tooltip-dark.tooltip-right::before { + border-color: transparent #2b2b2b transparent transparent; +} +.wpeo-tooltip.tooltip-dark.tooltip-bottom::before { + border-color: transparent transparent #2b2b2b transparent; +} +.wpeo-tooltip.tooltip-dark.tooltip-left::before { + border-color: transparent transparent transparent #2b2b2b; +} +.wpeo-tooltip.tooltip-primary { + background: #0d8aff; +} +.wpeo-tooltip.tooltip-primary.tooltip-top::before { + border-color: #0d8aff transparent transparent transparent; +} +.wpeo-tooltip.tooltip-primary.tooltip-right::before { + border-color: transparent #0d8aff transparent transparent; +} +.wpeo-tooltip.tooltip-primary.tooltip-bottom::before { + border-color: transparent transparent #0d8aff transparent; +} +.wpeo-tooltip.tooltip-primary.tooltip-left::before { + border-color: transparent transparent transparent #0d8aff; +} +.wpeo-tooltip.tooltip-light { + background: #ececec; + color: rgba(0, 0, 0, 0.6); +} +.wpeo-tooltip.tooltip-light.tooltip-top::before { + border-color: #ececec transparent transparent transparent; +} +.wpeo-tooltip.tooltip-light.tooltip-right::before { + border-color: transparent #ececec transparent transparent; +} +.wpeo-tooltip.tooltip-light.tooltip-bottom::before { + border-color: transparent transparent #ececec transparent; +} +.wpeo-tooltip.tooltip-light.tooltip-left::before { + border-color: transparent transparent transparent #ececec; +} +.wpeo-tooltip.tooltip-red { + background: #e05353; +} +.wpeo-tooltip.tooltip-red.tooltip-top::before { + border-color: #e05353 transparent transparent transparent; +} +.wpeo-tooltip.tooltip-red.tooltip-right::before { + border-color: transparent #e05353 transparent transparent; +} +.wpeo-tooltip.tooltip-red.tooltip-bottom::before { + border-color: transparent transparent #e05353 transparent; +} +.wpeo-tooltip.tooltip-red.tooltip-left::before { + border-color: transparent transparent transparent #e05353; +} + +/* Position de la fleche */ +.wpeo-tooltip.tooltip-top::before { + border-width: 6px 6px 0 6px; + border-color: #2b2b2b transparent transparent transparent; + bottom: -6px; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); +} +.wpeo-tooltip.tooltip-right::before { + border-width: 6px 6px 6px 0; + border-color: transparent #2b2b2b transparent transparent; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + left: -6px; +} +.wpeo-tooltip.tooltip-bottom::before { + border-width: 0 6px 6px 6px; + border-color: transparent transparent #2b2b2b transparent; + top: -6px; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); +} +.wpeo-tooltip.tooltip-left::before { + border-width: 6px 0 6px 6px; + border-color: transparent transparent transparent #2b2b2b; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + right: -6px; +} + +/*-------------------------------------------------------------- + Module : Notice + Version : 1.0.0 + + .wpeo-notice -> classe de base du mobule +--------------------------------------------------------------*/ +/* General */ +.wpeo-notice { + position: relative; + font-size: 1em; + padding: 1em; + overflow: hidden; + border-radius: 3px; + border: solid #eee 1px; + margin: 1em 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.wpeo-notice::before { + display: block; + font-family: "Font Awesome 5 Free"; + font-weight: 900; + font-size: 24px; +} +.wpeo-notice .notice-content { + width: 100%; + padding: 0 1em; + color: rgba(0, 0, 0, 0.6); +} +.wpeo-notice .notice-title { + font-size: 20px; + font-weight: 600; + color: rgba(0, 0, 0, 0.9); +} +.wpeo-notice .notice-subtitle { + font-size: 14px; +} +.wpeo-notice .notice-close { + color: rgba(0, 0, 0, 0.3); + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.wpeo-notice .notice-close:hover { + color: #0d8aff; + cursor: pointer; +} +.wpeo-notice ul { + padding: 0 0 0 1.4em; + margin: 0.4em 0; +} + +/** Status */ +/** Info */ +.wpeo-notice.notice-info { + border-left: solid #0d8aff 6px; + color: #0d8aff; + background: rgba(13, 138, 255, 0.05); +} +.wpeo-notice.notice-info::before { + content: "\f05a"; +} +.wpeo-notice.notice-info .notice-title, .wpeo-notice.notice-info .notice-subtitle, .wpeo-notice.notice-info a { + color: #0d8aff; +} + +/** Error */ +.wpeo-notice.notice-error { + border-left: solid #e05353 6px; + color: #e05353; + background: rgba(224, 83, 83, 0.05); +} +.wpeo-notice.notice-error::before { + content: "\f057"; +} +.wpeo-notice.notice-error .notice-title, .wpeo-notice.notice-error .notice-subtitle, .wpeo-notice.notice-error a { + color: #e05353; +} + +/** Warning */ +.wpeo-notice.notice-warning { + border-left: solid #e9ad4f 6px; + color: #e9ad4f; + background: rgba(233, 173, 79, 0.05); +} +.wpeo-notice.notice-warning::before { + content: "\f071"; +} +.wpeo-notice.notice-warning .notice-title, .wpeo-notice.notice-warning .notice-subtitle, .wpeo-notice.notice-warning a { + color: #e9ad4f; +} + +/** Success */ +.wpeo-notice.notice-success { + border-left: solid #47e58e 6px; + color: #47e58e; + background: rgba(71, 229, 142, 0.05); +} +.wpeo-notice.notice-success::before { + content: "\f058"; +} +.wpeo-notice.notice-success .notice-title, .wpeo-notice.notice-success .notice-subtitle, .wpeo-notice.notice-success a { + color: #47e58e; +} + +.tns-outer { + position: relative; +} + +.tns-outer .tns-nav { + text-align: center; + position: absolute; + width: 100%; + bottom: 0.5em; + z-index: 50; +} +.tns-outer .tns-nav button { + display: inline-block; + margin: 0 4px; + padding: 0; + width: 15px; + height: 15px; + background: #fff; + border-radius: 50%; + -webkit-box-shadow: 0px 1px 6px 0px rgba(0, 0, 0, 0.2); + box-shadow: 0px 1px 6px 0px rgba(0, 0, 0, 0.2); + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + border: 2px solid #fff; +} +.tns-outer .tns-nav button:hover { + -webkit-box-shadow: none; + box-shadow: none; +} +.tns-outer .tns-nav button.tns-nav-active { + border: 2px solid #0d8aff; + -webkit-box-shadow: 0px 0px 0px 2px #0d8aff; + box-shadow: 0px 0px 0px 2px #0d8aff; +} + +.tns-outer .tns-controls button[data-controls=prev], .tns-outer .tns-controls button[data-controls=next] { + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + background: none; + padding: 0; + border: 0; + z-index: 60; +} +.tns-outer .tns-controls button[data-controls=prev] .icon, .tns-outer .tns-controls button[data-controls=next] .icon { + color: #3a3a3a; + background: #fff; + border-radius: 50%; + width: 28px; + height: 28px; + text-align: center; + line-height: 28px; + opacity: 0.7; + -webkit-transition: opacity 0.3s cubic-bezier(0.77, 0, 0.175, 1); + transition: opacity 0.3s cubic-bezier(0.77, 0, 0.175, 1); +} +.tns-outer .tns-controls button[data-controls=prev]:hover, .tns-outer .tns-controls button[data-controls=next]:hover { + -webkit-box-shadow: none; + box-shadow: none; +} +.tns-outer .tns-controls button[data-controls=prev]:hover .icon, .tns-outer .tns-controls button[data-controls=next]:hover .icon { + opacity: 1; +} +.tns-outer .tns-controls button[data-controls=prev]:active .icon, .tns-outer .tns-controls button[data-controls=next]:active .icon { + -webkit-transform: translateY(2px); + transform: translateY(2px); +} +.tns-outer .tns-controls button[data-controls=prev][disabled] .icon, .tns-outer .tns-controls button[data-controls=next][disabled] .icon { + opacity: 0.2; +} +.tns-outer .tns-controls button[data-controls=prev][disabled]:active .icon, .tns-outer .tns-controls button[data-controls=next][disabled]:active .icon { + -webkit-transform: none; + transform: none; +} +.tns-outer .tns-controls button[data-controls=prev] { + left: 15px; +} +.tns-outer .tns-controls button[data-controls=next] { + right: 15px; +} + +/*-------------------------------------------------------------- + Module : Form + Version : 1.0.0 + --------------------------------------------------------------*/ +/** Reset des champs de base */ +.wpeo-form input, .wpeo-form textarea, .wpeo-form select { + border: 1px solid rgba(0, 0, 0, 0.2); + font-size: 14px; + background: transparent; + padding: 0; + margin: 0; + width: 100%; + padding: 1em 0.5em; + -webkit-box-shadow: none; + box-shadow: none; +} +.wpeo-form input:focus, .wpeo-form input:active, .wpeo-form textarea:focus, .wpeo-form textarea:active, .wpeo-form select:focus, .wpeo-form select:active { + outline: none; + -webkit-box-shadow: none; + box-shadow: none; +} +.wpeo-form select { + padding: 1em 0; +} +.wpeo-form input[type=submit] { + width: auto; +} + +/** compatibilité Date */ +.wpeo-form .group-date .mysql-date { + display: none; +} + +/* Compatibility Dropdown */ +.wpeo-form .wpeo-dropdown { + display: block; + width: 100%; +} +.wpeo-form .wpeo-dropdown .dropdown-toggle { + width: 100%; + display: block; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + border: 0; + font-size: 14px; + padding: 1em 2em 1em 1em; + margin: 0; +} +.wpeo-form .wpeo-dropdown .dropdown-toggle:hover { + cursor: pointer; +} +.wpeo-form .wpeo-dropdown .dropdown-toggle > .svg-inline--fa { + position: absolute; + right: 1em; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.wpeo-form .form-element.disable .dropdown-toggle > .svg-inline--fa { + display: none; +} + +/* Compatibility Autocomplete */ +.wpeo-form .wpeo-autocomplete { + display: block; + width: 100%; +} +.wpeo-form .wpeo-autocomplete .autocomplete-label { + -webkit-box-shadow: none; + box-shadow: none; + padding: 0.74em 1em; +} + +.wpeo-form.form-light .wpeo-autocomplete .autocomplete-label { + background: #fff; +} +.wpeo-form.form-light .wpeo-autocomplete .autocomplete-label:hover { + background: #ececec; +} + +/** Général */ +.wpeo-form .form-element input[type=radio].form-field { + display: inline-block; + width: auto; +} + +/** Design */ +.wpeo-form .form-element input[type=radio].form-field { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 50%; + width: 16px; + height: 16px; + padding: 0; + border: 0; + background: transparent !important; + border: 1px solid rgba(0, 0, 0, 0.4); + -webkit-transition: 0.2s all linear; + transition: 0.2s all linear; + outline: none; + position: relative; + top: 2px; +} +.wpeo-form .form-element input[type=radio].form-field::before { + display: none !important; + content: "" !important; +} +.wpeo-form .form-element input[type=radio].form-field:hover { + cursor: pointer; + border: 1px solid #0d8aff; + -webkit-box-shadow: 0 0 0 1px #0d8aff inset; + box-shadow: 0 0 0 1px #0d8aff inset; + background: transparent !important; +} +.wpeo-form .form-element input[type=radio].form-field:checked { + border: 1px solid #0d8aff; + -webkit-box-shadow: 0 0 0 4px #0d8aff inset; + box-shadow: 0 0 0 4px #0d8aff inset; +} +.wpeo-form .form-element input[type=radio].form-field + label { + text-transform: none; + font-weight: 400; + font-size: 14px; + display: inline-block; + margin-right: 1em; +} +.wpeo-form .form-element input[type=radio].form-field + label:hover { + cursor: pointer; +} +.wpeo-form .form-element input[type=radio].form-field + label:active { + outline: none; +} + +/** Général */ +.wpeo-form .form-element input[type=checkbox].form-field { + display: inline-block; + width: auto; +} + +/** Design */ +.wpeo-form .form-element input[type=checkbox].form-field { + width: auto; + visibility: hidden; + display: none; +} +.wpeo-form .form-element input[type=checkbox].form-field + label { + text-transform: none; + font-weight: 400; + font-size: 14px; + display: inline-block; + margin-right: 1em; + position: relative; +} +.wpeo-form .form-element input[type=checkbox].form-field + label:hover { + cursor: pointer; +} +.wpeo-form .form-element input[type=checkbox].form-field + label:active { + outline: none; +} +.wpeo-form .form-element input[type=checkbox].form-field + label::before { + display: inline-block; + content: ""; + width: 14px; + height: 14px; + background: transparent; + -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.4); + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.4); + border: 2px solid #fff; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + margin-right: 0.6em; +} +.wpeo-form .form-element input[type=checkbox].form-field:not(:checked) + label:hover::before { + -webkit-box-shadow: 0 0 0 2px #0d8aff; + box-shadow: 0 0 0 2px #0d8aff; +} +.wpeo-form .form-element input[type=checkbox].form-field:checked + label::before { + -webkit-box-shadow: 0 0 0 2px #0d8aff; + box-shadow: 0 0 0 2px #0d8aff; + background: #0d8aff; +} + +/** Formulaire design */ +.wpeo-form .form-element { + width: 100%; +} +.wpeo-form .form-element .form-label { + display: block; + font-size: 14px; + font-weight: 600; + margin: 0.6em 0; + color: rgba(0, 0, 0, 0.9); +} +.wpeo-form .form-element .form-field-container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -webkit-box-flex: 0; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; +} +.wpeo-form .form-element .form-field-container:hover { + -webkit-box-shadow: none; + box-shadow: none; +} +.wpeo-form .form-element .form-field { + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + border-radius: 0; +} +.wpeo-form .form-element .form-field:hover { + -webkit-box-shadow: none; + box-shadow: none; +} +.wpeo-form .form-element .form-sublabel { + font-size: 12px; + font-style: italic; + color: rgba(0, 0, 0, 0.6); +} + +/** Alignement */ +.wpeo-form .form-element .form-field-inline { + margin-right: 0.4em; +} +.wpeo-form .form-element.form-align-vertical .form-field-container { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} +.wpeo-form .form-element.form-align-horizontal .form-field-container { + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +/** Couleur */ +.wpeo-form .form-element .form-field-container .form-field, .wpeo-form .form-element .form-field-container [class*=form-field-icon] { + background: #ececec; +} +.wpeo-form .form-element .form-field-container:hover .form-field, .wpeo-form .form-element .form-field-container:hover [class*=form-field-icon] { + background: #dfdfdf; +} +.wpeo-form .form-element [class*=form-field-label] { + background: #dfdfdf; +} + +.wpeo-form.form-light .form-element .form-field-container .form-field, .wpeo-form.form-light .form-element .form-field-container [class*=form-field-icon] { + background: #fff; +} +.wpeo-form.form-light .form-element .form-field-container:hover .form-field, .wpeo-form.form-light .form-element .form-field-container:hover [class*=form-field-icon] { + background: #ececec; +} +.wpeo-form.form-light .form-element [class*=form-field-label] { + background: #ececec; +} + +/** Icone */ +.wpeo-form .form-element [class*=form-field-icon] { + padding: 0.8em 0 0.8em 0.8em; + color: rgba(0, 0, 0, 0.4); + font-size: 16px; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.wpeo-form .form-element [class*=form-field-icon] [class*=fa] { + vertical-align: middle; +} +.wpeo-form .form-element .form-field-icon-prev { + padding: 0.8em 0 0.8em 0.8em; +} +.wpeo-form .form-element .form-field-icon-next { + padding: 0.8em 0.8em 0.8em 0; +} + +/** Previous & next label */ +.wpeo-form .form-element [class*=form-field-label] { + padding: 1.2em 1em; + font-size: 12px; +} +.wpeo-form .form-element .form-field-label-prev { + border-right: 1px solid rgba(0, 0, 0, 0.1); +} +.wpeo-form .form-element .form-field-label-next { + border-left: 1px solid rgba(0, 0, 0, 0.1); +} + +/** Required */ +.wpeo-form .form-element.form-element-required .form-label::after { + display: inline-block; + content: "*"; + color: #e05353; + padding: 0 0.4em; +} + +/** Erreur sur un champs */ +.wpeo-form .form-element.form-element-error .form-field-container { + border: 1px solid #e05353; +} + +/** Champs disabled */ +.wpeo-form .form-element.form-element-disable .form-field-container { + opacity: 0.6; + pointer-events: none; +} + +/* Simple */ +/* Moderne */ +.page-ut-gp-list { + margin-left: -30px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: block !important; + width: 100%; +} +.page-ut-gp-list * { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.page-ut-gp-list .fiche { + margin-right: 0 !important; +} + +/** Screen */ +.page-ut-gp-list #id-right { + padding-left: 300px; + width: calc(100% + 30px); + display: block; +} + +/** UT / GP Navigation */ +.page-ut-gp-list .side-nav { + position: absolute; + height: 100%; + top: 0; + padding-top: 50px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-shadow: none; + box-shadow: none; +} +.page-ut-gp-list .side-nav .side-nav-responsive { + display: none; +} +.page-ut-gp-list .side-nav #id-left { + width: 300px; + padding-top: 0; +} +.page-ut-gp-list .side-nav .digirisk-wrap { + padding: 0 !important; +} +.page-ut-gp-list .side-nav .navigation-container { + max-height: 1000px; + overflow-y: auto; +} +.page-ut-gp-list .side-nav .add-container { + position: absolute; + right: 0; + bottom: 5px; + opacity: 0; + pointer-events: none; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.page-ut-gp-list .side-nav #id-left.active .add-container { + opacity: 1; +} + +/** Header */ +.page-ut-gp-list .side-nav .society-header { + padding-top: 27px; + position: relative; + padding-left: 10px; + padding-right: 10px; +} +.page-ut-gp-list .side-nav .society-header .title { + font-weight: 700; +} +.page-ut-gp-list .side-nav .society-header .linkElement { + line-height: 1; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + padding-bottom: 10px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + width: 100%; +} +.page-ut-gp-list .side-nav .society-header:hover .add-container { + opacity: 1; + pointer-events: all; +} + +/** Toolbar */ +.page-ut-gp-list .side-nav .toolbar { + padding-left: 10px; + padding-right: 10px; +} +.page-ut-gp-list .side-nav .toolbar .toggle-plus, .page-ut-gp-list .side-nav .toolbar .toggle-minus { + display: inline-block; + padding: 3px; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + color: rgba(0, 0, 0, 0.6); +} +.page-ut-gp-list .side-nav .toolbar .toggle-plus:hover, .page-ut-gp-list .side-nav .toolbar .toggle-minus:hover { + cursor: pointer; + opacity: 0.6; +} + +/** Content */ +.page-ut-gp-list .side-nav .workunit-list { + padding-left: 0; + /** Toggle */ +} +.page-ut-gp-list .side-nav .workunit-list ul, .page-ut-gp-list .side-nav .workunit-list li { + list-style-type: none; + margin: 0; +} +.page-ut-gp-list .side-nav .workunit-list > .unit:first-child > .unit-container:first-child > .title { + border-top: 1px solid rgba(0, 0, 0, 0.1); +} +.page-ut-gp-list .side-nav .workunit-list .unit-container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + position: relative; +} +.page-ut-gp-list .side-nav .workunit-list .unit-container:hover .add-container { + opacity: 1; + pointer-events: all; +} +.page-ut-gp-list .side-nav .workunit-list .unit-container .toggle-unit { + color: rgba(0, 0, 0, 0.6); + line-height: 40px; + font-size: 18px; + min-width: 30px; + width: 30px; + text-align: center; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.page-ut-gp-list .side-nav .workunit-list .unit-container .toggle-unit:hover { + cursor: pointer; +} +.page-ut-gp-list .side-nav .workunit-list .unit-container .toggle-unit .toggle-icon { + line-height: 40px; +} +.page-ut-gp-list .side-nav .workunit-list .unit-container .spacer { + position: relative; + min-width: 30px; + width: 30px; +} +.page-ut-gp-list .side-nav .workunit-list .unit-container .spacer::before { + display: block; + position: absolute; + content: ""; + height: 1px; + left: 0; + right: 10px; + top: 20px; + background: rgba(0, 0, 0, 0.3); +} +.page-ut-gp-list .side-nav .workunit-list .unit-container .photodigiriskdolibarr { + display: block; + width: 40px; + min-width: 40px; + height: 40px; + position: relative; + background: #fff; + text-align: center; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.page-ut-gp-list .side-nav .workunit-list .unit-container .divphotoref { + max-width: 50px; + position: relative; +} +.page-ut-gp-list .side-nav .workunit-list .unit-container .divphotoref .photo { + -o-object-fit: cover; + object-fit: cover; + margin: 0; +} +.page-ut-gp-list .side-nav .workunit-list .unit-container .title { + width: 100%; + padding-left: 1em; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} +.page-ut-gp-list .side-nav .workunit-list .unit-container .title .linkElement { + width: 100%; + padding-top: 0.5em; + text-decoration: none; +} +.page-ut-gp-list .side-nav .workunit-list .unit-container .title .linkElement:hover .name { + color: #0d8aff; +} +.page-ut-gp-list .side-nav .workunit-list .unit-container .title .title-container { + margin: auto 0; +} +.page-ut-gp-list .side-nav .workunit-list .unit-container .title .ref { + font-size: 10px; + color: #fff; + text-transform: uppercase; + font-weight: 600; + display: inline-block; + background: #263C5C; + padding: 0.2em 0.4em; +} +.page-ut-gp-list .side-nav .workunit-list .unit-container .title .name { + font-size: 14px; + color: #000; + display: block; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.page-ut-gp-list .side-nav .workunit-list .unit > .sub-list { + padding: 0 0 0 7px; + display: none; +} +.page-ut-gp-list .side-nav .workunit-list .unit > .sub-list > .unit:last-child::before { + height: 24px; +} +.page-ut-gp-list .side-nav .workunit-list .unit > .sub-list .toggle-unit { + position: relative; +} +.page-ut-gp-list .side-nav .workunit-list .unit > .sub-list .toggle-unit::before { + right: 20px; + display: block; + position: absolute; + content: ""; + height: 1px; + left: 0; + top: 20px; + background: rgba(0, 0, 0, 0.3); +} +.page-ut-gp-list .side-nav .workunit-list .unit > .sub-list .unit { + position: relative; + margin-left: 0.6em; +} +.page-ut-gp-list .side-nav .workunit-list .unit > .sub-list .unit::before { + display: block; + position: absolute; + content: ""; + width: 1px; + height: 100%; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.3); +} +.page-ut-gp-list .side-nav .workunit-list .unit.active > .unit-container .title { + background: rgba(0, 0, 0, 0.1); +} +.page-ut-gp-list .side-nav .workunit-list .unit.active > .unit-container .title .name { + font-weight: 600; +} +.page-ut-gp-list .side-nav .workunit-list .unit.type-workunit .unit-container .ref { + background: #0d8aff; +} +.page-ut-gp-list .side-nav .workunit-list .unit.toggled > .sub-list { + display: block; +} + +.digirisk-signature-container { + max-width: 800px; + background: #fff; + -webkit-box-shadow: 0 0 40px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 0 40px 0 rgba(0, 0, 0, 0.1); + margin: 1.5em auto 0 auto; + padding: 2em; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.digirisk-signature-container * { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.digirisk-signature-container .signature .signature-element .wpeo-button.modal-signature-open { + display: none; +} +.digirisk-signature-container .signature .signature-element img { + width: 100%; + height: auto; + border: 1px solid rgba(0, 0, 0, 0.4) !important; +} + +.ticketpublicarea .ticket-parentCategory { + width: 100%; + height: 100%; +} +.ticketpublicarea .ticket-parentCategory .wpeo-button { + width: 100%; + height: 100%; + padding: 12px 14px; +} +.ticketpublicarea .ticket-parentCategory .wpeo-button:hover { + -webkit-box-shadow: inset 0 -4.6em rgba(255, 255, 255, 0.25); + box-shadow: inset 0 -4.6em rgba(255, 255, 255, 0.25); +} +.ticketpublicarea .ticket-parentCategory .wpeo-button.button-yellow { + border-color: #e88740; + background: #e88740; +} +.ticketpublicarea .ticket-parentCategory .wpeo-button.button-blue { + border-color: #009cc2; + background: #009cc2; +} +.ticketpublicarea .ticket-parentCategory .wpeo-button.button-red { + border-color: #c44b2a; + background: #c44b2a; +} +.ticketpublicarea .ticket-parentCategory.active .wpeo-button { + border-color: #000 !important; +} +.ticketpublicarea .ticket-subCategory { + border: 1px solid rgba(0, 0, 0, 0.2); + padding: 1em; + text-align: center; + width: 100%; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.ticketpublicarea .ticket-subCategory:hover { + cursor: pointer; + background: rgba(0, 0, 0, 0.1); +} +.ticketpublicarea .ticket-subCategory.active { + -webkit-box-shadow: inset 0 0 0px 3px #0d8aff; + box-shadow: inset 0 0 0px 3px #0d8aff; +} +.ticketpublicarea .ticket-subCategory .button-label { + display: block; + margin-top: 0.5em; +} +.ticketpublicarea .form-registre .wpeo-button { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} +.ticketpublicarea .form-registre .wpeo-button > * { + margin-top: auto; + margin-bottom: auto; +} +.ticketpublicarea .form-registre .wpeo-button .button-label { + margin-left: 0.5em; +} +.ticketpublicarea .tableforinputfields { + margin-top: 1em; +} +.ticketpublicarea .tableforinputfields input { + display: block; + clear: both; + width: 100%; + max-width: none; + margin-bottom: 1em; +} +@media (max-width: 480px) { + .ticketpublicarea .tableforinputfields .inline-block { + display: block; + } +} +.ticketpublicarea .tableforinputfields .inline-block input { + display: inline-block; +} +.ticketpublicarea .tableforinputfields .inline-block #options_digiriskdolibarr_ticket_date { + max-width: 80px; +} + +/** UT / GP Organization */ +.page-ut-gp-list .organization { + position: absolute; + height: 100%; + top: 0; + padding-top: 50px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-shadow: none; + box-shadow: none; +} + +.page-ut-gp-list .organization .side-nav-responsive { + display: none; +} + +.page-ut-gp-list .organization #id-left { + width: 300px; + padding-top: 0; +} + +.page-ut-gp-list .organization .digirisk-wrap { + padding: 0 !important; +} + +.page-ut-gp-list .organization .navigation-container { + max-height: 1000px; + overflow-y: auto; +} + +.page-ut-gp-list .organization .add-container { + position: absolute; + right: 0; + bottom: 5px; + opacity: 0; + pointer-events: none; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} + +/** Header */ +.page-ut-gp-list .organization .society-header { + padding-top: 27px; + position: relative; + padding-left: 10px; + padding-right: 10px; +} + +.page-ut-gp-list .organization .society-header .title { + font-weight: 700; +} + +.page-ut-gp-list .organization .society-header .linkElement { + line-height: 1; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + padding-bottom: 10px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + width: 100%; +} + +.page-ut-gp-list .organization .society-header:hover .add-container { + opacity: 1; + pointer-events: all; +} + +/** Toolbar */ +.page-ut-gp-list .organization .toolbar { + padding-left: 10px; + padding-right: 10px; +} + +.page-ut-gp-list .organization .toolbar .toggle-plus, .page-ut-gp-list .organization .toolbar .toggle-minus { + display: inline-block; + padding: 3px; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + color: rgba(0, 0, 0, 0.6); +} + +.page-ut-gp-list .organization .toolbar .toggle-plus:hover, .page-ut-gp-list .organization .toolbar .toggle-minus:hover { + cursor: pointer; + opacity: 0.6; +} + +/** Content */ +.page-ut-gp-list .organization .workunit-list { + padding-left: 0; + /** Toggle */ +} + +.page-ut-gp-list .organization .workunit-list ul, .page-ut-gp-list .organization .workunit-list li { + list-style-type: none; + margin: 0; +} + +.page-ut-gp-list .organization .workunit-list .unit-container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + position: relative; +} + +.page-ut-gp-list .organization .workunit-list .unit-container:hover .add-container { + opacity: 1; + pointer-events: all; +} + +.page-ut-gp-list .organization .workunit-list .unit-container .toggle-unit { + color: rgba(0, 0, 0, 0.6); + line-height: 40px; + font-size: 18px; + min-width: 30px; + width: 30px; + text-align: center; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} + +.page-ut-gp-list .organization .workunit-list .unit-container .toggle-unit:hover { + cursor: pointer; +} + +.page-ut-gp-list .organization .workunit-list .unit-container .toggle-unit .toggle-icon { + line-height: 40px; +} + +.page-ut-gp-list .organization .workunit-list .unit-container .spacer { + position: relative; + min-width: 30px; + width: 30px; +} + +.page-ut-gp-list .organization .workunit-list .unit-container .spacer::before { + display: block; + position: absolute; + content: ""; + height: 1px; + left: 0; + right: 10px; + top: 20px; + background: rgba(0, 0, 0, 0.3); +} + +.page-ut-gp-list .organization .workunit-list .unit-container .photodigiriskdolibarr { + display: block; + width: 40px; + min-width: 40px; + height: 40px; + position: relative; + background: #fff; + text-align: center; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} + +.page-ut-gp-list .organization .workunit-list .unit-container .title { + width: 100%; + padding-left: 1em; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.page-ut-gp-list .organization .workunit-list .unit-container .title .title-container { + margin: auto 0; +} + +.page-ut-gp-list .organization .workunit-list .unit-container .title .ref { + font-size: 10px; + color: #fff; + text-transform: uppercase; + font-weight: 600; + display: inline-block; + background: #263C5C; + padding: 0.2em 0.4em; +} + +.page-ut-gp-list .organization .workunit-list .unit-container .title .name { + font-size: 14px; + color: #000; + display: block; +} + +.page-ut-gp-list .organization .workunit-list .unit > .unit-container { + padding: 4px 0 0 0; + border: solid; +} + +.page-ut-gp-list .organization .workunit-list .unit > .sub-list { + padding: 0 0 0 7px; + display: none; +} + +.page-ut-gp-list .organization .workunit-list .unit > .sub-list > .unit:last-child::before { + height: 24px; +} + +.page-ut-gp-list .organization .workunit-list .unit > .sub-list .toggle-unit { + position: relative; +} + +.page-ut-gp-list .organization .workunit-list .unit > .sub-list .toggle-unit::before { + right: 20px; + display: block; + position: absolute; + content: ""; + height: 1px; + left: 0; + top: 20px; + background: rgba(0, 0, 0, 0.3); +} + +.page-ut-gp-list .organization .workunit-list .unit > .sub-list .unit { + position: relative; + margin-left: 0.6em; +} + +.page-ut-gp-list .organization .workunit-list .unit > .sub-list .unit::before { + display: block; + position: absolute; + content: ""; + width: 1px; + height: 100%; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.3); +} + +.page-ut-gp-list .organization .workunit-list .unit.active > .unit-container .title { + background: rgba(0, 0, 0, 0.1); +} + +.page-ut-gp-list .organization .workunit-list .unit.active > .unit-container .title .name { + font-weight: 600; +} + +.page-ut-gp-list .organization .workunit-list .unit.type-workunit .unit-container .ref { + background: #0d8aff; +} + +.page-ut-gp-list .organization .workunit-list .unit.toggled > .sub-list { + display: block; +} + +@media (max-width: 1200px) { + #id-container.page-ut-gp-list .organization { + position: static; + height: auto; + padding: 0 2em; + background: none; + border: 0; + } + #id-container.page-ut-gp-list .organization .side-nav-responsive { + display: block; + background: #263C5C; + color: #fff; + border-radius: 6px; + padding: 0.6em 1em; + font-weight: 600; + font-size: 14px; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + } + #id-container.page-ut-gp-list .organization .side-nav-responsive:hover { + cursor: pointer; + background: #446ba4; + } + #id-container.page-ut-gp-list .organization #id-left { + opacity: 0; + pointer-events: none; + position: absolute; + z-index: 999; + background: #efefef; + border: 1px solid rgba(0, 0, 0, 0.1); + -webkit-box-shadow: 0 0 40px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 0 40px 0 rgba(0, 0, 0, 0.1); + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + -webkit-transform: translateY(-10px); + transform: translateY(-10px); + max-height: 500px; + overflow-y: auto; + } + #id-container.page-ut-gp-list .organization #id-left.active { + opacity: 1; + pointer-events: auto; + -webkit-transform: translateY(0px); + transform: translateY(0px); + } + #id-container.page-ut-gp-list #id-right { + padding-left: 0; + } +} +.container { + position: relative; + min-height: 500px; +} + +.container h3 { + position: absolute; + border: 0; + margin: 0; + padding: 20px 0; + width: 400px; + pointer-events: none; + margin-left: 0px; + width: 100%; +} + +.route { + position: relative; + list-style-type: none; + border: 0; + margin: 0; + padding: 0; + top: 0px; + margin-top: 0px; + max-height: 100% !important; + width: 100%; + background: #bcf; + border-radius: 2px; + z-index: -1; +} + +.route span { + position: absolute; + top: 26px; + left: 20px; + -webkit-transform: scale(2); + transform: scale(2); + z-index: 10; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.route span:hover { + cursor: pointer; + opacity: 0.6; +} + +.route .title { + font-size: 16px; +} +.route .title .ref { + position: static; + top: auto; + left: auto; + -webkit-transform: none; + transform: none; + font-size: 12px; + border-radius: 4px; + padding: 4px 6px; + margin-right: 0.8em; +} + +.route .title.workunit { + position: absolute; + border: 0; + margin: 0; + padding: 20px 0; + width: 400px; + text-indent: 60px; + background: #ebebeb; + border: 1px solid rgba(0, 0, 0, 0.2); + pointer-events: none; +} +.route .title.workunit > .ref { + background: #0d8aff; + color: #fff; +} + +.route .title.groupment { + position: absolute; + border: 0; + margin: 0; + width: 400px; + text-indent: 60px; + background: #ebebeb; + border: 1px solid rgba(0, 0, 0, 0.2); + pointer-events: none; +} +.route .title.groupment > .ref { + background: #263C5C; + color: #fff; +} + +.first-title { + margin-left: 10px; +} + +.space { + position: relative; + list-style-type: none; + border: 0; + margin: 0; + padding: 0; + margin-left: 40px; + width: 30px; + top: 68px; + padding-bottom: 68px; + height: 100%; + z-index: 1; +} +.space.space-0 { + margin-left: 0; +} + +/** Cell header */ +.table-cell-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + margin-bottom: 0.5em; +} +.table-cell-header > * { + margin: auto 0; +} +.table-cell-header .wpeo-button { + margin: 0; +} + +.risk-container .risk-edit { + color: #263C5C; +} +.risk-container .risk-edit:hover { + cursor: pointer; + text-decoration: underline; +} + +.risk-container .risk-edit-no-perm { + color: #333333; +} +.risk-container .risk-edit-no-perm:hover { + cursor: auto; + text-decoration: none; +} + +.risk-category { + text-align: center; +} + +.risk-description { + width: 25% !important; +} + +.risksign-container .risksign-edit { + color: #263C5C; +} +.risksign-container .risksign-edit:hover { + cursor: pointer; + text-decoration: underline; +} + +.risksign-content { + width: 100%; +} + +.risksign-add { + min-width: 40px; + margin-left: 0.5em; +} + +.riskassessment-tasks .riskassessment-task-container, .riskassessment-task-container { + min-width: 430px; + border: 1px solid rgba(0, 0, 0, 0.1); + background: rgba(0, 0, 0, 0.05); + padding: 0.5em; +} + +.riskassessment-tasks { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.riskassessment-tasks .riskassessment-task-container { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} +.riskassessment-tasks .riskassessment-task-add-wrapper { + min-width: calc(40px + 0.5em); + margin: auto 0; + text-align: center; +} + +.riskassessment-task-listing-wrapper .riskassessment-task-container { + margin-bottom: 0.5em; +} + +.riskassessment-task-container .riskassessment-task-single { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.riskassessment-task-container .riskassessment-task-single * { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.riskassessment-task-container .riskassessment-task-single > * { + margin-top: auto; + margin-bottom: auto; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content { + width: 100%; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-author { + display: inline-block; + width: 25px; + min-width: 25px; + height: 25px; + line-height: 25px; + background: rgba(0, 0, 0, 0.5); + overflow: hidden; + text-transform: uppercase; + font-size: 14px; + font-weight: 600; + border-radius: 50%; + vertical-align: sub; + text-align: center; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-author a { + color: #fff !important; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-author-label { + word-break: break-all; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + font-size: 14px; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data > * { + margin: auto 0.2em; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-reference { + color: #263C5C; + font-weight: 600; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-reference:hover { + text-decoration: underline; + cursor: pointer; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-count { + background: rgba(0, 0, 0, 0.2); + font-size: 12px; + border-radius: 4px; + padding: 0.2em 0.4em; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress { + background: rgba(0, 0, 0, 0.2); + font-size: 12px; + border-radius: 4px; + padding: 0.2em 0.4em; + font-weight: 700; + color: rgba(0, 0, 0, 0.6); +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-0 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-1 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-2 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-3 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-4 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-5 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-6 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-7 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-8 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-9 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-10 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-11 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-12 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-13 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-14 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-15 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-16 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-17 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-18 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-19 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-20 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-21 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-22 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-23 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-24 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-25 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-26 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-27 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-28 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-29 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-30 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-31 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-32 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-33 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-34 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-35 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-36 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-37 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-38 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-39 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-40 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-41 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-42 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-43 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-44 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-45 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-46 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-47 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-48 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-49 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-50 { + background: #e05353; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-51 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-52 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-53 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-54 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-55 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-56 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-57 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-58 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-59 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-60 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-61 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-62 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-63 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-64 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-65 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-66 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-67 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-68 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-69 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-70 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-71 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-72 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-73 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-74 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-75 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-76 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-77 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-78 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-79 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-80 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-81 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-82 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-83 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-84 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-85 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-86 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-87 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-88 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-89 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-90 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-91 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-92 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-93 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-94 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-95 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-96 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-97 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-98 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-99 { + background: #e9ad4f; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-100 { + background: #47e58e; + color: #fff; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-title { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-title .riskassessment-task-progress-checkbox { + margin: auto 0; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-title .riskassessment-task-progress-checkbox input { + width: 20px; + height: 20px; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-add { + min-width: 40px; + margin-left: 0.5em; +} +.riskassessment-task-container .riskassessment-task-single .riskassessment-task-delete { + margin-right: -0.5em; +} + +.riskassessment-task-listing-wrapper { + width: 100%; +} + +.riskassessment-task-add { + margin: 5px; +} + +.riskassessment-task-list { + margin: 5px; +} + +/** Add comment in modal */ +.riskassessment-task-timespent-add-container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + background: rgba(0, 0, 0, 0.1); + padding: 10px; + margin-bottom: 25px; +} +.riskassessment-task-timespent-add-container > * { + margin: auto 5px; +} +.riskassessment-task-timespent-add-container .timespent-comment { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} +.riskassessment-task-timespent-add-container .timespent-date { + min-width: 250px; +} +.riskassessment-task-timespent-add-container .timespent-duration { + max-width: 100px; +} +.riskassessment-task-timespent-add-container .timespent-add-button { + min-width: 30px; +} +.riskassessment-task-timespent-add-container .timespent-add-button .wpeo-button { + margin-top: 20px; +} + +/** List of comments */ +.riskassessment-task-timespent-container .riskassessment-task .riskassessment-task-container { + background: #fff; + border: 0; +} + +td > .risk-evaluation-container { + min-width: 340px; + border: 1px solid rgba(0, 0, 0, 0.1); + background: rgba(0, 0, 0, 0.05); + padding: 0.5em; + margin-bottom: 0.5em; +} + +.risk-evaluation-container .risk-evaluation-single { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.risk-evaluation-container .risk-evaluation-single * { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.risk-evaluation-container .risk-evaluation-single > * { + margin-top: auto; + margin-bottom: auto; +} +.risk-evaluation-container .risk-evaluation-single .risk-evaluation-cotation { + width: 40px; + min-width: 40px; + height: 40px; + line-height: 40px; +} +.risk-evaluation-container .risk-evaluation-single .risk-evaluation-photo { + width: 40px; + min-width: 40px; + height: 40px; + line-height: 40px; + text-align: center; + background: #ececec; + color: rgba(0, 0, 0, 0.3); + margin-right: 0.5em; +} +.risk-evaluation-container .risk-evaluation-single .risk-evaluation-photo .photodigiriskdolibarr { + width: 100%; + height: auto; + background: #fff; +} +.risk-evaluation-container .risk-evaluation-single .risk-evaluation-photo a, .risk-evaluation-container .risk-evaluation-single .risk-evaluation-photo .divphotoref { + width: 40px; + min-width: 40px; + height: 40px; + position: relative; + display: block; +} +.risk-evaluation-container .risk-evaluation-single .risk-evaluation-photo a .photo, .risk-evaluation-container .risk-evaluation-single .risk-evaluation-photo .divphotoref .photo { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; +} +.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content { + width: 100%; +} +.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content .risk-evaluation-author { + display: inline-block; + width: 25px; + min-width: 25px; + height: 25px; + line-height: 25px; + background: rgba(0, 0, 0, 0.5); + overflow: hidden; + text-transform: uppercase; + font-size: 14px; + font-weight: 600; + border-radius: 50%; + vertical-align: sub; + text-align: center; +} +.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content .risk-evaluation-author a { + color: #fff !important; +} +.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content .risk-evaluation-data { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} +.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content .risk-evaluation-data > * { + margin: auto 0.2em; +} +.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content .risk-evaluation-data .risk-evaluation-reference { + color: #263C5C; + font-weight: 600; +} +.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content .risk-evaluation-data .risk-evaluation-reference:hover { + text-decoration: underline; + cursor: pointer; +} +.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content .risk-evaluation-data .risk-evaluation-count { + background: rgba(0, 0, 0, 0.2); + font-size: 12px; + border-radius: 4px; + padding: 0.2em 0.4em; +} +.risk-evaluation-container .risk-evaluation-single .risk-evaluation-button { + margin-left: 0.5em; +} + +/** + * .cotation -> classe de base + * .default-cotation -> par défaut + * .level1 -> cotaiton 0 + * .level2 -> cotation 48 + * .level4 -> cotation 51 + * .level5 -> cotation 80 + * .method -> cotation personnalisée + */ +.wpeo-table.evaluation-method { + background: none !important; +} +@media (max-width: 480px) { + .wpeo-table.evaluation-method .table-row.table-header { + display: none; + } +} +.wpeo-table.evaluation-method .table-cell { + margin: 0; + text-align: center; + border: 1px solid rgba(0, 0, 0, 0.1); + padding: 0.8em 0.4em; + position: relative; +} +@media (max-width: 480px) { + .wpeo-table.evaluation-method .table-cell { + width: 100% !important; + } +} +.wpeo-table.evaluation-method .table-cell.can-select::after, .wpeo-table.evaluation-method .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .table-cell.risk-evaluation-cotation::after, .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .wpeo-table.evaluation-method .table-cell.risk-evaluation-cotation::after { + display: block; + content: ""; + position: absolute; + top: 0.4em; + right: 0.4em; + bottom: 0.4em; + left: 0.4em; + background: rgba(0, 0, 0, 0.1); + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.wpeo-table.evaluation-method .table-cell.can-select:hover, .wpeo-table.evaluation-method .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .table-cell.risk-evaluation-cotation:hover, .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .wpeo-table.evaluation-method .table-cell.risk-evaluation-cotation:hover { + cursor: pointer; +} +.wpeo-table.evaluation-method .table-cell.can-select:hover::after, .wpeo-table.evaluation-method .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .table-cell.risk-evaluation-cotation:hover::after, .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .wpeo-table.evaluation-method .table-cell.risk-evaluation-cotation:hover::after { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; +} +.wpeo-table.evaluation-method .table-cell.can-select.active, .wpeo-table.evaluation-method .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .table-cell.active.risk-evaluation-cotation, .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .wpeo-table.evaluation-method .table-cell.active.risk-evaluation-cotation { + color: #fff; +} +.wpeo-table.evaluation-method .table-cell.can-select.active::after, .wpeo-table.evaluation-method .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .table-cell.active.risk-evaluation-cotation::after, .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .wpeo-table.evaluation-method .table-cell.active.risk-evaluation-cotation::after { + -webkit-transform: scale(1) !important; + transform: scale(1) !important; + opacity: 1 !important; + background: #0d8aff; + z-index: -1; +} +.wpeo-table.evaluation-method .table-row > .table-cell:first-child { + background: #263C5C; + color: #fff; +} +@media (max-width: 480px) { + .wpeo-table.evaluation-method .table-row > .table-cell:first-child { + background: #263C5C; + } +} +.wpeo-table.evaluation-method .table-row:not(.header) .table-cell:nth-of-type(2).active::after { + background: #0d8aff; +} +.wpeo-table.evaluation-method .table-row:not(.header) .table-cell:nth-of-type(3).active::after { + background: #0063c0; +} +.wpeo-table.evaluation-method .table-row:not(.header) .table-cell:nth-of-type(4).active::after { + background: #003b73; +} +.wpeo-table.evaluation-method .table-row:not(.header) .table-cell:nth-of-type(5).active::after { + background: #001427; +} +.wpeo-table.evaluation-method .table-row:not(.header) .table-cell:nth-of-type(6).active::after { + background: black; +} + +.wpeo-modal[class*=modal-risk] .modal-container .title { + display: block; + font-weight: 600; + font-size: 13px; + margin-bottom: 0.6em; + color: rgba(0, 0, 0, 0.8); +} +.wpeo-modal[class*=modal-risk] .modal-container .title required { + font-size: 18px; + color: #0d8aff; + vertical-align: text-top; + line-height: 0.9; +} +.wpeo-modal[class*=modal-risk] .modal-container .section-title { + font-size: 16px; + color: rgba(0, 0, 0, 0.8); + font-weight: 600; + margin-bottom: 0.6em; + display: block; +} +.wpeo-modal[class*=modal-risk] .modal-container .maxwidthdate { + max-width: 125px; +} + +.wpeo-modal[class*=modal-risk] .modal-container .risk-content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-bottom: 1em; + margin-bottom: 1em; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); +} +.wpeo-modal[class*=modal-risk] .modal-container .risk-content .risk-category { + margin-right: 1.5em; +} +.wpeo-modal[class*=modal-risk] .modal-container .risk-content .risk-category .dropdown-toggle::after { + display: none; +} +.wpeo-modal[class*=modal-risk] .modal-container .risk-content .risk-description { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} +.wpeo-modal[class*=modal-risk] .modal-container .risk-content .risk-description textarea { + width: 100%; +} + +.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container { + padding-bottom: 1em; + margin-bottom: 1em; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); +} +.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-header { + margin-bottom: 1em; +} +.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard { + margin-right: 1em; +} +.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .risk-evaluation-photo img { + max-width: 50px; +} +.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .risk-evaluation-comment { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + margin-left: 1em; +} +.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .risk-evaluation-comment textarea { + width: 100%; +} +.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container.advanced .risk-evaluation-content-wrapper { + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} +.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container.advanced .risk-evaluation-content { + width: 100%; + margin-bottom: 1em; +} +.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container.advanced .risk-evaluation-photo { + margin-right: 1em; +} + +/** Listing */ +.wpeo-modal .modal-container .risk-evaluations-list .risk-evaluation > .risk-evaluation-container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +.wpeo-modal .modal-container .risk-evaluations-list .risk-evaluation > .risk-evaluation-container .risk-evaluation-single { + width: 100%; +} +.wpeo-modal .modal-container .risk-evaluations-list .risk-evaluation > .risk-evaluation-container .risk-evaluation-single .risk-evaluation-reference { + color: #333333; +} +.wpeo-modal .modal-container .risk-evaluations-list .risk-evaluation > .risk-evaluation-container .risk-evaluation-single .risk-evaluation-reference:hover { + cursor: auto; + text-decoration: none; +} +.wpeo-modal .modal-container .risk-evaluations-list .risk-evaluation > .risk-evaluation-container .risk-evaluation-actions { + margin-left: auto; +} + +.wpeo-modal[class*=modal-risksign] .modal-container .title { + display: block; + font-weight: 600; + font-size: 13px; + margin-bottom: 0.6em; + color: rgba(0, 0, 0, 0.8); +} +.wpeo-modal[class*=modal-risksign] .modal-container .title required { + font-size: 18px; + color: #0d8aff; + vertical-align: text-top; + line-height: 0.9; +} +.wpeo-modal[class*=modal-risksign] .modal-container .section-title { + font-size: 16px; + color: rgba(0, 0, 0, 0.8); + font-weight: 600; + margin-bottom: 0.6em; + display: block; +} + +.wpeo-modal[class*=modal-risksign] .modal-container .risksign-content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-bottom: 1em; + margin-bottom: 1em; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); +} +.wpeo-modal[class*=modal-risksign] .modal-container .risksign-content .risksign-category { + margin-right: 1.5em; +} +.wpeo-modal[class*=modal-risksign] .modal-container .risksign-content .risksign-category .dropdown-toggle::after { + display: none; +} +.wpeo-modal[class*=modal-risksign] .modal-container .risksign-content .risksign-description { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} +.wpeo-modal[class*=modal-risksign] .modal-container .risksign-content .risksign-description textarea { + width: 100%; +} + +.wpeo-modal[class*=modal-riskassessment-task] .modal-container .title { + display: block; + font-weight: 600; + font-size: 13px; + margin-bottom: 0.6em; + color: rgba(0, 0, 0, 0.8); +} +.wpeo-modal[class*=modal-riskassessment-task] .modal-container .title required { + font-size: 18px; + color: #0d8aff; + vertical-align: text-top; + line-height: 0.9; +} +.wpeo-modal[class*=modal-riskassessment-task] .modal-container .section-title { + font-size: 16px; + color: rgba(0, 0, 0, 0.8); + font-weight: 600; + margin-bottom: 0.6em; + display: block; +} +.wpeo-modal[class*=modal-riskassessment-task] .modal-container .riskassessment-task-single { + display: block !important; +} + +.wpeo-modal[class*=modal-riskassessment-task] .modal-container .riskassessment-task-container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-bottom: 1em; + margin-bottom: 1em; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); +} +.wpeo-modal[class*=modal-riskassessment-task] .modal-container .riskassessment-task-container .riskassessment-task { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} +.wpeo-modal[class*=modal-riskassessment-task] .modal-container .riskassessment-task-container .riskassessment-task input { + width: 100%; +} + +/** Listing */ +.wpeo-modal .modal-container .riskassessment-task-list .riskassessment-task > .riskassessment-task-container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +.wpeo-modal .modal-container .riskassessment-task-list .riskassessment-task > .riskassessment-task-container .riskassessment-task-single { + width: 100%; +} +.wpeo-modal .modal-container .riskassessment-task-list .riskassessment-task > .riskassessment-task-container .riskassessment-task-actions { + margin-left: auto; +} + +#dialog-confirm-actionButtonImportSharedRisks .confirmtext { + text-align: center; + padding: 0.2em 0 0.4em 0; +} +#dialog-confirm-actionButtonImportSharedRisks .tagtable { + border-collapse: collapse; +} +#dialog-confirm-actionButtonImportSharedRisks .tagtr { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); +} +#dialog-confirm-actionButtonImportSharedRisks .tagtd { + padding: 0.3em 0; +} +#dialog-confirm-actionButtonImportSharedRisks .tagtr > .tagtd:first-child { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +#dialog-confirm-actionButtonImportSharedRisks .tagtr > .tagtd:first-child .importsharedrisk:not(.imported):not(.risk-evaluation-cotation) { + width: 30%; +} +#dialog-confirm-actionButtonImportSharedRisks .tagtr > .tagtd:first-child .importsharedrisk.imported { + width: 10%; + text-align: center; + font-size: 12px; +} +#dialog-confirm-actionButtonImportSharedRisks .tagtr > .tagtd:first-child .importsharedrisk img { + float: left; + margin-right: 0.4em; + max-width: 35px; +} +#dialog-confirm-actionButtonImportSharedRisks .tagtr > .tagtd:first-child .importsharedrisk > span { + display: block; +} +#dialog-confirm-actionButtonImportSharedRisks .tagtr > .tagtd:first-child .importsharedrisk .importsharedrisk-ref { + font-weight: 600; +} +#dialog-confirm-actionButtonImportSharedRisks .tagtr > .tagtd:last-child { + vertical-align: middle; +} + +#dialog-confirm-actionButtonImportSharedRiskSigns .confirmtext { + text-align: center; + padding: 0.2em 0 0.4em 0; +} +#dialog-confirm-actionButtonImportSharedRiskSigns .tagtable { + border-collapse: collapse; +} +#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); +} +#dialog-confirm-actionButtonImportSharedRiskSigns .tagtd { + padding: 0.3em 0; +} +#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr > .tagtd:first-child { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr > .tagtd:first-child .importsharedrisksign:not(.imported) { + width: 30%; +} +#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr > .tagtd:first-child .importsharedrisksign.imported { + width: 10%; + text-align: center; + font-size: 12px; +} +#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr > .tagtd:first-child .importsharedrisksign img { + float: left; + margin-right: 0.4em; + max-width: 35px; +} +#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr > .tagtd:first-child .importsharedrisksign > span { + display: block; +} +#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr > .tagtd:first-child .importsharedrisksign .importsharedrisksign-ref { + font-weight: 600; +} +#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr > .tagtd:last-child { + vertical-align: middle; +} + +.wpeo-modal.modal-photo.modal-active { + z-index: 2014; +} +.wpeo-modal.modal-photo .clickable-photo { + border: 5px solid #fff; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + width: 100%; +} +.wpeo-modal.modal-photo .clickable-photo:hover { + cursor: pointer; +} +.wpeo-modal.modal-photo .clickable-photo:hover .photo-image .photo { + opacity: 0.8; +} +.wpeo-modal.modal-photo .clickable-photo .photo-image { + position: relative; + width: 100%; + max-width: 120px; + height: 120px; + margin: auto; +} +.wpeo-modal.modal-photo .clickable-photo .photo-image .photo { + position: absolute; + top: 0; + left: 0; + width: 100%; + -o-object-fit: cover; + object-fit: cover; + max-width: none !important; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.wpeo-modal.modal-photo .clickable-photo .photo-image .clicked-photo-preview { + position: absolute; + display: inline-block; + top: 1em; + right: 1em; + z-index: 900; + height: 25px; + line-height: 25px; + background: #fff; + color: #0d8aff; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; +} +.wpeo-modal.modal-photo .clickable-photo .photo-image .clicked-photo-preview:hover { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} +.wpeo-modal.modal-photo .clickable-photo .photo-image .clicked-photo-preview i { + line-height: 25px; + font-size: 14px; +} +.wpeo-modal.modal-photo .clickable-photo .title { + word-break: break-all; +} + +.wpeo-modal.modal-photo .formattachnewfile { + padding-bottom: 0.5em; +} +.wpeo-modal.modal-photo input[type=file] { + border-bottom: 0 !important; +} + +.evaluator-add-modal .time { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.risk-evaluation-add-modal .modal-active, .risk-evaluation-edit-modal .modal-active { + z-index: 1005; +} +.risk-evaluation-add-modal .modal-container, .risk-evaluation-edit-modal .modal-container { + max-height: 750px; +} + +.wpeo-modal .modal-container ul, .wpeo-modal .modal-container li { + margin: 0; + list-style-type: none; + padding: 0; +} + +@media (max-width: 1200px) { + #id-container .side-nav .vmenu { + width: 30px; + padding-right: 0 !important; + overflow: hidden; + } + #id-container .side-nav .vmenu .menu_titre .vmenu i { + margin-right: 2em; + } + #id-container .side-nav .vmenu #blockvmenusearch .select2-container--default .select2-selection--single .select2-selection__placeholder::before { + display: inline-block; + content: "\f002"; + font-family: "Font Awesome 5 Free"; + font-weight: 600; + margin-right: 2em; + } +} +@media (max-width: 1200px) { + #id-container.page-ut-gp-list .side-nav { + position: static; + height: auto; + padding: 0 2em; + background: none; + border: 0; + } + #id-container.page-ut-gp-list .side-nav .side-nav-responsive { + display: block; + background: #263C5C; + color: #fff; + border-radius: 6px; + padding: 0.6em 1em; + font-weight: 600; + font-size: 14px; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + } + #id-container.page-ut-gp-list .side-nav .side-nav-responsive:hover { + cursor: pointer; + background: #446ba4; + } + #id-container.page-ut-gp-list .side-nav #id-left { + position: absolute; + z-index: 999; + background: #efefef; + border: 1px solid rgba(0, 0, 0, 0.1); + -webkit-box-shadow: 0 0 40px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 0 40px 0 rgba(0, 0, 0, 0.1); + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; + max-height: 500px; + overflow-y: auto; + } + #id-container.page-ut-gp-list .side-nav #id-left:not(.active) { + opacity: 0; + pointer-events: none; + -webkit-transform: translateY(-10px); + transform: translateY(-10px); + } + #id-container.page-ut-gp-list .side-nav #id-left:not(.active) .wpeo-button { + pointer-events: none; + } + #id-container.page-ut-gp-list #id-right { + padding-left: 0; + } +} +@media (max-width: 1200px) { + td > .riskassessment-task-container { + min-width: 0; + } +} +@media (max-width: 1200px) { + td > .risk-evaluation-container { + min-width: 0; + } +} +.preview-photo { + z-index: 2100 !important; +} + +.imgTabTitle { + max-height: 32px !important; +} + +.dropdown-toggle::after { + display: none; +} + +.favorite-photo { + border: 5px solid #0d8aff; +} + +tr.liste_titre th.liste_titre:not(.maxwidthsearch), tr.liste_titre td.liste_titre:not(.maxwidthsearch) { + opacity: 1; +} + +/* Force values on one colum for small screen */ +@media only screen and (max-width: 1600px) { + div.fichecenter { + width: 100%; + clear: both; /* This is to have div fichecenter that are true rectangles */ + } + div.fichecenterbis { + margin-top: 8px; + } + div.fichethirdleft { + float: none; + width: auto; + padding-bottom: 6px; + } + div.fichetwothirdright { + float: none; + width: auto; + padding-bottom: 6px; + } + div.fichehalfleft { + float: none; + width: auto; + } + div.fichehalfright { + float: none; + width: auto; + } + div.fichehalfright { + margin-top: 10px; + } + div.firstcolumn div.box { + padding-right: 0px; + } + div.secondcolumn div.box { + padding-left: 0px; + } +} \ No newline at end of file diff --git a/css/dolimeet.css.php b/css/dolimeet.css.php new file mode 100644 index 0000000..fd74e22 --- /dev/null +++ b/css/dolimeet.css.php @@ -0,0 +1,82 @@ +. + */ + +/** + * \file css/digiriskdolibarr.css.php + * \ingroup digiriskdolibarr + * \brief CSS file for module DigiriskDolibarr. + */ + +//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled because need to load personalized language +//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled. Language code is found on url. +if ( ! defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); +//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Not disabled because need to do translations +if ( ! defined('NOCSRFCHECK')) define('NOCSRFCHECK', 1); +if ( ! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', 1); +if ( ! defined('NOLOGIN')) define('NOLOGIN', 1); // File must be accessed by logon page so without login +//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU',1); // We need top menu content +if ( ! defined('NOREQUIREHTML')) define('NOREQUIREHTML', 1); +if ( ! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); + +session_cache_limiter('public'); +// false or '' = keep cache instruction added by server +// 'public' = remove cache instruction added by server +// and if no cache-control added later, a default cache delay (10800) will be added by PHP. + +// Load Dolibarr environment +$res = 0; +// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) +if ( ! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"] . "/main.inc.php"; +// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME +$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1; +while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { $i--; $j--; } +if ( ! $res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1)) . "/main.inc.php")) $res = @include substr($tmp, 0, ($i + 1)) . "/main.inc.php"; +if ( ! $res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1)) . "/../main.inc.php")) $res = @include substr($tmp, 0, ($i + 1)) . "/../main.inc.php"; +// Try main.inc.php using relative path +if ( ! $res && file_exists("../../main.inc.php")) $res = @include "../../main.inc.php"; +if ( ! $res && file_exists("../../../main.inc.php")) $res = @include "../../../main.inc.php"; +if ( ! $res) die("Include of main fails"); + +require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php'; + +// Load user to have $user->conf loaded (not done by default here because of NOLOGIN constant defined) and load permission if we need to use them in CSS +/*if (empty($user->id) && ! empty($_SESSION['dol_login'])) +{ + $user->fetch('',$_SESSION['dol_login']); + $user->getrights(); +}*/ + + +// Define css type +top_httphead('text/css'); +//// Important: Following code is to cache this file to avoid page request by browser at each Dolibarr page access. +//// You can use CTRL+F5 to refresh your browser cache. +if (empty($dolibarr_nocache)) header('Cache-Control: max-age=10800, public, must-revalidate'); +else header('Cache-Control: no-cache'); + +require DOL_DOCUMENT_ROOT . '/theme/' . $conf->theme . '/theme_vars.inc.php'; +if (defined('THEME_ONLY_CONSTANT')) return; + +?> + +.pictoDigirisk { + vertical-align: middle; + width: 24px; + margin-right: 2px; +} + diff --git a/css/dolimeet.min.css b/css/dolimeet.min.css new file mode 100644 index 0000000..ee54520 --- /dev/null +++ b/css/dolimeet.min.css @@ -0,0 +1 @@ +.risk-evaluation-cotation{width:50px;min-width:50px;height:50px;line-height:50px;text-align:center;border-radius:6px;background:#ececec;color:rgba(0,0,0,.8);font-size:16px;font-weight:600;margin-right:.5em}.risk-evaluation-cotation[data-scale="1"]{background:#ececec}.risk-evaluation-cotation[data-scale="2"]{background:#e9ad4f;color:#fff}.risk-evaluation-cotation[data-scale="3"]{background:#e05353;color:#fff}.risk-evaluation-cotation[data-scale="4"]{background:#2b2b2b;color:#fff}.risk-evaluation-cotation.selected-cotation{-webkit-box-shadow:0 0 0 2px #0d8aff;box-shadow:0 0 0 2px #0d8aff}.can-select,.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .risk-evaluation-cotation{-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.can-select:hover,.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .risk-evaluation-cotation:hover{cursor:pointer;opacity:.8}.wpeo-modal .title{display:block;font-weight:600;font-size:13px;margin-bottom:.6em;color:rgba(0,0,0,.8)}.wpeo-modal input[type=text],.wpeo-modal input[type=email],.wpeo-modal input[type=url],.wpeo-modal input[type=password],.wpeo-modal input[type=search],.wpeo-modal input[type=number],.wpeo-modal input[type=tel],.wpeo-modal input[type=range],.wpeo-modal input[type=date],.wpeo-modal input[type=month],.wpeo-modal input[type=week],.wpeo-modal input[type=time],.wpeo-modal input[type=datetime],.wpeo-modal input[type=datetime-local],.wpeo-modal input[type=color],.wpeo-modal select,.wpeo-modal textarea{width:100%;border:1px solid rgba(0,0,0,.2);padding:1em}.wpeo-modal input[type=text]:focus,.wpeo-modal input[type=email]:focus,.wpeo-modal input[type=url]:focus,.wpeo-modal input[type=password]:focus,.wpeo-modal input[type=search]:focus,.wpeo-modal input[type=number]:focus,.wpeo-modal input[type=tel]:focus,.wpeo-modal input[type=range]:focus,.wpeo-modal input[type=date]:focus,.wpeo-modal input[type=month]:focus,.wpeo-modal input[type=week]:focus,.wpeo-modal input[type=time]:focus,.wpeo-modal input[type=datetime]:focus,.wpeo-modal input[type=datetime-local]:focus,.wpeo-modal input[type=color]:focus,.wpeo-modal select:focus,.wpeo-modal textarea:focus{border:1px solid rgba(0,0,0,.6)}.wpeo-modal select{padding:1em 0}.form-label-required::after{display:inline-block;content:"*";color:#e05353;font-size:22px;line-height:0;position:relative;top:4px;left:4px}.digirisk-page-container{max-width:1000px;background:#fff;-webkit-box-shadow:0 0 40px 0 rgba(0,0,0,.1);box-shadow:0 0 40px 0 rgba(0,0,0,.1);margin:1.5em auto 0 auto;padding:2em;-webkit-box-sizing:border-box;box-sizing:border-box}.digirisk-page-container *{-webkit-box-sizing:border-box;box-sizing:border-box}.pictoDigirisk{vertical-align:middle;width:24px;margin-right:2px}.wpeo-dropdown{position:relative;display:inline-block}.wpeo-dropdown .dropdown-toggle{display:inline-block}.wpeo-dropdown .dropdown-toggle span~*[class*=icon]{margin-left:10px}.wpeo-dropdown .dropdown-content{opacity:0;pointer-events:none;-webkit-transform:translateY(-10px);transform:translateY(-10px);-webkit-transition:all .2s ease-out;transition:all .2s ease-out;position:absolute;background:#fff;z-index:99;border:1px solid rgba(0,0,0,.1);-webkit-box-shadow:0 0 10px 0px rgba(0,0,0,.3);box-shadow:0 0 10px 0px rgba(0,0,0,.3);width:220px;padding:.6em}.wpeo-dropdown.dropdown-active .dropdown-content{opacity:1;pointer-events:auto;-webkit-transform:translateY(0);transform:translateY(0)}.wpeo-dropdown ul,.wpeo-dropdown li{margin:0;list-style-type:none;padding:0}.wpeo-dropdown .dropdown-item{display:block;color:rgba(0,0,0,.7);text-decoration:none}.wpeo-dropdown .dropdown-item::before{display:none;content:""}.wpeo-dropdown .dropdown-item .dropdown-result-title,.wpeo-dropdown .dropdown-item .dropdown-result-subtitle{display:block}.wpeo-dropdown .dropdown-item .dropdown-result-title{font-size:14px}.wpeo-dropdown .dropdown-item .dropdown-result-subtitle{font-size:12px;color:rgba(0,0,0,.5)}.wpeo-dropdown.dropdown-small .dropdown-content{width:60px}.wpeo-dropdown.dropdown-medium .dropdown-content{width:220px}.wpeo-dropdown.dropdown-large .dropdown-content{width:360px}.wpeo-dropdown.dropdown-padding-0 .dropdown-content{padding:0}.wpeo-dropdown.dropdown-padding-1 .dropdown-content{padding:.6em}.wpeo-dropdown.dropdown-padding-2 .dropdown-content{padding:1.2em}.wpeo-dropdown.dropdown-left .dropdown-content{left:0}.wpeo-dropdown.dropdown-right .dropdown-content{right:0}.wpeo-dropdown.dropdown-horizontal.dropdown-left .dropdown-content{left:100%}.wpeo-dropdown.dropdown-horizontal.dropdown-right .dropdown-content{right:100%}.wpeo-dropdown.dropdown-horizontal .dropdown-content{top:0;width:auto !important;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.wpeo-dropdown .dropdown-item.dropdown-item-disable{opacity:.6;cursor:default !important;pointer-events:none}.wpeo-dropdown .dropdown-content .dropdown-item{padding:.6em;background:#fff;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.wpeo-dropdown .dropdown-content .dropdown-item:hover{cursor:pointer;background:rgba(0,0,0,.1)}.wpeo-dropdown.dropdown-list .dropdown-content{text-align:left}.wpeo-dropdown.dropdown-list .dropdown-item::after{display:block;content:"";clear:both}.wpeo-dropdown.dropdown-list .dropdown-item img{float:left;margin-right:.4em}.wpeo-dropdown.dropdown-grid .dropdown-item img{width:100%;height:auto;display:block;margin:0}.wpeo-button{display:inline-block;border:0;-webkit-box-shadow:none;box-shadow:none;background:none;text-decoration:none;padding:6px 14px;line-height:1.4;vertical-align:middle;height:auto;border-radius:0;-webkit-transition:all .2s ease-out;transition:all .2s ease-out;position:relative;border-width:3px;border-style:solid;font-size:16px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#0d8aff;border-color:#0d8aff;color:#fff}.wpeo-button:focus,.wpeo-button:visited{color:#fff}.wpeo-button:hover{color:#fff;-webkit-box-shadow:inset 0 -2.6em rgba(255,255,255,.25);box-shadow:inset 0 -2.6em rgba(255,255,255,.25);cursor:pointer;text-decoration:none}.wpeo-button:focus,.wpeo-button:active{outline:none}.wpeo-button{background:#0d8aff;border-color:#0d8aff;color:#fff}.wpeo-button.button-main{background:#0d8aff;border-color:#0d8aff;color:#fff}.wpeo-button.button-secondary{background:#263c5c;border-color:#263c5c;color:#fff}.wpeo-button.button-light{background:#fff;border-color:#fff;color:#333}.wpeo-button.button-light:hover{-webkit-box-shadow:inset 0 -2.6em rgba(0,0,0,.1);box-shadow:inset 0 -2.6em rgba(0,0,0,.1);color:#333}.wpeo-button.button-dark{background:#2b2b2b;border-color:#2b2b2b}.wpeo-button.button-grey{background:#ececec;border-color:#ececec;color:#333}.wpeo-button.button-grey:hover{-webkit-box-shadow:inset 0 -2.6em rgba(0,0,0,.1);box-shadow:inset 0 -2.6em rgba(0,0,0,.1);color:#333}.wpeo-button.button-red{background:#e05353;border-color:#e05353}.wpeo-button.button-yellow{background:#e9ad4f;border-color:#e9ad4f}.wpeo-button.button-blue{background:#0d8aff;border-color:#0d8aff}.wpeo-button.button-green{background:#47e58e;border-color:#47e58e}.wpeo-button.button-transparent{background:rgba(0,0,0,0);border-color:rgba(0,0,0,0);color:rgba(51,51,51,.4)}.wpeo-button.button-transparent:hover{color:#333;-webkit-box-shadow:inset 0 -2.6em rgba(255,255,255,0);box-shadow:inset 0 -2.6em rgba(255,255,255,0)}.wpeo-button.button-bordered{background:none;border-color:#0d8aff;color:#0d8aff}.wpeo-button.button-bordered.button-main{border-color:#0d8aff;color:#0d8aff}.wpeo-button.button-bordered.button-main:hover{-webkit-box-shadow:inset 0 -2.6em #0d8aff;box-shadow:inset 0 -2.6em #0d8aff;color:#fff}.wpeo-button.button-bordered.button-light{border-color:#fff;color:#fff}.wpeo-button.button-bordered.button-light:hover{-webkit-box-shadow:inset 0 -2.6em #fff;box-shadow:inset 0 -2.6em #fff;color:#333}.wpeo-button.button-bordered.button-dark{border-color:#2b2b2b;color:#2b2b2b}.wpeo-button.button-bordered.button-dark:hover{-webkit-box-shadow:inset 0 -2.6em #2b2b2b;box-shadow:inset 0 -2.6em #2b2b2b}.wpeo-button.button-bordered.button-grey{border-color:#ececec;color:#a0a0a0}.wpeo-button.button-bordered.button-grey:hover{-webkit-box-shadow:inset 0 -2.6em #ececec;box-shadow:inset 0 -2.6em #ececec;color:#333}.wpeo-button.button-bordered.button-red{border-color:#e05353;color:#e05353}.wpeo-button.button-bordered.button-red:hover{-webkit-box-shadow:inset 0 -2.6em #e05353;box-shadow:inset 0 -2.6em #e05353}.wpeo-button.button-bordered.button-yellow{border-color:#e9ad4f;color:#e9ad4f}.wpeo-button.button-bordered.button-yellow:hover{-webkit-box-shadow:inset 0 -2.6em #e9ad4f;box-shadow:inset 0 -2.6em #e9ad4f}.wpeo-button.button-bordered.button-blue{border-color:#0d8aff;color:#0d8aff}.wpeo-button.button-bordered.button-blue:hover{-webkit-box-shadow:inset 0 -2.6em #0d8aff;box-shadow:inset 0 -2.6em #0d8aff}.wpeo-button.button-bordered.button-green{border-color:#47e58e;color:#47e58e}.wpeo-button.button-bordered.button-green:hover{-webkit-box-shadow:inset 0 -2.6em #47e58e;box-shadow:inset 0 -2.6em #47e58e}.wpeo-button.button-bordered:hover{-webkit-box-shadow:inset 0 -2.6em #0d8aff;box-shadow:inset 0 -2.6em #0d8aff;color:#fff}.wpeo-button .button-add{position:absolute;top:.4em;right:.2em;opacity:.6;font-size:14px;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.wpeo-button:hover .button-add{opacity:.8}.wpeo-button.button-square-40 .button-add{top:.1em;right:0}.wpeo-button .button-icon,.wpeo-button span{position:relative}.wpeo-button .button-icon~span{margin-left:10px}.wpeo-button span~.button-icon{margin-left:10px}.wpeo-button.button-strong span{font-weight:800}.wpeo-button.button-uppercase span{text-transform:uppercase;font-size:14px}.wpeo-button[class*=button-square-]{text-align:center;overflow:hidden;padding:0}.wpeo-button.button-square-30{width:30px;height:30px;line-height:24px}.wpeo-button.button-square-30 .button-icon{font-size:12px;line-height:24px}.wpeo-button.button-square-40{width:40px;height:40px;line-height:34px}.wpeo-button.button-square-40 .button-icon{line-height:34px}.wpeo-button.button-square-50{width:50px;height:50px;line-height:44px}.wpeo-button.button-square-50 .button-icon{line-height:44px}.wpeo-button.button-square-60{width:60px;height:60px;line-height:54px}.wpeo-button.button-square-60 .button-icon{line-height:54px}.wpeo-button.button-float-left{float:left}.wpeo-button.button-float-right{float:right}.wpeo-button.button-margin{margin:1em 0}.wpeo-button.button-radius-1{border-radius:2px}.wpeo-button.button-radius-2{border-radius:4px}.wpeo-button.button-radius-3{border-radius:6px}.wpeo-button.button-rounded{border-radius:50%}.wpeo-button.button-disable{background:#ececec !important;border-color:#ececec !important;color:rgba(0,0,0,.4) !important;pointer-events:none}.wpeo-button.button-disable:hover{-webkit-box-shadow:none !important;box-shadow:none !important}.wpeo-button.button-disable.button-event{pointer-events:all}.wpeo-button.button-size-small{font-size:14px}.wpeo-button.button-size-small.button-uppercase span{font-size:12px}.wpeo-button.button-size-large{font-size:18px}.wpeo-button.button-size-large.button-uppercase span{font-size:16px}.wpeo-modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;background:rgba(39,42,53,.9);opacity:0;pointer-events:none;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.wpeo-modal textarea{resize:none}.wpeo-modal.modal-active{opacity:1;pointer-events:auto;z-index:1002}.wpeo-modal.modal-active .modal-container{-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.wpeo-modal.modal-active textarea{resize:both}.wpeo-modal.modal-active .modal-active{z-index:1003}.wpeo-modal.modal-active .modal-active .modal-active{z-index:1004}.wpeo-modal.modal-force-display .modal-close{display:none}.wpeo-modal .modal-container{position:absolute;-webkit-transition:all .2s ease-out;transition:all .2s ease-out;width:100%;max-width:860px;height:100%;max-height:560px;background:#fff;padding:1em 0;margin:auto;top:50%;left:50%;-webkit-transform:translate(-50%, -60%);transform:translate(-50%, -60%)}@media(max-width: 480px){.wpeo-modal .modal-container{padding:1em}}.wpeo-modal .modal-container .modal-header{height:10%;display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 2em}.wpeo-modal .modal-container .modal-content{height:78%;padding:0 2em}.wpeo-modal .modal-container .modal-footer{height:12%;padding:0 2em}.wpeo-modal .modal-container .modal-header .modal-title,.wpeo-modal .modal-container .modal-header .modal-close{margin:auto 0}.wpeo-modal .modal-container .modal-header .modal-title{text-transform:uppercase;font-size:18px;white-space:normal}@media(max-width: 770px){.wpeo-modal .modal-container .modal-header .modal-title{font-size:16px}}@media(max-width: 480px){.wpeo-modal .modal-container .modal-header .modal-title{font-size:14px}}.wpeo-modal .modal-container .modal-header .modal-close{margin-left:auto;color:rgba(0,0,0,.3);padding:4px;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.wpeo-modal .modal-container .modal-header .modal-close:hover{cursor:pointer;color:#0d8aff}.wpeo-modal .modal-container .modal-content{overflow-y:auto;font-size:14px}@media(max-width: 480px){.wpeo-modal .modal-container .modal-content{font-size:12px}}.wpeo-modal .modal-container .modal-footer{text-align:right;padding-top:1em}.wpeo-modal .modal-container .modal-footer.left{text-align:left}.wpeo-modal .modal-container .modal-footer.center{text-align:center}.wpeo-loader{-webkit-transition:all .2s ease-out;transition:all .2s ease-out;pointer-events:none;opacity:.5;position:relative}.wpeo-loader .loader-spin{position:absolute;border:3px solid #a7a7a7;border-top:3px solid #002140;border-radius:50%;width:20px;height:20px;z-index:99;left:50%;top:50%;margin:0 !important;padding:0 !important;-webkit-animation:loader-spin 1s ease-out infinite;animation:loader-spin 1s ease-out infinite}@-webkit-keyframes loader-spin{0%{-webkit-transform:translate(-50%, -50%) rotate(0deg);transform:translate(-50%, -50%) rotate(0deg)}100%{-webkit-transform:translate(-50%, -50%) rotate(360deg);transform:translate(-50%, -50%) rotate(360deg)}}@keyframes loader-spin{0%{-webkit-transform:translate(-50%, -50%) rotate(0deg);transform:translate(-50%, -50%) rotate(0deg)}100%{-webkit-transform:translate(-50%, -50%) rotate(360deg);transform:translate(-50%, -50%) rotate(360deg)}}.wpeo-gridlayout{display:grid;grid-gap:1em 1em;grid-template-columns:repeat(4, 1fr)}.wpeo-gridlayout.grid-1{grid-template-columns:repeat(1, 1fr)}.wpeo-gridlayout.grid-1>.gridw-1{grid-column:auto/span 1}.wpeo-gridlayout.grid-2{grid-template-columns:repeat(2, 1fr)}.wpeo-gridlayout.grid-2>.gridw-1{grid-column:auto/span 1}.wpeo-gridlayout.grid-2>.gridw-2{grid-column:auto/span 2}@media(max-width: 770px){.wpeo-gridlayout.grid-2>.gridw-2{grid-column:auto/span 2}}.wpeo-gridlayout.grid-3{grid-template-columns:repeat(3, 1fr)}.wpeo-gridlayout.grid-3>.gridw-1{grid-column:auto/span 1}.wpeo-gridlayout.grid-3>.gridw-2{grid-column:auto/span 2}@media(max-width: 770px){.wpeo-gridlayout.grid-3>.gridw-2{grid-column:auto/span 2}}.wpeo-gridlayout.grid-3>.gridw-3{grid-column:auto/span 3}@media(max-width: 770px){.wpeo-gridlayout.grid-3>.gridw-3{grid-column:auto/span 2}}.wpeo-gridlayout.grid-4{grid-template-columns:repeat(4, 1fr)}.wpeo-gridlayout.grid-4>.gridw-1{grid-column:auto/span 1}.wpeo-gridlayout.grid-4>.gridw-2{grid-column:auto/span 2}@media(max-width: 770px){.wpeo-gridlayout.grid-4>.gridw-2{grid-column:auto/span 2}}.wpeo-gridlayout.grid-4>.gridw-3{grid-column:auto/span 3}@media(max-width: 770px){.wpeo-gridlayout.grid-4>.gridw-3{grid-column:auto/span 2}}.wpeo-gridlayout.grid-4>.gridw-4{grid-column:auto/span 4}@media(max-width: 770px){.wpeo-gridlayout.grid-4>.gridw-4{grid-column:auto/span 2}}.wpeo-gridlayout.grid-5{grid-template-columns:repeat(5, 1fr)}.wpeo-gridlayout.grid-5>.gridw-1{grid-column:auto/span 1}.wpeo-gridlayout.grid-5>.gridw-2{grid-column:auto/span 2}@media(max-width: 770px){.wpeo-gridlayout.grid-5>.gridw-2{grid-column:auto/span 2}}.wpeo-gridlayout.grid-5>.gridw-3{grid-column:auto/span 3}@media(max-width: 770px){.wpeo-gridlayout.grid-5>.gridw-3{grid-column:auto/span 2}}.wpeo-gridlayout.grid-5>.gridw-4{grid-column:auto/span 4}@media(max-width: 770px){.wpeo-gridlayout.grid-5>.gridw-4{grid-column:auto/span 2}}.wpeo-gridlayout.grid-5>.gridw-5{grid-column:auto/span 5}@media(max-width: 770px){.wpeo-gridlayout.grid-5>.gridw-5{grid-column:auto/span 2}}.wpeo-gridlayout.grid-6{grid-template-columns:repeat(6, 1fr)}.wpeo-gridlayout.grid-6>.gridw-1{grid-column:auto/span 1}.wpeo-gridlayout.grid-6>.gridw-2{grid-column:auto/span 2}@media(max-width: 770px){.wpeo-gridlayout.grid-6>.gridw-2{grid-column:auto/span 2}}.wpeo-gridlayout.grid-6>.gridw-3{grid-column:auto/span 3}@media(max-width: 770px){.wpeo-gridlayout.grid-6>.gridw-3{grid-column:auto/span 2}}.wpeo-gridlayout.grid-6>.gridw-4{grid-column:auto/span 4}@media(max-width: 770px){.wpeo-gridlayout.grid-6>.gridw-4{grid-column:auto/span 2}}.wpeo-gridlayout.grid-6>.gridw-5{grid-column:auto/span 5}@media(max-width: 770px){.wpeo-gridlayout.grid-6>.gridw-5{grid-column:auto/span 2}}.wpeo-gridlayout.grid-6>.gridw-6{grid-column:auto/span 6}@media(max-width: 770px){.wpeo-gridlayout.grid-6>.gridw-6{grid-column:auto/span 2}}.wpeo-gridlayout>.gridh-1{grid-row:auto/span 1}@media(max-width: 770px){.wpeo-gridlayout>.gridh-1{grid-row:auto/span 1 !important}}.wpeo-gridlayout>.gridh-2{grid-row:auto/span 2}@media(max-width: 770px){.wpeo-gridlayout>.gridh-2{grid-row:auto/span 1 !important}}.wpeo-gridlayout>.gridh-3{grid-row:auto/span 3}@media(max-width: 770px){.wpeo-gridlayout>.gridh-3{grid-row:auto/span 1 !important}}.wpeo-gridlayout>.gridh-4{grid-row:auto/span 4}@media(max-width: 770px){.wpeo-gridlayout>.gridh-4{grid-row:auto/span 1 !important}}.wpeo-gridlayout>.gridh-5{grid-row:auto/span 5}@media(max-width: 770px){.wpeo-gridlayout>.gridh-5{grid-row:auto/span 1 !important}}.wpeo-gridlayout>.gridh-6{grid-row:auto/span 6}@media(max-width: 770px){.wpeo-gridlayout>.gridh-6{grid-row:auto/span 1 !important}}.wpeo-gridlayout.grid-margin-0{margin:0em 0}.wpeo-gridlayout.grid-margin-1{margin:1em 0}.wpeo-gridlayout.grid-margin-2{margin:2em 0}.wpeo-gridlayout.grid-margin-3{margin:3em 0}.wpeo-gridlayout.grid-margin-4{margin:4em 0}.wpeo-gridlayout.grid-margin-5{margin:5em 0}.wpeo-gridlayout.grid-margin-6{margin:6em 0}.wpeo-gridlayout.grid-gap-0{grid-gap:0em 0em}.wpeo-gridlayout.grid-gap-1{grid-gap:1em 1em}.wpeo-gridlayout.grid-gap-2{grid-gap:2em 2em}.wpeo-gridlayout.grid-gap-3{grid-gap:3em 3em}.wpeo-gridlayout.grid-gap-4{grid-gap:4em 4em}.wpeo-gridlayout.grid-gap-5{grid-gap:5em 5em}.wpeo-gridlayout.grid-gap-6{grid-gap:6em 6em}.wpeo-gridlayout .grid-align-center{margin-left:auto;margin-right:auto}.wpeo-gridlayout .grid-align-right{margin-left:auto}.wpeo-gridlayout .grid-align-middle{margin-top:auto;margin-bottom:auto}.wpeo-gridlayout .grid-align-bottom{margin-top:auto}@media(max-width: 480px){.wpeo-gridlayout:not(.dropdown-content).grid-2{grid-template-columns:repeat(1, 1fr) !important}}@media(max-width: 770px){.wpeo-gridlayout:not(.dropdown-content).grid-3{grid-template-columns:repeat(2, 1fr) !important}}@media(max-width: 480px){.wpeo-gridlayout:not(.dropdown-content).grid-3{grid-template-columns:repeat(1, 1fr) !important}}@media(max-width: 770px){.wpeo-gridlayout:not(.dropdown-content).grid-4{grid-template-columns:repeat(2, 1fr) !important}}@media(max-width: 480px){.wpeo-gridlayout:not(.dropdown-content).grid-4{grid-template-columns:repeat(1, 1fr) !important}}@media(max-width: 770px){.wpeo-gridlayout:not(.dropdown-content).grid-5{grid-template-columns:repeat(2, 1fr) !important}}@media(max-width: 480px){.wpeo-gridlayout:not(.dropdown-content).grid-5{grid-template-columns:repeat(1, 1fr) !important}}@media(max-width: 770px){.wpeo-gridlayout:not(.dropdown-content).grid-6{grid-template-columns:repeat(2, 1fr) !important}}@media(max-width: 480px){.wpeo-gridlayout:not(.dropdown-content).grid-6{grid-template-columns:repeat(1, 1fr) !important}}@media(max-width: 480px){.wpeo-gridlayout:not(.dropdown-content)>*{grid-column:auto/span 1 !important}}.wpeo-table.table-flex{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:14px}.wpeo-table.table-flex .table-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.wpeo-table.table-flex .table-row:not(.table-header):nth-of-type(odd){background:rgba(0,0,0,.05)}.wpeo-table.table-flex .table-row.table-header{background:#263c5c}.wpeo-table.table-flex .table-row.table-header .table-cell{font-weight:700;color:#fff}.wpeo-table.table-flex .table-cell{margin:auto 0;width:100%;padding:.8em .6em}@media(max-width: 770px){.wpeo-table.table-flex .table-cell{padding:.4em}}.wpeo-table.table-flex.table-1 .table-cell{width:100%}.wpeo-table.table-flex.table-2 .table-cell{width:50%}.wpeo-table.table-flex.table-3 .table-cell{width:33.3333333333%}.wpeo-table.table-flex.table-4 .table-cell{width:25%}.wpeo-table.table-flex.table-5 .table-cell{width:20%}.wpeo-table.table-flex.table-6 .table-cell{width:16.6666666667%}.wpeo-table.table-flex.table-7 .table-cell{width:14.2857142857%}.wpeo-table.table-flex.table-8 .table-cell{width:12.5%}.wpeo-table.table-flex.table-9 .table-cell{width:11.1111111111%}.wpeo-table.table-flex.table-10 .table-cell{width:10%}.wpeo-table.table-flex .table-cell.table-25{max-width:25px;min-width:25px}.wpeo-table.table-flex .table-cell.table-50{max-width:50px;min-width:50px}.wpeo-table.table-flex .table-cell.table-75{max-width:75px;min-width:75px}.wpeo-table.table-flex .table-cell.table-100{max-width:100px;min-width:100px}.wpeo-table.table-flex .table-cell.table-125{max-width:125px;min-width:125px}.wpeo-table.table-flex .table-cell.table-150{max-width:150px;min-width:150px}.wpeo-table.table-flex .table-cell.table-175{max-width:175px;min-width:175px}.wpeo-table.table-flex .table-cell.table-200{max-width:200px;min-width:200px}.wpeo-table.table-flex .table-cell.table-225{max-width:225px;min-width:225px}.wpeo-table.table-flex .table-cell.table-250{max-width:250px;min-width:250px}.wpeo-table.table-flex .table-cell.table-275{max-width:275px;min-width:275px}.wpeo-table.table-flex .table-cell.table-300{max-width:300px;min-width:300px}.wpeo-table.table-flex .table-cell.table-325{max-width:325px;min-width:325px}.wpeo-table.table-flex .table-cell.table-350{max-width:350px;min-width:350px}.wpeo-table.table-flex .table-cell.table-375{max-width:375px;min-width:375px}.wpeo-table.table-flex .table-cell.table-400{max-width:400px;min-width:400px}.wpeo-table.table-flex .table-cell.table-425{max-width:425px;min-width:425px}.wpeo-table.table-flex .table-cell.table-450{max-width:450px;min-width:450px}.wpeo-table.table-flex .table-cell.table-475{max-width:475px;min-width:475px}.wpeo-table.table-flex .table-cell.table-500{max-width:500px;min-width:500px}.wpeo-table.table-flex .table-cell.table-full{width:100%}.wpeo-table.table-flex .table-cell.table-end{text-align:right;margin-left:auto}.wpeo-table.table-flex .table-cell.table-padding-0{padding:0}@media(max-width: 480px){.wpeo-table.table-flex .table-row{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.wpeo-table.table-flex .table-cell{width:100%}}.wpeo-tooltip{display:block;position:absolute;bottom:0;left:0;opacity:0;pointer-events:none;z-index:99999;white-space:nowrap;background:#2b2b2b;color:#fff;border-radius:6px;font-size:.8rem;padding:0 1em;height:2.2em;line-height:2.2em}.wpeo-tooltip::before{display:block;content:"";width:0;height:0;border-style:solid;position:absolute}.wpeo-tooltip:focus{outline:none}.wpeo-tooltip.tooltip-dark{background:#2b2b2b}.wpeo-tooltip.tooltip-dark.tooltip-top::before{border-color:#2b2b2b rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.wpeo-tooltip.tooltip-dark.tooltip-right::before{border-color:rgba(0,0,0,0) #2b2b2b rgba(0,0,0,0) rgba(0,0,0,0)}.wpeo-tooltip.tooltip-dark.tooltip-bottom::before{border-color:rgba(0,0,0,0) rgba(0,0,0,0) #2b2b2b rgba(0,0,0,0)}.wpeo-tooltip.tooltip-dark.tooltip-left::before{border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #2b2b2b}.wpeo-tooltip.tooltip-primary{background:#0d8aff}.wpeo-tooltip.tooltip-primary.tooltip-top::before{border-color:#0d8aff rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.wpeo-tooltip.tooltip-primary.tooltip-right::before{border-color:rgba(0,0,0,0) #0d8aff rgba(0,0,0,0) rgba(0,0,0,0)}.wpeo-tooltip.tooltip-primary.tooltip-bottom::before{border-color:rgba(0,0,0,0) rgba(0,0,0,0) #0d8aff rgba(0,0,0,0)}.wpeo-tooltip.tooltip-primary.tooltip-left::before{border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #0d8aff}.wpeo-tooltip.tooltip-light{background:#ececec;color:rgba(0,0,0,.6)}.wpeo-tooltip.tooltip-light.tooltip-top::before{border-color:#ececec rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.wpeo-tooltip.tooltip-light.tooltip-right::before{border-color:rgba(0,0,0,0) #ececec rgba(0,0,0,0) rgba(0,0,0,0)}.wpeo-tooltip.tooltip-light.tooltip-bottom::before{border-color:rgba(0,0,0,0) rgba(0,0,0,0) #ececec rgba(0,0,0,0)}.wpeo-tooltip.tooltip-light.tooltip-left::before{border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #ececec}.wpeo-tooltip.tooltip-red{background:#e05353}.wpeo-tooltip.tooltip-red.tooltip-top::before{border-color:#e05353 rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.wpeo-tooltip.tooltip-red.tooltip-right::before{border-color:rgba(0,0,0,0) #e05353 rgba(0,0,0,0) rgba(0,0,0,0)}.wpeo-tooltip.tooltip-red.tooltip-bottom::before{border-color:rgba(0,0,0,0) rgba(0,0,0,0) #e05353 rgba(0,0,0,0)}.wpeo-tooltip.tooltip-red.tooltip-left::before{border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #e05353}.wpeo-tooltip.tooltip-top::before{border-width:6px 6px 0 6px;border-color:#2b2b2b rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0);bottom:-6px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.wpeo-tooltip.tooltip-right::before{border-width:6px 6px 6px 0;border-color:rgba(0,0,0,0) #2b2b2b rgba(0,0,0,0) rgba(0,0,0,0);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);left:-6px}.wpeo-tooltip.tooltip-bottom::before{border-width:0 6px 6px 6px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) #2b2b2b rgba(0,0,0,0);top:-6px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.wpeo-tooltip.tooltip-left::before{border-width:6px 0 6px 6px;border-color:rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0) #2b2b2b;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);right:-6px}.wpeo-notice{position:relative;font-size:1em;padding:1em;overflow:hidden;border-radius:3px;border:solid #eee 1px;margin:1em 0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:all .2s ease-out;transition:all .2s ease-out;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.wpeo-notice::before{display:block;font-family:"Font Awesome 5 Free";font-weight:900;font-size:24px}.wpeo-notice .notice-content{width:100%;padding:0 1em;color:rgba(0,0,0,.6)}.wpeo-notice .notice-title{font-size:20px;font-weight:600;color:rgba(0,0,0,.9)}.wpeo-notice .notice-subtitle{font-size:14px}.wpeo-notice .notice-close{color:rgba(0,0,0,.3);-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.wpeo-notice .notice-close:hover{color:#0d8aff;cursor:pointer}.wpeo-notice ul{padding:0 0 0 1.4em;margin:.4em 0}.wpeo-notice.notice-info{border-left:solid #0d8aff 6px;color:#0d8aff;background:rgba(13,138,255,.05)}.wpeo-notice.notice-info::before{content:""}.wpeo-notice.notice-info .notice-title,.wpeo-notice.notice-info .notice-subtitle,.wpeo-notice.notice-info a{color:#0d8aff}.wpeo-notice.notice-error{border-left:solid #e05353 6px;color:#e05353;background:rgba(224,83,83,.05)}.wpeo-notice.notice-error::before{content:""}.wpeo-notice.notice-error .notice-title,.wpeo-notice.notice-error .notice-subtitle,.wpeo-notice.notice-error a{color:#e05353}.wpeo-notice.notice-warning{border-left:solid #e9ad4f 6px;color:#e9ad4f;background:rgba(233,173,79,.05)}.wpeo-notice.notice-warning::before{content:""}.wpeo-notice.notice-warning .notice-title,.wpeo-notice.notice-warning .notice-subtitle,.wpeo-notice.notice-warning a{color:#e9ad4f}.wpeo-notice.notice-success{border-left:solid #47e58e 6px;color:#47e58e;background:rgba(71,229,142,.05)}.wpeo-notice.notice-success::before{content:""}.wpeo-notice.notice-success .notice-title,.wpeo-notice.notice-success .notice-subtitle,.wpeo-notice.notice-success a{color:#47e58e}.tns-outer{position:relative}.tns-outer .tns-nav{text-align:center;position:absolute;width:100%;bottom:.5em;z-index:50}.tns-outer .tns-nav button{display:inline-block;margin:0 4px;padding:0;width:15px;height:15px;background:#fff;border-radius:50%;-webkit-box-shadow:0px 1px 6px 0px rgba(0,0,0,.2);box-shadow:0px 1px 6px 0px rgba(0,0,0,.2);-webkit-transition:all .2s ease-out;transition:all .2s ease-out;border:2px solid #fff}.tns-outer .tns-nav button:hover{-webkit-box-shadow:none;box-shadow:none}.tns-outer .tns-nav button.tns-nav-active{border:2px solid #0d8aff;-webkit-box-shadow:0px 0px 0px 2px #0d8aff;box-shadow:0px 0px 0px 2px #0d8aff}.tns-outer .tns-controls button[data-controls=prev],.tns-outer .tns-controls button[data-controls=next]{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:none;padding:0;border:0;z-index:60}.tns-outer .tns-controls button[data-controls=prev] .icon,.tns-outer .tns-controls button[data-controls=next] .icon{color:#3a3a3a;background:#fff;border-radius:50%;width:28px;height:28px;text-align:center;line-height:28px;opacity:.7;-webkit-transition:opacity .3s cubic-bezier(0.77, 0, 0.175, 1);transition:opacity .3s cubic-bezier(0.77, 0, 0.175, 1)}.tns-outer .tns-controls button[data-controls=prev]:hover,.tns-outer .tns-controls button[data-controls=next]:hover{-webkit-box-shadow:none;box-shadow:none}.tns-outer .tns-controls button[data-controls=prev]:hover .icon,.tns-outer .tns-controls button[data-controls=next]:hover .icon{opacity:1}.tns-outer .tns-controls button[data-controls=prev]:active .icon,.tns-outer .tns-controls button[data-controls=next]:active .icon{-webkit-transform:translateY(2px);transform:translateY(2px)}.tns-outer .tns-controls button[data-controls=prev][disabled] .icon,.tns-outer .tns-controls button[data-controls=next][disabled] .icon{opacity:.2}.tns-outer .tns-controls button[data-controls=prev][disabled]:active .icon,.tns-outer .tns-controls button[data-controls=next][disabled]:active .icon{-webkit-transform:none;transform:none}.tns-outer .tns-controls button[data-controls=prev]{left:15px}.tns-outer .tns-controls button[data-controls=next]{right:15px}.wpeo-form input,.wpeo-form textarea,.wpeo-form select{border:1px solid rgba(0,0,0,.2);font-size:14px;background:rgba(0,0,0,0);padding:0;margin:0;width:100%;padding:1em .5em;-webkit-box-shadow:none;box-shadow:none}.wpeo-form input:focus,.wpeo-form input:active,.wpeo-form textarea:focus,.wpeo-form textarea:active,.wpeo-form select:focus,.wpeo-form select:active{outline:none;-webkit-box-shadow:none;box-shadow:none}.wpeo-form select{padding:1em 0}.wpeo-form input[type=submit]{width:auto}.wpeo-form .group-date .mysql-date{display:none}.wpeo-form .wpeo-dropdown{display:block;width:100%}.wpeo-form .wpeo-dropdown .dropdown-toggle{width:100%;display:block;-webkit-transition:all .2s ease-out;transition:all .2s ease-out;border:0;font-size:14px;padding:1em 2em 1em 1em;margin:0}.wpeo-form .wpeo-dropdown .dropdown-toggle:hover{cursor:pointer}.wpeo-form .wpeo-dropdown .dropdown-toggle>.svg-inline--fa{position:absolute;right:1em;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.wpeo-form .form-element.disable .dropdown-toggle>.svg-inline--fa{display:none}.wpeo-form .wpeo-autocomplete{display:block;width:100%}.wpeo-form .wpeo-autocomplete .autocomplete-label{-webkit-box-shadow:none;box-shadow:none;padding:.74em 1em}.wpeo-form.form-light .wpeo-autocomplete .autocomplete-label{background:#fff}.wpeo-form.form-light .wpeo-autocomplete .autocomplete-label:hover{background:#ececec}.wpeo-form .form-element input[type=radio].form-field{display:inline-block;width:auto}.wpeo-form .form-element input[type=radio].form-field{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:50%;width:16px;height:16px;padding:0;border:0;background:rgba(0,0,0,0) !important;border:1px solid rgba(0,0,0,.4);-webkit-transition:.2s all linear;transition:.2s all linear;outline:none;position:relative;top:2px}.wpeo-form .form-element input[type=radio].form-field::before{display:none !important;content:"" !important}.wpeo-form .form-element input[type=radio].form-field:hover{cursor:pointer;border:1px solid #0d8aff;-webkit-box-shadow:0 0 0 1px #0d8aff inset;box-shadow:0 0 0 1px #0d8aff inset;background:rgba(0,0,0,0) !important}.wpeo-form .form-element input[type=radio].form-field:checked{border:1px solid #0d8aff;-webkit-box-shadow:0 0 0 4px #0d8aff inset;box-shadow:0 0 0 4px #0d8aff inset}.wpeo-form .form-element input[type=radio].form-field+label{text-transform:none;font-weight:400;font-size:14px;display:inline-block;margin-right:1em}.wpeo-form .form-element input[type=radio].form-field+label:hover{cursor:pointer}.wpeo-form .form-element input[type=radio].form-field+label:active{outline:none}.wpeo-form .form-element input[type=checkbox].form-field{display:inline-block;width:auto}.wpeo-form .form-element input[type=checkbox].form-field{width:auto;visibility:hidden;display:none}.wpeo-form .form-element input[type=checkbox].form-field+label{text-transform:none;font-weight:400;font-size:14px;display:inline-block;margin-right:1em;position:relative}.wpeo-form .form-element input[type=checkbox].form-field+label:hover{cursor:pointer}.wpeo-form .form-element input[type=checkbox].form-field+label:active{outline:none}.wpeo-form .form-element input[type=checkbox].form-field+label::before{display:inline-block;content:"";width:14px;height:14px;background:rgba(0,0,0,0);-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.4);box-shadow:0 0 0 1px rgba(0,0,0,.4);border:2px solid #fff;-webkit-transition:all .2s ease-out;transition:all .2s ease-out;margin-right:.6em}.wpeo-form .form-element input[type=checkbox].form-field:not(:checked)+label:hover::before{-webkit-box-shadow:0 0 0 2px #0d8aff;box-shadow:0 0 0 2px #0d8aff}.wpeo-form .form-element input[type=checkbox].form-field:checked+label::before{-webkit-box-shadow:0 0 0 2px #0d8aff;box-shadow:0 0 0 2px #0d8aff;background:#0d8aff}.wpeo-form .form-element{width:100%}.wpeo-form .form-element .form-label{display:block;font-size:14px;font-weight:600;margin:.6em 0;color:rgba(0,0,0,.9)}.wpeo-form .form-element .form-field-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.wpeo-form .form-element .form-field-container:hover{-webkit-box-shadow:none;box-shadow:none}.wpeo-form .form-element .form-field{-webkit-transition:all .2s ease-out;transition:all .2s ease-out;border-radius:0}.wpeo-form .form-element .form-field:hover{-webkit-box-shadow:none;box-shadow:none}.wpeo-form .form-element .form-sublabel{font-size:12px;font-style:italic;color:rgba(0,0,0,.6)}.wpeo-form .form-element .form-field-inline{margin-right:.4em}.wpeo-form .form-element.form-align-vertical .form-field-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.wpeo-form .form-element.form-align-horizontal .form-field-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.wpeo-form .form-element .form-field-container .form-field,.wpeo-form .form-element .form-field-container [class*=form-field-icon]{background:#ececec}.wpeo-form .form-element .form-field-container:hover .form-field,.wpeo-form .form-element .form-field-container:hover [class*=form-field-icon]{background:#dfdfdf}.wpeo-form .form-element [class*=form-field-label]{background:#dfdfdf}.wpeo-form.form-light .form-element .form-field-container .form-field,.wpeo-form.form-light .form-element .form-field-container [class*=form-field-icon]{background:#fff}.wpeo-form.form-light .form-element .form-field-container:hover .form-field,.wpeo-form.form-light .form-element .form-field-container:hover [class*=form-field-icon]{background:#ececec}.wpeo-form.form-light .form-element [class*=form-field-label]{background:#ececec}.wpeo-form .form-element [class*=form-field-icon]{padding:.8em 0 .8em .8em;color:rgba(0,0,0,.4);font-size:16px;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.wpeo-form .form-element [class*=form-field-icon] [class*=fa]{vertical-align:middle}.wpeo-form .form-element .form-field-icon-prev{padding:.8em 0 .8em .8em}.wpeo-form .form-element .form-field-icon-next{padding:.8em .8em .8em 0}.wpeo-form .form-element [class*=form-field-label]{padding:1.2em 1em;font-size:12px}.wpeo-form .form-element .form-field-label-prev{border-right:1px solid rgba(0,0,0,.1)}.wpeo-form .form-element .form-field-label-next{border-left:1px solid rgba(0,0,0,.1)}.wpeo-form .form-element.form-element-required .form-label::after{display:inline-block;content:"*";color:#e05353;padding:0 .4em}.wpeo-form .form-element.form-element-error .form-field-container{border:1px solid #e05353}.wpeo-form .form-element.form-element-disable .form-field-container{opacity:.6;pointer-events:none}.page-ut-gp-list{margin-left:-30px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block !important;width:100%}.page-ut-gp-list *{-webkit-box-sizing:border-box;box-sizing:border-box}.page-ut-gp-list .fiche{margin-right:0 !important}.page-ut-gp-list #id-right{padding-left:300px;width:calc(100% + 30px);display:block}.page-ut-gp-list .side-nav{position:absolute;height:100%;top:0;padding-top:50px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none}.page-ut-gp-list .side-nav .side-nav-responsive{display:none}.page-ut-gp-list .side-nav #id-left{width:300px;padding-top:0}.page-ut-gp-list .side-nav .digirisk-wrap{padding:0 !important}.page-ut-gp-list .side-nav .navigation-container{max-height:1000px;overflow-y:auto}.page-ut-gp-list .side-nav .add-container{position:absolute;right:0;bottom:5px;opacity:0;pointer-events:none;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.page-ut-gp-list .side-nav #id-left.active .add-container{opacity:1}.page-ut-gp-list .side-nav .society-header{padding-top:27px;position:relative;padding-left:10px;padding-right:10px}.page-ut-gp-list .side-nav .society-header .title{font-weight:700}.page-ut-gp-list .side-nav .society-header .linkElement{line-height:1;border-bottom:1px solid rgba(0,0,0,.2);padding-bottom:10px;display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.page-ut-gp-list .side-nav .society-header:hover .add-container{opacity:1;pointer-events:all}.page-ut-gp-list .side-nav .toolbar{padding-left:10px;padding-right:10px}.page-ut-gp-list .side-nav .toolbar .toggle-plus,.page-ut-gp-list .side-nav .toolbar .toggle-minus{display:inline-block;padding:3px;-webkit-transition:all .2s ease-out;transition:all .2s ease-out;color:rgba(0,0,0,.6)}.page-ut-gp-list .side-nav .toolbar .toggle-plus:hover,.page-ut-gp-list .side-nav .toolbar .toggle-minus:hover{cursor:pointer;opacity:.6}.page-ut-gp-list .side-nav .workunit-list{padding-left:0}.page-ut-gp-list .side-nav .workunit-list ul,.page-ut-gp-list .side-nav .workunit-list li{list-style-type:none;margin:0}.page-ut-gp-list .side-nav .workunit-list>.unit:first-child>.unit-container:first-child>.title{border-top:1px solid rgba(0,0,0,.1)}.page-ut-gp-list .side-nav .workunit-list .unit-container{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.page-ut-gp-list .side-nav .workunit-list .unit-container:hover .add-container{opacity:1;pointer-events:all}.page-ut-gp-list .side-nav .workunit-list .unit-container .toggle-unit{color:rgba(0,0,0,.6);line-height:40px;font-size:18px;min-width:30px;width:30px;text-align:center;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.page-ut-gp-list .side-nav .workunit-list .unit-container .toggle-unit:hover{cursor:pointer}.page-ut-gp-list .side-nav .workunit-list .unit-container .toggle-unit .toggle-icon{line-height:40px}.page-ut-gp-list .side-nav .workunit-list .unit-container .spacer{position:relative;min-width:30px;width:30px}.page-ut-gp-list .side-nav .workunit-list .unit-container .spacer::before{display:block;position:absolute;content:"";height:1px;left:0;right:10px;top:20px;background:rgba(0,0,0,.3)}.page-ut-gp-list .side-nav .workunit-list .unit-container .photodigiriskdolibarr{display:block;width:40px;min-width:40px;height:40px;position:relative;background:#fff;text-align:center;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.page-ut-gp-list .side-nav .workunit-list .unit-container .divphotoref{max-width:50px;position:relative}.page-ut-gp-list .side-nav .workunit-list .unit-container .divphotoref .photo{-o-object-fit:cover;object-fit:cover;margin:0}.page-ut-gp-list .side-nav .workunit-list .unit-container .title{width:100%;padding-left:1em;display:-webkit-box;display:-ms-flexbox;display:flex;border-bottom:1px solid rgba(0,0,0,.1)}.page-ut-gp-list .side-nav .workunit-list .unit-container .title .linkElement{width:100%;padding-top:.5em;text-decoration:none}.page-ut-gp-list .side-nav .workunit-list .unit-container .title .linkElement:hover .name{color:#0d8aff}.page-ut-gp-list .side-nav .workunit-list .unit-container .title .title-container{margin:auto 0}.page-ut-gp-list .side-nav .workunit-list .unit-container .title .ref{font-size:10px;color:#fff;text-transform:uppercase;font-weight:600;display:inline-block;background:#263c5c;padding:.2em .4em}.page-ut-gp-list .side-nav .workunit-list .unit-container .title .name{font-size:14px;color:#000;display:block;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.page-ut-gp-list .side-nav .workunit-list .unit>.sub-list{padding:0 0 0 7px;display:none}.page-ut-gp-list .side-nav .workunit-list .unit>.sub-list>.unit:last-child::before{height:24px}.page-ut-gp-list .side-nav .workunit-list .unit>.sub-list .toggle-unit{position:relative}.page-ut-gp-list .side-nav .workunit-list .unit>.sub-list .toggle-unit::before{right:20px;display:block;position:absolute;content:"";height:1px;left:0;top:20px;background:rgba(0,0,0,.3)}.page-ut-gp-list .side-nav .workunit-list .unit>.sub-list .unit{position:relative;margin-left:.6em}.page-ut-gp-list .side-nav .workunit-list .unit>.sub-list .unit::before{display:block;position:absolute;content:"";width:1px;height:100%;left:0;top:0;background:rgba(0,0,0,.3)}.page-ut-gp-list .side-nav .workunit-list .unit.active>.unit-container .title{background:rgba(0,0,0,.1)}.page-ut-gp-list .side-nav .workunit-list .unit.active>.unit-container .title .name{font-weight:600}.page-ut-gp-list .side-nav .workunit-list .unit.type-workunit .unit-container .ref{background:#0d8aff}.page-ut-gp-list .side-nav .workunit-list .unit.toggled>.sub-list{display:block}.digirisk-signature-container{max-width:800px;background:#fff;-webkit-box-shadow:0 0 40px 0 rgba(0,0,0,.1);box-shadow:0 0 40px 0 rgba(0,0,0,.1);margin:1.5em auto 0 auto;padding:2em;-webkit-box-sizing:border-box;box-sizing:border-box}.digirisk-signature-container *{-webkit-box-sizing:border-box;box-sizing:border-box}.digirisk-signature-container .signature .signature-element .wpeo-button.modal-signature-open{display:none}.digirisk-signature-container .signature .signature-element img{width:100%;height:auto;border:1px solid rgba(0,0,0,.4) !important}.ticketpublicarea .ticket-parentCategory{width:100%;height:100%}.ticketpublicarea .ticket-parentCategory .wpeo-button{width:100%;height:100%;padding:12px 14px}.ticketpublicarea .ticket-parentCategory .wpeo-button:hover{-webkit-box-shadow:inset 0 -4.6em rgba(255,255,255,.25);box-shadow:inset 0 -4.6em rgba(255,255,255,.25)}.ticketpublicarea .ticket-parentCategory .wpeo-button.button-yellow{border-color:#e88740;background:#e88740}.ticketpublicarea .ticket-parentCategory .wpeo-button.button-blue{border-color:#009cc2;background:#009cc2}.ticketpublicarea .ticket-parentCategory .wpeo-button.button-red{border-color:#c44b2a;background:#c44b2a}.ticketpublicarea .ticket-parentCategory.active .wpeo-button{border-color:#000 !important}.ticketpublicarea .ticket-subCategory{border:1px solid rgba(0,0,0,.2);padding:1em;text-align:center;width:100%;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.ticketpublicarea .ticket-subCategory:hover{cursor:pointer;background:rgba(0,0,0,.1)}.ticketpublicarea .ticket-subCategory.active{-webkit-box-shadow:inset 0 0 0px 3px #0d8aff;box-shadow:inset 0 0 0px 3px #0d8aff}.ticketpublicarea .ticket-subCategory .button-label{display:block;margin-top:.5em}.ticketpublicarea .form-registre .wpeo-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.ticketpublicarea .form-registre .wpeo-button>*{margin-top:auto;margin-bottom:auto}.ticketpublicarea .form-registre .wpeo-button .button-label{margin-left:.5em}.ticketpublicarea .tableforinputfields{margin-top:1em}.ticketpublicarea .tableforinputfields input{display:block;clear:both;width:100%;max-width:none;margin-bottom:1em}@media(max-width: 480px){.ticketpublicarea .tableforinputfields .inline-block{display:block}}.ticketpublicarea .tableforinputfields .inline-block input{display:inline-block}.ticketpublicarea .tableforinputfields .inline-block #options_digiriskdolibarr_ticket_date{max-width:80px}.page-ut-gp-list .organization{position:absolute;height:100%;top:0;padding-top:50px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none}.page-ut-gp-list .organization .side-nav-responsive{display:none}.page-ut-gp-list .organization #id-left{width:300px;padding-top:0}.page-ut-gp-list .organization .digirisk-wrap{padding:0 !important}.page-ut-gp-list .organization .navigation-container{max-height:1000px;overflow-y:auto}.page-ut-gp-list .organization .add-container{position:absolute;right:0;bottom:5px;opacity:0;pointer-events:none;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.page-ut-gp-list .organization .society-header{padding-top:27px;position:relative;padding-left:10px;padding-right:10px}.page-ut-gp-list .organization .society-header .title{font-weight:700}.page-ut-gp-list .organization .society-header .linkElement{line-height:1;border-bottom:1px solid rgba(0,0,0,.2);padding-bottom:10px;display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.page-ut-gp-list .organization .society-header:hover .add-container{opacity:1;pointer-events:all}.page-ut-gp-list .organization .toolbar{padding-left:10px;padding-right:10px}.page-ut-gp-list .organization .toolbar .toggle-plus,.page-ut-gp-list .organization .toolbar .toggle-minus{display:inline-block;padding:3px;-webkit-transition:all .2s ease-out;transition:all .2s ease-out;color:rgba(0,0,0,.6)}.page-ut-gp-list .organization .toolbar .toggle-plus:hover,.page-ut-gp-list .organization .toolbar .toggle-minus:hover{cursor:pointer;opacity:.6}.page-ut-gp-list .organization .workunit-list{padding-left:0}.page-ut-gp-list .organization .workunit-list ul,.page-ut-gp-list .organization .workunit-list li{list-style-type:none;margin:0}.page-ut-gp-list .organization .workunit-list .unit-container{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.page-ut-gp-list .organization .workunit-list .unit-container:hover .add-container{opacity:1;pointer-events:all}.page-ut-gp-list .organization .workunit-list .unit-container .toggle-unit{color:rgba(0,0,0,.6);line-height:40px;font-size:18px;min-width:30px;width:30px;text-align:center;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.page-ut-gp-list .organization .workunit-list .unit-container .toggle-unit:hover{cursor:pointer}.page-ut-gp-list .organization .workunit-list .unit-container .toggle-unit .toggle-icon{line-height:40px}.page-ut-gp-list .organization .workunit-list .unit-container .spacer{position:relative;min-width:30px;width:30px}.page-ut-gp-list .organization .workunit-list .unit-container .spacer::before{display:block;position:absolute;content:"";height:1px;left:0;right:10px;top:20px;background:rgba(0,0,0,.3)}.page-ut-gp-list .organization .workunit-list .unit-container .photodigiriskdolibarr{display:block;width:40px;min-width:40px;height:40px;position:relative;background:#fff;text-align:center;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.page-ut-gp-list .organization .workunit-list .unit-container .title{width:100%;padding-left:1em;display:-webkit-box;display:-ms-flexbox;display:flex}.page-ut-gp-list .organization .workunit-list .unit-container .title .title-container{margin:auto 0}.page-ut-gp-list .organization .workunit-list .unit-container .title .ref{font-size:10px;color:#fff;text-transform:uppercase;font-weight:600;display:inline-block;background:#263c5c;padding:.2em .4em}.page-ut-gp-list .organization .workunit-list .unit-container .title .name{font-size:14px;color:#000;display:block}.page-ut-gp-list .organization .workunit-list .unit>.unit-container{padding:4px 0 0 0;border:solid}.page-ut-gp-list .organization .workunit-list .unit>.sub-list{padding:0 0 0 7px;display:none}.page-ut-gp-list .organization .workunit-list .unit>.sub-list>.unit:last-child::before{height:24px}.page-ut-gp-list .organization .workunit-list .unit>.sub-list .toggle-unit{position:relative}.page-ut-gp-list .organization .workunit-list .unit>.sub-list .toggle-unit::before{right:20px;display:block;position:absolute;content:"";height:1px;left:0;top:20px;background:rgba(0,0,0,.3)}.page-ut-gp-list .organization .workunit-list .unit>.sub-list .unit{position:relative;margin-left:.6em}.page-ut-gp-list .organization .workunit-list .unit>.sub-list .unit::before{display:block;position:absolute;content:"";width:1px;height:100%;left:0;top:0;background:rgba(0,0,0,.3)}.page-ut-gp-list .organization .workunit-list .unit.active>.unit-container .title{background:rgba(0,0,0,.1)}.page-ut-gp-list .organization .workunit-list .unit.active>.unit-container .title .name{font-weight:600}.page-ut-gp-list .organization .workunit-list .unit.type-workunit .unit-container .ref{background:#0d8aff}.page-ut-gp-list .organization .workunit-list .unit.toggled>.sub-list{display:block}@media(max-width: 1200px){#id-container.page-ut-gp-list .organization{position:static;height:auto;padding:0 2em;background:none;border:0}#id-container.page-ut-gp-list .organization .side-nav-responsive{display:block;background:#263c5c;color:#fff;border-radius:6px;padding:.6em 1em;font-weight:600;font-size:14px;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}#id-container.page-ut-gp-list .organization .side-nav-responsive:hover{cursor:pointer;background:#446ba4}#id-container.page-ut-gp-list .organization #id-left{opacity:0;pointer-events:none;position:absolute;z-index:999;background:#efefef;border:1px solid rgba(0,0,0,.1);-webkit-box-shadow:0 0 40px 0 rgba(0,0,0,.1);box-shadow:0 0 40px 0 rgba(0,0,0,.1);-webkit-transition:all .2s ease-out;transition:all .2s ease-out;-webkit-transform:translateY(-10px);transform:translateY(-10px);max-height:500px;overflow-y:auto}#id-container.page-ut-gp-list .organization #id-left.active{opacity:1;pointer-events:auto;-webkit-transform:translateY(0px);transform:translateY(0px)}#id-container.page-ut-gp-list #id-right{padding-left:0}}.container{position:relative;min-height:500px}.container h3{position:absolute;border:0;margin:0;padding:20px 0;width:400px;pointer-events:none;margin-left:0px;width:100%}.route{position:relative;list-style-type:none;border:0;margin:0;padding:0;top:0px;margin-top:0px;max-height:100% !important;width:100%;background:#bcf;border-radius:2px;z-index:-1}.route span{position:absolute;top:26px;left:20px;-webkit-transform:scale(2);transform:scale(2);z-index:10;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.route span:hover{cursor:pointer;opacity:.6}.route .title{font-size:16px}.route .title .ref{position:static;top:auto;left:auto;-webkit-transform:none;transform:none;font-size:12px;border-radius:4px;padding:4px 6px;margin-right:.8em}.route .title.workunit{position:absolute;border:0;margin:0;padding:20px 0;width:400px;text-indent:60px;background:#ebebeb;border:1px solid rgba(0,0,0,.2);pointer-events:none}.route .title.workunit>.ref{background:#0d8aff;color:#fff}.route .title.groupment{position:absolute;border:0;margin:0;width:400px;text-indent:60px;background:#ebebeb;border:1px solid rgba(0,0,0,.2);pointer-events:none}.route .title.groupment>.ref{background:#263c5c;color:#fff}.first-title{margin-left:10px}.space{position:relative;list-style-type:none;border:0;margin:0;padding:0;margin-left:40px;width:30px;top:68px;padding-bottom:68px;height:100%;z-index:1}.space.space-0{margin-left:0}.table-cell-header{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:.5em}.table-cell-header>*{margin:auto 0}.table-cell-header .wpeo-button{margin:0}.risk-container .risk-edit{color:#263c5c}.risk-container .risk-edit:hover{cursor:pointer;text-decoration:underline}.risk-container .risk-edit-no-perm{color:#333}.risk-container .risk-edit-no-perm:hover{cursor:auto;text-decoration:none}.risk-category{text-align:center}.risk-description{width:25% !important}.risksign-container .risksign-edit{color:#263c5c}.risksign-container .risksign-edit:hover{cursor:pointer;text-decoration:underline}.risksign-content{width:100%}.risksign-add{min-width:40px;margin-left:.5em}.riskassessment-tasks .riskassessment-task-container,.riskassessment-task-container{min-width:430px;border:1px solid rgba(0,0,0,.1);background:rgba(0,0,0,.05);padding:.5em}.riskassessment-tasks{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.riskassessment-tasks .riskassessment-task-container{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.riskassessment-tasks .riskassessment-task-add-wrapper{min-width:calc(40px + .5em);margin:auto 0;text-align:center}.riskassessment-task-listing-wrapper .riskassessment-task-container{margin-bottom:.5em}.riskassessment-task-container .riskassessment-task-single{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box}.riskassessment-task-container .riskassessment-task-single *{-webkit-box-sizing:border-box;box-sizing:border-box}.riskassessment-task-container .riskassessment-task-single>*{margin-top:auto;margin-bottom:auto}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content{width:100%}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-author{display:inline-block;width:25px;min-width:25px;height:25px;line-height:25px;background:rgba(0,0,0,.5);overflow:hidden;text-transform:uppercase;font-size:14px;font-weight:600;border-radius:50%;vertical-align:sub;text-align:center}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-author a{color:#fff !important}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-author-label{word-break:break-all}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;font-size:14px}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data>*{margin:auto .2em}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-reference{color:#263c5c;font-weight:600}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-reference:hover{text-decoration:underline;cursor:pointer}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-count{background:rgba(0,0,0,.2);font-size:12px;border-radius:4px;padding:.2em .4em}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress{background:rgba(0,0,0,.2);font-size:12px;border-radius:4px;padding:.2em .4em;font-weight:700;color:rgba(0,0,0,.6)}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-0{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-1{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-2{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-3{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-4{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-5{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-6{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-7{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-8{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-9{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-10{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-11{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-12{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-13{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-14{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-15{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-16{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-17{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-18{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-19{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-20{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-21{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-22{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-23{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-24{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-25{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-26{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-27{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-28{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-29{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-30{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-31{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-32{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-33{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-34{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-35{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-36{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-37{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-38{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-39{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-40{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-41{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-42{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-43{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-44{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-45{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-46{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-47{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-48{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-49{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-50{background:#e05353;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-51{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-52{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-53{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-54{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-55{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-56{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-57{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-58{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-59{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-60{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-61{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-62{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-63{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-64{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-65{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-66{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-67{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-68{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-69{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-70{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-71{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-72{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-73{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-74{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-75{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-76{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-77{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-78{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-79{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-80{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-81{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-82{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-83{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-84{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-85{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-86{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-87{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-88{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-89{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-90{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-91{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-92{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-93{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-94{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-95{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-96{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-97{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-98{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-99{background:#e9ad4f;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-content .riskassessment-task-data .riskassessment-task-progress.progress-100{background:#47e58e;color:#fff}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-title{display:-webkit-box;display:-ms-flexbox;display:flex}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-title .riskassessment-task-progress-checkbox{margin:auto 0}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-title .riskassessment-task-progress-checkbox input{width:20px;height:20px}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-add{min-width:40px;margin-left:.5em}.riskassessment-task-container .riskassessment-task-single .riskassessment-task-delete{margin-right:-0.5em}.riskassessment-task-listing-wrapper{width:100%}.riskassessment-task-add{margin:5px}.riskassessment-task-list{margin:5px}.riskassessment-task-timespent-add-container{display:-webkit-box;display:-ms-flexbox;display:flex;background:rgba(0,0,0,.1);padding:10px;margin-bottom:25px}.riskassessment-task-timespent-add-container>*{margin:auto 5px}.riskassessment-task-timespent-add-container .timespent-comment{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.riskassessment-task-timespent-add-container .timespent-date{min-width:250px}.riskassessment-task-timespent-add-container .timespent-duration{max-width:100px}.riskassessment-task-timespent-add-container .timespent-add-button{min-width:30px}.riskassessment-task-timespent-add-container .timespent-add-button .wpeo-button{margin-top:20px}.riskassessment-task-timespent-container .riskassessment-task .riskassessment-task-container{background:#fff;border:0}td>.risk-evaluation-container{min-width:340px;border:1px solid rgba(0,0,0,.1);background:rgba(0,0,0,.05);padding:.5em;margin-bottom:.5em}.risk-evaluation-container .risk-evaluation-single{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box}.risk-evaluation-container .risk-evaluation-single *{-webkit-box-sizing:border-box;box-sizing:border-box}.risk-evaluation-container .risk-evaluation-single>*{margin-top:auto;margin-bottom:auto}.risk-evaluation-container .risk-evaluation-single .risk-evaluation-cotation{width:40px;min-width:40px;height:40px;line-height:40px}.risk-evaluation-container .risk-evaluation-single .risk-evaluation-photo{width:40px;min-width:40px;height:40px;line-height:40px;text-align:center;background:#ececec;color:rgba(0,0,0,.3);margin-right:.5em}.risk-evaluation-container .risk-evaluation-single .risk-evaluation-photo .photodigiriskdolibarr{width:100%;height:auto;background:#fff}.risk-evaluation-container .risk-evaluation-single .risk-evaluation-photo a,.risk-evaluation-container .risk-evaluation-single .risk-evaluation-photo .divphotoref{width:40px;min-width:40px;height:40px;position:relative;display:block}.risk-evaluation-container .risk-evaluation-single .risk-evaluation-photo a .photo,.risk-evaluation-container .risk-evaluation-single .risk-evaluation-photo .divphotoref .photo{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content{width:100%}.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content .risk-evaluation-author{display:inline-block;width:25px;min-width:25px;height:25px;line-height:25px;background:rgba(0,0,0,.5);overflow:hidden;text-transform:uppercase;font-size:14px;font-weight:600;border-radius:50%;vertical-align:sub;text-align:center}.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content .risk-evaluation-author a{color:#fff !important}.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content .risk-evaluation-data{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content .risk-evaluation-data>*{margin:auto .2em}.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content .risk-evaluation-data .risk-evaluation-reference{color:#263c5c;font-weight:600}.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content .risk-evaluation-data .risk-evaluation-reference:hover{text-decoration:underline;cursor:pointer}.risk-evaluation-container .risk-evaluation-single .risk-evaluation-content .risk-evaluation-data .risk-evaluation-count{background:rgba(0,0,0,.2);font-size:12px;border-radius:4px;padding:.2em .4em}.risk-evaluation-container .risk-evaluation-single .risk-evaluation-button{margin-left:.5em}.wpeo-table.evaluation-method{background:none !important}@media(max-width: 480px){.wpeo-table.evaluation-method .table-row.table-header{display:none}}.wpeo-table.evaluation-method .table-cell{margin:0;text-align:center;border:1px solid rgba(0,0,0,.1);padding:.8em .4em;position:relative}@media(max-width: 480px){.wpeo-table.evaluation-method .table-cell{width:100% !important}}.wpeo-table.evaluation-method .table-cell.can-select::after,.wpeo-table.evaluation-method .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .table-cell.risk-evaluation-cotation::after,.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .wpeo-table.evaluation-method .table-cell.risk-evaluation-cotation::after{display:block;content:"";position:absolute;top:.4em;right:.4em;bottom:.4em;left:.4em;background:rgba(0,0,0,.1);-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.wpeo-table.evaluation-method .table-cell.can-select:hover,.wpeo-table.evaluation-method .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .table-cell.risk-evaluation-cotation:hover,.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .wpeo-table.evaluation-method .table-cell.risk-evaluation-cotation:hover{cursor:pointer}.wpeo-table.evaluation-method .table-cell.can-select:hover::after,.wpeo-table.evaluation-method .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .table-cell.risk-evaluation-cotation:hover::after,.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .wpeo-table.evaluation-method .table-cell.risk-evaluation-cotation:hover::after{-webkit-transform:scale(1);transform:scale(1);opacity:1}.wpeo-table.evaluation-method .table-cell.can-select.active,.wpeo-table.evaluation-method .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .table-cell.active.risk-evaluation-cotation,.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .wpeo-table.evaluation-method .table-cell.active.risk-evaluation-cotation{color:#fff}.wpeo-table.evaluation-method .table-cell.can-select.active::after,.wpeo-table.evaluation-method .wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .table-cell.active.risk-evaluation-cotation::after,.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard .wpeo-table.evaluation-method .table-cell.active.risk-evaluation-cotation::after{-webkit-transform:scale(1) !important;transform:scale(1) !important;opacity:1 !important;background:#0d8aff;z-index:-1}.wpeo-table.evaluation-method .table-row>.table-cell:first-child{background:#263c5c;color:#fff}@media(max-width: 480px){.wpeo-table.evaluation-method .table-row>.table-cell:first-child{background:#263c5c}}.wpeo-table.evaluation-method .table-row:not(.header) .table-cell:nth-of-type(2).active::after{background:#0d8aff}.wpeo-table.evaluation-method .table-row:not(.header) .table-cell:nth-of-type(3).active::after{background:#0063c0}.wpeo-table.evaluation-method .table-row:not(.header) .table-cell:nth-of-type(4).active::after{background:#003b73}.wpeo-table.evaluation-method .table-row:not(.header) .table-cell:nth-of-type(5).active::after{background:#001427}.wpeo-table.evaluation-method .table-row:not(.header) .table-cell:nth-of-type(6).active::after{background:#000}.wpeo-modal[class*=modal-risk] .modal-container .title{display:block;font-weight:600;font-size:13px;margin-bottom:.6em;color:rgba(0,0,0,.8)}.wpeo-modal[class*=modal-risk] .modal-container .title required{font-size:18px;color:#0d8aff;vertical-align:text-top;line-height:.9}.wpeo-modal[class*=modal-risk] .modal-container .section-title{font-size:16px;color:rgba(0,0,0,.8);font-weight:600;margin-bottom:.6em;display:block}.wpeo-modal[class*=modal-risk] .modal-container .maxwidthdate{max-width:125px}.wpeo-modal[class*=modal-risk] .modal-container .risk-content{display:-webkit-box;display:-ms-flexbox;display:flex;padding-bottom:1em;margin-bottom:1em;border-bottom:1px solid rgba(0,0,0,.2)}.wpeo-modal[class*=modal-risk] .modal-container .risk-content .risk-category{margin-right:1.5em}.wpeo-modal[class*=modal-risk] .modal-container .risk-content .risk-category .dropdown-toggle::after{display:none}.wpeo-modal[class*=modal-risk] .modal-container .risk-content .risk-description{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.wpeo-modal[class*=modal-risk] .modal-container .risk-content .risk-description textarea{width:100%}.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container{padding-bottom:1em;margin-bottom:1em;border-bottom:1px solid rgba(0,0,0,.2)}.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-header{margin-bottom:1em}.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .cotation-standard{margin-right:1em}.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .risk-evaluation-photo img{max-width:50px}.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .risk-evaluation-comment{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-left:1em}.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container .risk-evaluation-content-wrapper .risk-evaluation-comment textarea{width:100%}.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container.advanced .risk-evaluation-content-wrapper{-ms-flex-wrap:wrap;flex-wrap:wrap}.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container.advanced .risk-evaluation-content{width:100%;margin-bottom:1em}.wpeo-modal[class*=modal-risk] .modal-container .risk-evaluation-container.advanced .risk-evaluation-photo{margin-right:1em}.wpeo-modal .modal-container .risk-evaluations-list .risk-evaluation>.risk-evaluation-container{display:-webkit-box;display:-ms-flexbox;display:flex}.wpeo-modal .modal-container .risk-evaluations-list .risk-evaluation>.risk-evaluation-container .risk-evaluation-single{width:100%}.wpeo-modal .modal-container .risk-evaluations-list .risk-evaluation>.risk-evaluation-container .risk-evaluation-single .risk-evaluation-reference{color:#333}.wpeo-modal .modal-container .risk-evaluations-list .risk-evaluation>.risk-evaluation-container .risk-evaluation-single .risk-evaluation-reference:hover{cursor:auto;text-decoration:none}.wpeo-modal .modal-container .risk-evaluations-list .risk-evaluation>.risk-evaluation-container .risk-evaluation-actions{margin-left:auto}.wpeo-modal[class*=modal-risksign] .modal-container .title{display:block;font-weight:600;font-size:13px;margin-bottom:.6em;color:rgba(0,0,0,.8)}.wpeo-modal[class*=modal-risksign] .modal-container .title required{font-size:18px;color:#0d8aff;vertical-align:text-top;line-height:.9}.wpeo-modal[class*=modal-risksign] .modal-container .section-title{font-size:16px;color:rgba(0,0,0,.8);font-weight:600;margin-bottom:.6em;display:block}.wpeo-modal[class*=modal-risksign] .modal-container .risksign-content{display:-webkit-box;display:-ms-flexbox;display:flex;padding-bottom:1em;margin-bottom:1em;border-bottom:1px solid rgba(0,0,0,.2)}.wpeo-modal[class*=modal-risksign] .modal-container .risksign-content .risksign-category{margin-right:1.5em}.wpeo-modal[class*=modal-risksign] .modal-container .risksign-content .risksign-category .dropdown-toggle::after{display:none}.wpeo-modal[class*=modal-risksign] .modal-container .risksign-content .risksign-description{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.wpeo-modal[class*=modal-risksign] .modal-container .risksign-content .risksign-description textarea{width:100%}.wpeo-modal[class*=modal-riskassessment-task] .modal-container .title{display:block;font-weight:600;font-size:13px;margin-bottom:.6em;color:rgba(0,0,0,.8)}.wpeo-modal[class*=modal-riskassessment-task] .modal-container .title required{font-size:18px;color:#0d8aff;vertical-align:text-top;line-height:.9}.wpeo-modal[class*=modal-riskassessment-task] .modal-container .section-title{font-size:16px;color:rgba(0,0,0,.8);font-weight:600;margin-bottom:.6em;display:block}.wpeo-modal[class*=modal-riskassessment-task] .modal-container .riskassessment-task-single{display:block !important}.wpeo-modal[class*=modal-riskassessment-task] .modal-container .riskassessment-task-container{display:-webkit-box;display:-ms-flexbox;display:flex;padding-bottom:1em;margin-bottom:1em;border-bottom:1px solid rgba(0,0,0,.2)}.wpeo-modal[class*=modal-riskassessment-task] .modal-container .riskassessment-task-container .riskassessment-task{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.wpeo-modal[class*=modal-riskassessment-task] .modal-container .riskassessment-task-container .riskassessment-task input{width:100%}.wpeo-modal .modal-container .riskassessment-task-list .riskassessment-task>.riskassessment-task-container{display:-webkit-box;display:-ms-flexbox;display:flex}.wpeo-modal .modal-container .riskassessment-task-list .riskassessment-task>.riskassessment-task-container .riskassessment-task-single{width:100%}.wpeo-modal .modal-container .riskassessment-task-list .riskassessment-task>.riskassessment-task-container .riskassessment-task-actions{margin-left:auto}#dialog-confirm-actionButtonImportSharedRisks .confirmtext{text-align:center;padding:.2em 0 .4em 0}#dialog-confirm-actionButtonImportSharedRisks .tagtable{border-collapse:collapse}#dialog-confirm-actionButtonImportSharedRisks .tagtr{border-bottom:1px solid rgba(0,0,0,.2)}#dialog-confirm-actionButtonImportSharedRisks .tagtd{padding:.3em 0}#dialog-confirm-actionButtonImportSharedRisks .tagtr>.tagtd:first-child{display:-webkit-box;display:-ms-flexbox;display:flex}#dialog-confirm-actionButtonImportSharedRisks .tagtr>.tagtd:first-child .importsharedrisk:not(.imported):not(.risk-evaluation-cotation){width:30%}#dialog-confirm-actionButtonImportSharedRisks .tagtr>.tagtd:first-child .importsharedrisk.imported{width:10%;text-align:center;font-size:12px}#dialog-confirm-actionButtonImportSharedRisks .tagtr>.tagtd:first-child .importsharedrisk img{float:left;margin-right:.4em;max-width:35px}#dialog-confirm-actionButtonImportSharedRisks .tagtr>.tagtd:first-child .importsharedrisk>span{display:block}#dialog-confirm-actionButtonImportSharedRisks .tagtr>.tagtd:first-child .importsharedrisk .importsharedrisk-ref{font-weight:600}#dialog-confirm-actionButtonImportSharedRisks .tagtr>.tagtd:last-child{vertical-align:middle}#dialog-confirm-actionButtonImportSharedRiskSigns .confirmtext{text-align:center;padding:.2em 0 .4em 0}#dialog-confirm-actionButtonImportSharedRiskSigns .tagtable{border-collapse:collapse}#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr{border-bottom:1px solid rgba(0,0,0,.2)}#dialog-confirm-actionButtonImportSharedRiskSigns .tagtd{padding:.3em 0}#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr>.tagtd:first-child{display:-webkit-box;display:-ms-flexbox;display:flex}#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr>.tagtd:first-child .importsharedrisksign:not(.imported){width:30%}#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr>.tagtd:first-child .importsharedrisksign.imported{width:10%;text-align:center;font-size:12px}#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr>.tagtd:first-child .importsharedrisksign img{float:left;margin-right:.4em;max-width:35px}#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr>.tagtd:first-child .importsharedrisksign>span{display:block}#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr>.tagtd:first-child .importsharedrisksign .importsharedrisksign-ref{font-weight:600}#dialog-confirm-actionButtonImportSharedRiskSigns .tagtr>.tagtd:last-child{vertical-align:middle}.wpeo-modal.modal-photo.modal-active{z-index:2014}.wpeo-modal.modal-photo .clickable-photo{border:5px solid #fff;-webkit-transition:all .2s ease-out;transition:all .2s ease-out;width:100%}.wpeo-modal.modal-photo .clickable-photo:hover{cursor:pointer}.wpeo-modal.modal-photo .clickable-photo:hover .photo-image .photo{opacity:.8}.wpeo-modal.modal-photo .clickable-photo .photo-image{position:relative;width:100%;max-width:120px;height:120px;margin:auto}.wpeo-modal.modal-photo .clickable-photo .photo-image .photo{position:absolute;top:0;left:0;width:100%;-o-object-fit:cover;object-fit:cover;max-width:none !important;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.wpeo-modal.modal-photo .clickable-photo .photo-image .clicked-photo-preview{position:absolute;display:inline-block;top:1em;right:1em;z-index:900;height:25px;line-height:25px;background:#fff;color:#0d8aff;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.wpeo-modal.modal-photo .clickable-photo .photo-image .clicked-photo-preview:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.wpeo-modal.modal-photo .clickable-photo .photo-image .clicked-photo-preview i{line-height:25px;font-size:14px}.wpeo-modal.modal-photo .clickable-photo .title{word-break:break-all}.wpeo-modal.modal-photo .formattachnewfile{padding-bottom:.5em}.wpeo-modal.modal-photo input[type=file]{border-bottom:0 !important}.evaluator-add-modal .time{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.risk-evaluation-add-modal .modal-active,.risk-evaluation-edit-modal .modal-active{z-index:1005}.risk-evaluation-add-modal .modal-container,.risk-evaluation-edit-modal .modal-container{max-height:750px}.wpeo-modal .modal-container ul,.wpeo-modal .modal-container li{margin:0;list-style-type:none;padding:0}@media(max-width: 1200px){#id-container .side-nav .vmenu{width:30px;padding-right:0 !important;overflow:hidden}#id-container .side-nav .vmenu .menu_titre .vmenu i{margin-right:2em}#id-container .side-nav .vmenu #blockvmenusearch .select2-container--default .select2-selection--single .select2-selection__placeholder::before{display:inline-block;content:"";font-family:"Font Awesome 5 Free";font-weight:600;margin-right:2em}}@media(max-width: 1200px){#id-container.page-ut-gp-list .side-nav{position:static;height:auto;padding:0 2em;background:none;border:0}#id-container.page-ut-gp-list .side-nav .side-nav-responsive{display:block;background:#263c5c;color:#fff;border-radius:6px;padding:.6em 1em;font-weight:600;font-size:14px;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}#id-container.page-ut-gp-list .side-nav .side-nav-responsive:hover{cursor:pointer;background:#446ba4}#id-container.page-ut-gp-list .side-nav #id-left{position:absolute;z-index:999;background:#efefef;border:1px solid rgba(0,0,0,.1);-webkit-box-shadow:0 0 40px 0 rgba(0,0,0,.1);box-shadow:0 0 40px 0 rgba(0,0,0,.1);-webkit-transition:all .2s ease-out;transition:all .2s ease-out;max-height:500px;overflow-y:auto}#id-container.page-ut-gp-list .side-nav #id-left:not(.active){opacity:0;pointer-events:none;-webkit-transform:translateY(-10px);transform:translateY(-10px)}#id-container.page-ut-gp-list .side-nav #id-left:not(.active) .wpeo-button{pointer-events:none}#id-container.page-ut-gp-list #id-right{padding-left:0}}@media(max-width: 1200px){td>.riskassessment-task-container{min-width:0}}@media(max-width: 1200px){td>.risk-evaluation-container{min-width:0}}.preview-photo{z-index:2100 !important}.imgTabTitle{max-height:32px !important}.dropdown-toggle::after{display:none}.favorite-photo{border:5px solid #0d8aff}tr.liste_titre th.liste_titre:not(.maxwidthsearch),tr.liste_titre td.liste_titre:not(.maxwidthsearch){opacity:1}@media only screen and (max-width: 1600px){div.fichecenter{width:100%;clear:both}div.fichecenterbis{margin-top:8px}div.fichethirdleft{float:none;width:auto;padding-bottom:6px}div.fichetwothirdright{float:none;width:auto;padding-bottom:6px}div.fichehalfleft{float:none;width:auto}div.fichehalfright{float:none;width:auto}div.fichehalfright{margin-top:10px}div.firstcolumn div.box{padding-right:0px}div.secondcolumn div.box{padding-left:0px}} \ No newline at end of file diff --git a/css/index.php b/css/index.php new file mode 100644 index 0000000..cd6990e --- /dev/null +++ b/css/index.php @@ -0,0 +1,2 @@ + classe de base pour un bouton + * .primary + * .light + * .dark + * .red + * .yellow + * .blue + * .green + * .transparent + * .bordered -> Change l'affichage du bouton. Fonctionne avec les même couleurs + * .strong -> texte en gras + * .uppercase -> texte en majuscule + * .float-right -> float right + * .float-left -> float left + * .square-30 -> bouton carré 30px + * .square-40 -> bouton carré 40px + * .square-50 -> bouton carré 50px + * .square-60 -> bouton carré 60px + * .margin -> margin haut et bas sur le bouton + * .radius-1 -> Arrondis les bords + * .radius-3 -> Arrondis les bords + * .radius-3 -> Arrondis les bords + * .rounded -> bouton en forme de rond + * .disable -> désactive les actions sur le bouton + * .size-small -> petite taille + * .size-large -> grande taille +--------------------------------------------------------------*/ + +.wpeo-button { + display: inline-block; + border: 0; + box-shadow: none; + background: none; + text-decoration: none; + padding: 6px 14px; + line-height: 1.4; + vertical-align: middle; + height: auto; + border-radius: 0; + transition: all 0.2s ease-out; + position: relative; + border-width: 3px; + border-style: solid; + font-size: 16px; + box-sizing: border-box; + + background: $color__primary; + border-color: $color__primary; + color: #fff; + + &:focus, &:visited { + color: #fff; + } + &:hover { + color: #fff; + box-shadow: inset 0 -2.6em rgba(255,255,255,0.25); + cursor: pointer; + text-decoration: none; + } + &:focus, &:active { + outline: none; + } +} + +/** Colors */ +@import "colors"; +@import "button-add"; + +// Icon +.wpeo-button { + .button-icon, span { + position: relative; + } + .button-icon ~ span { + margin-left: 10px; + } + span ~ .button-icon { + margin-left: 10px; + } +} + +// Strong +.wpeo-button.button-strong { + span { + font-weight: 800; + } +} + +// Uppercase +.wpeo-button.button-uppercase { + span { + text-transform: uppercase; + font-size: 14px; + } +} + +// Squared +.wpeo-button[class*="button-square-"] { + text-align: center; + overflow: hidden; + padding: 0; +} +.wpeo-button.button-square-30 { + width: 30px; + height: 30px; + line-height: 24px; // ne pas oublier les bordures : 6px + + .button-icon { + font-size: 12px; + line-height: 24px; + } +} +.wpeo-button.button-square-40 { + width: 40px; + height: 40px; + line-height: 34px; // ne pas oublier les bordures : 6px + + .button-icon { + line-height: 34px; + } +} +.wpeo-button.button-square-50 { + width: 50px; + height: 50px; + line-height: 44px; // ne pas oublier les bordures : 6px + + .button-icon { + line-height: 44px; + } +} +.wpeo-button.button-square-60 { + width: 60px; + height: 60px; + line-height: 54px; // ne pas oublier les bordures : 6px + + .button-icon { + line-height: 54px; + } +} + +// Floats +.wpeo-button { + &.button-float-left { + float: left; + } + &.button-float-right { + float: right; + } +} + +// margin +.wpeo-button.button-margin { + margin: 1em 0; +} + +// radius +.wpeo-button { + &.button-radius-1 { + border-radius: 2px; + } + &.button-radius-2 { + border-radius: 4px; + } + &.button-radius-3 { + border-radius: 6px; + } + &.button-rounded { + border-radius: 50%; + } +} + +// disable +.wpeo-button.button-disable { + background: $color__grey !important; + border-color: $color__grey !important; + color: rgba(0,0,0,0.4) !important; + pointer-events: none; + + &:hover { + box-shadow: none !important; + } + &.button-event { + pointer-events: all; + } +} + +// Taille +.wpeo-button.button-size-small { + font-size: 14px; + &.button-uppercase span { + font-size: 12px; + } +} +.wpeo-button.button-size-large { + font-size: 18px; + &.button-uppercase span { + font-size: 16px; + } +} diff --git a/css/scss/module/button/_colors.scss b/css/scss/module/button/_colors.scss new file mode 100644 index 0000000..7c0e446 --- /dev/null +++ b/css/scss/module/button/_colors.scss @@ -0,0 +1,138 @@ +// Bouton plein +.wpeo-button { + /* par défaut */ + background: $color__primary; + border-color: $color__primary; + color: $color__primary-text; + + &.button-main { + background: $color__primary; + border-color: $color__primary; + color: $color__primary-text; + } + &.button-secondary { + background: $color__secondary; + border-color: $color__secondary; + color: $color__secondary-text; + } + &.button-light { + background: #fff; + border-color: #fff; + color: $color__text-main; + &:hover { + box-shadow: inset 0 -2.6em rgba(0,0,0,0.1); + color: $color__text-main; + } + } + &.button-dark { + background: $color__dark; + border-color: $color__dark; + } + &.button-grey { + background: $color__grey; + border-color: $color__grey; + color: $color__text-main; + &:hover { + box-shadow: inset 0 -2.6em rgba(0,0,0,0.1); + color: $color__text-main; + } + } + &.button-red { + background: $color__red; + border-color: $color__red; + } + &.button-yellow { + background: $color__yellow; + border-color: $color__yellow; + } + &.button-blue { + background: $color__blue; + border-color: $color__blue; + } + &.button-green { + background: $color__green; + border-color: $color__green; + } + &.button-transparent { + background: transparent; + border-color: transparent; + color: rgba($color__text-main, 0.4); + &:hover { + color: $color__text-main; + box-shadow: inset 0 -2.6em rgba(255,255,255,0); + } + } +} + +// Bordered +.wpeo-button.button-bordered { + background: none; + /* Par defaut */ + border-color: $color__primary; + color: $color__primary; + + &.button-main { + border-color: $color__primary; + color: $color__primary; + &:hover { + box-shadow: inset 0 -2.6em $color__primary; + color: $color__primary-text; + } + } + &.button-light { + border-color: #fff; + color: #fff; + &:hover { + box-shadow: inset 0 -2.6em #fff; + color: $color__text-main; + } + } + &.button-dark { + border-color: $color__dark; + color: $color__dark; + &:hover { + box-shadow: inset 0 -2.6em $color__dark; + } + } + &.button-grey { + border-color: $color__grey; + color: darken($color__grey, 30%); + &:hover { + box-shadow: inset 0 -2.6em $color__grey; + color: $color__text-main; + } + } + &.button-red { + border-color: $color__red; + color: $color__red; + &:hover { + box-shadow: inset 0 -2.6em $color__red; + } + } + &.button-yellow { + border-color: $color__yellow; + color: $color__yellow; + &:hover { + box-shadow: inset 0 -2.6em $color__yellow; + } + } + &.button-blue { + border-color: $color__blue; + color: $color__blue; + &:hover { + box-shadow: inset 0 -2.6em $color__blue; + } + } + &.button-green { + border-color: $color__green; + color: $color__green; + &:hover { + box-shadow: inset 0 -2.6em $color__green; + } + } + + &:hover { + box-shadow: inset 0 -2.6em $color__primary; + color: #fff; + } +} diff --git a/css/scss/module/button/index.php b/css/scss/module/button/index.php new file mode 100644 index 0000000..cd6990e --- /dev/null +++ b/css/scss/module/button/index.php @@ -0,0 +1,2 @@ + classe de base du mobule + .grid -> Affichage en grille + .list -> Affichage en liste +--------------------------------------------------------------*/ + +.wpeo-dropdown { + position: relative; + display: inline-block; + + .dropdown-toggle { + display: inline-block; + + span ~ *[class*="icon"]{ + margin-left: 10px; + } + } + .dropdown-content { + opacity: 0; + pointer-events: none; + transform: translateY(-10px); + transition: all 0.2s ease-out; + position: absolute; + background: #fff; + z-index: 99; + border: 1px solid rgba(0,0,0,0.1); + box-shadow: 0 0 10px 0px rgba(0,0,0,0.3); + width: 220px; + padding: 0.6em; + } + &.dropdown-active .dropdown-content { + opacity: 1; + pointer-events: auto; + transform: translateY(0); + } + ul, li { + margin: 0; + list-style-type: none; + padding: 0; + } + .dropdown-item { + display: block; + color: rgba(0,0,0,0.7); + text-decoration: none; + + &::before { + display: none; + content: ''; + } + + .dropdown-result-title, .dropdown-result-subtitle { + display: block; + } + .dropdown-result-title { + font-size: 14px; + } + .dropdown-result-subtitle { + font-size: 12px; + color: rgba(0,0,0,0.5); + } + } +} + +/** Taille */ +.wpeo-dropdown { + &.dropdown-small .dropdown-content { + width: 60px; + } + &.dropdown-medium .dropdown-content { + width: 220px; + } + &.dropdown-large .dropdown-content { + width: 360px; + } +} + +/** Padding */ +.wpeo-dropdown { + &.dropdown-padding-0 .dropdown-content { + padding: 0; + } + &.dropdown-padding-1 .dropdown-content { + padding: 0.6em; + } + &.dropdown-padding-2 .dropdown-content { + padding: 1.2em; + } +} + +/** Alignement */ +.wpeo-dropdown { + &.dropdown-left .dropdown-content { + left: 0; + } + &.dropdown-right .dropdown-content { + right: 0; + } + + &.dropdown-horizontal.dropdown-left .dropdown-content { + left: 100%; + } + &.dropdown-horizontal.dropdown-right .dropdown-content { + right: 100%; + } +} + +/** Sens */ +.wpeo-dropdown { + &.dropdown-horizontal .dropdown-content { + top: 0; + width: auto !important; + display: flex; + flex-wrap: nowrap; + flex-direction: row; + } +} + +/** Disable */ +.wpeo-dropdown .dropdown-item { + &.dropdown-item-disable { + opacity: 0.6; + cursor: default !important; + pointer-events: none; + // Pointer events: none; seulement sur les enfants pour permettre l'utilisation d'une tooltip ou autre module. + > * { + } + } +} + +@import "list"; +@import "grid"; diff --git a/css/scss/module/dropdown/_grid.scss b/css/scss/module/dropdown/_grid.scss new file mode 100644 index 0000000..b601371 --- /dev/null +++ b/css/scss/module/dropdown/_grid.scss @@ -0,0 +1,11 @@ +.wpeo-dropdown.dropdown-grid { + .dropdown-item { + + img { + width: 100%; + height: auto; + display: block; + margin: 0; + } + } +} diff --git a/css/scss/module/dropdown/_list.scss b/css/scss/module/dropdown/_list.scss new file mode 100644 index 0000000..a2ca76a --- /dev/null +++ b/css/scss/module/dropdown/_list.scss @@ -0,0 +1,30 @@ +.wpeo-dropdown { + .dropdown-content { + .dropdown-item { + padding: 0.6em; + background: #fff; + transition: all 0.2s ease-out; + &:hover { + cursor: pointer; + background: rgba(0,0,0,0.1); + } + } + } +} + +.wpeo-dropdown.dropdown-list { + .dropdown-content { + text-align: left; + } + .dropdown-item { + &::after { + display: block; + content: ''; + clear: both; + } + img { + float: left; + margin-right: 0.4em; + } + } +} diff --git a/css/scss/module/dropdown/index.php b/css/scss/module/dropdown/index.php new file mode 100644 index 0000000..cd6990e --- /dev/null +++ b/css/scss/module/dropdown/index.php @@ -0,0 +1,2 @@ + .svg-inline--fa { + position: absolute; + right: 1em; + top: 50%; + transform: translateY(-50%); + } +} +.wpeo-form .form-element.disable { + .dropdown-toggle > .svg-inline--fa { + display: none; + } +} + +/* Compatibility Autocomplete */ +.wpeo-form .wpeo-autocomplete { + display: block; + width: 100%; + .autocomplete-label { + box-shadow: none; + padding: 0.74em 1em; + } +} +.wpeo-form.form-light { + .wpeo-autocomplete .autocomplete-label { + background: #fff; + &:hover { + background: $color__grey; + } + } +} diff --git a/css/scss/module/form/_radio.scss b/css/scss/module/form/_radio.scss new file mode 100644 index 0000000..7849110 --- /dev/null +++ b/css/scss/module/form/_radio.scss @@ -0,0 +1,53 @@ +/** Général */ +.wpeo-form .form-element { + input[type="radio"].form-field { + display: inline-block; + width: auto; + } +} + +/** Design */ +.wpeo-form .form-element { + input[type="radio"].form-field { + appearance: none; + border-radius: 50%; + width: 16px; + height: 16px; + padding: 0; + border: 0; + background: transparent !important; + border: 1px solid rgba(0,0,0,0.4); + transition: 0.2s all linear; + outline: none; + position: relative; + top: 2px; + + &::before { + display: none !important; + content: '' !important; + } + &:hover { + cursor: pointer; + border: 1px solid $color__primary; + box-shadow: 0 0 0 1px $color__primary inset; + background: transparent !important; + } + &:checked { + border: 1px solid $color__primary; + box-shadow: 0 0 0 4px $color__primary inset; + } + & + label { + text-transform: none; + font-weight: 400; + font-size: 14px; + display: inline-block; + margin-right: 1em; + &:hover { + cursor: pointer; + } + &:active { + outline: none; + } + } + } +} diff --git a/css/scss/module/gridlayout/_gridlayout.scss b/css/scss/module/gridlayout/_gridlayout.scss new file mode 100644 index 0000000..e73cb7c --- /dev/null +++ b/css/scss/module/gridlayout/_gridlayout.scss @@ -0,0 +1,120 @@ +/*-------------------------------------------------------------- + Module : Gridlayout + Version : 1.5.0 + + * Classes pour l'élément parent + .wpeo-gridlayout -> classe de base du mobule + .grid-X -> Définit le nombre de colonnes + .grid-margin-X -> Ajoute des marges au dessus et en dessous du parent + .grid-gap-X -> Définit les gouttières des colonnes + + * Classes pour les enfants direct + .gridw-X -> Change la largeur du bloc enfant (gridw-2 = 2 fois la taille initiale) + .gridh-X -> Change la hauteur du bloc enfant (gridh-2 = 2 fois la taille initiale) +--------------------------------------------------------------*/ + +.wpeo-gridlayout { + display: grid; + grid-gap: 1em 1em; + grid-template-columns: repeat( 4, 1fr ); +} + +/** Définition des tailles */ +.wpeo-gridlayout { + /** Du parent */ + @for $i from 1 through 6 { + &.grid-#{$i} { + grid-template-columns: repeat( $i, 1fr ); + } + + /** Chaque enfant peut modifier sa propre taille */ + @for $y from 1 through 6 { + @if ( $y <= $i ) { + &.grid-#{$i} > .gridw-#{$y} { + grid-column: auto / span $y; + + @if ( $y > 1 ) { + @media ( max-width: $media__medium ) { + grid-column: auto / span 2; + } + } + } + } + } + } +} + +/** Définition des hauteur des enfants */ +.wpeo-gridlayout { + @for $i from 1 through 6 { + > .gridh-#{$i} { + grid-row: auto / span $i; + + @media ( max-width: $media__medium ) { + grid-row: auto / span 1 !important; + } + } + } +} + +/** Marges */ +.wpeo-gridlayout { + @for $i from 0 through 6 { + &.grid-margin-#{$i} { + margin: #{$i}em 0; + } + } +} + +/** Gouttières */ +.wpeo-gridlayout { + @for $i from 0 through 6 { + &.grid-gap-#{$i} { + grid-gap: #{$i}em #{$i}em; + } + } +} + +/** Alignements */ +.wpeo-gridlayout { + .grid-align-center { + margin-left: auto; + margin-right: auto; + } + .grid-align-right { + margin-left: auto; + } + .grid-align-middle { + margin-top: auto; + margin-bottom: auto; + } + .grid-align-bottom { + margin-top: auto; + } +} + +/** Media queries */ +.wpeo-gridlayout:not(.dropdown-content) { + @for $i from 1 through 6 { + @if ( $i > 2 ) { + @media ( max-width: $media__medium ) { + &.grid-#{$i} { + grid-template-columns: repeat( 2, 1fr ) !important; + } + } + } + @if ( $i > 1 ) { + @media ( max-width: $media__small ) { + &.grid-#{$i} { + grid-template-columns: repeat( 1, 1fr ) !important; + } + } + } + + } + > * { + @media ( max-width: $media__small ) { + grid-column: auto / span 1 !important; + } + } +} diff --git a/css/scss/module/gridlayout/index.php b/css/scss/module/gridlayout/index.php new file mode 100644 index 0000000..cd6990e --- /dev/null +++ b/css/scss/module/gridlayout/index.php @@ -0,0 +1,2 @@ + classe de base pour le module + .loader-spin => icone de chargement +--------------------------------------------------------------*/ + +.wpeo-loader { + transition: all 0.2s ease-out; + pointer-events: none; + opacity: 0.5; + position: relative; + + .loader-spin { + position: absolute; + border: 3px solid #a7a7a7; + border-top: 3px solid darken($color__primary, 40%); + border-radius: 50%; + width: 20px; + height: 20px; + z-index: 99; + left: 50%; + top: 50%; + margin: 0 !important; + padding: 0 !important; + animation: loader-spin 1s ease-out infinite; + } +} + + + @keyframes loader-spin { + 0% { transform: translate(-50%, -50%) rotate(0deg); } + 100% { transform: translate(-50%, -50%) rotate(360deg); } + } diff --git a/css/scss/module/loader/index.php b/css/scss/module/loader/index.php new file mode 100644 index 0000000..cd6990e --- /dev/null +++ b/css/scss/module/loader/index.php @@ -0,0 +1,2 @@ + classe de base du mobule + .modalactive -> lance l'apparition de la modal + .no-modal-close -> désactive l'icone fermeture +--------------------------------------------------------------*/ + +.wpeo-modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1000; + background: rgba(39,42,53,.9); + opacity: 0; + pointer-events: none; + transition: all 0.2s ease-out; + + // Fix pointer event on textarea field. + textarea { + resize: none; + } + + &.modal-active { + opacity: 1; + pointer-events: auto; + z-index: 1002; + + .modal-container { + transform: translate(-50%, -50%); + } + textarea { + resize: both; + } + } + + // Fix 2eme niveau modal. + &.modal-active .modal-active { + z-index: 1003; + } + // Fix 3eme niveau modal. + &.modal-active .modal-active .modal-active { + z-index: 1004; + } + + &.modal-force-display { + .modal-close { + display: none; + } + } +} + +.wpeo-modal { + .modal-container { + position: absolute; + transition: all 0.2s ease-out; + width: 100%; + max-width: 860px; + height: 100%; + max-height: 560px; + background: #fff; + padding: 1em 0; + margin: auto; + top: 50%; + left: 50%; + transform: translate(-50%, -60%); + @media ( max-width: $media__small ) { + padding: 1em; + } + } + + .modal-container { + .modal-header { + height: 10%; + display: flex; + padding: 0 2em; + } + .modal-content { + height: 78%; + padding: 0 2em; + } + .modal-footer { + height: 12%; + padding: 0 2em; + } + } + .modal-container .modal-header { + .modal-title, .modal-close { + margin: auto 0; + } + .modal-title { + text-transform: uppercase; + font-size: 18px; + white-space: normal; + @media ( max-width: $media__medium ) { + font-size: 16px; + } + @media ( max-width: $media__small ) { + font-size: 14px; + } + } + .modal-close { + margin-left: auto; + color: rgba(0,0,0,0.3); + padding: 4px; + transition: all 0.2s ease-out; + &:hover { + cursor: pointer; + color: $color__primary; + } + } + } + .modal-container .modal-content { + overflow-y: auto; + font-size: 14px; + @media ( max-width: $media__small ) { + font-size: 12px; + } + } + .modal-container .modal-footer { + text-align: right; + padding-top: 1em; + &.left { + text-align: left; + } + &.center { + text-align: center; + } + } +} diff --git a/css/scss/module/modal/index.php b/css/scss/module/modal/index.php new file mode 100644 index 0000000..cd6990e --- /dev/null +++ b/css/scss/module/modal/index.php @@ -0,0 +1,2 @@ + classe de base du mobule +--------------------------------------------------------------*/ + +/* General */ +.wpeo-notice { + position: relative; + font-size: 1em; + padding: 1em; + overflow: hidden; + border-radius: 3px; + border: solid #eee 1px; + margin: 1em 0; + display: flex; + transition: all 0.2s ease-out; + align-items: center; + + &::before { + display: block; + font-family: 'Font Awesome 5 Free'; + font-weight: 900; + font-size: 24px; + } + .notice-content { + width: 100%; + padding: 0 1em; + color: rgba(0,0,0,0.6); + } + .notice-title { + font-size: 20px; + font-weight: 600; + color: rgba(0,0,0,0.9); + } + .notice-subtitle { + font-size: 14px; + } + .notice-close { + color: rgba(0,0,0,0.3); + transition: all 0.2s ease-out; + + &:hover { + color: $color__primary; + cursor: pointer; + } + } + ul { + padding: 0 0 0 1.4em; + margin: 0.4em 0; + } +} + +/** Status */ +@import "status"; diff --git a/css/scss/module/notice/_status.scss b/css/scss/module/notice/_status.scss new file mode 100644 index 0000000..ba3f02e --- /dev/null +++ b/css/scss/module/notice/_status.scss @@ -0,0 +1,55 @@ +/** Info */ +.wpeo-notice.notice-info { + border-left: solid $color__blue 6px; + color: $color__blue; + background: rgba( $color__blue, 0.05 ); + + &::before { + content: '\f05a'; + } + .notice-title, .notice-subtitle, a { + color: $color__blue; + } +} + +/** Error */ +.wpeo-notice.notice-error { + border-left: solid $color__red 6px; + color: $color__red; + background: rgba( $color__red, 0.05 ); + + &::before { + content: '\f057'; + } + .notice-title, .notice-subtitle, a { + color: $color__red; + } +} + +/** Warning */ +.wpeo-notice.notice-warning { + border-left: solid $color__yellow 6px; + color: $color__yellow; + background: rgba( $color__yellow, 0.05 ); + + &::before { + content: '\f071'; + } + .notice-title, .notice-subtitle, a { + color: $color__yellow; + } +} + +/** Success */ +.wpeo-notice.notice-success { + border-left: solid $color__green 6px; + color: $color__green; + background: rgba( $color__green, 0.05 ); + + &::before { + content: '\f058'; + } + .notice-title, .notice-subtitle, a { + color: $color__green; + } +} diff --git a/css/scss/module/notice/index.php b/css/scss/module/notice/index.php new file mode 100644 index 0000000..cd6990e --- /dev/null +++ b/css/scss/module/notice/index.php @@ -0,0 +1,2 @@ + classe de base du mobule +--------------------------------------------------------------*/ + + +@import "flex"; diff --git a/css/scss/module/table/index.php b/css/scss/module/table/index.php new file mode 100644 index 0000000..cd6990e --- /dev/null +++ b/css/scss/module/table/index.php @@ -0,0 +1,2 @@ + classe de base du mobule + .tooltip-primary -> tooltip sur fond rouge + .tooltip-light -> tooltip sur fond rouge + .tooltip-red -> tooltip sur fond rouge +--------------------------------------------------------------*/ + +.wpeo-tooltip { + display: block; + position: absolute; + bottom: 0; + left: 0; + opacity: 0; + pointer-events: none; + z-index: 99999; + white-space: nowrap; + background: $color__dark; + color: #fff; + border-radius: 6px; + font-size: 0.8rem; + padding: 0 1em; + height: 2.2em; + line-height: 2.2em; + + &::before { + display: block; + content: ''; + width: 0; + height: 0; + border-style: solid; + position: absolute; + } + &:focus { + outline: none; + } +} + +/* Couleurs */ +@mixin set-arrow-color($color) { + &.tooltip-top::before { + border-color: $color transparent transparent transparent; + } + &.tooltip-right::before { + border-color: transparent $color transparent transparent; + } + &.tooltip-bottom::before { + border-color: transparent transparent $color transparent; + } + &.tooltip-left::before { + border-color: transparent transparent transparent $color; + } +} + +.wpeo-tooltip { + &.tooltip-dark { + background: $color__dark; + @include set-arrow-color($color__dark); + } + &.tooltip-primary { + background: $color__primary; + @include set-arrow-color($color__primary); + } + &.tooltip-light { + background: $color__grey; + color: rgba(0,0,0,0.6); + @include set-arrow-color($color__grey); + } + &.tooltip-red { + background: $color__red; + @include set-arrow-color($color__red); + } +} + +/* Position de la fleche */ +.wpeo-tooltip { + &.tooltip-top::before { + border-width: 6px 6px 0 6px; + border-color: $color__dark transparent transparent transparent; + bottom: -6px; + left: 50%; + transform: translateX(-50%); + } + &.tooltip-right::before { + border-width: 6px 6px 6px 0; + border-color: transparent $color__dark transparent transparent; + top: 50%; + transform: translateY(-50%); + left: -6px; + } + &.tooltip-bottom::before { + border-width: 0 6px 6px 6px; + border-color: transparent transparent $color__dark transparent; + top: -6px; + left: 50%; + transform: translateX(-50%); + } + &.tooltip-left::before { + border-width: 6px 0 6px 6px; + border-color: transparent transparent transparent $color__dark; + top: 50%; + transform: translateY(-50%); + right: -6px; + } +} diff --git a/css/scss/module/tooltip/index.php b/css/scss/module/tooltip/index.php new file mode 100644 index 0000000..cd6990e --- /dev/null +++ b/css/scss/module/tooltip/index.php @@ -0,0 +1,2 @@ +: px; + // margin-: px; + //} + div.fichecenter { + width: 100%; + clear: both; /* This is to have div fichecenter that are true rectangles */ + } + div.fichecenterbis { + margin-top: 8px; + } + div.fichethirdleft { + float: none; + width: auto; + padding-bottom: 6px; + } + div.fichetwothirdright { + float: none; + width: auto; + padding-bottom: 6px; + } + div.fichehalfleft { + float: none; + width: auto; + } + div.fichehalfright { + float: none; + width: auto; + } + div.fichehalfright { + margin-top: 10px; + } + div.firstcolumn div.box { + padding-right: 0px; + } + div.secondcolumn div.box { + padding-left: 0px; + } +} diff --git a/css/scss/table/_table.scss b/css/scss/table/_table.scss new file mode 100644 index 0000000..24e4fd0 --- /dev/null +++ b/css/scss/table/_table.scss @@ -0,0 +1,6 @@ +@import "general"; +@import "risk"; +@import "risksign"; +@import "riskassessment-task"; +@import "evaluation"; +@import "evaluation-method"; diff --git a/css/scss/table/index.php b/css/scss/table/index.php new file mode 100644 index 0000000..cd6990e --- /dev/null +++ b/css/scss/table/index.php @@ -0,0 +1,2 @@ + Date: Thu, 11 Aug 2022 09:38:36 +0200 Subject: [PATCH 04/66] [Meeting] add: attendants & signature --- class/dolimeetsignature.class.php | 26 +- class/meeting.class.php | 3 + .../dolimeet_signature_action_view.tpl.php | 57 +- .../signature/dolimeet_signature_view.tpl.php | 2 +- css/dolimeet.css.php | 6 +- dolimeet.js.php | 0 js/dolimeet.js.php | 713 ++++++++++++++++++ js/signature-pad.min.js | 1 + lib/dolimeet_function.lib.php | 315 +++----- lib/dolimeet_meeting.lib.php | 6 +- meeting_attendants.php | 371 +++++---- meeting_card.php | 35 +- sql/llx_dolimeet_meeting.sql | 1 + .../llx_dolimeet_object_signature.key.sql | 4 +- 14 files changed, 1071 insertions(+), 469 deletions(-) delete mode 100644 dolimeet.js.php create mode 100644 js/dolimeet.js.php create mode 100644 js/signature-pad.min.js diff --git a/class/dolimeetsignature.class.php b/class/dolimeetsignature.class.php index 79affbf..6ebcc2f 100644 --- a/class/dolimeetsignature.class.php +++ b/class/dolimeetsignature.class.php @@ -17,8 +17,8 @@ /** * \file class/digirisksignature.class.php - * \ingroup digiriskdolibarr - * \brief This file is a CRUD class file for DigiriskSignature (Create/Read/Update/Delete) + * \ingroup dolimeet + * \brief This file is a CRUD class file for DolimeetSignature (Create/Read/Update/Delete) */ // Put here all includes required by your class file @@ -26,9 +26,9 @@ require_once DOL_DOCUMENT_ROOT . '/core/lib/ticket.lib.php'; /** - * Class for DigiriskSignature + * Class for DolimeetSignature */ -class DigiriskSignature extends CommonObject +class DolimeetSignature extends CommonObject { /** * @var DoliDB Database handler. @@ -43,7 +43,7 @@ class DigiriskSignature extends CommonObject /** * @var string ID of module. */ - public $module = 'digiriskdolibarr'; + public $module = 'dolimeet'; /** * @var string ID to identify managed object. @@ -53,7 +53,7 @@ class DigiriskSignature extends CommonObject /** * @var string Name of table without prefix where object is stored. This is also the key used for extrafields management. */ - public $table_element = 'digiriskdolibarr_object_signature'; + public $table_element = 'dolimeet_object_signature'; /** * @var int Does this object support multicompany module ? @@ -69,7 +69,7 @@ class DigiriskSignature extends CommonObject /** * @var string String with name of icon for digirisksignature. Must be the part after the 'object_' into object_digirisksignature.png */ - public $picto = 'object_signature@digiriskdolibarr'; + public $picto = 'object_signature@dolimeet'; /** * @var string Label status of const. @@ -161,7 +161,7 @@ public function __construct(DoliDB $db) if (empty($conf->multicompany->enabled) && isset($this->fields['entity'])) $this->fields['entity']['enabled'] = 0; // Example to show how to set values of fields definition dynamically - /*if ($user->rights->digiriskdolibarr->digirisksignature->read) { + /*if ($user->rights->dolimeet->digirisksignature->read) { $this->fields['myfield']['visible'] = 1; $this->fields['myfield']['noteditable'] = 0; }*/ @@ -327,7 +327,7 @@ public function delete(User $user, $notrigger = false) */ public function setRegistered($user, $notrigger = 0) { - return $this->setStatusCommon($user, self::STATUS_REGISTERED, $notrigger, 'DIGIRISKSIGNATURE_REGISTERED'); + return $this->setStatusCommon($user, self::STATUS_REGISTERED, $notrigger, 'DOLIMEETSIGNATURE_REGISTERED'); } /** @@ -339,7 +339,7 @@ public function setRegistered($user, $notrigger = 0) */ public function setPending($user, $notrigger = 0) { - return $this->setStatusCommon($user, self::STATUS_PENDING_SIGNATURE, $notrigger, 'DIGIRISKSIGNATURE_PENDING_SIGNATURE'); + return $this->setStatusCommon($user, self::STATUS_PENDING_SIGNATURE, $notrigger, 'DOLIMEETSIGNATURE_PENDING_SIGNATURE'); } /** @@ -351,7 +351,7 @@ public function setPending($user, $notrigger = 0) */ public function setSigned($user, $notrigger = 0) { - return $this->setStatusCommon($user, self::STATUS_SIGNED, $notrigger, 'DIGIRISKSIGNATURE_SIGNED'); + return $this->setStatusCommon($user, self::STATUS_SIGNED, $notrigger, 'DOLIMEETSIGNATURE_SIGNED'); } /** @@ -363,7 +363,7 @@ public function setSigned($user, $notrigger = 0) */ public function setAbsent($user, $notrigger = 0) { - return $this->setStatusCommon($user, self::STATUS_ABSENT, $notrigger, 'DIGIRISKSIGNATURE_ABSENT'); + return $this->setStatusCommon($user, self::STATUS_ABSENT, $notrigger, 'DOLIMEETSIGNATURE_ABSENT'); } /** @@ -375,7 +375,7 @@ public function setAbsent($user, $notrigger = 0) */ public function setDeleted($user, $notrigger = 0) { - return $this->setStatusCommon($user, self::STATUS_DELETED, $notrigger, 'DIGIRISKSIGNATURE_DELETED'); + return $this->setStatusCommon($user, self::STATUS_DELETED, $notrigger, 'DOLIMEETSIGNATURE_DELETED'); } /** diff --git a/class/meeting.class.php b/class/meeting.class.php index d4db47e..9746ec9 100644 --- a/class/meeting.class.php +++ b/class/meeting.class.php @@ -23,6 +23,7 @@ // Put here all includes required by your class file require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; +require_once __DIR__ . '/dolimeetsignature.class.php'; /** * Class for Meeting @@ -115,6 +116,7 @@ class Meeting extends CommonObject 'content' => array('type'=>'textarea', 'label'=>'Content', 'enabled'=>'1', 'position'=>120, 'notnull'=>1, 'visible'=>3,), 'document_url' => array('type'=>'varchar(255)', 'label'=>'DocumentUrl', 'enabled'=>'1', 'position'=>150, 'notnull'=>0, 'visible'=>0,), 'fk_project' => array('type'=>'integer', 'label'=>'Project', 'enabled'=>'1', 'position'=>175, 'notnull'=>1, 'visible'=>1,), + 'fk_soc' => array('type'=>'integer', 'label'=>'Thirdparty', 'enabled'=>'1', 'position'=>175, 'notnull'=>1, 'visible'=>1,), 'fk_user_creat' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserAuthor', 'enabled'=>'1', 'position'=>180, 'notnull'=>1, 'visible'=>-2, 'foreignkey'=>'user.rowid',), 'fk_user_modif' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'UserModif', 'enabled'=>'1', 'position'=>190, 'notnull'=>-1, 'visible'=>0,), ); @@ -134,6 +136,7 @@ class Meeting extends CommonObject public $content; public $document_url; public $fk_project; + public $fk_soc; public $fk_user_creat; public $fk_user_modif; public $label; diff --git a/core/tpl/signature/dolimeet_signature_action_view.tpl.php b/core/tpl/signature/dolimeet_signature_action_view.tpl.php index c85285b..819e74c 100644 --- a/core/tpl/signature/dolimeet_signature_action_view.tpl.php +++ b/core/tpl/signature/dolimeet_signature_action_view.tpl.php @@ -1,36 +1,31 @@
+
diff --git a/core/tpl/signature/dolimeet_signature_view.tpl.php b/core/tpl/signature/dolimeet_signature_view.tpl.php index e0a45a0..413d6e3 100644 --- a/core/tpl/signature/dolimeet_signature_view.tpl.php +++ b/core/tpl/signature/dolimeet_signature_view.tpl.php @@ -1,4 +1,4 @@ -signature) && ($object->status == 2 || $element->signature == $langs->transnoentities("FileGenerated"))) : ?> +signature)) : ?> diff --git a/css/dolimeet.css.php b/css/dolimeet.css.php index fd74e22..4b98833 100644 --- a/css/dolimeet.css.php +++ b/css/dolimeet.css.php @@ -17,9 +17,9 @@ */ /** - * \file css/digiriskdolibarr.css.php - * \ingroup digiriskdolibarr - * \brief CSS file for module DigiriskDolibarr. + * \file css/dolimeet.css.php + * \ingroup dolimeet + * \brief CSS file for module DoliMeet. */ //if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled because need to load personalized language diff --git a/dolimeet.js.php b/dolimeet.js.php deleted file mode 100644 index e69de29..0000000 diff --git a/js/dolimeet.js.php b/js/dolimeet.js.php new file mode 100644 index 0000000..2e96318 --- /dev/null +++ b/js/dolimeet.js.php @@ -0,0 +1,713 @@ +/* Copyright (C) 2021 EOXIA + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Library javascript to enable Browser notifications + */ + 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { $i--; $j--; } +if ( ! $res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1)) . "/main.inc.php")) $res = @include substr($tmp, 0, ($i + 1)) . "/main.inc.php"; +if ( ! $res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1)) . "/../main.inc.php")) $res = @include substr($tmp, 0, ($i + 1)) . "/../main.inc.php"; +// Try main.inc.php using relative path +if ( ! $res && file_exists("../../main.inc.php")) $res = @include "../../main.inc.php"; +if ( ! $res && file_exists("../../../main.inc.php")) $res = @include "../../../main.inc.php"; +if ( ! $res) die("Include of main fails"); + +// Define javascript type +top_httphead('text/javascript; charset=UTF-8'); +// Important: Following code is to avoid page request by browser and PHP CPU at each Dolibarr page access. +if (empty($dolibarr_nocache)) { + header('Cache-Control: max-age=10800, public, must-revalidate'); +} else { + header('Cache-Control: no-cache'); +} +?> + +/** + * \file js/digiriskdolibarr.js.php + * \ingroup digiriskdolibarr + * \brief JavaScript file for module DigiriskDolibarr. + */ + +/* Javascript library of module DigiriskDolibarr */ + +'use strict'; +/** + * @namespace EO_Framework_Init + * + * @author Eoxia + * @copyright 2015-2021 Eoxia + */ + +if ( ! window.eoxiaJS ) { + /** + * [eoxiaJS description] + * + * @memberof EO_Framework_Init + * + * @type {Object} + */ + window.eoxiaJS = {}; + + /** + * [scriptsLoaded description] + * + * @memberof EO_Framework_Init + * + * @type {Boolean} + */ + window.eoxiaJS.scriptsLoaded = false; +} + +if ( ! window.eoxiaJS.scriptsLoaded ) { + /** + * [description] + * + * @memberof EO_Framework_Init + * + * @returns {void} [description] + */ + window.eoxiaJS.init = function() { + window.eoxiaJS.load_list_script(); + }; + + /** + * [description] + * + * @memberof EO_Framework_Init + * + * @returns {void} [description] + */ + window.eoxiaJS.load_list_script = function() { + if ( ! window.eoxiaJS.scriptsLoaded) { + var key = undefined, slug = undefined; + for ( key in window.eoxiaJS ) { + + if ( window.eoxiaJS[key].init ) { + window.eoxiaJS[key].init(); + } + + for ( slug in window.eoxiaJS[key] ) { + + if ( window.eoxiaJS[key] && window.eoxiaJS[key][slug] && window.eoxiaJS[key][slug].init ) { + window.eoxiaJS[key][slug].init(); + } + + } + } + + window.eoxiaJS.scriptsLoaded = true; + } + }; + + /** + * [description] + * + * @memberof EO_Framework_Init + * + * @returns {void} [description] + */ + window.eoxiaJS.refresh = function() { + var key = undefined; + var slug = undefined; + for ( key in window.eoxiaJS ) { + if ( window.eoxiaJS[key].refresh ) { + window.eoxiaJS[key].refresh(); + } + + for ( slug in window.eoxiaJS[key] ) { + + if ( window.eoxiaJS[key] && window.eoxiaJS[key][slug] && window.eoxiaJS[key][slug].refresh ) { + window.eoxiaJS[key][slug].refresh(); + } + } + } + }; + + $( document ).ready( window.eoxiaJS.init ); +} + +/** + * Initialise l'objet "modal" ainsi que la méthode "init" obligatoire pour la bibliothèque EoxiaJS. + * + * @since 1.0.0 + * @version 1.0.0 + */ +window.eoxiaJS.modal = {}; + +/** + * La méthode appelée automatiquement par la bibliothèque EoxiaJS. + * + * @since 1.0.0 + * @version 1.0.0 + * + * @return {void} + */ +window.eoxiaJS.modal.init = function() { + window.eoxiaJS.modal.event(); +}; + +/** + * La méthode contenant tous les événements pour la modal. + * + * @since 1.0.0 + * @version 1.0.0 + * + * @return {void} + */ +window.eoxiaJS.modal.event = function() { + $( document ).on( 'click', '.modal-close', window.eoxiaJS.modal.closeModal ); + $( document ).on( 'click', '.modal-open', window.eoxiaJS.modal.openModal ); + $( document ).on( 'click', '.modal-refresh', window.eoxiaJS.modal.refreshModal ); +}; + +/** + * Open Modal. + * + * @since 1.0.0 + * @version 1.0.0 + * + * @param {MouseEvent} event Les attributs lors du clic. + * @return {void} + */ +window.eoxiaJS.modal.openModal = function ( event ) { + let idSelected = $(this).attr('value'); + if (document.URL.match(/#/)) { + var urlWithoutTag = document.URL.split(/#/)[0] + } else { + var urlWithoutTag = document.URL + } + history.pushState({ path: document.URL}, '', urlWithoutTag); + + // Open modal evaluation. + if ($(this).hasClass('risk-evaluation-add')) { + $('#risk_evaluation_add'+idSelected).addClass('modal-active'); + $('.risk-evaluation-create'+idSelected).attr('value', idSelected); + } else if ($(this).hasClass('risk-evaluation-list')) { + $('#risk_evaluation_list' + idSelected).addClass('modal-active'); + } else if ($(this).hasClass('open-media-gallery')) { + $('#media_gallery').addClass('modal-active'); + $('#media_gallery').attr('value', idSelected); + $('#media_gallery').find('.type-from').attr('value', $(this).find('.type-from').val()); + $('#media_gallery').find('.wpeo-button').attr('value', idSelected); + $('#media_gallery').find('.clicked-photo').attr('style', '') + $('#media_gallery').find('.clicked-photo').removeClass('clicked-photo') + } else if ($(this).hasClass('risk-evaluation-edit')) { + $('#risk_evaluation_edit' + idSelected).addClass('modal-active'); + } else if ($(this).hasClass('evaluator-add')) { + $('#evaluator_add' + idSelected).addClass('modal-active'); + } else if ($(this).hasClass('open-medias-linked') && $(this).hasClass('digirisk-element')) { + $('#digirisk_element_medias_modal_' + idSelected).addClass('modal-active'); + } + + // Open modal risk. + if ($(this).hasClass('risk-add')) { + $('#risk_add' + idSelected).addClass('modal-active'); + } + if ($(this).hasClass('risk-edit')) { + $('#risk_edit' + idSelected).addClass('modal-active'); + } + + // Open modal riskassessment task. + if ($(this).hasClass('riskassessment-task-add')) { + $('#risk_assessment_task_add' + idSelected).addClass('modal-active'); + } + if ($(this).hasClass('riskassessment-task-edit')) { + $('#risk_assessment_task_edit' + idSelected).addClass('modal-active'); + } + if ($(this).hasClass('riskassessment-task-list')) { + $('#risk_assessment_task_list' + idSelected).addClass('modal-active'); + } + if ($(this).hasClass('riskassessment-task-timespent-edit')) { + $('#risk_assessment_task_timespent_edit' + idSelected).addClass('modal-active'); + } + + // Open modal risksign. + if ($(this).hasClass('risksign-add')) { + $('#risksign_add' + idSelected).addClass('modal-active'); + } + if ($(this).hasClass('risksign-edit')) { + $('#risksign_edit' + idSelected).addClass('modal-active'); + } + if ($(this).hasClass('risksign-photo')) { + $(this).closest('.risksign-photo-container').find('#risksign_photo' + idSelected).addClass('modal-active'); + } + + // Open modal signature. + if ($(this).hasClass('modal-signature-open')) { + $('#modal-signature' + idSelected).addClass('modal-active'); + window.eoxiaJS.signature.modalSignatureOpened( $(this) ); + } + + $('.notice').addClass('hidden'); +}; + +/** + * Close Modal. + * + * @since 1.0.0 + * @version 1.0.0 + * + * @param {MouseEvent} event Les attributs lors du clic. + * @return {void} + */ +window.eoxiaJS.modal.closeModal = function ( event ) { + $(this).closest('.modal-active').removeClass('modal-active') + $('.clicked-photo').attr('style', ''); + $('.clicked-photo').removeClass('clicked-photo'); + $('.notice').addClass('hidden'); +}; + +/** + * Refresh Modal. + * + * @since 1.0.0 + * @version 1.0.0 + * + * @param {MouseEvent} event Les attributs lors du clic. + * @return {void} + */ +window.eoxiaJS.modal.refreshModal = function ( event ) { + window.location.reload(); +}; + + +// Dropdown +/** + * [dropdown description] + * + * @memberof EO_Framework_Dropdown + * + * @type {Object} + */ +window.eoxiaJS.dropdown = {}; + +/** + * [description] + * + * @memberof EO_Framework_Dropdown + * + * @returns {void} [description] + */ +window.eoxiaJS.dropdown.init = function() { + window.eoxiaJS.dropdown.event(); +}; + +/** + * [description] + * + * @memberof EO_Framework_Dropdown + * + * @returns {void} [description] + */ +window.eoxiaJS.dropdown.event = function() { + $( document ).on( 'keyup', window.eoxiaJS.dropdown.keyup ); + $( document ).on( 'keypress', window.eoxiaJS.dropdown.keypress ); + $( document ).on( 'click', '.wpeo-dropdown:not(.dropdown-active) .dropdown-toggle:not(.disabled)', window.eoxiaJS.dropdown.open ); + $( document ).on( 'click', '.wpeo-dropdown.dropdown-active .dropdown-content', function(e) { e.stopPropagation() } ); + $( document ).on( 'click', '.wpeo-dropdown.dropdown-active:not(.dropdown-force-display) .dropdown-content .dropdown-item', window.eoxiaJS.dropdown.close ); + $( document ).on( 'click', '.wpeo-dropdown.dropdown-active', function ( e ) { window.eoxiaJS.dropdown.close( e ); e.stopPropagation(); } ); + $( document ).on( 'click', 'body', window.eoxiaJS.dropdown.close ); +}; + +/** + * [description] + * + * @memberof EO_Framework_Dropdown + * + * @param {void} event [description] + * @returns {void} [description] + */ +window.eoxiaJS.dropdown.keyup = function( event ) { + if ( 27 === event.keyCode ) { + window.eoxiaJS.dropdown.close(); + } +} + +/** + * Do a barrel roll! + * + * @memberof EO_Framework_Dropdown + * + * @param {void} event [description] + * @returns {void} [description] + */ +window.eoxiaJS.dropdown.keypress = function( event ) { + + let currentString = localStorage.currentString ? localStorage.currentString : '' + let keypressNumber = localStorage.keypressNumber ? +localStorage.keypressNumber : 0 + + currentString += event.keyCode + keypressNumber += +1 + + localStorage.setItem('currentString', currentString) + localStorage.setItem('keypressNumber', keypressNumber) + + if (keypressNumber > 9) { + localStorage.setItem('currentString', '') + localStorage.setItem('keypressNumber', 0) + } + + if (currentString === '9897114114101108114111108108') { + var a="-webkit-", + b='transform:rotate(1turn);', + c='transition:4s;'; + + document.head.innerHTML += '