Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
eg_developer_overview [2018/03/23 08:33] – [OpenSRF Applications] rjs7 | eg_developer_overview [2019/08/15 10:24] – [JSPAC (no longer included as of Evergreen 2.9)] rjs7 |
---|
- OpenSRF, forming the backend communication layer for Evergreen. Primarily dealt with via Perl modules, but also including C. | - OpenSRF, forming the backend communication layer for Evergreen. Primarily dealt with via Perl modules, but also including C. |
- PostgreSQL Database, both in database design and stored procedures. Most stored procedures are written in SQL, PL/pgSQL, or Perl. | - PostgreSQL Database, both in database design and stored procedures. Most stored procedures are written in SQL, PL/pgSQL, or Perl. |
- Template Toolkit/JavaScript/Dojo/AngularJS, for OPAC and Staff Client development. The staff client is currently a XULRunner application (XML/XHTML/XUL), but a browser-based client (written mostly in AngularJS) is [[faqs:evergreen_roadmap:2.12|expected to be released]] with Evergreen 2.12. | - Template Toolkit/JavaScript/Dojo/AngularJS, for OPAC and Staff Client development. The staff client is a browser-based client (written mostly in AngularJS) beginning with Evergreen 3.0 (Fall 2017). The former XUL client will be removed in Evergreen 3.2 (Fall 2018). |
| |
See also the [[https://docs.google.com/drawings/d/17aNEr8vLen5wBjCAP4NPnjL7fYT3VxK6_9wVArR9VII/edit?usp=sharing|Evergreen Technical Diagram]]. | See also the [[https://docs.google.com/drawings/d/17aNEr8vLen5wBjCAP4NPnjL7fYT3VxK6_9wVArR9VII/edit?usp=sharing|Evergreen Technical Diagram]]. |
* open-ils.cstore (C) | * open-ils.cstore (C) |
* CStore is a database search and retrieval service, and the default target for the CStoreEditor Perl class. It does not check or require authentication tokens. It can be used to perform complicated queries via json_query calls. | * CStore is a database search and retrieval service, and the default target for the CStoreEditor Perl class. It does not check or require authentication tokens. It can be used to perform complicated queries via json_query calls. |
| * open-ils.ebook_api (added in 2.12) |
* open-ils.fielder (Perl, Public) | * open-ils.fielder (Perl, Public) |
* Currently unused(?) service for loading FieldMapper information. | * Currently unused(?) service for loading FieldMapper information. |
* <del>open-ils.ingest</del> [[https://bugs.launchpad.net/evergreen/+bug/1187029|Removed in 2.6]], [[http://docs.evergreen-ils.org/2.6/_miscellaneous.html|release notes]] | * <del>open-ils.ingest</del> [[https://bugs.launchpad.net/evergreen/+bug/1187029|Removed in 2.6]], [[http://docs.evergreen-ils.org/2.6/_miscellaneous.html|release notes]] |
* Handles ingest of bibliographic records. Replaced by database triggers and stored procedures. | * Handles ingest of bibliographic records. Replaced by database triggers and stored procedures. |
| * open-ils.hold-targeter (added in 2.12) |
* open-ils.justintime (Perl, XML-RPC) | * open-ils.justintime (Perl, XML-RPC) |
* Action/Trigger revalidator for use with things like external telephony. | * Action/Trigger revalidator for use with things like external telephony. |
* <del>open-ils.penalty (Perl)</del> [[https://bugs.launchpad.net/evergreen/+bug/1312308|Removed in 2.9]], [[http://docs.evergreen-ils.org/2.9/_remove_open_ils_penalty_service.html|release notes]] | * <del>open-ils.penalty (Perl)</del> [[https://bugs.launchpad.net/evergreen/+bug/1312308|Removed in 2.9]], [[http://docs.evergreen-ils.org/2.9/_remove_open_ils_penalty_service.html|release notes]] |
* A wrapper around the OpenILS::Utils::Penalty module for calculating patron penalties. | * A wrapper around the OpenILS::Utils::Penalty module for calculating patron penalties. |
* open-ils.permacrud (Perl, Public) See bug [[https://bugs.launchpad.net/evergreen/+bug/1680566|Remove open-ils.permacrud service]] | * open-ils.permacrud (Perl, Public) |
* A Perl authentication checking wrapper around CStore calls. | * A Perl authentication checking wrapper around CStore calls. |
| * See bug [[https://bugs.launchpad.net/evergreen/+bug/1680566|Remove open-ils.permacrud service]] |
| * open-ils.qstore |
| * Executes database queries that have been previously defined, in an abstract form, within the database itself. |
* open-ils.reporter (Perl, Public) | * open-ils.reporter (Perl, Public) |
* The Staff creation and query service for the reports system. | * The Staff creation and query service for the reports system. |
==== JSPAC (no longer included as of Evergreen 2.9) ==== | ==== JSPAC (no longer included as of Evergreen 2.9) ==== |
| |
To start with, at this point it is recommended that new features not be developed for the JSPAC unless they involve security or limiting patron actions. Otherwise development should be targeted at TPAC. | The JSPAC was built on the JavaScript OpenSRF interfaces and built almost everything outside of the base page layouts client side. Search results and account information were populated via AJAX after the initial page load. This included use of the Dojo Toolkit, though for a number of reasons Evergreen is currently limited to the somewhat outdated Dojo version 1.3. |
| |
The JSPAC is built on the JavaScript OpenSRF interfaces and builds almost everything outside of the base page layouts client side. Search results and account information are populated after the initial page load as the system makes backend calls with the AJAX technologies the browser supports. Development is thus more oriented towards JavaScript programming and XHTML pages than anything else. This includes use of the Dojo Toolkit, though for a number of reasons Evergreen is currently limited to the somewhat outdated Dojo version 1.3. | The JSPAC supported multiple skins, but only one shipped with Evergreen. |
| |
Though JSPAC supports multiple skins only one is currently shipped with Evergreen. | |
| |
===== Staff Client ===== | ===== Staff Client ===== |
| |
Work on a browser-based staff client is [[dev:browser_staff:dev_sprints|in process]]. Circulation features were released as a preview with Evergreen 2.8(?), and the full browser client is [[faqs:evergreen_roadmap:2.12|expected to be released]] with Evergreen 2.12 in Spring/Summer of 2017. XUL interfaces are being converted to AngularJS, while Dojo interfaces are being embedded in the new client with hopes to convert them to Angular later on. | The Evergreen browser-based (or "web") staff client is now the main client, and the XUL client will be removed from Evergreen releases as of version 3.2 (expected Fall 2018). Circulation features were released as a preview with Evergreen 2.8(?), and the full browser client was released with Evergreen 3.0 in October 2017. XUL interfaces have been converted to AngularJS, while most Dojo interfaces have been embedded in the web client with hopes to convert them to AngularJS eventually. (NOTE: We are making plans to upgrade from [[dev:browser_staff:angular5|AngularJS to Angular 5]].) |
| |
The full Staff Client is currently a XULRunner application built on the XULRunner 3 series, which is equivalent to the Firefox 3 series. The staff client is a combination of local and remote XUL pages, JavaScript, and the OPAC itself. It is compatible with both the JSPAC and the TPAC, and also loads a number of interfaces that work like the JSPAC and/or TPAC. Some of these interfaces can be easily used outside of the staff client itself, others expect to be loaded from within it. | Development for the web Staff Client can involve AngularJS, JavaScript, (X)HTML, and OPAC development. Perhaps all at the same time, depending on your goals. |
| |
Development for the Staff Client can thus involve XUL, JavaScript, (X)HTML, and OPAC development. Perhaps all at the same time, depending on your goals. | The old Staff Client was a XULRunner application built on the XULRunner 3 series, which is equivalent to the Firefox 3 series. It was a combination of local and remote XUL pages, JavaScript, and the OPAC itself. |
| |
===== External Code - SIPServer ===== | ===== External Code - SIPServer ===== |