OSDN Git Service

BugTrack/2447 Show tracker - passage by Client-JavaScript
authorumorigu <umorigu@gmail.com>
Sun, 12 Nov 2017 10:22:19 +0000 (19:22 +0900)
committerumorigu <umorigu@gmail.com>
Sun, 12 Nov 2017 10:22:19 +0000 (19:22 +0900)
Add passage plugin (passage.inc.php)

plugin/passage.inc.php [new file with mode: 0644]
plugin/tracker.inc.php
skin/main.js

diff --git a/plugin/passage.inc.php b/plugin/passage.inc.php
new file mode 100644 (file)
index 0000000..ea6c6a1
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+// PukiWiki - Yet another WikiWikiWeb clone
+// passage.inc.php
+// Copyright 2017 PukiWiki Development Team
+// License: GPL v2 or (at your option) any later version
+//
+// Show passage by Client JavaScript
+
+function plugin_passage_inline()
+{
+       list($date_atom) = func_get_args();
+       $time = strtotime($date_atom);
+       $yyyyMMdd = date('Y-m-d', $time);
+       return '<span class="simple_passage" data-mtime="' .
+               get_date_atom($time) . '">' . $yyyyMMdd . '</span>';
+}
index bb9e34d..33f8a53 100644 (file)
@@ -617,7 +617,7 @@ class Tracker_field_past extends Tracker_field
 
        function format_cell($timestamp)
        {
-               return get_passage($timestamp,FALSE);
+               return '&passage("' . get_date_atom($timestamp + LOCALZONE) . '");';
        }
        function get_value($value)
        {
index 4252983..4763650 100644 (file)
@@ -294,7 +294,7 @@ window.addEventListener && window.addEventListener('DOMContentLoaded', function(
      * @param {Date} now
      * @param {string} dateText
      */
-    function getPassage(dateText, now) {
+    function getSimplePassage(dateText, now) {
       if (!dateText) {
         return '';
       }
@@ -308,7 +308,14 @@ window.addEventListener && window.addEventListener('DOMContentLoaded', function(
         if (t < card) break;
         t = t / card;
       }
-      return '(' + Math.floor(t) + unit + ')';
+      return '' + Math.floor(t) + unit;
+    }
+    /**
+     * @param {Date} now
+     * @param {string} dateText
+     */
+    function getPassage(dateText, now) {
+      return '(' + getSimplePassage(dateText, now) + ')';
     }
     var now = new Date();
     var elements = document.getElementsByClassName('page_passage');
@@ -331,6 +338,14 @@ window.addEventListener && window.addEventListener('DOMContentLoaded', function(
         }
       }
     });
+    var simplePassages = document.getElementsByClassName('simple_passage');
+    forEach(simplePassages, function(e) {
+      var dt = e.getAttribute('data-mtime');
+      if (dt) {
+        var d = new Date(dt);
+        e.textContent = getSimplePassage(d, now);
+      }
+    });
   }
   setYourName();
   autoTicketLink();