Patch title: Release 94 bulk changes
Abstract:
File: /pliant/fullpliant/export.page
Key:
    Removed line
    Added line
   
module "export.pli"
module "export.pli"
module "/pliant/language/context.pli"
module "/pliant/admin/file.pli"
module "/pliant/admin/file.pli"
module "/pliant/fullpliant/this_computer.pli"
module "this_computer.pli"
module "password.pli"


table columns 5
  cell header [Plateform]
  cell header [Software]
  cell header [Status]
  cell header [Action]
  cell header [Start on boot]
  cell
    [Unix]
  cell
    [NFS]
  cell
    text (shunt export_nfs_test "running" "stopped")
  cell
    if export_nfs_test
      button "Stop"
        export_nfs_stop
        reload_page
    else
      button "Start"
        export_nfs_start
        reload_page
  cell
    var Str nfs_service := this_computer "debian" "nfs" "ser
    select "" nfs_service
      option "No" "false"
      option "Yes" "true"
  cell
    [Windows]
  cell
    [Samba]
  cell
    text (shunt export_samba_test "running" "stopped")
  cell
    if export_samba_test
      button "Stop"
        export_samba_stop
        reload_page
    else
      button "Start"
        export_samba_start
        reload_page
  cell
    var Str samba_service := this_computer "debian" "samba" 
    select "" samba_service
      option "No" "false"
      option "Yes" "true"
  cell
    [Macintosh]
  cell
    [NetAtalk]
  cell
    text (shunt export_netatalk_test "running" "stopped")
  cell
    if export_netatalk_test
      button "Stop"
        export_netatalk_stop
        reload_page
    else
      button "Start"
        export_netatalk_start
        reload_page
  cell
    var Str netatalk_service := this_computer "debian" "neta
    select "" netatalk_service
      option "No" "false"
      option "Yes" "true"


table columns 5
  cell header [Plateform]
  cell header [Software]
  cell header [Status]
  cell header [Action]
  cell header [Start on boot]
  cell
    [Unix]
  cell
    [NFS]
  cell
    text (shunt export_nfs_test "running" "stopped")
  cell
    if export_nfs_test
      button "Stop"
        export_nfs_stop
        reload_page
    else
      button "Start"
        export_nfs_start
        reload_page
  cell
    var Str nfs_service := this_computer "debian" "nfs" "ser
    select "" nfs_service
      option "No" "false"
      option "Yes" "true"
  cell
    [Windows]
  cell
    [Samba]
  cell
    text (shunt export_samba_test "running" "stopped")
  cell
    if export_samba_test
      button "Stop"
        export_samba_stop
        reload_page
    else
      button "Start"
        export_samba_start
        reload_page
  cell
    var Str samba_service := this_computer "debian" "samba" 
    select "" samba_service
      option "No" "false"
      option "Yes" "true"
  cell
    [Macintosh]
  cell
    [NetAtalk]
  cell
    text (shunt export_netatalk_test "running" "stopped")
  cell
    if export_netatalk_test
      button "Stop"
        export_netatalk_stop
        reload_page
    else
      button "Start"
        export_netatalk_start
        reload_page
  cell
    var Str netatalk_service := this_computer "debian" "neta
    select "" netatalk_service
      option "No" "false"
      option "Yes" "true"

