View · Index


Filtered by category Our Website , 1 - 6 of 6 Postings (all, summary)

Feature Requests for's XoWiki

Created by Robert Taylor, last modified by Gustaf Neumann 19 Oct 2017, at 08:51 AM


Most of the Feature Request are complete.  THANK YOU GUSTAF AND DAVE! I am adding a few minor enhancement requests and removing the completed requests.


Some comments to the requests from Gustaf Neumann

Comments and responses by Robert Taylor

Feature Requests:

1.  DELETING DOCUMENTS - Normal users should not have DELETE privileges, but administrators should.  As an administrator I don't see a DELETE option in the menu in the top right hand of ever page.  Perhaps DELETE should go between NEW PAGE and INDEX items.

    Added delete button on the view page. mostly useful, when the default listing of all entries is replaced by a tailored index page

2.  HIERARCHICAL CATEGORIES - Left hand menu needs to properly show SUBCATEGORY WITHING SUBCATEGORY in a hierarchical relationship.  Clearly one thing we will have to take into consideration is hierarchy layout and spacing issues - do we preload all categories or do we just preload a preset number of levels down and then dynamically load the rest below a certain threshold. Dave mentioned the ui component has to be coded up to handle that type of layout.

     Hierarchical display of categories added to the version in CVS head. Spacing is a matter of style-sheets.  

3.  XINHA SUPERPOWERS - Xinha is one amazing editor, and just looking at their page it's still  not complete.  I think we need to look at stripping some of the features out of our Xinha install on XoWiki.  This should probably be based around generating a STYLE GUIDE for the wiki and basing our Xinha hacking on that.  Dave mentioned it is possible to take away Xinha features fairly easily so we will look at that further.

 xinha is configured via plugins (see xowiki uses per default the following settings, which are some standard options plus the OacsFs plugin contributed by Günter Ernst and me.  The standard behavior  can be modified by the settings of the WikiForm (in xowiki-procs) for the whole installation. a per-instance setting will follow in the future

4.  ADMINISTRATION SECTION - If you select the "WOIKI" item in the location area on the page (OpenACS Home : xowiki : New XoWiki Page) the link seems to alternate between the INDEX page and ADMIN page although it seems a bit random.  I think this is probably a bug, but it should be changed to the following:

a) Selecting XOWIKI in the location of the page should always go to INDEX just like the item "INDEX" the the wiki page UI does. 

b) For administrator we should add and item ADMIN to the wiki page admin menu so that the administrator can go to the admin section and work on templates, delete documents, etc.

 can't reproduce a. xowiki in the breadcrums and index both point to oacs.orig/xowiki, so they should return same values. in earlier versions  there was a caching bug, which is - i think - gone since end of Feb.

concerning permissions etc. currently, xowiki uses a simple permission system: it checks write permissions on the folder, these write permissions are used distinguishing admins and readers. future versions should have a much richer permission system, where one can use alternatively different permissions policies based on per page permissions (this is however, much more expensive and will use much less caching). for now, do you folks want in addition to the new delete entry also an admin button in case a user has write permissions on the folder?

5.  PRINT PAGE - All users should have an item in the wiki page menu (for every wiki page) labeled "PRINT".  This action would refresh the page content and / or bring up a popup with the content of the page in a printer friendly format without various user interface components.

6.  IMPORT / EXPORT DIR TREE - The ability to import/export a directory tree of XoWiki documents has use for and arguably as a general XoWiki feature. In the case of OpenACS, exporting would allow these /xowiki pages to be saved into static pages so that they can be read independently of and independent of having a local running OpenACS system.

Problem example: OpenACS moves documentation to XoWiki. Documentation is no-longer available as static pages on local machine(s). Users/admins become dependent on reading docs from or spidering the pages using wget etc.. of course most likely during the busiest times that OpenACS is being accessed ;) etc. etc.

