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 Fiat2015-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 Fiat2015-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 Fiat2015-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 Fiat2015-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 Fiat2015-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 Fiat2015-05-19 13:44:08 +02: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
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 Fiat2015-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 Fiat2015-05-12 22:02:23 +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 Fiat2015-05-04 23:17:06 +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 Fiat2015-04-30 19:38:17 +02:00
e17011de97
for backward compatibility alias CMS_LAYOUT to CMS_ENVIRONMENT
nodes
Jocelyn Fiat2015-04-30 10:05:04 +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 Fiat2015-04-29 23:27:36 +02:00
7771a452cf
Moved src/modules under modules cluster.
Jocelyn Fiat2015-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 Fiat2015-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 Fiat2015-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 Fiat2015-04-29 17:28:33 +02: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 Fiat2015-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 Fiat2015-04-15 16:39:03 +02:00
2b25c23977
Added helper function to CMS_RESPONSE, to deal with permissions.
Jocelyn Fiat2015-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 Fiat2015-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 Fiat2015-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
9a8683a139
Updated configuration of the example to use EiffelStore sqlite database by default.
jfiat
Jocelyn Fiat2015-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 Fiat2015-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 Fiat2015-04-09 23:54:14 +02:00
b235fb30a7
Updated design related to logger, to prepare move to SCOOP concurrency.
Jocelyn Fiat2015-04-02 21:15:05 +02:00
8382edf9d7
Adapted ROC cms library and example to upcoming concurrency compliant EWF. (SCOOP support)
Jocelyn Fiat2015-03-25 22:32:10 +01:00
e94d860fd8
Commented "mysql" support to make it easier to compile at first.
Jocelyn Fiat2015-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 Fiat2015-03-09 19:27:30 +01:00
ca10c57b4b
Added is_https: BOOLEAN query to CMS (on page, but also as 'is_https' value)
Jocelyn Fiat2015-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 Fiat2015-02-16 13:01:06 +01:00
a810b1176c
Revisited application layout, shared logger and relation with cms to avoid mixing various layout.
Jocelyn Fiat2015-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 Fiat2015-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 Fiat2015-01-30 19:37:12 +01:00
88ec1452d8
Added the new Schema for MySQL
jvelilla
2015-01-29 12:10:01 -03: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 Fiat2015-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 Fiat2015-01-21 22:15:01 +01:00
d23cfbc300
Update api and storage api. Fix missing parameters for sqlite query.
Jocelyn Fiat2015-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 Fiat2015-01-21 17:25:46 +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 Fiat2015-01-21 12:02:36 +01:00