Tags:
create new tag
, view all tags
For my skin for the Diemen Repository, I wanted to have a button "Create new topic", because I did not like the standard TWiki implementation to create new topics: the creation of a new topic is hidden under "Go", and new users should enter a wrong topic name to find out about this function (or read the docs smile )

So I created a template for "new topic". See: http://www.visiblearea.com/cgi-bin/twiki/view/Patterns?topic=newtopic

To do: the button (or link) "Create new topic" should be more visible than currently.

-- ArthurClemens - 28 May 2003

This is a great, simple usability enhancement! CategoryBasedNewTopics discusses combining this feature with topic catagorization which helps give some structure to the wiki. In my experience, the formlessness of wikis is also intimidating to new users.

-- LynnwoodBrown - 28 May 2003

I added a small form to some pages on my Twiki to make topic creating a bit easier. I think I saw an example of this somewhere on Codev, but can't remember where. So acknowledgement is due... Well, can't do no harm to repeat this peace of wisdom smile

The form sets the topic parent and fills the new topic with (default) template text.

<form name="search" action="/cgi-bin/twiki/edit/Patterns/">
<INPUT TYPE="hidden" NAME="topicparent" VALUE="Patterns.Patterns_repository">
<INPUT TYPE="hidden" NAME="templatetopic" VALUE="Patterns.Pattern_template">
<b>Create a  new pattern title: </b>  [[TWiki.WikiWord][(title naming rules)]] <br />
<input type="text" name="topic" size=32 />&nbsp;
<input type="submit" value=" &nbsp;Create pattern&nbsp; " />
</form>

-- ArthurClemens - 13 Aug 2003

One of the things I have struggled with is the concept of Templates for topics. When you create a new topic, I wanted a pull-down menu that would select the template that is used to "seed" this new topic. I actually implemented this for the Twiki site I have at work (based off of the TigerSkin), having this as default feature in twiki would be nice.

-- JohnCavanaugh - 14 Aug 2003

In DynamicEditTopicTemplate there is patch to the WebTopicViewTemplate, which provides a similar solution. I also would like to have this as default feature if this selection

  1. precedes all (regular) page creation
  2. preserves the parent information
  3. supports easy overwrite of the parent
Didn't make point 2 yet frown

-- PeterKlausner - 14 Aug 2003

Updated New topic page: http://www.visiblearea.com/cgi-bin/twiki/view/Patterns?topic=newtopic

-- ArthurClemens - 03,06 Sep 2003

See CreateNewTopic for a more structured proposal. -- ArthurClemens - 03 Dec 2003

Arthur - is there a way to make it obvious to the user that they do not need to choose a template or parent? If I were new to the twiki I would decide i wanted to create a topic, goto here, spend too much time deliberating about the right topic name to choose (maybe a hint that you can always re-name would be good), and then start trying to figure out what the templates do / mean etc... al the while not satisfying my original desire - to create a new topic (ignoring totally the time it takes to see if you are duplicating some other content (which i think we should encourage new users not to worry about))

-- SvenDowideit - 04 Dec 2003

Yes, you are right. I will make a new layout.

-- ArthurClemens - 04 Dec 2003

Wouldn't "Default" instead of "Select..." be perfect?

-- PeterKlausner - 04 Dec 2003

Not to try to throw a spanner in the works... some of my newbies really want to think about the name of the page after they have written the content. Is there any way to accommodate this?

-- MartinCleaver - 04 Dec 2003

martin, i was just thinking about this today myself. i would really like to have this feature, too. i think it would help me improve workflow; there's lots of times i want to quickly write something up about a topic and i'm not sure what i'm going to call it or where i'm going to link it ( or sometimes i just really want to get to a braindump entry screen quickly smile ) (it reminds me of when you used to have to name your file/project in applications before you could start working on them...)

i'll add this to my ever-growing todo list, but if someone else gets around to it before me, ... wink

-- WillNorris - 04 Dec 2003

Perhaps this can be realized with a field in the edit template where you can set or change the topic title. But the script should be sophisticated enough to not overwrite any existing topics.

-- ArthurClemens - 04 Dec 2003

More thoughts (please ask for clarification):

  1. I have the requirement to specify the web that the topic should be in
  2. Same goes for the template
  3. The default name could be passed in as the next free one in a sequence (e.g. NewPageX)
  4. All these options might be best on the same page as the edit is made on, or perhaps on a page before
  5. I adapted my wiki to show a web-specific help page
  6. This same template should be invoked regardless of how the new page event occurred.
    • e.g. click on referenced not existing, click new, type in go box, type on URL
  7. Edit permissions are logically distinct from as create new page permissions

