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

requires "browse_configuration"

title "Pliant server configuration"


if (file_query "security:/" standard+directories)=failure
  file_tree_create "security:/"

header "Configuring the name of the computer"
  
  para
    if computer_fullname=""
      [This computer this HTTP server is running on currently has no name !]
    eif (computer_fullname search "." -1)=(-1)
      [The name of the computer currently running this HTTP server is '] ; bold text:computer_fullname ; [']
      [ which is not a valid name because it has no domain.]
    else
      [The name of the computer currently running this HTTP server is '] ; bold text:computer_fullname ; [']
    eol
  para
    var Str fullname := computer_fullname
    input "Computer name: " fullname length 30 noeol
    page button "Set the computer name"
      if allowed:"administrator"
        if (fullname parse any:(var Str name) "." any:(var Str domain))
          computer_fullname := fullname
          this_computer "pliant" "identity" "name" := name ; computer_name := name
          this_computer "pliant" "identity" "domain" := domain ; computer_domain := domain
          this_computer_database store
          reload_page
        else
          ['] ; bold text:fullname ; [' is not a valid name.]
      else
        [You cannot do that unless you are the site administrator !]
    [The name of the computer must contain a domain name, even if you don't have an internet domain yet. ]
    [An example of a valid name is] ; fixed [ mycomputer.mycorp.com]
    

header "Configuring the services"
  
  table columns 2 border 0
    cell
      link "One shot configuration" "once"
    cell
      [Will allow you to very easily setup your first web site all at once.]
    cell
      note "Pliant language compiler"
        title "Pliant language compiler"
        para
          if not (this_computer:env:"hardware":"memory":"capacity" parse (var Int hw))
            hw := undefined
          input "Overall memory available in the computer: " hw length 5 noeol ; [ MB]
          text " (current value is "+(string memory_physical\2^20)+")" ; eol
          if not (this_computer:env:"pliant":"memory":"assigned" parse (var Int mem))
            mem := undefined
          input "Try to keep used memory under: " mem length 5 noeol ; [ MB]
          text " (current value is "+(string memory_assigned\2^20)+")" ; eol
          if not (this_computer:env:"pliant":"memory":"overflow" parse (var Int mem2))
            mem2 := undefined
          input "Kill the process is memory reaches: " mem2 length 5 noeol ; [ MB]
          if memory_overflow=defined
            text " (current value is "+(string memory_overflow\2^20)+")" ; eol
        if os_api="linux"
          para
            var Str level := string pliant_debugging_level
            (file_query "file:/bin/pliant" extended):link parse "/pliant/binary/pliant-debug" any:level ".exe"
            var Str old_level := level
            select "Debugging level: " level
              option "0" "0"
              option "1" "1"
              option "2" "2"
            var Str optimizer := this_computer:env:"pliant":"language":"optimizer"
            select "Code optimizer: " optimizer
              option "Built in" ""
              option "GCC" "gcc"
        para
          var Str precompile := this_computer:env:"pliant":"language":"precompile"
          text_input "Precompile modules: " precompile columns 60 rows 10
          button "Auto select modules to precompile"
            this_computer "pliant" "language" "precompile" := this_computer:env:"pliant":"language":"recommended"
            reload_page
            if allowed:"administrator"
              this_computer "pliant" "language" "precompile" := this_computer:env:"pliant":"language":"recommended"
              reload_page
            else
              [You cannot do that unless you are the site administrator !]
        button "Record new settings"
          if mem2=defined and mem2<64
            text "Limiting memory to "+string:mem2+" MB is not resonable !"
          eif allowed:"administrator"
            if hw=defined
              this_computer "hardware" "memory" "capacity" := string hw
            if mem=defined
              this_computer "pliant" "memory" "assigned" := string mem
              memory_assigned := mem*2n^20
            if mem2=defined
              this_computer "pliant" "memory" "overflow" := string mem2
              memory_overflow := mem2*2^20
            if os_api="linux"
              if level<>old_level
                file_delete "file:/bin/pliant"
                file_link "file:/pliant/binary/pliant-debug"+level+".exe" "file:/bin/pliant"
                file_delete "file:/pliant/binary/default-debug"+old_level+".dump"
                file_delete "file:/pliant/binary/default-debug"+level+".dump"
              this_computer "pliant" "language" "optimizer" := optimizer
            this_computer "pliant" "language" "precompile" := precompile
            goto_backward
          else
            [You cannot do that unless you are the site administrator !]
        para
          [Changing the code optimizer to use to GCC will make Pliant run faster, or not work at all]
          if os_api="linux"
            [: use with care.]
          else
            [. Also it's currently available only under Linux.]
        para
          [Precompiling module '/pliant/protocol/http/style/default.style' may significantly speed up FullPliant restart.]
        para
          link "Pliant profiler" "/pliant/language/debug/profiler" ; eol
    cell
      [Change Pliant language compiler settings (most users should not)]
    cell
      link "Sites" "/pliant/protocol/http/site"
    cell
      [Configure various web or FTP sites in your organization. When it's done, you can run the HTTP server without the  'configure' option.] ; eol
      [The Pliant HTTP server is abble to run many web sites on a single server using a single IP address.]
    cell
      link "Users" "user"
    cell
      [Define users in your organization and the rights they have.]
    cell
      link "Mail boxes" "/pliant/protocol/smtp/mail"
    cell
      [Define the various mail boxes and mail related settings for this computer.]
    cell
      link "Names" "/pliant/protocol/dns/name"
    cell
      [Assign IP addresses to computers (also called DNS service).]
    cell
      link "Forums" "/pliant/appli/forum/forum"
    cell
      [Define various forums that will be the frame of team working.]
    cell
      if os_api="linux"
        link "Computers" "computer"
      else
        note "Computers"
          [FullPliant computers generation is only available on FullPliant or Linux operating systems.] 
    cell
      [Define various computers configurations and generate FullPliant systems.]
    cell
      if this_computer:env:"pliant":"system":"distribution"="fullpliant"
        link "Logical computers" "logical"
      else
        note "Logical computers"
          [Defining logical computers is meaningfull only when running FullPliant operating system.] 
    cell
      [Define and manage logical computers hosted on this physical computer.]
    cell
      link "Passwords" "password"
    cell
      [Clear passwords database (currently used for mails redirection and ISDN bridges).]
    cell
      if this_computer:env:"pliant":"system":"distribution"="fullpliant"
        link "Files sharing" "export"
      else
        note "Files sharing"
          [Files sharing is only available on FullPliant operating system.]
    cell
      [Export files to other Unix, Windows or Macintosh boxes over the network.]
    cell
      link "Clustering" "/pliant/appli/cluster/configure"
    cell
      [Define and manage clustering (replicating database and files).]
    cell
      link "Remote execution" "/pliant/util/remote/remote"
    cell
      [Allow other computer to execute functions remotely on this computer.]
    cell
      link "Logs" "/pliant/language/debug/log"
    cell
      [Log various services usage (HTTP, SMTP, etc) to files.]
    cell
      if os_api="linux"
        link "Backups" "/pliant/appli/backup/"
      else
        note "Backups"
          [Backups are only available on FullPliant or Linux operating systems.] 
    cell
      [Define and manage your backups.]
    cell
      link "Printers" "/pliant/protocol/lpr/spooler"
    cell
      [Define attached printers and export these to the network.]

  para
    [The Pliant configuration files can be organization wild. ]
    [It means that if you have several servers providing different services or running different web sites, it is possible to configure the files on one of the servers, then simply copy them to the others. ]
    [This is possible since when you configure a web site or mail box, you can specify the name of the server that handles it so that others will ignore it. ]
    [This feature greatly simplify the adminstration of a set of servers.]


header "Configuration wizard"

  configuration_wizard ""