7.  PAGE REVISION (AS TIMESTAMP) - Exporting files (request 6) would bring about questions of comparing file exports (at least on a page by page basis). Having a page revision displayed on each page as a timestamp would help to reduce any ambiguity as to which statically exported page is more current --regardless of export technique (wget, XoWiki export feature etc.)




  • xowiki is not visible in IE. Must be a CSS issue. Has someone an idea why this happens?
    • no kidding?!  doesn't work in i.e. will post bug
    • fixed. this was an unclosed script tag in the  xowiki installation on
  • For some reason I always get a popup window: "Error reading Language-File (/resources/acs-templating/xinha-nightly/plugins/OacsFs/lang/de.js) - Syntax Error: missing ; before statement"
    • must be something on, does not show-up on other installations. i have developed the plugin, and do not have the mentioned file.
  • The CodeMatrix includes need a little clean up: left alignment and top valignment for each heading
    • must be done by someone at or vinod. most probable some CSS fiddling.


  • Page language: Wouldn't it be more readable and less technical if we would not display the language shortcut "en:" or other before each link to a wiki page?
    • one can use arbitrary labels in a reference between square brackets.
  • The category tree on the left breaks long names which is ok but the next line should have more left margins in order to start right after the dot. Another solution would be to cut off the tail of long names
    • CSS fiddling. should be done by someone with CSS knowledge and  taste. uses currently the original settings from|mktree

Further Features

  • support for NOTIFICATIONS for xowiki so that you are notified if a page was added or changed
  • List view for category nodes that displays all children on the right when you click on it.
    • don't understand. you mean, without expanding the current page?
  • Display the name of the person who edited the page in "Latest Page edits (ADP portlets/categories-recent {name {Recent Entries by Categories} max_entries 30)


  • Any chance that we ca define a sub type PackagePage that automatically provides the info, bug-tracker and code metric includes?
  • Some kind of traffic lights that shows green, yellow or red depending on the maturity of the package, db support
  • More categorization for packages: Core, Non-Core is too technical, no?
  • When clicking on a category it would be great if the list of all packages within the category are displayed as APM does on upgrade/installation time.
    • sounds like a different or additional category tree


Most Popular Pages

Created by Gustaf Neumann, last modified by Benjamin Brink 30 Jun 2017, at 07:15 AM

Activity Graph

Created by Gustaf Neumann, last modified by Benjamin Brink 30 Jun 2017, at 07:12 AM

You must login to see the activity-graph

XoWiki: List of the available includelets

Created by Gustaf Neumann, last modified by Benjamin Brink 30 Jun 2017, at 07:11 AM

This is a list of the includelets, which can be included in a xowiki page: 