-- MartinCleaver - 05 Dec 2003

Thanks for the useful comments. I have made some changes, notably:

  • Differentiating between normal and advanced options. Templates and parents are advanced.
  • The hint that you can rename the page afterwards.
  • Simpler beginner's info. Should not look like an error message. As always I hesitated and tried to put the info block below the entry field, but then decided (again) that especially beginners should be accomodated and that they will overlook the information if it is not in their line of reading. Power users will get accustomed to the position of the block and ignore it.

Before making a design or HTML I decided to create a page diagram first. So looks worse than the web page, but is better when developing and discussing the design. See PDF in table below.

-- ArthurClemens - 07 Dec 2003

ID_CreateNewTopic.png

instead of saying "international characters are possible", just provide examples (like you provided GoodStyle et al) using international characters (e.g., РаботаИнформация, RückgängigSchließlich, 家電?, etc.)

-- WillNorris - 08 Dec 2003

I note my point 1 is not refelected in the design above. I believe few users understand the concept of a web when they start. I've seen my users tend to put everything in the same web, and I think this can be allieviated by allowing them to choose the web on this page.

-- MartinCleaver - 08 Dec 2003

Will, I would only provide the characters if they elucidate something. Just putting the characters will alienate some users from you. So a good middle ground to me is to provide a few characters as illustration, for example:

International characters (ëßф家) are possible.

Martin, you are right. I myself have big reservations about the concept of 'webs', exactly because of the kind of confusion you describe. For most sites (even intranet sites) they will be overkill and lead to people loosing their way. But I acknowledge that for some sites there can be a use (for example if you want to expand the Users/Main web).

Two options:

  1. Add a select box with webs. Do you agree this is an advanced option too?
  2. Add a subtitle: "Add a new topic to [current web] web" (and no select box, user needs to go to other web to create topic there).

(1) seems to be less belittling the user, but adds complexity.
So it depends what you want or expect from you users. Are the users expert users and are they able to restore what they do wrong? Use option 1. Are they dummies and should they be protected from themselves? Use option 2.

I tend to go for option 1 still.

Note: the creation by TWiki of dropdown boxes should be improved so you can pass the selected item to the function. That way you can always have th current web as the selected item in the list, while the order stays the same. Also good for the parent list. To be developed in BetterDropdownBoxPopulation.

-- ArthurClemens - 08 Dec 2003

Question: if a "Create topic in:" select box is the first item in the advanced options, is it possible to generate the parent list on basis of each subsequently selected parent? So if the current web is Main, the parent box shows the topics of Main. If the user now chooses TWiki in the "in" select box, the parent box should now show the topics in TWiki web.

-- ArthurClemens - 09 Dec 2003

You can do it if, either:

  1. you read in all topic names from all webs before loading the page, or
  2. you re-load the page if the user changes the web

NB. The topic picker in Iejs needs a list of all topics anyway, and it would be really useful to be able to show the topic names in other webs in this list.

My preference is therefore (1)

-- MartinCleaver - 10 Dec 2003

If you on Codev go to the More page, you will see that it takes a long time to populate the topic select box. This is only one web, so waiting before all topics are loaded will take too long time, leaving the user wondered if the connection has failed.

So practically (but less unobtrusive) is option 2.

-- ArthurClemens - 10 Dec 2003

If there was a separate page for selecting parent that was linked to from the more page then could it be the next page after the create new topic page and then redirect to the edit page.

The main routes through the workflow with this would be:

  • view -> more -> select parent -> view
  • create new topic -> select parent -> edit -> preview -> view

and possibly:

  • view -> edit -> select parent -> preview -> view
  • create new topic -> edit (straight to edit via a different button) -> preview -> view

-- SamHasler - 10 Dec 2003

  • view -> more -> select parent -> view OK
  • create new topic -> on Create page: select parent -> edit -> preview -> view

and possibly:

  • view -> edit -> select parent -> preview -> view welcome addition
  • create new topic -> on Create page, click Create topic -> preview -> view see diagram below

I have updated the diagram:

TWikiPattern_ID2.png

-- ArthurClemens - 10 Dec 2003

I'm not sure you understood my intention above so I'll have another attempt and try to list the advantages.

