%3 ::xowiki::includelet::composite-form ::xowiki::includelet::composite-form render ::xowiki::includelet::selection ::xowiki::includelet::selection render render_children ::xowiki::includelet::composite-form->::xowiki::includelet::selection ::xowiki::Includelet ::xowiki::Includelet → available_includelets → describe_includelets → glob_clause → html_encode → html_id → html_to_text → js_encode → js_name → listing → locale_clause → parent_id_clause → publish_status_clause → require_YUI_CSS → require_YUI_JS category_clause get_current_folder get_page_order include_head_entries initialize js_name resolve_page_name screen_name tableWidget ::xowiki::includelet::selection->::xowiki::Includelet ::xowiki::includelet::PageReorderSupport ::xowiki::includelet::PageReorderSupport ::xowiki::includelet::selection->::xowiki::includelet::PageReorderSupport instmixin ::xo::Context ::xo::Context ::xowiki::Includelet->::xo::Context

Class ::xowiki::includelet::composite-form

::xowiki::includelet::composite-form[i] create ... \
           [ -parameter_declaration (default " {-edit_links:boolean false} {-pages ""} {-ordered_pages} ") ]

Create a form from the selection
Documented Parameters:
edit_links
provide an edit link, boolean.
pages
pages of the selection
ordered_pages
set of already ordered pages
Defined in packages/xowiki/tcl/includelet-procs.tcl

Class Relations

  • class: ::xowiki::IncludeletClass[i]
  • superclass: ::xowiki::includelet::selection[i]
::xowiki::IncludeletClass create ::xowiki::includelet::composite-form \
     -superclass ::xowiki::includelet::selection

Methods (to be applied on instances)

  • parameter_declaration (setter)

  • render (scripted)

    :get_parameters
    set inner_html [next]
    #:log "innerhtml=$inner_html"
    regsub -nocase -all "<form " $inner_html "<div class='form' " inner_html
    regsub -nocase -all "<form>" $inner_html "<div class='form'>" inner_html
    regsub -nocase -all "</form *>" $inner_html "</div>" inner_html
    dom parse -simple <form>$inner_html</form> doc
    $doc documentElement root
    
    set fields [$root selectNodes "//div\[@class = 'wiki-menu'\]"]
    foreach field $fields {$field delete}
    
    set inner_html [$root asHTML]
    set id ID[${:__including_page} item_id]
    set base [${:__including_page} pretty_link]
    #set id ID$item_id
    #$root setAttribute id $id
    set as_att_value [::xowiki::Includelet html_encode $inner_html]
    set save_form [subst {
      <p>
      <a id='$id-control' href='#'>Create Form from Content</a>
      </p>
      <span id='$id' style='display: none'>
      Form Name:
      <form action="$base?m=create-new" method='POST' style='display: inline'>
      <input name='class' type='hidden' value="::xowiki::Form">
      <input name='content' type='hidden' value="$as_att_value">
      <input name='name' type='text'>
      </form>
      </span>
    }]
    
    template::add_event_listener  -id $id-control  -script [subst {document.getElementById("$id").style.display="inline";}]
    
    return $inner_html$save_form