Patch title: Release 94 bulk changes
Abstract:
File: /pliant/protocol/smtp/mail.page
Key:
    Removed line
    Added line
   
module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "/pliant/language/context.pli"
module "/pliant/admin/md5.pli"
module "/pliant/admin/file.pli"
module "/pliant/fullpliant/this_computer.pli"
module "/pliant/fullpliant/password.pli"
module "mail.pli"


header "Mailboxes"
  table columns (shunt allowed:"administrator" 4 3)
    cell header
      [Mailbox ID]
    cell header
      [Description]
    if allowed:"administrator"
      cell header
        [Content]
    cell
      void
    each m mailbox
      cell
        fixed (text keyof:m) ; eol
        text m:name
      cell
        text m:abstract
      if allowed:"administrator"
        cell
          small
            var Array:FileInfo in_files := file_list m:in_pa
            var Array:FileInfo out_files := file_list m:out_
            if in_files:size>0
              var Int count := 0
              var DateTime now := datetime
              var DateTime older := now
              for (var Int i) 0 in_files:size-1
                if in_files:i:extension=".mail" and in_files
                  count += 1 ; older := in_files:i:datetime
              var Int days := now:date:days-older:date:days
              text string:count+" in mail"+(shunt count>1 "s
              fixed [ ] ; text string:days+" day"+(shunt day
              if out_files:size>0 eol
            if out_files:size>0
              var Int count := 0 ; var Intn total := 0
              for (var Int i) 0 out_files:size-1
                if out_files:i:extension=".mail"
                  count += 1 ; total += out_files:i:size
              text string:count+" out mail"+(shunt count>1 "
              fixed [ ] ; text (string total\2^20)+" MB"
      cell
        button "Edit"
          read_only not allowed:"administrator"
          title "Mailbox '"+keyof:m+"'"
          header "Basic informations"
            table columns 3 border 0
              cell
                [Mailbox ID:]
              cell
                fixed (text keyof:m)
              cell
                []
              cell
                [User name:]
              cell
                input "" m:name
              cell
                [The usual name of the guy owning the mailbo
              cell
                [Computer:]
              cell
                input "" m:computer
              cell
                [The full name of the computer handling the 
              cell
                [IP:]
              cell
                select "" m:check_ip
                  option "Must be correct" "true"
                  option "Not checked" "false"
              cell
                [You can ask to reject mails from domains or
              cell
                [From:]
              cell
                select "" m:check_from
                  option "Must be correct" "true"
                  option "Not checked" "false"
              cell
                [You can ask to reject mails with an imprope
              cell
                [To/Cc:]
              cell
                select "" m:check_to
                  option "Must be correct" "true"
                  option "Not checked" "false"
              cell
                [You can ask to reject mails with a missing 
                [The problem here is that mails sent from ma
              cell
                [Auto answer:]
              cell
                text_input "" m:auto_answer columns 40 rows 
              cell
                [If this field is not empty, anybody sending
              cell
                [Archive:]
              cell
                select "" m:archive
                  option "yes" "true"
                  option "no" "false"
              cell
                [Should the server keep a copy of the mails 
            table columns 2 border 0
              cell [Description:]
              cell (text_input "" m:abstract rows 5 columns 
          header "Accessing mails using an external mailer (
            table columns 3 border 0
              cell
                [SMTP IP:]
              cell
                input "" m:smtp_ip
              cell
                [Only clients connecting from the specifyed 
                [If empty, no client will be allowed to post
                note "extra details"
                  title "IP field"
                  [This is used to restrict the computers th
                  [As an example, you may want to specify th
                  para
                    [An axample can be:] ; fixed [ 127.0.0.1
                    [and it means either 127.0.0.1 or 10.30.
              cell
                [POP3:]
              cell
                select "" m:pop3_level
                  option "Not allowed on this mailbox" "0"
                  option "Can be used only to detect new mes
                  option "Can read messages" "2"
                  option "Can read and remove messages" "3"
              cell
                []
              cell
                [POP3 IP:]
              cell
                input "" m:pop3_ip
              cell
                [If not empty, only clients connecting from 
                note "extra details"
                  title "IP field"
                  [This is used to restrict the computers th
                  [As an example, you may want to specify th
                  para
                    [An axample can be:] ; fixed [ 127.0.0.1
                    [and it means either 127.0.0.1 or 10.30.
              cell
                [POP3 password:]
              cell
                if allowed:"administrator"
                  input "" (var Str password) password
              cell
                [Type in the clear password that the POP3 cl
                [In the mailboxes database, only the MD5 dig
          header "Relay computer (optional)"
            [You will use a relay computer when the server h
            table columns 3 border 0
              cell
                [Relay computer:]
              cell
                input "" m:relay_computer
              cell
                [You will use a relay computer if the comput
                [In such a case, the MX field of the domain 
              cell
                [Archive:]
              cell
                select "" m:relay_archive
                  option "no" "false"
                  option "yes" "true"
              cell
                [Should the relay computer also keep a copy 
          header "Mailing list (optional)"
            select "This is a mailing list: " m:list
              option "no" "false"
              option "yes" "true"
            [Subscribers:]
            table columns 2
              cell header [Line ID]
              cell header [Mailbox]
              each s m:subscriber
                cell
                  text keyof:s
                cell
                  input "" s length 30
            if allowed:"administrator"
              input "Line ID: " (var Str sid) length 10 noeo
              button "Add a line" noeol
                m:subscriber create sid
                reload_page
              button "Remove a line"
                m:subscriber delete sid
                reload_page
          header "Advanced settings (not recommended)"
            table columns 3 border 0
              cell
                [Mailbox path:]
              cell
                input "" m:path
              cell
                [Where mails related to this mailbox are sto
                [You should leave this field blank most of t
module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "/pliant/language/context.pli"
module "/pliant/admin/md5.pli"
module "/pliant/admin/file.pli"
module "/pliant/fullpliant/this_computer.pli"
module "/pliant/fullpliant/password.pli"
module "mail.pli"


header "Mailboxes"
  table columns (shunt allowed:"administrator" 4 3)
    cell header
      [Mailbox ID]
    cell header
      [Description]
    if allowed:"administrator"
      cell header
        [Content]
    cell
      void
    each m mailbox
      cell
        fixed (text keyof:m) ; eol
        text m:name
      cell
        text m:abstract
      if allowed:"administrator"
        cell
          small
            var Array:FileInfo in_files := file_list m:in_pa
            var Array:FileInfo out_files := file_list m:out_
            if in_files:size>0
              var Int count := 0
              var DateTime now := datetime
              var DateTime older := now
              for (var Int i) 0 in_files:size-1
                if in_files:i:extension=".mail" and in_files
                  count += 1 ; older := in_files:i:datetime
              var Int days := now:date:days-older:date:days
              text string:count+" in mail"+(shunt count>1 "s
              fixed [ ] ; text string:days+" day"+(shunt day
              if out_files:size>0 eol
            if out_files:size>0
              var Int count := 0 ; var Intn total := 0
              for (var Int i) 0 out_files:size-1
                if out_files:i:extension=".mail"
                  count += 1 ; total += out_files:i:size
              text string:count+" out mail"+(shunt count>1 "
              fixed [ ] ; text (string total\2^20)+" MB"
      cell
        button "Edit"
          read_only not allowed:"administrator"
          title "Mailbox '"+keyof:m+"'"
          header "Basic informations"
            table columns 3 border 0
              cell
                [Mailbox ID:]
              cell
                fixed (text keyof:m)
              cell
                []
              cell
                [User name:]
              cell
                input "" m:name
              cell
                [The usual name of the guy owning the mailbo
              cell
                [Computer:]
              cell
                input "" m:computer
              cell
                [The full name of the computer handling the 
              cell
                [IP:]
              cell
                select "" m:check_ip
                  option "Must be correct" "true"
                  option "Not checked" "false"
              cell
                [You can ask to reject mails from domains or
              cell
                [From:]
              cell
                select "" m:check_from
                  option "Must be correct" "true"
                  option "Not checked" "false"
              cell
                [You can ask to reject mails with an imprope
              cell
                [To/Cc:]
              cell
                select "" m:check_to
                  option "Must be correct" "true"
                  option "Not checked" "false"
              cell
                [You can ask to reject mails with a missing 
                [The problem here is that mails sent from ma
              cell
                [Auto answer:]
              cell
                text_input "" m:auto_answer columns 40 rows 
              cell
                [If this field is not empty, anybody sending
              cell
                [Archive:]
              cell
                select "" m:archive
                  option "yes" "true"
                  option "no" "false"
              cell
                [Should the server keep a copy of the mails 
            table columns 2 border 0
              cell [Description:]
              cell (text_input "" m:abstract rows 5 columns 
          header "Accessing mails using an external mailer (
            table columns 3 border 0
              cell
                [SMTP IP:]
              cell
                input "" m:smtp_ip
              cell
                [Only clients connecting from the specifyed 
                [If empty, no client will be allowed to post
                note "extra details"
                  title "IP field"
                  [This is used to restrict the computers th
                  [As an example, you may want to specify th
                  para
                    [An axample can be:] ; fixed [ 127.0.0.1
                    [and it means either 127.0.0.1 or 10.30.
              cell
                [POP3:]
              cell
                select "" m:pop3_level
                  option "Not allowed on this mailbox" "0"
                  option "Can be used only to detect new mes
                  option "Can read messages" "2"
                  option "Can read and remove messages" "3"
              cell
                []
              cell
                [POP3 IP:]
              cell
                input "" m:pop3_ip
              cell
                [If not empty, only clients connecting from 
                note "extra details"
                  title "IP field"
                  [This is used to restrict the computers th
                  [As an example, you may want to specify th
                  para
                    [An axample can be:] ; fixed [ 127.0.0.1
                    [and it means either 127.0.0.1 or 10.30.
              cell
                [POP3 password:]
              cell
                if allowed:"administrator"
                  input "" (var Str password) password
              cell
                [Type in the clear password that the POP3 cl
                [In the mailboxes database, only the MD5 dig
          header "Relay computer (optional)"
            [You will use a relay computer when the server h
            table columns 3 border 0
              cell
                [Relay computer:]
              cell
                input "" m:relay_computer
              cell
                [You will use a relay computer if the comput
                [In such a case, the MX field of the domain 
              cell
                [Archive:]
              cell
                select "" m:relay_archive
                  option "no" "false"
                  option "yes" "true"
              cell
                [Should the relay computer also keep a copy 
          header "Mailing list (optional)"
            select "This is a mailing list: " m:list
              option "no" "false"
              option "yes" "true"
            [Subscribers:]
            table columns 2
              cell header [Line ID]
              cell header [Mailbox]
              each s m:subscriber
                cell
                  text keyof:s
                cell
                  input "" s length 30
            if allowed:"administrator"
              input "Line ID: " (var Str sid) length 10 noeo
              button "Add a line" noeol
                m:subscriber create sid
                reload_page
              button "Remove a line"
                m:subscriber delete sid
                reload_page
          header "Advanced settings (not recommended)"
            table columns 3 border 0
              cell
                [Mailbox path:]
              cell
                input "" m:path
              cell
                [Where mails related to this mailbox are sto
                [You should leave this field blank most of t
              cell
                [Mailbox options:]
              cell
                input "" m:options length 40
              cell
                [Extra informations you can use in some of your custom plugins.]
          if allowed:"administrator"
            button "Update mailbox informations"
              if password<>""
                mail_secret_database:data:box create keyof:m
                mail_secret_database:data:box:(keyof m) pop3
              goto_backward
  if allowed:"administrator"
    input "Mailbox ID: " (var Str mid) length 30 noeol
    button "Create the new mailbox" noeol
      mailbox create mid
      reload_page
    button "Delete the mailbox"
      mailbox delete mid
      mail_secret_database:data:box delete mid
      reload_page


          if allowed:"administrator"
            button "Update mailbox informations"
              if password<>""
                mail_secret_database:data:box create keyof:m
                mail_secret_database:data:box:(keyof m) pop3
              goto_backward
  if allowed:"administrator"
    input "Mailbox ID: " (var Str mid) length 30 noeol
    button "Create the new mailbox" noeol
      mailbox create mid
      reload_page
    button "Delete the mailbox"
      mailbox delete mid
      mail_secret_database:data:box delete mid
      reload_page