Changed required template elements to 3 stop sign emojis for visibility.
authorNik Okuntseff <support@anuko.com>
Sun, 31 Mar 2019 13:36:49 +0000 (13:36 +0000)
committerNik Okuntseff <support@anuko.com>
Sun, 31 Mar 2019 13:36:49 +0000 (13:36 +0000)
WEB-INF/lib/common.lib.php
WEB-INF/templates/footer.tpl
mobile/time.php
mobile/time_edit.php
time.php
time_edit.php

index e09a943..e295075 100644 (file)
@@ -182,6 +182,15 @@ function ttValidString($val, $emptyValid = false)
   return true;    
 }
 
+// ttValidTemplateText is used to check template-based user input.
+// When templates are used, required input parts must be filled by user.
+// We identify these parts by 3 "stop sign" emojis (aka "octagonal sign" U+1F6D1).
+function ttValidTemplateText($val)
+{
+  $valid = strpos($val, '🛑🛑🛑') === false; // no 3 "stop sign" emojis in a row.
+  return $valid;
+}
+
 // ttValidEmail is used to check user input to validate an email string.
 function ttValidEmail($val, $emptyValid = false)
 {
index 3f192b3..52aa91c 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.61.4900 | 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.62.4901 | 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>
index b9ee3bc..15069db 100644 (file)
@@ -283,8 +283,7 @@ if ($request->isPost()) {
         $err->add($i18n->get('error.field'), $i18n->get('label.duration'));
     }
     if (!ttValidString($cl_note, true)) $err->add($i18n->get('error.field'), $i18n->get('label.note'));
-    if ($user->isPluginEnabled('tp') && strpos($cl_note, '%req%') !== false) {
-      // A %req% element is found in note. They have to be replaced by user.
+    if ($user->isPluginEnabled('tp') && !ttValidTemplateText($cl_note)) {
       $err->add($i18n->get('error.field'), $i18n->get('label.note'));
     }
     if (!ttTimeHelper::canAdd()) $err->add($i18n->get('error.expired'));
index c3699d5..b33b099 100644 (file)
@@ -271,8 +271,7 @@ if ($request->isPost()) {
   }
   if (!ttValidDate($cl_date)) $err->add($i18n->get('error.field'), $i18n->get('label.date'));
   if (!ttValidString($cl_note, true)) $err->add($i18n->get('error.field'), $i18n->get('label.note'));
-  if ($user->isPluginEnabled('tp') && strpos($cl_note, '%req%') !== false) {
-    // A %req% element is found in note. They have to be replaced by user.
+  if ($user->isPluginEnabled('tp') && !ttValidTemplateText($cl_note)) {
     $err->add($i18n->get('error.field'), $i18n->get('label.note'));
   }
   if (!ttTimeHelper::canAdd()) $err->add($i18n->get('error.expired'));
index 4f0d591..9b76587 100644 (file)
--- a/time.php
+++ b/time.php
@@ -304,8 +304,7 @@ if ($request->isPost()) {
         $err->add($i18n->get('error.field'), $i18n->get('label.duration'));
     }
     if (!ttValidString($cl_note, true)) $err->add($i18n->get('error.field'), $i18n->get('label.note'));
-    if ($user->isPluginEnabled('tp') && strpos($cl_note, '%req%') !== false) {
-      // A %req% element is found in note. They have to be replaced by user.
+    if ($user->isPluginEnabled('tp') && !ttValidTemplateText($cl_note)) {
       $err->add($i18n->get('error.field'), $i18n->get('label.note'));
     }
     if (!ttTimeHelper::canAdd()) $err->add($i18n->get('error.expired'));
index e6ca12a..bbc95ea 100644 (file)
@@ -276,8 +276,7 @@ if ($request->isPost()) {
   }
   if (!ttValidDate($cl_date)) $err->add($i18n->get('error.field'), $i18n->get('label.date'));
   if (!ttValidString($cl_note, true)) $err->add($i18n->get('error.field'), $i18n->get('label.note'));
-  if ($user->isPluginEnabled('tp') && strpos($cl_note, '%req%') !== false) {
-    // A %req% element is found in note. They have to be replaced by user.
+  if ($user->isPluginEnabled('tp') && !ttValidTemplateText($cl_note)) {
     $err->add($i18n->get('error.field'), $i18n->get('label.note'));
   }
   if (!ttTimeHelper::canAdd()) $err->add($i18n->get('error.expired'));