Filtered by category Non-Core Packages, 1 - 10 of 180 Postings (
all,
summary)
Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 24 Nov 2023, at 06:41 PM
Package Specification Summary for Package: chat
Summary: |
Server based chat with an html and ajax client. |
Description: |
Adapted by Peter Alberer 2006/03/25 to allow java and ajax to coexist.
Adapted by Tekne 2006/03/01 to replace JAVA server with AJAX; make use of generalized chat class from xotcl-core.
Adapted by Antonio Pisano circa 2016-2019 to reduce bloating and exploit xotcl ORM and server push capabilities. Java server was discontinued in the process.
Adapted by Hector Romojaro Gomez 2018-2019 to give a modern look and feel, customizable skins and avatar picture.
|
Documentation: |
Package Documentation |
Maturity: |
Mature |
This package depends on: |
acs-kernel acs-tcl acs-templating xowiki |
Packages that depend on chat: |
chat-includelet chat-portlet dotlrn-chat |
Package parameters: |
- ChatSkin
- Chat skin. Current options are 'classic', 'bubbles' and 'minimal'. (default bubbles, type string, scope instance)
- LinkRegex
- Regular expression to detect URLs in chat messages, creating html links accordingly. By default, it matches any string starting with http:// or https://. Please notice the backslash double escaping. (default (https?:\\/\\/[^\\s]+), type string, scope global)
- UserColors
- A list of colors to assign to usernames in the chat (default #006400 #0000ff #b8860b #bdb76b #8b0000, type string, scope instance)
|
Bug Tracker Summary for Package: chat
Code Metrics Summary for Package: chat
# Tcl Procs |
26 |
# Tcl Lines |
1079 |
# Tcl Blank Lines |
127 |
# Tcl Comment Lines |
67 |
# Automated Tests |
0 |
# Stored Procedures |
PG: 0 ORA: 0 |
# SQL Lines |
PG: 65 (blank 12 comments 12)
ORA: 69 (blank 12 comments 12) |
# ADP pages |
17 |
# ADP lines |
340 |
# Include pages (chat/lib/) |
3 |
# Documentation pages |
0
(Package Documentation)
|
# Documentation lines |
0 |
Browse Source |
API-browser |
Github Repository: |
https://github.com/openacs/chat/tree/oacs-5-10
|
The chat package is currently using two different chat engines:
- The Java applet and the Java chat server, or
- the Ajax based chat class from xotcl-core
If no xotcl-core is installed, one can only use the version with Java applet. If xotcl-core is installed, one has to option to choose between both engines via parameter.
In essence, the Ajax based variant is the chat implementation from xowiki plus chat room management and a list of the currently connected users. Originally, the AJAX-based chat class (::xo::Chat) was developed for xowiki, but later moved to xotcl-core such that the chat package does not need a dependency on xotcl-core and xowiki.
Actually, the chat support in xowiki contains a different variety of AJAX based communication strategies:
- Polling mode (the web browser queries via AJAX in definable intervals the server, and checks, if there is some new information available), and
- Streaming mode (the client opens a connection to the server, the server pushes the information back to the client. xowiki chat supports two different sub-modes:
- streaming of JSON objects via asynchronous AJAX sockets, or
- scripted streaming, where the browser loads HTML with embedded script tags in the background from a hidden iframe
Both (2a) and (2b) require libthread installed and NaviServer. However, the advantage of the streaming approaches is that they are much faster in the look and feel and that they are better scalable on sites with a high load. 2a works only on Firefox (not in current versions of IE or Safari) and has the advantage over 2b that the browser does not show the background activity (no spinning wheel in Firefox). 2b is more robust and works with Safari, IE and Firefox (the information about the browser support is from 2006, and most probably different today). Both streaming modes implement, what is sometimes called COMET.
When the chat package uses the ::xo::Chat, it uses it only in currently only polling mode, which has the least requirements. This has been as well tested with (Firefox, IE and Safari).
Created by Gustaf Neumann, last modified by Gustaf Neumann 24 Nov 2023, at 06:36 PM
XoWiki is a wiki implementation for OpenACS implemented based on xotcl-core. Instead of trying to implement the full set of wiki markup commands in systems like MediaWiki, XoWiki is based on a rich text editor and focuses more on integration with OpenACS (e.g. categories, general comments, adp-includes, ad-substitution of template variables). XoWiki combines aspects of wikis (ease of page-creation) with aspects of a content management system (revisions, reusable content, multiple languages, page templates).
XoWiki provides functionalities of enterprise wiki systems (such as combining structured with unstructured information, providing security policies, etc.). XoWiki is reused in several other packages such as XoWiki Content flow, S5 or the Learning Content Tool.
Documentation:
Package Specification Summary for Package: xowiki
Summary: |
A xotcl-based enterprise wiki system with multiple object types |
Description: |
<pre>
XoWiki is a Wiki implementation for OpenACS in XOTcl. Instead of
trying to implement the full set of Wiki markup commands of systems
like MediaWiki, XoWiki is based on a rich text editor and focuses more
on integration with OpenACS (e.g. categories, general comments,
ADP-includes). XoWiki combines aspects of wikis (ease of
page-creation) with aspects of a content management system (revisions,
reusable items, multiple languages). Furthermore, XoWiki allows one to
define different types of links such one could define book-structures
(where a navigation structure could be built on the fly) or glossaries
with different kind of word relationships (like synonyms,
etc.). XoWiki supports pages in multiple languages and is localized.
Some features:
- cross language links
- inclusion of ADP pages
- nesting of Wiki-pages
- large set of includable content (includelets)
- search
- tags
- categories
- RSS
- weblog
- podcasts
- notifications
- web 2.0 gadgets (digg, delicious, my yahoo)
- audio embedding
- different appearances (template_file)
- book-structures
- prototype pages
- import/export
- virtual presence
- analysis of collaboration networks
- forms
- named/unnamed pages
- various security policies
</pre> |
Maturity: |
Mature |
This package depends on: |
xotcl-core acs-datetime acs-kernel acs-tcl acs-templating acs-subsite acs-lang richtext-ckeditor4 categories file-storage general-comments acs-automated-testing |
Packages that depend on xowiki: |
chat content-portlet eduwiki learning-content learning-content-portlet pages s5 xolirc xowf xowiki-includelet xowiki-portlet |
Package parameters: |
- CacheSize
- Size of the xowiki_cache (default 400000, type number, scope global)
- MenuBar
- Activate experimental menubar stuff (default 0, type number, scope instance)
- MenuBarSymLinks
- Activate experimental menubar stuff (default 0, type number, scope instance)
- PackagePath
- Space delimited names of local URL paths pointing to xowiki instances from where this instance should inherit pages (example: /xowiki /public/wiki) (default , type string, scope instance)
- PreferredRichtextEditor
- Preferred richtext editor, such as: xinha, ckeditor, ckeditor4, ckeditor5, wym or tinymce (default ckeditor4, type string, scope global)
- extra_css
- One or more additional css file for this Instance (default , type string, scope instance)
- hstore_max_value_size
- When hstore is activate, don't store entries larger than this size in the hkey. This makes it possible to produce smaller hkey indices and to use e.g. GIN, which has a size limit of 2K. Set to 0 to disable the size limit (default 2000, type number, scope global)
- parameter_page
- ::xowiki::FormPage to search for parameters. The page name has to contain a language prefix and can refer to a different xowiki instance.
Example: //xowiki/en:xowiki-standard-parameter (default , type string, scope instance)
- security_policy
- Define the valid operations for different kind of users. Currently, two policies are predefined: ::xowiki::policy1 and ::xowiki::policy2. Policy1 requires for all destructive operations (deletes, delete_revision) and programmatical operations (involving tcl code, e.g. editing the ::xotcl::Objects) package admin rights, for reindex site wide admin right). Policy 2 requires also for destructive operations site wide admin rights. (default ::xowiki::policy1, type string, scope instance)
- template_file
- Name of the ADP file to be used for viewing xowiki pages. The default value is 'view-default'. Alternatively, one can use 'view-book' to view pages in book style (needs page_ordering) or e.g. 'oacs-view' for providing a view with the category-tree on the left, or any other tailored view (default view-default, type string, scope instance)
- top_includelet
- Specify an xowiki includelet (defined in ::xowiki::includelet::*) to be included on top over every pages. In order or add e.g. on each page of this wiki instance a listing of the users currently active in this xowiki instance, set the value of this parameter e.g. to 'presence -interval "10 minutes"'. The valid parameters are defined by the xowiki includlets. (default presence -interval "10 minutes", type string, scope instance)
- use_hstore
- Use hstore for accessing instance attributes. Create index for existing values via ::xowiki::hstore::update_form_instance_item_index -package_id $package_id (default 0, type number, scope instance)
- Description: PackageDescription
- Description of the Package. This description will appear for example in the Description of the default RSS feed for this package (default , type text, scope instance)
- Description: PackageTitle
- Title of the Package; this title will appear for example in the default RSS feed for this package. (default , type string, scope instance)
- Form: autoname
- Automatically name items of this instance (default 0, type number, scope instance)
- Form: display_page_order
- Display page_order attribute (Section) in edit forms if possible. (default 1, type number, scope instance)
- Options: include_in_google_sitemap_index
- Include the package in the google sitemap index (default 1, type number, scope instance)
- Options: my_yahoo_publisher
- Name of the publisher, when posting URLs to my yahoo (use in connection with with_yahoo_publisher) (default , type string, scope instance)
- Options: production_mode
- When this parameter is set, new pages are created in a "production" state, where they are not visible to users. These page have to be released via the admin pages. Notification and syndication is decativated, while pages are under "production". (default 0, type number, scope instance)
- Options: show_page_references
- If enabled it shows on a page view the pages that reference it (default 1, type number, scope instance)
- Options: show_per_object_categories
- If enabled it shows on a page view the categories assigned to this object (default 1, type number, scope instance)
- Options: with_delicious
- Add a delicious button to the page (default 0, type number, scope instance)
- Options: with_digg
- Add a button to submit article to digg (default 0, type number, scope instance)
- Options: with_general_comments
- use general comments package (default 1, type number, scope instance)
- Options: with_notifications
- Allow the user to register notifications (default 1, type number, scope instance)
- Options: with_tags
- allow user to provide tags to pages (default 1, type number, scope instance)
- Options: with_user_tracking
- track page view usage per user (default 1, type number, scope instance)
- Options: with_yahoo_publisher
- When specified, a button for adding the content to my.yahoo.com is added (default 0, type number, scope instance)
- Pages: index_page
- name of the page to be shown when the package instance is browsed (e.g. en:index) (default , type string, scope instance)
- Pages: weblog_page
- name of the page to show weblog (when clicking on tags) (default en:weblog, type string, scope instance)
- URL: fallback_languages
- Specify space delimited two character codes for checking default languages. When this parameter is nonempty, try to get the page in the specified languages as fallback rather than offering a link for creation of a page in the requested locale. Per default this parameter is empty. (default , type number, scope instance)
- URL: package_prefix
- Part of the URL used before language and page name. This setting is used, when a URL is computed. Per default, the package_prefix is determined by the side not. When for example a default xowiki instance is used as start page of OpenACS, the package_prefix can be set to / (default , type string, scope instance)
- URL: subst_blank_in_name
- normalize names of pages in a media wiki style. Most dominantly, spaces are turned into blanks. (default 1, type number, scope instance)
- URL: use_connection_locale
- When this flag is set, per-user specific information is used to determine the default language. Users with different language preferences will see under the same url different content. Per default this flag is turned off, and the package or system wide locale is used. (default 0, type number, scope instance)
- xinha: WidgetSpecs
- Specify pairs of "pagename,fieldname" followed by a Tcl list which is used as a widget spec for ad_form. "pagename" and "fieldname" can contain wild card characters. The following rather complex widget-specs are from OpenACS.org:
*,text {richtext(richtext),nospell,optional
{label Content}
{html {style {width: 100%}}}
{options {editor xinha plugins {Stylist OacsFs} height 350px javascript {
xinha_config.toolbar = [
['popupeditor', 'bold','italic','createlink','insertimage','separator'],
['killword','removeformat']
];
xinha_config.stylistLoadStylesheet('/resources/xowiki/examples/xinha-mc-styles.css',
{'p.angabe' : 'Aufgabenstellung',
'p.loesungshinweis' : 'Lösungshinweis',
'li.correct_choice' : 'Richtige Antwort',
'li.incorrect_choice' : 'Falsche Antwort'});
}}}}
(default , type text, scope instance)
|
Bug Tracker Summary for Package: xowiki
Code Metrics Summary for Package: xowiki
# Tcl Procs |
48 |
# Tcl Lines |
37312 |
# Tcl Blank Lines |
3759 |
# Tcl Comment Lines |
7644 |
# Automated Tests |
22 |
# Stored Procedures |
PG: 0 ORA: 0 |
# SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
# ADP pages |
18 |
# ADP lines |
1659 |
# Include pages (xowiki/lib/) |
6 |
# Documentation pages |
0
|
# Documentation lines |
0 |
Browse Source |
API-browser |
Github Repository: |
https://github.com/openacs/xowiki/tree/oacs-5-10
|
Available Includelets
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
- {{s5 -category_id -slideshow:boolean false -pagenr 0 -style standard -menu_buttons view edit copy create delete}}
- {{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 ""}}
- {{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
- {{vspace -height "" -width ""}}
- {{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.
Available Formfield Classes
Created by Gustaf Neumann, last modified by Gustaf Neumann 24 Nov 2023, at 06:31 PM
What is xotcl-core
xotcl-core is an OpenACS package, which provides base functionality for OpenACS applications using XOTcl. The xotcl-core package is used by several other OpenACS packages such as the XOTcl request monitor, XoWiki, XoWiki Content Flow, S5 or the Learning Content Tool.
Install xotcl-core
First, get xotcl-core from the OpenACS repository:
cd /tmp
cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot co openacs-4/packages/xotcl-core
Move xotcl-core to the directory, where your OpenACS packages are stored. We assume, this directory is /usr/local/openacs-4/packages
mv /tmp/openacs-4/packages/xotcl-core /usr/local/openacs-4/packages
Next, go to acs-admin/apm (http://YOURSERVER/acs-admin/apm/), choose "install-packages" and install XOTcl Core. Finally, restart the server.
svc -t /service/${yourservice}
Now you can browse http://YOURSERVER/xotcl
Functionality of xotcl-core
xotcl-core defines several classes for
- library dependencies
- package management
- debugging
- security and policy management
- HTTP client and server functionality
- Object Relational Database Interface
- ical formatting
- cluster management
- chat handlers
and several utilities.
Tutorial xotcl-core
See slides
Code metrics and Package Description
Package Specification Summary for Package: xotcl-core
Summary: |
XOTcl library functionality (e.g. thread handling, online documentation, Generic Form and List Classes) |
Description: |
<pre>
This component contains some core functionality for OpenACS
applications using XOTcl. It includes
XOTcl thread handling for OpenACS (supporting persistent and
volatile threads) and a definitions for
documenting XOTcl object, classes and methods
integrated with the API-browser of OpenACS. Documented
procs and instproc an be created using the methods ad_proc
and ad_instproc. This component provides as
well an XOTcl Object and Class browser, as well as
means to control the recreation of objects and classes
when components are reloaded.
Features:
- oo-abstraction with caching (acs-objects and cr-items/revisions)
- single and multi instantiations (turn all tuples into objects)
- object life-time support (automatic cleanup when needed after request)
- proxy objects for stored procedures/functions (PostgreSQL and Oracle)
- db-abstraction for PostgreSQL and Oracle (e.g. query composition)
- context-management: context objects for (connections and db-queries)
- security policies
- GUI and DOM support (via tdom)
- support for XOTcl and NX
</pre>
|
Maturity: |
Mature |
This package depends on: |
acs-kernel acs-bootstrap-installer acs-templating acs-api-browser acs-content-repository acs-tcl acs-admin |
Packages that depend on xotcl-core: |
richtext-ckeditor5 rrd-tool xooauth xotcl-request-monitor xowf xowiki |
Package parameters: |
- NslogRedirector
- Allow redirections of nslog. The redirector filters ns_log messages and sends these not only to the error log (standard behavior) but also to ds_comments in the developer support. This way, a developer can view the log messages for the current request directly in the browser when the developer support is activated, without having to watch the log file.
The value of 0 means "no redirecting" (deactivation), 1 means "redirecting errors", 2 means "redirect errors and notices" (default 0, type number, scope instance)
- XOTclObjectCacheSize
- Size of the ns_cache xotcl_object_cache (used for caching XOTcl objects fetched from the database) (default 400000, type number, scope instance)
- XOTclObjectTypeCacheSize
- Size of the ns_cache xotcl_object_type_cache (used for caching types of XOTcl objects) (default 10000, type number, scope instance)
|
Bug Tracker Summary for Package: xotcl-core
Code Metrics Summary for Package: xotcl-core
# Tcl Procs |
29 |
# Tcl Lines |
16264 |
# Tcl Blank Lines |
1447 |
# Tcl Comment Lines |
3755 |
# Automated Tests |
14 |
# Stored Procedures |
PG: 0 ORA: 0 |
# SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
# ADP pages |
4 |
# ADP lines |
90 |
# Include pages (xotcl-core/lib/) |
1 |
# Documentation pages |
0
|
# Documentation lines |
0 |
Browse Source |
API-browser |
Github Repository: |
https://github.com/openacs/xotcl-core/tree/oacs-5-10
|
The OpenACS package xotcl-core requires in versions of OpenACS before 5.3 the following patches for the documentation procs and the bootstrap installer:
cd /tmp
wget http://media.wu-wien.ac.at/download/acs-api-documentation-procs.patch
wget http://media.wu-wien.ac.at/download/acs-bootstrap-installer.patch
To apply these patches, go to the directory, where the OpenACS packages are stored. We assume, this directory is /usr/local/openacs-4/packages.
cd /usr/local/openacs-4/packages
patch -p 0 < /tmp/acs-api-documentation-procs.patch
patch -p 0 < /tmp/acs-bootstrap-installer.patch
Both patches do not harm in case XOTcl is not installed. Now reload these packages or restart the server.
Created by Gustaf Neumann, last modified by Gustaf Neumann 24 Jul 2023, at 02:09 PM
Package Specification Summary for Package: xooauth
Summary: |
XOTcl based OAuth implementation and OAuth based REST
interfaces for OpenACS |
Description: |
This package aims to provide
a comprehensive OAuth implementation for OpenACS, i.e. OAuth
core, OAuth client, OAuth server.
The package provides basic support for LTI, Microsoft Graph
API, Canvas REST API, authorization for and GitHub logins.
Probably, just the core part is ready for production use,
the other functions are currently deactivated.
This package was developed originally by Knowledge Markets
https://km.at/
|
Maturity: |
Immature |
This package depends on: |
acs-tcl acs-templating xotcl-core xowf |
Packages that depend on xooauth: |
None |
Package parameters: |
None
|
Bug Tracker Summary for Package: xooauth
There is no package with the name "xooauth" known to bug-tracker.
Code Metrics Summary for Package: xooauth
# Tcl Procs |
2 |
# Tcl Lines |
4646 |
# Tcl Blank Lines |
438 |
# Tcl Comment Lines |
1488 |
# Automated Tests |
0 |
# Stored Procedures |
PG: 0 ORA: 0 |
# SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
# ADP pages |
3 |
# ADP lines |
84 |
# Include pages (xooauth/lib/) |
2 |
# Documentation pages |
0
|
# Documentation lines |
0 |
Browse Source |
API-browser |
Github Repository: |
https://github.com/openacs/xooauth/tree/oacs-5-10
|
This package was developed to provide a comprehensive OAuth implementation for OpenACS based on the XOTcl infrastructure. The package contains OAuth core, OAuth client, OAuth server. Currently, just the core part is ready for production use, the other functions are currently deactivated.
The package can be used to
The xooauth component was originally developed by Knowledge Markets.
Created by Gustaf Neumann, last modified by Gustaf Neumann 02 Oct 2021, at 10:41 AM
XoWiki Content Flow - an XoWiki based workflow system implementing state-based behaviour of wiki pages and forms (short intro).
Package Specification Summary for Package: xowf
Summary: |
XoWiki Content Flow - an XoWiki based workflow system implementing state-based behavior of wiki pages and forms |
Description: |
|
Maturity: |
Mature |
This package depends on: |
acs-automated-testing acs-tcl acs-templating xotcl-core xowiki |
Packages that depend on xowf: |
xooauth |
Package parameters: |
- parameter_page
- ::xowiki::FormPage to search for parameters. The page name has to contain a language prefix and can refer to a different xowiki instance.
Example: //xowiki/en:xowiki-standard-parameter (default , type string, scope instance)
- use_hstore
- Use hstore for accessing instance attributes. Create index for existing values via ::xowiki::hstore::update_form_instance_item_index -package_id $package_id (default 0, type number, scope instance)
|
Bug Tracker Summary for Package: xowf
There is no package with the name "xowf" known to bug-tracker.
Code Metrics Summary for Package: xowf
# Tcl Procs |
7 |
# Tcl Lines |
12553 |
# Tcl Blank Lines |
1112 |
# Tcl Comment Lines |
3329 |
# Automated Tests |
6 |
# Stored Procedures |
PG: 0 ORA: 0 |
# SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
# ADP pages |
1 |
# ADP lines |
32 |
# Include pages (xowf/lib/) |
2 |
# Documentation pages |
0
|
# Documentation lines |
0 |
Browse Source |
API-browser |
Github Repository: |
https://github.com/openacs/xowf/tree/oacs-5-10
|
xowf depends on xowiki.
Workflow Examples:
- A two-chambers legislative process, loosely based on the Italian one. A law proposal is submitted to the first chamber, then passed to the second one. The text keeps being passed between the two chambers until no amendments (changes) are made. Once this condition is met, the law is approved. Workflow example of a legislative process
Created by Gustaf Neumann, last modified by Gustaf Neumann 23 Jan 2021, at 01:07 AM
Package Specification Summary for Package: contacts-lite
Summary: |
|
Description: |
This package is unknown (not available at this site) |
Maturity: |
0 |
This package depends on: |
None |
Packages that depend on contacts-lite: |
None |
Package parameters: |
None
|
Bug Tracker Summary for Package: contacts-lite
Code Metrics Summary for Package: contacts-lite
# Tcl Procs |
0 |
# Tcl Lines |
0 |
# Tcl Blank Lines |
1 |
# Tcl Comment Lines |
0 |
# Automated Tests |
0 |
# Stored Procedures |
PG: 0 ORA: 0 |
# SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
# ADP pages |
0 |
# ADP lines |
0 |
# Include pages (contacts-lite/lib/) |
0 |
# Documentation pages |
0
|
# Documentation lines |
0 |
Browse Source |
Not installed |
Github Repository: |
https://github.com/openacs/contacts-lite/tree/oacs-5-10
|
Created by Gustaf Neumann, last modified by Gustaf Neumann 11 Aug 2020, at 09:40 AM
Code metrics and Package Description
Package Specification Summary for Package: xowf-monaco-plugin
Summary: |
|
Description: |
This package is unknown (not available at this site) |
Maturity: |
0 |
This package depends on: |
None |
Packages that depend on xowf-monaco-plugin: |
None |
Package parameters: |
None
|
Bug Tracker Summary for Package: xowf-monaco-plugin
There is no package with the name "xowf-monaco-plugin" known to bug-tracker.
Code Metrics Summary for Package: xowf-monaco-plugin
# Tcl Procs |
0 |
# Tcl Lines |
0 |
# Tcl Blank Lines |
1 |
# Tcl Comment Lines |
0 |
# Automated Tests |
0 |
# Stored Procedures |
PG: 0 ORA: 0 |
# SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
# ADP pages |
0 |
# ADP lines |
0 |
# Include pages (xowf-monaco-plugin/lib/) |
0 |
# Documentation pages |
0
|
# Documentation lines |
0 |
Browse Source |
Not installed |
Github Repository: |
https://github.com/openacs/xowf-monaco-plugin/tree/oacs-5-10
|
Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 01 May 2020, at 11:20 AM
Package Specification Summary for Package: calendar
Bug Tracker Summary for Package: calendar
Code Metrics Summary for Package: calendar
# Tcl Procs |
55 |
# Tcl Lines |
1604 |
# Tcl Blank Lines |
270 |
# Tcl Comment Lines |
170 |
# Automated Tests |
6 |
# Stored Procedures |
PG: 10 ORA: 12 |
# SQL Lines |
PG: 849 (blank 127 comments 139)
ORA: 914 (blank 144 comments 160) |
# ADP pages |
18 |
# ADP lines |
655 |
# Include pages (calendar/lib/) |
0 |
# Documentation pages |
3
(Package Documentation)
|
# Documentation lines |
664 |
Browse Source |
API-browser |
Github Repository: |
https://github.com/openacs/calendar/tree/oacs-5-10
|
Suggestions for improvement (from /forums/message-view?message_id=432244 ):
- different colors for different calendar sources
- easy and nice printout of week and monthly calendar
- Possibility to link one calendar item to many classes or community on creation or editing
- Attach files
- Change of repeating events after creation (if you have a different repeating sequence there is no way of changing the sequence)
- Site-wide calendar for holidays
- Department-wide calendars.
Sync contacts with contact managers, palm pda's etc.
Note I see a small potential issue. Within one calendar it makes sense to color code by calendar types. When using dotLRN or otherwise aggregating calendars it makes sense to color code by calendar_id (source). It probably never makes sense to do it both ways on the same site. We may need to think this through.
Text taken from Dirk document (2004)
Maintained by Dirk Gomez - last change on 22-Jan-2004.
I am tracking my work on calendar here. Please get in touch with me if you have comments.
Features Completed
- Separated code and presentation
- Notifications
- Removed unused or duplicated code and database queries.
- Proper use of OpenACS permissioning.
Features I am working on currently
- Code clean up
- Documentation of the data model
- CSS/XHTML
Features I will be working on
- The calendar view templates take a lot of parameters some of which require knowledge of the inner workings of the respective template: e. g. currently the calling templates passes in a url_template which determines whether an action on a particular item can be executed. I'll move this to being proper and understandable parameters like create_p or edit_p.
- New parameter Collaborative Calendar: a parameter that allows every user of a community to add, edit, and delete events if set to true.
- New parameter in DotLrn: parametrize whether to show calendar lists for a whole term.
- Allow users to store calendar preferences for example the user default view. The calendar_preferences table already exists, yet isn't used at all.
- Add a toggle: "Show all my events/Only this package's or community's events"
- Use a site-wide categories package to do away with the calendar types and the multiple calendars per package.
- Reminder - make it possible that a user sets a particular time on a calendar item to receive a reminder email
- Multi-day events
- iCal format compatible. Ideally, import/export to Outlook/iCalendar/etc.. via iCal format (by Jade)
- Ability to map any sort of date information in a database to the calendar, this means tickets, bugs, etc. perhaps via a service contract (by Jade)
- There should be any easy UI for specifying what is shown. Both the user and the admin should be able to select these things (the admin sets the range of what is possible, the user can select from those choices) (by Jade)
- Events should be able to span more than a day. Ideally, the UI for this should look good. (by Jade)
- An ability to be able to add data via the calendar as well. Anything that implements the service contract should allow you +to add information on that date as well. For example, add a ticket due that day, or add an event for that day, etc.. (by Jade)
- The calendar needs to be printable (at least for where I work - Jade)
- Desktop and Handheld support - cross-browser and cross-platform compatible (ryan-g2)
- Filters by calendar, keyword, object (e.g. Show all bug deadlines)
- Public event submission (unauthenticated) approved by an admin (ryan-g2)
- Invite people to events (ryan-g2)
- auto-book invitees if preference enabled, otherwise, require confirmation
- if there is a conflict among registered users' schedules, the systems suggests possible times to the inviter.
- people external to the system can be invited.
- Resource Scheduling - Booking (ryan-g2)
- Schedule one resource (room, car, laptop) per calendar
- Non-simultaneous booking (no overlapping times)
- Book an item: suggest alternate times across multiple calendars if asset is unavailable. Example: 5 Smart Cars for rent each have their own calendar; if all are booked from 10 - 11 AM, suggest 9-10 or 11-12 across all calendars.
- Optional bill for booked time (connect with ecommerce module)
Data Model Suggestions
Don:
Calendar items should map arbitrary objects (perhaps only content items) to a given calendar and given acs-events. We shouldn't have to derive special types from cal item type in order to attach it to a calendar (nor should we have to duplicate content to attach it to two calendars as we do now) If we restricted the mapping to content items (i.e. calendar info some sort of content type) we could use the CR's ability to map a template to a given content type or item to make it possible for the calendar package to display calendar item details using that facility, giving the package adding something to the calendar control over how it is displayed. Much more general.
ryan-g2:
Is it possible to optionally link any acs_object to an acs_event object (event)? Examples:
- People attached to a meeting event
- Bug item attached to a deadline
- Location attached to a meeting event [google maps integration]
- Project item attached to a deadline
- Simple time and description (for booking an asset) -- unattached to an object
- Multiple objects: Rent a car C from Time A to Time B and pick it up at Location L (Event linked to two objects C and L). See zipcar.com
From above: "Use a site-wide categories package to do away with the calendar types and the multiple calendars per package."
Features I started work on
I'm listing stuff here on which I am already working, but whose completion is nowhere near finished and there is not even an estimation when it may be finished.
- Integrate libical into AOLserver
- Lift as much as possible from Brandeis' Calendar, see this forum thread
Interesting Links
Notes
June 12, 2006 - Solution Grove worked on an AJAX calendar month view that has colors by calendar_types, has mouse overs for item details for each date, and changes months without refreshing the pages. They hope to contribute it at some point. Contact Caroline or Hamilton from Solution Grove if you need an advanced copy.
Created by Gustaf Neumann, last modified by Gustaf Neumann 25 Apr 2019, at 09:54 AM
Package Specification Summary for Package: richtext-ckeditor4
Summary: |
Richtext editor plugin for integrating CKeditor 4 with acs-templating |
Description: |
|
Maturity: |
Mature |
This package depends on: |
acs-templating acs-tcl attachments |
Packages that depend on richtext-ckeditor4: |
xowiki |
Package parameters: |
- SCAYT
- Fully featured "Spell Check As You Type" based on WebSpellChecker.net. Please note that the spellchecked words are transferred to that site, so you might be cautious to activate this feature for confidential content. (default false, type string, scope instance)
|
Bug Tracker Summary for Package: richtext-ckeditor4
There is no package with the name "richtext-ckeditor4" known to bug-tracker.
Code Metrics Summary for Package: richtext-ckeditor4
# Tcl Procs |
9 |
# Tcl Lines |
667 |
# Tcl Blank Lines |
91 |
# Tcl Comment Lines |
135 |
# Automated Tests |
0 |
# Stored Procedures |
PG: 0 ORA: 0 |
# SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
# ADP pages |
1 |
# ADP lines |
11 |
# Include pages (richtext-ckeditor4/lib/) |
1 |
# Documentation pages |
0
|
# Documentation lines |
0 |
Browse Source |
API-browser |
Github Repository: |
https://github.com/openacs/richtext-ckeditor4/tree/oacs-5-10
|
In general, the CKEditor can be used via CDN (zero configuration, default) or via local files. One can use /acs-admin/ (section "Site-wide Service Administration" to download a version to your local site to reduce latency or to use local modifications. By default, the "standard" preset is downloaded. By altering the variable "ck_package" in packages/richtext-ckeditor4/tcl/richtext-procs, one can download other presets as well (see https://ckeditor.com/presets-all).
The CKEditor widget can be used at least in two scenarios: (a) as a richtext-widget or (b) within xowiki as a class of a form-field.
- (a) Here is an example for the use of the richtext widget configured for ckeditor4, showing some options:
text:richtext(richtext),nospell,optional
{label "CKEditor"}
{html {rows 15 cols 50}}
{options {
editor ckeditor4
plugins wsc
extraAllowedContent "u;span{color}"}
}
This minimal example should work with the "standard" distribution of CKEditor and adds the "wsc" (Web Spell Checker) plugin, and allows the tag <u>u and <span style="color:...">...</span> to be used in the content. Otherwise, these flags are removed by the context filter of the editor (for details, see CKEditor documentation). Additional "options" are "skin" and "customConfig", where the latter refers to a JavaScript file which can be used for detailed configuration (for more details, see https://docs.ckeditor.com/#!/guide/dev_configuration).
Note, that the usual constraints for richtext widgets holds like for all other richtext implementations (e.g. the editor will only be activated, if UseHtmlAreaForRichtextP is set to true).
- (b) when used as a form-field within xowiki forms, there are detailed config options available: mode, displayMode, skin, toolbar, CSSclass, uiColor, allowedContent, customConfig, extraPlugins, extraAllowedContent, templatesFiles, templates, contentsCss, imageSelectorDialog, and additionalConfigOptions. A short introduction to form-fields is in http://alice.wu-wien.ac.at:8000/xowiki-doc/#forms. One should set the PreferredRichtextEditor (xowiki global parameter) to ckeditor4.
Created by Gustaf Neumann, last modified by Gustaf Neumann 11 Jan 2018, at 01:41 PM
Package Specification Summary for Package: boomerang
Summary: |
Boomerang is a JavaScript library to measure the performance of your
website from your end user’s point of view. It has the ability to send
performance data measured at the client back to the server via a
beacon URL further analysis. The boomerang library implements Real
User Measurement (RUM) to measure the performance experience of real
users by collecting quality indicators from the clients.
The boomerang library is released under the BSD license.
Details:
https://soasta.github.io/boomerang/doc/
This package integrates boomerang with OpenACS,
in particular with OpenACS subsites.
|
Description: |
|
Maturity: |
Immature |
This package depends on: |
acs-templating acs-tcl |
Packages that depend on boomerang: |
None |
Package parameters: |
- Version
- Version of the boomerang library (default 1.737.0, type string, scope instance)
|
Bug Tracker Summary for Package: boomerang
There is no package with the name "boomerang" known to bug-tracker.
Code Metrics Summary for Package: boomerang
# Tcl Procs |
6 |
# Tcl Lines |
647 |
# Tcl Blank Lines |
74 |
# Tcl Comment Lines |
172 |
# Automated Tests |
0 |
# Stored Procedures |
PG: 0 ORA: 0 |
# SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
# ADP pages |
1 |
# ADP lines |
41 |
# Include pages (boomerang/lib/) |
0 |
# Documentation pages |
0
|
# Documentation lines |
0 |
Browse Source |
API-browser |
Github Repository: |
https://github.com/openacs/boomerang/tree/oacs-5-10
|
Integration of the Boomerang library as an OpenACS Plugin
Boomerang is a JavaScript library to measure the performance of your website from your end user’s point of view. It has the ability to send performance data measured at the client back to the server via a beacon URL further analysis. The boomerang library implements Real User Measurement (RUM) to measure the performance experience of real users by collecting quality indicators from the clients.
The boomerang library is released under the BSD license.
Details:
https://soasta.github.io/boomerang/doc/
This package integrates boomerang with OpenACS, in particular with OpenACS subsites.
Features
- Obtain client site timings to measures the performance of your website from your end user's point of view.
- Support sampling (e.g. just obtain metrics from every nth request)
- Output performance data in a format suitable for feeding into Elasticsearch/Logstash (see below for example config files)
- Configure the appearance of the boomerang per subsite with the following parameters:
BoomerangEnabled |
0|1 |
BoomerangSample |
1 |
BoomerangBeaconUrl |
/boomerang_handler |
The parameter BoomerangSample can be used for busy sites to sample not every request (when the value is 1), but e.g. every 5th request (setting BoomerangSample to 5).
- Support for host-node-mapped subsites
- Site-wide admin support for compressing .js file
- Performance: include boomerang in the template costs about 0.3ms, processing of the beacon call takes about 1ms (filter times).
Installation
- Install this package via the OpenACS Package Manager
- Add this package to the templating system
- Configure in the parameters of the subsite (e.g. the main subsite) the section "Boomerang Plugin"
Usage
For the explanation of the parameters, see:
https://soasta.github.io/boomerang/doc/howtos/howto-0.html
https://soasta.github.io/boomerang/doc/api/RT.html
https://soasta.github.io/boomerang/doc/api/navtiming.html
Prerequirements
The implementation uses nx from the next-scripting framework.
https://next-scripting.org/xowiki/
which is automatically installed for XOTcl2 via naviserver-openacs. It works best with OpenACS 5.10.0d2 or newer, but works as well with 5.9.1 (see INSTALLATION section above) or earlier versions with little adaptions
OPTIONAL: Define a custom Boomerang Plugin
- Clone boomerang repository
- Install npm, grunt if necessary
- Follow step 2 in https://github.com/SOASTA/boomerang which means
... configure plugins
... grunt clean build
- The result is in the build directory. The generated files have the a build-time stamp in seconds included. You might which to rename these with a custom name.
- Copy the the *.min.js and *.min.js.gz files to the boomerang/www/resouces directory, which might be
cp build/boomerang-1.0.*.min.js build/boomerang-1.0.*.min.js.gz ..
and adapt the version number in the boomerang parameters (on /acs-subsite)
OPTIONAL: Feed Boomerang Data into an elasticsearch cluster
When boomerang is enabled, the results of the beacon are placed into
the OpenACS log directory with a name boomerang-*.log (containing the date).
Below are sample-snippets from OpenACS.org the log-files into elasticsearch,
such that it can be analyzed later with kibana or grafana.
Example filebeat entry for the data feed:
paths:
- /var/www/openacs.org/log/boomerang-*.log
input_type: log
fields:
log_type: boomerang-log
Example logststash entry (input filter for transforming the data from filebeat and to feed it into easticsearch)
if [fields][log_type] == "boomerang-log" {
json {
source => "message"
remove_field => [ "restiming" ]
}
grok {
match => [ "source", "/var/www/%{GREEDYDATA:server}/log/boomerang-" ]
}
geoip { source => "clientip" }
}
Example Analysis Screenshots from OpenACS
The following chart shows performance indicators of OpenACS.org over the last two days. The topmost chart is produced with grafana and shows elapsed time (left axis) and number of requests (right axis). "Average runtime" is the time measured on the server (how long does it take the server to fulfill the requests), whereas "Average t_done" is the time it took the browser to render the page (stating at the click). "t_done" is a default measurement provided by boomerang. Note, that the values from boomerang require that JavaScript is active at the client side (i.e. there are typically no spiders included in this value, as well only views).
We can see from these values that the average runtime is 36ms, while the full render time is on average 2.2s (about 60x larger). One reason is that static content is served quite fast. The second chart is as well produced with grafana and analyses the phases of requests based on W3C Navigation Timing. The nt_response_time shows the client point of view how long it took the server to provide an response to the request.
We can see that nt_response_time is about 100ms (it takes longer to server the dynamic html files). Also from this point of view the response time of the server for the main request only contributed a fraction of the total time. The longest time is the processing time in the client, which depends on the content, CSS, JavaScript, etc. Note that these are overall values, averaging over all requests. One can certainly drill down on certain pages for more details.
Another interesting aspect is the geographic location: has the client a good internet connection in respect to the server? The first map was produced with kibana and shows from which geographic locations pages of OpenACS.org were requested over the last week. Locations with more requests are shown emphasized.
We see that the highest number of requests are coming from the US (Seattle and Washington areas), and in Europe is Austria (Vienna) and France (Paris) issued many requests. If we analyze for boomerang requests with high values of "t_done", we see that these requests are coming from regions far away from Vienna, where the server is located (e.g. from Asia, South America, Australia)