Edgewall Software

Changes between Version 8 and Version 9 of TracDev/Proposals/PortalTrac


Ignore:
Timestamp:
Jul 1, 2011, 1:34:19 AM (13 years ago)
Author:
Carsten Klein <carsten.klein@…>
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • TracDev/Proposals/PortalTrac

    v8 v9  
     1
     2NOTICE: While the initial idea was based on massively patching the existing trac sources, the portal will instead be a plugin module. However, this requires the availability of the extension point specified in #10226.
    13
    24NOTICE: This is a work in progress. Please file your suggestions and comments under ticket #10217.
     
    2325 - And by no means, one will ever be able to search across all projects, nor will one be able to aggregate information from all projects into a single page, for example a dash board, unless you implemented such a feature by yourself, using even more external tools and customizations to get the job done;
    2426
    25  - The biggest problem is, however, that Trac is not made for supporting different environments along with different database schemas, resulting from small to bigger changes to the existing code base.
    26 
    2727
    2828== The Goals ==
    2929
    30  - The portal should be omnipresent in that existing projects and their modules blend into the portal's layout and design, but still allow individual projects to provide a custom logo and icon for their site;
     30 - The portal should be omnipresent in that existing projects and their modules blend into the portal's layout and design, but still allow individual projects or nested portals to provide a custom logo and icon for their site;
    3131
    32  - Replace the current env-parent-dir option with an optional portal environment that will allow users to write new components for the portal and also portlets in order to enhance your experience of an aggregated view on your existing projects. And, if no portal environment exists, the standard behaviour will be used as a fall back;
    33 
    34  - Other use cases, for example browser based registration / creation of new projects, or the termination of existing projects, single-sign-on, hierarchical project layouts, individual project level sub domains, and even more could be achieved by using the portal approach and proper integration of the existing solutions such as apache etc.;
     32 - Other use cases, for example browser based registration / creation of new projects, or the termination of existing projects, single-sign-on, hierarchical project layouts using nested portals, individual project level sub domains, and even more could be achieved by using the portal approach and proper integration of the existing solutions such as apache etc.;
    3533
    3634 - Refactor parts of Trac so that different environments can be supported.
     
    3937== Proposed Solution ==
    4038
    41  - A new trac-portal-admin console will be introduced for setting up / administering a portal instance;
     39 - OBSOLETE? A new trac-portal-admin console will be introduced for setting up / administering a portal instance;
    4240
    4341 - A Trac Portal instance will have its own database, its own configuration and templates and so on;
    4442
    45 At the source level, the following innovations will take place
    46 
    47  - A new trac.portal package will be introduced;
    48 
    49  - trac.web.main will be adjusted so that it will detect a portal instance or use the default env-parent-dir behaviour if no such environment exists;
    50 
    5143 - Portal specific extension points (IPortal...) will be introduced, which have to be extended upon by user or system provided components. All portal components must be registered with the trac.portal.plugins entry point;
    5244
    53  - A new trac.portal.api Portlet API and Portal Component API will be introduced, with IPortlet being the sole portlet extension point in the system. Portlets will also be standard Trac Components, and they must also be registered with the trac.portal.plugins entry point;
     45 - A new trac.portal.api Portlet API will be introduced, with IPortlet being the sole portlet extension point in the system. Portlets will also be standard Trac Components, and they must also be registered with the trac.portal.plugins entry point;
    5446
    5547 - Portlets serve as content providers. Some of them might even serve as IRequestHandlerS or IRequestFilterS. Basically a portlet can choose to provide content that is local to the portal or, they are using so called content aggregators aggregating content from across all of the registered projects. These aggregators, in turn, make use of so called content sources. Portlets can support rendering content in multiple different formats, based on so called content types. The least common denominator is considered text/plain, however, in a web based environment we consider it to be text/html. A portlet that supports rendering of its content in for example text/html and text/rdf+xml or even text/atom+xml, will adopt to content-type specific user requests, provided that the portal allows one to retrieve a feed from a single portlet at a time...
    5648
    5749 - A new <portlet.../> Genshi directive will be introduced for authoring the portal template;
    58 
    59  - Portal Components behave just like standard Trac Components in that they extend upon the existing features or provide new extension points to the system.
    6050
    6151 - TBD
     
    7767 - !ProjectIndexPortlet -- provides a navigable project index
    7868  - !LocalProjectIndexAggregator -- aggregates the locally accessible projects
    79    - !LocalProjectIndexSource -- a project index source
    8069
    8170 - !TicketPortlet -- allows one to display an aggregated ticket list across all projects (except for the portal which does not have a ticket system);
     
    8776== Initial Set of Portal Modules ==
    8877
    89  - trac.portal.prefs -- replaces the preferences for all of the projects reigned by the portal;
    90  - trac.portal.search -- provides a search results page and the search portlet(s);
    91  - trac.portal.admin -- provides the trac-portal-admin console and the portal's admin web interface;
    92  - trac.portal.project -- provides a wrapper for existing projects under the reign of the portal;
    93  - trac.portal.timeline -- provides a navigable time line summary page and the time line portlet(s);
    94  - trac.portal.portal -- the portal itself
     78 - TBD.portal.prefs -- replaces the preferences for all of the projects reigned by the portal;
     79 - TBD.portal.search -- provides a search results page and the search portlet(s);
     80 - TBD.portal.admin -- provides the trac-portal-admin console and the portal's admin web interface;
     81 - TBD.portal.project -- provides a wrapper for existing projects under the reign of the portal;
     82 - TBD.portal.timeline -- provides a navigable time line summary page and the time line portlet(s);
     83 - TBD.portal -- the portal itself
    9584 - TBD
    9685
     
    115104  <p:portlet name="trac.portal.timeline.TimelinePortlet"
    116105             class="contentBox" orderby="date" order="desc" ...>
    117     <p:param name="complex_param">
    118          ...
    119     </p:param>
    120106
    121     <p:portlet name="nested portlet" class="nestedContentBox" ...>
    122          ...
    123     </p:portlet>
     107    <p:portlet name="nested portlet" class="nestedContentBox" .../>
    124108
    125109  </p:portlet>
     
    145129<py:choose test="foo">
    146130   <p:portlet py:when="bar" name="${baz}" class="myBaz"/>
    147    <p:portlet py:when="car" name="${tar}" class="myTar">
    148      <param py:if="cat" name="..." value="..."/>
    149      ...
    150    </p:portlet>
     131   <p:portlet py:when="car" name="${tar}" class="myTar"/>
    151132</py:choose>
    152133