The following includelets can be used in a page
  • {{LTI-LaunchButton -launch_button_label Join Meeting -launch_button_title Click to join -title "" -presentation window}}

  • {{activity-graph -max_edges 70 -cutoff 0.1 -max_activities:integer 100 -show_anonymous message}}

    Include an activity graph

  • {{available-formfields -flat:boolean false}}

    List the available form field types of this installation.

  • {{available-includelets}}

    List the available includelets of this installation.

  • {{book -category_id -menu_buttons edit -folder_mode false -locale "" -range "" -allow_reorder "" -orderby page_order,asc -with_footer false -publish_status ready}}

    Show contents in book mode.

  • {{bookmarklet-button -siteurl "" -label ""}}

    Include bookmarklet button that makes it easy to add the current page as a bookmark in the browser of the client.

  • {{categories -tree_name "" -tree_style:boolean 1 -no_tree_name:boolean 0 -count:boolean 0 -summary:boolean 0 -locale "" -open_page "" -order_items_by title,asc -style mktree -category_ids "" -parent / -except_category_ids "" -allow_edit false -ordered_composite}}

    List the specified category tree.

  • {{categories-recent -max_entries:integer 10 -tree_name "" -locale "" -pretty_age off}}

    Display recent entries by categories.

  • {{chat -title "" -chat_id "" -mode "" -path "" -skin -login_messages_p -logout_messages_p -avatar_p -timewindow}}

    Include a chat in the current page

  • {{chat_room -chat_id -mode:optional "" -path:optional "" -skin:optional ""}}

    Include a chat room

  • {{child-resources -skin:optional yui-skin-sam -show_types ::xowiki::Page,::xowiki::File,::xowiki::Form,::xowiki::FormPage -regexp:optional -language_specific:boolean false -with_subtypes:boolean,optional false -orderby:token,optional last_modified,desc -publish_status:wordchar ready -view_target "" -html-content -parent . -columns objects edit publish_status object_type name last_modified mod_user duplicate delete -hide "" -menubar ""}}

    Include the content of the current folder somewhat similar to explorer.

  • {{collab-graph -max_edges 70 -cutoff 0.1 -show_anonymous message -user_id}}

    Include a collaboration graph

  • {{community-link -text "" -url ""}}

    Include a link to the community including the current page. This includelet is designed to work with dotlrn.

  • {{composite-form -edit_links:boolean false -pages "" -ordered_pages}}

    Create a form from the selection

  • {{copy-item-button -page_id -alt copy -book_mode false}}

    Button to copy a page

  • {{countdown-timer -target_time "" -audio_alarm true}}

    Countdown timer

  • {{create-item-button -page_id -alt new -book_mode false}}

    Button to create a new page based on the current one

  • {{creation-date -source "" -format %m-%d-%Y}}

    Include the creation date of the current or specified page in the provided format.

  • {{current-irc-log -date ""}}

  • {{delete-item-button -page_id -title Delete -alt delete -book_mode false}}

    Button to delete the current or a different page

  • {{delicious -description "" -tags "" -url}}

    Add a button to submit article to delicious.

  • {{digg -description "" -url}}

    Add a button to submit article to digg.

  • {{edit-item-button -page_id -title Edit -alt edit -book_mode false -link "" -target ""}}

    Button to edit the current or a different page

  • {{exam-top-includelet -countdown_audio_alarm true -target_time "" -url_poll "" -url_dismiss "" -poll_interval 5000}}

    This is the top includelet for the in-class exam, containing a countdown timer and the personal notifications includelet

  • {{flowplayer -mp4:required,nohtml}}

    Include an mp4 image using flowplayer

  • {{folders -show_full_tree false -context_tree_view false}}

    List the folder tree of the current instance

  • {{form-menu -form_item_id:integer -parent_id -form -buttons new answers -button_objs -return_url}}

    Include a form menu for the specified Form

  • {{form-stats -form -parent_id -property _state -orderby count,desc -renderer table}}

    Include form statistics for the specofied Form page.

  • {{form-usages -form_item_id:integer,1..n -form -parent_id -package_ids "" -orderby _raw_last_modified,desc -view_field _name -publish_status all -field_names -hidden_field_names _last_modified -extra_form_constraints "" -inherit_from_forms "" -category_id -unless -where -extra_where_clause "" -csv true -voting_form -voting_form_form "" -voting_form_anon_instances t -generate -with_form_link true -with_categories -wf -bulk_actions "" -buttons edit delete -renderer "" -return_url -date_format -with_checkboxes:boolean false}}

    Show usages of the specified form.

  • {{get -variable -form_variable -source ""}}

    Get an instance variable from the current or from a different page.

  • {{graph}}

  • {{gravatar -email:required -size 80}}

    Include gravatar picture for the specified email

  • {{html-file -title "" -extra_css "" -levels 0 -file:required}}

    Include the specified HTML file

  • {{iframe -title "" -url:required -width 100% -height 500px}}

    Include an iframe containing the specified URL

  • {{item-button}}

  • {{jquery-carousel}}

    Display a sequence of pages via jquery-carousel, based on book includelet.

  • {{jquery-cloud-carousel}}

    Display a sequence of pages via jquery-cloud-carousel, based on book includelet.

  • {{jquery-infinite-carousel}}

    Display a sequence of pages via jquery-infinite-carousel, based on book includelet.

  • {{jquery-spacegallery}}

    Display a sequence of pages via jquery-spacegalleryl, based on book includelet.

  • {{kibana -chart openacs-status-codes -from now-24h -to now -hash "" -width:integer 800 -height:integer 400}}

    Include a Kibana chart identified by the provided hash

  • {{last-visited -max_entries:integer 20}}

    Display last visited pages.

  • {{launch-bigbluebutton}}

  • {{launch-jupyter}}

  • {{launch-zoom}}

  • {{link-with-local-return-url -text "" -url ""}}

    Insert a link with extra return URL pointing the current object. This is particularly useful in cases, where a return URL must be created for a page that does not yet exist at time of definition (e.g. for link pointing to concrete workflow instances)

  • {{most-frequent-visitors -max_entries:integer 15}}

    List the most frequent visitors.

  • {{most-popular -max_entries:integer 10 -interval}}

    Display most popular pages of this wiki instance.

  • {{my-categories -summary 1}}

    List the categories associated with the current page.

  • {{my-general-comments}}

    List the general comments available for the current page.

  • {{my-references}}

    List the pages which are referring to the current page.

  • {{my-refers}}

    List the pages which are referred to the current page.

  • {{my-tags -summary 1}}

    List the tags associated with the current page.

  • {{my-yahoo-publisher -publisher "" -rssurl}}

    Name of the publisher, when posting URLs to my yahoo (use in connection with with_yahoo_publisher).

  • {{personal-notification-messages -url_poll "" -url_dismiss "" -poll_interval 5000}}

    Personal notification messages This includelet can be used for personal messaging, where a sender can send messages to a single user in a single applications (e.g. in an exam), where the user has to acknowledge every single message to make it disappear (current implementation). The messages are not persisted (current implementation).

  • {{presence -interval 10 minutes -max_users:integer 40 -show_anonymous summary -page}}

    Show users actively in the wiki.

  • {{random-form-page -form:required -publish_status ready -expires 600}}

    Include random form page (instance of the specified form)

  • {{recent -max_entries:integer 10 -allow_edit:boolean false -allow_delete:boolean false -pretty_age off}}

    Display recent modified entries.

  • {{references-graph -folder . -page "" -link_type link -rankdir LR -fontsize 12}}

    Include a graph of the (partial) link structure in a wiki, starting either with a page or a folder. When a page is provided, the local link structure of this page is visualized (including incoming and outgoing links of the page; e.g. -page "." for the current page). Alternatively, the content of a folder can be shown.

  • {{rss-button -span 10d -name_filter -entries_of -title}}

    Include an RSS button referring to pages of the specified time span.

  • {{rss-client -url:required -max_entries:integer 15}}

    Include RSS content

  • {{selection -edit_links:boolean true -pages "" -ordered_pages "" -source -publish_status ready -menu_buttons edit -range ""}}

    Provide a selection of pages

  • {{set-parameter}}

    Set a parameter accessible to the current page (for certain tailorings), accessible in the page via e.g. the query parameter interface.

  • {{slidy}}

    Display a sequence of pages via W3C slidy, based on book includelet

  • {{tags -limit:integer 20 -summary:boolean 0 -popular:boolean 0 -page}}

    Display specified tags.

  • {{timeline -user_id -data timeline-data -interval1 DAY -interval2 MONTH}}

    Include a timeline of changes (based on yahoo timeline API)

  • {{toc -style "" -renderer "" -open_page "" -book_mode false -folder_mode false -ajax false -expand_all false -remove_levels 0 -category_id -locale "" -orderby "" -source "" -range "" -allow_reorder "" -include_in_foldertree true -CSSclass_top_ul "" -CSSclass_ul ""}}

    Show table of contents of the current wiki. The "toc" includelet renders the page titles of the current files based on the value of the "page_order" attributes. Only those pages are rendered that have a nonempty "page_order" field.

  • {{unread-items -max_entries:integer 20}}

    List unread items.

  • {{unresolved-references}}

    List the pages with unresolved references in the current xowiki/xowf package. This is intended for use by admins.

  • {{user-timeline -user_id -data timeline-data -interval1 DAY -interval2 MONTH}}

    Include a timeline of changes of the current or specified user (based on yahoo timeline API)

  • {{view-item-button -page_id -title View -alt view -link "" -book_mode false}}

    Button to view the current or a different page

  • {{wf-todo -workflow "" -user_id -ical 0 -max_entries}}

  • {{yui-carousel -title "" -item_size 600x400 -image_size -num_visible 1 -play_interval 0 -auto_size 0 -folder -glob "" -form ""}}

    Include YUI carousel showing the pages of the specified or current folder.

