Patch title: Release 89 bulk changes
Abstract:
File: /appli/pad/index.page
Key:
    Removed line
    Added line
module "/pliant/language/unsafe.pli"
module "database.pli"

title "Pliant pad"

if allowed:"pad_create"
  para
    input "Title:" (var Str new_title) length 60 noeol
    page button "Create new pad page"
      var Str id := generate_id
      pad_database:data:page create id
      pad_database:data:page:id user := user_name
      pad_database:data:page:id title := new_title
      goto_url id no_extension

if allowed:"pad_search"
  para
    input "Keywords: " (var Str keywords) length 60 noeol
    page button "Search"
      title "Pliant pad search for '"+keywords+"'"
      each pad pad_database:data:page
        if pad:user=user_name or pad:read<>"" and (allowed pad:read)
          part pad
            var Str all := keywords
            while all<>""
              if not (all parse any:(var Str word) _ any:(var Str remain))
                word := all ; remain := ""
              if word<>""
                part search_for_word
                  if (pad:title search word -1)<>(-1)
                    leave search_for_word
                  each c pad:content
                    if (c:content search word -1)<>(-1)
                      leave search_for_word
                  leave pad
              all := remain
            link pad:title keyof:pad no_extension ; eol

if allowed:"pad_planning"
  para
    var Str user := user_name
    var Date from := datetime date
    var Date to ; to days := from:days+30
    input "User: " user length 20 noeol
    input "from: " from length 10 noeol
    input "to: " to length 10 noeol
    page button "display planning"
      title user+" planning"
      var (Index DateTime Str) pads
      each pad pad_database:data:page
        each pl pad:planning
          if pl:who=user
            var DateTime start := pl when
            var DateTime stop ; stop seconds := start:seconds + pl:seconds
            if start:date<=to and stop:date>=from
              pads insert pl:when keyof:pad
      var Date today := datetime date
      var Date current := undefined ; var Float total := 0
      table columns 3
        cell header [Date and time]
        cell header [Duration]
        cell header [Title]
        each id pads
          var DateTime dt := pads key id
          if dt:date<>current
            if current<>undefined
              cell
                var Int diff := current:days-today:days
                text "J"+(shunt diff>=0 "+"+string:diff string:diff)
                fixed [  ]
                text (day_name current:day_of_week)
              cell
                bold text:(string total/3600 "fixed 0") ; [h]
              cell void
              cell void
              cell void
              cell void
            current := dt date ; total := 0
          var Data:PadPage pad :> pad_database:data:page id
          cell
            if dt<>undefined
              text string:dt
          cell
            each pl pad:planning
              if pl:who=user and pl:when=dt
                text pl:duration ; total += pl seconds
          cell
            if pad:user=user_name or pad:read<>"" and (allowed pad:read)
              link pad:title keyof:pad no_extension
            else
              [Unspecified activity.]
        if total<>0
          cell
            var Int diff := current:days-today:days
            text "J"+(shunt diff>=0 "+"+string:diff string:diff)
            fixed [  ]
            text (day_name current:day_of_week)
          cell
            bold text:(string total/3600 "fixed 0") ; [h]
          cell void