University of Natural Resources and Life Sciences (BOKU)
Institute of Computational Biology

WebCreateNewTopicComponents

This topic is meant for developers. It contains INCLUDE sections to build a "create new topic" form.

Usage

Including the form (simple)

Create a form with an empty name field:
%INCLUDE{
    "%SYSTEMWEB%.WebCreateNewTopicComponents"
    section="newtopic"
    newtopic=""
}%

Create a form with an "auto increment" name, and with customised INCLUDE sections in topics listed in override param:
%INCLUDE{
    "%SYSTEMWEB%.WebCreateNewTopicComponents"
    section="newtopic"
    newtopic="TestTopicAUTOINC0"
    override="%USERSWEB%.TopicFields,%BASEWEB%.TopicFieldsForWeb"
}%

Customizing the order and layout

See the component table below what parts you can use to construct a form.

This is the code used in the Sandbox.WebHome form:
%INCLUDE{
    "%SYSTEMWEB%.WebCreateNewTopicComponents"
    section="js"
}%
%INCLUDE{
    "%SYSTEMWEB%.WebCreateNewTopicComponents"
    section="formstart"
}%
<div class="foswikiFormSteps">
<div class="foswikiFormStep">
%INCLUDE{
    "%SYSTEMWEB%.WebCreateNewTopicComponents"
    section="topicname"
    newtopic=""
}%
%INCLUDE{
    "%SYSTEMWEB%.WebCreateNewTopicComponents"
    section="topicnamefeedback"
}%
%INCLUDE{
    "%SYSTEMWEB%.WebCreateNewTopicComponents"
    section="wikiword"
}%
%INCLUDE{
    "%SYSTEMWEB%.WebCreateNewTopicComponents"
    section="errorfeedback"
}%
%INCLUDE{
    "%SYSTEMWEB%.WebCreateNewTopicComponents"
    section="submit"
}%
</div>
</div>
%INCLUDE{
    "%SYSTEMWEB%.WebCreateNewTopicComponents"
    section="formend"
}%

List of components

Component Description
js Includes necessary Javascript files
formstart Opens the form
topicname Topic name field
wikiword Javascript to automatically construct topicname text to WikiWord and tickbox to allow non-WikiWords
topicnamefeedback Provides feedback on the automatically constructed topic name
topicparent Input field with toggle to select list of topics in the current web to select as topic parent
templatetopic Select list of template topics
errorfeedback Provides feedback on why the submit button is disabled
submit The submit button
formend Closes the form


%STARTSECTION{"newtopic" override="" sectionlist="js, formstart, topicname, submit, topicnamefeedback, errorfeedback, formend"}%%FORMAT{
    "%sectionlist%"
    type="string"
    format="$percntINCLUDE{
    $quot%override%,%TOPIC%$quot
    section=$quot$item$quot
}$percnt"
}%%ENDSECTION{"newtopic"}%

%STARTSECTION{"js"}%%TMPL:P{"JavascriptFiles/foswikiString"}%%TMPL:P{
   "LIBJS"
   id="JavascriptFiles/foswikiStringUnicodeChars"
   requires="JavascriptFiles/foswikiString"
}%%TMPL:P{
   "LIBJS"
   id="JavascriptFiles/foswikiWebTopicCreator"
   requires="JavascriptFiles/foswikiStringUnicodeChars"
}%%ADDTOZONE{"head" 
   tag="WebCreateNewTopicTemplate:META" 
   text="<noautolink><meta name='foswiki.webTopicCreator.nameFeedback' content='%MAKETEXT{"Topic will be named: "}%' />
<meta name='foswiki.webTopicCreator.errorFeedbackNoWikiName' content='<p class=\"foswikiGrayText\">%MAKETEXT{"Enter the topic name as WikiWord or check the allow non-Wiki Word box."}%</p>' />"
   requires=""
}%%ENDSECTION{"js"}%

