diff options
45 files changed, 161 insertions, 86 deletions
@@ -10,6 +10,7 @@ Improvements: * Render QR code for TwoFactor authentication without Google Chart API * Add toggle button to show/hide subtasks in task list view * Display tags in task list view +* Make user actions available from contextual menu * Change users list layout * Project priority is always rendered now diff --git a/app/Controller/AvatarFileController.php b/app/Controller/AvatarFileController.php index 2a63c5ae..327080d2 100644 --- a/app/Controller/AvatarFileController.php +++ b/app/Controller/AvatarFileController.php @@ -36,7 +36,7 @@ class AvatarFileController extends BaseController $this->flash->failure(t('Unable to upload files, check the permissions of your data folder.')); } - $this->response->redirect($this->helper->url->to('AvatarFileController', 'show', array('user_id' => $user['id']))); + $this->renderResponse($user['id']); } /** @@ -48,7 +48,7 @@ class AvatarFileController extends BaseController $user = $this->getUser(); $this->avatarFileModel->remove($user['id']); $this->userSession->refresh($user['id']); - $this->response->redirect($this->helper->url->to('AvatarFileController', 'show', array('user_id' => $user['id']))); + $this->renderResponse($user['id']); } /** @@ -91,4 +91,13 @@ class AvatarFileController extends BaseController $this->logger->error($e->getMessage()); } } + + protected function renderResponse($userId) + { + if ($this->request->isAjax()) { + $this->show(); + } else { + $this->response->redirect($this->helper->url->to('AvatarFileController', 'show', array('user_id' => $userId))); + } + } } diff --git a/app/Controller/TwoFactorController.php b/app/Controller/TwoFactorController.php index 73060c44..80f89fbd 100644 --- a/app/Controller/TwoFactorController.php +++ b/app/Controller/TwoFactorController.php @@ -100,10 +100,15 @@ class TwoFactorController extends UserViewController unset($this->sessionStorage->twoFactorSecret); $this->userSession->disablePostAuthentication(); - $this->response->redirect($this->helper->url->to('TwoFactorController', 'index', array('user_id' => $user['id']))); + $this->response->redirect($this->helper->url->to('TwoFactorController', 'index', array('user_id' => $user['id'])), true); } else { $this->flash->failure(t('The two factor authentication code is not valid.')); - $this->response->redirect($this->helper->url->to('TwoFactorController', 'show', array('user_id' => $user['id']))); + + if ($this->request->isAjax()) { + $this->show(); + } else { + $this->response->redirect($this->helper->url->to('TwoFactorController', 'show', array('user_id' => $user['id']))); + } } } @@ -127,7 +132,7 @@ class TwoFactorController extends UserViewController $this->userSession->disablePostAuthentication(); $this->flash->success(t('User updated successfully.')); - $this->response->redirect($this->helper->url->to('TwoFactorController', 'index', array('user_id' => $user['id']))); + $this->response->redirect($this->helper->url->to('TwoFactorController', 'index', array('user_id' => $user['id'])), true); } /** @@ -192,7 +197,7 @@ class TwoFactorController extends UserViewController 'twofactor_secret' => '', )); - $this->response->redirect($this->helper->url->to('UserViewController', 'show', array('user_id' => $user['id']))); + $this->response->redirect($this->helper->url->to('UserViewController', 'show', array('user_id' => $user['id'])), true); } else { $this->response->html($this->helper->layout->user('twofactor/disable', array( 'user' => $user, diff --git a/app/Controller/UserApiAccessController.php b/app/Controller/UserApiAccessController.php index e03514d5..0f1c891e 100644 --- a/app/Controller/UserApiAccessController.php +++ b/app/Controller/UserApiAccessController.php @@ -32,7 +32,7 @@ class UserApiAccessController extends BaseController 'api_access_token' => Token::getToken(), )); - $this->response->redirect($this->helper->url->to('UserApiAccessController', 'show', array('user_id' => $user['id']))); + $this->renderResponse(); } public function remove() @@ -45,6 +45,15 @@ class UserApiAccessController extends BaseController 'api_access_token' => null, )); - $this->response->redirect($this->helper->url->to('UserApiAccessController', 'show', array('user_id' => $user['id']))); + $this->renderResponse(); + } + + protected function renderResponse() + { + if ($this->request->isAjax()) { + $this->show(); + } else { + $this->response->redirect($this->helper->url->to('UserApiAccessController', 'show', array('user_id' => $user['id']))); + } } }
\ No newline at end of file diff --git a/app/Controller/UserCredentialController.php b/app/Controller/UserCredentialController.php index 98fe967d..23e7edba 100644 --- a/app/Controller/UserCredentialController.php +++ b/app/Controller/UserCredentialController.php @@ -47,14 +47,14 @@ class UserCredentialController extends BaseController if ($this->userModel->update($values)) { $this->flash->success(t('Password modified successfully.')); $this->userLockingModel->resetFailedLogin($user['username']); + $this->response->redirect($this->helper->url->to('UserViewController', 'show', array('user_id' => $user['id'])), true); + return; } else { $this->flash->failure(t('Unable to change the password.')); } - - return $this->response->redirect($this->helper->url->to('UserViewController', 'show', array('user_id' => $user['id']))); } - return $this->changePassword($values, $errors); + $this->changePassword($values, $errors); } /** @@ -97,14 +97,14 @@ class UserCredentialController extends BaseController if ($valid) { if ($this->userModel->update($values)) { $this->flash->success(t('User updated successfully.')); + $this->response->redirect($this->helper->url->to('UserCredentialController', 'changeAuthentication', array('user_id' => $user['id'])), true); + return; } else { - $this->flash->failure(t('Unable to update your user.')); + $this->flash->failure(t('Unable to update this user.')); } - - return $this->response->redirect($this->helper->url->to('UserCredentialController', 'changeAuthentication', array('user_id' => $user['id']))); } - return $this->changeAuthentication($values, $errors); + $this->changeAuthentication($values, $errors); } /** diff --git a/app/Controller/UserModificationController.php b/app/Controller/UserModificationController.php index d339fd9a..ed145921 100644 --- a/app/Controller/UserModificationController.php +++ b/app/Controller/UserModificationController.php @@ -57,13 +57,13 @@ class UserModificationController extends BaseController if ($valid) { if ($this->userModel->update($values)) { $this->flash->success(t('User updated successfully.')); + $this->response->redirect($this->helper->url->to('UserViewController', 'show', array('user_id' => $user['id'])), true); + return; } else { - $this->flash->failure(t('Unable to update your user.')); + $this->flash->failure(t('Unable to update this user.')); } - - return $this->response->redirect($this->helper->url->to('UserViewController', 'show', array('user_id' => $user['id']))); } - return $this->show($values, $errors); + $this->show($values, $errors); } } diff --git a/app/Controller/UserViewController.php b/app/Controller/UserViewController.php index a73c5c51..eb987379 100644 --- a/app/Controller/UserViewController.php +++ b/app/Controller/UserViewController.php @@ -123,7 +123,12 @@ class UserViewController extends BaseController $this->checkCSRFParam(); $user = $this->getUser(); $this->rememberMeSessionModel->remove($this->request->getIntegerParam('id')); - $this->response->redirect($this->helper->url->to('UserViewController', 'sessions', array('user_id' => $user['id']))); + + if ($this->request->isAjax()) { + $this->sessions(); + } else { + $this->response->redirect($this->helper->url->to('UserViewController', 'sessions', array('user_id' => $user['id'])), true); + } } /** @@ -139,10 +144,11 @@ class UserViewController extends BaseController $values = $this->request->getValues(); $this->userNotificationModel->saveSettings($user['id'], $values); $this->flash->success(t('User updated successfully.')); - return $this->response->redirect($this->helper->url->to('UserViewController', 'notifications', array('user_id' => $user['id']))); + $this->response->redirect($this->helper->url->to('UserViewController', 'notifications', array('user_id' => $user['id'])), true); + return; } - return $this->response->html($this->helper->layout->user('user_view/notifications', array( + $this->response->html($this->helper->layout->user('user_view/notifications', array( 'projects' => $this->projectUserRoleModel->getProjectsByUser($user['id'], array(ProjectModel::ACTIVE)), 'notifications' => $this->userNotificationModel->readSettings($user['id']), 'types' => $this->userNotificationTypeModel->getTypes(), @@ -164,7 +170,8 @@ class UserViewController extends BaseController $values = $this->request->getValues(); $this->userMetadataModel->save($user['id'], $values); $this->flash->success(t('User updated successfully.')); - $this->response->redirect($this->helper->url->to('UserViewController', 'integrations', array('user_id' => $user['id']))); + $this->response->redirect($this->helper->url->to('UserViewController', 'integrations', array('user_id' => $user['id'])), true); + return; } $this->response->html($this->helper->layout->user('user_view/integrations', array( @@ -206,10 +213,15 @@ class UserViewController extends BaseController $this->flash->failure(t('Unable to update this user.')); } - return $this->response->redirect($this->helper->url->to('UserViewController', 'share', array('user_id' => $user['id']))); + if (! $this->request->isAjax()) { + $this->response->redirect($this->helper->url->to('UserViewController', 'share', array('user_id' => $user['id'])), true); + return; + } + + $user = $this->getUser(); } - return $this->response->html($this->helper->layout->user('user_view/share', array( + $this->response->html($this->helper->layout->user('user_view/share', array( 'user' => $user, 'title' => t('Public access'), ))); diff --git a/app/Locale/bs_BA/translations.php b/app/Locale/bs_BA/translations.php index 4c0e3ca2..b53e8ad5 100644 --- a/app/Locale/bs_BA/translations.php +++ b/app/Locale/bs_BA/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Korisnik uspješno kreiran', 'Unable to create your user.' => 'Nije uspjelo kreiranje korisnika.', 'User updated successfully.' => 'Korisnik uspješno ažuriran.', - 'Unable to update your user.' => 'Nije moguće ažuriranje korisnika.', 'User removed successfully.' => 'Korisnik uspješno uklonjen.', 'Unable to remove this user.' => 'Nije moguće uklanjanje korisnika.', 'Board updated successfully.' => 'Ploča je uspješno ažurirana.', @@ -1125,7 +1124,7 @@ return array( 'Email settings' => 'Postavke email-a', 'Email sender address' => 'Email adresa pošiljaoca', 'Email transport' => 'Saobraćaj emil-a', - //'Webhook token' => '', + // 'Webhook token' => '', 'Project tags management' => 'Upravljanje oznakama projekta', 'Tag created successfully.' => 'Oznaka uspješno kreirana.', 'Unable to create this tag.' => 'Nemoguće kreirati oznaku.', diff --git a/app/Locale/cs_CZ/translations.php b/app/Locale/cs_CZ/translations.php index 95f34142..5100b33e 100644 --- a/app/Locale/cs_CZ/translations.php +++ b/app/Locale/cs_CZ/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Uživatel byl úspěšně vytvořen.', 'Unable to create your user.' => 'Uživatele nebylo možné vytvořit.', 'User updated successfully.' => 'Uživatel byl úspěšně aktualizován.', - 'Unable to update your user.' => 'Uživatele nebylo možné aktualizovat.', 'User removed successfully.' => 'Uživatel byl vymazán.', 'Unable to remove this user.' => 'Uživatele nebylo možné odebrat.', 'Board updated successfully.' => 'Nástěnka byla úspěšně aktualizována.', diff --git a/app/Locale/da_DK/translations.php b/app/Locale/da_DK/translations.php index 01b3a45f..bc14f3f7 100644 --- a/app/Locale/da_DK/translations.php +++ b/app/Locale/da_DK/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Brugeren er oprettet.', 'Unable to create your user.' => 'Brugeren kunne ikke oprettes.', 'User updated successfully.' => 'Brugeren er opdateret', - 'Unable to update your user.' => 'Din bruger kunne ikke opdateres.', 'User removed successfully.' => 'Brugeren er fjernet.', 'Unable to remove this user.' => 'Brugeren kunne ikke fjernes.', 'Board updated successfully.' => 'Boardet er opdateret.', diff --git a/app/Locale/de_DE/translations.php b/app/Locale/de_DE/translations.php index a078ffe4..b33fc4d7 100644 --- a/app/Locale/de_DE/translations.php +++ b/app/Locale/de_DE/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Benutzer erfolgreich erstellt.', 'Unable to create your user.' => 'Erstellen des Benutzers nicht möglich.', 'User updated successfully.' => 'Benutzer erfolgreich geändert.', - 'Unable to update your user.' => 'Änderung des Benutzers nicht möglich.', 'User removed successfully.' => 'Benutzer erfolgreich gelöscht.', 'Unable to remove this user.' => 'Löschen des Benutzers nicht möglich.', 'Board updated successfully.' => 'Pinnwand erfolgreich geändert.', diff --git a/app/Locale/el_GR/translations.php b/app/Locale/el_GR/translations.php index cbc46195..4daf5874 100644 --- a/app/Locale/el_GR/translations.php +++ b/app/Locale/el_GR/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Ο χρήστης δημιουργήθηκε με επιτυχία', 'Unable to create your user.' => 'Δεν είναι δυνατή η δημιουργία χρήστη', 'User updated successfully.' => 'Ο χρήστης ενημερωθηκε με επιτυχία', - 'Unable to update your user.' => 'Δεν είναι δυνατή η ενημέρωση του χρήστη', 'User removed successfully.' => 'Ο χρήστης αφαιρέθηκε με επιτυχία.', 'Unable to remove this user.' => 'Δεν είναι δυνατή η αφαίρεση χρήστη.', 'Board updated successfully.' => 'Ο πίνακας ενημερώθηκε με επιτυχία.', diff --git a/app/Locale/es_ES/translations.php b/app/Locale/es_ES/translations.php index 1a0c9457..61516138 100644 --- a/app/Locale/es_ES/translations.php +++ b/app/Locale/es_ES/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'El usuario ha sido creado correctamente.', 'Unable to create your user.' => 'No se puede crear este usuario.', 'User updated successfully.' => 'El usuario ha sido actualizado correctamente.', - 'Unable to update your user.' => 'No se puede actualizar este usuario.', 'User removed successfully.' => 'El usuario ha sido creado correctamente.', 'Unable to remove this user.' => 'No se puede crear este usuario.', 'Board updated successfully.' => 'El tablero ha sido actualizado correctamente.', diff --git a/app/Locale/fi_FI/translations.php b/app/Locale/fi_FI/translations.php index 6db0ecf7..97015632 100644 --- a/app/Locale/fi_FI/translations.php +++ b/app/Locale/fi_FI/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Käyttäjä lisättiin onnistuneesti.', 'Unable to create your user.' => 'Käyttäjän lisäys epäonnistui.', 'User updated successfully.' => 'Käyttäjätietojen päivitys onnistui.', - 'Unable to update your user.' => 'Käyttäjätietojen päivitys epäonnistui.', 'User removed successfully.' => 'Käyttäjä poistettiin onnistuneesti.', 'Unable to remove this user.' => 'Käyttäjän poistaminen epäonnistui.', 'Board updated successfully.' => 'Taulu päivitettiin onnistuneesti.', diff --git a/app/Locale/fr_FR/translations.php b/app/Locale/fr_FR/translations.php index 6b21672a..617082a8 100644 --- a/app/Locale/fr_FR/translations.php +++ b/app/Locale/fr_FR/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Utilisateur créé avec succès.', 'Unable to create your user.' => 'Impossible de créer cet utilisateur.', 'User updated successfully.' => 'Utilisateur mis à jour avec succès.', - 'Unable to update your user.' => 'Impossible de mettre à jour cet utilisateur.', 'User removed successfully.' => 'Utilisateur supprimé avec succès.', 'Unable to remove this user.' => 'Impossible de supprimer cet utilisateur.', 'Board updated successfully.' => 'Tableau mis à jour avec succès.', diff --git a/app/Locale/hr_HR/translations.php b/app/Locale/hr_HR/translations.php index 6c5e826a..47edf7ed 100644 --- a/app/Locale/hr_HR/translations.php +++ b/app/Locale/hr_HR/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Korisnik je uspješno kreiran', 'Unable to create your user.' => 'Nije uspjelo kreiranje korisnika.', 'User updated successfully.' => 'Korisnik je uspješno dopunjen.', - 'Unable to update your user.' => 'Nije moguća dopuna korisnika.', 'User removed successfully.' => 'Korisnik je uspješno maknut.', 'Unable to remove this user.' => 'Nije moguće uklanjanje korisnika.', 'Board updated successfully.' => 'Ploča uspješno dopunjena.', diff --git a/app/Locale/hu_HU/translations.php b/app/Locale/hu_HU/translations.php index b4645417..868a2214 100644 --- a/app/Locale/hu_HU/translations.php +++ b/app/Locale/hu_HU/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Felhasználó létrehozva.', 'Unable to create your user.' => 'Felhasználó létrehozása sikertelen.', 'User updated successfully.' => 'Felhasználó sikeresen frissítve.', - 'Unable to update your user.' => 'Felhasználó frissítése sikertelen.', 'User removed successfully.' => 'Felhasználó sikeresen törölve.', 'Unable to remove this user.' => 'Felhasználó törlése sikertelen.', 'Board updated successfully.' => 'Tábla sikeresen frissítve.', diff --git a/app/Locale/id_ID/translations.php b/app/Locale/id_ID/translations.php index 4bec619c..6d6a4e73 100644 --- a/app/Locale/id_ID/translations.php +++ b/app/Locale/id_ID/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Pengguna berhasil dibuat.', 'Unable to create your user.' => 'Tidak dapat membuat pengguna Anda.', 'User updated successfully.' => 'Pengguna berhasil diperbarui.', - 'Unable to update your user.' => 'Tidak dapat memperbarui pengguna anda.', 'User removed successfully.' => 'Pengguna berhasil dihapus.', 'Unable to remove this user.' => 'Tidak dapat menghapus pengguna ini.', 'Board updated successfully.' => 'Papan berhasil diperbaharui.', diff --git a/app/Locale/it_IT/translations.php b/app/Locale/it_IT/translations.php index 6d690fd9..7e9065b6 100644 --- a/app/Locale/it_IT/translations.php +++ b/app/Locale/it_IT/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Utente creato con successo.', 'Unable to create your user.' => 'Impossibile creare l\'utente.', 'User updated successfully.' => 'Utente aggiornato con successo.', - 'Unable to update your user.' => 'Impossibile aggiornare questo utente.', 'User removed successfully.' => 'Utente cancellato con successo.', 'Unable to remove this user.' => 'Impossibile cancellare questo utente.', 'Board updated successfully.' => 'Bacheca aggiornata con successo.', diff --git a/app/Locale/ja_JP/translations.php b/app/Locale/ja_JP/translations.php index cf17da8c..9ccec92b 100644 --- a/app/Locale/ja_JP/translations.php +++ b/app/Locale/ja_JP/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'ユーザを追加しました。', 'Unable to create your user.' => 'ユーザの追加に失敗しました。', 'User updated successfully.' => 'ユーザを更新しました。', - 'Unable to update your user.' => 'ユーザの更新に失敗しました。', 'User removed successfully.' => 'ユーザを削除しました。', 'Unable to remove this user.' => 'ユーザの削除に失敗しました。', 'Board updated successfully.' => 'ボードを更新しました。', diff --git a/app/Locale/ko_KR/translations.php b/app/Locale/ko_KR/translations.php index 259ed048..95a33217 100644 --- a/app/Locale/ko_KR/translations.php +++ b/app/Locale/ko_KR/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => '사용자를 추가했습니다.', 'Unable to create your user.' => '사용자의 추가에 실패했습니다.', 'User updated successfully.' => '사용자를 갱신했습니다.', - 'Unable to update your user.' => '사용자의 갱신에 실패했습니다.', 'User removed successfully.' => '사용자를 삭제했습니다.', 'Unable to remove this user.' => '사용자 삭제에 실패했습니다.', 'Board updated successfully.' => '보드를 갱신했습니다.', diff --git a/app/Locale/my_MY/translations.php b/app/Locale/my_MY/translations.php index e4f0b6e9..ccdb62d8 100644 --- a/app/Locale/my_MY/translations.php +++ b/app/Locale/my_MY/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Pengguna berhasil dibuat.', 'Unable to create your user.' => 'Tidak dapat membuat pengguna anda.', 'User updated successfully.' => 'Pengguna berhasil diperbaharui.', - 'Unable to update your user.' => 'Tidak dapat memperbaharui pengguna anda.', 'User removed successfully.' => 'pengguna berhasil dihapus.', 'Unable to remove this user.' => 'Tidak dapat menghapus pengguna ini.', 'Board updated successfully.' => 'Papan berhasil diperbaharui.', diff --git a/app/Locale/nb_NO/translations.php b/app/Locale/nb_NO/translations.php index 93eb4d6a..41911f4e 100644 --- a/app/Locale/nb_NO/translations.php +++ b/app/Locale/nb_NO/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Brukeren er opprettet.', 'Unable to create your user.' => 'Brukeren kunne ikke opprettes.', 'User updated successfully.' => 'Brukeren er oppdatert', - 'Unable to update your user.' => 'Din bruker kunne ikke oppdateres.', 'User removed successfully.' => 'Brukeren er fjernet.', 'Unable to remove this user.' => 'Brukeren kunne ikke slettes.', 'Board updated successfully.' => 'Hovedsiden er oppdatert.', diff --git a/app/Locale/nl_NL/translations.php b/app/Locale/nl_NL/translations.php index 9f49f71d..d8198f6c 100644 --- a/app/Locale/nl_NL/translations.php +++ b/app/Locale/nl_NL/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Gebruiker succesvol aangemaakt.', 'Unable to create your user.' => 'Aanmaken van gebruiker niet gelukt.', 'User updated successfully.' => 'Gebruiker succesvol geupdate', - 'Unable to update your user.' => 'Updaten van gebruiker niet gelukt.', 'User removed successfully.' => 'Gebruiker succesvol verwijderd.', 'Unable to remove this user.' => 'Verwijderen van gebruikers niet gelukt.', 'Board updated successfully.' => 'Board succesvol geupdate.', diff --git a/app/Locale/pl_PL/translations.php b/app/Locale/pl_PL/translations.php index 40b7fb47..b05b5f78 100644 --- a/app/Locale/pl_PL/translations.php +++ b/app/Locale/pl_PL/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Użytkownik dodany', 'Unable to create your user.' => 'Nie udało się dodać użytkownika.', 'User updated successfully.' => 'Profil użytkownika został zaaktualizowany.', - 'Unable to update your user.' => 'Nie udało się zaktualizować użytkownika.', 'User removed successfully.' => 'Użytkownik usunięty.', 'Unable to remove this user.' => 'Nie udało się usunąć użytkownika.', 'Board updated successfully.' => 'Tablica została zaktualizowana.', diff --git a/app/Locale/pt_BR/translations.php b/app/Locale/pt_BR/translations.php index 95c446ed..a780dae3 100644 --- a/app/Locale/pt_BR/translations.php +++ b/app/Locale/pt_BR/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Usuário criado com sucesso.', 'Unable to create your user.' => 'Não é possível criar o seu usuário.', 'User updated successfully.' => 'Usuário atualizado com sucesso.', - 'Unable to update your user.' => 'Não é possível atualizar o seu usuário.', 'User removed successfully.' => 'Usuário removido com sucesso.', 'Unable to remove this user.' => 'Não é possível remover este usuário.', 'Board updated successfully.' => 'Board atualizado com sucesso.', diff --git a/app/Locale/pt_PT/translations.php b/app/Locale/pt_PT/translations.php index fad8b7ad..8347b7bd 100644 --- a/app/Locale/pt_PT/translations.php +++ b/app/Locale/pt_PT/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Utilizador criado com sucesso.', 'Unable to create your user.' => 'Não é possível criar o seu Utilizador.', 'User updated successfully.' => 'Utilizador actualizado com sucesso.', - 'Unable to update your user.' => 'Não é possível actualizar o seu Utilizador.', 'User removed successfully.' => 'Utilizador removido com sucesso.', 'Unable to remove this user.' => 'Não é possível remover este Utilizador.', 'Board updated successfully.' => 'Quadro actualizado com sucesso.', diff --git a/app/Locale/ru_RU/translations.php b/app/Locale/ru_RU/translations.php index d8a8565d..47462ef1 100644 --- a/app/Locale/ru_RU/translations.php +++ b/app/Locale/ru_RU/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Пользователь создан.', 'Unable to create your user.' => 'Не удалось создать пользователя.', 'User updated successfully.' => 'Пользователь обновлён.', - 'Unable to update your user.' => 'Не удалось обновить пользователя.', 'User removed successfully.' => 'Пользователь удалён.', 'Unable to remove this user.' => 'Не удалось удалить пользователя.', 'Board updated successfully.' => 'Доска успешно обновлена.', diff --git a/app/Locale/sr_Latn_RS/translations.php b/app/Locale/sr_Latn_RS/translations.php index 31d115f4..9e2cae20 100644 --- a/app/Locale/sr_Latn_RS/translations.php +++ b/app/Locale/sr_Latn_RS/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Korisnik uspešno kreiran', 'Unable to create your user.' => 'Nije uspelo kreiranje korisnika.', 'User updated successfully.' => 'Korisnik uspešno ažuriran.', - 'Unable to update your user.' => 'Nije moguće ažuriranje korisnika.', 'User removed successfully.' => 'Korisnik uspešno uklonjen.', 'Unable to remove this user.' => 'Nije moguće uklanjanje korisnika.', 'Board updated successfully.' => 'Tabla uspešno ažurirana.', diff --git a/app/Locale/sv_SE/translations.php b/app/Locale/sv_SE/translations.php index 53a3b5b7..468f55b3 100644 --- a/app/Locale/sv_SE/translations.php +++ b/app/Locale/sv_SE/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Användaren har skapats.', 'Unable to create your user.' => 'Kunde inte skapa din användare.', 'User updated successfully.' => 'Användaren har updaterats.', - 'Unable to update your user.' => 'Kunde inte uppdatera din användare.', 'User removed successfully.' => 'Användaren har tagits bort.', 'Unable to remove this user.' => 'Kunde inte ta bort denna användare.', 'Board updated successfully.' => 'Tavlan uppdaterad.', diff --git a/app/Locale/th_TH/translations.php b/app/Locale/th_TH/translations.php index 4b42911f..4b119c78 100644 --- a/app/Locale/th_TH/translations.php +++ b/app/Locale/th_TH/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'สร้างผู้ใช้เรียบร้อยแล้ว', 'Unable to create your user.' => 'ไม่สามารถสร้างผู้ใช้ได้', 'User updated successfully.' => 'ปรับปรุงผู้ใช้เรียบร้อยแล้ว', - 'Unable to update your user.' => 'ไม่สามารถปรับปรุงผู้ใช้ได้', 'User removed successfully.' => 'ลบผู้ใช้เรียบร้อยแล้ว', 'Unable to remove this user.' => 'ไม่สามารถลบผู้ใช้ได้', 'Board updated successfully.' => 'ปรับปรุงบอร์ดเรียบร้อยแล้ว', diff --git a/app/Locale/tr_TR/translations.php b/app/Locale/tr_TR/translations.php index 14111bd0..0876b726 100644 --- a/app/Locale/tr_TR/translations.php +++ b/app/Locale/tr_TR/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => 'Kullanıcı başarıyla oluşturuldu', 'Unable to create your user.' => 'Kullanıcı oluşturulamıyor.', 'User updated successfully.' => 'Kullanıcı başarıyla güncellendi.', - 'Unable to update your user.' => 'Kullanıcı güncellenemiyor.', 'User removed successfully.' => 'Kullanıcı silindi.', 'Unable to remove this user.' => 'Bu kullanıcı silinemiyor.', 'Board updated successfully.' => 'Pano başarıyla güncellendi.', diff --git a/app/Locale/zh_CN/translations.php b/app/Locale/zh_CN/translations.php index c1779b33..ffab7337 100644 --- a/app/Locale/zh_CN/translations.php +++ b/app/Locale/zh_CN/translations.php @@ -132,7 +132,6 @@ return array( 'User created successfully.' => '成功创建用户。', 'Unable to create your user.' => '无法创建用户。', 'User updated successfully.' => '成功更新用户。', - 'Unable to update your user.' => '无法为您更新用户。', 'User removed successfully.' => '成功移除用户。', 'Unable to remove this user.' => '无法移除该用户。', 'Board updated successfully.' => '看板成功更新。', diff --git a/app/Template/avatar_file/show.php b/app/Template/avatar_file/show.php index 37c56cec..1766cb3f 100644 --- a/app/Template/avatar_file/show.php +++ b/app/Template/avatar_file/show.php @@ -6,7 +6,7 @@ <div class="form-actions"> <?php if (! empty($user['avatar_path'])): ?> - <?= $this->url->link(t('Remove my image'), 'AvatarFileController', 'remove', array('user_id' => $user['id']), true, 'btn btn-red') ?> + <?= $this->url->link(t('Remove my image'), 'AvatarFileController', 'remove', array('user_id' => $user['id']), true, 'btn btn-red js-modal-replace') ?> <?php endif ?> </div> diff --git a/app/Template/twofactor/show.php b/app/Template/twofactor/show.php index 412077b9..80f1e244 100644 --- a/app/Template/twofactor/show.php +++ b/app/Template/twofactor/show.php @@ -2,6 +2,10 @@ <h2><?= t('Two factor authentication') ?></h2> </div> +<?php if ($this->app->isAjax()): ?> + <?= $this->app->flashMessage() ?> +<?php endif ?> + <?php if (! empty($secret) || ! empty($key_url)): ?> <div class="panel"> <?php if (! empty($secret)): ?> @@ -16,13 +20,13 @@ <?php endif ?> <h3><?= t('Test your device') ?></h3> +<div class="panel"> <form method="post" action="<?= $this->url->href('TwoFactorController', 'test', array('user_id' => $user['id'])) ?>" autocomplete="off"> <?= $this->form->csrf() ?> <?= $this->form->label(t('Code'), 'code') ?> <?= $this->form->text('code', array(), array(), array('placeholder="123456"', 'autofocus'), 'form-numeric') ?> - <div class="form-actions"> - <button type="submit" class="btn btn-blue"><?= t('Check my code') ?></button> - </div> + <?= $this->modal->submitButtons(array('submitLabel' => t('Check my code'))) ?> </form> +</div> diff --git a/app/Template/user_api_access/show.php b/app/Template/user_api_access/show.php index 3d58e0d5..39bf354a 100644 --- a/app/Template/user_api_access/show.php +++ b/app/Template/user_api_access/show.php @@ -11,7 +11,7 @@ </p> <?php if (! empty($user['api_access_token'])): ?> - <?= $this->url->link(t('Remove your token'), 'UserApiAccessController', 'remove', array('user_id' => $user['id']), true, 'btn btn-red') ?> + <?= $this->url->link(t('Remove your token'), 'UserApiAccessController', 'remove', array('user_id' => $user['id']), true, 'btn btn-red js-modal-replace') ?> <?php endif ?> -<?= $this->url->link(t('Generate a new token'), 'UserApiAccessController', 'generate', array('user_id' => $user['id']), true, 'btn btn-blue') ?> +<?= $this->url->link(t('Generate a new token'), 'UserApiAccessController', 'generate', array('user_id' => $user['id']), true, 'btn btn-blue js-modal-replace') ?> diff --git a/app/Template/user_credential/authentication.php b/app/Template/user_credential/authentication.php index 98c0d758..32371bd8 100644 --- a/app/Template/user_credential/authentication.php +++ b/app/Template/user_credential/authentication.php @@ -1,5 +1,5 @@ <div class="page-header"> - <h2><?= t('Edit Authentication') ?></h2> + <h2><?= t('Authentication Parameters') ?></h2> </div> <form method="post" action="<?= $this->url->href('UserCredentialController', 'saveAuthentication', array('user_id' => $user['id'])) ?>" autocomplete="off"> <?= $this->form->csrf() ?> @@ -14,11 +14,7 @@ <?= $this->form->checkbox('disable_login_form', t('Disallow login form'), 1, isset($values['disable_login_form']) && $values['disable_login_form'] == 1) ?> </fieldset> - <div class="form-actions"> - <button type="submit" class="btn btn-blue"><?= t('Save') ?></button> - <?= t('or') ?> - <?= $this->url->link(t('cancel'), 'UserViewController', 'show', array('user_id' => $user['id'])) ?> - </div> + <?= $this->modal->submitButtons() ?> <div class="alert alert-info"> <ul> diff --git a/app/Template/user_credential/password.php b/app/Template/user_credential/password.php index bd7a47da..a71ba825 100644 --- a/app/Template/user_credential/password.php +++ b/app/Template/user_credential/password.php @@ -8,7 +8,7 @@ <fieldset> <?= $this->form->label(t('Current password for the user "%s"', $this->user->getFullname()), 'current_password') ?> - <?= $this->form->password('current_password', $values, $errors) ?> + <?= $this->form->password('current_password', $values, $errors, array('autofocus')) ?> <?= $this->form->label(t('New password for the user "%s"', $this->user->getFullname($user)), 'password') ?> <?= $this->form->password('password', $values, $errors) ?> @@ -17,9 +17,5 @@ <?= $this->form->password('confirmation', $values, $errors) ?> </fieldset> - <div class="form-actions"> - <button type="submit" class="btn btn-blue"><?= t('Save') ?></button> - <?= t('or') ?> - <?= $this->url->link(t('cancel'), 'UserViewController', 'show', array('user_id' => $user['id'])) ?> - </div> + <?= $this->modal->submitButtons() ?> </form> diff --git a/app/Template/user_list/dropdown.php b/app/Template/user_list/dropdown.php index 20d17aea..9f89d807 100644 --- a/app/Template/user_list/dropdown.php +++ b/app/Template/user_list/dropdown.php @@ -4,6 +4,83 @@ <li> <?= $this->url->icon('user', t('View profile'), 'UserViewController', 'show', array('user_id' => $user['id'])) ?> </li> + <?php if ($user['is_active'] == 1 && $this->user->hasAccess('UserModificationController', 'show')): ?> + <li> + <?= $this->modal->medium('edit', t('Edit'), 'UserModificationController', 'show', array('user_id' => $user['id'])) ?> + </li> + <li> + <?= $this->modal->medium('smile-o', t('Avatar'), 'AvatarFileController', 'show', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + <?php if ($user['is_ldap_user'] == 0 && $this->user->hasAccess('UserCredentialController', 'changePassword')): ?> + <li> + <?= $this->modal->medium('key', t('Change password'), 'UserCredentialController', 'changePassword', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + <?php if ($this->user->isCurrentUser($user['id']) && $this->user->hasAccess('TwoFactorController', 'index')): ?> + <li> + <?= $this->modal->medium('shield', t('Two factor authentication'), 'TwoFactorController', 'index', array('user_id' => $user['id'])) ?> + </li> + <?php elseif ($this->user->hasAccess('TwoFactorController', 'disable') && $user['twofactor_activated'] == 1): ?> + <li> + <?= $this->modal->medium('shield', t('Two factor authentication'), 'TwoFactorController', 'disable', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + <?php if ($this->user->hasAccess('UserViewController', 'share')): ?> + <li> + <?= $this->modal->medium('share-alt', t('Public access'), 'UserViewController', 'share', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + <?php if ($this->user->hasAccess('UserViewController', 'notifications')): ?> + <li> + <?= $this->modal->medium('bell-o', t('Notifications'), 'UserViewController', 'notifications', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + <?php if ($this->user->hasAccess('UserViewController', 'external')): ?> + <li> + <?= $this->modal->medium('user-circle-o', t('External accounts'), 'UserViewController', 'external', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + <?php if ($this->user->hasAccess('UserViewController', 'integrations')): ?> + <li> + <?= $this->modal->medium('rocket', t('Integrations'), 'UserViewController', 'integrations', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + <?php if ($this->user->hasAccess('UserApiAccessController', 'show')): ?> + <li> + <?= $this->modal->medium('cloud', t('API Access'), 'UserApiAccessController', 'show', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + + <?php if ($this->user->isAdmin()): ?> + <li> + <?= $this->url->icon('dashboard', t('User dashboard'), 'DashboardController', 'show', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + + <?php if ($this->user->isAdmin() || $this->user->isCurrentUser($user['id'])): ?> + <?php if ($this->user->hasAccess('UserViewController', 'timesheet')): ?> + <li> + <?= $this->modal->medium('clock-o',t('Time tracking'), 'UserViewController', 'timesheet', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + <?php if ($this->user->hasAccess('UserViewController', 'lastLogin')): ?> + <li> + <?= $this->modal->medium('id-badge', t('Last logins'), 'UserViewController', 'lastLogin', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + <?php if ($this->user->hasAccess('UserViewController', 'sessions')): ?> + <li> + <?= $this->modal->medium('database', t('Persistent connections'), 'UserViewController', 'sessions', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + <?php if ($this->user->hasAccess('UserViewController', 'passwordReset')): ?> + <li> + <?= $this->modal->medium('legal', t('Password reset history'), 'UserViewController', 'passwordReset', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + <?php endif ?> + <?php if ($user['is_active'] == 1 && $this->user->hasAccess('UserStatusController', 'disable') && ! $this->user->isCurrentUser($user['id'])): ?> <li> <?= $this->modal->confirm('times', t('Disable'), 'UserStatusController', 'confirmDisable', array('user_id' => $user['id'])) ?> diff --git a/app/Template/user_list/user_icons.php b/app/Template/user_list/user_icons.php index 532526bb..a110e557 100644 --- a/app/Template/user_list/user_icons.php +++ b/app/Template/user_list/user_icons.php @@ -13,7 +13,7 @@ <?php if ($user['twofactor_activated'] == 1): ?> <span title="<?= t('Two factor authentication enabled') ?>"> - <i class="fa fa-key" aria-hidden="true"></i> + <i class="fa fa-shield" aria-hidden="true"></i> </span> <?php endif ?> diff --git a/app/Template/user_modification/show.php b/app/Template/user_modification/show.php index d3f3e0cc..fd90d915 100644 --- a/app/Template/user_modification/show.php +++ b/app/Template/user_modification/show.php @@ -8,7 +8,7 @@ <fieldset> <legend><?= t('Profile') ?></legend> <?= $this->form->label(t('Username'), 'username') ?> - <?= $this->form->text('username', $values, $errors, array('required', isset($values['is_ldap_user']) && $values['is_ldap_user'] == 1 ? 'readonly' : '', 'maxlength="50"')) ?> + <?= $this->form->text('username', $values, $errors, array('autofocus', 'required', isset($values['is_ldap_user']) && $values['is_ldap_user'] == 1 ? 'readonly' : '', 'maxlength="50"')) ?> <?= $this->form->label(t('Name'), 'name') ?> <?= $this->form->text('name', $values, $errors, array($this->user->hasAccess('UserModificationController', 'show/edit_name') ? '' : 'readonly')) ?> @@ -34,9 +34,5 @@ </fieldset> <?php endif ?> - <div class="form-actions"> - <button type="submit" class="btn btn-blue"><?= t('Save') ?></button> - <?= t('or') ?> - <?= $this->url->link(t('cancel'), 'UserViewController', 'show', array('user_id' => $user['id'])) ?> - </div> + <?= $this->modal->submitButtons() ?> </form> diff --git a/app/Template/user_view/notifications.php b/app/Template/user_view/notifications.php index 84ca1282..0f4e59d1 100644 --- a/app/Template/user_view/notifications.php +++ b/app/Template/user_view/notifications.php @@ -18,9 +18,5 @@ <?= $this->form->checkboxes('notification_projects', $projects, $notifications) ?> <?php endif ?> - <div class="form-actions"> - <button type="submit" class="btn btn-blue"><?= t('Save') ?></button> - <?= t('or') ?> - <?= $this->url->link(t('cancel'), 'UserViewController', 'show', array('user_id' => $user['id'])) ?> - </div> + <?= $this->modal->submitButtons() ?> </form> diff --git a/app/Template/user_view/sessions.php b/app/Template/user_view/sessions.php index 10497e4f..dec11752 100644 --- a/app/Template/user_view/sessions.php +++ b/app/Template/user_view/sessions.php @@ -19,7 +19,7 @@ <td><?= $this->dt->datetime($session['expiration']) ?></td> <td><?= $this->text->e($session['ip']) ?></td> <td><?= $this->text->e($session['user_agent']) ?></td> - <td><?= $this->url->link(t('Remove'), 'UserViewController', 'removeSession', array('user_id' => $user['id'], 'id' => $session['id']), true) ?></td> + <td><?= $this->url->link(t('Remove'), 'UserViewController', 'removeSession', array('user_id' => $user['id'], 'id' => $session['id']), true, 'js-modal-replace') ?></td> </tr> <?php endforeach ?> </table> diff --git a/app/Template/user_view/share.php b/app/Template/user_view/share.php index 318d98ea..784e0ebd 100644 --- a/app/Template/user_view/share.php +++ b/app/Template/user_view/share.php @@ -9,7 +9,7 @@ <li><strong><?= $this->url->icon('calendar', t('iCal feed'), 'ICalendarController', 'user', array('token' => $user['token']), false, '', '', true) ?></strong></li> </ul> </div> - <?= $this->url->link(t('Disable public access'), 'UserViewController', 'share', array('user_id' => $user['id'], 'switch' => 'disable'), true, 'btn btn-red') ?> + <?= $this->url->link(t('Disable public access'), 'UserViewController', 'share', array('user_id' => $user['id'], 'switch' => 'disable'), true, 'btn btn-red js-modal-replace') ?> <?php else: ?> - <?= $this->url->link(t('Enable public access'), 'UserViewController', 'share', array('user_id' => $user['id'], 'switch' => 'enable'), true, 'btn btn-blue') ?> + <?= $this->url->link(t('Enable public access'), 'UserViewController', 'share', array('user_id' => $user['id'], 'switch' => 'enable'), true, 'btn btn-blue js-modal-replace') ?> <?php endif ?> diff --git a/app/Template/user_view/sidebar.php b/app/Template/user_view/sidebar.php index ef494e42..1542396a 100644 --- a/app/Template/user_view/sidebar.php +++ b/app/Template/user_view/sidebar.php @@ -49,7 +49,7 @@ <li <?= $this->app->checkMenuSelection('UserModificationController', 'show') ?>> <?= $this->url->link(t('Edit profile'), 'UserModificationController', 'show', array('user_id' => $user['id'])) ?> </li> - <li <?= $this->app->checkMenuSelection('AvatarFile') ?>> + <li <?= $this->app->checkMenuSelection('AvatarFileController') ?>> <?= $this->url->link(t('Avatar'), 'AvatarFileController', 'show', array('user_id' => $user['id'])) ?> </li> <?php endif ?> |