XoWiki: How to save files directly in the wiki

Created by Gustaf Neumann, last modified by Benjamin Brink 30 Jun 2017, at 07:08 AM

In order to save files directly in the wiki, just add a link with the content file:yourfile to a page (as for other links, between curly double brackets).

[[file:oacs-dotlrn-vienna-xowiki.pdf|XoWiki Slides from the Vienna OpenACS conference]]

When the file link is added, and the file does not exist, the wiki marks the link with a handle to upload the file. According to the current policies, everybody who is logged-in has sufficient permissions is allowed to edit pages.. 

Here is an example of a file-link, pointing to the xowiki slides from the the Vienna oacs-dotlrn conference XoWiki Slides from the Vienna OpenACS conference


Directory of OpenACS Sites

Created by Caroline Meeks, last modified by Gustaf Neumann 18 Jun 2017, at 12:59 PM

Big Picture

The "Community" section of the OpenACS website still uses Edit This Page and has not been updated in years.  This proposal is to begin the work of updating it by replacing: an Edit This Page application, with a new package.  This package is expected to be an incremental improvement over the current page, and the current vision, and certainly the first iteration will not provide everything we might ever want to know about how OpenACS is being used.

To attract new developers we need to effectively communicate all the possibilities that can be created using OpenACS. One way to do this is to more effectively highlight existing sites.

