From 938b417bfc2aeb1c6fa4527f4cccb3d70450cbe3 Mon Sep 17 00:00:00 2001
From: Uwe Steinmann
Date: Wed, 2 Jul 2025 16:30:49 +0200
Subject: [PATCH 1/3] add missing translations
---
languages/ar_EG/lang.inc | 3 +++
languages/bg_BG/lang.inc | 3 +++
languages/ca_ES/lang.inc | 3 +++
languages/cs_CZ/lang.inc | 3 +++
languages/de_DE/lang.inc | 5 ++++-
languages/el_GR/lang.inc | 3 +++
languages/en_GB/lang.inc | 5 ++++-
languages/es_ES/lang.inc | 3 +++
languages/fr_FR/lang.inc | 3 +++
languages/hr_HR/lang.inc | 3 +++
languages/hu_HU/lang.inc | 3 +++
languages/id_ID/lang.inc | 7 +++++--
languages/it_IT/lang.inc | 3 +++
languages/ko_KR/lang.inc | 3 +++
languages/lo_LA/lang.inc | 3 +++
languages/nb_NO/lang.inc | 3 +++
languages/nl_NL/lang.inc | 3 +++
languages/pl_PL/lang.inc | 3 +++
languages/pt_BR/lang.inc | 3 +++
languages/ro_RO/lang.inc | 3 +++
languages/ru_RU/lang.inc | 3 +++
languages/sk_SK/lang.inc | 3 +++
languages/sv_SE/lang.inc | 3 +++
languages/tr_TR/lang.inc | 3 +++
languages/uk_UA/lang.inc | 3 +++
languages/zh_CN/lang.inc | 3 +++
languages/zh_TW/lang.inc | 3 +++
27 files changed, 85 insertions(+), 4 deletions(-)
diff --git a/languages/ar_EG/lang.inc b/languages/ar_EG/lang.inc
index 06958e7a7..3257d2b67 100644
--- a/languages/ar_EG/lang.inc
+++ b/languages/ar_EG/lang.inc
@@ -1157,6 +1157,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => 'لا يوجد سير عمل',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'التحقق من مستند/مجلد',
'objects_without_attribute' => '',
'object_check_critical' => 'التحقق من الشيء في حالة حرجة',
diff --git a/languages/bg_BG/lang.inc b/languages/bg_BG/lang.inc
index 8b579c435..9289e88a0 100644
--- a/languages/bg_BG/lang.inc
+++ b/languages/bg_BG/lang.inc
@@ -1035,6 +1035,9 @@ $text = array(
'no_workflows' => '',
'no_workflow_available' => '',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Проверка на Папка/Документ',
'objects_without_attribute' => '',
'object_check_critical' => '',
diff --git a/languages/ca_ES/lang.inc b/languages/ca_ES/lang.inc
index 7a3bccb30..e77ad273f 100644
--- a/languages/ca_ES/lang.inc
+++ b/languages/ca_ES/lang.inc
@@ -1040,6 +1040,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => '',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Carpeta / Comprobació del document',
'objects_without_attribute' => '',
'object_check_critical' => '',
diff --git a/languages/cs_CZ/lang.inc b/languages/cs_CZ/lang.inc
index ca4e53628..963ae1362 100644
--- a/languages/cs_CZ/lang.inc
+++ b/languages/cs_CZ/lang.inc
@@ -1188,6 +1188,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => 'Není k dispozici žádné workflow',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Kontrola složky/dokumentu',
'objects_without_attribute' => '',
'object_check_critical' => 'Kritické chyby',
diff --git a/languages/de_DE/lang.inc b/languages/de_DE/lang.inc
index 25a55a946..d583c1878 100644
--- a/languages/de_DE/lang.inc
+++ b/languages/de_DE/lang.inc
@@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
-// Translators: Admin (3448), dgrutsch (22)
+// Translators: Admin (3451), dgrutsch (22)
$text = array(
'2_factor_auth' => '2-Faktor Authentifizierung',
@@ -1421,6 +1421,9 @@ URL: [url]
',
'no_workflows' => 'Sie haben bisher keinen Workflow erstellt',
'no_workflow_available' => 'Kein Workflow verfügbar',
'number_count' => 'Anzahl',
+'n_of_m_approved' => '[approved]/[total] freigegeben',
+'n_of_m_reviewed' => '[reviewed]/[total] geprüft',
+'n_of_m_revised' => '[revised]/[total] wiederholt geprüft',
'objectcheck' => 'Ordner- und Dokumentenprüfung',
'objects_without_attribute' => 'Objekte ohne dieses Attribut',
'object_check_critical' => 'Kritische Fehler',
diff --git a/languages/el_GR/lang.inc b/languages/el_GR/lang.inc
index bc311077a..dd2e6e103 100644
--- a/languages/el_GR/lang.inc
+++ b/languages/el_GR/lang.inc
@@ -1046,6 +1046,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => '',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Αναζήτηση σε αρχεία και φακέλους',
'objects_without_attribute' => '',
'object_check_critical' => '',
diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc
index 0b980afd5..22c5dcabf 100644
--- a/languages/en_GB/lang.inc
+++ b/languages/en_GB/lang.inc
@@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
-// Translators: Admin (2551), archonwang (3), dgrutsch (9), netixw (14)
+// Translators: Admin (2554), archonwang (3), dgrutsch (9), netixw (14)
$text = array(
'2_factor_auth' => '2-factor authentication',
@@ -1423,6 +1423,9 @@ URL: [url]',
'no_workflows' => 'You have not created a workflow yet',
'no_workflow_available' => 'No workflow available',
'number_count' => 'number',
+'n_of_m_approved' => '[approved]/[total] approved',
+'n_of_m_reviewed' => '[reviewed]/[total] reviewed',
+'n_of_m_revised' => '[revised]/[total] revised',
'objectcheck' => 'Folder/Document check',
'objects_without_attribute' => 'Objects without this attribute',
'object_check_critical' => 'Critical errors',
diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc
index fad33d0c9..507f42867 100644
--- a/languages/es_ES/lang.inc
+++ b/languages/es_ES/lang.inc
@@ -1172,6 +1172,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => '',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Chequeo de carpeta/documento',
'objects_without_attribute' => '',
'object_check_critical' => 'Errores críticos',
diff --git a/languages/fr_FR/lang.inc b/languages/fr_FR/lang.inc
index 4f468d0e2..408ad846a 100644
--- a/languages/fr_FR/lang.inc
+++ b/languages/fr_FR/lang.inc
@@ -1378,6 +1378,9 @@ URL : [url]',
'no_workflows' => 'Vous n’avez pas encore créé de workflow',
'no_workflow_available' => 'Aucun workflow disponible',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Vérification des dossiers et documents',
'objects_without_attribute' => '',
'object_check_critical' => 'Erreurs critiques',
diff --git a/languages/hr_HR/lang.inc b/languages/hr_HR/lang.inc
index df80ac572..7c79a5fad 100644
--- a/languages/hr_HR/lang.inc
+++ b/languages/hr_HR/lang.inc
@@ -1168,6 +1168,9 @@ Internet poveznica: [url]',
'no_workflows' => 'nema radnih procesa',
'no_workflow_available' => 'Nema dostupnog toka rada',
'number_count' => 'brojati broj',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Provjera mapa / dokumenata',
'objects_without_attribute' => 'objekti bez atributa',
'object_check_critical' => 'provjera objekta kritična',
diff --git a/languages/hu_HU/lang.inc b/languages/hu_HU/lang.inc
index 508463b74..f03a8eb98 100644
--- a/languages/hu_HU/lang.inc
+++ b/languages/hu_HU/lang.inc
@@ -1163,6 +1163,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => '',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Mappa/Dokumentum ellenőrzés',
'objects_without_attribute' => '',
'object_check_critical' => '',
diff --git a/languages/id_ID/lang.inc b/languages/id_ID/lang.inc
index 2d4fa0e19..4f75ba8f2 100644
--- a/languages/id_ID/lang.inc
+++ b/languages/id_ID/lang.inc
@@ -19,7 +19,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
-// Translators: Admin (489), atoz-chevara (835)
+// Translators: Admin (490), atoz-chevara (835)
$text = array(
'2_factor_auth' => '',
@@ -1256,6 +1256,9 @@ URL: [url]',
'no_workflows' => 'Anda belum membuat alur kerja',
'no_workflow_available' => 'Tidak ada alur kerja yang tersedia',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Pemeriksaan Folder/Dokumen',
'objects_without_attribute' => '',
'object_check_critical' => 'Kesalahan kritis',
@@ -2436,7 +2439,7 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
'versioning_file_creation_warning' => '',
'versioning_info' => 'Info versi',
'versiontolow' => 'Versi terlalu rendah',
-'version_comment' => '',
+'version_comment' => 'komen versi',
'version_comment_changed_email_body' => '',
'version_comment_changed_email_body_html' => '',
'version_comment_changed_email_subject' => '',
diff --git a/languages/it_IT/lang.inc b/languages/it_IT/lang.inc
index 4d25fd4c1..de256cd80 100644
--- a/languages/it_IT/lang.inc
+++ b/languages/it_IT/lang.inc
@@ -1170,6 +1170,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => 'Nessun flusso di lavoro disponibile',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Controllo cartelle o documenti',
'objects_without_attribute' => '',
'object_check_critical' => 'Errori critici',
diff --git a/languages/ko_KR/lang.inc b/languages/ko_KR/lang.inc
index 93199c404..fb435668b 100644
--- a/languages/ko_KR/lang.inc
+++ b/languages/ko_KR/lang.inc
@@ -1170,6 +1170,9 @@ URL [url]',
'no_workflows' => '',
'no_workflow_available' => '사용 가능한 워크 플로우 없습니다.',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => '폴더 / 문서 확인',
'objects_without_attribute' => '',
'object_check_critical' => '치명적 오류',
diff --git a/languages/lo_LA/lang.inc b/languages/lo_LA/lang.inc
index 8adfd0032..7aa0a8dac 100644
--- a/languages/lo_LA/lang.inc
+++ b/languages/lo_LA/lang.inc
@@ -1167,6 +1167,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => 'ບໍ່ມີເວີກໂຟລທີ່ພ້ອມໄຊ້ງານ',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'ການກວດສອບໂຟລເດີ / ເອກະສານ',
'objects_without_attribute' => '',
'object_check_critical' => 'ຂໍ້ຜິດພາດທີ່ສຳຄັນ',
diff --git a/languages/nb_NO/lang.inc b/languages/nb_NO/lang.inc
index 274b46cff..a18a0a152 100644
--- a/languages/nb_NO/lang.inc
+++ b/languages/nb_NO/lang.inc
@@ -1188,6 +1188,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => 'Ingen arbeidsflyt tilgjengelig',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Mappe/dokument sjekk',
'objects_without_attribute' => '',
'object_check_critical' => 'Kritisk feil!!',
diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc
index 60f993eab..e45b34500 100644
--- a/languages/nl_NL/lang.inc
+++ b/languages/nl_NL/lang.inc
@@ -1180,6 +1180,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => 'Geen workflow beschikbaar',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Mappen en documenten controleren',
'objects_without_attribute' => '',
'object_check_critical' => 'Ernstige fouten',
diff --git a/languages/pl_PL/lang.inc b/languages/pl_PL/lang.inc
index 58cc2d1dc..eedf5edce 100644
--- a/languages/pl_PL/lang.inc
+++ b/languages/pl_PL/lang.inc
@@ -1398,6 +1398,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => 'Brak przepływu pracy',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Sprawdź Katalog/Dokument',
'objects_without_attribute' => '',
'object_check_critical' => 'Błędy krytyczne',
diff --git a/languages/pt_BR/lang.inc b/languages/pt_BR/lang.inc
index cf02e2eef..40e8b2955 100644
--- a/languages/pt_BR/lang.inc
+++ b/languages/pt_BR/lang.inc
@@ -1187,6 +1187,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => 'Nenhum fluxo de trabalho disponível',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Verificação da Pasta/Documento',
'objects_without_attribute' => '',
'object_check_critical' => 'Erros críticos',
diff --git a/languages/ro_RO/lang.inc b/languages/ro_RO/lang.inc
index 875825371..438d837de 100644
--- a/languages/ro_RO/lang.inc
+++ b/languages/ro_RO/lang.inc
@@ -1169,6 +1169,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => 'Nici un workflow disponibil',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Verificare folder/document',
'objects_without_attribute' => '',
'object_check_critical' => '',
diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc
index 68d748b63..e13c38e42 100644
--- a/languages/ru_RU/lang.inc
+++ b/languages/ru_RU/lang.inc
@@ -1168,6 +1168,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => 'Отсутствует процесс',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Проверка целостности',
'objects_without_attribute' => '',
'object_check_critical' => '',
diff --git a/languages/sk_SK/lang.inc b/languages/sk_SK/lang.inc
index dac3d748f..2a565b71e 100644
--- a/languages/sk_SK/lang.inc
+++ b/languages/sk_SK/lang.inc
@@ -1188,6 +1188,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => 'Nie je k dispozícii žiaden workflow',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Kontrola Adresárov/Dokumentov',
'objects_without_attribute' => '',
'object_check_critical' => 'Kritické chyby',
diff --git a/languages/sv_SE/lang.inc b/languages/sv_SE/lang.inc
index 3deaf29de..e2960205d 100644
--- a/languages/sv_SE/lang.inc
+++ b/languages/sv_SE/lang.inc
@@ -1175,6 +1175,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => 'Arbetsflöde saknas',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Kontroll av Katalog/Dokument',
'objects_without_attribute' => '',
'object_check_critical' => 'Kritiska fel',
diff --git a/languages/tr_TR/lang.inc b/languages/tr_TR/lang.inc
index d285d4b71..5bf83c72b 100644
--- a/languages/tr_TR/lang.inc
+++ b/languages/tr_TR/lang.inc
@@ -1161,6 +1161,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => 'Uygun iş akışı yok',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Klasör/Doküman kontrol',
'objects_without_attribute' => '',
'object_check_critical' => '',
diff --git a/languages/uk_UA/lang.inc b/languages/uk_UA/lang.inc
index e8b4431ea..c487af0c9 100644
--- a/languages/uk_UA/lang.inc
+++ b/languages/uk_UA/lang.inc
@@ -1167,6 +1167,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => 'Немає доступних процесів',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => 'Перевірка каталогу чи документа',
'objects_without_attribute' => '',
'object_check_critical' => '',
diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc
index 7ba0e73ef..a615b4d1a 100644
--- a/languages/zh_CN/lang.inc
+++ b/languages/zh_CN/lang.inc
@@ -1171,6 +1171,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => '工作流不可用',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => '文件夹/文件检查',
'objects_without_attribute' => '',
'object_check_critical' => '重大错误',
diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc
index 3a9e80f4e..d1cb1aed9 100644
--- a/languages/zh_TW/lang.inc
+++ b/languages/zh_TW/lang.inc
@@ -1188,6 +1188,9 @@ URL: [url]',
'no_workflows' => '',
'no_workflow_available' => '沒有可用的工作流程',
'number_count' => '',
+'n_of_m_approved' => '',
+'n_of_m_reviewed' => '',
+'n_of_m_revised' => '',
'objectcheck' => '資料夾/檔檢查',
'objects_without_attribute' => '',
'object_check_critical' => '嚴重錯誤',
From 4330c7fc7b0432a8014ffd7e6934476e64c9f397 Mon Sep 17 00:00:00 2001
From: Uwe Steinmann
Date: Wed, 2 Jul 2025 16:31:45 +0200
Subject: [PATCH 2/3] add methods to show number of reviewers/approvers all
ready done their work
---
views/bootstrap/class.Bootstrap.php | 26 ++++++++++++++++++++++++++
views/bootstrap4/class.Bootstrap4.php | 26 ++++++++++++++++++++++++++
2 files changed, 52 insertions(+)
diff --git a/views/bootstrap/class.Bootstrap.php b/views/bootstrap/class.Bootstrap.php
index 14a2705ef..ad152a6d4 100644
--- a/views/bootstrap/class.Bootstrap.php
+++ b/views/bootstrap/class.Bootstrap.php
@@ -3170,11 +3170,37 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
$content .= 'getName()) : '').'">'.($workflowstate ? htmlspecialchars($workflowstate->getName()) : '').'';
} else {
$content .= $this->getOverallStatusIcon($status['status']);
+ if($status['status'] == S_DRAFT_REV)
+ $content .= '
'.$this->documentListRowReviewBar($latestContent);
+ elseif($status['status'] == S_DRAFT_APP)
+ $content .= '
'.$this->documentListRowApprovalBar($latestContent);
}
$content .= "";
return $content;
} /* }}} */
+ function documentListRowReviewBar($latestContent) { /* {{{ */
+ $accessop = $this->params['accessobject'];
+
+ $content = '';
+ $stat = [];
+ if($accessop->check_view_access($this, array('action'=>'reviewBar')) /*$owner->getID() == $user->getID()*/ && $reviewStatus = $latestContent->getReviewStatus(1, $stat)) {
+ $content .= getMLText('n_of_m_reviewed', ['reviewed'=>$stat['1'], 'total'=>$stat["1"]+$stat["0"]]);
+ }
+ return $content;
+ } /* }}} */
+
+ function documentListRowApprovalBar($latestContent) { /* {{{ */
+ $accessop = $this->params['accessobject'];
+
+ $content = '';
+ $stat = [];
+ if($accessop->check_view_access($this, array('action'=>'approvalBar')) /*$owner->getID() == $user->getID()*/ && $approvalStatus = $latestContent->getApprovalStatus(1, $stat)) {
+ $content .= getMLText('n_of_m_approved', ['approved'=>$stat['1'], 'total'=>$stat["1"]+$stat["0"]]);
+ }
+ return $content;
+ } /* }}} */
+
function documentListRowAction($document, $previewer, $skipcont=false, $version=0, $extracontent=array()) { /* {{{ */
$user = $this->params['user'];
$session = $this->params['session'];
diff --git a/views/bootstrap4/class.Bootstrap4.php b/views/bootstrap4/class.Bootstrap4.php
index 4bea186f6..68577b2f5 100644
--- a/views/bootstrap4/class.Bootstrap4.php
+++ b/views/bootstrap4/class.Bootstrap4.php
@@ -3220,11 +3220,37 @@ $('body').on('click', '[id^=\"table-row-folder\"] td:nth-child(2)', function(ev)
$content .= 'getName()) : '').'">'.($workflowstate ? htmlspecialchars($workflowstate->getName()) : '').'';
} else {
$content .= $this->getOverallStatusIcon($status['status']);
+ if($status['status'] == S_DRAFT_REV)
+ $content .= '
'.$this->documentListRowReviewBar($latestContent);
+ elseif($status['status'] == S_DRAFT_APP)
+ $content .= '
'.$this->documentListRowApprovalBar($latestContent);
}
$content .= "";
return $content;
} /* }}} */
+ function documentListRowReviewBar($latestContent) { /* {{{ */
+ $accessop = $this->params['accessobject'];
+
+ $content = '';
+ $stat = [];
+ if($accessop->check_view_access($this, array('action'=>'reviewBar')) /*$owner->getID() == $user->getID()*/ && $reviewStatus = $latestContent->getReviewStatus(1, $stat)) {
+ $content .= getMLText('n_of_m_reviewed', ['reviewed'=>$stat['1'], 'total'=>$stat["1"]+$stat["0"]]);
+ }
+ return $content;
+ } /* }}} */
+
+ function documentListRowApprovalBar($latestContent) { /* {{{ */
+ $accessop = $this->params['accessobject'];
+
+ $content = '';
+ $stat = [];
+ if($accessop->check_view_access($this, array('action'=>'approvalBar')) /*$owner->getID() == $user->getID()*/ && $approvalStatus = $latestContent->getApprovalStatus(1, $stat)) {
+ $content .= getMLText('n_of_m_approved', ['approved'=>$stat['1'], 'total'=>$stat["1"]+$stat["0"]]);
+ }
+ return $content;
+ } /* }}} */
+
function documentListRowAction($document, $previewer, $skipcont=false, $version=0, $extracontent=array()) { /* {{{ */
$user = $this->params['user'];
$session = $this->params['session'];
From 3c9b51c15242be63f8e3f21e09019dac52cfad92 Mon Sep 17 00:00:00 2001
From: Uwe Steinmann
Date: Wed, 2 Jul 2025 16:32:25 +0200
Subject: [PATCH 3/3] show number of reviewers/approvers how has done their
work
---
views/bootstrap/class.Tasks.php | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/views/bootstrap/class.Tasks.php b/views/bootstrap/class.Tasks.php
index c37ca6773..0f94fcdd0 100644
--- a/views/bootstrap/class.Tasks.php
+++ b/views/bootstrap/class.Tasks.php
@@ -203,7 +203,9 @@ class SeedDMS_View_Tasks extends SeedDMS_Theme_Style {
$subitems = [];
foreach($tasks['review'] as $t) {
$doc = $dms->getDocument($t['id']);
- $subitems[] = array('label'=>htmlspecialchars($doc->getName()), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=revapp", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
+ $stat = [];
+ $reviewstatus = $doc->getLatestContent()->getReviewStatus(1, $stat);
+ $subitems[] = array('label'=>htmlspecialchars($doc->getName()).' ('.$stat[1].'/'.($stat['0']+$stat['1']).')', 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=revapp", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
}
$menuitems['tasks']['children']['review'] = array('label'=>getMLText('documents_to_review'), 'children'=>$subitems);
@@ -212,7 +214,9 @@ class SeedDMS_View_Tasks extends SeedDMS_Theme_Style {
$subitems = [];
foreach($tasks['approval'] as $t) {
$doc = $dms->getDocument($t['id']);
- $subitems[] = array('label'=>htmlspecialchars($doc->getName()), 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=revapp", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
+ $stat = [];
+ $reviewstatus = $doc->getLatestContent()->getApprovalStatus(1, $stat);
+ $subitems[] = array('label'=>htmlspecialchars($doc->getName()).' ('.$stat[1].'/'.($stat['0']+$stat['1']).')', 'link'=>$this->params['settings']->_httpRoot."out/out.ViewDocument.php?documentid=".$doc->getID()."¤ttab=revapp", 'class'=>"table-row-document", 'rel'=>"document_".$doc->getID());
}
$menuitems['tasks']['children']['approval'] = array('label'=>getMLText('documents_to_approve'), 'children'=>$subitems);
}