diff --git a/client/src/app-components/ticket-viewer.js b/client/src/app-components/ticket-viewer.js index 14476b213..2721b3f7a 100644 --- a/client/src/app-components/ticket-viewer.js +++ b/client/src/app-components/ticket-viewer.js @@ -112,9 +112,10 @@ class TicketViewer extends React.Component {
- + {ticket.closed ? + : i18n('OPENED')}
@@ -192,7 +193,10 @@ class TicketViewer extends React.Component {
{(this.props.allowAttachments) ? : null} - {i18n('RESPOND_TICKET')} +
+ {i18n('RESPOND_TICKET')} + +
{(this.state.commentError) ? this.renderCommentError() : null} @@ -354,6 +358,15 @@ class TicketViewer extends React.Component { this.props.onChange(); } } + onCloseTicketClick(event){ + event.preventDefault(); + API.call({ + path: '/ticket/close', + data: { + ticketNumber: this.props.ticket.ticketNumber + } + }).then(this.onTicketModification.bind(this)); + } } export default connect((store) => { diff --git a/client/src/app-components/ticket-viewer.scss b/client/src/app-components/ticket-viewer.scss index 2a6658ed1..4ba5f7e9a 100644 --- a/client/src/app-components/ticket-viewer.scss +++ b/client/src/app-components/ticket-viewer.scss @@ -76,5 +76,11 @@ padding: 20px 0 0 20px; text-align: left; } + &-buttons { + display: flex; + justify-content: space-between; + align-items: center; + } } -} \ No newline at end of file + +} diff --git a/client/src/data/languages/cn.js b/client/src/data/languages/cn.js index 9c75a2cf7..e07f443dd 100644 --- a/client/src/data/languages/cn.js +++ b/client/src/data/languages/cn.js @@ -29,6 +29,7 @@ export default { 'DATE': '日期', 'RESPOND': '響應', 'RESPOND_TICKET': '響應故障單', + 'CLOSE_TICKET': '關門票', 'NO_ATTACHMENT': '沒有文件附件', 'STAFF': '員工', 'CUSTOMER': '顧客', diff --git a/client/src/data/languages/de.js b/client/src/data/languages/de.js index 63fe38f46..442e8a577 100644 --- a/client/src/data/languages/de.js +++ b/client/src/data/languages/de.js @@ -29,6 +29,7 @@ export default { 'DATE': 'Datum', 'RESPOND': 'Antworten', 'RESPOND_TICKET': 'Ticket beantworten', + 'CLOSE_TICKET': 'Ticket schließen', 'NO_ATTACHMENT': 'Keine Dateianlage', 'STAFF': 'Personal', 'CUSTOMER': 'Kunde', diff --git a/client/src/data/languages/en.js b/client/src/data/languages/en.js index 236a33061..503ce6f56 100644 --- a/client/src/data/languages/en.js +++ b/client/src/data/languages/en.js @@ -29,6 +29,7 @@ export default { 'DATE': 'Date', 'RESPOND': 'Respond', 'RESPOND_TICKET': 'Respond Ticket', + 'CLOSE_TICKET': 'Close ticket', 'NO_ATTACHMENT': 'No file attachment', 'STAFF': 'Staff', 'CUSTOMER': 'Customer', diff --git a/client/src/data/languages/es.js b/client/src/data/languages/es.js index 080de7e8a..55439c6f2 100644 --- a/client/src/data/languages/es.js +++ b/client/src/data/languages/es.js @@ -29,6 +29,7 @@ export default { 'DATE': 'Fecha', 'RESPOND': 'Responder', 'RESPOND_TICKET': 'Responder Ticket', + 'CLOSE_TICKET': 'Cerrar Ticket', 'NO_ATTACHMENT': 'No hay archivo adjunto', 'STAFF': 'Staff', 'CUSTOMER': 'Cliente', diff --git a/client/src/data/languages/fr.js b/client/src/data/languages/fr.js index da46d2712..25789de44 100644 --- a/client/src/data/languages/fr.js +++ b/client/src/data/languages/fr.js @@ -29,6 +29,7 @@ export default { 'DATE': 'Date', 'RESPOND': 'Répondre', 'RESPOND_TICKET': 'Répondre au ticket', + 'CLOSE_TICKET': 'Fermer ticket', 'NO_ATTACHMENT': 'Aucune pièce jointe', 'STAFF': 'Administrateur', 'CUSTOMER': 'Client', diff --git a/client/src/data/languages/gr.js b/client/src/data/languages/gr.js index c85e12dce..a6222bba6 100644 --- a/client/src/data/languages/gr.js +++ b/client/src/data/languages/gr.js @@ -29,6 +29,7 @@ 'DATE': 'Ημερομηνία', 'RESPOND': 'Απάντηση', 'RESPOND_TICKET': 'Απάντηση Εισιτηρίου', + 'CLOSE_TICKET': 'κλειστό εισιτήριο', 'NO_ATTACHMENT': 'Χωρίς Συνημμένα Αρχεία', 'STAFF': 'Προσωπικό', 'CUSTOMER': 'Πελάτης', diff --git a/client/src/data/languages/in.js b/client/src/data/languages/in.js index 031287ee2..eb7b89a46 100644 --- a/client/src/data/languages/in.js +++ b/client/src/data/languages/in.js @@ -29,6 +29,7 @@ export default { 'DATE': 'तारीख', 'RESPOND': 'प्रतिक्रिया', 'RESPOND_TICKET': 'प्रतिक्रिया टिकट', + 'CLOSE_TICKET': 'करीबी टिकट', 'NO_ATTACHMENT': 'कोई फ़ाइल अनुलग्नक नहीं', 'STAFF': 'कर्मचारी', 'CUSTOMER': 'ग्राहक', diff --git a/client/src/data/languages/it.js b/client/src/data/languages/it.js index bcef1ee82..2a1ee9eec 100644 --- a/client/src/data/languages/it.js +++ b/client/src/data/languages/it.js @@ -29,6 +29,7 @@ export default { 'DATE': 'Data', 'RESPOND': 'Rispondi', 'RESPOND_TICKET': 'Rispondi al ticket', + 'CLOSE_TICKET': 'Ticket vicino', 'NO_ATTACHMENT': 'Nessun file allegato', 'STAFF': 'Staff', 'CUSTOMER': 'Customer', diff --git a/client/src/data/languages/jp.js b/client/src/data/languages/jp.js index a62d651ea..88fef6725 100644 --- a/client/src/data/languages/jp.js +++ b/client/src/data/languages/jp.js @@ -29,6 +29,7 @@ export default { 'DATE': '日付', 'RESPOND': '応答する', 'RESPOND_TICKET': 'チケット応答', + 'CLOSE_TICKET': 'クローズチケット', 'NO_ATTACHMENT': '添付ファイルがありません', 'STAFF': 'スタッフ', 'CUSTOMER': '顧客', @@ -180,7 +181,7 @@ export default { 'STAFF_UPDATED': 'スタッフメンバーが更新されました', 'UPDATE': '更新', 'NEVER': '決して', - + 'CHART_CREATE_TICKET': '作成されたチケット', 'CHART_CLOSE': 'チケットが閉じられました', 'CHART_SIGNUP': 'サインアップ', diff --git a/client/src/data/languages/nl.js b/client/src/data/languages/nl.js index 902f3ae82..981278306 100644 --- a/client/src/data/languages/nl.js +++ b/client/src/data/languages/nl.js @@ -29,6 +29,7 @@ export default { 'DATE': 'Datum', 'RESPOND': 'Actie', 'RESPOND_TICKET': 'Reageren', + 'CLOSE_TICKET': 'Sluit ticket', 'NO_ATTACHMENT': 'Geen bijlage', 'STAFF': 'Management', 'CUSTOMER': 'Klant', diff --git a/client/src/data/languages/pt.js b/client/src/data/languages/pt.js index 4536d66b5..585e59500 100644 --- a/client/src/data/languages/pt.js +++ b/client/src/data/languages/pt.js @@ -29,6 +29,7 @@ export default { 'DATE': 'Encontro', 'RESPOND': 'Responder', 'RESPOND_TICKET': 'Respond Ticket', + 'CLOSE_TICKET': 'Fechar passagem', 'NO_ATTACHMENT': 'Nenhum anexo de arquivo', 'STAFF': 'Funcionários', 'CUSTOMER': 'Cliente', diff --git a/client/src/data/languages/ru.js b/client/src/data/languages/ru.js index b7e30d286..835788e90 100644 --- a/client/src/data/languages/ru.js +++ b/client/src/data/languages/ru.js @@ -29,6 +29,7 @@ export default { 'DATE': 'Дата', 'RESPOND': 'Отвечать', 'RESPOND_TICKET': 'Ответить билет', + 'CLOSE_TICKET': 'закрыть билет', 'NO_ATTACHMENT': 'Нет вложений файлов', 'STAFF': 'Сотрудники', 'CUSTOMER': 'Клиент', diff --git a/client/src/data/languages/tr.js b/client/src/data/languages/tr.js index 37f2d5877..52d0a8a7c 100644 --- a/client/src/data/languages/tr.js +++ b/client/src/data/languages/tr.js @@ -18,7 +18,7 @@ export default { 'NEW_PASSWORD': 'Yeni Şifre', 'REPEAT_NEW_PASSWORD': 'Yeni şifreyi tekrar girin', 'BACK_LOGIN_FORM': 'Giriş formuna geri dön', - 'VIEW_ARTICLES': ' Makaleleri Görüntüle', + 'VIEW_ARTICLES': 'Makaleleri Görüntüle', 'EDIT_PROFILE': 'Profili Düzenle', 'CLOSE_SESSION': 'Oturumu kapat', 'CREATE_TICKET': 'Bilet Oluştur', @@ -29,6 +29,7 @@ export default { 'DATE': 'Tarih', 'RESPOND': 'Yanıtla', 'RESPOND_TICKET': 'Bilete Gider', + 'CLOSE_TICKET': 'Yakın bilet', 'NO_ATTACHMENT': 'Dosya eki yok', 'STAFF': 'Personel', 'CUSTOMER': 'Müşteri', diff --git a/server/controllers/staff/un-assign-ticket.php b/server/controllers/staff/un-assign-ticket.php index ac1ee06c2..67aaed351 100755 --- a/server/controllers/staff/un-assign-ticket.php +++ b/server/controllers/staff/un-assign-ticket.php @@ -45,7 +45,7 @@ public function handler() { $ticket = Ticket::getByTicketNumber($ticketNumber); $owner = $ticket->owner; - if(($owner && $owner->id === $user->id) || $user->level > 1) { + if(($owner && $owner->id === $user->id) || $user->level > 2) { $owner->sharedTicketList->remove($ticket); $owner->store(); diff --git a/server/controllers/ticket/re-open.php b/server/controllers/ticket/re-open.php index 47fffa04e..dfe4ffbc4 100755 --- a/server/controllers/ticket/re-open.php +++ b/server/controllers/ticket/re-open.php @@ -17,7 +17,7 @@ * * @apiUse NO_PERMISSION * @apiUse INVALID_TICKET - * + * * @apiSuccess {Object} data Empty object * */ @@ -89,4 +89,4 @@ private function addReopenEvent() { $this->ticket->addEvent($event); } -} \ No newline at end of file +}