You can add you comments to this page or the forum thread

User Stories 

User Stories are a method of defining requirements by creating fictional users who might use the feature.

Mary - Developer considering OpenACS

 (see en:docs-eng part of en:openacs-handbook with document guidelines shaped by these requirements: en:docs-eng-reqs -Torben)

Sam - A developer who has just launched an OpenACS website

George - A current OpenACS developer who wants to see a package that he has never used in action on some existing sites 


This is a joint project between Solution Grove and Miguel Cordova of UNED.


Goals include:

  • This package is primarily a new UI for the existing functionality.
  • Improving the OpenACS Community and outreach to new developers.
  • Solution Grove is using this project as a means to give back more of our AJAX and Dynamic types experience the community.
  • Miguel Cordova is using the project to learn more about AJAX and OpenACS and he will work with his group at UNED to bring what he learns into dotLRN.
  • This package will provide a place on where people who are evaluating OpenACS can see that AJAX can be used with OpenACS without changing the user experience for current frequent users.
  • This package may be useful during sales for OpenACS vendors, including Solution Grove, to demonstrate the capabilities of our platform.
  • This package is an incremental improvement on the current Edit This Page page.  The goal is not to provide a complete solution to our desire to understand how users are using OpenACS.  However, the design should allow integration with any automated APM based solution that might be developed in the future.

The Plan

Step 1 - Use Dynamic types

Use dynamic-types and categories to create a data structure to collect metadata about OpenACS sites.  For details see Data entry screens.

Step 2 - Data Entry UI

Use an AJAX tabbed UI to collect the data

Tab 1 - Basic Information

  • Site Name - required
  • Description - required
  • site url
  • case study or video url
  • Type of site - Category list, allow multiple selections
    • Intranet
    • Extranet
    • Eccomerce
    • eLearning
    • Knowledge management
    • Content Management
  • Type of Organization - Category
    • Corporate
    • Nonprofit
    • Education Sector
    • Individual
  • Organization Location (someday we might do a google maps mashup for fun)
    • City
    • State
    • Country

Tab 2 - Technical Details

  • What functionality does this site provide - Category
    • Forums
    • FAQ
    • Chat
    • File storage
    • Bookmarks
    • Wiki
    • etc. we don't want to go quite down to the package level (eg we want forums not dotlrn-forums, forums, forums-applet)
  • If possible please provide direct links and descriptions to any interesting implementations of the above or custom functionality. Please indicate if your link is a good example of "out of the box" OpenACS functionality or customization. Both are useful. If your site requires login its great if you can provide a guest account or give an email where users can email if they would like access.
    • XINHA text input. I think we keep it simple here.
  • Companies that work on this site
    • Category list populated from our company list
    • Also "In House"
    • "Independent Contractor"
  • Languages used
  • What version of OpenACS kernel are you running? - Category list
  • When did you start development? - Date widget