Where I said "select parent" above I was refering to a separate page where the only action that can be performed is to select a parent topic for a topic from the web it is in (or will be in for new topics). Then if the select parent section is removed from the "Create New Topic" page and another button added "Select Parent" and when going to the "Select Parent" page from "Create New Topic" it would go to the edit mode afterward, from the more page there would be a button/link to the "Select Parent" page and it would go back to view mode after selection, additionally there could be a "Select Parent" button/link in edit mode that would return to edit mode after selection.

The reason I proposed this was to remove the need for javascript or loading all topics on the create new topic page as when entering the select parent page it would be passed the web parameter from the create new topic page and therefore only have to load topics from that web.

By directing all requests to set/change the parent topic through the same page/template/script it also makes it easier to make changes in the future.

If it was desireable to create/modify a topic to have a parent in a different web to the topic then an extra parameter could easily be added to select the web the parent topic is on to the create/more pages.

-- SamHasler - 10 Dec 2003

I got it. Yes, that makes sense. Would there be any difficulties in going from the edit page to the "Set parent" page and back?

-- ArthurClemens - 10 Dec 2003

I assume that it can be done using the same method that is used for changing the form. The difficulty will be in only doing that when coming from the edit page.

-- SamHasler - 10 Dec 2003

Did this make it into TWiki20040901? I've queued it for Edinburgh as the code must exist somewhere.

-- MartinCleaver - 07 Sep 2004

No, this was never worked out any further.

-- ArthurClemens - 07 Sep 2004

What Arthur has, and I believe the dreaded tigerskin has, would be perfect for a lot of users/businesses to both organize and save time. I would really like to add it as an option on sites.

I have managed to set up oopscreate.tmpl in patternskin and mtskin with two forms, one will set topic name and parent and include present topic as template(included in new topic), the other will set topic name and use any topic on web as a template, but have been unable to combine the two.

%removed

Form A: <form name="search" action="SCRIPTURLPATH/newtopic SCRIPTSUFFIX WEB >

enter topicname and select topic parent(drop down list)includes present topc into newtopic

Form B: <form action="SCRIPTURLPATH/edit SCRIPTSUFFIX / WEB >

enter topicname and select any web topic as a template(drop down list)

How can these be put into one form like Arthur has without going nuts tryin to install Tigerskin (Not an option for 99.9% of users)

-- BruceRProchnau - 16 Feb 2005

you guys need to look at NewTopicForm I created well over a year ago. it is located here and you are welcome to copy the raw version

-- TravisBarker - 19 Apr 2005

I just spoke to Travis over messenger - he's kindly said that he will update it for Dakar this week.

-- MartinCleaver - 31 May 2005

Please put the topic name field at the top of the form. That makes it intuitively clear what the user should do (regarless how many help links are offered). And the option to select a template would be very nice. The select web option would be useful in some situations.

-- ArthurClemens - 31 May 2005


NewTopicForm

