From 789b26eafaaaf9eaaec9bc1bf53d7a317e451f94 Mon Sep 17 00:00:00 2001 From: jvelilla Date: Wed, 12 Nov 2014 17:24:34 -0300 Subject: [PATCH] Move libraries `layout', `model', `peristence' under cms folder Updated code to the new layout. Added missing comments. Remove /example/api --- cms/cms-safe.ecf | 6 +- {layout => cms/layout}/Readme.md | 0 {layout => cms/layout}/layout-safe.ecf | 0 .../layout}/src/application_layout.e | 0 .../configuration/database_configuration.e | 0 .../src/configuration/json_configuration.e | 0 .../src/configuration/logger_configuration.e | 0 .../layout}/src/error/basic_error_handler.e | 0 .../layout}/src/error/shared_error.e | 0 .../layout}/src/logger/logging_facility.e | 0 .../layout}/src/logger/shared_logger.e | 0 {model => cms/model}/model-safe.ecf | 0 {model => cms/model}/src/cms_content_type.e | 0 {model => cms/model}/src/cms_link.e | 0 {model => cms/model}/src/cms_link_composite.e | 0 {model => cms/model}/src/cms_local_link.e | 0 {model => cms/model}/src/cms_menu.e | 0 {model => cms/model}/src/cms_node.e | 0 {model => cms/model}/src/cms_user.e | 0 {model => cms/model}/src/cms_user_profile.e | 0 {model => cms/model}/src/cms_user_role.e | 0 {persistence => cms/persistence}/Readme.md | 0 .../implementation/common/cms_storage_null.e | 0 .../common/database/database_config.e | 0 .../common/database/database_connection.e | 0 .../database/database_connection_null.e | 0 .../database/database_connection_odbc.e | 0 .../common/database/database_handler.e | 0 .../common/database/database_handler_impl.e | 0 .../database/database_iteration_cursor.e | 0 .../common/database/database_null.e | 0 .../common/database/database_query.e | 0 .../database/database_sql_server_encoder.e | 0 .../database/database_store_procedure.e | 0 .../common/database/error/database_error.e | 0 .../database/error/database_error_handler.e | 0 .../database/error/database_no_change_error.e | 0 .../common/database/parameter_name_helper.e | 0 .../common/security/security_provider.e | 0 .../implementation/common/string_helper.e | 0 .../mysql/persistence_mysql-safe.ecf | 0 .../implementation/mysql/scripts/Readme.txt | 0 .../mysql/scripts/create_database.sql | 0 .../implementation/mysql/scripts/tables.sql | 0 .../implementation/mysql/scripts/triggers.sql | 0 .../mysql/src/cms_storage_mysql.e | 0 .../src/database/database_connection_mysql.e | 0 .../mysql/src/provider/node_data_provider.e | 0 .../mysql/src/provider/role_data_provider.e | 0 .../mysql/src/provider/user_data_provider.e | 0 .../implementation/mysql/tests/application.e | 0 .../tests/handler/database_handler_test.e | 0 .../mysql/tests/nodes/node_test_set.e | 0 .../mysql/tests/roles/role_test_set.e | 0 .../mysql/tests/storage/storage_test_set.e | 0 .../implementation/mysql/tests/tests.ecf | 0 .../tests/transactions/transaction_test_set.e | 0 .../mysql/tests/users/user_test_set.e | 0 .../mysql/tests/util/abstract_db_test.e | 0 .../mysql/tests/util/clean_db.e | 0 .../sqlite/persistence_sqlite-safe.ecf | 0 .../implementation/sqlite/scripts/Readme.txt | 0 .../sqlite/scripts/create_database.sql | 0 .../implementation/sqlite/scripts/tables.sql | 0 .../sqlite/src/cms_storage_sqlite.e | 0 .../src/database/database_connection_mysql.e | 0 .../sqlite/src/provider/node_data_provider.e | 0 .../sqlite/src/provider/user_data_provider.e | 0 .../implementation/sqlite/tests/Readme.md | 0 .../implementation/sqlite/tests/application.e | 0 .../implementation/sqlite/tests/cms_lite.db | Bin .../sqlite/tests/nodes/node_test_set.e | 0 .../sqlite/tests/storage/storage_test_set.e | 0 .../sqlite/tests/tests-safe.ecf | 0 .../sqlite/tests/users/user_test_set.e | 0 .../sqlite/tests/util/abstract_db_test.e | 0 .../sqlite/tests/util/clean_db.e | 0 .../persistence}/interface/cms_storage.e | 0 cms/src/hooks/cms_hook_auto_register.e | 12 +- .../modules/basic_auth/basic_auth_module.e | 2 +- .../basic_auth/filter/basic_auth_filter.e | 14 +- cms/src/modules/cms_module.e | 21 +- examples/api/Readme.txt | 49 - .../api/launcher/any/application_launcher.e | 24 - .../api/launcher/any/application_launcher_i.e | 102 - .../launcher/default/application_launcher.e | 54 - .../launcher/default/application_launcher_i.e | 26 - examples/api/roc.ini | 2 - examples/api/roc_api.ecf | 83 - .../config/application_configuration.json | 32 - .../api/site/www/static/css/bootstrap.css | 5849 ----------------- .../api/site/www/static/css/dashboard.css | 357 - .../site/www/static/images/ajax-loader.gif | Bin 1456 -> 0 bytes .../api/site/www/static/images/favicon.ico | Bin 16446 -> 0 bytes examples/api/site/www/static/js/roc.js | 108 - .../api/site/www/template/html/layout2.tpl | 40 - .../www/template/html/master2/content.tpl | 11 - .../site/www/template/html/master2/error.tpl | 18 - .../site/www/template/html/master2/footer.tpl | 7 - .../site/www/template/html/master2/head.tpl | 10 - .../site/www/template/html/master2/header.tpl | 2 - .../site/www/template/html/master2/logoff.tpl | 5 - .../template/html/master2/main_navigation.tpl | 5 - .../html/master2/optional_enhancement_js.tpl | 5 - .../html/master2/optional_styling_css.tpl | 9 - .../template/html/master2/site_navigation.tpl | 27 - .../www/template/html/modules/navigation.tpl | 8 - .../site/www/template/html/modules/node.tpl | 174 - .../template/html/modules/node_content.tpl | 70 - .../template/html/modules/node_summary.tpl | 71 - .../www/template/html/modules/node_title.tpl | 70 - .../site/www/template/html/modules/nodes.tpl | 52 - .../www/template/html/modules/register.tpl | 100 - .../src/configuration/application_constants.e | 19 - .../src/configuration/configuration_factory.e | 70 - .../configuration/roc_json_configuration.e | 48 - .../representation/common/template_shared.e | 29 - .../api/src/representation/roc_response.e | 143 - .../src/representation/roc_template_page.e | 76 - examples/api/src/roc_abstract_api.e | 119 - examples/api/src/roc_config.e | 87 - examples/api/src/roc_server.e | 212 - .../service/filter/authentication_filter.e | 60 - examples/api/src/service/filter/cors_filter.e | 27 - .../api/src/service/filter/error_filter.e | 42 - .../api/src/service/filter/logger_filter.e | 54 - .../service/handler/app_abstract_handler.e | 48 - .../api/src/service/handler/app_handler.e | 98 - .../src/service/handler/navigation_handler.e | 57 - .../service/handler/node_content_handler.e | 190 - .../api/src/service/handler/node_handler.e | 225 - .../service/handler/node_summary_handler.e | 199 - .../src/service/handler/node_title_handler.e | 199 - .../api/src/service/handler/nodes_handler.e | 62 - .../src/service/handler/roc_login_handler.e | 63 - .../src/service/handler/roc_logoff_handler.e | 60 - .../src/service/handler/roc_root_handler.e | 63 - .../api/src/service/handler/user_handler.e | 163 - examples/api/src/service/roc_api_service.e | 126 - examples/api/src/service/roc_email_service.e | 127 - examples/api/src/service/roc_rest_api.e | 185 - .../api/src/service/shared_conneg_helper.e | 48 - .../api/src/validator/roc_input_validator.e | 58 - .../modules/demo/cms_demo_module-safe.ecf | 2 +- examples/roc_api/roc_api-safe.ecf | 2 +- examples/roc_api/src/ewf_roc_server.e | 4 +- 146 files changed, 47 insertions(+), 10343 deletions(-) rename {layout => cms/layout}/Readme.md (100%) rename {layout => cms/layout}/layout-safe.ecf (100%) rename {layout => cms/layout}/src/application_layout.e (100%) rename {layout => cms/layout}/src/configuration/database_configuration.e (100%) rename {layout => cms/layout}/src/configuration/json_configuration.e (100%) rename {layout => cms/layout}/src/configuration/logger_configuration.e (100%) rename {layout => cms/layout}/src/error/basic_error_handler.e (100%) rename {layout => cms/layout}/src/error/shared_error.e (100%) rename {layout => cms/layout}/src/logger/logging_facility.e (100%) rename {layout => cms/layout}/src/logger/shared_logger.e (100%) rename {model => cms/model}/model-safe.ecf (100%) rename {model => cms/model}/src/cms_content_type.e (100%) rename {model => cms/model}/src/cms_link.e (100%) rename {model => cms/model}/src/cms_link_composite.e (100%) rename {model => cms/model}/src/cms_local_link.e (100%) rename {model => cms/model}/src/cms_menu.e (100%) rename {model => cms/model}/src/cms_node.e (100%) rename {model => cms/model}/src/cms_user.e (100%) rename {model => cms/model}/src/cms_user_profile.e (100%) rename {model => cms/model}/src/cms_user_role.e (100%) rename {persistence => cms/persistence}/Readme.md (100%) rename {persistence => cms/persistence}/implementation/common/cms_storage_null.e (100%) rename {persistence => cms/persistence}/implementation/common/database/database_config.e (100%) rename {persistence => cms/persistence}/implementation/common/database/database_connection.e (100%) rename {persistence => cms/persistence}/implementation/common/database/database_connection_null.e (100%) rename {persistence => cms/persistence}/implementation/common/database/database_connection_odbc.e (100%) rename {persistence => cms/persistence}/implementation/common/database/database_handler.e (100%) rename {persistence => cms/persistence}/implementation/common/database/database_handler_impl.e (100%) rename {persistence => cms/persistence}/implementation/common/database/database_iteration_cursor.e (100%) rename {persistence => cms/persistence}/implementation/common/database/database_null.e (100%) rename {persistence => cms/persistence}/implementation/common/database/database_query.e (100%) rename {persistence => cms/persistence}/implementation/common/database/database_sql_server_encoder.e (100%) rename {persistence => cms/persistence}/implementation/common/database/database_store_procedure.e (100%) rename {persistence => cms/persistence}/implementation/common/database/error/database_error.e (100%) rename {persistence => cms/persistence}/implementation/common/database/error/database_error_handler.e (100%) rename {persistence => cms/persistence}/implementation/common/database/error/database_no_change_error.e (100%) rename {persistence => cms/persistence}/implementation/common/database/parameter_name_helper.e (100%) rename {persistence => cms/persistence}/implementation/common/security/security_provider.e (100%) rename {persistence => cms/persistence}/implementation/common/string_helper.e (100%) rename {persistence => cms/persistence}/implementation/mysql/persistence_mysql-safe.ecf (100%) rename {persistence => cms/persistence}/implementation/mysql/scripts/Readme.txt (100%) rename {persistence => cms/persistence}/implementation/mysql/scripts/create_database.sql (100%) rename {persistence => cms/persistence}/implementation/mysql/scripts/tables.sql (100%) rename {persistence => cms/persistence}/implementation/mysql/scripts/triggers.sql (100%) rename {persistence => cms/persistence}/implementation/mysql/src/cms_storage_mysql.e (100%) rename {persistence => cms/persistence}/implementation/mysql/src/database/database_connection_mysql.e (100%) rename {persistence => cms/persistence}/implementation/mysql/src/provider/node_data_provider.e (100%) rename {persistence => cms/persistence}/implementation/mysql/src/provider/role_data_provider.e (100%) rename {persistence => cms/persistence}/implementation/mysql/src/provider/user_data_provider.e (100%) rename {persistence => cms/persistence}/implementation/mysql/tests/application.e (100%) rename {persistence => cms/persistence}/implementation/mysql/tests/handler/database_handler_test.e (100%) rename {persistence => cms/persistence}/implementation/mysql/tests/nodes/node_test_set.e (100%) rename {persistence => cms/persistence}/implementation/mysql/tests/roles/role_test_set.e (100%) rename {persistence => cms/persistence}/implementation/mysql/tests/storage/storage_test_set.e (100%) rename {persistence => cms/persistence}/implementation/mysql/tests/tests.ecf (100%) rename {persistence => cms/persistence}/implementation/mysql/tests/transactions/transaction_test_set.e (100%) rename {persistence => cms/persistence}/implementation/mysql/tests/users/user_test_set.e (100%) rename {persistence => cms/persistence}/implementation/mysql/tests/util/abstract_db_test.e (100%) rename {persistence => cms/persistence}/implementation/mysql/tests/util/clean_db.e (100%) rename {persistence => cms/persistence}/implementation/sqlite/persistence_sqlite-safe.ecf (100%) rename {persistence => cms/persistence}/implementation/sqlite/scripts/Readme.txt (100%) rename {persistence => cms/persistence}/implementation/sqlite/scripts/create_database.sql (100%) rename {persistence => cms/persistence}/implementation/sqlite/scripts/tables.sql (100%) rename {persistence => cms/persistence}/implementation/sqlite/src/cms_storage_sqlite.e (100%) rename {persistence => cms/persistence}/implementation/sqlite/src/database/database_connection_mysql.e (100%) rename {persistence => cms/persistence}/implementation/sqlite/src/provider/node_data_provider.e (100%) rename {persistence => cms/persistence}/implementation/sqlite/src/provider/user_data_provider.e (100%) rename {persistence => cms/persistence}/implementation/sqlite/tests/Readme.md (100%) rename {persistence => cms/persistence}/implementation/sqlite/tests/application.e (100%) rename {persistence => cms/persistence}/implementation/sqlite/tests/cms_lite.db (100%) rename {persistence => cms/persistence}/implementation/sqlite/tests/nodes/node_test_set.e (100%) rename {persistence => cms/persistence}/implementation/sqlite/tests/storage/storage_test_set.e (100%) rename {persistence => cms/persistence}/implementation/sqlite/tests/tests-safe.ecf (100%) rename {persistence => cms/persistence}/implementation/sqlite/tests/users/user_test_set.e (100%) rename {persistence => cms/persistence}/implementation/sqlite/tests/util/abstract_db_test.e (100%) rename {persistence => cms/persistence}/implementation/sqlite/tests/util/clean_db.e (100%) rename {persistence => cms/persistence}/interface/cms_storage.e (100%) delete mode 100644 examples/api/Readme.txt delete mode 100644 examples/api/launcher/any/application_launcher.e delete mode 100644 examples/api/launcher/any/application_launcher_i.e delete mode 100644 examples/api/launcher/default/application_launcher.e delete mode 100644 examples/api/launcher/default/application_launcher_i.e delete mode 100644 examples/api/roc.ini delete mode 100644 examples/api/roc_api.ecf delete mode 100644 examples/api/site/config/application_configuration.json delete mode 100644 examples/api/site/www/static/css/bootstrap.css delete mode 100644 examples/api/site/www/static/css/dashboard.css delete mode 100644 examples/api/site/www/static/images/ajax-loader.gif delete mode 100644 examples/api/site/www/static/images/favicon.ico delete mode 100644 examples/api/site/www/static/js/roc.js delete mode 100644 examples/api/site/www/template/html/layout2.tpl delete mode 100644 examples/api/site/www/template/html/master2/content.tpl delete mode 100644 examples/api/site/www/template/html/master2/error.tpl delete mode 100644 examples/api/site/www/template/html/master2/footer.tpl delete mode 100644 examples/api/site/www/template/html/master2/head.tpl delete mode 100644 examples/api/site/www/template/html/master2/header.tpl delete mode 100644 examples/api/site/www/template/html/master2/logoff.tpl delete mode 100644 examples/api/site/www/template/html/master2/main_navigation.tpl delete mode 100644 examples/api/site/www/template/html/master2/optional_enhancement_js.tpl delete mode 100644 examples/api/site/www/template/html/master2/optional_styling_css.tpl delete mode 100644 examples/api/site/www/template/html/master2/site_navigation.tpl delete mode 100644 examples/api/site/www/template/html/modules/navigation.tpl delete mode 100644 examples/api/site/www/template/html/modules/node.tpl delete mode 100644 examples/api/site/www/template/html/modules/node_content.tpl delete mode 100644 examples/api/site/www/template/html/modules/node_summary.tpl delete mode 100644 examples/api/site/www/template/html/modules/node_title.tpl delete mode 100644 examples/api/site/www/template/html/modules/nodes.tpl delete mode 100644 examples/api/site/www/template/html/modules/register.tpl delete mode 100644 examples/api/src/configuration/application_constants.e delete mode 100644 examples/api/src/configuration/configuration_factory.e delete mode 100644 examples/api/src/configuration/roc_json_configuration.e delete mode 100644 examples/api/src/representation/common/template_shared.e delete mode 100644 examples/api/src/representation/roc_response.e delete mode 100644 examples/api/src/representation/roc_template_page.e delete mode 100644 examples/api/src/roc_abstract_api.e delete mode 100644 examples/api/src/roc_config.e delete mode 100644 examples/api/src/roc_server.e delete mode 100644 examples/api/src/service/filter/authentication_filter.e delete mode 100644 examples/api/src/service/filter/cors_filter.e delete mode 100644 examples/api/src/service/filter/error_filter.e delete mode 100644 examples/api/src/service/filter/logger_filter.e delete mode 100644 examples/api/src/service/handler/app_abstract_handler.e delete mode 100644 examples/api/src/service/handler/app_handler.e delete mode 100644 examples/api/src/service/handler/navigation_handler.e delete mode 100644 examples/api/src/service/handler/node_content_handler.e delete mode 100644 examples/api/src/service/handler/node_handler.e delete mode 100644 examples/api/src/service/handler/node_summary_handler.e delete mode 100644 examples/api/src/service/handler/node_title_handler.e delete mode 100644 examples/api/src/service/handler/nodes_handler.e delete mode 100644 examples/api/src/service/handler/roc_login_handler.e delete mode 100644 examples/api/src/service/handler/roc_logoff_handler.e delete mode 100644 examples/api/src/service/handler/roc_root_handler.e delete mode 100644 examples/api/src/service/handler/user_handler.e delete mode 100644 examples/api/src/service/roc_api_service.e delete mode 100644 examples/api/src/service/roc_email_service.e delete mode 100644 examples/api/src/service/roc_rest_api.e delete mode 100644 examples/api/src/service/shared_conneg_helper.e delete mode 100644 examples/api/src/validator/roc_input_validator.e diff --git a/cms/cms-safe.ecf b/cms/cms-safe.ecf index e8f43fa..2c2d41f 100644 --- a/cms/cms-safe.ecf +++ b/cms/cms-safe.ecf @@ -9,14 +9,14 @@ - - + + - + diff --git a/layout/Readme.md b/cms/layout/Readme.md similarity index 100% rename from layout/Readme.md rename to cms/layout/Readme.md diff --git a/layout/layout-safe.ecf b/cms/layout/layout-safe.ecf similarity index 100% rename from layout/layout-safe.ecf rename to cms/layout/layout-safe.ecf diff --git a/layout/src/application_layout.e b/cms/layout/src/application_layout.e similarity index 100% rename from layout/src/application_layout.e rename to cms/layout/src/application_layout.e diff --git a/layout/src/configuration/database_configuration.e b/cms/layout/src/configuration/database_configuration.e similarity index 100% rename from layout/src/configuration/database_configuration.e rename to cms/layout/src/configuration/database_configuration.e diff --git a/layout/src/configuration/json_configuration.e b/cms/layout/src/configuration/json_configuration.e similarity index 100% rename from layout/src/configuration/json_configuration.e rename to cms/layout/src/configuration/json_configuration.e diff --git a/layout/src/configuration/logger_configuration.e b/cms/layout/src/configuration/logger_configuration.e similarity index 100% rename from layout/src/configuration/logger_configuration.e rename to cms/layout/src/configuration/logger_configuration.e diff --git a/layout/src/error/basic_error_handler.e b/cms/layout/src/error/basic_error_handler.e similarity index 100% rename from layout/src/error/basic_error_handler.e rename to cms/layout/src/error/basic_error_handler.e diff --git a/layout/src/error/shared_error.e b/cms/layout/src/error/shared_error.e similarity index 100% rename from layout/src/error/shared_error.e rename to cms/layout/src/error/shared_error.e diff --git a/layout/src/logger/logging_facility.e b/cms/layout/src/logger/logging_facility.e similarity index 100% rename from layout/src/logger/logging_facility.e rename to cms/layout/src/logger/logging_facility.e diff --git a/layout/src/logger/shared_logger.e b/cms/layout/src/logger/shared_logger.e similarity index 100% rename from layout/src/logger/shared_logger.e rename to cms/layout/src/logger/shared_logger.e diff --git a/model/model-safe.ecf b/cms/model/model-safe.ecf similarity index 100% rename from model/model-safe.ecf rename to cms/model/model-safe.ecf diff --git a/model/src/cms_content_type.e b/cms/model/src/cms_content_type.e similarity index 100% rename from model/src/cms_content_type.e rename to cms/model/src/cms_content_type.e diff --git a/model/src/cms_link.e b/cms/model/src/cms_link.e similarity index 100% rename from model/src/cms_link.e rename to cms/model/src/cms_link.e diff --git a/model/src/cms_link_composite.e b/cms/model/src/cms_link_composite.e similarity index 100% rename from model/src/cms_link_composite.e rename to cms/model/src/cms_link_composite.e diff --git a/model/src/cms_local_link.e b/cms/model/src/cms_local_link.e similarity index 100% rename from model/src/cms_local_link.e rename to cms/model/src/cms_local_link.e diff --git a/model/src/cms_menu.e b/cms/model/src/cms_menu.e similarity index 100% rename from model/src/cms_menu.e rename to cms/model/src/cms_menu.e diff --git a/model/src/cms_node.e b/cms/model/src/cms_node.e similarity index 100% rename from model/src/cms_node.e rename to cms/model/src/cms_node.e diff --git a/model/src/cms_user.e b/cms/model/src/cms_user.e similarity index 100% rename from model/src/cms_user.e rename to cms/model/src/cms_user.e diff --git a/model/src/cms_user_profile.e b/cms/model/src/cms_user_profile.e similarity index 100% rename from model/src/cms_user_profile.e rename to cms/model/src/cms_user_profile.e diff --git a/model/src/cms_user_role.e b/cms/model/src/cms_user_role.e similarity index 100% rename from model/src/cms_user_role.e rename to cms/model/src/cms_user_role.e diff --git a/persistence/Readme.md b/cms/persistence/Readme.md similarity index 100% rename from persistence/Readme.md rename to cms/persistence/Readme.md diff --git a/persistence/implementation/common/cms_storage_null.e b/cms/persistence/implementation/common/cms_storage_null.e similarity index 100% rename from persistence/implementation/common/cms_storage_null.e rename to cms/persistence/implementation/common/cms_storage_null.e diff --git a/persistence/implementation/common/database/database_config.e b/cms/persistence/implementation/common/database/database_config.e similarity index 100% rename from persistence/implementation/common/database/database_config.e rename to cms/persistence/implementation/common/database/database_config.e diff --git a/persistence/implementation/common/database/database_connection.e b/cms/persistence/implementation/common/database/database_connection.e similarity index 100% rename from persistence/implementation/common/database/database_connection.e rename to cms/persistence/implementation/common/database/database_connection.e diff --git a/persistence/implementation/common/database/database_connection_null.e b/cms/persistence/implementation/common/database/database_connection_null.e similarity index 100% rename from persistence/implementation/common/database/database_connection_null.e rename to cms/persistence/implementation/common/database/database_connection_null.e diff --git a/persistence/implementation/common/database/database_connection_odbc.e b/cms/persistence/implementation/common/database/database_connection_odbc.e similarity index 100% rename from persistence/implementation/common/database/database_connection_odbc.e rename to cms/persistence/implementation/common/database/database_connection_odbc.e diff --git a/persistence/implementation/common/database/database_handler.e b/cms/persistence/implementation/common/database/database_handler.e similarity index 100% rename from persistence/implementation/common/database/database_handler.e rename to cms/persistence/implementation/common/database/database_handler.e diff --git a/persistence/implementation/common/database/database_handler_impl.e b/cms/persistence/implementation/common/database/database_handler_impl.e similarity index 100% rename from persistence/implementation/common/database/database_handler_impl.e rename to cms/persistence/implementation/common/database/database_handler_impl.e diff --git a/persistence/implementation/common/database/database_iteration_cursor.e b/cms/persistence/implementation/common/database/database_iteration_cursor.e similarity index 100% rename from persistence/implementation/common/database/database_iteration_cursor.e rename to cms/persistence/implementation/common/database/database_iteration_cursor.e diff --git a/persistence/implementation/common/database/database_null.e b/cms/persistence/implementation/common/database/database_null.e similarity index 100% rename from persistence/implementation/common/database/database_null.e rename to cms/persistence/implementation/common/database/database_null.e diff --git a/persistence/implementation/common/database/database_query.e b/cms/persistence/implementation/common/database/database_query.e similarity index 100% rename from persistence/implementation/common/database/database_query.e rename to cms/persistence/implementation/common/database/database_query.e diff --git a/persistence/implementation/common/database/database_sql_server_encoder.e b/cms/persistence/implementation/common/database/database_sql_server_encoder.e similarity index 100% rename from persistence/implementation/common/database/database_sql_server_encoder.e rename to cms/persistence/implementation/common/database/database_sql_server_encoder.e diff --git a/persistence/implementation/common/database/database_store_procedure.e b/cms/persistence/implementation/common/database/database_store_procedure.e similarity index 100% rename from persistence/implementation/common/database/database_store_procedure.e rename to cms/persistence/implementation/common/database/database_store_procedure.e diff --git a/persistence/implementation/common/database/error/database_error.e b/cms/persistence/implementation/common/database/error/database_error.e similarity index 100% rename from persistence/implementation/common/database/error/database_error.e rename to cms/persistence/implementation/common/database/error/database_error.e diff --git a/persistence/implementation/common/database/error/database_error_handler.e b/cms/persistence/implementation/common/database/error/database_error_handler.e similarity index 100% rename from persistence/implementation/common/database/error/database_error_handler.e rename to cms/persistence/implementation/common/database/error/database_error_handler.e diff --git a/persistence/implementation/common/database/error/database_no_change_error.e b/cms/persistence/implementation/common/database/error/database_no_change_error.e similarity index 100% rename from persistence/implementation/common/database/error/database_no_change_error.e rename to cms/persistence/implementation/common/database/error/database_no_change_error.e diff --git a/persistence/implementation/common/database/parameter_name_helper.e b/cms/persistence/implementation/common/database/parameter_name_helper.e similarity index 100% rename from persistence/implementation/common/database/parameter_name_helper.e rename to cms/persistence/implementation/common/database/parameter_name_helper.e diff --git a/persistence/implementation/common/security/security_provider.e b/cms/persistence/implementation/common/security/security_provider.e similarity index 100% rename from persistence/implementation/common/security/security_provider.e rename to cms/persistence/implementation/common/security/security_provider.e diff --git a/persistence/implementation/common/string_helper.e b/cms/persistence/implementation/common/string_helper.e similarity index 100% rename from persistence/implementation/common/string_helper.e rename to cms/persistence/implementation/common/string_helper.e diff --git a/persistence/implementation/mysql/persistence_mysql-safe.ecf b/cms/persistence/implementation/mysql/persistence_mysql-safe.ecf similarity index 100% rename from persistence/implementation/mysql/persistence_mysql-safe.ecf rename to cms/persistence/implementation/mysql/persistence_mysql-safe.ecf diff --git a/persistence/implementation/mysql/scripts/Readme.txt b/cms/persistence/implementation/mysql/scripts/Readme.txt similarity index 100% rename from persistence/implementation/mysql/scripts/Readme.txt rename to cms/persistence/implementation/mysql/scripts/Readme.txt diff --git a/persistence/implementation/mysql/scripts/create_database.sql b/cms/persistence/implementation/mysql/scripts/create_database.sql similarity index 100% rename from persistence/implementation/mysql/scripts/create_database.sql rename to cms/persistence/implementation/mysql/scripts/create_database.sql diff --git a/persistence/implementation/mysql/scripts/tables.sql b/cms/persistence/implementation/mysql/scripts/tables.sql similarity index 100% rename from persistence/implementation/mysql/scripts/tables.sql rename to cms/persistence/implementation/mysql/scripts/tables.sql diff --git a/persistence/implementation/mysql/scripts/triggers.sql b/cms/persistence/implementation/mysql/scripts/triggers.sql similarity index 100% rename from persistence/implementation/mysql/scripts/triggers.sql rename to cms/persistence/implementation/mysql/scripts/triggers.sql diff --git a/persistence/implementation/mysql/src/cms_storage_mysql.e b/cms/persistence/implementation/mysql/src/cms_storage_mysql.e similarity index 100% rename from persistence/implementation/mysql/src/cms_storage_mysql.e rename to cms/persistence/implementation/mysql/src/cms_storage_mysql.e diff --git a/persistence/implementation/mysql/src/database/database_connection_mysql.e b/cms/persistence/implementation/mysql/src/database/database_connection_mysql.e similarity index 100% rename from persistence/implementation/mysql/src/database/database_connection_mysql.e rename to cms/persistence/implementation/mysql/src/database/database_connection_mysql.e diff --git a/persistence/implementation/mysql/src/provider/node_data_provider.e b/cms/persistence/implementation/mysql/src/provider/node_data_provider.e similarity index 100% rename from persistence/implementation/mysql/src/provider/node_data_provider.e rename to cms/persistence/implementation/mysql/src/provider/node_data_provider.e diff --git a/persistence/implementation/mysql/src/provider/role_data_provider.e b/cms/persistence/implementation/mysql/src/provider/role_data_provider.e similarity index 100% rename from persistence/implementation/mysql/src/provider/role_data_provider.e rename to cms/persistence/implementation/mysql/src/provider/role_data_provider.e diff --git a/persistence/implementation/mysql/src/provider/user_data_provider.e b/cms/persistence/implementation/mysql/src/provider/user_data_provider.e similarity index 100% rename from persistence/implementation/mysql/src/provider/user_data_provider.e rename to cms/persistence/implementation/mysql/src/provider/user_data_provider.e diff --git a/persistence/implementation/mysql/tests/application.e b/cms/persistence/implementation/mysql/tests/application.e similarity index 100% rename from persistence/implementation/mysql/tests/application.e rename to cms/persistence/implementation/mysql/tests/application.e diff --git a/persistence/implementation/mysql/tests/handler/database_handler_test.e b/cms/persistence/implementation/mysql/tests/handler/database_handler_test.e similarity index 100% rename from persistence/implementation/mysql/tests/handler/database_handler_test.e rename to cms/persistence/implementation/mysql/tests/handler/database_handler_test.e diff --git a/persistence/implementation/mysql/tests/nodes/node_test_set.e b/cms/persistence/implementation/mysql/tests/nodes/node_test_set.e similarity index 100% rename from persistence/implementation/mysql/tests/nodes/node_test_set.e rename to cms/persistence/implementation/mysql/tests/nodes/node_test_set.e diff --git a/persistence/implementation/mysql/tests/roles/role_test_set.e b/cms/persistence/implementation/mysql/tests/roles/role_test_set.e similarity index 100% rename from persistence/implementation/mysql/tests/roles/role_test_set.e rename to cms/persistence/implementation/mysql/tests/roles/role_test_set.e diff --git a/persistence/implementation/mysql/tests/storage/storage_test_set.e b/cms/persistence/implementation/mysql/tests/storage/storage_test_set.e similarity index 100% rename from persistence/implementation/mysql/tests/storage/storage_test_set.e rename to cms/persistence/implementation/mysql/tests/storage/storage_test_set.e diff --git a/persistence/implementation/mysql/tests/tests.ecf b/cms/persistence/implementation/mysql/tests/tests.ecf similarity index 100% rename from persistence/implementation/mysql/tests/tests.ecf rename to cms/persistence/implementation/mysql/tests/tests.ecf diff --git a/persistence/implementation/mysql/tests/transactions/transaction_test_set.e b/cms/persistence/implementation/mysql/tests/transactions/transaction_test_set.e similarity index 100% rename from persistence/implementation/mysql/tests/transactions/transaction_test_set.e rename to cms/persistence/implementation/mysql/tests/transactions/transaction_test_set.e diff --git a/persistence/implementation/mysql/tests/users/user_test_set.e b/cms/persistence/implementation/mysql/tests/users/user_test_set.e similarity index 100% rename from persistence/implementation/mysql/tests/users/user_test_set.e rename to cms/persistence/implementation/mysql/tests/users/user_test_set.e diff --git a/persistence/implementation/mysql/tests/util/abstract_db_test.e b/cms/persistence/implementation/mysql/tests/util/abstract_db_test.e similarity index 100% rename from persistence/implementation/mysql/tests/util/abstract_db_test.e rename to cms/persistence/implementation/mysql/tests/util/abstract_db_test.e diff --git a/persistence/implementation/mysql/tests/util/clean_db.e b/cms/persistence/implementation/mysql/tests/util/clean_db.e similarity index 100% rename from persistence/implementation/mysql/tests/util/clean_db.e rename to cms/persistence/implementation/mysql/tests/util/clean_db.e diff --git a/persistence/implementation/sqlite/persistence_sqlite-safe.ecf b/cms/persistence/implementation/sqlite/persistence_sqlite-safe.ecf similarity index 100% rename from persistence/implementation/sqlite/persistence_sqlite-safe.ecf rename to cms/persistence/implementation/sqlite/persistence_sqlite-safe.ecf diff --git a/persistence/implementation/sqlite/scripts/Readme.txt b/cms/persistence/implementation/sqlite/scripts/Readme.txt similarity index 100% rename from persistence/implementation/sqlite/scripts/Readme.txt rename to cms/persistence/implementation/sqlite/scripts/Readme.txt diff --git a/persistence/implementation/sqlite/scripts/create_database.sql b/cms/persistence/implementation/sqlite/scripts/create_database.sql similarity index 100% rename from persistence/implementation/sqlite/scripts/create_database.sql rename to cms/persistence/implementation/sqlite/scripts/create_database.sql diff --git a/persistence/implementation/sqlite/scripts/tables.sql b/cms/persistence/implementation/sqlite/scripts/tables.sql similarity index 100% rename from persistence/implementation/sqlite/scripts/tables.sql rename to cms/persistence/implementation/sqlite/scripts/tables.sql diff --git a/persistence/implementation/sqlite/src/cms_storage_sqlite.e b/cms/persistence/implementation/sqlite/src/cms_storage_sqlite.e similarity index 100% rename from persistence/implementation/sqlite/src/cms_storage_sqlite.e rename to cms/persistence/implementation/sqlite/src/cms_storage_sqlite.e diff --git a/persistence/implementation/sqlite/src/database/database_connection_mysql.e b/cms/persistence/implementation/sqlite/src/database/database_connection_mysql.e similarity index 100% rename from persistence/implementation/sqlite/src/database/database_connection_mysql.e rename to cms/persistence/implementation/sqlite/src/database/database_connection_mysql.e diff --git a/persistence/implementation/sqlite/src/provider/node_data_provider.e b/cms/persistence/implementation/sqlite/src/provider/node_data_provider.e similarity index 100% rename from persistence/implementation/sqlite/src/provider/node_data_provider.e rename to cms/persistence/implementation/sqlite/src/provider/node_data_provider.e diff --git a/persistence/implementation/sqlite/src/provider/user_data_provider.e b/cms/persistence/implementation/sqlite/src/provider/user_data_provider.e similarity index 100% rename from persistence/implementation/sqlite/src/provider/user_data_provider.e rename to cms/persistence/implementation/sqlite/src/provider/user_data_provider.e diff --git a/persistence/implementation/sqlite/tests/Readme.md b/cms/persistence/implementation/sqlite/tests/Readme.md similarity index 100% rename from persistence/implementation/sqlite/tests/Readme.md rename to cms/persistence/implementation/sqlite/tests/Readme.md diff --git a/persistence/implementation/sqlite/tests/application.e b/cms/persistence/implementation/sqlite/tests/application.e similarity index 100% rename from persistence/implementation/sqlite/tests/application.e rename to cms/persistence/implementation/sqlite/tests/application.e diff --git a/persistence/implementation/sqlite/tests/cms_lite.db b/cms/persistence/implementation/sqlite/tests/cms_lite.db similarity index 100% rename from persistence/implementation/sqlite/tests/cms_lite.db rename to cms/persistence/implementation/sqlite/tests/cms_lite.db diff --git a/persistence/implementation/sqlite/tests/nodes/node_test_set.e b/cms/persistence/implementation/sqlite/tests/nodes/node_test_set.e similarity index 100% rename from persistence/implementation/sqlite/tests/nodes/node_test_set.e rename to cms/persistence/implementation/sqlite/tests/nodes/node_test_set.e diff --git a/persistence/implementation/sqlite/tests/storage/storage_test_set.e b/cms/persistence/implementation/sqlite/tests/storage/storage_test_set.e similarity index 100% rename from persistence/implementation/sqlite/tests/storage/storage_test_set.e rename to cms/persistence/implementation/sqlite/tests/storage/storage_test_set.e diff --git a/persistence/implementation/sqlite/tests/tests-safe.ecf b/cms/persistence/implementation/sqlite/tests/tests-safe.ecf similarity index 100% rename from persistence/implementation/sqlite/tests/tests-safe.ecf rename to cms/persistence/implementation/sqlite/tests/tests-safe.ecf diff --git a/persistence/implementation/sqlite/tests/users/user_test_set.e b/cms/persistence/implementation/sqlite/tests/users/user_test_set.e similarity index 100% rename from persistence/implementation/sqlite/tests/users/user_test_set.e rename to cms/persistence/implementation/sqlite/tests/users/user_test_set.e diff --git a/persistence/implementation/sqlite/tests/util/abstract_db_test.e b/cms/persistence/implementation/sqlite/tests/util/abstract_db_test.e similarity index 100% rename from persistence/implementation/sqlite/tests/util/abstract_db_test.e rename to cms/persistence/implementation/sqlite/tests/util/abstract_db_test.e diff --git a/persistence/implementation/sqlite/tests/util/clean_db.e b/cms/persistence/implementation/sqlite/tests/util/clean_db.e similarity index 100% rename from persistence/implementation/sqlite/tests/util/clean_db.e rename to cms/persistence/implementation/sqlite/tests/util/clean_db.e diff --git a/persistence/interface/cms_storage.e b/cms/persistence/interface/cms_storage.e similarity index 100% rename from persistence/interface/cms_storage.e rename to cms/persistence/interface/cms_storage.e diff --git a/cms/src/hooks/cms_hook_auto_register.e b/cms/src/hooks/cms_hook_auto_register.e index d960b6d..46deebe 100644 --- a/cms/src/hooks/cms_hook_auto_register.e +++ b/cms/src/hooks/cms_hook_auto_register.e @@ -19,13 +19,19 @@ feature -- Hook hook_auto_register (a_response: CMS_RESPONSE) do if attached {CMS_HOOK_MENU_ALTER} Current as h_menu_alter then - a_response.add_menu_alter_hook (h_menu_alter) + debug ("refactor_fixme") + -- Fixme: CMS_RESPONSE.add_menu_alter_hook : a_response.add_menu_alter_hook (h_menu_alter) + end end if attached {CMS_HOOK_BLOCK} Current as h_block then - a_response.add_block_hook (h_block) + debug ("refactor_fixme") + -- Fixme: CMS_RESPONSE.add_block_hook a_response.add_block_hook (h_block) + end end if attached {CMS_HOOK_FORM_ALTER} Current as h_block then - a_response.add_form_alter_hook (h_block) + debug ("refactor_fixme") + -- CMS_RESPONSE.add_form_alter_hook a_response.add_form_alter_hook (h_block) + end end end diff --git a/cms/src/modules/basic_auth/basic_auth_module.e b/cms/src/modules/basic_auth/basic_auth_module.e index 555d2cb..b17d608 100644 --- a/cms/src/modules/basic_auth/basic_auth_module.e +++ b/cms/src/modules/basic_auth/basic_auth_module.e @@ -1,5 +1,5 @@ note - description: "Summary description for {BASIC_AUTH_MODULE}." + description: "This module allows the use of HTTP Basic Authentication to restrict access by looking up users in the given providers." date: "$Date$" revision: "$Revision$" diff --git a/cms/src/modules/basic_auth/filter/basic_auth_filter.e b/cms/src/modules/basic_auth/filter/basic_auth_filter.e index 31ddb21..a96379a 100644 --- a/cms/src/modules/basic_auth/filter/basic_auth_filter.e +++ b/cms/src/modules/basic_auth/filter/basic_auth_filter.e @@ -1,6 +1,5 @@ note - description: "Summary description for {BASIC_AUTH_FILTER}." - author: "" + description: "Processes a HTTP request's BASIC authorization headers, putting the result into the execution variable user." date: "$Date$" revision: "$Revision$" @@ -19,7 +18,7 @@ create feature -- Basic operations execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute the filter + -- Execute the filter. local l_auth: HTTP_AUTHORIZATION do @@ -33,10 +32,17 @@ feature -- Basic operations attached l_auth.login as l_auth_login and then attached l_auth.password as l_auth_password then if api.is_valid_credential (l_auth_login, l_auth_password) then if attached api.user_by_name (l_auth_login) as l_user then + debug ("refactor_fixme") + fixme ("Maybe we need to store in the credentials in a shared context SECURITY_CONTEXT") + -- req.set_execution_variable ("security_content", create SECURITY_CONTEXT.make (l_user)) + -- other authentication filters (OpenID, etc) should implement the same approach. + end req.set_execution_variable ("user", l_user) execute_next (req, res) else - -- Internal server error + debug ("refactor_fixme") + to_implement ("Internal server error") + end end else log.write_error (generator + ".execute login_valid failed for: " + l_auth_login ) diff --git a/cms/src/modules/cms_module.e b/cms/src/modules/cms_module.e index ce0a9a2..88e2141 100644 --- a/cms/src/modules/cms_module.e +++ b/cms/src/modules/cms_module.e @@ -1,22 +1,31 @@ note - description: "Summary description for {WSF_CMS_MODULE}." + description: "Describe module features that adds one or more features to your web site." date: "$Date$" revision: "$Revision$" deferred class CMS_MODULE +inherit + + REFACTORING_HELPER + feature -- Access is_enabled: BOOLEAN + -- Is the module enabled? name: STRING + -- Name of the module. description: STRING + -- Description of the module. package: STRING + -- version: STRING + -- Version od the module? feature -- Router @@ -48,21 +57,29 @@ feature -- Filter feature -- Settings enable + -- enable the module. do is_enabled := True + ensure + module_enabled: is_enabled end disable + -- disable the module. do is_enabled := False + ensure + module_disbaled: not is_enabled end feature -- Hooks help_text (a_path: STRING): STRING do + debug ("refactor_fixme") + to_implement ("Add the corresponing implementation.") + end create Result.make_empty end - end diff --git a/examples/api/Readme.txt b/examples/api/Readme.txt deleted file mode 100644 index 08f1c7f..0000000 --- a/examples/api/Readme.txt +++ /dev/null @@ -1,49 +0,0 @@ -CMS Hypermedia API and Adaptive Web Design -============================================ - - -A content management system is not a simple domain. -This example shows how to build a basic Hypermedia API for a CMS using HTML5 and progressive enhacement. -The idea is based on an existing [Eiffel CMS] (https://github.com/EiffelWebFramework/cms), the goal is learn the domain and create a new modular CMS. - -Persistence -============ -The current solution uses MySQL and only handle users and nodes concept. - - -Authentication/Authorization -============================ -Basic Auth. - - -API features -============ - -There is no session. - -The root uri: - shows Navigation and the possiblity to add a New Node (only for loggedin users). - shows a predefined number of nodes the `n' most recent nodes. - -Guest users will be able to list all the nodes and view a particular node. -Logged in users. -Logged users are able to -Add a new node -Edit an existing node -Edit a node title -Edit a node summary -Edit a node content -Delete a node - - -Server Modes -============ - -api: HTML5 API -html: api with progresive enhacements css and js, server side rendering. -web: api with progresive enhacements css and js and Ajax calls. - -References - -1: http://codeartisan.blogspot.se/2012/07/using-html-as-media-type-for-your-api.html -2: https://github.com/gustafnk/combining-html-hypermedia-apis-and-adaptive-web-design \ No newline at end of file diff --git a/examples/api/launcher/any/application_launcher.e b/examples/api/launcher/any/application_launcher.e deleted file mode 100644 index 6146937..0000000 --- a/examples/api/launcher/any/application_launcher.e +++ /dev/null @@ -1,24 +0,0 @@ -note - description: "[ - Effective class for APPLICATION_LAUNCHER_I - - You can put modification in this class - ]" - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -class - APPLICATION_LAUNCHER - -inherit - APPLICATION_LAUNCHER_I - -feature -- Custom - - is_console_output_supported: BOOLEAN - do - Result := False - end - -end - diff --git a/examples/api/launcher/any/application_launcher_i.e b/examples/api/launcher/any/application_launcher_i.e deleted file mode 100644 index 82f65af..0000000 --- a/examples/api/launcher/any/application_launcher_i.e +++ /dev/null @@ -1,102 +0,0 @@ -note - description: "[ - Specific application launcher - - DO NOT EDIT THIS CLASS - - you can customize APPLICATION_LAUNCHER - ]" - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -deferred class - APPLICATION_LAUNCHER_I - -inherit - - SHARED_EXECUTION_ENVIRONMENT - -feature -- Execution - - launch (a_service: WSF_SERVICE; opts: detachable WSF_SERVICE_LAUNCHER_OPTIONS) - local --- nature: like launcher_nature - do --- nature := launcher_nature --- if nature = Void or else nature = nature_nino then --- launch_nino (a_service, opts) --- elseif nature = nature_cgi then --- launch_cgi (a_service, opts) --- elseif nature = nature_libfcgi then - launch_libfcgi (a_service, opts) --- else --- -- bye bye --- (create {EXCEPTIONS}).die (-1) --- end - end - -feature {NONE} -- Access - - launcher_nature: detachable READABLE_STRING_8 - -- Initialize the launcher nature - -- either cgi, libfcgi, or nino. - --| We could extend with more connector if needed. - --| and we could use WSF_DEFAULT_SERVICE_LAUNCHER to configure this at compilation time. - local - p: PATH - ext: detachable READABLE_STRING_32 - do - create p.make_from_string (execution_environment.arguments.command_name) - if attached p.entry as l_entry then - ext := l_entry.extension - end - if ext /= Void then - if ext.same_string (nature_nino) then - Result := nature_nino - end - if ext.same_string (nature_cgi) then - Result := nature_cgi - end - if ext.same_string (nature_libfcgi) or else ext.same_string ("fcgi") then - Result := nature_libfcgi - end - end - end - -feature {NONE} -- nino - - nature_nino: STRING = "nino" - - launch_nino (a_service: WSF_SERVICE; opts: detachable WSF_SERVICE_LAUNCHER_OPTIONS) - local - launcher: WSF_NINO_SERVICE_LAUNCHER - do - create launcher.make_and_launch (a_service, opts) - end - -feature {NONE} -- cgi - - nature_cgi: STRING = "cgi" - - launch_cgi (a_service: WSF_SERVICE; opts: detachable WSF_SERVICE_LAUNCHER_OPTIONS) - local - launcher: WSF_CGI_SERVICE_LAUNCHER - do - create launcher.make_and_launch (a_service, opts) - end - -feature {NONE} -- libfcgi - - nature_libfcgi: STRING = "libfcgi" - - launch_libfcgi (a_service: WSF_SERVICE; opts: detachable WSF_SERVICE_LAUNCHER_OPTIONS) - local - launcher: WSF_LIBFCGI_SERVICE_LAUNCHER - do - create launcher.make_and_launch (a_service, opts) - end - - -end - - diff --git a/examples/api/launcher/default/application_launcher.e b/examples/api/launcher/default/application_launcher.e deleted file mode 100644 index 9e8dd6b..0000000 --- a/examples/api/launcher/default/application_launcher.e +++ /dev/null @@ -1,54 +0,0 @@ -note - description: "[ - Effective class for APPLICATION_LAUNCHER_I - - You can put modification in this class - ]" - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -class - APPLICATION_LAUNCHER - -inherit - APPLICATION_LAUNCHER_I - - SHARED_EXECUTION_ENVIRONMENT - - -feature -- Status Report - - is_console_output_supported: BOOLEAN - do - Result := launcher_nature = nature_nino - end - - feature {NONE} -- Initialization - - launcher_nature: detachable READABLE_STRING_8 - -- Initialize the launcher nature - -- either cgi, libfcgi, or nino. - --| We could extend with more connector if needed. - --| and we could use WSF_DEFAULT_SERVICE_LAUNCHER to configure this at compilation time. - local - p: PATH - ext: detachable READABLE_STRING_32 - do - create p.make_from_string (execution_environment.arguments.command_name) - if attached p.entry as l_entry then - ext := l_entry.extension - end - if ext /= Void then - if ext.same_string (nature_nino) then - Result := nature_nino - end - end - end - -feature {NONE} -- nino - - nature_nino: STRING = "nino" - - -end - diff --git a/examples/api/launcher/default/application_launcher_i.e b/examples/api/launcher/default/application_launcher_i.e deleted file mode 100644 index 4d0cb05..0000000 --- a/examples/api/launcher/default/application_launcher_i.e +++ /dev/null @@ -1,26 +0,0 @@ -note - description: "[ - Specific application launcher - - DO NOT EDIT THIS CLASS - - you can customize APPLICATION_LAUNCHER - ]" - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -deferred class - APPLICATION_LAUNCHER_I - -feature -- Execution - - launch (a_service: WSF_SERVICE; opts: detachable WSF_SERVICE_LAUNCHER_OPTIONS) - local - launcher: WSF_SERVICE_LAUNCHER - do - create {WSF_DEFAULT_SERVICE_LAUNCHER} launcher.make_and_launch (a_service, opts) - end - -end - - diff --git a/examples/api/roc.ini b/examples/api/roc.ini deleted file mode 100644 index 17eb967..0000000 --- a/examples/api/roc.ini +++ /dev/null @@ -1,2 +0,0 @@ -port=8088 -#verbose=true \ No newline at end of file diff --git a/examples/api/roc_api.ecf b/examples/api/roc_api.ecf deleted file mode 100644 index 02794df..0000000 --- a/examples/api/roc_api.ecf +++ /dev/null @@ -1,83 +0,0 @@ - - - - - /EIFGENs$ - /CVS$ - /.svn$ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/api/site/config/application_configuration.json b/examples/api/site/config/application_configuration.json deleted file mode 100644 index 793f8ef..0000000 --- a/examples/api/site/config/application_configuration.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "database": { - "datasource": { - "driver": "MySQL", - "environment": "development" - }, - "environments": { - "test": { - "connection_string":"Server=localhost;Port=3306;Database=cms_dev;Uid=root;Pwd=;" - }, - "development": { - "connection_string":"Server=localhost;Port=3306;Database=cms_dev;Uid=root;Pwd=;" - }, - "production": { - "connection_string":"" - } - } - }, - "smtp": { - "server": "localhost" - }, - "logger": { - "level":"debug", - "backup_count":"4" - }, - "server": { - "mode":"html" - } - -} - - \ No newline at end of file diff --git a/examples/api/site/www/static/css/bootstrap.css b/examples/api/site/www/static/css/bootstrap.css deleted file mode 100644 index dede210..0000000 --- a/examples/api/site/www/static/css/bootstrap.css +++ /dev/null @@ -1,5849 +0,0 @@ -/*! - * Bootstrap v3.1.0 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -/*! normalize.css v3.0.0 | MIT License | git.io/normalize */ -html { - font-family: sans-serif; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - margin: .67em 0; - font-size: 2em; -} -mark { - color: #000; - background: #ff0; -} -small { - font-size: 80%; -} -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} -sup { - top: -.5em; -} -sub { - bottom: -.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - height: 0; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - margin: 0; - font: inherit; - color: inherit; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - padding: .35em .625em .75em; - margin: 0 2px; - border: 1px solid #c0c0c0; -} -legend { - padding: 0; - border: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-spacing: 0; - border-collapse: collapse; -} -td, -th { - padding: 0; -} -@media print { - * { - color: #000 !important; - text-shadow: none !important; - background: transparent !important; - box-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - a[href^="javascript:"]:after, - a[href^="#"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - select { - background: #fff !important; - } - .navbar { - display: none; - } - .table td, - .table th { - background-color: #fff !important; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 62.5%; - - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.428571429; - color: #333; - background-color: #fff; -} -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -a { - color: #428bca; - text-decoration: none; -} -a:hover, -a:focus { - color: #2a6496; - text-decoration: underline; -} -a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -figure { - margin: 0; -} -img { - vertical-align: middle; -} -.img-responsive { - display: block; - max-width: 100%; - height: auto; -} -.img-rounded { - border-radius: 6px; -} -.img-thumbnail { - display: inline-block; - max-width: 100%; - height: auto; - padding: 4px; - line-height: 1.428571429; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.img-circle { - border-radius: 50%; -} -hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eee; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #999; -} -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 20px; - margin-bottom: 10px; -} -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 10px; - margin-bottom: 10px; -} -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} -h1, -.h1 { - font-size: 36px; -} -h2, -.h2 { - font-size: 30px; -} -h3, -.h3 { - font-size: 24px; -} -h4, -.h4 { - font-size: 18px; -} -h5, -.h5 { - font-size: 14px; -} -h6, -.h6 { - font-size: 12px; -} -p { - margin: 0 0 10px; -} -.lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 200; - line-height: 1.4; -} -@media (min-width: 768px) { - .lead { - font-size: 21px; - } -} -small, -.small { - font-size: 85%; -} -cite { - font-style: normal; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.text-center { - text-align: center; -} -.text-justify { - text-align: justify; -} -.text-muted { - color: #999; -} -.text-primary { - color: #428bca; -} -a.text-primary:hover { - color: #3071a9; -} -.text-success { - color: #3c763d; -} -a.text-success:hover { - color: #2b542c; -} -.text-info { - color: #31708f; -} -a.text-info:hover { - color: #245269; -} -.text-warning { - color: #8a6d3b; -} -a.text-warning:hover { - color: #66512c; -} -.text-danger { - color: #a94442; -} -a.text-danger:hover { - color: #843534; -} -.bg-primary { - color: #fff; - background-color: #428bca; -} -a.bg-primary:hover { - background-color: #3071a9; -} -.bg-success { - background-color: #dff0d8; -} -a.bg-success:hover { - background-color: #c1e2b3; -} -.bg-info { - background-color: #d9edf7; -} -a.bg-info:hover { - background-color: #afd9ee; -} -.bg-warning { - background-color: #fcf8e3; -} -a.bg-warning:hover { - background-color: #f7ecb5; -} -.bg-danger { - background-color: #f2dede; -} -a.bg-danger:hover { - background-color: #e4b9b9; -} -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eee; -} -ul, -ol { - margin-top: 0; - margin-bottom: 10px; -} -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} -.list-unstyled { - padding-left: 0; - list-style: none; -} -.list-inline { - padding-left: 0; - list-style: none; -} -.list-inline > li { - display: inline-block; - padding-right: 5px; - padding-left: 5px; -} -.list-inline > li:first-child { - padding-left: 0; -} -dl { - margin-top: 0; - margin-bottom: 20px; -} -dt, -dd { - line-height: 1.428571429; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #999; -} -.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #eee; -} -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.428571429; - color: #999; -} -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - text-align: right; - border-right: 5px solid #eee; - border-left: 0; -} -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} -blockquote:before, -blockquote:after { - content: ""; -} -address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.428571429; -} -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; -} -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - white-space: nowrap; - background-color: #f9f2f4; - border-radius: 4px; -} -kbd { - padding: 2px 4px; - font-size: 90%; - color: #fff; - background-color: #333; - border-radius: 3px; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); -} -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.428571429; - color: #333; - word-break: break-all; - word-wrap: break-word; - background-color: #f5f5f5; - border: 1px solid #ccc; - border-radius: 4px; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.container { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -@media (min-width: 768px) { - .container { - width: 750px; - } -} -@media (min-width: 992px) { - .container { - width: 970px; - } -} -@media (min-width: 1200px) { - .container { - width: 1170px; - } -} -.container-fluid { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -.row { - margin-right: -15px; - margin-left: -15px; -} -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-right: 15px; - padding-left: 15px; -} -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; -} -.col-xs-12 { - min-width: 100%; -} -.col-xs-11 { - min-width: 91.66666666666666%; -} -.col-xs-10 { - min-width: 83.33333333333334%; -} -.col-xs-9 { - min-width: 75%; -} -.col-xs-8 { - min-width: 66.66666666666666%; -} -.col-xs-7 { - min-width: 58.333333333333336%; -} -.col-xs-6 { - min-width: 50%; -} -.col-xs-5 { - min-width: 41.66666666666667%; -} -.col-xs-4 { - min-width: 33.33333333333333%; -} -.col-xs-3 { - min-width: 25%; -} -.col-xs-2 { - min-width: 16.666666666666664%; -} -.col-xs-1 { - min-width: 8.333333333333332%; -} -.col-xs-pull-12 { - right: 100%; -} -.col-xs-pull-11 { - right: 91.66666666666666%; -} -.col-xs-pull-10 { - right: 83.33333333333334%; -} -.col-xs-pull-9 { - right: 75%; -} -.col-xs-pull-8 { - right: 66.66666666666666%; -} -.col-xs-pull-7 { - right: 58.333333333333336%; -} -.col-xs-pull-6 { - right: 50%; -} -.col-xs-pull-5 { - right: 41.66666666666667%; -} -.col-xs-pull-4 { - right: 33.33333333333333%; -} -.col-xs-pull-3 { - right: 25%; -} -.col-xs-pull-2 { - right: 16.666666666666664%; -} -.col-xs-pull-1 { - right: 8.333333333333332%; -} -.col-xs-pull-0 { - right: 0; -} -.col-xs-push-12 { - left: 100%; -} -.col-xs-push-11 { - left: 91.66666666666666%; -} -.col-xs-push-10 { - left: 83.33333333333334%; -} -.col-xs-push-9 { - left: 75%; -} -.col-xs-push-8 { - left: 66.66666666666666%; -} -.col-xs-push-7 { - left: 58.333333333333336%; -} -.col-xs-push-6 { - left: 50%; -} -.col-xs-push-5 { - left: 41.66666666666667%; -} -.col-xs-push-4 { - left: 33.33333333333333%; -} -.col-xs-push-3 { - left: 25%; -} -.col-xs-push-2 { - left: 16.666666666666664%; -} -.col-xs-push-1 { - left: 8.333333333333332%; -} -.col-xs-push-0 { - left: 0; -} -.col-xs-offset-12 { - margin-left: 100%; -} -.col-xs-offset-11 { - margin-left: 91.66666666666666%; -} -.col-xs-offset-10 { - margin-left: 83.33333333333334%; -} -.col-xs-offset-9 { - margin-left: 75%; -} -.col-xs-offset-8 { - margin-left: 66.66666666666666%; -} -.col-xs-offset-7 { - margin-left: 58.333333333333336%; -} -.col-xs-offset-6 { - margin-left: 50%; -} -.col-xs-offset-5 { - margin-left: 41.66666666666667%; -} -.col-xs-offset-4 { - margin-left: 33.33333333333333%; -} -.col-xs-offset-3 { - margin-left: 25%; -} -.col-xs-offset-2 { - margin-left: 16.666666666666664%; -} -.col-xs-offset-1 { - margin-left: 8.333333333333332%; -} -.col-xs-offset-0 { - margin-left: 0; -} -@media (min-width: 768px) { - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - float: left; - } - .col-sm-12 { - min-width: 100%; - } - .col-sm-11 { - min-width: 91.66666666666666%; - } - .col-sm-10 { - min-width: 83.33333333333334%; - } - .col-sm-9 { - min-width: 75%; - } - .col-sm-8 { - min-width: 66.66666666666666%; - } - .col-sm-7 { - min-width: 58.333333333333336%; - } - .col-sm-6 { - min-width: 50%; - } - .col-sm-5 { - min-width: 41.66666666666667%; - } - .col-sm-4 { - min-width: 33.33333333333333%; - } - .col-sm-3 { - min-width: 25%; - } - .col-sm-2 { - min-width: 16.666666666666664%; - } - .col-sm-1 { - min-width: 8.333333333333332%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666666666666%; - } - .col-sm-pull-10 { - right: 83.33333333333334%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666666666666%; - } - .col-sm-pull-7 { - right: 58.333333333333336%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666666666667%; - } - .col-sm-pull-4 { - right: 33.33333333333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.666666666666664%; - } - .col-sm-pull-1 { - right: 8.333333333333332%; - } - .col-sm-pull-0 { - right: 0; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666666666666%; - } - .col-sm-push-10 { - left: 83.33333333333334%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666666666666%; - } - .col-sm-push-7 { - left: 58.333333333333336%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666666666667%; - } - .col-sm-push-4 { - left: 33.33333333333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.666666666666664%; - } - .col-sm-push-1 { - left: 8.333333333333332%; - } - .col-sm-push-0 { - left: 0; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666666666666%; - } - .col-sm-offset-10 { - margin-left: 83.33333333333334%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666666666666%; - } - .col-sm-offset-7 { - margin-left: 58.333333333333336%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666666666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.666666666666664%; - } - .col-sm-offset-1 { - margin-left: 8.333333333333332%; - } - .col-sm-offset-0 { - margin-left: 0; - } -} -@media (min-width: 992px) { - .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { - float: left; - } - .col-md-12 { - min-width: 100%; - } - .col-md-11 { - min-width: 91.66666666666666%; - } - .col-md-10 { - min-width: 83.33333333333334%; - } - .col-md-9 { - min-width: 75%; - } - .col-md-8 { - min-width: 66.66666666666666%; - } - .col-md-7 { - min-width: 58.333333333333336%; - } - .col-md-6 { - min-width: 50%; - } - .col-md-5 { - min-width: 41.66666666666667%; - } - .col-md-4 { - min-width: 33.33333333333333%; - } - .col-md-3 { - min-width: 25%; - } - .col-md-2 { - min-width: 16.666666666666664%; - } - .col-md-1 { - min-width: 8.333333333333332%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666666666666%; - } - .col-md-pull-10 { - right: 83.33333333333334%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666666666666%; - } - .col-md-pull-7 { - right: 58.333333333333336%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666666666667%; - } - .col-md-pull-4 { - right: 33.33333333333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.666666666666664%; - } - .col-md-pull-1 { - right: 8.333333333333332%; - } - .col-md-pull-0 { - right: 0; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666666666666%; - } - .col-md-push-10 { - left: 83.33333333333334%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666666666666%; - } - .col-md-push-7 { - left: 58.333333333333336%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666666666667%; - } - .col-md-push-4 { - left: 33.33333333333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.666666666666664%; - } - .col-md-push-1 { - left: 8.333333333333332%; - } - .col-md-push-0 { - left: 0; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666666666666%; - } - .col-md-offset-10 { - margin-left: 83.33333333333334%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666666666666%; - } - .col-md-offset-7 { - margin-left: 58.333333333333336%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666666666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.666666666666664%; - } - .col-md-offset-1 { - margin-left: 8.333333333333332%; - } - .col-md-offset-0 { - margin-left: 0; - } -} -@media (min-width: 1200px) { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { - float: left; - } - .col-lg-12 { - min-width: 100%; - } - .col-lg-11 { - min-width: 91.66666666666666%; - } - .col-lg-10 { - min-width: 83.33333333333334%; - } - .col-lg-9 { - min-width: 75%; - } - .col-lg-8 { - min-width: 66.66666666666666%; - } - .col-lg-7 { - min-width: 58.333333333333336%; - } - .col-lg-6 { - min-width: 50%; - } - .col-lg-5 { - min-width: 41.66666666666667%; - } - .col-lg-4 { - min-width: 33.33333333333333%; - } - .col-lg-3 { - min-width: 25%; - } - .col-lg-2 { - min-width: 16.666666666666664%; - } - .col-lg-1 { - min-width: 8.333333333333332%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666666666666%; - } - .col-lg-pull-10 { - right: 83.33333333333334%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666666666666%; - } - .col-lg-pull-7 { - right: 58.333333333333336%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666666666667%; - } - .col-lg-pull-4 { - right: 33.33333333333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.666666666666664%; - } - .col-lg-pull-1 { - right: 8.333333333333332%; - } - .col-lg-pull-0 { - right: 0; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666666666666%; - } - .col-lg-push-10 { - left: 83.33333333333334%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666666666666%; - } - .col-lg-push-7 { - left: 58.333333333333336%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666666666667%; - } - .col-lg-push-4 { - left: 33.33333333333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.666666666666664%; - } - .col-lg-push-1 { - left: 8.333333333333332%; - } - .col-lg-push-0 { - left: 0; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666666666666%; - } - .col-lg-offset-10 { - margin-left: 83.33333333333334%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666666666666%; - } - .col-lg-offset-7 { - margin-left: 58.333333333333336%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666666666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.666666666666664%; - } - .col-lg-offset-1 { - margin-left: 8.333333333333332%; - } - .col-lg-offset-0 { - margin-left: 0; - } -} -table { - max-width: 100%; - background-color: transparent; -} -th { - text-align: left; -} -.table { - width: 100%; - margin-bottom: 20px; -} -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.428571429; - vertical-align: top; - border-top: 1px solid #ddd; -} -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #ddd; -} -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.table > tbody + tbody { - border-top: 2px solid #ddd; -} -.table .table { - background-color: #fff; -} -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} -.table-bordered { - border: 1px solid #ddd; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #ddd; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table-striped > tbody > tr:nth-child(odd) > td, -.table-striped > tbody > tr:nth-child(odd) > th { - background-color: #f9f9f9; -} -.table-hover > tbody > tr:hover > td, -.table-hover > tbody > tr:hover > th { - background-color: #f5f5f5; -} -table col[class*="col-"] { - position: static; - display: table-column; - float: none; -} -table td[class*="col-"], -table th[class*="col-"] { - position: static; - display: table-cell; - float: none; -} -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; -} -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; -} -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #dff0d8; -} -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; -} -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #d9edf7; -} -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; -} -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; -} -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #f2dede; -} -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; -} -@media (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-x: scroll; - overflow-y: hidden; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #ddd; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} -label { - display: inline-block; - margin-bottom: 5px; - font-weight: bold; -} -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - /* IE8-9 */ - line-height: normal; -} -input[type="file"] { - display: block; -} -input[type="range"] { - display: block; - width: 100%; -} -select[multiple], -select[size] { - height: auto; -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.428571429; - color: #555; -} -.form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.428571429; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -.form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); -} -.form-control:-moz-placeholder { - color: #999; -} -.form-control::-moz-placeholder { - color: #999; - opacity: 1; -} -.form-control:-ms-input-placeholder { - color: #999; -} -.form-control::-webkit-input-placeholder { - color: #999; -} -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - cursor: not-allowed; - background-color: #eee; - opacity: 1; -} -textarea.form-control { - height: auto; -} -input[type="date"] { - line-height: 34px; -} -.form-group { - margin-bottom: 15px; -} -.radio, -.checkbox { - display: block; - min-height: 20px; - padding-left: 20px; - margin-top: 10px; - margin-bottom: 10px; -} -.radio label, -.checkbox label { - display: inline; - font-weight: normal; - cursor: pointer; -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - float: left; - margin-left: -20px; -} -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} -.radio-inline, -.checkbox-inline { - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - vertical-align: middle; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -.radio[disabled], -.radio-inline[disabled], -.checkbox[disabled], -.checkbox-inline[disabled], -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"], -fieldset[disabled] .radio, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-sm { - height: 30px; - line-height: 30px; -} -textarea.input-sm, -select[multiple].input-sm { - height: auto; -} -.input-lg { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -select.input-lg { - height: 46px; - line-height: 46px; -} -textarea.input-lg, -select[multiple].input-lg { - height: auto; -} -.has-feedback { - position: relative; -} -.has-feedback .form-control { - padding-right: 42.5px; -} -.has-feedback .form-control-feedback { - position: absolute; - top: 25px; - right: 0; - display: block; - width: 34px; - height: 34px; - line-height: 34px; - text-align: center; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline { - color: #3c763d; -} -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; -} -.has-success .input-group-addon { - color: #3c763d; - background-color: #dff0d8; - border-color: #3c763d; -} -.has-success .form-control-feedback { - color: #3c763d; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline { - color: #8a6d3b; -} -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; -} -.has-warning .input-group-addon { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #8a6d3b; -} -.has-warning .form-control-feedback { - color: #8a6d3b; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline { - color: #a94442; -} -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; -} -.has-error .input-group-addon { - color: #a94442; - background-color: #f2dede; - border-color: #a94442; -} -.has-error .form-control-feedback { - color: #a94442; -} -.form-control-static { - margin-bottom: 0; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #737373; -} -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - padding-left: 0; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} -.form-horizontal .control-label, -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - padding-top: 7px; - margin-top: 0; - margin-bottom: 0; -} -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 27px; -} -.form-horizontal .form-group { - margin-right: -15px; - margin-left: -15px; -} -.form-horizontal .form-control-static { - padding-top: 7px; -} -@media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - } -} -.form-horizontal .has-feedback .form-control-feedback { - top: 0; - right: 15px; -} -.btn { - display: inline-block; - padding: 6px 12px; - margin-bottom: 0; - font-size: 14px; - font-weight: normal; - line-height: 1.428571429; - text-align: center; - white-space: nowrap; - vertical-align: middle; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.btn:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn:hover, -.btn:focus { - color: #333; - text-decoration: none; -} -.btn:active, -.btn.active { - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); -} -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - pointer-events: none; - cursor: not-allowed; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; - opacity: .65; -} -.btn-default { - color: #333; - background-color: #fff; - border-color: #ccc; -} -.btn-default:hover, -.btn-default:focus, -.btn-default:active, -.btn-default.active, -.open .dropdown-toggle.btn-default { - color: #333; - background-color: #ebebeb; - border-color: #adadad; -} -.btn-default:active, -.btn-default.active, -.open .dropdown-toggle.btn-default { - background-image: none; -} -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - background-color: #fff; - border-color: #ccc; -} -.btn-default .badge { - color: #fff; - background-color: #333; -} -.btn-primary { - color: #fff; - background-color: #428bca; - border-color: #357ebd; -} -.btn-primary:hover, -.btn-primary:focus, -.btn-primary:active, -.btn-primary.active, -.open .dropdown-toggle.btn-primary { - color: #fff; - background-color: #3276b1; - border-color: #285e8e; -} -.btn-primary:active, -.btn-primary.active, -.open .dropdown-toggle.btn-primary { - background-image: none; -} -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - background-color: #428bca; - border-color: #357ebd; -} -.btn-primary .badge { - color: #428bca; - background-color: #fff; -} -.btn-success { - color: #fff; - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success:hover, -.btn-success:focus, -.btn-success:active, -.btn-success.active, -.open .dropdown-toggle.btn-success { - color: #fff; - background-color: #47a447; - border-color: #398439; -} -.btn-success:active, -.btn-success.active, -.open .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success .badge { - color: #5cb85c; - background-color: #fff; -} -.btn-info { - color: #fff; - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info:hover, -.btn-info:focus, -.btn-info:active, -.btn-info.active, -.open .dropdown-toggle.btn-info { - color: #fff; - background-color: #39b3d7; - border-color: #269abc; -} -.btn-info:active, -.btn-info.active, -.open .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info .badge { - color: #5bc0de; - background-color: #fff; -} -.btn-warning { - color: #fff; - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning:hover, -.btn-warning:focus, -.btn-warning:active, -.btn-warning.active, -.open .dropdown-toggle.btn-warning { - color: #fff; - background-color: #ed9c28; - border-color: #d58512; -} -.btn-warning:active, -.btn-warning.active, -.open .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning .badge { - color: #f0ad4e; - background-color: #fff; -} -.btn-danger { - color: #fff; - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger:hover, -.btn-danger:focus, -.btn-danger:active, -.btn-danger.active, -.open .dropdown-toggle.btn-danger { - color: #fff; - background-color: #d2322d; - border-color: #ac2925; -} -.btn-danger:active, -.btn-danger.active, -.open .dropdown-toggle.btn-danger { - background-image: none; -} -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger .badge { - color: #d9534f; - background-color: #fff; -} -.btn-link { - font-weight: normal; - color: #428bca; - cursor: pointer; - border-radius: 0; -} -.btn-link, -.btn-link:active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} -.btn-link:hover, -.btn-link:focus { - color: #2a6496; - text-decoration: underline; - background-color: transparent; -} -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #999; - text-decoration: none; -} -.btn-lg { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -.btn-sm { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-xs { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-block { - display: block; - width: 100%; - padding-right: 0; - padding-left: 0; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} -.fade { - opacity: 0; - -webkit-transition: opacity .15s linear; - transition: opacity .15s linear; -} -.fade.in { - opacity: 1; -} -.collapse { - display: none; -} -.collapse.in { - display: block; -} -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition: height .35s ease; - transition: height .35s ease; -} -@font-face { - font-family: 'Glyphicons Halflings'; - - src: url('../fonts/glyphicons-halflings-regular.eot'); - src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.glyphicon-asterisk:before { - content: "\2a"; -} -.glyphicon-plus:before { - content: "\2b"; -} -.glyphicon-euro:before { - content: "\20ac"; -} -.glyphicon-minus:before { - content: "\2212"; -} -.glyphicon-cloud:before { - content: "\2601"; -} -.glyphicon-envelope:before { - content: "\2709"; -} -.glyphicon-pencil:before { - content: "\270f"; -} -.glyphicon-glass:before { - content: "\e001"; -} -.glyphicon-music:before { - content: "\e002"; -} -.glyphicon-search:before { - content: "\e003"; -} -.glyphicon-heart:before { - content: "\e005"; -} -.glyphicon-star:before { - content: "\e006"; -} -.glyphicon-star-empty:before { - content: "\e007"; -} -.glyphicon-user:before { - content: "\e008"; -} -.glyphicon-film:before { - content: "\e009"; -} -.glyphicon-th-large:before { - content: "\e010"; -} -.glyphicon-th:before { - content: "\e011"; -} -.glyphicon-th-list:before { - content: "\e012"; -} -.glyphicon-ok:before { - content: "\e013"; -} -.glyphicon-remove:before { - content: "\e014"; -} -.glyphicon-zoom-in:before { - content: "\e015"; -} -.glyphicon-zoom-out:before { - content: "\e016"; -} -.glyphicon-off:before { - content: "\e017"; -} -.glyphicon-signal:before { - content: "\e018"; -} -.glyphicon-cog:before { - content: "\e019"; -} -.glyphicon-trash:before { - content: "\e020"; -} -.glyphicon-home:before { - content: "\e021"; -} -.glyphicon-file:before { - content: "\e022"; -} -.glyphicon-time:before { - content: "\e023"; -} -.glyphicon-road:before { - content: "\e024"; -} -.glyphicon-download-alt:before { - content: "\e025"; -} -.glyphicon-download:before { - content: "\e026"; -} -.glyphicon-upload:before { - content: "\e027"; -} -.glyphicon-inbox:before { - content: "\e028"; -} -.glyphicon-play-circle:before { - content: "\e029"; -} -.glyphicon-repeat:before { - content: "\e030"; -} -.glyphicon-refresh:before { - content: "\e031"; -} -.glyphicon-list-alt:before { - content: "\e032"; -} -.glyphicon-lock:before { - content: "\e033"; -} -.glyphicon-flag:before { - content: "\e034"; -} -.glyphicon-headphones:before { - content: "\e035"; -} -.glyphicon-volume-off:before { - content: "\e036"; -} -.glyphicon-volume-down:before { - content: "\e037"; -} -.glyphicon-volume-up:before { - content: "\e038"; -} -.glyphicon-qrcode:before { - content: "\e039"; -} -.glyphicon-barcode:before { - content: "\e040"; -} -.glyphicon-tag:before { - content: "\e041"; -} -.glyphicon-tags:before { - content: "\e042"; -} -.glyphicon-book:before { - content: "\e043"; -} -.glyphicon-bookmark:before { - content: "\e044"; -} -.glyphicon-print:before { - content: "\e045"; -} -.glyphicon-camera:before { - content: "\e046"; -} -.glyphicon-font:before { - content: "\e047"; -} -.glyphicon-bold:before { - content: "\e048"; -} -.glyphicon-italic:before { - content: "\e049"; -} -.glyphicon-text-height:before { - content: "\e050"; -} -.glyphicon-text-width:before { - content: "\e051"; -} -.glyphicon-align-left:before { - content: "\e052"; -} -.glyphicon-align-center:before { - content: "\e053"; -} -.glyphicon-align-right:before { - content: "\e054"; -} -.glyphicon-align-justify:before { - content: "\e055"; -} -.glyphicon-list:before { - content: "\e056"; -} -.glyphicon-indent-left:before { - content: "\e057"; -} -.glyphicon-indent-right:before { - content: "\e058"; -} -.glyphicon-facetime-video:before { - content: "\e059"; -} -.glyphicon-picture:before { - content: "\e060"; -} -.glyphicon-map-marker:before { - content: "\e062"; -} -.glyphicon-adjust:before { - content: "\e063"; -} -.glyphicon-tint:before { - content: "\e064"; -} -.glyphicon-edit:before { - content: "\e065"; -} -.glyphicon-share:before { - content: "\e066"; -} -.glyphicon-check:before { - content: "\e067"; -} -.glyphicon-move:before { - content: "\e068"; -} -.glyphicon-step-backward:before { - content: "\e069"; -} -.glyphicon-fast-backward:before { - content: "\e070"; -} -.glyphicon-backward:before { - content: "\e071"; -} -.glyphicon-play:before { - content: "\e072"; -} -.glyphicon-pause:before { - content: "\e073"; -} -.glyphicon-stop:before { - content: "\e074"; -} -.glyphicon-forward:before { - content: "\e075"; -} -.glyphicon-fast-forward:before { - content: "\e076"; -} -.glyphicon-step-forward:before { - content: "\e077"; -} -.glyphicon-eject:before { - content: "\e078"; -} -.glyphicon-chevron-left:before { - content: "\e079"; -} -.glyphicon-chevron-right:before { - content: "\e080"; -} -.glyphicon-plus-sign:before { - content: "\e081"; -} -.glyphicon-minus-sign:before { - content: "\e082"; -} -.glyphicon-remove-sign:before { - content: "\e083"; -} -.glyphicon-ok-sign:before { - content: "\e084"; -} -.glyphicon-question-sign:before { - content: "\e085"; -} -.glyphicon-info-sign:before { - content: "\e086"; -} -.glyphicon-screenshot:before { - content: "\e087"; -} -.glyphicon-remove-circle:before { - content: "\e088"; -} -.glyphicon-ok-circle:before { - content: "\e089"; -} -.glyphicon-ban-circle:before { - content: "\e090"; -} -.glyphicon-arrow-left:before { - content: "\e091"; -} -.glyphicon-arrow-right:before { - content: "\e092"; -} -.glyphicon-arrow-up:before { - content: "\e093"; -} -.glyphicon-arrow-down:before { - content: "\e094"; -} -.glyphicon-share-alt:before { - content: "\e095"; -} -.glyphicon-resize-full:before { - content: "\e096"; -} -.glyphicon-resize-small:before { - content: "\e097"; -} -.glyphicon-exclamation-sign:before { - content: "\e101"; -} -.glyphicon-gift:before { - content: "\e102"; -} -.glyphicon-leaf:before { - content: "\e103"; -} -.glyphicon-fire:before { - content: "\e104"; -} -.glyphicon-eye-open:before { - content: "\e105"; -} -.glyphicon-eye-close:before { - content: "\e106"; -} -.glyphicon-warning-sign:before { - content: "\e107"; -} -.glyphicon-plane:before { - content: "\e108"; -} -.glyphicon-calendar:before { - content: "\e109"; -} -.glyphicon-random:before { - content: "\e110"; -} -.glyphicon-comment:before { - content: "\e111"; -} -.glyphicon-magnet:before { - content: "\e112"; -} -.glyphicon-chevron-up:before { - content: "\e113"; -} -.glyphicon-chevron-down:before { - content: "\e114"; -} -.glyphicon-retweet:before { - content: "\e115"; -} -.glyphicon-shopping-cart:before { - content: "\e116"; -} -.glyphicon-folder-close:before { - content: "\e117"; -} -.glyphicon-folder-open:before { - content: "\e118"; -} -.glyphicon-resize-vertical:before { - content: "\e119"; -} -.glyphicon-resize-horizontal:before { - content: "\e120"; -} -.glyphicon-hdd:before { - content: "\e121"; -} -.glyphicon-bullhorn:before { - content: "\e122"; -} -.glyphicon-bell:before { - content: "\e123"; -} -.glyphicon-certificate:before { - content: "\e124"; -} -.glyphicon-thumbs-up:before { - content: "\e125"; -} -.glyphicon-thumbs-down:before { - content: "\e126"; -} -.glyphicon-hand-right:before { - content: "\e127"; -} -.glyphicon-hand-left:before { - content: "\e128"; -} -.glyphicon-hand-up:before { - content: "\e129"; -} -.glyphicon-hand-down:before { - content: "\e130"; -} -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} -.glyphicon-globe:before { - content: "\e135"; -} -.glyphicon-wrench:before { - content: "\e136"; -} -.glyphicon-tasks:before { - content: "\e137"; -} -.glyphicon-filter:before { - content: "\e138"; -} -.glyphicon-briefcase:before { - content: "\e139"; -} -.glyphicon-fullscreen:before { - content: "\e140"; -} -.glyphicon-dashboard:before { - content: "\e141"; -} -.glyphicon-paperclip:before { - content: "\e142"; -} -.glyphicon-heart-empty:before { - content: "\e143"; -} -.glyphicon-link:before { - content: "\e144"; -} -.glyphicon-phone:before { - content: "\e145"; -} -.glyphicon-pushpin:before { - content: "\e146"; -} -.glyphicon-usd:before { - content: "\e148"; -} -.glyphicon-gbp:before { - content: "\e149"; -} -.glyphicon-sort:before { - content: "\e150"; -} -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} -.glyphicon-sort-by-order:before { - content: "\e153"; -} -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} -.glyphicon-unchecked:before { - content: "\e157"; -} -.glyphicon-expand:before { - content: "\e158"; -} -.glyphicon-collapse-down:before { - content: "\e159"; -} -.glyphicon-collapse-up:before { - content: "\e160"; -} -.glyphicon-log-in:before { - content: "\e161"; -} -.glyphicon-flash:before { - content: "\e162"; -} -.glyphicon-log-out:before { - content: "\e163"; -} -.glyphicon-new-window:before { - content: "\e164"; -} -.glyphicon-record:before { - content: "\e165"; -} -.glyphicon-save:before { - content: "\e166"; -} -.glyphicon-open:before { - content: "\e167"; -} -.glyphicon-saved:before { - content: "\e168"; -} -.glyphicon-import:before { - content: "\e169"; -} -.glyphicon-export:before { - content: "\e170"; -} -.glyphicon-send:before { - content: "\e171"; -} -.glyphicon-floppy-disk:before { - content: "\e172"; -} -.glyphicon-floppy-saved:before { - content: "\e173"; -} -.glyphicon-floppy-remove:before { - content: "\e174"; -} -.glyphicon-floppy-save:before { - content: "\e175"; -} -.glyphicon-floppy-open:before { - content: "\e176"; -} -.glyphicon-credit-card:before { - content: "\e177"; -} -.glyphicon-transfer:before { - content: "\e178"; -} -.glyphicon-cutlery:before { - content: "\e179"; -} -.glyphicon-header:before { - content: "\e180"; -} -.glyphicon-compressed:before { - content: "\e181"; -} -.glyphicon-earphone:before { - content: "\e182"; -} -.glyphicon-phone-alt:before { - content: "\e183"; -} -.glyphicon-tower:before { - content: "\e184"; -} -.glyphicon-stats:before { - content: "\e185"; -} -.glyphicon-sd-video:before { - content: "\e186"; -} -.glyphicon-hd-video:before { - content: "\e187"; -} -.glyphicon-subtitles:before { - content: "\e188"; -} -.glyphicon-sound-stereo:before { - content: "\e189"; -} -.glyphicon-sound-dolby:before { - content: "\e190"; -} -.glyphicon-sound-5-1:before { - content: "\e191"; -} -.glyphicon-sound-6-1:before { - content: "\e192"; -} -.glyphicon-sound-7-1:before { - content: "\e193"; -} -.glyphicon-copyright-mark:before { - content: "\e194"; -} -.glyphicon-registration-mark:before { - content: "\e195"; -} -.glyphicon-cloud-download:before { - content: "\e197"; -} -.glyphicon-cloud-upload:before { - content: "\e198"; -} -.glyphicon-tree-conifer:before { - content: "\e199"; -} -.glyphicon-tree-deciduous:before { - content: "\e200"; -} -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px solid; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} -.dropdown { - position: relative; -} -.dropdown-toggle:focus { - outline: 0; -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - font-size: 14px; - list-style: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); - box-shadow: 0 6px 12px rgba(0, 0, 0, .175); -} -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.428571429; - color: #333; - white-space: nowrap; -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - color: #262626; - text-decoration: none; - background-color: #f5f5f5; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #fff; - text-decoration: none; - background-color: #428bca; - outline: 0; -} -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #999; -} -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - cursor: not-allowed; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.open > .dropdown-menu { - display: block; -} -.open > a { - outline: 0; -} -.dropdown-menu-right { - right: 0; - left: auto; -} -.dropdown-menu-left { - right: auto; - left: 0; -} -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.428571429; - color: #999; -} -.dropdown-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 990; -} -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - content: ""; - border-top: 0; - border-bottom: 4px solid; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - right: 0; - left: auto; - } - .navbar-right .dropdown-menu-left { - right: auto; - left: 0; - } -} -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus { - outline: none; -} -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} -.btn-toolbar { - margin-left: -5px; -} -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; -} -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; -} -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} -.btn-group > .btn:first-child { - margin-left: 0; -} -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child > .btn:last-child, -.btn-group > .btn-group:first-child > .dropdown-toggle { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.btn-group > .btn-group:last-child > .btn:first-child { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -.btn-group > .btn + .dropdown-toggle { - padding-right: 8px; - padding-left: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-right: 12px; - padding-left: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); -} -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn .caret { - margin-left: 0; -} -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} -.btn-group-vertical > .btn-group > .btn { - float: none; -} -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-left-radius: 4px; -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - display: table-cell; - float: none; - width: 1%; -} -.btn-group-justified > .btn-group .btn { - width: 100%; -} -[data-toggle="buttons"] > .btn > input[type="radio"], -[data-toggle="buttons"] > .btn > input[type="checkbox"] { - display: none; -} -.input-group { - position: relative; - display: table; - border-collapse: separate; -} -.input-group[class*="col-"] { - float: none; - padding-right: 0; - padding-left: 0; -} -.input-group .form-control { - float: left; - width: 100%; - margin-bottom: 0; -} -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 46px; - line-height: 46px; -} -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} -.input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #555; - text-align: center; - background-color: #eee; - border: 1px solid #ccc; - border-radius: 4px; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; -} -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 0; -} -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.input-group-addon:last-child { - border-left: 0; -} -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; -} -.input-group-btn > .btn { - position: relative; -} -.input-group-btn > .btn + .btn { - margin-left: -1px; -} -.input-group-btn > .btn:hover, -.input-group-btn > .btn:focus, -.input-group-btn > .btn:active { - z-index: 2; -} -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group { - margin-right: -1px; -} -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group { - margin-left: -1px; -} -.nav { - padding-left: 0; - margin-bottom: 0; - list-style: none; -} -.nav > li { - position: relative; - display: block; -} -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #eee; -} -.nav > li.disabled > a { - color: #999; -} -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #999; - text-decoration: none; - cursor: not-allowed; - background-color: transparent; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #eee; - border-color: #428bca; -} -.nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.nav > li > a > img { - max-width: none; -} -.nav-tabs { - border-bottom: 1px solid #ddd; -} -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.428571429; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; -} -.nav-tabs > li > a:hover { - border-color: #eee #eee #ddd; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #555; - cursor: default; - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: transparent; -} -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} -.nav-tabs.nav-justified > li { - float: none; -} -.nav-tabs.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.nav-pills > li { - float: left; -} -.nav-pills > li > a { - border-radius: 4px; -} -.nav-pills > li + li { - margin-left: 2px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #fff; - background-color: #428bca; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} -.nav-justified { - width: 100%; -} -.nav-justified > li { - float: none; -} -.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; -} -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs-justified { - border-bottom: 0; -} -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #ddd; -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #fff; - } -} -.tab-content > .tab-pane { - display: none; -} -.tab-content > .active { - display: block; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.navbar { - position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; -} -@media (min-width: 768px) { - .navbar { - border-radius: 4px; - } -} -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} -.navbar-collapse { - max-height: 340px; - padding-right: 15px; - padding-left: 15px; - overflow-x: visible; - -webkit-overflow-scrolling: touch; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); -} -.navbar-collapse.in { - overflow-y: auto; -} -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; - } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-right: 0; - padding-left: 0; - } -} -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} -.navbar-brand { - float: left; - height: 20px; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; -} -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} -@media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} -.navbar-toggle { - position: relative; - float: right; - padding: 9px 10px; - margin-top: 8px; - margin-right: 15px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.navbar-toggle:focus { - outline: none; -} -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; -} -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; -} -@media (min-width: 768px) { - .navbar-toggle { - display: none; - } -} -.navbar-nav { - margin: 7.5px -15px; -} -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; -} -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; - } - .navbar-nav.navbar-right:last-child { - margin-right: -15px; - } -} -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - } -} -.navbar-form { - padding: 10px 15px; - margin-top: 8px; - margin-right: -15px; - margin-bottom: 8px; - margin-left: -15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); -} -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - padding-left: 0; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } -} -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } -} -@media (min-width: 768px) { - .navbar-form { - width: auto; - padding-top: 0; - padding-bottom: 0; - margin-right: 0; - margin-left: 0; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-form.navbar-right:last-child { - margin-right: -15px; - } -} -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.navbar-btn { - margin-top: 8px; - margin-bottom: 8px; -} -.navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; -} -.navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; -} -.navbar-text { - margin-top: 15px; - margin-bottom: 15px; -} -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-right: 15px; - margin-left: 15px; - } - .navbar-text.navbar-right:last-child { - margin-right: 0; - } -} -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; -} -.navbar-default .navbar-brand { - color: #777; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; -} -.navbar-default .navbar-text { - color: #777; -} -.navbar-default .navbar-nav > li > a { - color: #777; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #333; - background-color: transparent; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555; - background-color: #e7e7e7; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #ccc; - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: #ddd; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #ddd; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #888; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - color: #555; - background-color: #e7e7e7; -} -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333; - background-color: transparent; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #555; - background-color: #e7e7e7; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #ccc; - background-color: transparent; - } -} -.navbar-default .navbar-link { - color: #777; -} -.navbar-default .navbar-link:hover { - color: #333; -} -.navbar-inverse { - background-color: #222; - border-color: #080808; -} -.navbar-inverse .navbar-brand { - color: #999; -} -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: #999; -} -.navbar-inverse .navbar-nav > li > a { - color: #999; -} -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: #fff; - background-color: transparent; -} -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #fff; - background-color: #080808; -} -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444; - background-color: transparent; -} -.navbar-inverse .navbar-toggle { - border-color: #333; -} -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #333; -} -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #fff; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #101010; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - color: #fff; - background-color: #080808; -} -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #999; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #fff; - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #fff; - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444; - background-color: transparent; - } -} -.navbar-inverse .navbar-link { - color: #999; -} -.navbar-inverse .navbar-link:hover { - color: #fff; -} -.breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - padding: 0 5px; - color: #ccc; - content: "/\00a0"; -} -.breadcrumb > .active { - color: #999; -} -.pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 4px; -} -.pagination > li { - display: inline; -} -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - margin-left: -1px; - line-height: 1.428571429; - color: #428bca; - text-decoration: none; - background-color: #fff; - border: 1px solid #ddd; -} -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - color: #2a6496; - background-color: #eee; - border-color: #ddd; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 2; - color: #fff; - cursor: default; - background-color: #428bca; - border-color: #428bca; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #999; - cursor: not-allowed; - background-color: #fff; - border-color: #ddd; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} -.pager { - padding-left: 0; - margin: 20px 0; - text-align: center; - list-style: none; -} -.pager li { - display: inline; -} -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 15px; -} -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #eee; -} -.pager .next > a, -.pager .next > span { - float: right; -} -.pager .previous > a, -.pager .previous > span { - float: left; -} -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #999; - cursor: not-allowed; - background-color: #fff; -} -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} -.label[href]:hover, -.label[href]:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} -.label:empty { - display: none; -} -.btn .label { - position: relative; - top: -1px; -} -.label-default { - background-color: #999; -} -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #808080; -} -.label-primary { - background-color: #428bca; -} -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #3071a9; -} -.label-success { - background-color: #5cb85c; -} -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #449d44; -} -.label-info { - background-color: #5bc0de; -} -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #31b0d5; -} -.label-warning { - background-color: #f0ad4e; -} -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #ec971f; -} -.label-danger { - background-color: #d9534f; -} -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; -} -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - background-color: #999; - border-radius: 10px; -} -.badge:empty { - display: none; -} -.btn .badge { - position: relative; - top: -1px; -} -.btn-xs .badge { - top: 0; - padding: 1px 5px; -} -a.badge:hover, -a.badge:focus { - color: #fff; - text-decoration: none; - cursor: pointer; -} -a.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #428bca; - background-color: #fff; -} -.nav-pills > li > a > .badge { - margin-left: 3px; -} -.jumbotron { - padding: 30px; - margin-bottom: 30px; - color: inherit; - background-color: #eee; -} -.jumbotron h1, -.jumbotron .h1 { - color: inherit; -} -.jumbotron p { - margin-bottom: 15px; - font-size: 21px; - font-weight: 200; -} -.container .jumbotron { - border-radius: 6px; -} -.jumbotron .container { - max-width: 100%; -} -@media screen and (min-width: 768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; - } - .container .jumbotron { - padding-right: 60px; - padding-left: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; - } -} -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.428571429; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - display: block; - max-width: 100%; - height: auto; - margin-right: auto; - margin-left: auto; -} -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #428bca; -} -.thumbnail .caption { - padding: 9px; - color: #333; -} -.alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; -} -.alert h4 { - margin-top: 0; - color: inherit; -} -.alert .alert-link { - font-weight: bold; -} -.alert > p, -.alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} -.alert-dismissable { - padding-right: 35px; -} -.alert-dismissable .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} -.alert-success { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.alert-success hr { - border-top-color: #c9e2b3; -} -.alert-success .alert-link { - color: #2b542c; -} -.alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.alert-info hr { - border-top-color: #a6e1ec; -} -.alert-info .alert-link { - color: #245269; -} -.alert-warning { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.alert-warning hr { - border-top-color: #f7e1b5; -} -.alert-warning .alert-link { - color: #66512c; -} -.alert-danger { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.alert-danger hr { - border-top-color: #e4b9c0; -} -.alert-danger .alert-link { - color: #843534; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -.progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); -} -.progress-bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #fff; - text-align: center; - background-color: #428bca; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - -webkit-transition: width .6s ease; - transition: width .6s ease; -} -.progress-striped .progress-bar { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-size: 40px 40px; -} -.progress.active .progress-bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-bar-success { - background-color: #5cb85c; -} -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.progress-bar-info { - background-color: #5bc0de; -} -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.progress-bar-warning { - background-color: #f0ad4e; -} -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.progress-bar-danger { - background-color: #d9534f; -} -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -} -.media, -.media-body { - overflow: hidden; - zoom: 1; -} -.media, -.media .media { - margin-top: 15px; -} -.media:first-child { - margin-top: 0; -} -.media-object { - display: block; -} -.media-heading { - margin: 0 0 5px; -} -.media > .pull-left { - margin-right: 10px; -} -.media > .pull-right { - margin-left: 10px; -} -.media-list { - padding-left: 0; - list-style: none; -} -.list-group { - padding-left: 0; - margin-bottom: 20px; -} -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid #ddd; -} -.list-group-item:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -.list-group-item > .badge { - float: right; -} -.list-group-item > .badge + .badge { - margin-right: 5px; -} -a.list-group-item { - color: #555; -} -a.list-group-item .list-group-item-heading { - color: #333; -} -a.list-group-item:hover, -a.list-group-item:focus { - text-decoration: none; - background-color: #f5f5f5; -} -a.list-group-item.active, -a.list-group-item.active:hover, -a.list-group-item.active:focus { - z-index: 2; - color: #fff; - background-color: #428bca; - border-color: #428bca; -} -a.list-group-item.active .list-group-item-heading, -a.list-group-item.active:hover .list-group-item-heading, -a.list-group-item.active:focus .list-group-item-heading { - color: inherit; -} -a.list-group-item.active .list-group-item-text, -a.list-group-item.active:hover .list-group-item-text, -a.list-group-item.active:focus .list-group-item-text { - color: #e1edf7; -} -.list-group-item-success { - color: #3c763d; - background-color: #dff0d8; -} -a.list-group-item-success { - color: #3c763d; -} -a.list-group-item-success .list-group-item-heading { - color: inherit; -} -a.list-group-item-success:hover, -a.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; -} -a.list-group-item-success.active, -a.list-group-item-success.active:hover, -a.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; -} -.list-group-item-info { - color: #31708f; - background-color: #d9edf7; -} -a.list-group-item-info { - color: #31708f; -} -a.list-group-item-info .list-group-item-heading { - color: inherit; -} -a.list-group-item-info:hover, -a.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; -} -a.list-group-item-info.active, -a.list-group-item-info.active:hover, -a.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; -} -.list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; -} -a.list-group-item-warning { - color: #8a6d3b; -} -a.list-group-item-warning .list-group-item-heading { - color: inherit; -} -a.list-group-item-warning:hover, -a.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; -} -a.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; -} -.list-group-item-danger { - color: #a94442; - background-color: #f2dede; -} -a.list-group-item-danger { - color: #a94442; -} -a.list-group-item-danger .list-group-item-heading { - color: inherit; -} -a.list-group-item-danger:hover, -a.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; -} -a.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; -} -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} -.panel { - margin-bottom: 20px; - background-color: #fff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: 0 1px 1px rgba(0, 0, 0, .05); -} -.panel-body { - padding: 15px; -} -.panel > .list-group { - margin-bottom: 0; -} -.panel > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; -} -.panel > .list-group .list-group-item:first-child { - border-top: 0; -} -.panel > .list-group .list-group-item:last-child { - border-bottom: 0; -} -.panel > .list-group:first-child .list-group-item:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .list-group:last-child .list-group-item:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} -.panel > .table, -.panel > .table-responsive > .table { - margin-bottom: 0; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; -} -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive { - border-top: 1px solid #ddd; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th, -.panel > .table-bordered > tfoot > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:first-child > th, -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > tfoot > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:first-child > td { - border-top: 0; -} -.panel > .table-bordered > thead > tr:last-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:last-child > th, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-bordered > thead > tr:last-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; -} -.panel > .table-responsive { - margin-bottom: 0; - border: 0; -} -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; -} -.panel-title > a { - color: inherit; -} -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel-group { - margin-bottom: 20px; -} -.panel-group .panel { - margin-bottom: 0; - overflow: hidden; - border-radius: 4px; -} -.panel-group .panel + .panel { - margin-top: 5px; -} -.panel-group .panel-heading { - border-bottom: 0; -} -.panel-group .panel-heading + .panel-collapse .panel-body { - border-top: 1px solid #ddd; -} -.panel-group .panel-footer { - border-top: 0; -} -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #ddd; -} -.panel-default { - border-color: #ddd; -} -.panel-default > .panel-heading { - color: #333; - background-color: #f5f5f5; - border-color: #ddd; -} -.panel-default > .panel-heading + .panel-collapse .panel-body { - border-top-color: #ddd; -} -.panel-default > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #ddd; -} -.panel-primary { - border-color: #428bca; -} -.panel-primary > .panel-heading { - color: #fff; - background-color: #428bca; - border-color: #428bca; -} -.panel-primary > .panel-heading + .panel-collapse .panel-body { - border-top-color: #428bca; -} -.panel-primary > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #428bca; -} -.panel-success { - border-color: #d6e9c6; -} -.panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.panel-success > .panel-heading + .panel-collapse .panel-body { - border-top-color: #d6e9c6; -} -.panel-success > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #d6e9c6; -} -.panel-info { - border-color: #bce8f1; -} -.panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.panel-info > .panel-heading + .panel-collapse .panel-body { - border-top-color: #bce8f1; -} -.panel-info > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #bce8f1; -} -.panel-warning { - border-color: #faebcc; -} -.panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.panel-warning > .panel-heading + .panel-collapse .panel-body { - border-top-color: #faebcc; -} -.panel-warning > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #faebcc; -} -.panel-danger { - border-color: #ebccd1; -} -.panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.panel-danger > .panel-heading + .panel-collapse .panel-body { - border-top-color: #ebccd1; -} -.panel-danger > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #ebccd1; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, .15); -} -.well-lg { - padding: 24px; - border-radius: 6px; -} -.well-sm { - padding: 9px; - border-radius: 3px; -} -.close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - filter: alpha(opacity=20); - opacity: .2; -} -.close:hover, -.close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - filter: alpha(opacity=50); - opacity: .5; -} -button.close { - -webkit-appearance: none; - padding: 0; - cursor: pointer; - background: transparent; - border: 0; -} -.modal-open { - overflow: hidden; -} -.modal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - display: none; - overflow: auto; - overflow-y: scroll; - -webkit-overflow-scrolling: touch; - outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transition: -webkit-transform .3s ease-out; - -moz-transition: -moz-transform .3s ease-out; - -o-transition: -o-transform .3s ease-out; - transition: transform .3s ease-out; - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - transform: translate(0, -25%); -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - transform: translate(0, 0); -} -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} -.modal-content { - position: relative; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: 6px; - outline: none; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); - box-shadow: 0 3px 9px rgba(0, 0, 0, .5); -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000; -} -.modal-backdrop.fade { - filter: alpha(opacity=0); - opacity: 0; -} -.modal-backdrop.in { - filter: alpha(opacity=50); - opacity: .5; -} -.modal-header { - min-height: 16.428571429px; - padding: 15px; - border-bottom: 1px solid #e5e5e5; -} -.modal-header .close { - margin-top: -2px; -} -.modal-title { - margin: 0; - line-height: 1.428571429; -} -.modal-body { - position: relative; - padding: 20px; -} -.modal-footer { - padding: 19px 20px 20px; - margin-top: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; -} -.modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; -} -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); - box-shadow: 0 5px 15px rgba(0, 0, 0, .5); - } - .modal-sm { - width: 300px; - } - .modal-lg { - width: 900px; - } -} -.tooltip { - position: absolute; - z-index: 1030; - display: block; - font-size: 12px; - line-height: 1.4; - visibility: visible; - filter: alpha(opacity=0); - opacity: 0; -} -.tooltip.in { - filter: alpha(opacity=90); - opacity: .9; -} -.tooltip.top { - padding: 5px 0; - margin-top: -3px; -} -.tooltip.right { - padding: 0 5px; - margin-left: 3px; -} -.tooltip.bottom { - padding: 5px 0; - margin-top: 3px; -} -.tooltip.left { - padding: 0 5px; - margin-left: -3px; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - text-decoration: none; - background-color: #000; - border-radius: 4px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.top-left .tooltip-arrow { - bottom: 0; - left: 5px; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.top-right .tooltip-arrow { - right: 5px; - bottom: 0; - border-width: 5px 5px 0; - border-top-color: #000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000; -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000; -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.tooltip.bottom-left .tooltip-arrow { - top: 0; - left: 5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.tooltip.bottom-right .tooltip-arrow { - top: 0; - right: 5px; - border-width: 0 5px 5px; - border-bottom-color: #000; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - max-width: 276px; - padding: 1px; - text-align: left; - white-space: normal; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); - box-shadow: 0 5px 10px rgba(0, 0, 0, .2); -} -.popover.top { - margin-top: -10px; -} -.popover.right { - margin-left: 10px; -} -.popover.bottom { - margin-top: 10px; -} -.popover.left { - margin-left: -10px; -} -.popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - font-weight: normal; - line-height: 18px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; -} -.popover-content { - padding: 9px 14px; -} -.popover .arrow, -.popover .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.popover .arrow { - border-width: 11px; -} -.popover .arrow:after { - content: ""; - border-width: 10px; -} -.popover.top .arrow { - bottom: -11px; - left: 50%; - margin-left: -11px; - border-top-color: #999; - border-top-color: rgba(0, 0, 0, .25); - border-bottom-width: 0; -} -.popover.top .arrow:after { - bottom: 1px; - margin-left: -10px; - content: " "; - border-top-color: #fff; - border-bottom-width: 0; -} -.popover.right .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-right-color: #999; - border-right-color: rgba(0, 0, 0, .25); - border-left-width: 0; -} -.popover.right .arrow:after { - bottom: -10px; - left: 1px; - content: " "; - border-right-color: #fff; - border-left-width: 0; -} -.popover.bottom .arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999; - border-bottom-color: rgba(0, 0, 0, .25); -} -.popover.bottom .arrow:after { - top: 1px; - margin-left: -10px; - content: " "; - border-top-width: 0; - border-bottom-color: #fff; -} -.popover.left .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999; - border-left-color: rgba(0, 0, 0, .25); -} -.popover.left .arrow:after { - right: 1px; - bottom: -10px; - content: " "; - border-right-width: 0; - border-left-color: #fff; -} -.carousel { - position: relative; -} -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} -.carousel-inner > .item { - position: relative; - display: none; - -webkit-transition: .6s ease-in-out left; - transition: .6s ease-in-out left; -} -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; - line-height: 1; -} -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} -.carousel-inner > .active { - left: 0; -} -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} -.carousel-inner > .next { - left: 100%; -} -.carousel-inner > .prev { - left: -100%; -} -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} -.carousel-inner > .active.left { - left: -100%; -} -.carousel-inner > .active.right { - left: 100%; -} -.carousel-control { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 15%; - font-size: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); - filter: alpha(opacity=50); - opacity: .5; -} -.carousel-control.left { - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .5) 0%), color-stop(rgba(0, 0, 0, .0001) 100%)); - background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); - background-repeat: repeat-x; -} -.carousel-control.right { - right: 0; - left: auto; - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .0001) 0%), color-stop(rgba(0, 0, 0, .5) 100%)); - background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); - background-repeat: repeat-x; -} -.carousel-control:hover, -.carousel-control:focus { - color: #fff; - text-decoration: none; - filter: alpha(opacity=90); - outline: none; - opacity: .9; -} -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; -} -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; -} -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; -} -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - margin-top: -10px; - margin-left: -10px; - font-family: serif; -} -.carousel-control .icon-prev:before { - content: '\2039'; -} -.carousel-control .icon-next:before { - content: '\203a'; -} -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - padding-left: 0; - margin-left: -30%; - text-align: center; - list-style: none; -} -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); - border: 1px solid #fff; - border-radius: 10px; -} -.carousel-indicators .active { - width: 12px; - height: 12px; - margin: 0; - background-color: #fff; -} -.carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); -} -.carousel-caption .btn { - text-shadow: none; -} -@media screen and (min-width: 768px) { - .carousel-control .glyphicons-chevron-left, - .carousel-control .glyphicons-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - margin-left: -15px; - font-size: 30px; - } - .carousel-caption { - right: 20%; - left: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } -} -.clearfix:before, -.clearfix:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-footer:before, -.modal-footer:after { - display: table; - content: " "; -} -.clearfix:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-footer:after { - clear: both; -} -.center-block { - display: block; - margin-right: auto; - margin-left: auto; -} -.pull-right { - float: right !important; -} -.pull-left { - float: left !important; -} -.hide { - display: none !important; -} -.show { - display: block !important; -} -.invisible { - visibility: hidden; -} -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.hidden { - display: none !important; - visibility: hidden !important; -} -.affix { - position: fixed; -} -@-ms-viewport { - width: device-width; -} -.visible-xs, -tr.visible-xs, -th.visible-xs, -td.visible-xs { - display: none !important; -} -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} -.visible-sm, -tr.visible-sm, -th.visible-sm, -td.visible-sm { - display: none !important; -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} -.visible-md, -tr.visible-md, -th.visible-md, -td.visible-md { - display: none !important; -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} -.visible-lg, -tr.visible-lg, -th.visible-lg, -td.visible-lg { - display: none !important; -} -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} -@media (max-width: 767px) { - .hidden-xs, - tr.hidden-xs, - th.hidden-xs, - td.hidden-xs { - display: none !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm, - tr.hidden-sm, - th.hidden-sm, - td.hidden-sm { - display: none !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md, - tr.hidden-md, - th.hidden-md, - td.hidden-md { - display: none !important; - } -} -@media (min-width: 1200px) { - .hidden-lg, - tr.hidden-lg, - th.hidden-lg, - td.hidden-lg { - display: none !important; - } -} -.visible-print, -tr.visible-print, -th.visible-print, -td.visible-print { - display: none !important; -} -@media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } -} -@media print { - .hidden-print, - tr.hidden-print, - th.hidden-print, - td.hidden-print { - display: none !important; - } -} - -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.glyphicon-home:before { - content: "\e021"; -} - -/*# sourceMappingURL=bootstrap.css.map */ diff --git a/examples/api/site/www/static/css/dashboard.css b/examples/api/site/www/static/css/dashboard.css deleted file mode 100644 index a126fc3..0000000 --- a/examples/api/site/www/static/css/dashboard.css +++ /dev/null @@ -1,357 +0,0 @@ -/* - * Base structure - */ - -/* Move down content because we have a fixed navbar that is 36px tall on small screen */ -body { - padding-top: 40px; -} -/* On large screen, we give it more space and the navbar is 30px tall. */ -@media (min-width: 768px) { - body { - padding-top: 45px; - } -} - - -/* - * Global add-ons - */ - -h1 { - margin-top: initial; - margin-bottom: 5px; -} - -h2.sub-header{ - margin-top: 1px; - margin-bottom: 1px; - border-bottom: 1px solid #eee; -} - - -.container .jumbotron { - padding: 10px; - text-align: center; -} - - -/* - * Sidebar - */ - -/* Hide for mobile, show later */ -.sidebar { - display: none; -} -@media (min-width: 768px) { - .sidebar { - position: fixed; - top: 0; - left: 0; - bottom: 0; - z-index: 1000; - display: block; - padding: 70px 20px 20px; - background-color: #f5f5f5; - border-right: 1px solid #eee; - } -} - -/* Sidebar navigation */ -.nav-sidebar { - margin-left: -20px; - margin-right: -21px; /* 20px padding + 1px border */ - margin-bottom: 20px; -} -.nav-sidebar > li > a { - padding-left: 20px; - padding-right: 20px; -} -.nav-sidebar > .active > a { - color: #fff; - background-color: #428bca; -} - - -/* - * Main content - */ - -.main { - padding: 3px; -} -@media (min-width: 768px) { - .main { - padding-left: 15px; - padding-right: 15px; - } -} -.main .page-header { - margin-top: 0; -} - - -/* - * Placeholder dashboard ideas - */ - -.placeholders { - margin-bottom: 30px; - text-align: center; -} -.placeholders h4 { - margin-bottom: 0; -} -.placeholder { - margin-bottom: 20px; -} -.placeholder img { - border-radius: 50%; -} - -.navbar-default { - background-color:#194573; - border-color: #400040; -} -.navbar-default .navbar-brand { - color: #ffffff; -} -.navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus { - color: #ffffff; -} -.navbar-default .navbar-text { - color: #ffffff; -} -.navbar-default .navbar-nav > li > a { - color: #ffffff; -} -.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { - color: #ffffff; -} -.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus { - color: #ffffff; - background-color: #400040; -} -.navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { - color: #ffffff; - background-color: #400040; -} -.navbar-default .navbar-toggle { - border-color: #400040; -} -.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { - background-color: #400040; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #ffffff; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #ffffff; -} -.navbar-default .navbar-link { - color: #ffffff; -} -.navbar-default .navbar-link:hover { - color: #ffffff; -} - -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #ffffff; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #ffffff; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #ffffff; - background-color: #400040; - } -} - -.navbar-nav > li > a {padding-top:5px !important; padding-bottom:5px !important;} -.navbar {min-height:30px !important} - -.navbar-brand { - float: left; - padding: 15px; - padding-top: 5px; - padding-right: 15px; - padding-bottom: 5px; - padding-left: 15px; - font-size: 18px; - line-height: 18px; - height: 30px; -} - - -/* Tooltips */ -.blue-tooltip + .tooltip > .tooltip-inner {background-color: #FF;} -.blue-tooltip + .tooltip > .tooltip-arrow { border-bottom-color:#FF; } - - -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-top-color: #000000; - border-width: 5px 5px 0; -} -.tooltip-inner { - text-align: left; - color: #000; - background: #fff; - border: solid 1px #000000; - max-width: 450px -} - -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-bottom-color: #000000; - border-width: 0 5px 5px; -} - -/* pre */ -pre { - word-wrap: code; - white-space: pre-wrap; - background-color:white; -} - - -/* Container -Fluid */ -.container-fluid { - padding: 0 2px; -} -@media (min-width: 768px) { - .container-fluid { - padding: 0 5px; - } -} - -.container-fluid .row { - margin: 0px; -} - -.row-padding { - margin-top: 25px; - margin-bottom: 25px; -} - -/* Width for the text field to enter a bug report number in the reports page. - * We put a maximum width to override the width value coming from `form-control'. */ -.form-bug-number-entry { - max-width: 100px; -} - -/* Default width for the entries in a table like layout. */ -.form-inline .form-control { - width: 95%; -} - -.form-inline .checkbox { - font-weight: initial; - vertical-align: top; -} - -/* Note that there is also a class called label. */ -label { - padding-right: 5px; -} - -.label { - padding: 0px; - padding-right: 5px; -} - -.label-primary-api-default { - display: inline-block; - width: 105px; - text-align: left; - background: #fff; - color: #000; - font-size: 100%; - text-align: right; -} - - -.label-primary-api-interactions { - display: inline-block; - padding-right: 5px; - text-align: left; - color: #000; - font-size: 100%; -} - - -pre { - padding: 1.5px; - display: block; - margin: 0 0 10px; - font-size: 12px; - font-family: monospace; - line-height: 1.428571429; - word-break: break-word; - word-wrap: break-word; - color: #333; - border: 0px; - border-radius: 4px; -} - - -/* No padding, so that nested columns are always properly aligned. */ -.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12 { - padding-left: 0px; - padding-right: 0px; -} - -.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td { - padding:2px; - vertical-align: middle; -} - -.form-control{ - height:inherit; - padding: 1px 2px; - margin: 1px; -} - -.btn { - padding: 1px 12px; - margin: 1px; - min-width: 100px; -} - -.dropdown-toggle, .login { - cursor: pointer; -} - -.pager { - margin:10px 0; -} - -.pager li>a,.pager li>span { - padding:1px 12px; - border-radius:8px; -} - -.well { - padding: 9px; - margin-bottom: 10px; - min-height: 44px; -} - -.panel-heading { - background-color: #ddeaf2 !important; -} - -.private-panel-border { - border: solid 1px #DBA458 !important; -} - -.private-panel { - background-color: #f2eadd !important; -} diff --git a/examples/api/site/www/static/images/ajax-loader.gif b/examples/api/site/www/static/images/ajax-loader.gif deleted file mode 100644 index cd1a9983479910cc31f9a99c7a228084945ba12e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1456 zcmb`GYfw~W9EV?FS2%*gVywGFvTJ9_6=K&#ZB0bExTqnbn0dj=nwnaZjpIyxXqtS_ zIeT>x6TB4{%_PvulG(|0RFc%xoX|i;xr&-*h^Q!tKRSn$*{M&>^nQH5Jn!?o|9{#P zi+QXyl!THFLV9|7NOe!w6MS+Tj$3GbjFS&=@gWLZA>QZwf#dgKs>94?+p#Bkl@4}&b7;zb6>R@TaZx2y< z9|`ryXhLEGCO6{O4xD;`c~?>1j$2)L?*{g^;rn*{a1RSxkbM(aQD?=D|Ww4E{%C?d5zK^c=~Wu+u# zPBO(A{ribmvC>PVPb2{=J|>jY42#xrP7)LrL9`4r+(r8bGtUp*!sw~ODccyS40`dU z5k#dfq5%U3zYvwDat(S;p6Bul3^|bJzcKtUVI4ad<*}cLd_d@sV^!x$50^U?>KbR+ zUapR1>#KB*^HuAfzNeor{A~#yFlzKGoYNK0Fovybm|)`KjQd^22^!ar$B2%tq^yn}KS@rVtvbi4Dyv2M1*b}_ za5emVf;Ls^PM<&djPK{m@0AxdIERz?GfX(qg^h43sLZ3Bn8ZX+;uLCCuah~^V{zhpYPJ z{e9tYN%Fj4qdJ|PQ*bOxQiC#P@*-0RnZnEvwh5D`PS0`+QAYW0L5f6lxo)Y_xBKk| zuXzs@vy|W|o-iOYQ1z2d&?^@7N? zsni}m-~Oq)u!xFP9J%hlqwKcJN|nXEC5pva5(>DO*>h$eqMP!i3a=-YTKH|+(&1@u z%uSwe4=&Y{w0Ti(X=eK1a$oqr#QzDm>v9WO7ui|#MX_6%8Dd+YS-@EaGg>vDniU(t zWiu6esfSo;F{e&p5=`+GhNy*$g7|4OOvF%O-Xjf6AG`m5VT(epLMknR_=4aPeVI%0 z*u}?W%=D7}Ns-g7oB1&%kxDTS-Lj2Xv**SS@-GReztH*fCKFkS@}RT>ee3{V_S5Lp zZ^`(n;-}lF$241q<$Hx~Kyljr4zgKJqc7x~4^>t*NwBNnwFUfB%NB{r; diff --git a/examples/api/site/www/static/images/favicon.ico b/examples/api/site/www/static/images/favicon.ico deleted file mode 100644 index 676d74466d01b2c9b3e0d2c9300c68952145a9c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16446 zcmeI330PBC7Jy^NX*-?q``S_Kg32l`D7dwV;{rN}Q=QJ}H`dmr>;XkoWIzR%Xt7pt z1Cp=?0)#DsY=RpFtRNtYjvxvug2+}7M7Br*XU=^gF(9#D(UMG<@V&g7``&%${P&!D z?|JuLXtZJYXKYNvZw=a1Jby}~(Wc^oNg4wWlK=nD|4t16!0^Q58%^U5{@pIx&D4gs zXOV5N(;Rwwh>Mj-)M<&=tpx&smZFF<_(ycIVh)?+#+{g-lW^MbMgr3?FZq;F@sAPe z??R`h>N0gcV`WkNo_P@MG8dx$JqyCO>Oy%gAJG9sB2gutroRhW19?W?Sx=+5BWtp` z+vn8>I_lSOw$7{$ahzElxp&#E`&o%o2J%eVGG%!e48mNNJPNRx2);I&z_d^Up6fzr zdG?gBcXxGl9by>MK0InQWyC29jgLd^b=6oFlV^Et9K9m(___^Qu|McBXteiapZPA+ z85xY>DFL>+(G0WH$Q^nRMAxK_C}#t>!zK6iJ#!rO4A{0> zWgL4Q@Uzth?+v5jTFhZA0?^v}to00Il=SNZBYPS2iTUAfU{K}s_y4d{12`tgRi9;1legp5Y`Vl z{B6`B*kL+6xpkhpr@6K?uP{AqjlAc-%lzB~@9AMK3-594wa`}LIzXRIJGS?_WPr_3FAPM>uJ(zPIft_^|cmtN~fo%~N)$RhNCyAo*08SS5k>5;N}F&MP> zSeDv8q}`KxWSWl$-tNWlyzVhoOwif{+?}6^`E9h2eGDWX`x*xX0W{TB)ZR#D&XIlI zV5j2`|Lgnk9r~zyPaR-gFfGRA6=g*JB;oFJc9iJIU#s`Nua)K@UplsXv^{A{gg@2C zT3V!2&kj*+cc4L1)`f%)@h%H05 z&jCK;3rO-@4;NYXkaBVp`t!V6KWohPbE0^+<1dbip9?C(` z`kcyteEV{+qYmwZzIrI~_mwD*1rfWJNXKu&L+XO`TRz{8r4FXK8Zf^d2Z3}AY78Uy z$R6b0M9;55)G6r2FZ-kNUS4Lz?vx zOn}_jqr~8{$kKFUWy!t#xKmp4hRLW)fif{r#( zNlwzqw7~89za&>#u2)yz_$cPU^3YI+$=D8F`8cTu!s?H)V)n76P{dvZAr4c4jWI2W zZ?1&9LpR3zvY*(}U!;$`(!sVj?)sNo!PHpLyDwm&y)PeH2ze(=A<%9zu(3W) zuOA6_GsN#al1gZ)FK?^3o}{M?JOj}o%H7l_YNx?#V}XyQ23%kmLAK{oajb}OFB|>j z;f)jtI(2TSD&?^l#(x@!Y-K2u#oNCw*l|v40L~T3_JK?*O^Dw;2U7PNVt*ixdxN*l zf~UpVQht%(1(e^uY^4kw1J&X2+D@(bglbig59i}1Y>*IhV{_(-FFAm54mWEf;Mvc{_DRaluK2jEr zx6vcWVOm?@8{#4Fji17~(-!!i+$Oevw-CzjWS)E*naWc38sF&;(eBG1kvU7*K0r22 z`u?=Q9a7(Ke_q#_7w2iGEDUd>2f%|55B~>nI>@|7K?+-C`H4+Joj>pHZ(e}B_XXNdh5OlOdic9Q8EyEsI>j6` ztqkbreTdBY1aF@W6?f7p{w`q$T#fNK`nK|vt$gG@v(OOx-f<9V3*@~w)Y%YfAKs++ z1?{aJ$w98mludtGeO{biJD~N>(4O@j**<{G2}a<2e^d1Xiod0KY+lU1IdyJH^iT@lX-lX?iSp8}=12^7CPpHZd!aHn~|lO&*O{$$lhUY)5@e(a7} z;3MJ3ScuGfw>H+mOOa?u@F%$%0TahOYQF=l&a-TTLbuJJ_C%4jpBqVD6hH3wxZ$c#o1iGY21{w;?XzXD_}P^6rM%5XsRjC= 0) { - var bracket_position = selector.indexOf('<'); - if (bracket_position > hash_position) { - throw 'Syntax error, unrecognized expression: ' + selector; - } - } - } - return jquery_init.call(this, selector, context, rootjQuery); - }; - jQuery.fn.init.prototype = jquery_init.prototype; -})(); - - -var ROC = ROC || { }; - -$('body').on('click',"a[rel='node']",function(e){ - - e.preventDefault(); - /* - if uncomment the above line, html5 nonsupported browers won't change the url but will display the ajax content; - if commented, html5 nonsupported browers will reload the page to the specified link. - */ - - //get the link location that was clicked - pageurl = $(this).attr('href'); - - spinner = "

Loading content..

loading...
"; - //to get the ajax content and display in div with class 'main' - $.ajax({url:pageurl+'?rel=node',success: function(data){ - $('.main').html(data); - }}); - - //to change the browser URL to the given link location - //if(pageurl!=window.location){ - //window.history.pushState({path:pageurl},'',pageurl); - //} - //stop refreshing to the page given in - return false; -}); - -$('body').on('click',"a[rel='register']",function(e){ - - e.preventDefault(); - /* - if uncomment the above line, html5 nonsupported browers won't change the url but will display the ajax content; - if commented, html5 nonsupported browers will reload the page to the specified link. - */ - - //get the link location that was clicked - pageurl = $(this).attr('href'); - - spinner = "

Loading content..

loading...
"; - //to get the ajax content and display in div with class 'main' - $.ajax({url:pageurl+'?rel=node',success: function(data){ - $('.main').html(data); - }}); - - //to change the browser URL to the given link location - //if(pageurl!=window.location){ - //window.history.pushState({path:pageurl},'',pageurl); - //} - //stop refreshing to the page given in - return false; -}); - - - -$("a[rel='node']").click(function(e){ - e.preventDefault(); - /* - if uncomment the above line, html5 nonsupported browers won't change the url but will display the ajax content; - if commented, html5 nonsupported browers will reload the page to the specified link. - */ - - //get the link location that was clicked - pageurl = $(this).attr('href'); - - spinner = "

Loading content..

loading...
"; - //to get the ajax content and display in div with class 'main' - $.ajax({url:pageurl+'?rel=node',success: function(data){ - $('.main').html(data); - }}); - - //to change the browser URL to the given link location - //if(pageurl!=window.location){ - //window.history.pushState({path:pageurl},'',pageurl); - //} - //stop refreshing to the page given in - return false; -}); - - diff --git a/examples/api/site/www/template/html/layout2.tpl b/examples/api/site/www/template/html/layout2.tpl deleted file mode 100644 index 34a5659..0000000 --- a/examples/api/site/www/template/html/layout2.tpl +++ /dev/null @@ -1,40 +0,0 @@ - - - - {include file="master2/head.tpl"/} - - - - - {include file="master2/site_navigation.tpl"/} - - - -
-
-
-
- {include file="master2/content.tpl"/} -
-
-
- - - - {if condition="$web"} - {include file="master2/optional_enhancement_js.tpl"/} - {/if} - - {if condition="$html"} - {include file="master2/optional_enhancement_js.tpl"/} - {/if} - - - - \ No newline at end of file diff --git a/examples/api/site/www/template/html/master2/content.tpl b/examples/api/site/www/template/html/master2/content.tpl deleted file mode 100644 index b18c5dd..0000000 --- a/examples/api/site/www/template/html/master2/content.tpl +++ /dev/null @@ -1,11 +0,0 @@ - -
-

Top most recent nodes


- - - {foreach from="$nodes" item="item"} - - {/foreach} -
diff --git a/examples/api/site/www/template/html/master2/error.tpl b/examples/api/site/www/template/html/master2/error.tpl deleted file mode 100644 index 0ca7ad0..0000000 --- a/examples/api/site/www/template/html/master2/error.tpl +++ /dev/null @@ -1,18 +0,0 @@ -

Error: {$code/}

- -{assign name="status400" value="400"/} -{assign name="status404" value="404"/} -{assign name="status500" value="500"/} - -{if condition="$code ~ $status500"} -

Internal server error, for the request {$request/}

-{/if} - - -{if condition="$code ~ $status404"} -

Resourse not found, for the request {$request/}

-{/if} - -{if condition="$code ~ $status400"} -

Bad request, the request {$request/} is not valid

-{/if} \ No newline at end of file diff --git a/examples/api/site/www/template/html/master2/footer.tpl b/examples/api/site/www/template/html/master2/footer.tpl deleted file mode 100644 index 11fe183..0000000 --- a/examples/api/site/www/template/html/master2/footer.tpl +++ /dev/null @@ -1,7 +0,0 @@ - -
-

API Documentation     - Questions? Comments? Let us know!

-

© Copyright 2014 Eiffel Software -- Privacy Policy -

-
\ No newline at end of file diff --git a/examples/api/site/www/template/html/master2/head.tpl b/examples/api/site/www/template/html/master2/head.tpl deleted file mode 100644 index 4ba4616..0000000 --- a/examples/api/site/www/template/html/master2/head.tpl +++ /dev/null @@ -1,10 +0,0 @@ - - -Eiffel RESTonCMS -{if condition="$web"} - {include file="master2/optional_styling_css.tpl"/} -{/if} -{if condition="$html"} - {include file="master2/optional_styling_css.tpl"/} -{/if} - diff --git a/examples/api/site/www/template/html/master2/header.tpl b/examples/api/site/www/template/html/master2/header.tpl deleted file mode 100644 index ce8ec71..0000000 --- a/examples/api/site/www/template/html/master2/header.tpl +++ /dev/null @@ -1,2 +0,0 @@ -

RESTonCMS

-

Tagline

\ No newline at end of file diff --git a/examples/api/site/www/template/html/master2/logoff.tpl b/examples/api/site/www/template/html/master2/logoff.tpl deleted file mode 100644 index 8139dc7..0000000 --- a/examples/api/site/www/template/html/master2/logoff.tpl +++ /dev/null @@ -1,5 +0,0 @@ -

You have successfully signed out

- -You may want to return - -Press this neat little button:Take Me Home diff --git a/examples/api/site/www/template/html/master2/main_navigation.tpl b/examples/api/site/www/template/html/master2/main_navigation.tpl deleted file mode 100644 index 88365d7..0000000 --- a/examples/api/site/www/template/html/master2/main_navigation.tpl +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/examples/api/site/www/template/html/master2/optional_enhancement_js.tpl b/examples/api/site/www/template/html/master2/optional_enhancement_js.tpl deleted file mode 100644 index 1353b83..0000000 --- a/examples/api/site/www/template/html/master2/optional_enhancement_js.tpl +++ /dev/null @@ -1,5 +0,0 @@ - - -{if condition="$web"} - -{/if} \ No newline at end of file diff --git a/examples/api/site/www/template/html/master2/optional_styling_css.tpl b/examples/api/site/www/template/html/master2/optional_styling_css.tpl deleted file mode 100644 index f56d770..0000000 --- a/examples/api/site/www/template/html/master2/optional_styling_css.tpl +++ /dev/null @@ -1,9 +0,0 @@ -{if condition="$html"} - - - -{/if} -{if condition="$web"} - - -{/if} diff --git a/examples/api/site/www/template/html/master2/site_navigation.tpl b/examples/api/site/www/template/html/master2/site_navigation.tpl deleted file mode 100644 index a75760c..0000000 --- a/examples/api/site/www/template/html/master2/site_navigation.tpl +++ /dev/null @@ -1,27 +0,0 @@ - - - - \ No newline at end of file diff --git a/examples/api/site/www/template/html/modules/navigation.tpl b/examples/api/site/www/template/html/modules/navigation.tpl deleted file mode 100644 index ee2d15e..0000000 --- a/examples/api/site/www/template/html/modules/navigation.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{if isset="$user"} - Logoff -{/if} -{unless isset="$user"} - Login - Register -{/unless} -List of Nodes diff --git a/examples/api/site/www/template/html/modules/node.tpl b/examples/api/site/www/template/html/modules/node.tpl deleted file mode 100644 index 0f6173f..0000000 --- a/examples/api/site/www/template/html/modules/node.tpl +++ /dev/null @@ -1,174 +0,0 @@ -{if condition="html"} - - - - {include file="master2/head.tpl"/} - - -{/if} - -{unless condition="$web"} - - {include file="master2/site_navigation.tpl"/} -{/unless} - - -{if condition="html"} - -
-
-
-
-{/if} - - -
- {if condition="$web"} - - {/if} - {if condition="$html"} - - {/if} -
-
- {if isset="$node"} -
-
-
-
-

{$node.title/}

-
-
-
{$node.content/}
-
-
-
- {/if} -
- -
- {if isset="$user"} -
-
-
- {if isset="$node"} - -
- {/if} -
-
-
- {if isset="$user"} -
-
- - {if isset="$node"} -
- -
- Delete Node - -
- -
-
-
- {/if} -
- {/if} -
-
-
- -{if condition="html"} -
-
-
-{/if} - - -{if condition="html"} - - - - {include file="master2/optional_enhancement_js.tpl"/} - - - -{/if} \ No newline at end of file diff --git a/examples/api/site/www/template/html/modules/node_content.tpl b/examples/api/site/www/template/html/modules/node_content.tpl deleted file mode 100644 index 4825500..0000000 --- a/examples/api/site/www/template/html/modules/node_content.tpl +++ /dev/null @@ -1,70 +0,0 @@ -{if condition="html"} - - - - {include file="master2/head.tpl"/} - - -{/if} - -{unless condition="$web"} - - {include file="master2/site_navigation.tpl"/} -{/unless} - -{if condition="html"} - -
-
-
-
-{/if} - - -
-
-
- -
- Edit Node Content - -
-
- -
-
- -
-
- -
- -
-
-
-
-
-{if condition="html"} - -
-
-
-{/if} - - -{if condition="html"} - - - - {include file="master2/optional_enhancement_js.tpl"/} - - - -{/if} \ No newline at end of file diff --git a/examples/api/site/www/template/html/modules/node_summary.tpl b/examples/api/site/www/template/html/modules/node_summary.tpl deleted file mode 100644 index 24f69e6..0000000 --- a/examples/api/site/www/template/html/modules/node_summary.tpl +++ /dev/null @@ -1,71 +0,0 @@ -{if condition="html"} - - - - {include file="master2/head.tpl"/} - - -{/if} - - - {unless condition="$web"} - - {include file="master2/site_navigation.tpl"/} - {/unless} - -{if condition="html"} - -
-
-
-
-{/if} - -
-
-
- -
- Edit Node Summary - -
-
- -
-
- -
-
- -
- -
-
-
-
-
- -{if condition="html"} - -
-
-
-{/if} - - -{if condition="html"} - - - - {include file="master2/optional_enhancement_js.tpl"/} - - - -{/if} \ No newline at end of file diff --git a/examples/api/site/www/template/html/modules/node_title.tpl b/examples/api/site/www/template/html/modules/node_title.tpl deleted file mode 100644 index 2e02d02..0000000 --- a/examples/api/site/www/template/html/modules/node_title.tpl +++ /dev/null @@ -1,70 +0,0 @@ -{if condition="html"} - - - - {include file="master2/head.tpl"/} - - -{/if} - - {unless condition="$web"} - - {include file="master2/site_navigation.tpl"/} - {/unless} - - -{if condition="html"} - -
-
-
-
-{/if} - -
-
-
- -
- Edit Node Title - -
-
- -
-
- -
-
- -
- -
-
-
-
-
-{if condition="html"} - -
-
-
-{/if} - - -{if condition="html"} - - - - {include file="master2/optional_enhancement_js.tpl"/} - - - -{/if} \ No newline at end of file diff --git a/examples/api/site/www/template/html/modules/nodes.tpl b/examples/api/site/www/template/html/modules/nodes.tpl deleted file mode 100644 index 23b24c7..0000000 --- a/examples/api/site/www/template/html/modules/nodes.tpl +++ /dev/null @@ -1,52 +0,0 @@ -{if condition="html"} - - - - {include file="master2/head.tpl"/} - - -{/if} - -{unless condition="$web"} - - {include file="master2/site_navigation.tpl"/} -{/unless} - -{if condition="html"} - -
-
-
-
-{/if} -
-

List nodes


- - - {foreach from="$nodes" item="item"} - - {/foreach} -
- -{if condition="html"} -
-
-
-{/if} - - -{if condition="html"} - - - - {include file="master2/optional_enhancement_js.tpl"/} - - - -{/if} \ No newline at end of file diff --git a/examples/api/site/www/template/html/modules/register.tpl b/examples/api/site/www/template/html/modules/register.tpl deleted file mode 100644 index 3a14667..0000000 --- a/examples/api/site/www/template/html/modules/register.tpl +++ /dev/null @@ -1,100 +0,0 @@ -{if condition="html"} - - - - {include file="master2/head.tpl"/} - - -{/if} - - -{unless condition="$web"} - - {include file="master2/site_navigation.tpl"/} -{/unless} - -{if condition="html"} - -
-
-
-
-{/if} - - -
-
-
-
- Register -
-

Register new user

-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
- s
- -
- -
-
-
-
-
- -{if condition="html"} -
-
-
-{/if} - - -{if condition="html"} - - - - {include file="master2/optional_enhancement_js.tpl"/} - - - -{/if} \ No newline at end of file diff --git a/examples/api/src/configuration/application_constants.e b/examples/api/src/configuration/application_constants.e deleted file mode 100644 index dd4f7d9..0000000 --- a/examples/api/src/configuration/application_constants.e +++ /dev/null @@ -1,19 +0,0 @@ -note - description: "Summary description for {ESA_APPLICATION_CONSTANTS}." - date: "$Date: 2014-08-20 15:21:15 -0300 (mi., 20 ago. 2014) $" - revision: "$Revision: 95678 $" - -class - APPLICATION_CONSTANTS - -feature -- Access - - major: INTEGER = 0 - minor: INTEGER = 1 - built: STRING = "0001" - - version: STRING - do - Result := major.out + "." + minor.out + "." + built - end -end diff --git a/examples/api/src/configuration/configuration_factory.e b/examples/api/src/configuration/configuration_factory.e deleted file mode 100644 index 2477bbf..0000000 --- a/examples/api/src/configuration/configuration_factory.e +++ /dev/null @@ -1,70 +0,0 @@ -note - description: "API configuration factory" - date: "$Date: 2014-08-20 15:21:15 -0300 (mi., 20 ago. 2014) $" - revision: "$Revision: 95678 $" - -class - CONFIGURATION_FACTORY - -inherit - - SHARED_EXECUTION_ENVIRONMENT - - SHARED_ERROR - -feature -- Factory - - roc_config (a_dir: detachable STRING): ROC_CONFIG - local - l_layout: APPLICATION_LAYOUT - l_email_service: ROC_EMAIL_SERVICE - l_database: DATABASE_CONNECTION - l_api_service: ROC_API_SERVICE - l_retried: BOOLEAN - do - if not l_retried then - if attached a_dir then - create l_layout.make_with_path (create {PATH}.make_from_string (a_dir)) - else - create l_layout.make_default - end - log.write_information (generator + ".roc_config " + l_layout.path.name.out) - - create l_email_service.make ((create {JSON_CONFIGURATION}).new_smtp_configuration(l_layout.application_config_path)) - - if attached (create {JSON_CONFIGURATION}).new_database_configuration (l_layout.application_config_path) as l_database_config then - create {DATABASE_CONNECTION_MYSQL} l_database.login_with_connection_string (l_database_config.connection_string) - create l_api_service.make (create {CMS_STORAGE_MYSQL}.make (l_database)) - create Result.make (l_database, l_api_service, l_email_service, l_layout) - if (create {ROC_JSON_CONFIGURATION}).is_web_mode(l_layout.application_config_path) then - Result.mark_web - elseif (create {ROC_JSON_CONFIGURATION}).is_html_mode(l_layout.application_config_path) then - Result.mark_html - end - set_successful - else - create {DATABASE_CONNECTION_NULL} l_database.make_common - create l_api_service.make (create {CMS_STORAGE_NULL}) - create Result.make (l_database, l_api_service, l_email_service, l_layout) - set_last_error ("Database Connections", generator + ".roc_config") - log.write_error (generator + ".roc_config Error database connection" ) - end - else - if attached a_dir then - create l_layout.make_with_path (create {PATH}.make_from_string (a_dir)) - else - create l_layout.make_default - end - create l_email_service.make ((create {JSON_CONFIGURATION}).new_smtp_configuration(l_layout.application_config_path)) - - create {DATABASE_CONNECTION_NULL} l_database.make_common - create l_api_service.make (create {CMS_STORAGE_NULL}) - create Result.make (l_database, l_api_service, l_email_service, l_layout) - end - rescue - set_last_error_from_exception ("Database Connection execution") - log.write_critical (generator + ".roc_config Database Connection execution exceptions") - l_retried := True - retry - end -end diff --git a/examples/api/src/configuration/roc_json_configuration.e b/examples/api/src/configuration/roc_json_configuration.e deleted file mode 100644 index 8088f76..0000000 --- a/examples/api/src/configuration/roc_json_configuration.e +++ /dev/null @@ -1,48 +0,0 @@ -note - description: "Summary description for {ROC_JSON_CONFIGURATION}." - date: "$Date$" - revision: "$Revision$" - -class - ROC_JSON_CONFIGURATION - -inherit - - JSON_CONFIGURATION - -feature -- Access - - is_html_mode (a_path: PATH): BOOLEAN - -- Is the server running on web mode? - local - l_parser: JSON_PARSER - do - if attached json_file_from (a_path) as json_file then - l_parser := new_json_parser (json_file) - if attached {JSON_OBJECT} l_parser.parse as jv and then l_parser.is_parsed and then - attached {JSON_OBJECT} jv.item ("server") as l_server and then - attached {JSON_STRING} l_server.item ("mode") as l_mode then - Result := l_mode.item.is_case_insensitive_equal_general ("html") - end - end - end - - - - is_web_mode (a_path: PATH): BOOLEAN - -- Is the server running on web mode? - local - l_parser: JSON_PARSER - do - if attached json_file_from (a_path) as json_file then - l_parser := new_json_parser (json_file) - if attached {JSON_OBJECT} l_parser.parse as jv and then l_parser.is_parsed and then - attached {JSON_OBJECT} jv.item ("server") as l_server and then - attached {JSON_STRING} l_server.item ("mode") as l_mode then - Result := l_mode.item.is_case_insensitive_equal_general ("web") - end - end - end - - -end diff --git a/examples/api/src/representation/common/template_shared.e b/examples/api/src/representation/common/template_shared.e deleted file mode 100644 index ed6eec7..0000000 --- a/examples/api/src/representation/common/template_shared.e +++ /dev/null @@ -1,29 +0,0 @@ -note - description: "Template shared common features to all the templates" - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -deferred class - TEMPLATE_SHARED - -inherit - - ROC_TEMPLATE_PAGE - -feature -- - - add_host (a_host: READABLE_STRING_GENERAL) - -- Add value `a_host' to `host' - do - template.add_value (a_host, "host") - end - - - add_user (a_user: detachable ANY) - -- Add value `a_host' to `host' - do - if attached a_user then - template.add_value (a_user,"user") - end - end -end diff --git a/examples/api/src/representation/roc_response.e b/examples/api/src/representation/roc_response.e deleted file mode 100644 index b2d659c..0000000 --- a/examples/api/src/representation/roc_response.e +++ /dev/null @@ -1,143 +0,0 @@ -note - description: "Summary description for {ROC_RESPONSE}." - date: "$Date$" - revision: "$Revision$" - -class - ROC_RESPONSE - -inherit - - APP_HANDLER - - TEMPLATE_SHARED - -create - make - -feature {NONE} -- Initialization - - make (a_request: WSF_REQUEST; a_template: READABLE_STRING_32) - do - request := a_request - -- Set template to HTML - set_template_folder (html_path) - -- Build Common Template - set_template_file_name (a_template) - -- Process the current tempate. - set_value (a_request.absolute_script_url (""), "host") - if attached current_user_name (request) as l_user then - set_value (l_user, "user") - end - end - -feature -- Access - - request: WSF_REQUEST - -feature -- Access - - values: STRING_TABLE [detachable ANY] - do - Result := template.values - end - - value (a_key: READABLE_STRING_GENERAL): detachable ANY - do - Result := template.values.item (a_key) - end - -feature -- Element change - - set_value (a_value: detachable ANY; a_key: READABLE_STRING_GENERAL) - do - template.add_value (a_value, a_key) - end - - -feature -- Output - - send_to (res: WSF_RESPONSE) - do - process - if attached representation as l_output then - new_response (res, l_output, {HTTP_STATUS_CODE}.ok) - end - end - - new_response_redirect (req: WSF_REQUEST; res: WSF_RESPONSE; a_location: READABLE_STRING_32) - -- Redirect to `a_location' - local - h: HTTP_HEADER - do - create h.make - h.put_content_type_text_html - h.put_current_date - h.put_location (a_location) - res.set_status_code ({HTTP_STATUS_CODE}.see_other) - res.put_header_text (h.string) - end - - new_response_authenticate (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Handle forbidden. - local - h: HTTP_HEADER - do - create h.make - h.put_content_type_text_html - h.put_current_date - h.put_header_key_value ({HTTP_HEADER_NAMES}.header_www_authenticate, "Basic realm=%"CMS-User%"") - res.set_status_code ({HTTP_STATUS_CODE}.unauthorized) - res.put_header_text (h.string) - end - - new_response_denied (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Handle forbidden. - local - h: HTTP_HEADER - do - process - create h.make - if attached representation as l_output then - h.put_content_length (l_output.count) - end - - h.put_content_type_text_html - h.put_current_date - res.set_status_code ({HTTP_STATUS_CODE}.unauthorized) - res.put_header_text (h.string) - if attached representation as l_output then - res.put_string (l_output) - end - end - - - new_response_unauthorized (req: WSF_REQUEST; res: WSF_RESPONSE) - local - h: HTTP_HEADER - output: STRING - do - create h.make - h.put_content_type_text_html - h.put_current_date - res.set_status_code ({HTTP_STATUS_CODE}.forbidden) - res.put_header_text (h.string) - end - - -feature {NONE} -- Implemenation - - new_response (res: WSF_RESPONSE; output: STRING; status_code: INTEGER) - local - h: HTTP_HEADER - do - create h.make - h.put_content_type_text_html - h.put_content_length (output.count) - h.put_current_date - res.set_status_code (status_code) - res.put_header_text (h.string) - res.put_string (output) - end - -end diff --git a/examples/api/src/representation/roc_template_page.e b/examples/api/src/representation/roc_template_page.e deleted file mode 100644 index 008a544..0000000 --- a/examples/api/src/representation/roc_template_page.e +++ /dev/null @@ -1,76 +0,0 @@ -note - description: "Abstract template class" - date: "$Date: 2014-08-20 15:21:15 -0300 (mi., 20 ago. 2014) $" - revision: "$Revision: 95678 $" - -deferred class - ROC_TEMPLATE_PAGE - -inherit - - SHARED_TEMPLATE_CONTEXT - - SHARED_LOGGER - - ARGUMENTS - -feature -- Status - - representation: detachable STRING - -- String representation, if any. - - set_template_folder (v: PATH) - -- Set template folder to `v'. - do - template_context.set_template_folder (v) - end - - set_template_file_name (v: STRING) - -- Set `template' to `v'. - do - create template.make_from_file (v) - end - - set_template (v: like template) - -- Set `template' to `v'. - do - template := v - end - - template: TEMPLATE_FILE - - layout: APPLICATION_LAYOUT - local - l_env: EXECUTION_ENVIRONMENT - once - create l_env - if attached separate_character_option_value ('d') as l_dir then - create Result.make_with_path (create {PATH}.make_from_string (l_dir)) - else - create Result.make_default - end - end - - html_path: PATH - -- Html template paths. - do - Result := layout.template_path.extended ("html") - end - -feature -- Process - - process - -- Process the current template. - do - template_context.enable_verbose - template.analyze - template.get_output - - if attached template.output as l_output then - representation := l_output - debug - log.write_debug (generator + ".make " + l_output) - end - end - end -end diff --git a/examples/api/src/roc_abstract_api.e b/examples/api/src/roc_abstract_api.e deleted file mode 100644 index 36c5d56..0000000 --- a/examples/api/src/roc_abstract_api.e +++ /dev/null @@ -1,119 +0,0 @@ -note - description: "Abstract API service" - date: "$Date: 2014-08-20 15:21:15 -0300 (mi., 20 ago. 2014) $" - revision: "$Revision: 95678 $" - -deferred class - ROC_ABSTRACT_API - -inherit - WSF_ROUTED_SKELETON_SERVICE - undefine - requires_proxy - redefine - execute_default - end - - WSF_NO_PROXY_POLICY - - WSF_URI_HELPER_FOR_ROUTED_SERVICE - - WSF_URI_TEMPLATE_HELPER_FOR_ROUTED_SERVICE - - SHARED_CONNEG_HELPER - - SHARED_LOGGER - -feature {NONE} -- Initialization - - make (a_esa_config: ROC_CONFIG; a_server: ROC_SERVER) - do - roc_config := a_esa_config - server := a_server - initialize_router - end - -feature -- ESA - - roc_config: ROC_CONFIG - -- Configuration - - server: ROC_SERVER - -- Server - -feature -- Router setup - - setup_router - -- Setup `router' - deferred - end - - layout: APPLICATION_LAYOUT - do - Result := roc_config.layout - end - -feature -- Access - - handle_debug (req: WSF_REQUEST; res: WSF_RESPONSE) - local - s: STRING_8 - h: HTTP_HEADER - do - if req.is_get_request_method then - s := "debug" - create h.make_with_count (1) - h.put_content_type_text_html - h.put_content_length (s.count) - res.put_header_lines (h) - res.put_string (s) - else - create s.make (30_000) - across - req.form_parameters as c - loop - s.append (c.item.url_encoded_name) - s.append ("=") - s.append (c.item.string_representation) - s.append ("
") - end - if s.is_empty then - req.read_input_data_into (s) - end - create h.make_with_count (1) - h.put_content_type_text_html - h.put_content_length (s.count) - res.put_header_lines (h) - res.put_string (s) - end - end - -feature -- Handler - - not_yet_implemented_uri_template_handler (msg: READABLE_STRING_8): WSF_URI_TEMPLATE_HANDLER - do - create {WSF_URI_TEMPLATE_AGENT_HANDLER} Result.make (agent not_yet_implemented(?, ?, msg)) - end - - not_yet_implemented (req: WSF_REQUEST; res: WSF_RESPONSE; msg: detachable READABLE_STRING_8) - local - m: WSF_NOT_IMPLEMENTED_RESPONSE - do - create m.make (req) - if msg /= Void then - m.set_body (msg) - end - res.send (m) - end - - -feature -- Default Execution - - execute_default (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Dispatch requests without a matching handler. - local - do - - end - -end diff --git a/examples/api/src/roc_config.e b/examples/api/src/roc_config.e deleted file mode 100644 index 8ab46d0..0000000 --- a/examples/api/src/roc_config.e +++ /dev/null @@ -1,87 +0,0 @@ -note - description: "Eiffel Suppor API configuration" - date: "$Date: 2014-08-20 15:21:15 -0300 (mi., 20 ago. 2014) $" - revision: "$Revision: 95678 $" - -class - ROC_CONFIG - -inherit - - SHARED_ERROR - - -create - make - -feature -- Initialization - - make (a_database: DATABASE_CONNECTION; a_api_service: ROC_API_SERVICE; a_email_service: ROC_EMAIL_SERVICE; a_layout: APPLICATION_LAYOUT ) - -- Create an object with defaults. - do - database := a_database - api_service := a_api_service - email_service := a_email_service - layout := a_layout - mark_api - ensure - database_set: database = a_database - api_service_set: api_service = a_api_service - email_service_set: email_service = a_email_service - layout_set: layout = a_layout - end - -feature -- Access - - is_successful: BOOLEAN - -- Is the configuration successful? - do - Result := successful - end - - is_api: BOOLEAN - -- Is the server running on server mode API - - is_web: BOOLEAN - -- Is the server running on server mode API - - is_html: BOOLEAN - -- Is the server running on html mode API - - database: DATABASE_CONNECTION - -- Database connection. - - api_service: ROC_API_SERVICE - -- Support API. - - email_service: ROC_EMAIL_SERVICE - -- Email service. - - layout: APPLICATION_LAYOUT - -- Api layout. - - mark_api - -- Set server mode to api. - do - is_api := True - is_html := False - is_web := False - end - - mark_web - -- Set server mode to web. - do - is_web := True - is_api := False - is_html := False - end - - mark_html - -- Set server mode to web. - do - is_html := True - is_api := False - is_web := False - end - -end diff --git a/examples/api/src/roc_server.e b/examples/api/src/roc_server.e deleted file mode 100644 index 20d9d7d..0000000 --- a/examples/api/src/roc_server.e +++ /dev/null @@ -1,212 +0,0 @@ -note - description: "[ - application service - ]" - date: "$Date: 2014-08-20 15:21:15 -0300 (mi., 20 ago. 2014) $" - revision: "$Revision: 95678 $" - -class - ROC_SERVER - -inherit - - WSF_LAUNCHABLE_SERVICE - rename - make_and_launch as make_and_launch_service - redefine - initialize - end - - WSF_FILTERED_SERVICE - - WSF_FILTER - rename - execute as execute_filter - end - - SHARED_EXECUTION_ENVIRONMENT - export - {NONE} all - end - - APPLICATION_CONSTANTS - - REFACTORING_HELPER - - ARGUMENTS - -create - make_and_launch - -feature {NONE} -- Initialization - - make_and_launch - do - setup_config - create launcher - make_and_launch_service - end - - initialize - -- Initialize current service. - do - Precursor - service_options := create {WSF_SERVICE_LAUNCHER_OPTIONS_FROM_INI}.make_from_file ("roc.ini") - initialize_filter - end - -feature {NONE} -- Launch operation - - launcher: APPLICATION_LAUNCHER - - launch (a_service: WSF_SERVICE; opts: detachable WSF_SERVICE_LAUNCHER_OPTIONS) - local - l_retry: BOOLEAN - l_message: STRING - do - if not l_retry then - launcher.launch (a_service, opts) - else - -- error hanling. - create l_message.make (1024) - if attached ((create {EXCEPTION_MANAGER}).last_exception) as l_exception then - if attached l_exception.description as l_description then - l_message.append (l_description.as_string_32) - l_message.append ("%N%N") - elseif attached l_exception.trace as l_trace then - l_message.append (l_trace) - l_message.append ("%N%N") - else - l_message.append (l_exception.out) - l_message.append ("%N%N") - end - else - l_message.append ("The application crash without available information") - l_message.append ("%N%N") - end - roc_config.email_service.send_shutdown_email (l_message) - roc_config.log.write_emergency (generator + ".launch %N" + l_message) - end - rescue - l_retry := True - retry - end - -feature {ROC_ABSTRACT_API} -- Services - - api_service: ROC_REST_API - -- rest api. - local - s: like internal_api_service - do - s := internal_api_service - if s = Void then - create s.make (roc_config, Current) - internal_api_service := s - end - Result := s - end - -feature {NONE} -- Internal - - internal_api_service: detachable like api_service - -feature -- ESA Configuraion - - roc_config: ROC_CONFIG - -- Configuration. - - setup_config - -- Configure API. - local - l_configuration_factory: CONFIGURATION_FACTORY - do - create l_configuration_factory - roc_config := l_configuration_factory.roc_config (separate_character_option_value ('d')) - if attached l_configuration_factory.last_error as l_error then - roc_config.set_last_error_from_handler (l_error) - else - roc_config.set_successful - end - end - -feature -- Execute Filter - - execute_filter (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute the filter. - do - - res.put_header_line ("Date: " + (create {HTTP_DATE}.make_now_utc).string) - - res.put_header_line ("ROCServer: " + version) - api_service.execute (req, res) - end - -feature -- Filters - - create_filter - -- Create `filter'. - local - f, l_filter: detachable WSF_FILTER - fh: WSF_CUSTOM_HEADER_FILTER - do - l_filter := Void - - -- Header - create fh.make (1) - fh.set_next (l_filter) - fh.custom_header.put_header ("X-ROCServer: " + version) - l_filter := fh - - -- Maintenance - create {WSF_MAINTENANCE_FILTER} f - f.set_next (l_filter) - l_filter := f - - if launcher.is_console_output_supported then - -- Logging for nino - create {WSF_LOGGING_FILTER} f.make_with_output (io.output) - f.set_next (l_filter) - l_filter := f - end - -- CORS Authentication - create {CORS_FILTER} f - f.set_next (l_filter) - l_filter := f - - -- Authentication - create {AUTHENTICATION_FILTER} f.make (roc_config) - f.set_next (l_filter) - l_filter := f - - - -- Logger Filter - create {LOGGER_FILTER} f.make (roc_config) - f.set_next (l_filter) - l_filter := f - - -- Error Filter - create {ERROR_FILTER} f.make (roc_config) - f.set_next (l_filter) - l_filter := f - - - filter := l_filter - end - - setup_filter - -- Setup `filter'. - local - f: WSF_FILTER - do - from - f := filter - until - not attached f.next as l_next - loop - f := l_next - end - f.set_next (Current) - end - -end diff --git a/examples/api/src/service/filter/authentication_filter.e b/examples/api/src/service/filter/authentication_filter.e deleted file mode 100644 index 183bb5d..0000000 --- a/examples/api/src/service/filter/authentication_filter.e +++ /dev/null @@ -1,60 +0,0 @@ -note - description: "Authentication filter." - author: "Olivier Ligot" - date: "$Date: 2014-08-20 15:21:15 -0300 (mi., 20 ago. 2014) $" - revision: "$Revision: 95678 $" - -class - AUTHENTICATION_FILTER - -inherit - WSF_URI_TEMPLATE_HANDLER - - APP_ABSTRACT_HANDLER - rename - set_esa_config as make - end - WSF_FILTER - - - -create - make - -feature -- Basic operations - - execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute the filter - local - l_auth: HTTP_AUTHORIZATION - do - log.write_debug (generator + ".execute " ) - create l_auth.make (req.http_authorization) - if attached req.raw_header_data as l_raw_data then - log.write_debug (generator + ".execute " + l_raw_data ) - end - -- A valid user - if (attached l_auth.type as l_auth_type and then l_auth_type.is_case_insensitive_equal ("basic")) and then - attached l_auth.login as l_auth_login and then attached l_auth.password as l_auth_password then - if api_service.login_valid (l_auth_login, l_auth_password) then - if attached api_service.user_by_name (l_auth_login) as l_user then - req.set_execution_variable ("user", l_user) - execute_next (req, res) - else - -- Internal server error - end - else - log.write_error (generator + ".execute login_valid failed for: " + l_auth_login ) - execute_next (req, res) - end - else - log.write_error (generator + ".execute Not valid") - execute_next (req, res) - end - end - -note - copyright: "2011-2012, Olivier Ligot, Jocelyn Fiat and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - -end diff --git a/examples/api/src/service/filter/cors_filter.e b/examples/api/src/service/filter/cors_filter.e deleted file mode 100644 index 640fed4..0000000 --- a/examples/api/src/service/filter/cors_filter.e +++ /dev/null @@ -1,27 +0,0 @@ -note - description: "CORS filter" - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -class - CORS_FILTER - -inherit - WSF_FILTER - -feature -- Basic operations - - execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute the filter. - local - l_header: HTTP_HEADER - do - create l_header.make --- l_header.add_header_key_value ("Access-Control-Allow-Origin", "localhost") - l_header.add_header_key_value ("Access-Control-Allow-Headers", "*") - l_header.add_header_key_value ("Access-Control-Allow-Methods", "*") - l_header.add_header_key_value ("Access-Control-Allow-Credentials", "true") - res.put_header_lines (l_header) - execute_next (req, res) - end -end diff --git a/examples/api/src/service/filter/error_filter.e b/examples/api/src/service/filter/error_filter.e deleted file mode 100644 index 4bdd7d3..0000000 --- a/examples/api/src/service/filter/error_filter.e +++ /dev/null @@ -1,42 +0,0 @@ -note - description: "Error filter" - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -class - ERROR_FILTER - -inherit - WSF_URI_TEMPLATE_HANDLER - - APP_ABSTRACT_HANDLER - rename - set_esa_config as make - end - WSF_FILTER - - - -create - make - -feature -- Basic operations - - execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute the filter - - do - if roc_config.is_successful and then roc_config.api_service.successful then - log.write_information (generator + ".execute") - execute_next (req, res) - else - -- send internal server error. - end - end - - -note - copyright: "2011-2012, Olivier Ligot, Jocelyn Fiat and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" - -end diff --git a/examples/api/src/service/filter/logger_filter.e b/examples/api/src/service/filter/logger_filter.e deleted file mode 100644 index a8132c1..0000000 --- a/examples/api/src/service/filter/logger_filter.e +++ /dev/null @@ -1,54 +0,0 @@ -note - description: "Logger filter" - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -class - LOGGER_FILTER - - -inherit - WSF_URI_TEMPLATE_HANDLER - - APP_ABSTRACT_HANDLER - rename - set_esa_config as make - end - WSF_FILTER - -create - make - -feature -- Basic operations - - execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute the filter. - local - s: STRING_8 - do - log.write_debug (generator + ".execute") - create s.make (2048) - if attached req.content_type as l_type then - s.append ("[length=") - s.append_natural_64 (req.content_length_value) - s.append_character (']') - s.append_character (' ') - s.append (l_type.debug_output) - s.append_character ('%N') - end - - append_iterable_to ("Path parameters", req.path_parameters, s) - append_iterable_to ("Query parameters", req.query_parameters, s) - append_iterable_to ("Form parameters", req.form_parameters, s) - - if not s.is_empty then - log.write_debug (generator + ".execute" + s) - end - execute_next (req, res) - end - - -note - copyright: "2011-2012, Olivier Ligot, Jocelyn Fiat and others" - license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" -end diff --git a/examples/api/src/service/handler/app_abstract_handler.e b/examples/api/src/service/handler/app_abstract_handler.e deleted file mode 100644 index 62825a2..0000000 --- a/examples/api/src/service/handler/app_abstract_handler.e +++ /dev/null @@ -1,48 +0,0 @@ -note - description: "Abstrat Eiffel Support API Handler." - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -deferred class - APP_ABSTRACT_HANDLER - -inherit - WSF_HANDLER - - APP_HANDLER - - SHARED_CONNEG_HELPER - -feature -- Change - - set_esa_config (a_esa_config: like roc_config) - -- Set `roc_config' to `a_esa_condig'. - do - roc_config := a_esa_config - ensure - esa_config_set: roc_config = a_esa_config - end - -feature -- Access - - roc_config: ROC_CONFIG - -- Configuration. - - api_service: ROC_API_SERVICE - -- api Service. - do - Result := roc_config.api_service - end - - email_service: ROC_EMAIL_SERVICE - -- Email Service. - do - Result := roc_config.email_service - end - - is_web: BOOLEAN - do - Result := roc_config.is_web - end - -end diff --git a/examples/api/src/service/handler/app_handler.e b/examples/api/src/service/handler/app_handler.e deleted file mode 100644 index 1ce943f..0000000 --- a/examples/api/src/service/handler/app_handler.e +++ /dev/null @@ -1,98 +0,0 @@ -note - description: "Summary description for {ESA_HANDLER}." - date: "$Date: 2014-08-20 15:21:15 -0300 (mi., 20 ago. 2014) $" - revision: "$Revision: 95678 $" - -class - APP_HANDLER - -inherit - - SHARED_LOGGER - -feature -- User - - current_user_name (req: WSF_REQUEST): detachable READABLE_STRING_32 - -- Current user name or Void in case of Guest users. - note - EIS: "src=eiffel:?class=AUTHENTICATION_FILTER&feature=execute" - do - if attached {CMS_USER} current_user (req) as l_user then - Result := l_user.name - end - end - - current_user (req: WSF_REQUEST): detachable CMS_USER - -- Current user or Void in case of Guest user. - note - EIS: "eiffel:?class=AUTHENTICATION_FILTER&feature=execute" - do - if attached {CMS_USER} req.execution_variable ("user") as l_user then - Result := l_user - end - end - -feature -- Media Type - - current_media_type (req: WSF_REQUEST): detachable READABLE_STRING_32 - -- Current media type or Void if it's not acceptable. - do - if attached {STRING} req.execution_variable ("media_type") as l_type then - Result := l_type - end - end - -feature -- Absolute Host - - absolute_host (req: WSF_REQUEST; a_path:STRING): STRING - do - Result := req.absolute_script_url (a_path) - if Result.last_index_of ('/', Result.count) = Result.count then - Result.remove_tail (1) - end - log.write_debug (generator + ".absolute_host " + Result ) - end - -feature -- Compression - - current_compression (req: WSF_REQUEST): detachable READABLE_STRING_32 - -- Current compression encoding or Void if it's not acceptable. - do - if attached {STRING} req.execution_variable ("compression") as l_encoding then - Result := l_encoding - end - end - -feature {NONE} -- Implementations - - append_iterable_to (a_title: READABLE_STRING_8; it: detachable ITERABLE [WSF_VALUE]; s: STRING_8) - local - n: INTEGER - do - if it /= Void then - across it as c loop - n := n + 1 - end - if n > 0 then - s.append (a_title) - s.append_character (':') - s.append_character ('%N') - across - it as c - loop - s.append (" - ") - s.append (c.item.url_encoded_name) - s.append_character (' ') - s.append_character ('{') - s.append (c.item.generating_type) - s.append_character ('}') - s.append_character ('=') - s.append (c.item.debug_output.as_string_8) - s.append_character ('%N') - end - end - end - end - - -end diff --git a/examples/api/src/service/handler/navigation_handler.e b/examples/api/src/service/handler/navigation_handler.e deleted file mode 100644 index fa93802..0000000 --- a/examples/api/src/service/handler/navigation_handler.e +++ /dev/null @@ -1,57 +0,0 @@ -note - description: "Summary description for {NAVIGATION_HANDLER}." - date: "$Date$" - revision: "$Revision$" - -class - NAVIGATION_HANDLER -inherit - APP_ABSTRACT_HANDLER - rename - set_esa_config as make - end - - WSF_FILTER - - WSF_URI_HANDLER - rename - execute as uri_execute, - new_mapping as new_uri_mapping - end - - WSF_RESOURCE_HANDLER_HELPER - redefine - do_get - end - - REFACTORING_HELPER - -create - make - -feature -- execute - - execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - execute_next (req, res) - end - - uri_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - end - -feature -- HTTP Methods - - do_get (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - l_page: ROC_RESPONSE - do - create l_page.make (req, "modules/navigation.tpl") - l_page.send_to (res) - end -end diff --git a/examples/api/src/service/handler/node_content_handler.e b/examples/api/src/service/handler/node_content_handler.e deleted file mode 100644 index 286929b..0000000 --- a/examples/api/src/service/handler/node_content_handler.e +++ /dev/null @@ -1,190 +0,0 @@ -note - description: "Summary description for {NEW_CONTENT_HANDLER}." - date: "$Date$" - revision: "$Revision$" - -class - NODE_CONTENT_HANDLER - -inherit - APP_ABSTRACT_HANDLER - rename - set_esa_config as make - end - - WSF_FILTER - - WSF_URI_HANDLER - rename - execute as uri_execute, - new_mapping as new_uri_mapping - end - - WSF_URI_TEMPLATE_HANDLER - rename - execute as uri_template_execute, - new_mapping as new_uri_template_mapping - select - new_uri_template_mapping - end - - WSF_RESOURCE_HANDLER_HELPER - redefine - do_get, - do_post, - do_put - end - - REFACTORING_HELPER - -create - make - -feature -- execute - - execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - execute_next (req, res) - end - - uri_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - end - - uri_template_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - end - -feature -- HTTP Methods - - do_get (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - l_page: ROC_RESPONSE - do - if attached current_user_name (req) then - -- Existing node - if attached {WSF_STRING} req.path_parameter ("id") as l_id then - if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - create l_page.make (req, "modules/node_content.tpl") - l_page.set_value (l_node.content, "content") - l_page.set_value (l_id.value, "id") - l_page.set_value (roc_config.is_web, "web") - l_page.set_value (roc_config.is_html, "html") - l_page.send_to (res) - else - do_error (req, res, l_id) - end - else - -- Todo extract method - create l_page.make (req, "master2/error.tpl") - l_page.set_value ("500", "code") - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - else - (create {ROC_RESPONSE}.make(req,"")).new_response_unauthorized (req, res) - end - end - - - do_post (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - u_node: CMS_NODE - l_page: ROC_RESPONSE - do - if attached current_user_name (req) then - if attached {WSF_STRING} req.path_parameter ("id") as l_id then - if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - if attached {WSF_STRING} req.form_parameter ("method") as l_method then - if l_method.is_case_insensitive_equal ("PUT") then - do_put (req, res) - else - create l_page.make (req, "master2/error.tpl") - l_page.set_value ("500", "code") - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - end - else - do_error (req, res, l_id) - end - else - create l_page.make (req, "master2/error.tpl") - l_page.set_value ("500", "code") - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - else - (create {ROC_RESPONSE}.make(req,"")).new_response_unauthorized (req, res) - end - end - - do_put (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - u_node: CMS_NODE - l_page: ROC_RESPONSE - do - to_implement ("Check if user has permissions") - if attached current_user (req) as l_user then - if attached {WSF_STRING} req.path_parameter ("id") as l_id then - if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - u_node := extract_data_form (req) - u_node.set_id (l_id.integer_value) - api_service.update_node_content (l_user.id, u_node.id, u_node.content) - (create {ROC_RESPONSE}.make (req, "")).new_response_redirect (req, res, req.absolute_script_url ("")) - else - do_error (req, res, l_id) - end - else - create l_page.make (req, "master2/error.tpl") - l_page.set_value ("500", "code") - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - else - (create {ROC_RESPONSE}.make(req,"")).new_response_unauthorized (req, res) - end - end -feature -- Error - - do_error (req: WSF_REQUEST; res: WSF_RESPONSE; a_id: WSF_STRING) - -- Handling error. - local - l_page: ROC_RESPONSE - do - create l_page.make (req, "master2/error.tpl") - if a_id.is_integer then - -- resource not found - l_page.set_value ("404", "code") - else - -- bad request - l_page.set_value ("400", "code") - end - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to(res) - end - - -feature -- {NONE} Form data - - - extract_data_form (req: WSF_REQUEST): CMS_NODE - -- Extract request form data and build a object - -- Node - do - create Result.make ("", "", "") - if attached {WSF_STRING}req.form_parameter ("content") as l_content then - Result.set_content (l_content.value) - end - end - -end diff --git a/examples/api/src/service/handler/node_handler.e b/examples/api/src/service/handler/node_handler.e deleted file mode 100644 index a0183c7..0000000 --- a/examples/api/src/service/handler/node_handler.e +++ /dev/null @@ -1,225 +0,0 @@ -note - description: "Summary description for {NODE_HANDLER}." - date: "$Date$" - revision: "$Revision$" - -class - NODE_HANDLER - -inherit - - APP_ABSTRACT_HANDLER - rename - set_esa_config as make - end - - WSF_FILTER - - WSF_URI_HANDLER - rename - execute as uri_execute, - new_mapping as new_uri_mapping - end - - WSF_URI_TEMPLATE_HANDLER - rename - execute as uri_template_execute, - new_mapping as new_uri_template_mapping - select - new_uri_template_mapping - end - - WSF_RESOURCE_HANDLER_HELPER - redefine - do_get, - do_post, - do_put, - do_delete - end - - REFACTORING_HELPER - -create - make - -feature -- execute - - execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - execute_next (req, res) - end - - uri_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - end - - uri_template_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - end - -feature -- HTTP Methods - - do_get (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - l_page: ROC_RESPONSE - do - -- Existing node - if attached {WSF_STRING} req.path_parameter ("id") as l_id then - if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - create l_page.make (req, "modules/node.tpl") - l_page.set_value (l_node, "node") - l_page.set_value (roc_config.is_web, "web") - l_page.set_value (roc_config.is_html, "html") - l_page.send_to (res) - else - do_error (req, res, l_id) - end - else - -- Factory - new_node (req, res) - end - end - - do_post (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - u_node: CMS_NODE - l_page: ROC_RESPONSE - do - to_implement ("Check user permissions!!!") - if attached current_user (req) as l_user then - if attached {WSF_STRING} req.path_parameter ("id") as l_id then - if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - if attached {WSF_STRING} req.form_parameter ("method") as l_method then - if l_method.is_case_insensitive_equal ("DELETE") then - do_delete (req, res) - elseif l_method.is_case_insensitive_equal ("PUT") then - do_put (req, res) - else - create l_page.make (req, "master2/error.tpl") - l_page.set_value ("500", "code") - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - end - else - do_error (req, res, l_id) - end - else - -- New node - u_node := extract_data_form (req) - u_node.set_author (l_user) - api_service.new_node (u_node) - (create {ROC_RESPONSE}.make (req, "")).new_response_redirect (req, res, req.absolute_script_url ("")) - end - else - (create {ROC_RESPONSE}.make(req,"")).new_response_unauthorized (req, res) - end - end - - do_put (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - u_node: CMS_NODE - do - - if attached current_user (req) as l_user then - if attached {WSF_STRING} req.path_parameter ("id") as l_id then - if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - u_node := extract_data_form (req) - u_node.set_id (l_id.integer_value) - api_service.update_node (l_user.id,u_node) - (create {ROC_RESPONSE}.make (req, "")).new_response_redirect (req, res, req.absolute_script_url ("")) - else - do_error (req, res, l_id) - end - else - -- Internal server error - end - else - (create {ROC_RESPONSE}.make(req,"")).new_response_unauthorized (req, res) - end - - end - - do_delete (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - do - if attached current_user_name (req) then - if attached {WSF_STRING} req.path_parameter ("id") as l_id then - if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - api_service.delete_node (l_id.integer_value) - (create {ROC_RESPONSE}.make (req, "")).new_response_redirect (req, res, req.absolute_script_url ("")) - else - do_error (req, res, l_id) - end - else - -- Internal server error - end - else - (create {ROC_RESPONSE}.make(req,"")).new_response_unauthorized (req, res) - end - end - -feature -- Error - - do_error (req: WSF_REQUEST; res: WSF_RESPONSE; a_id: WSF_STRING) - -- Handling error. - local - l_page: ROC_RESPONSE - do - create l_page.make (req, "master2/error.tpl") - if a_id.is_integer then - -- resource not found - l_page.set_value ("404", "code") - else - -- bad request - l_page.set_value ("400", "code") - end - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - -feature {NONE} -- Node - - new_node (req: WSF_REQUEST; res: WSF_RESPONSE) - local - l_page: ROC_RESPONSE - do - if attached current_user_name (req) then - create l_page.make (req, "modules/node.tpl") - l_page.set_value (roc_config.is_web, "web") - l_page.set_value (roc_config.is_html, "html") - - l_page.send_to (res) - else - (create {ROC_RESPONSE}.make (req, "")).new_response_unauthorized (req, res) - end - end - -feature -- {NONE} Form data - - extract_data_form (req: WSF_REQUEST): CMS_NODE - -- Extract request form data and build a object - -- Node - do - create Result.make ("", "", "") - if attached {WSF_STRING} req.form_parameter ("title") as l_title then - Result.set_title (l_title.value) - end - if attached {WSF_STRING} req.form_parameter ("summary") as l_summary then - Result.set_summary (l_summary.value) - end - if attached {WSF_STRING} req.form_parameter ("content") as l_content then - Result.set_content (l_content.value) - end - end - -end diff --git a/examples/api/src/service/handler/node_summary_handler.e b/examples/api/src/service/handler/node_summary_handler.e deleted file mode 100644 index 4a4f995..0000000 --- a/examples/api/src/service/handler/node_summary_handler.e +++ /dev/null @@ -1,199 +0,0 @@ -note - description: "Summary description for {NODE_SUMMARY_HANDLER}." - date: "$Date$" - revision: "$Revision$" - -class - NODE_SUMMARY_HANDLER - -inherit - APP_ABSTRACT_HANDLER - rename - set_esa_config as make - end - - WSF_FILTER - - WSF_URI_HANDLER - rename - execute as uri_execute, - new_mapping as new_uri_mapping - end - - WSF_URI_TEMPLATE_HANDLER - rename - execute as uri_template_execute, - new_mapping as new_uri_template_mapping - select - new_uri_template_mapping - end - - WSF_RESOURCE_HANDLER_HELPER - redefine - do_get, - do_post, - do_put - end - - REFACTORING_HELPER - -create - make - -feature -- execute - - execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - execute_next (req, res) - end - - uri_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - end - - uri_template_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - end - -feature -- HTTP Methods - - do_get (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - l_page: ROC_RESPONSE - do - if attached current_user_name (req) then - -- Existing node - if attached {WSF_STRING} req.path_parameter ("id") as l_id then - if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - create l_page.make (req, "modules/node_summary.tpl") - l_page.set_value (l_node.summary, "summary") - l_page.set_value (roc_config.is_web, "web") - l_page.set_value (roc_config.is_html, "html") - l_page.set_value (l_id.value, "id") - l_page.send_to (res) - else - do_error (req, res, l_id) - end - else - create l_page.make (req, "master2/error.tpl") - l_page.set_value ("500", "code") - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - else - (create {ROC_RESPONSE}.make(req,"")).new_response_unauthorized (req, res) - end - end - - - do_post (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - u_node: CMS_NODE - l_page: ROC_RESPONSE - do - if attached current_user_name (req) then - if attached {WSF_STRING} req.path_parameter ("id") as l_id then - if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - if attached {WSF_STRING} req.form_parameter ("method") as l_method then - if l_method.is_case_insensitive_equal ("PUT") then - do_put (req, res) - else - create l_page.make (req, "master2/error.tpl") - l_page.set_value ("500", "code") - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - end - else - do_error (req, res, l_id) - end - else - create l_page.make (req, "master2/error.tpl") - l_page.set_value ("500", "code") - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - else - (create {ROC_RESPONSE}.make(req,"")).new_response_unauthorized (req, res) - end - end - - do_put (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - u_node: CMS_NODE - l_page: ROC_RESPONSE - do - to_implement ("Check if user has permissions!!!") - if attached current_user (req) as l_user then - if attached {WSF_STRING} req.path_parameter ("id") as l_id then - if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - u_node := extract_data_form (req) - u_node.set_id (l_id.integer_value) - api_service.update_node_summary (l_user.id,u_node.id, u_node.summary) - (create {ROC_RESPONSE}.make (req, "")).new_response_redirect (req, res, req.absolute_script_url ("")) - else - do_error (req, res, l_id) - end - else - create l_page.make (req, "master2/error.tpl") - l_page.set_value ("500", "code") - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - else - (create {ROC_RESPONSE}.make(req,"")).new_response_unauthorized (req, res) - end - end - -feature -- Error - - do_error (req: WSF_REQUEST; res: WSF_RESPONSE; a_id: WSF_STRING) - -- Handling error. - local - l_page: ROC_RESPONSE - do - create l_page.make (req, "master2/error.tpl") - if a_id.is_integer then - -- resource not found - l_page.set_value ("404", "code") - else - -- bad request - l_page.set_value ("400", "code") - end - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to(res) - end - -feature {NONE} -- Node - - new_node (req: WSF_REQUEST; res: WSF_RESPONSE) - local - l_page: ROC_RESPONSE - do - create l_page.make (req, "modules/node.tpl") - l_page.send_to (res) - end - -feature -- {NONE} Form data - - - extract_data_form (req: WSF_REQUEST): CMS_NODE - -- Extract request form data and build a object - -- Node - do - create Result.make ("", "", "") - if attached {WSF_STRING}req.form_parameter ("summary") as l_summary then - Result.set_summary (l_summary.value) - end - end - -end diff --git a/examples/api/src/service/handler/node_title_handler.e b/examples/api/src/service/handler/node_title_handler.e deleted file mode 100644 index 4c6665c..0000000 --- a/examples/api/src/service/handler/node_title_handler.e +++ /dev/null @@ -1,199 +0,0 @@ -note - description: "Summary description for {NODE_TITLE_HANDLER}." - author: "" - date: "$Date$" - revision: "$Revision$" - -class - NODE_TITLE_HANDLER - -inherit - - APP_ABSTRACT_HANDLER - rename - set_esa_config as make - end - - WSF_FILTER - - WSF_URI_HANDLER - rename - execute as uri_execute, - new_mapping as new_uri_mapping - end - - WSF_URI_TEMPLATE_HANDLER - rename - execute as uri_template_execute, - new_mapping as new_uri_template_mapping - select - new_uri_template_mapping - end - - WSF_RESOURCE_HANDLER_HELPER - redefine - do_get, - do_post, - do_put - end - - REFACTORING_HELPER - -create - make - -feature -- execute - - execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - execute_next (req, res) - end - - uri_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - end - - uri_template_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - end - -feature -- HTTP Methods - - do_get (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - l_page: ROC_RESPONSE - do - if attached current_user_name (req) as l_user then - -- Existing node - if attached {WSF_STRING} req.path_parameter ("id") as l_id then - if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - create l_page.make (req, "modules/node_title.tpl") - l_page.set_value (l_node.title, "title") - l_page.set_value (l_id.value, "id") - l_page.set_value (roc_config.is_web, "web") - l_page.set_value (roc_config.is_html, "html") - l_page.send_to (res) - else - do_error (req, res, l_id) - end - else - create l_page.make (req, "master2/error.tpl") - l_page.set_value ("500", "code") - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - else - (create {ROC_RESPONSE}.make(req,"")).new_response_unauthorized (req, res) - end - end - - do_post (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - u_node: CMS_NODE - l_page: ROC_RESPONSE - do - if attached current_user_name (req) as l_user then - if attached {WSF_STRING} req.path_parameter ("id") as l_id then - if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - if attached {WSF_STRING} req.form_parameter ("method") as l_method then - if l_method.is_case_insensitive_equal ("PUT") then - do_put (req, res) - else - create l_page.make (req, "master2/error.tpl") - l_page.set_value ("500", "code") - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - end - else - do_error (req, res, l_id) - end - else - create l_page.make (req, "master2/error.tpl") - l_page.set_value ("500", "code") - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - else - (create {ROC_RESPONSE}.make(req,"")).new_response_unauthorized (req, res) - end - end - - do_put (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - u_node: CMS_NODE - l_page: ROC_RESPONSE - do - to_implement ("Check if user has permissions") - if attached current_user (req) as l_user then - if attached {WSF_STRING} req.path_parameter ("id") as l_id then - if l_id.is_integer and then attached {CMS_NODE} api_service.node (l_id.integer_value) as l_node then - u_node := extract_data_form (req) - u_node.set_id (l_id.integer_value) - api_service.update_node_title (l_user.id,u_node.id, u_node.title) - (create {ROC_RESPONSE}.make (req, "")).new_response_redirect (req, res, req.absolute_script_url ("")) - else - do_error (req, res, l_id) - end - else - create l_page.make (req, "master2/error.tpl") - l_page.set_value ("500", "code") - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - else - (create {ROC_RESPONSE}.make(req,"")).new_response_unauthorized (req, res) - end - end - -feature -- Error - - do_error (req: WSF_REQUEST; res: WSF_RESPONSE; a_id: WSF_STRING) - -- Handling error. - local - l_page: ROC_RESPONSE - do - create l_page.make (req, "master2/error.tpl") - if a_id.is_integer then - -- resource not found - l_page.set_value ("404", "code") - else - -- bad request - l_page.set_value ("400", "code") - end - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - -feature {NONE} -- Node - - new_node (req: WSF_REQUEST; res: WSF_RESPONSE) - local - l_page: ROC_RESPONSE - do - create l_page.make (req, "modules/node.tpl") - l_page.send_to (res) - end - -feature -- {NONE} Form data - - extract_data_form (req: WSF_REQUEST): CMS_NODE - -- Extract request form data and build a object - -- Node - do - create Result.make ("", "", "") - if attached {WSF_STRING} req.form_parameter ("title") as l_title then - Result.set_title (l_title.value) - end - end - -end diff --git a/examples/api/src/service/handler/nodes_handler.e b/examples/api/src/service/handler/nodes_handler.e deleted file mode 100644 index b98354e..0000000 --- a/examples/api/src/service/handler/nodes_handler.e +++ /dev/null @@ -1,62 +0,0 @@ -note - description: "Summary description for {NODES_HANDLER}." - date: "$Date$" - revision: "$Revision$" - -class - NODES_HANDLER - -inherit - APP_ABSTRACT_HANDLER - rename - set_esa_config as make - end - - WSF_FILTER - - WSF_URI_HANDLER - rename - execute as uri_execute, - new_mapping as new_uri_mapping - end - - WSF_RESOURCE_HANDLER_HELPER - redefine - do_get - end - - REFACTORING_HELPER - -create - make - -feature -- execute - - execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - execute_next (req, res) - end - - uri_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - end - -feature -- HTTP Methods - - do_get (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - l_page: ROC_RESPONSE - do - - create l_page.make (req, "modules/nodes.tpl") - l_page.set_value (api_service.nodes, "nodes") - l_page.set_value (roc_config.is_web, "web") - l_page.set_value (roc_config.is_html, "html") - l_page.send_to (res) - end -end diff --git a/examples/api/src/service/handler/roc_login_handler.e b/examples/api/src/service/handler/roc_login_handler.e deleted file mode 100644 index ff39ced..0000000 --- a/examples/api/src/service/handler/roc_login_handler.e +++ /dev/null @@ -1,63 +0,0 @@ -note - description: "Handle Login using Basic Authentication" - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -class - ROC_LOGIN_HANDLER - -inherit - APP_ABSTRACT_HANDLER - rename - set_esa_config as make - end - - WSF_URI_HANDLER - rename - execute as uri_execute, - new_mapping as new_uri_mapping - end - - WSF_FILTER - - - WSF_RESOURCE_HANDLER_HELPER - redefine - do_get - end - - REFACTORING_HELPER - -create - make - -feature -- execute - - execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler. - do - execute_methods (req, res) - execute_next (req, res) - end - - uri_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler. - do - execute_methods (req, res) - end - -feature -- HTTP Methods - - do_get (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - do - if attached {STRING_32} current_user_name (req) as l_user then - (create {ROC_RESPONSE}.make(req,"")).new_response_redirect (req, res, req.absolute_script_url("")) - else - (create {ROC_RESPONSE}.make(req,"")).new_response_authenticate (req, res) - end - end - - - -end diff --git a/examples/api/src/service/handler/roc_logoff_handler.e b/examples/api/src/service/handler/roc_logoff_handler.e deleted file mode 100644 index 5e85400..0000000 --- a/examples/api/src/service/handler/roc_logoff_handler.e +++ /dev/null @@ -1,60 +0,0 @@ -note - description: "Handle Logoff for Basic Authentication" - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -class - ROC_LOGOFF_HANDLER - -inherit - - APP_ABSTRACT_HANDLER - rename - set_esa_config as make - end - - WSF_URI_HANDLER - rename - execute as uri_execute, - new_mapping as new_uri_mapping - end - - WSF_RESOURCE_HANDLER_HELPER - redefine - do_get - end - - REFACTORING_HELPER - -create - make - -feature -- execute - - execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler. - do - execute_methods (req, res) - end - - uri_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler. - do - execute_methods (req, res) - end - -feature -- HTTP Methods - - do_get (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - do - log.write_information(generator + ".do_get Processing logoff") - if attached req.query_parameter ("prompt") as l_prompt then - (create {ROC_RESPONSE}.make(req,"")).new_response_unauthorized (req, res) - else - req.unset_execution_variable ("user") - (create {ROC_RESPONSE}.make(req,"master2/logoff.tpl")).new_response_denied (req, res) - end - end - -end diff --git a/examples/api/src/service/handler/roc_root_handler.e b/examples/api/src/service/handler/roc_root_handler.e deleted file mode 100644 index 7574d08..0000000 --- a/examples/api/src/service/handler/roc_root_handler.e +++ /dev/null @@ -1,63 +0,0 @@ -note - description: "ROOT_HANDLER." - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -class - ROC_ROOT_HANDLER - -inherit - APP_ABSTRACT_HANDLER - rename - set_esa_config as make - end - - WSF_FILTER - - WSF_URI_HANDLER - rename - execute as uri_execute, - new_mapping as new_uri_mapping - end - - WSF_RESOURCE_HANDLER_HELPER - redefine - do_get - end - - REFACTORING_HELPER - -create - make - -feature -- execute - - execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - execute_next (req, res) - end - - uri_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - end - -feature -- HTTP Methods - - do_get (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - l_page: ROC_RESPONSE - do - - create l_page.make (req, "layout2.tpl") - l_page.set_value (api_service.recent_nodes (0,5), "nodes") - l_page.set_value (is_web, "web") - l_page.set_value (roc_config.is_html, "html") - l_page.send_to (res) - end - -end diff --git a/examples/api/src/service/handler/user_handler.e b/examples/api/src/service/handler/user_handler.e deleted file mode 100644 index ab4f4c7..0000000 --- a/examples/api/src/service/handler/user_handler.e +++ /dev/null @@ -1,163 +0,0 @@ -note - description: "Summary description for {USER_HANDLER}." - author: "" - date: "$Date$" - revision: "$Revision$" - -class - USER_HANDLER - -inherit - - APP_ABSTRACT_HANDLER - rename - set_esa_config as make - end - - WSF_FILTER - - WSF_URI_HANDLER - rename - execute as uri_execute, - new_mapping as new_uri_mapping - end - - WSF_URI_TEMPLATE_HANDLER - rename - execute as uri_template_execute, - new_mapping as new_uri_template_mapping - select - new_uri_template_mapping - end - - WSF_RESOURCE_HANDLER_HELPER - redefine - do_get, - do_post, - do_put, - do_delete - end - - REFACTORING_HELPER - -create - make - -feature -- execute - - execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - execute_next (req, res) - end - - uri_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - end - - uri_template_execute (req: WSF_REQUEST; res: WSF_RESPONSE) - -- Execute request handler - do - execute_methods (req, res) - end - -feature -- HTTP Methods - - do_get (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - l_page: ROC_RESPONSE - do - -- Existing node - create l_page.make (req, "modules/register.tpl") - l_page.set_value (roc_config.is_web, "web") - l_page.set_value (roc_config.is_html, "html") - l_page.send_to (res) - end - - do_post (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - u_node: CMS_NODE - l_page: ROC_RESPONSE - do - -- New user - api_service.new_user (extract_data_form (req)) - if api_service.successful then - (create {ROC_RESPONSE}.make (req, "")).new_response_redirect (req, res, req.absolute_script_url ("")) - else - - end - end - - do_put (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - local - u_node: CMS_NODE - do - end - - do_delete (req: WSF_REQUEST; res: WSF_RESPONSE) - -- - do - end - -feature -- Error - - do_error (req: WSF_REQUEST; res: WSF_RESPONSE; a_id: WSF_STRING) - -- Handling error. - local - l_page: ROC_RESPONSE - do - create l_page.make (req, "master2/error.tpl") - if a_id.is_integer then - -- resource not found - l_page.set_value ("404", "code") - else - -- bad request - l_page.set_value ("400", "code") - end - l_page.set_value (req.absolute_script_url (req.path_info), "request") - l_page.send_to (res) - end - -feature {NONE} -- Node - - new_node (req: WSF_REQUEST; res: WSF_RESPONSE) - local - l_page: ROC_RESPONSE - do - if attached current_user_name (req) then - create l_page.make (req, "modules/node.tpl") - l_page.send_to (res) - else - (create {ROC_RESPONSE}.make (req, "")).new_response_unauthorized (req, res) - end - end - -feature -- {NONE} Form data - - extract_data_form (req: WSF_REQUEST): CMS_USER - -- Extract request form data and build a object - -- user - do - create Result.make ("") - if attached {WSF_STRING} req.form_parameter ("username") as l_username then - Result.set_name (l_username) - end - if - attached {WSF_STRING} req.form_parameter ("password") as l_password and then - attached {WSF_STRING} req.form_parameter ("check_password") as l_check_password and then - l_password.value.is_case_insensitive_equal (l_check_password.value) - then - Result.set_password (l_password) - end - if attached {WSF_STRING} req.form_parameter ("email") as l_email then - Result.set_email (l_email) - end - end - -end diff --git a/examples/api/src/service/roc_api_service.e b/examples/api/src/service/roc_api_service.e deleted file mode 100644 index c4e7437..0000000 --- a/examples/api/src/service/roc_api_service.e +++ /dev/null @@ -1,126 +0,0 @@ -note - description: "API Service facade to the underlying business logic" - date: "$Date: 2014-08-20 15:21:15 -0300 (mi., 20 ago. 2014) $" - revision: "$Revision: 95678 $" - -class - ROC_API_SERVICE - -inherit - - SHARED_ERROR - REFACTORING_HELPER - - -create make - - -feature -- Initialize - - make (a_storage: CMS_STORAGE) - -- Create the API service with an storege `a_storage'. - do - storage := a_storage - set_successful - ensure - storage_set: storage = a_storage - end - -feature -- Access - - login_valid (l_auth_login, l_auth_password: READABLE_STRING_32): BOOLEAN - local - l_security: SECURITY_PROVIDER - do - Result := storage.is_valid_credential (l_auth_login, l_auth_password) - end - -feature -- Access: Node - - nodes: LIST[CMS_NODE] - -- List of nodes. - do - fixme ("Implementation") - Result := storage.recent_nodes (0, 10) - end - - recent_nodes (a_offset, a_rows: INTEGER): LIST[CMS_NODE] - -- List of the `a_rows' most recent nodes starting from `a_offset'. - do - Result := storage.recent_nodes (a_offset, a_rows) - end - - node (a_id: INTEGER_64): detachable CMS_NODE - -- Node by ID. - do - fixme ("Check preconditions") - Result := storage.node (a_id) - end - - -feature -- Change: Node - - new_node (a_node: CMS_NODE) - -- Add a new node - do - storage.save_node (a_node) - end - - delete_node (a_id: INTEGER_64) - do - storage.delete_node (a_id) - end - - update_node (a_id: like {CMS_USER}.id; a_node: CMS_NODE) - do - storage.update_node (a_id,a_node) - end - - update_node_title (a_id: like {CMS_USER}.id; a_node_id: like {CMS_NODE}.id; a_title: READABLE_STRING_32) - do - fixme ("Check preconditions") - storage.update_node_title (a_id,a_node_id,a_title) - end - - update_node_summary (a_id: like {CMS_USER}.id; a_node_id: like {CMS_NODE}.id; a_summary: READABLE_STRING_32) - do - fixme ("Check preconditions") - storage.update_node_summary (a_id,a_node_id, a_summary) - end - - update_node_content (a_id: like {CMS_USER}.id; a_node_id: like {CMS_NODE}.id; a_content: READABLE_STRING_32) - do - fixme ("Check preconditions") - storage.update_node_content (a_id,a_node_id, a_content) - end - - -feature -- Access: User - - user_by_name (a_username: READABLE_STRING_32): detachable CMS_USER - do - Result := storage.user_by_name (a_username) - end -feature -- Change User - - new_user (a_user: CMS_USER) - -- Add a new user `a_user'. - do - if - attached a_user.password as l_password and then - attached a_user.email as l_email - then - storage.save_user (a_user) - else - fixme ("Add error") - end - end - - -feature {NONE} -- Implemenataion - - - storage: CMS_STORAGE - -- Persistence storage - -end diff --git a/examples/api/src/service/roc_email_service.e b/examples/api/src/service/roc_email_service.e deleted file mode 100644 index fdf8f0c..0000000 --- a/examples/api/src/service/roc_email_service.e +++ /dev/null @@ -1,127 +0,0 @@ -note - description: "Provides email access" - date: "$Date: 2014-08-20 15:21:15 -0300 (mi., 20 ago. 2014) $" - revision: "$Revision: 95678 $" - -class - ROC_EMAIL_SERVICE - -inherit - - SHARED_ERROR - -create - make - -feature {NONE} -- Initialization - - make (a_smtp_server: READABLE_STRING_32) - -- Create an instance of {ESA_EMAIL_SERVICE} with an smtp_server `a_smtp_server'. - -- Using "noreplies@eiffel.com" as admin email. - local - l_address_factory: INET_ADDRESS_FACTORY - do - -- Get local host name needed in creation of SMTP_PROTOCOL. - create l_address_factory - create smtp_protocol.make (a_smtp_server, l_address_factory.create_localhost.host_name) - set_successful - end - - admin_email: IMMUTABLE_STRING_8 - -- Administrator email. - once - Result := "noreplies@eiffel.com" - end - - webmaster_email: IMMUTABLE_STRING_8 - -- Webmaster email. - once - Result := "webmaster@eiffel.com" - end - - smtp_protocol: SMTP_PROTOCOL - -- SMTP protocol. - -feature -- Basic Operations - - send_template_email (a_to, a_token, a_host: STRING) - -- Send successful registration message containing activation code `a_token' to `a_to'. - require - attached_to: a_to /= Void - attached_token: a_token /= Void - attached_host: a_host /= Void - local - l_content: STRING - l_url: URL_ENCODER - l_path: PATH - l_html: HTML_ENCODER - l_email: EMAIL - do - if successful then - log.write_information (generator + ".send_post_registration_email to [" + a_to + "]" ) - create l_path.make_current - create l_url - create l_html - create l_content.make (1024) - l_content.append ("Thank you for registering at CMS.%N%NTo complete your registration, please click on this link to activate your account:%N%N") - l_content.append (a_host) - l_content.append ("/activation?code=") - l_content.append (l_url.encoded_string (a_token)) - l_content.append ("&email=") - l_content.append (l_url.encoded_string (a_to)) - l_content.append ("%N%NOnce there, please enter the following information and then click the Activate Account, button.%N%N") - l_content.append ("Your e-mail: ") - l_content.append (l_html.encoded_string (a_to)) - l_content.append ("%N%NYour activation code: ") - l_content.append (l_html.encoded_string(a_token)) - l_content.append ("%N%NThank you for joining us.%N%N CMS team.") - l_content.append (Disclaimer) - -- Create our message. - create l_email.make_with_entry (admin_email, a_to) - l_email.set_message (l_content) - l_email.add_header_entry ({EMAIL_CONSTANTS}.H_subject, "CMS Site: Account Activation") - send_email (l_email) - end - end - - send_shutdown_email (a_message: READABLE_STRING_GENERAL) - -- Send email shutdown cause by an unexpected condition. - local - l_email: EMAIL - l_content: STRING - do - create l_email.make_with_entry (admin_email, webmaster_email) - create l_content.make (2048) - l_content.append (a_message.as_string_32) - l_email.set_message (l_content) - l_email.add_header_entry ({EMAIL_CONSTANTS}.H_subject, "ROC API exception") - send_email (l_email) - end - -feature {NONE} -- Implementation - - send_email (a_email: EMAIL) - -- Send the email represented by `a_email'. - local - l_retried: BOOLEAN - do - if not l_retried then - log.write_information (generator + ".send_email Process send email.") - smtp_protocol.initiate_protocol - smtp_protocol.transfer (a_email) - smtp_protocol.close_protocol - log.write_information (generator + ".send_email Email sent.") - set_successful - else - log.write_error (generator + ".send_email Email not send" + last_error_message ) - end - rescue - set_last_error_from_exception (generator + ".send_email") - l_retried := True - retry - end - - Disclaimer: STRING = "This email is generated automatically, and the address is not monitored for responses. If you try contacting us by using %"reply%", you will not receive an answer." - -- Email not monitored disclaimer. - -end diff --git a/examples/api/src/service/roc_rest_api.e b/examples/api/src/service/roc_rest_api.e deleted file mode 100644 index 65aa451..0000000 --- a/examples/api/src/service/roc_rest_api.e +++ /dev/null @@ -1,185 +0,0 @@ -note - description: "[ - REST API configuration - We manage URI and Uri templates using Routers. They are used to delegate calls (to the corresponing handlers) based on a URI template. - We define a Rooter and attach handlers to it. - ]" - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -class - ROC_REST_API - -inherit - - ROC_ABSTRACT_API - -create - make - -feature -- Initialization - - setup_router - -- Setup `router'. - local - fhdl: WSF_FILE_SYSTEM_HANDLER - do - configure_api_root - configure_api_node - configure_api_navigation - configure_api_login - configure_api_nodes - configure_api_node_title - configure_api_node_summary - configure_api_node_content - configure_api_logoff - configure_api_register - - - create fhdl.make_hidden_with_path (layout.www_path) - fhdl.disable_index - fhdl.set_not_found_handler (agent (ia_uri: READABLE_STRING_8; ia_req: WSF_REQUEST; ia_res: WSF_RESPONSE) - do - execute_default (ia_req, ia_res) - end) - router.handle_with_request_methods ("/", fhdl, router.methods_GET) - end - -feature -- Configure Resources Routes - - configure_api_root - local - l_root_handler:ROC_ROOT_HANDLER - l_methods: WSF_REQUEST_METHODS - do - create l_root_handler.make (roc_config) - create l_methods - l_methods.enable_get - router.handle_with_request_methods ("/", l_root_handler, l_methods) - end - - configure_api_node - local - l_report_handler: NODE_HANDLER - l_methods: WSF_REQUEST_METHODS - do - create l_report_handler.make (roc_config) - create l_methods - l_methods.enable_get - l_methods.enable_post - l_methods.enable_put - router.handle_with_request_methods ("/node", l_report_handler, l_methods) - - create l_report_handler.make (roc_config) - create l_methods - l_methods.enable_get - l_methods.enable_post - l_methods.enable_put - l_methods.enable_delete - router.handle_with_request_methods ("/node/{id}", l_report_handler, l_methods) - end - - configure_api_navigation - local - l_report_handler: NAVIGATION_HANDLER - l_methods: WSF_REQUEST_METHODS - do - create l_report_handler.make (roc_config) - create l_methods - l_methods.enable_get - router.handle_with_request_methods ("/navigation", l_report_handler, l_methods) - end - - configure_api_login - local - l_report_handler: ROC_LOGIN_HANDLER - l_methods: WSF_REQUEST_METHODS - do - create l_report_handler.make (roc_config) - create l_methods - l_methods.enable_get - router.handle_with_request_methods ("/login", l_report_handler, l_methods) - end - - configure_api_logoff - local - l_report_handler: ROC_LOGOFF_HANDLER - l_methods: WSF_REQUEST_METHODS - do - create l_report_handler.make (roc_config) - create l_methods - l_methods.enable_get - router.handle_with_request_methods ("/logoff", l_report_handler, l_methods) - end - - - configure_api_nodes - local - l_report_handler: NODES_HANDLER - l_methods: WSF_REQUEST_METHODS - do - create l_report_handler.make (roc_config) - create l_methods - l_methods.enable_get - router.handle_with_request_methods ("/nodes", l_report_handler, l_methods) - end - - - configure_api_node_summary - local - l_report_handler: NODE_SUMMARY_HANDLER - l_methods: WSF_REQUEST_METHODS - do - create l_report_handler.make (roc_config) - create l_methods - l_methods.enable_get - l_methods.enable_post - l_methods.enable_put - router.handle_with_request_methods ("/node/{id}/summary", l_report_handler, l_methods) - end - - - configure_api_node_title - local - l_report_handler: NODE_TITLE_HANDLER - l_methods: WSF_REQUEST_METHODS - do - create l_report_handler.make (roc_config) - create l_methods - l_methods.enable_get - l_methods.enable_post - l_methods.enable_put - router.handle_with_request_methods ("/node/{id}/title", l_report_handler, l_methods) - end - - - configure_api_node_content - local - l_report_handler: NODE_CONTENT_HANDLER - l_methods: WSF_REQUEST_METHODS - do - create l_report_handler.make (roc_config) - create l_methods - l_methods.enable_get - l_methods.enable_post - l_methods.enable_put - router.handle_with_request_methods ("/node/{id}/content", l_report_handler, l_methods) - end - - - configure_api_register - local - l_report_handler: USER_HANDLER - l_methods: WSF_REQUEST_METHODS - do - create l_report_handler.make (roc_config) - create l_methods - l_methods.enable_get - l_methods.enable_post - l_methods.enable_put - router.handle_with_request_methods ("/user", l_report_handler, l_methods) - end - - - -end diff --git a/examples/api/src/service/shared_conneg_helper.e b/examples/api/src/service/shared_conneg_helper.e deleted file mode 100644 index 6748707..0000000 --- a/examples/api/src/service/shared_conneg_helper.e +++ /dev/null @@ -1,48 +0,0 @@ -note - description: "Conneg Helper" - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -class - SHARED_CONNEG_HELPER - - -feature -- Access - - conneg (req: WSF_REQUEST): SERVER_CONTENT_NEGOTIATION - -- Content negotiatior for all requests. - once - create Result.make ({HTTP_MIME_TYPES}.text_html, "en", "UTF-8", "identity") - end - - mime_types_supported (req: WSF_REQUEST): LIST [STRING] - -- All values for Accept header that `Current' can serve. - do - create {ARRAYED_LIST [STRING]} Result.make_from_array (<<{HTTP_MIME_TYPES}.text_html, "application/vnd.collection+json">>) - Result.compare_objects - ensure - mime_types_supported_includes_default: Result.has (conneg (req).default_media_type) - end - - media_type_variants (req: WSF_REQUEST): HTTP_ACCEPT_MEDIA_TYPE_VARIANTS - -- Media type negotiation. - do - Result := conneg (req).media_type_preference (mime_types_supported (req), req.http_accept) - end - - compression_supported (req: WSF_REQUEST): LIST [STRING] - -- All values for Accept-Encofing header that `Current' can serve. - do - create {ARRAYED_LIST [STRING]} Result.make_from_array (<<"identity","deflate">>) - Result.compare_objects - ensure - compression_supported_includes_default: Result.has (conneg (req).default_encoding) - end - - compression_variants (req: WSF_REQUEST): HTTP_ACCEPT_ENCODING_VARIANTS - -- Compression negotiation. - do - Result := conneg (req).encoding_preference (compression_supported (req), req.http_accept_encoding) - end - -end diff --git a/examples/api/src/validator/roc_input_validator.e b/examples/api/src/validator/roc_input_validator.e deleted file mode 100644 index 817eac0..0000000 --- a/examples/api/src/validator/roc_input_validator.e +++ /dev/null @@ -1,58 +0,0 @@ -note - description: "Provide input validation" - date: "$Date: 2014-08-08 16:02:11 -0300 (vi., 08 ago. 2014) $" - revision: "$Revision: 95593 $" - -deferred class - ROC_INPUT_VALIDATOR - -feature -- Basic Operations - - input_from (a_request: ITERABLE [WSF_VALUE]) - -- Update current object using parameters extracted from QUERY_STRING. - -- If there are errors they are set to the errors parameter. - do - if attached {STRING_TABLE[WSF_VALUE]} a_request as l_table_request then - validate (l_table_request) - end - end - -feature -- Validation - - validate (a_request: STRING_TABLE [WSF_VALUE]) - -- Validate input for control `a_request'. - deferred - end - - -feature -- Access - - acceptable_query_parameters: ARRAY[STRING] - -- The parameters are optionals, more parameters is a bad request, the order is not important. - deferred - end - -feature -- Errors - - errors: STRING_TABLE[READABLE_STRING_32] - -- Hash table with errors and descriptions. - - has_error: BOOLEAN - -- Has errors the last request? - do - Result := not errors.is_empty - end - - error_message: STRING - -- String representation. - do - create Result.make_empty - across errors as c loop - Result.append (c.item) - Result.append ("%N") - end - end - - - -end -- class EFA_INPUT_VALIDATOR diff --git a/examples/roc_api/modules/demo/cms_demo_module-safe.ecf b/examples/roc_api/modules/demo/cms_demo_module-safe.ecf index a954561..e1b0524 100644 --- a/examples/roc_api/modules/demo/cms_demo_module-safe.ecf +++ b/examples/roc_api/modules/demo/cms_demo_module-safe.ecf @@ -12,7 +12,7 @@ - + diff --git a/examples/roc_api/roc_api-safe.ecf b/examples/roc_api/roc_api-safe.ecf index c8576e2..bee02ef 100644 --- a/examples/roc_api/roc_api-safe.ecf +++ b/examples/roc_api/roc_api-safe.ecf @@ -12,7 +12,7 @@ - + diff --git a/examples/roc_api/src/ewf_roc_server.e b/examples/roc_api/src/ewf_roc_server.e index 35f1a31..15e77f3 100644 --- a/examples/roc_api/src/ewf_roc_server.e +++ b/examples/roc_api/src/ewf_roc_server.e @@ -144,7 +144,9 @@ feature -- CMS setup setup_storage (a_setup: CMS_SETUP) do - to_implement ("To implement custom storage") + debug ("refactor_fixme") + to_implement ("To implement custom storage") + end end end