%STARTSECTION{"formstart" defaultweb="%INCLUDINGWEB%"}%<form name="newtopicform" action="%SCRIPTURLPATH{edit}%/%defaultweb%/">
<input type="hidden" name="t" value="%GMTIME{"$epoch"}%" />
<input type="hidden" name="onlynewtopic" value="on" />%ENDSECTION{"formstart"}%

%STARTSECTION{"webname"}%    <select name="defaultweb" class="foswikiSelect"> 
     <option>%SANDBOXWEB%</option>
    %SEARCH{
        type="query"
        web="all,-%SANDBOXWEB%"
        topic="%WEBPREFSTOPIC%"
        "1"
        format="<option>$web</option>"
        nonoise="on"
    }% </select>%ENDSECTION{"webname"}%

%STARTSECTION{"topicname"}%<input type="text" class="foswikiInputField" name="topic" size="40" placeholder="%IF{
    "defined placeholder"
    then="%URLPARAM{"placeholder" default="%placeholder%"}%"
}%" value="%IF{
    "defined newtopic"
    then="%URLPARAM{"newtopic" default="%newtopic%"}%"
    else="%IF{"$BASETOPIC='WebCreateNewTopic'" then="" else="%BASETOPIC%"}%"
}%" />%ENDSECTION{"topicname"}%

%STARTSECTION{"wikiword"}%%TMPL:P{"onlywikiname"}%%ENDSECTION{"wikiword"}%

%STARTSECTION{"topicnamefeedback"}%<span class="webTopicCreatorFeedback foswikiGrayText"><!--generated name will be put here--></span>%ENDSECTION{"topicnamefeedback"}%

%STARTSECTION{"topicparent"}%
%JQREQUIRE{"ui::autocomplete"}%
%INCLUDE{"%SYSTEMWEB%.JQueryAjaxHelper" section="topicselector" INPUT_VALUE="%URLPARAM{"topicparent" default=""}%" INPUT_NAME="topicparent" EXCLUDE="%TOPIC%" PLACEHOLDER="%MAKETEXT{"Enter parent name"}%" }%
%ENDSECTION{"topicparent"}%

%STARTSECTION{"templatetopic"}%<select name="templatetopic" class="foswikiSelect">%IF{"'%URLPARAM{"templatetopic"}%'" then='<option selected="selected">%URLPARAM{"templatetopic"}%</option>'}%<option value="">%MAKETEXT{"Default template"}%</option>%SEARCH{"name~'*Template'" scope="topic" topic="*Template" web="%BASEWEB%" excludetopic="*EditTemplate,*WebCreateNewTopicTemplate,*ViewTemplate" type="query" nonoise="on" format="<option value=\"$web.$topic\">$topic</option>"}%</select>%SEARCH{"name~'*Template'" scope="topic" topic="*Template" web="%BASEWEB%" limit="1" excludetopic="WebTopicEditTemplate,*WebCreateNewTopicTemplate,*ViewTemplate" type="query" nonoise="on" format=" <span class='foswikiUnvisited'>%POPUPWINDOW{
url="%SCRIPTURL{view}%/%SYSTEMWEB%/WebTemplateTopics?web=%BASEWEB%;template=viewplain"
template="viewplain"
toolbar="1"
label="%MAKETEXT{"View templates"}%"
}%</span>"}%%JQREQUIRE{"popupwindow"}%%ENDSECTION{"templatetopic"}%

%STARTSECTION{"errorfeedback"}%<div class='webTopicCreatorError'><!--generated name will be put here--></div>%ENDSECTION{"errorfeedback"}%<

%STARTSECTION{"submit"}%<input type="submit" class="foswikiSubmit" value='%MAKETEXT{"Create this topic"}%' />%ENDSECTION{"submit"}%

%STARTSECTION{"formend"}%</form>%ENDSECTION{"formend"}%

31 Oct 2024 - 23:57 Foswiki v2.0.2