As time allows, I will update and test this for Dakar sometime this week. -- TravisBarker - 01 Jun 2005
%STARTINCLUDE%
---++ Start a New Topic ([[AboutNewTopicForm][help]])
Create a new web page by submitting the form below.
---+++++ 1. Name the New Page: ([[AboutWikiWord][help]])

      <input type="text" name="topic" size="10" value="" onchange="var sIn = this.value; var sOut = ''; var chgUpper = true; for ( var i = 0; i < sIn.length; i++ ) { var ch = sIn.charAt( i ); var ch2 = ''; if((ch=='&#224;')||(ch=='&#225;')||(ch=='&#226;')||(ch=='&#227;')||(ch=='&#229;') ) { ch = 'a'; } if( (ch=='&#232;')||(ch=='&#233;')||(ch=='&#234;') ) { ch = 'e'; } if( ch=='&#231;') { ch = 'c'; } if( ch=='&#241;') { ch = 'n'; } if( (ch=='&#242;')||(ch=='&#243;')||(ch=='&#244;') ) { ch = 'o'; } if( ch=='&#228;') { ch = 'a'; ch2 = 'e'; } if( ch=='&#246;') { ch = 'o'; ch2 = 'e'; } if( (ch=='&#249;')||(ch=='&#250;')||(ch=='&#251;') ) { ch = 'o'; } if( ch=='&#252;') { ch = 'u'; ch2 = 'e'; } if( ch=='&#196;') { ch = 'A'; ch2 = 'e'; } if( ch=='&#214;') { ch = 'O'; ch2 = 'e'; } if( ch=='&#220;') { ch = 'U'; ch2 = 'e'; } if( ch=='&#223;') { ch = 's'; ch2 = 's'; } if( ((ch>='a')&&(ch<='z')) || ((ch>='A')&&(ch<='Z')) || ((ch>='0') && (ch<='9')) ) { if( chgUpper ) { ch = ch.toUpperCase(); chgUpper = false; } sOut+=ch; if( ch2!='') { sOut+=ch2; } } else { if( ch==' ' ) { chgUpper = true; } } } this.form.topic.value=sOut;" on="var sIn = this.value; var sOut = ''; var chgUpper = true; for ( var i = 0; i < sIn.length; i++ ) { var ch = sIn.charAt( i ); var ch2 = ''; if((ch=='&#224;')||(ch=='&#225;')||(ch=='&#226;')||(ch=='&#227;')||(ch=='&#229;') ) { ch = 'a'; } if( (ch=='&#232;')||(ch=='&#233;')||(ch=='&#234;') ) { ch = 'e'; } if( ch=='&#231;') { ch = 'c'; } if( ch=='&#241;') { ch = 'n'; } if( (ch=='&#242;')||(ch=='&#243;')||(ch=='&#244;') ) { ch = 'o'; } if( ch=='&#228;') { ch = 'a'; ch2 = 'e'; } if( ch=='&#246;') { ch = 'o'; ch2 = 'e'; } if( (ch=='&#249;')||(ch=='&#250;')||(ch=='&#251;') ) { ch = 'o'; } if( ch=='&#252;') { ch = 'u'; ch2 = 'e'; } if( ch=='&#196;') { ch = 'A'; ch2 = 'e'; } if( ch=='&#214;') { ch = 'O'; ch2 = 'e'; } if( ch=='&#220;') { ch = 'U'; ch2 = 'e'; } if( ch=='&#223;') { ch = 's'; ch2 = 's'; } if( ((ch>='a')&&(ch<='z')) || ((ch>='A')&&(ch<='Z')) || ((ch>='0') && (ch<='9')) ) { if( chgUpper ) { ch = ch.toUpperCase(); chgUpper = false; } sOut+=ch; if( ch2!='') { sOut+=ch2; } } else { if( ch==' ' ) { chgUpper = true; } } } this.form.topic.value=sOut;" language="Javascript1.2" /><small><br />Use a _[[AboutWikiWord][WikiWord]]_ (Example: "AllArt")</small>

---+++++ 2. Choose A Parent Topic: ([[AboutTopicParentSelection][help]])
<form name="goform" onsubmit="var sIn = this.form.topic.value; var sOut = ''; var chgUpper = true; for ( var i = 0; i < sIn.length; i++ ) { var ch = sIn.charAt( i ); var ch2 = ''; if((ch=='&#224;')||(ch=='&#225;')||(ch=='&#226;')||(ch=='&#227;')||(ch=='&#229;') ) { ch = 'a'; } if( (ch=='&#232;')||(ch=='&#233;')||(ch=='&#234;') ) { ch = 'e'; } if( ch=='&#231;') { ch = 'c'; } if( ch=='&#241;') { ch = 'n'; } if( (ch=='&#242;')||(ch=='&#243;')||(ch=='&#244;') ) { ch = 'o'; } if( ch=='&#228;') { ch = 'a'; ch2 = 'e'; } if( ch=='&#246;') { ch = 'o'; ch2 = 'e'; } if( (ch=='&#249;')||(ch=='&#250;')||(ch=='&#251;') ) { ch = 'o'; } if( ch=='&#252;') { ch = 'u'; ch2 = 'e'; } if( ch=='&#196;') { ch = 'A'; ch2 = 'e'; } if( ch=='&#214;') { ch = 'O'; ch2 = 'e'; } if( ch=='&#220;') { ch = 'U'; ch2 = 'e'; } if( ch=='&#223;') { ch = 's'; ch2 = 's'; } if( ((ch>='a')&&(ch<='z'))||((ch>='A')&&(ch<='Z')) || ((ch>='0') && (ch<='9')) ) { if( chgUpper ) { ch = ch.toUpperCase(); chgUpper = false; } sOut+=ch; if( ch2!='') { sOut+=ch2; } } else { if( ch==' ' ) { chgUpper = true; } } } this.form.topic.value=sOut;" action="%SCRIPTURLPATH%/edit%SCRIPTSUFFIX%/%INTURLENCODE{"%WEB%/%TOPIC%"}%">
 <table>
  <tr>
   <td>
     <br>
      <select name="topicparent" size="10">
       <option value="OffTopic">(Choose Parent Topic Below)</option>
        %TOPICLIST{"<option value=$qname>$name</option>" separator=" "}%
      </select>
     <br />

