More work in progress on time record attachments.
authorNik Okuntseff <support@anuko.com>
Sat, 6 Apr 2019 13:21:29 +0000 (13:21 +0000)
committerNik Okuntseff <support@anuko.com>
Sat, 6 Apr 2019 13:21:29 +0000 (13:21 +0000)
35 files changed:
WEB-INF/lib/ttFileHelper.class.php
WEB-INF/resources/ca.lang.php
WEB-INF/resources/cs.lang.php
WEB-INF/resources/da.lang.php
WEB-INF/resources/de.lang.php
WEB-INF/resources/en.lang.php
WEB-INF/resources/es.lang.php
WEB-INF/resources/et.lang.php
WEB-INF/resources/fa.lang.php
WEB-INF/resources/fi.lang.php
WEB-INF/resources/fr.lang.php
WEB-INF/resources/gr.lang.php
WEB-INF/resources/he.lang.php
WEB-INF/resources/hu.lang.php
WEB-INF/resources/it.lang.php
WEB-INF/resources/ja.lang.php
WEB-INF/resources/ko.lang.php
WEB-INF/resources/nl.lang.php
WEB-INF/resources/no.lang.php
WEB-INF/resources/pl.lang.php
WEB-INF/resources/pt-br.lang.php
WEB-INF/resources/pt.lang.php
WEB-INF/resources/ro.lang.php
WEB-INF/resources/ru.lang.php
WEB-INF/resources/sk.lang.php
WEB-INF/resources/sl.lang.php
WEB-INF/resources/sr.lang.php
WEB-INF/resources/sv.lang.php
WEB-INF/resources/tr.lang.php
WEB-INF/resources/zh-cn.lang.php
WEB-INF/resources/zh-tw.lang.php
WEB-INF/templates/footer.tpl
WEB-INF/templates/time_files.tpl [new file with mode: 0644]
project_files.php
time_files.php

index f3c36e5..9d18022 100644 (file)
@@ -297,8 +297,8 @@ class ttFileHelper {
     return $val['group_key'];
   }
 