if (file_list "embedded:/export/diskless/" standard+relative
  button "Remove some diskless computers"
    title "Remove diskess computers"
    var Array:FileInfo files := file_list "embedded:/export/
    for (var Int i) 0 files:size-1
      var Str name := files:i:name
      fixed (text (name 0 (name search "/" name:len))+"  ")
      button "Remove it"
        file_tree_delete "embedded:/export/diskless/"+name
        if (file_list "embedded:/export/diskless/" standard+
          reload_page
        else
          goto_backward

button "Update"
  this_computer "debian" "nfs" "service" := nfs_service
  this_computer "debian" "samba" "service" := samba_service
  this_computer "debian" "netatalk" "service" := netatalk_se
  goto_backward

button "Update"
  this_computer "debian" "nfs" "service" := nfs_service
  this_computer "debian" "samba" "service" := samba_service
  this_computer "debian" "netatalk" "service" := netatalk_se
  goto_backward

if (file_list "embedded:/export/diskless/" standard+relative+directories):size>0
  para
    button "Remove some diskless computers"
      title "Remove diskess computers"
      var Array:FileInfo files := file_list "embedded:/export/diskless/" standard+relative+directories
      for (var Int i) 0 files:size-1
        var Str name := files:i:name
        fixed (text (name 0 (name search "/" name:len))+"  ")
        button "Remove it"
          file_tree_delete "embedded:/export/diskless/"+name
          if (file_list "embedded:/export/diskless/" standard+relative+directories):size>0
            reload_page
          else
            goto_backward


table columns 5
table columns 7
  cell header [Area ID]
  cell header [Path]
  cell header [Area ID]
  cell header [Path]
  cell header [Users]
  cell header [Protocol]
  cell header [Mode]
  cell header [IP filter]
  cell header [Protocol]
  cell header [Mode]
  cell header [IP filter]
  cell void
  each e this_computer:env:"export"
  each e this_computer:env:"export"
    cell (text keyof:e)
    cell
      var Str area := keyof e
      text area
    cell (text e:"path")
    cell (text e:"path")
    cell
      var Str all := e:"users"
      while all<>""
        if not (all parse any:(var Str user) _ any:(var Str remain))
          user := all ; remain := ""
        page note user
          title "Set samba password"
          para
            table columns 2 border 0
              cell [User:]
              cell (fixed text:user)
              cell [Password:]
              cell (input "" (var Str password) password)
              if (exists password_database:data:password:computer_fullname:user)
                cell void
                cell
                  [Password will also be recorded in Pliant ] ; link "Pliant passwords database" "/pliant/fullpliant/password"
          page button "record password"
            export_password user password
            if (exists password_database:data:password:computer_fullname:user)
              password_database:data:password:computer_fullname:user password := password
            goto_backward
        [ ]
        all := remain
    cell (text e:"protocol")
    cell (text e:"mode")
    cell (text e:"ip")
    cell (text e:"protocol")
    cell (text e:"mode")
    cell (text e:"ip")
input "Area ID: " (var Str aid) length 16
input "Path: " (var Str path) length 40
select "Protocol: " (var Str protocol)
  option "" ""
  option "all" "all"
  option "NFS" "nfs"
  option "Samba" "samba"
  option "Netatalk" "netatalk"
select "Mode: " (var Str mode)
  option "" ""
  option "read only" "ro"
  option "read write" "rw"
input "IP: " (var Str ip) length 40
    cell
      page button "edit"
        var (Data Set:Str) e :> this_computer:env:"export" area
        title "'"+keyof:e+"' export area settings"
        table columns 2 border 0
          cell [Area ID:]
          cell fixed:(text keyof:e)
          cell [Path:]
          cell
            var Str path := e:"path"
            input "" path length 40
          cell [Users:]
          cell
            var Str users := e:"users"
            input "" users length 80
          cell [Protocol:]
          cell
            var Str protocol := e:"protocol"
            select "" protocol
              option "" ""
              option "all" "all"
              option "NFS" "nfs"
              option "Samba" "samba"
              option "Netatalk" "netatalk"
          cell [Mode:]
          cell
            var Str mode := e:"mode"
            select "" mode
              option "" ""
              option "read only" "ro"
              option "read write" "rw"
          cell [IP filter:]
          cell
            var Str ip := e:"ip"
            input "" ip length 40
          cell [Extra options:]
          cell
            var Str opt := e:"options"
            input "" opt length 40
        button "record"
          this_computer "export" area "path" := path
          this_computer "export" area "users" := users
          this_computer "export" area "protocol" := protocol
          this_computer "export" area "mode" := mode
          this_computer "export" area "ip" := ip
          this_computer "export" area "options" := opt
          goto_backward
input "Area ID: " (var Str aid) length 16 noeol
page button "Create area" noeol
page button "Create area" noeol
  this_computer "export" aid "path" := path
  this_computer "export" aid "protocol" := protocol
  this_computer "export" aid "mode" := mode
  this_computer "export" aid "ip" := ip
  this_computer:env create "export"
  this_computer:env:"export" create aid
  this_computer:env:"export":aid create "users"
  this_computer:env:"export":aid create "protocol"
  this_computer:env:"export":aid create "mode"
  this_computer:env:"export":aid create "ip"
  reload_page
page button "Delete area"
  this_computer:env:"export" delete aid
  reload_page

para
  [A sample 'IP filter' can might be] ; fixed [ 10.0.0.0/255
  reload_page
page button "Delete area"
  this_computer:env:"export" delete aid
  reload_page

para
  [A sample 'IP filter' can might be] ; fixed [ 10.0.0.0/255
  [IP filtering is ignored by Netatalk.]
  [IP filtering is ignored by Netatalk.] ; eol
para
  [A sample users list might be] ; fixed [ hubert.tonneau loic.dumas] ; eol
  [Passwords can also be stored clear in ] ; link "Pliant passwords database" "/pliant/fullpliant/password" ; [ with '] ; text computer_fullname ; [' in 'Server' column and the user name in 'Client' column so that the Samba database shall be reconstructed automatically from the Pliant database.]
  [Users list is supported only by Samba.] ; eol