Tab 3 - Additional Details

Data Entry 

Just as with the current Edit this Page Information will be entered voluntarily by site developers and owners who are  proud of their sites and wish to give back to the OpenACS community.  Only the most basic information will be required fields, everything else will be optional. 

The user who creates the entry should be able to edit it. In addition users with SWA will be able to edit information.  Undoubtedly information and links will get stale as they have in the current Edit This Page version.  The package should allow granting admin to a volunteer who could maintain information.

Search UI

The search UI should show off progressive enhancement. Functionality should include

 Filters based on categories

Tag cloud of the categories and full text search (example: library/search-categories)

Results grid with title, description, url, and other information. The url should have an image of the url when you mouse over it (look at a specific tag on and mouse over url for an example).

One Web Site Detail Page

We will also need a page for each entry where we attractively display all the information about the site.

When we list categories on this page (e.g. what features are used) these categories should be links and clicking on the link should take you back to the search interface with all other sites that have that category shown. 


  • This package is designed to be an AJAX showcase and make almost gratuitous use of AJAX.
  • The use of categories and dynamic types makes it easy to change pick options and data collected so we don't need to think too hard about these choices before we start.

More Bells and Whistles

 This is a brainstorming section, not all these ideas will be implemented

  • Notifications when a new site is added
  • Ratings with an AJAX drag your mouse over the stars interface
  • Views
  • "Hot Sites" include for the front page
  • Random featured site include for the front page.
  • Google map mashup with location and/or reverse lookup of IP
  • Mashup with something like Delicious, where we look up how often and with what tags the site has been bookmarked.
  • Integrate with RSS feeds from user tracking currently under development at UNED

Examples and Links

We are using YUI-ext. An example of what the panel UI looks like.

Tabs can be implemented in the panel interface. Tabs can also be implemented independently from the panel UI. Below is an example :

Scope Limitations

The proposed project is designed to replace one, out of date Edit This Page page.  The first iteration should be designed and developed with future features in mind but, by necessity it will not include all desired possibilities, nor will it solve all potential issues.

  • No changes to OpenACS core nor to any package that is included in dotLRN are currently anticipated.
  • It is not anticipated that many other OpenACS sites would want to use this exact package on their sites. The source code will be made available if people want to browse it.
  • This area will not be a very good demonstration area for Dynamic Types because we be exposing the web interface to change the dynamic types except to admin.  Creating a demonstration area for Dynamic Types is a good idea but a separate project. People interested in this might want to explore and talk with the folks at XArgs, its pretty cool stuff.
  • This proposal is not a beach head to put AJAX throughout, indeed it is intentionally putting AJAX demonstrations into a corner of the site that is not often used by day-to-day users  and into an area where we highlight the diversity of uses of OpenACS. It is a goal to continue to document how AJAX can be used in OpenACS.
  • Integration with contacts and replacing the company listing with contacts is not in scope of the first iteration but should be considered during development and anticipated in future iterations.
  • Automated connections to other sites is not included in the first iteration, however it is definitely something that should be considered during development and anticipated in future iterations.
  • Accessibility - Olga's points are noted and thoughtful discussion of this issue is in process
  • Maintainability -  Just as with the page it is replacing there will be maintenance issues. This is an area of the OpenACS where we gather information from humans who have developed OpenACS sites. Gathering information automatically is also a good idea, but it should be in addition to, not replace asking humans directly to describe their sites and to get insight into things like what makes this site cool, what is the purpose of this site, etc. Anything entered by humans will get stale and will need maintenance by admin. We can improve on the current version by displaying fresh sites near the top. Further mitigation ideas include a link for visitors to report out of date info or dead links, and/or automated link checking.




previous October 2023
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4

Popular tags

17 , 5.10 , 5.10.0 , 5.9.0 , 5.9.1 , ad_form , ADP , ajax , aolserver , asynchronous , bgdelivery , bootstrap , bugtracker , CentOS , COMET , compatibility , CSP , CSRF , cvs , debian , docker , docker-compose , emacs , engineering-standards , exec , fedora , FreeBSD , guidelines , host-node-map , hstore
No registered users in community xowiki
in last 30 minutes