-  // getProjectFiles obtains a list of files for a project.
-  static function getProjectFiles($project_id) {
+  // getEntityFiles obtains a list of files for an entity.
+  static function getEntityFiles($id, $type) {
     global $user;
     $mdb2 = getConnection();
 
@@ -306,8 +306,9 @@ class ttFileHelper {
     $org_id = $user->org_id;
 
     $result = array();
+    $entity_type = $mdb2->quote($type);
     $sql = "select id, remote_id, file_name as name, description from tt_files".
-      " where entity_type = 'project' and entity_id = $project_id".
+      " where entity_type = $entity_type and entity_id = $id".
       " and group_id = $group_id and org_id = $org_id and status = 1 order by id";
     $res = $mdb2->query($sql);
     if (!is_a($res, 'PEAR_Error')) {
index f6a5357..4454d34 100644 (file)
@@ -300,6 +300,7 @@ $i18n_key_words = array(
 'title.edit_time_record' => 'Modificant l\\\'historial de temps',
 'title.delete_time_record' => 'Eliminant l\\\'historial de temps',
 // TODO: translate the following.
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index fc97687..aa59054 100644 (file)
@@ -310,6 +310,7 @@ $i18n_key_words = array(
 'title.edit_time_record' => 'Upravit časový záznam',
 'title.delete_time_record' => 'Smazat časový záznam',
 // TODO: translate the following.
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index 6c748c8..0248b8d 100644 (file)
@@ -282,6 +282,8 @@ $i18n_key_words = array(
 'title.time' => 'Tid',
 'title.edit_time_record' => 'Redigér Tidsregistrering',
 'title.delete_time_record' => 'Slet Tidsregistrering',
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 'title.expenses' => 'Udgifter',
 'title.edit_expense' => 'Redigér Udgift',
 'title.delete_expense' => 'Slet Udgift',
index e162f39..18bfc2e 100644 (file)
@@ -270,6 +270,8 @@ $i18n_key_words = array(
 'title.time' => 'Zeiten',
 'title.edit_time_record' => 'Bearbeiten des Stundeneintrags',
 'title.delete_time_record' => 'Eintrag löschen',
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 'title.expenses' => 'Kosten',
 'title.edit_expense' => 'Kostenposition ändern',
 'title.delete_expense' => 'Kostenposition löschen',
index 54da108..98c6f91 100644 (file)
@@ -258,6 +258,7 @@ $i18n_key_words = array(
 'title.time' => 'Time',
 'title.edit_time_record' => 'Editing Time Record',
 'title.delete_time_record' => 'Deleting Time Record',
+'title.time_files' => 'Time Record Files',
 'title.expenses' => 'Expenses',
 'title.edit_expense' => 'Editing Expense Item',
 'title.delete_expense' => 'Deleting Expense Item',
index aee71b4..8e7ce8c 100644 (file)
@@ -298,7 +298,8 @@ $i18n_key_words = array(
 'title.time' => 'Tiempo',
 'title.edit_time_record' => 'Modificando el historial de tiempo',
 'title.delete_time_record' => 'Eliminando el historial de tiempo',
-// TODO: translate the following.
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index 4963cc5..65beb3e 100644 (file)
@@ -288,6 +288,8 @@ $i18n_key_words = array(
 'title.time' => 'Ajaarvestus',
 'title.edit_time_record' => 'Ajakande muutmine',
 'title.delete_time_record' => 'Ajakande kustutamine',
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 'title.expenses' => 'Kulud',
 'title.edit_expense' => 'Kulukirje muutmine',
 'title.delete_expense' => 'Kulukirje kustutamine',
index d6ed945..6a74f0e 100644 (file)
@@ -293,6 +293,8 @@ $i18n_key_words = array(
 'title.time' => 'زمان',
 'title.edit_time_record' => 'ویرایش رکورد زمان',
 'title.delete_time_record' => 'حذف رکورد زمان',
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 'title.expenses' => 'هزینه ها',
 'title.edit_expense' => 'ویرایش آیتم هزینه ها',
 'title.delete_expense' => 'حذف آیتم هزینه ها',
index 5aaf7f9..d02a010 100644 (file)
@@ -286,6 +286,8 @@ $i18n_key_words = array(
 'title.time' => 'Tuntien kirjaus',
 'title.edit_time_record' => 'Tuntikirjausten muokkaus',
 'title.delete_time_record' => 'Tuntikirjausten poisto',
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 'title.expenses' => 'Kulut',
 'title.edit_expense' => 'Kulutietojen muokkaus',
 'title.delete_expense' => 'Kulutiedon poisto',
index f95bf74..45447d7 100644 (file)
@@ -280,6 +280,8 @@ $i18n_key_words = array(
 'title.time' => 'Temps',
 'title.edit_time_record' => 'Modification de l\\\'entrée de temps',
 'title.delete_time_record' => 'Suppression de l\\\'entrée de temps',
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 'title.expenses' => 'Dépenses',
 'title.edit_expense' => 'Modification d\\\'une dépense',
 'title.delete_expense' => 'Suppression d\\\'une dépense',
index ee10172..68208ee 100644 (file)
@@ -273,6 +273,8 @@ $i18n_key_words = array(
 'title.time' => 'Χρόνος',
 'title.edit_time_record' => 'Επεξεργασία χρόνου',
 'title.delete_time_record' => 'Διαγραφή χρόνου',
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 'title.expenses' => 'Δαπάνες',
 'title.edit_expense' => 'Επεξεργασία δαπάνης',
 'title.delete_expense' => 'Διαγραφή δαπάνης',
index 9005690..5c199ec 100644 (file)
@@ -303,7 +303,8 @@ $i18n_key_words = array(
 'title.time' => 'זמן',
 'title.edit_time_record' => 'עריכת רשומה',
 'title.delete_time_record' => 'מחיקת רשומה',
-// TODO: translate the following.
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index 58fcf50..5f7b40c 100644 (file)
@@ -300,6 +300,7 @@ $i18n_key_words = array(
 // 'title.time' => 'Time',
 // 'title.edit_time_record' => 'Editing Time Record',
 // 'title.delete_time_record' => 'Deleting Time Record',
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index 4b6cf98..678b1b0 100644 (file)
@@ -281,6 +281,8 @@ $i18n_key_words = array(
 'title.time' => 'Tempo',
 'title.edit_time_record' => 'Modifica record temporale',
 'title.delete_time_record' => 'Eliminazione record temporale',
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 'title.expenses' => 'Spese',
 'title.edit_expense' => 'Modifica voce di spesa',
 'title.delete_expense' => 'Eliminezione voce di spesa',
index b4fd746..8b68a1b 100644 (file)
@@ -305,7 +305,8 @@ $i18n_key_words = array(
 'title.time' => '時間',
 'title.edit_time_record' => '時間レコードの編集',
 'title.delete_time_record' => '時間レコードの削除',
-// TODO: translate the following.
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index b7c4a69..181e070 100644 (file)
@@ -305,7 +305,8 @@ $i18n_key_words = array(
 'title.time' => '시간',
 'title.edit_time_record' => '시간기록을 편집하기',
 'title.delete_time_record' => '시간기록을 삭제하기',
-// TODO: translate the following.
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index f060471..e444f21 100644 (file)
@@ -258,6 +258,8 @@ $i18n_key_words = array(
 'title.time' => 'Tijdsregistraties',
 'title.edit_time_record' => 'Wijzigen tijdrecord',
 'title.delete_time_record' => 'Verwijder tijdrecord',
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 'title.expenses' => 'Kosten',
 'title.edit_expense' => 'Bewerk kosten artikel',
 'title.delete_expense' => 'Verwijder kosten artikel',
index d8848cd..0f91855 100644 (file)
@@ -302,7 +302,8 @@ $i18n_key_words = array(
 'title.time' => 'Tid',
 'title.edit_time_record' => 'Endre tids oppføringen',
 'title.delete_time_record' => 'Slett tids oppføringen',
-// TODO: translate the following.
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index b62c3b6..4d457d6 100644 (file)
@@ -287,6 +287,8 @@ $i18n_key_words = array(
 'title.time' => 'Wybrana data',
 'title.edit_time_record' => 'Edytowanie wpisu',
 'title.delete_time_record' => 'Usuwanie wpisu',
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 'title.expenses' => 'Wydatki',
 'title.edit_expense' => 'Edytowanie wpisu',
 'title.delete_expense' => 'Usuwanie wpisu',
index 7662b98..88344d8 100644 (file)
@@ -284,6 +284,8 @@ $i18n_key_words = array(
 'title.time' => 'Tempo',
 'title.edit_time_record' => 'Editando entrada de hora',
 'title.delete_time_record' => 'Apagando entrada de hora',
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 'title.expenses' => 'Gastos',
 'title.edit_expense' => 'Editando item de gasto',
 'title.delete_expense' => 'Apagando item de gasto',
index b76b0dc..c388f09 100644 (file)
@@ -289,6 +289,7 @@ $i18n_key_words = array(
 // 'title.time' => 'Time',
 // 'title.edit_time_record' => 'Editing Time Record',
 // 'title.delete_time_record' => 'Deleting Time Record',
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index 908c7d3..7800b2b 100644 (file)
@@ -305,7 +305,8 @@ $i18n_key_words = array(
 'title.time' => 'Timpul',
 'title.edit_time_record' => 'Editarea inregistrarii timpului',
 'title.delete_time_record' => 'Ștergerea inregistrarii timpului',
-// TODO: translate the following.
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index cb7c092..d1b74e0 100644 (file)
@@ -257,6 +257,7 @@ $i18n_key_words = array(
 'title.time' => 'Время',
 'title.edit_time_record' => 'Редактирование записи о времени',
 'title.delete_time_record' => 'Удаление записи о времени',
+'title.time_files' => 'Файлы записи о времени',
 'title.expenses' => 'Расходы',
 'title.edit_expense' => 'Редактирование предмета расхода',
 'title.delete_expense' => 'Удаление предмета расхода',
index 2024b49..7073ac5 100644 (file)
@@ -292,7 +292,8 @@ $i18n_key_words = array(
 'title.time' => 'Časový záznam',
 'title.edit_time_record' => 'Upravovanie časového záznamu',
 'title.delete_time_record' => 'Vymazávanie časového záznamu',
-// TODO: translate the following.
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index bd7615d..2b60900 100644 (file)
@@ -285,6 +285,7 @@ $i18n_key_words = array(
 // 'title.time' => 'Time',
 // 'title.edit_time_record' => 'Editing Time Record',
 // 'title.delete_time_record' => 'Deleting Time Record',
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index 89875af..a6b4b74 100644 (file)
@@ -285,6 +285,8 @@ $i18n_key_words = array(
 'title.time' => 'Vreme',
 'title.edit_time_record' => 'Izmeni unos vremena',
 'title.delete_time_record' => 'Obriši unos vremena',
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 'title.expenses' => 'Troškovi',
 'title.edit_expense' => 'Izmeni stavke troškova',
 'title.delete_expense' => 'Obriši stavke troškova',
index ff2dda3..b2837cc 100644 (file)
@@ -281,6 +281,8 @@ $i18n_key_words = array(
 'title.time' => 'Tider',
 'title.edit_time_record' => 'Redigera tidsregistrering',
 'title.delete_time_record' => 'Ta bort tidsregistrering',
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 'title.expenses' => 'Kostnader',
 'title.edit_expense' => 'Redigera kostnad',
 'title.delete_expense' => 'Ta bort kostnad',
index c0411a6..cef0d9e 100644 (file)
@@ -314,7 +314,8 @@ $i18n_key_words = array(
 'title.time' => 'Zaman',
 'title.edit_time_record' => 'Zaman kaydını düzenliyor',
 'title.delete_time_record' => 'Zaman kaydını siliyor',
-// TODO: translate the following.
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index 208bd68..551ef56 100644 (file)
@@ -293,7 +293,8 @@ $i18n_key_words = array(
 // 'title.time' => 'Time',
 'title.edit_time_record' => '编辑时间记录',
 'title.delete_time_record' => '删除时间记录',
-// TODO: translate the following.
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index 0dcd0e8..eef9179 100644 (file)
@@ -300,7 +300,8 @@ $i18n_key_words = array(
 // 'title.time' => 'Time',
 'title.edit_time_record' => '編輯時間記錄',
 'title.delete_time_record' => '刪除時間記錄',
-// TODO: translate the following.
+// TODO: Translate the following.
+// 'title.time_files' => 'Time Record Files',
 // 'title.expenses' => 'Expenses',
 // 'title.edit_expense' => 'Editing Expense Item',
 // 'title.delete_expense' => 'Deleting Expense Item',
index dee093f..17d7a68 100644 (file)
@@ -12,7 +12,7 @@
       <br>
       <table cellspacing="0" cellpadding="4" width="100%" border="0">
         <tr>
-          <td align="center">&nbsp;Anuko Time Tracker 1.18.63.4909 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+          <td align="center">&nbsp;Anuko Time Tracker 1.18.63.4910 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
             <a href="https://www.anuko.com/lp/tt_4.htm" target="_blank">{$i18n.footer.credits}</a> |
             <a href="https://www.anuko.com/lp/tt_5.htm" target="_blank">{$i18n.footer.license}</a> |
             <a href="https://www.anuko.com/lp/tt_7.htm" target="_blank">{$i18n.footer.improve}</a>
diff --git a/WEB-INF/templates/time_files.tpl b/WEB-INF/templates/time_files.tpl
new file mode 100644 (file)
index 0000000..f373815
--- /dev/null
@@ -0,0 +1,47 @@
+<table cellspacing="0" cellpadding="7" border="0" width="720">
+  <tr>
+    <td valign="top">
+      <table cellspacing="1" cellpadding="3" border="0" width="100%">
+        <tr>
+          <td width="35%" class="tableHeader">{$i18n.label.thing_name}</td>
+          <td width="35%" class="tableHeader">{$i18n.label.description}</td>
+{if $can_edit}
+          <td class="tableHeader">{$i18n.label.edit}</td>
+          <td class="tableHeader">{$i18n.label.delete}</td>
+{/if}
+        </tr>
+{if $files}
+  {foreach $files as $file}
+        <tr bgcolor="{cycle values="#f5f5f5,#ffffff"}">
+          <td><a href="file_download.php?id={$file.id}">{$file.name|escape}</a></td>
+          <td>{$file.description|escape}</td>
+    {if $can_edit}
+          <td><a href="file_edit.php?id={$file.id}">{$i18n.label.edit}</a></td>
+          <td><a href="file_delete.php?id={$file.id}">{$i18n.label.delete}</a></td>
+    {/if}
+        </tr>
+  {/foreach}
+{/if}
+      </table>
+    </td>
+  </tr>
+</table>
+
+{if $can_edit}
+{$forms.fileUploadForm.open}
+<table cellspacing="0" cellpadding="7" border="0" width="720">
+  <tr>
+    <td align="center">
+      <table border="0" width="60%">
+        <tr>
+            <td align="right">{$i18n.label.description}:</td>
+            <td>{$forms.fileUploadForm.description.control}</td>
+            <td align="left">{$forms.fileUploadForm.newfile.control}</td>
+        </tr>
+        <tr><td height="50" align="center" colspan="3">{$forms.fileUploadForm.btn_submit.control}</td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+{$forms.fileUploadForm.close}
+{/if}
index 3af70d5..f797cc6 100644 (file)
@@ -53,7 +53,7 @@ if ($request->isPost()) {
 }
 
 $fileHelper = new ttFileHelper($err);
-$files = $fileHelper::getProjectFiles($cl_project_id);
+$files = $fileHelper::getEntityFiles($cl_project_id, 'project');
 
 $form = new Form('fileUploadForm');
 $form->addInput(array('type'=>'hidden','name'=>'id','value'=>$cl_project_id));
index fc80992..6b76b23 100644 (file)
@@ -54,17 +54,10 @@ if ($request->isPost()) {
 }
 
 $fileHelper = new ttFileHelper($err);
-
-
-
-
-die("coding ongoing sown from here...");
 $files = $fileHelper::getEntityFiles($cl_id, 'time');
 
-
-
 $form = new Form('fileUploadForm');
-$form->addInput(array('type'=>'hidden','name'=>'id','value'=>$cl_project_id));
+$form->addInput(array('type'=>'hidden','name'=>'id','value'=>$cl_id));
 $form->addInput(array('type'=>'upload','name'=>'newfile','value'=>$i18n->get('button.submit'),'maxsize'=>67108864)); // 64 MB file upload limit.
 // Note: for the above limit to work make sure to set upload_max_filesize and post_max_size in php.ini to at least 64M.
 $form->addInput(array('type'=>'textarea','name'=>'description','style'=>'width: 250px; height: 40px;','value'=>$cl_description));
@@ -79,20 +72,21 @@ if ($request->isPost()) {
   // Finished validating user input.
 
   if ($err->no()) {
-    $fields = array('entity_type'=>'project',
-      'entity_id' => $cl_project_id,
+    $fields = array('entity_type'=>'time',
+      'entity_id' => $cl_id,
       'file_name' => $_FILES['newfile']['name'],
       'description'=>$cl_description);
     if ($fileHelper->putFile($fields)) {
-      header('Location: project_files.php?id='.$cl_project_id);
+      header('Location: time_files.php?id='.$cl_id);
       exit();
     }
   }
 } // isPost
 
-$smarty->assign('can_manage', $user->can('manage_projects'));
+$canEdit = !($time_rec['approved'] || $time_rec['timesheet_id'] || $time_rec['invoice_id']);
+$smarty->assign('can_edit', $canEdit);
 $smarty->assign('forms', array($form->getName()=>$form->toArray()));
 $smarty->assign('files', $files);
-$smarty->assign('title', $i18n->get('title.project_files').': '.$project['name']);
-$smarty->assign('content_page_name', 'project_files.tpl');
+$smarty->assign('title', $i18n->get('title.time_files'));
+$smarty->assign('content_page_name', 'time_files.tpl');
 $smarty->display('index.tpl');