 
	
		 
	
    
	
		 
	
	
		 
	
	
		 
	
	
		 
	
        
                 
	 
		This plugin implements an interactive list manager. A "Listy" is a collection of text or links that can be maintained easily using modal dialogs, dragged and dropped to sort or move around between multiple listies.
There are a couple of ways to use a Listy:
All of these use cases have in common that you may freely interact with items on a listy.
Technically speaking, a listy is stored as MetaData attached to a topic. A listy is made up of multiple entries of the form%META:LISTY to the same topic. Multiple independent listies can
be stored on a single topic by defining the "collection" identifier. Also, multiple independent listies of the
same collection can be stored in separate topics.
Just type
%LISTY%
anywhere on a topic to get started. Data will be stored into the current topic.
To store "My Links" of the currently logged in user, use:
%LISTY{
   "mylinks"
   topic="%WIKIUSERNAME%"
}%
This will store the set of links organized by this widget into the user's profile page and have them in a "mylinks" collection.
%FAVBUTTON macro lets add a topic to a listy. By default it adds the current topic to your "mylinks" collections (see above):
%FAVBUTTON%
Note that any "mylinks" listy on the same page will automatically be updated as you click on the favbutton. Clicking on it again will remove it from the listy again.
%BEGINGRID{border="on"}%
%BEGINCOL{"4"}%
---++ Todo
%LISTY{
   "todo" 
   collections="todo, inprogress, done"
}%
%BEGINCOL{"4"}%
---++ In progress
%LISTY{
   "inprogress" 
   collections="todo, inprogress, done"
}%
%BEGINCOL{"4"}%
---++ Done
%LISTY{
   "done"
   collections="todo, inprogress, done"
}%
%ENDGRID%
This will display three listies next to each other, a "todo", an "inprogress" and a "done" listy. You will be able to create entries for each listy, assign them to one of the collections and move them around using drag and drop.
TaskForm attached to it:
| *Name* | *Type* | *Size* | *Values* | *Description* | *Attributes* | *Default* | | Summary | text | 80 | | | | | | Owner | text | 20 | | | | | | Status | radio | 5 | created, todo, inprogress, done | | | created |
Tasks are created as part of a wiki application and them might be managed using a scrum board extending above example:
%BEGINGRID{gutter="1" border="off"}%
%BEGINCOL{"3"}%
---++ Backlog
%LISTY{"created" 
   collections="created, todo, inprogress, done" 
   type="query" 
   query="form='TaskForm' AND ! Status=~'\b(todo|inprogress|done)\b'"
   collection_formfield="Status"
}%
%BEGINCOL{"3"}%
---++ Todo
%LISTY{
   "todo"
   collections="created, todo, inprogress, done" 
   type="query" 
   query="form='TaskForm' AND Status='\btodo\b'"
   collection_formfield="Status"
}%
%BEGINCOL{"3"}%
---++ In progress
%LISTY{
   "inprogress" 
   collections="created, todo, inprogress, done" 
   type="query" 
   query="form='TaskForm' AND Status='\binprogress\b'"
   collection_formfield="Status"
}%
%BEGINCOL{"3"}%
---++ Done
%LISTY{
   "done" 
   collections="created, todo, inprogress, done" 
   type="query" 
   query="form='TaskForm' AND Status='\bdone\b'"
   collection_formfield="Status"
}%
%ENDGRID%
Note that each listy is of type="query" and thus prefilled by entries that refer to the found topics. The parameter collection_formfield="Status" then informs the listy
to alter the Status formfield of the related topic while an entry is dragged from one listy to the next.
%LISTY{
  type="topic"
  width="500px"
  buttons="both"
  format="<div class='$class clearfix'>$tools
      $percntIMAGE{\"$percntFORMFIELD{\"Image\"}$percnt\" size=\"100\" align=\"left\" type=\"plain\"}$percnt
      <h3>
         <span class='foswikiGrayText foswikiRight foswikiSmall'>#$index</span>
         <a href='$url'>$title</a>
      </h3>  
      <div class='foswikiGrayText'>
      $percntRENDERFORDISPLAY{
         fields=\"Rating, Release, AgeRating_i, Genre\" 
         format=\"$title: $value\" 
         separator=\"%BR%\"
         hidenull=\"on\"
      }$percnt
      </div>
   </div>"
}%
%LISTY{"<collection>" ...}%
| Parameter | Description | Default | 
|---|---|---|
| topic | location where all entries of this listy are stored | %BASETOPIC% | 
| collection | the collection ID, can be just any string; leave it empty to refer to the "default" collection | <empty> | 
| collections | list of known collections stored at topic; this lets you move a listy item between collectiosn without having a drag'n drop | |
| collection_formfield | name of a formfield to be altered when dragging topic listies among collections | |
| collection_value | value to set a topic item's formfield to | collection | 
| hidenull | boolean flag to hide the listy when there are no items in it | false | 
| showcollections | boolean flag to show/hide the collections select box in the item editor | true | 
| sort | sort listies using the specified property; possible values are index,title,summary,date,topictitle | index | 
| reverse | boolean flag to reverse the sorting order as specified in sort | off | 
| types | specify types of listy items, possible values are topic,text,external | topic, text, external | 
| autosave | boolean flag to enable/disable saving changes automatically on every action; if switched off you will need to hit the "save" button to make any changes to the listy permanent; if switched on (default) any change will be stored immediately | true | 
| format,topic_format,text_format,external_format | format string of listy items; there are a number of variables to be used in the format (see below) | defined in listyplugin.tmpl | 
| buttons | specify where the UI buttons are located; possible values are top,bottom,bothandoff | bottom | 
| width | width of listy widget, e.g. =width="500px" | |
| class | additional css class to be added to the listy widget | |
| query | search query for topics to pre-fill a listy with items; this is either a normal QuerySearch or a query using Foswiki:Extensions/DBCachePlugin in case it is installed | 
format, topic_format, text_format, external_format may use the following variables:
| Name | Description | 
|---|---|
| $class | css class of a listy item | 
| $date | date when the listy item was last changed | 
| $index | index of listy item within collection | 
| $json | listy item as a json object; this is used by the widget to interact with the backend | 
| $name | name/id of this listy item | 
| $summary | summary | 
| $title | title text of listy item | 
| $tools | expands to the tools to interact with a listy item | 
| $topic | topic value of a "topic" listy item | 
| $type | type of this item ("topic", "text" or "external") | 
| $url | link url of listy item | 
| $web | web value of a "topic" listy item | 
listyplugin.tmpl default strings:
| Name | Description | 
|---|---|
| $item | inserts the listy item into the result | 
| $buttons | button format | 
| $topbuttons | buttons located at the top | 
| $bottombuttons | buttons located at the bottom | 
| $sourceweb | |
| $sourcetopic | |
| $collection | collection id | 
| $collectionformfield | name of formfield managed by this listy | 
| $collectionvalue | value set to a collection formfield if this listy receives a new item using drag& drop | 
| $showcollections | true/false | 
| $types | selected types of this listy | 
| $autosave | true/false | 
| $count | number of listy items | 
| $style | extra css | 
| $class | extra class | 
| $allcollections | list of collections known by the current listy | 
| $listyID | id of the current listy | 
| $tml | url-escaped TML used to render this listy; this is used to re-render the widget after an update | 
%FAVBUTTON{...}
| Parameter | Description | Default | 
|---|---|---|
| "..."orsource | topic to be added to the listy | current user's profile page | 
| web,topic | topic to be added to the list | current topic | 
| collection | name of the listy collection to add the favorite to | mylisty | 
| favtext | button text to be displayed when the source topic has not been favorited yet | Favorite | 
| favicon | button icon | fa-star-o | 
| favtitle | button tooltip | Add to favorites | 
| unfavtext | button text to be displayed when the source topic has been favorited | Unavorite | 
| unfavicon | button icon | fa-star | 
| unfavtitle | button tooltip | Remove from favorites | 
| class | css class to be added to the button element | |
| style | css styles to be added to the button element | |
| animate | animation to be added to the button, see VarJQICON | |
| showlabel | boolean flag to show/hide the button label | on | 
| showicon | boolean flag to show/hide the button icon | on | 
Example:
%FAVBUTTON{
   showlabel="off"
   favicon="fa-heart-o"
   unfavicon="fa-heart"
   class="foswikiLarge foswikiAlert"
}%
...LeftBar  ...LeftBar topic for each user.
These can be converted to a setup based on ListyPlugin that stores those links into personal mylinks using a REST handler of the ListyPlugin.
Use the following commandline:
cd <foswiki-directory> ./rest /ListyPlugin/importSideBar param=value ...
| Parameter | Description   | Default | 
|---|---|---|
| web | user web to search for ...LeftBartopics | Main | 
| target | target web to store create listy entries | Main | 
| suffix | suffix of topics to search for | LeftBar | 
| exclude | regular expressions of topics to prevent from being processed | |
| include | regular expressions of topics to include in the conversion process | |
| collection | collection name to store entries to | mylinks | 
| verbose | boolean flag to enable verbose progress output | off | 
| debug | boolean flag to enable debug outout | off | 
Note that the conversion process tries to clean up as good as possible entries in the ...LeftBar topics. However, as this is a free-form topic any kind of content may be found, only some of it may be converted into a listy.
cd /path/to/foswiki perl tools/extension_installer <NameOfExtension> installIf you have any problems, or if the extension isn't available in
configure, then you can still install manually from the command-line. See https://foswiki.org/Support/ManuallyInstallingExtensions for more help.
| Name | Version | Description | 
|---|---|---|
| Foswiki::Plugins::RenderPlugin | >=3.10 | Required. | 
| Foswiki::Plugins::JQueryPlugin | >=7.00 | Required. | 
| Foswiki::Plugins::FilterPlugin | >=4.00 | Required. | 
| Foswiki::Contrib::JsonRpcContrib | >=2.21 | Required. | 
| Foswiki::Plugins::ZonePlugin | >=3.1 | Required. required for Foswiki < 1.1 | 
| Foswiki::Plugins::TopicTitlePlugin | >1.00 | Required for Foswiki < 2.2 | 
| 01 Jul 2019: | fixes along the new tabpane api; recording author, modification date, create author and create date now | 
| 29 Jan 2019: | added %FAVBUTTONmacro;                   added solr index handler to make individual listy entries searchable;                   depend on TopicTitlePlugin now | 
| 02 Feb 2017: | added sidebar importer that allows to convert a WikiUserLeftBar to a listy | 
| 23 Jan 2017: | new features: populate listies using a search query; change formfields of a topic behind a listy item drag&droping them between listies | 
| 22 Sep 2015: | first final relase | 
| 31 Aug 2015: | fourth beta release | 
| 17 Jul 2015: | third beta release | 
| 24 Jan 2014: | renamed from BookmarksPlugin to ListyPlugin | 
| Author | Michael Daum | 
| Version | 3.10 | 
| Release | 02 Jul 2019 | 
| Description | Fancy list manager | 
| Repository | https://github.com/foswiki/ListyPlugin | 
| Copyright | © 2015-2019 Michael Daum http://michaeldaumconsulting.com | 
| License | GPL (Gnu General Public License) | 
| Home | https://foswiki.org/Extensions/ListyPlugin | 
| Support | Foswiki:Support/ListyPlugin | 
 Copyright © by the contributing authors. All material on this site is the property of the contributing authors.
Copyright © by the contributing authors. All material on this site is the property of the contributing authors.