Commit Graph

  • f056b43ddc Updated CMS PAGINATION with the last Jocelyn's suggestion. Added a node pagination helper, to build the html links and header related to pagination. jvelilla 2015-05-29 09:25:28 -03:00
  • c871eae10e Renamed node_api and node_storage by blog_api and blog_storage in related CMS_BLOG_* classes. Mainly to avoid confusion with NODE_ classes. Merged CMS_BLOG_CONFIG with CMS_BLOG_API. In CMS_BLOG_API, prefer argument of type CMS_USER, rather than using directly user id. Added a CMS_EDITOR_CONTENT_FORMAT for now, to be the format editable by the WYSIWYG editor. Added CMS_MODULE.is_initialized: BOOLEAN to equip router, and module_api with expected preconditions. blog Jocelyn Fiat 2015-05-27 19:00:32 +02:00
  • 957ca96bc5 Updated code based on comments. jvelilla 2015-05-27 11:26:49 -03:00
  • ad9dd01f22 Update based on comments jvelilla 2015-05-26 20:25:45 -03:00
  • 323ac598d0 Updated code based on comments jvelilla 2015-05-26 20:24:05 -03:00
  • e35893fdb9 Integrated the CKEditor #7 and #8: The class CMS_EDITOR generates javascript code that replaces a textarea with a wysiwyg editor. Only a few methods have to be implemented by the subclasses, for example by CMD_EDITOR_CKEDITOR. The class CMS_FORM_TEXTAREA extends WSF_FORM_TEXTAREA with features to include the javascript from CMS_EDITOR. The most complex usage is shown in CMS_NODE_TYPE_WEBFORM_MANAGER, where the textarea is only replaced if "full_html" is selected as the desired body format. This works dynamically on the browser side as soon as the user selects another format. Dario Bösch 2015-05-23 21:11:39 +02:00
  • b77c5cd93c Added abstraction of cms storage on file system. (mostly helpers features). Jocelyn Fiat 2015-05-22 23:04:09 +02:00
  • 77f52388c1 Improved site_url and base_url interface and initialization. Added CMS_CUSTOM_RESPONSE_MESSAGE interface to send easily simple response message. Updated CMS_RESPONSE to use CMS_CUSTOM_RESPONSE_MESSAGE Jocelyn Fiat 2015-05-22 22:37:18 +02:00
  • e8ff313c28 added some commments Dario Bösch 2015-05-22 17:58:46 +02:00
  • 0bd75e7c59 Added list of posts of a specific user Similar to the blog handler the blog user handler routes /blogs/users/{id}. Pagination is implemented as well Dario Bösch 2015-05-22 17:31:30 +02:00
  • 9b169f70a7 page_number global in blog_handler Dario Bösch 2015-05-22 15:43:29 +02:00
  • 601b88ab36 blog handler optimized, blog user handler created Dario Bösch 2015-05-22 15:34:32 +02:00
  • 2b0e1a2b84 Improved structure of blog handler Dario Bösch 2015-05-22 14:39:43 +02:00
  • db77c4024d created blog.scss, added link to blogs/{user} Later we will list all posts of a user under the route blogs/{user} Dario Bösch 2015-05-22 14:04:00 +02:00
  • 261aeca300 Bugfix: Author was hidden I had to add the authors to each post after getting the list. Made a helper feature add_authors. Dario Bösch 2015-05-22 12:34:30 +02:00
  • 027463a910 #3: added pagination links at bottom of the blog page Dario Bösch 2015-05-22 12:02:33 +02:00
  • a4c50adefa #3: Calculate and show number of total pages Dario Bösch 2015-05-22 11:48:20 +02:00
  • 1f61126d22 Configuration File added Created CMS_BLOG_CONFIG at moved the feature entries_per_page to this new class. The blog hander inherits from the config class Dario Bösch 2015-05-22 11:30:54 +02:00
  • fb196735b6 #3: Routet page and limited entries The blog module routes /blog/{page} and the blog handler limits the entries per page (given as a feature) and sets the offsets according to the given page number Dario Bösch 2015-05-22 11:17:34 +02:00
  • 306b39ab78 Updated code based on Jocelyn's suggestions. jvelilla 2015-05-21 16:46:06 -03:00
  • 802ad0626e Bugfix: wrong API in initialisation of blog module Dario Bösch 2015-05-21 16:10:07 +02:00
  • 470b1b2e05 Restructured Blog Module All blog handlers and storage classes are detached from the nodes module. All files of the blog module are in the modules/blog folder Dario Bösch 2015-05-21 16:04:58 +02:00
  • 57c2a7bccd Removed the summary from the detail page Dario Bösch 2015-05-21 14:12:01 +02:00
  • 4dd980963a Moved filter of nodes of type blog to the node storage layer. This is more efficient because the result set from the query will be smaller and it will be easier to implement the pagination Dario Bösch 2015-05-21 14:06:08 +02:00
  • 6a782e412d #2 Structure of list of posts (blog)Ordered the posts by creation date. For this, I added a field to the nodes storage and api. Show the creation date and author. Styled the post and added a more link to the detail page Dario Bösch 2015-05-21 12:03:09 +02:00
  • 0e0cd131a5 #1: Added the summary field to all nodes. It gets saved if we edit the node. On a node page the summary is shown first, then the main content. In the blog list the title and the summry is shown Dario Bösch 2015-05-21 10:18:03 +02:00
  • 53f3162b4a Inital page builder implementation to add paging support to cms_nodes. jvelilla 2015-05-19 18:40:57 -03:00
  • 036013a0a2 Use CMS local location (i.e relative) and not url for cms local links. Jocelyn Fiat 2015-05-19 22:02:56 +02:00
  • 202253e414 Added summary field in edit and add mode of a node Dario Bösch 2015-05-19 17:28:37 +02:00
  • 50da24d1af Added support for base_url (i.e the CMS can be hosted on the root, or sub folder). Local paths are relative to cms site url (i.e no starting slash). Favor CMS_RESPONSE.absolute_url and url .. instead of using directly WSF_REQUEST.absolute_script_url and script_url. Handled unicode truncation issue for logger. Code cleaning. Jocelyn Fiat 2015-05-19 13:50:39 +02:00
  • 91457080fd Added support for base_url (i.e the CMS can be hosted on the root, or sub folder). Local paths are relative to cms site url (i.e no starting slash). Favor CMS_RESPONSE.absolute_url and url .. instead of using directly WSF_REQUEST.absolute_script_url and script_url. Handled unicode truncation issue for logger. Code cleaning. Jocelyn Fiat 2015-05-19 13:44:08 +02:00
  • 51699f3bd3 updated db schema Jocelyn Fiat 2015-05-19 12:25:16 +02:00
  • f72fcce440 Link fix Dario Bösch 2015-05-18 15:40:47 +02:00
  • f48f09bfdf Bugfix (blog disappeared as create option) Dario Bösch 2015-05-18 14:49:21 +02:00
  • 35b186cec8 gitignore Dario Bösch 2015-05-18 14:39:49 +02:00
  • c65265b025 added blog handler that lists all blog entries Dario Bösch 2015-05-18 14:36:24 +02:00
  • 77bb1fe123 Merge branch 'jvelilla-roc_trash' jvelilla 2015-05-17 12:14:01 -03:00
  • e4e2d662b8 Renaming revert string to restore. jvelilla 2015-05-15 13:10:12 -03:00
  • f0668e660e refactor rename NODE_HANLDER.do_restore instead of do_revert. jvelilla 2015-05-15 11:34:21 -03:00
  • 68fb21a4c1 Fixed typo jvelilla 2015-05-15 11:01:59 -03:00
  • 3b90d522f9 Refactor rename: using trashed_nodes instead of trash_nodes. jvelilla 2015-05-15 10:44:04 -03:00
  • 1c59a65983 Updated code based on Jocelyn suggestions. jvelilla 2015-05-15 09:40:18 -03:00
  • 9fbadac7ac Added trash feature: Remove or revert a node. Added Handler to show the current trash nodes for a given user. An admin can see all the trash nodes. Updated storage to handle trash and revert nodes. jvelilla 2015-05-14 11:07:15 -03:00
  • 57bf5ad0dc Added delete option as a tab only if the current user has permissions to delete the current resource jvelilla 2015-05-13 15:17:19 -03:00
  • 988f32c6c4 Merge branch 'master' of https://github.com/EiffelWebFramework/ROC into roc_trash jvelilla 2015-05-13 12:38:25 -03:00
  • 44d14c4100 delete with tabs jvelilla 2015-05-13 12:27:02 -03:00
  • 29ef17226b Added support for path_aliases. Refactored CMS_MODULE.router (..): WSF_ROUTER design, to create only one router object of type CMS_ROUTER. Added optional CMS_NODE.link: CMS_LOCAL_LINK Reviewed permissions related to node module. Refactor and add CMS_STORAGE_SQL(_BUILDER) abstractions for implementation relying only on SQL statements. Factorized sql builder initialization (to work for sqlite and mysql storage builders). Added CMS_RESPONSE.formatted_string (a_text: READABLE_STRING_GENERAL; args: TUPLE): STRING_32 Added function "translation", but not implemented for now. Updated indexing notes and comments. Code cleaning. Jocelyn Fiat 2015-05-13 17:11:39 +02:00
  • 9514f1de9c Updated SQLITE builder using GLOBAL_SETTINGS to map 0 to 0, by default 0 -> NULL Updated CMS_NODE_API, with status, not_published, published and trashed. Updated Form response to use permission scopes. Updated sqlquery to retrieve user author. Added logger info in cms_response Updated CMS_NODE with a new status attribute. Updated table nodes to support trashing (or soft deletes) of node using the new status field Updated Sqlite builder to test different scenarios for users and roles. Updated NODE_FORM_RESPONSE.edit_form feature to add a delete operation if there is a node ie node id >0 and the current user has delete permission on it. Updated NODE_HANDLER.do_post to handle the operation "DELETE". Updated queries to retrieve nodes filter by no logical deleted rows (ie. status is trashed). Jocelyn Fiat 2015-05-12 22:02:23 +02:00
  • 3fa29340b2 Updated code to follow review comments. javier_roc_nm Jocelyn Fiat 2015-05-12 20:01:14 +02:00
  • b1988d5fe7 Updated CMS_NODE_API, with status, not_published, published and trashed. Removed class cms_node_constants. Updated Form response to use permission scopes. Updated sqlquery to retrieve user author. Added logger info in cms_response jvelilla 2015-05-11 23:51:25 -03:00
  • e767e1bc47 Updated table node to use status (1:not_published, 2:published, 3:trash )instead of deleted_at to implement soft deletes. Updated queries to use the new status field. Updated CMS_NODE with a new status attribute. jvelilla 2015-05-11 16:38:51 -03:00
  • c2d0fbf445 Updated table nodes to support soft deletes using the new field 'deleted_at' as Datetime and give us free metadata. Updated Sqlite builder to test different scenarios for users and roles. Updated NODE_FORM_RESPONSE.edit_form feature to add a delete operation iff there is a node ie node id >0 and the current user has delete permission on it. Updated NODE_HANDLER.do_post to handle the operation "DELETE". Updated queries to retrieve nodes filter by no logical deleted rows (ie. deleted_at is NULL). Updated CMS_USER_API.has_permissions. (authenticated_user_role seems to generic). jvelilla 2015-05-08 18:40:46 -03:00
  • fdff2bef36 Fixed compilation of autotests suites for sqlite and mysql. TODO: reintroduce tests for node management. Jocelyn Fiat 2015-05-04 23:17:06 +02:00
  • 1603086905 Fixed node editing workflow (especially creation/updating). Jocelyn Fiat 2015-04-30 19:46:18 +02:00
  • 99b2fa9fdb Commented line registering the MYSQL storage builder, since it reguires to setup MYSQL environment variable and so on. So by default, we use sqlite, easier to run out of the box. Jocelyn Fiat 2015-04-30 19:38:17 +02:00
  • e17011de97 for backward compatibility alias CMS_LAYOUT to CMS_ENVIRONMENT nodes Jocelyn Fiat 2015-04-30 10:05:04 +02:00
  • 17fe37aedd Added {CMS_RESPONSE}.formats: CMS_FORMATS Jocelyn Fiat 2015-04-30 09:50:47 +02:00
  • dd3688fab8 Now node and basic_auth modules are standalone cms modules (as .ecf library) Moved to complete void-safety Use port 9090 for demo by configuration. Jocelyn Fiat 2015-04-29 23:27:36 +02:00
  • 7771a452cf Moved src/modules under modules cluster. Jocelyn Fiat 2015-04-29 23:08:45 +02:00
  • 6ff7a6493c Simplify CMS_SERVICE initialization, and CMS server (launcher). Renamed "layout" lib as "app_env" with APPLICATION_ENVIRONMENT interface. applied changed to callers. Added CMS_THEME.has_region (a_name): BOOLEAN to know if a region is declared in a defined theme. Jocelyn Fiat 2015-04-29 23:01:42 +02:00
  • 0eb2b70d0f Cleaned the node module, to remove for now the REST api attempt. This will be redone with care once the web cms is ready. Jocelyn Fiat 2015-04-29 20:02:09 +02:00
  • c982f0ea9c Implemented view node by content type (no more hardcoded cases). Added CMS_NODE_TYPE as descendant of CMS_CONTENT_TYPE, in case we have content which is not a node in the future. (probably useless, but for now, this extra abstraction is harmful) Moved all node related code under node module cluster. Applied comments from Javier Velilla. Code cleaning. Jocelyn Fiat 2015-04-29 17:28:33 +02:00
  • e8bb3790ba Removed unused variables. Jocelyn Fiat 2015-04-27 18:50:05 +02:00
  • e206c1e133 Code cleaning. Jocelyn Fiat 2015-04-27 18:48:51 +02:00
  • 5582dd9058 Merge branch 'jvelilla-nodes' into nodes Jocelyn Fiat 2015-04-27 18:44:35 +02:00
  • d54cd6032f Added comments jvelilla 2015-04-24 17:55:32 -03:00
  • 8b24c86ff1 Updated Authentication JS, still work in progress jvelilla 2015-04-23 11:43:57 -03:00
  • fc4c2e76b6 Added login form with Javascript (example). Updated feature and class comments. jvelilla 2015-04-22 18:40:36 -03:00
  • a56338ad17 Added blog module as example, this is far from being a real blog module. but this is an example about on to add a new content type, and support it. Fixed new node form workflow. Jocelyn Fiat 2015-04-15 22:32:38 +02:00
  • f2bb061488 Added support for log stored in CMS_STORAGE. Added support for custom value stored in CMS_STORAGE. Added optional css classes addition to CMS_BLOCK output. Refactored storage, to manage node from node module code only (or mostly). Jocelyn Fiat 2015-04-15 16:39:03 +02:00
  • 2b25c23977 Added helper function to CMS_RESPONSE, to deal with permissions. Jocelyn Fiat 2015-04-14 16:11:04 +02:00
  • ea2b5b87d3 Added helper functions to get uri path for a node, and other related resources. Added description to cms content type. Fixed initialization of node module to create test bed nodes. Jocelyn Fiat 2015-04-14 16:07:09 +02:00
  • 133c243126 Implemented CMS storage for user and nodes. Implemented role and permission storage. Introduced the CMS_PARTIAL_NODE and CMS_PARTIAL_USER. Added support for node storage extension - storage of data specific to each node content type, - in addition to the core CMS_NODE) - For now, only implemented for SQL storage. Note: in current version, CMS_PAGE support is hard coded in the core, (as opposed to be only supported by the node module.) Commented/removed for now, the Web API code to update node summary, title, via REST request. Jocelyn Fiat 2015-04-14 11:25:02 +02:00
  • 734f661add Merge pull request #21 from jvelilla/roc_jv_09042015 Jocelyn Fiat 2015-04-10 10:50:52 +02:00
  • e41b0631d6 Added missing descriptions jvelilla 2015-04-09 22:45:37 -03:00
  • 98621cb265 Merge branch 'jocelyn-jfiat' jvelilla 2015-04-09 21:44:52 -03:00
  • 9a8683a139 Updated configuration of the example to use EiffelStore sqlite database by default. jfiat Jocelyn Fiat 2015-04-09 23:59:57 +02:00
  • f3c3407b0a Got rid of CMS_GENERIC_RESPONSE, and replace with CMS_RESPONSE_MESSAGE descendants. Update node module to use new uri mapping, and cleaned dev purpose code. Jocelyn Fiat 2015-04-09 23:59:13 +02:00
  • 20471923fd Fixed the basic auth logout by using the ://foo@hostname... workaround. Added support for ?destination=... so that login or logout will return to previous visited page. Revisited the sending of generic response such as access denied, unauthorized, redirection ... Fixed support of CMS_RESPONSE.header which was previously ignored. Added support for CMS_RESPONSE.redirection: detachable READABLE_STRING_8, to allow easy url redirection. Added CMS_NODE.make_empty + Cosmetic. Jocelyn Fiat 2015-04-09 23:54:14 +02:00
  • b235fb30a7 Updated design related to logger, to prepare move to SCOOP concurrency. Jocelyn Fiat 2015-04-02 21:15:05 +02:00
  • 7c1d1325eb Adapt to EWF concurrent version. concurrent_ewf Jocelyn Fiat 2015-04-02 18:38:12 +02:00
  • 8382edf9d7 Adapted ROC cms library and example to upcoming concurrency compliant EWF. (SCOOP support) Jocelyn Fiat 2015-03-25 22:32:10 +01:00
  • e94d860fd8 Commented "mysql" support to make it easier to compile at first. Jocelyn Fiat 2015-03-20 19:45:14 +01:00
  • bd6524ebe7 Fixed issue with ini config component and include functionality. Added {CMS_SETUP}.cms_config_ini_name to define the CMS Configuration file name, and provide an easy way to change the name. Jocelyn Fiat 2015-03-09 19:27:30 +01:00
  • ca10c57b4b Added is_https: BOOLEAN query to CMS (on page, but also as 'is_https' value) Jocelyn Fiat 2015-02-16 20:14:45 +01:00
  • 8d59d25ace Added weight into to the CMS_LINK and provide a `sort' feature for CMS_MENU and related. Protected cms service from registering many time the same module type. Moved library/persistence/implementation/* under library/persistence/. Moved site/www/themes to site/themes For SQLite storage driver, auto create sqlite db file using associated sql script (to be completed). Added code in demo module to reuse storage for module purpose. Always call sql_post_execution in sql_query and sql_change, and not anymore by the callers. Removed is_web and is_html from {CMS_SETUP}, it was not used. Reused SHARED_*_ENCODER in CMS_ENCODERS Added CMS_API.logger rather than using directly the SHARED_LOGGER.log ... Centralize the implementation of current_user in CMS_REQUEST_UTIL Removed the inheritance on WSF_FILTER for node handlers, since it is useless and unused. Added CMS_NODE_API and CMS_USER_API Prefix html id for block generated html items with "block-", to avoid css name conflict on "main", "content" or similar. Code cleaning Jocelyn Fiat 2015-02-16 13:01:06 +01:00
  • a810b1176c Revisited application layout, shared logger and relation with cms to avoid mixing various layout. Jocelyn Fiat 2015-02-05 10:28:46 +01:00
  • e40f8ee4d2 Fixed location of logs folder. Jocelyn Fiat 2015-02-03 19:25:38 +01:00
  • 83af7f6a38 Fixed shared logger code (there was an issue on non Windows machine) Now, it is possible to set logs folder from config file. Jocelyn Fiat 2015-02-03 19:19:27 +01:00
  • 02368fe3d2 Removed unused local variable. Updated SHARED_LOGGER to remove a few obsolete calls on json parser. Jocelyn Fiat 2015-01-30 19:40:10 +01:00
  • be0b5c23d2 Added debug output to CMS_BLOCK. Updated SHARED_LOGGER to remove a few obsolete calls on json parser. Added favicon.ico specific handling. Fixed issue with theme and non raw block. Jocelyn Fiat 2015-01-30 19:37:12 +01:00
  • 88ec1452d8 Added the new Schema for MySQL jvelilla 2015-01-29 12:10:01 -03:00
  • 5ddc2006e2 Moved library/src to src Jocelyn Fiat 2015-01-27 19:58:13 +01:00
  • d97c4b1a4a Merge branch 'master' of https://github.com/EiffelWebFramework/ROC Jocelyn Fiat 2015-01-27 19:49:49 +01:00
  • 7d5869f3b9 Revisited the persistence layer. Simplified schema to focus on user and node. Now possible to have sqlite via ODBC and/or mysql support, and select using configuration file. Updated demo example. Jocelyn Fiat 2015-01-27 19:48:37 +01:00
  • db6afb6952 Factorized code for Eiffel Store + SQL CMS storage. Revisited database schema to make it simpler for now, and shorter columns name. See schema.sql under sqlite implementation storage_sql Jocelyn Fiat 2015-01-21 22:15:01 +01:00
  • d23cfbc300 Update api and storage api. Fix missing parameters for sqlite query. Jocelyn Fiat 2015-01-21 17:49:16 +01:00
  • 4aa9c1e097 Take into account database errors. User and Node id are integer_64. Fixed sql_read_string Jocelyn Fiat 2015-01-21 17:25:46 +01:00
  • a074a57d62 Missing param for query. Jocelyn Fiat 2015-01-21 12:36:21 +01:00
  • bba0364a2c Refactored persistence with mysql and sqlite to factorize more things with a CMS_STORAGE_SQL .. based only on sql statement execution. Various changes Jocelyn Fiat 2015-01-21 12:02:36 +01:00