---+++++ 3. Submit the form to begin editing your new page: ([[AboutTWikiTopics][help]])

     <input type="submit" value="Submit" onclick="var sIn = this.form.topic.value; var sOut = ''; var chgUpper = true; for ( var i = 0; i < sIn.length; i++ ) { var ch = sIn.charAt( i ); var ch2 = ''; if((ch=='&#224;')||(ch=='&#225;')||(ch=='&#226;')||(ch=='&#227;')||(ch=='&#229;') ) { ch = 'a'; } if( (ch=='&#232;')||(ch=='&#233;')||(ch=='&#234;') ) { ch = 'e'; } if( ch=='&#231;') { ch = 'c'; } if( ch=='&#241;') { ch = 'n'; } if( (ch=='&#242;')||(ch=='&#243;')||(ch=='&#244;') ) { ch = 'o'; } if( ch=='&#228;') { ch = 'a'; ch2 = 'e'; } if( ch=='&#246;') { ch = 'o'; ch2 = 'e'; } if( (ch=='&#249;')||(ch=='&#250;')||(ch=='&#251;') ) { ch = 'o'; } if( ch=='&#252;') { ch = 'u'; ch2 = 'e'; } if( ch=='&#196;') { ch = 'A'; ch2 = 'e'; } if( ch=='&#214;') { ch = 'O'; ch2 = 'e'; } if( ch=='&#220;') { ch = 'U'; ch2 = 'e'; } if( ch=='&#223;') { ch = 's'; ch2 = 's'; } if( ((ch>='a')&&(ch<='z')) || ((ch>='A')&&(ch<='Z')) || ((ch>='0') && (ch<='9')) ) { if( chgUpper ) { ch = ch.toUpperCase(); chgUpper = false; } sOut+=ch; if( ch2!='') { sOut+=ch2; } } else { if( ch==' ' ) { chgUpper = true; } } } this.form.topic.value=sOut;" />
     <input type="hidden" name="onlywikiname" value="on" />
    </span>
   </td>
  </tr>
 </table>
</form>
%STOPINCLUDE%

Start a New Topic (help)

Create a new web page by submitting the form below.
1. Name the New Page: (help)


Use a WikiWord (Example: "AllArt")

2. Choose A Parent Topic: (help)


3. Submit the form to begin editing your new page: (help)


Great that you are working on this!

Maybe I have time to insert a few feature requests collected from other topics.

What I have in mind is that clicking on a question mark 'new topic' link leads the user to this "Create new topic" page.

  • When you click on the question mark, the topic name is set. The name field gives the user the option to give the topic another name.
  • This would also cater for the singular/plural topic names. DEVELOP currently has the ? ?? syntax that I am unhappy with. Better would be one question mark that leads the user to our Create new topic page. The topic name is prefilled in the name field, and the user can choose the plural form. Perhaps he can be assisted by providing both variations.
  • When you click on the question mark, the new topic parent is set (it is the topic you clicked in). The list of topics then should show that parent, with the option to choose another one.
  • It is extremely convenient to be able to choose the template for the topic.

-- ArthurClemens - 01 Jun 2005

This interface has been realized in WebTopicCreator in TWiki 4 (SVN r. 11542).

-- ArthurClemens - 20 Sep 2006

Like I stated in CloneTopicLinkUnderMore, I think many users would want to clone a new topic based on an old one. Therefore, any topic should be pickable in the list of templates.

-- MartinCleaver - 05 May 2008

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng ID_CreateNewTopic.png r1 manage 30.0 K 2003-12-08 - 01:32 WillNorris Create new topic page diagram version 1
PNGpng TWikiPattern_ID2.png r1 manage 76.0 K 2003-12-10 - 10:45 ArthurClemens Create new topic page diagram version 2
PNGpng screenshot_newtopic.png r2 r1 manage 50.4 K 2003-09-06 - 21:53 ArthurClemens Screenshot of my implementation (now old)
Edit | Attach | Watch | Print version | History: r42 < r41 < r40 < r39 < r38 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r42 - 2008-05-05 - MartinCleaver
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.