Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Item13727: Item12923: improved json representation
- don't expand macros in web/topic/text/summary - preparing final release
- Loading branch information
1 parent
4500638
commit bf3a8ef
Showing
5 changed files
with
227 additions
and
60 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,188 @@ | ||
%META:TOPICINFO{author="ProjectContributor" comment="reprev" date="1394206737" format="1.1" reprev="2" version="2"}% | ||
%META:TOPICINFO{author="ProjectContributor" comment="" date="1442921713" format="1.1" version="1"}% | ||
---+!! %TOPIC% | ||
%SHORTDESCRIPTION% | ||
%$SHORTDESCRIPTION% | ||
|
||
%TOC% | ||
|
||
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: | ||
|
||
* as a customizable sidebar navigation | ||
* as a list of links on a frontpage | ||
* as a kanban-like task manager | ||
|
||
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 [[%SYSTEMWEB%.MetaData][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. | ||
|
||
---++ Usage | ||
|
||
---++ Examples | ||
---+++ Simple | ||
|
||
Just type | ||
|
||
<verbatim class="tml"> | ||
%LISTY% | ||
</verbatim> | ||
|
||
anywhere on a topic to get started. Data will be stored into the current topic. | ||
|
||
---+++ My Links | ||
|
||
To store "My Links" of the currently logged in user, use: | ||
|
||
<verbatim class="tml"> | ||
%LISTY{ | ||
"mylinks" | ||
topic="%WIKIUSERNAME%" | ||
}% | ||
</verbatim> | ||
|
||
This will store the set of links organized by this widget into the user's profile page and have them in a "mylinks" collection. | ||
|
||
---+++ Kanban-ish | ||
To create a simple three-state task manager use this: | ||
|
||
(with the help of [[Foswiki:Extensions/GridLayoutPlugin][GridLayoutPlugin]]) | ||
|
||
<verbatim class="tml"> | ||
%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% | ||
</verbatim> | ||
|
||
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. | ||
|
||
---+++ Custom formatting | ||
|
||
A listy can be integrated in a wiki application specifying a customized formatting for each listy item. Below | ||
renders each topic in a listy by displaying an image and part of its [[%SYSTEMWEB%.DataForms][DataForm]]. | ||
|
||
(with the help of [[Foswiki:Extensions/ImagePlugin][ImagePlugin]] and [[Foswiki:Extensions/FlexFormPlugin][FlexFormPlugin]] and a custom !DataForm for movies) | ||
|
||
<verbatim class="tml"> | ||
%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>" | ||
}% | ||
</verbatim> | ||
|
||
---++ Syntax | ||
|
||
=%<nop>LISTY{"<collection>" ...}%= | ||
|
||
| *Parameter* | *Description* | *Default* | | ||
| =topic= | | =%<nop>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 | | | ||
| =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= | =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=, =both= | =bottom= | | ||
| =width= | width of listy widget, e.g. =width="500px" | | | ||
| =class= | additional css class to be added to the listy widget | | | ||
|
||
The parameters =format=, =topic_format=, =text_format=, =external_format= may use the following variables: | ||
|
||
| *Name* | *Description* | | ||
| =$tools= | expands to the tools to interact with a listy item | | ||
| =$class= | css class of a listy item | | ||
| =$date= | date when the listy item was last changed | | ||
| =$index= | index of listy item within collection | | ||
| =$url= | link url of listy item | | ||
| =$type= | type of this item ("topic", "text" or "external") | | ||
| =$title= | title text of listy item | | ||
| =$topic= | topic value of a "topic" listy item | | ||
| =$web= | web value of a "topic" listy item | | ||
| =$name= | name/id of this listy item | | ||
| =$summary= | summary | | ||
| =$json= | listy item as a json object; this is used by the widget to interact with the backend | | ||
|
||
There are a couple of additional variables that are used in the =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 | | ||
| =$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 | | ||
|
||
---++ Installation Instructions | ||
|
||
%$INSTALL_INSTRUCTIONS% | ||
|
||
---++ Info | ||
<!-- | ||
* Set SHORTDESCRIPTION = %$SHORTDESCRIPTION% | ||
--> | ||
|
||
| Author(s): | Michael Daum| | ||
| Copyright: | © 2015 Michael Daum http://michaeldaumconsulting.com | | ||
| License: | [[http://www.gnu.org/licenses/gpl.html][GPL (Gnu General Public License)]] | | ||
| Release: | %$RELEASE% | | ||
| Version: | %$VERSION% | | ||
| Change History: | <!-- versions below in reverse order --> | | ||
---++ Dependencies | ||
%$DEPENDENCIES% | ||
|
||
---++ Change History | ||
|
||
%TABLE{columnwidths="7em" tablewidth="100%"}% | ||
| 22 Sep 2015: | first final relase | | ||
| 31 Aug 2015: | fourth beta release | | ||
| 17 Jul 2015: | third beta release | | ||
| 24 Jan 2014: | renamed from <nop>BookmarksPlugin to ListyPlugin | | ||
| Dependencies: | %$DEPENDENCIES% | | ||
| Home page: | Foswiki:Extensions/%TOPIC% | | ||
| Support: | Foswiki:Support/%TOPIC% | | ||
|
||
%META:FORM{name="PackageForm"}% | ||
%META:FIELD{name="Author" title="Author" value="Michael Daum"}% | ||
%META:FIELD{name="Version" title="Version" value="%25$VERSION%25"}% | ||
%META:FIELD{name="Release" title="Release" value="%25$RELEASE%25"}% | ||
%META:FIELD{name="Repository" title="Repository" value="https://github.com/foswiki/ListyPlugin"}% | ||
%META:FIELD{name="Copyright" title="Copyright" value="© 2015 Michael Daum http://michaeldaumconsulting.com"}% | ||
%META:FIELD{name="License" title="License" value="[[http://www.gnu.org/licenses/gpl.html][GPL (Gnu General Public License)]]"}% | ||
%META:FIELD{name="Home" title="Home" value="http://foswiki.org/Extensions/ListyPlugin"}% | ||
%META:FIELD{name="Support" title="Support" value="Foswiki:Support/ListyPlugin"}% |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.