From 4ab2a2c5d0c6571afd229d6a619e959ecdd57755 Mon Sep 17 00:00:00 2001 From: Velychenko Nazar <62742569+nvelychenko@users.noreply.github.com> Date: Sat, 26 Dec 2020 22:29:40 +0200 Subject: [PATCH] OI-166, 246, 206, 243, 85, 258, 255 (#138) * OI-246 Removed link to content from News title, fixed tags visibility on News page itself and inside the /news. Fixed "User page" condition submit logic. * OI-206 Changed thumbnail style to compact_user_icon in next user view modes: additional details, default, edit. * OI-243 Change OpenidealIdeaUpdateInfo create and change date formats. Fix CSS styles for right sidebar of content types canonical pages. * OI-85 Fix CSS for workflow block, and mobile view of /idea page. * Reverted composer.json changes. * OI-243 Removed unneeded code. * OI-125,142 Changed moderation content view title, and altered local task title. Changed slideshow arrows. * OI-246. Implemented OpenidealRRSSBBlock, which provide ability to set an entity from context e.g. from layout builder. Implemented styles for /news page. * OI-159 Implement: "user_mention" Message template, Rules action - "Create message after mentioning user". Add appropriate message_template texts for the message displayed itslef, email subject and body. Add additional conditions for "activity feed" views. Rework the MessageAction. * OI-166 Replace the voting apis form's ajax submit handler. Implement logic to update the count of like in real time. * OI-166 Add todo. * OI-159 Implemented logic to change the showed text for user mention activity for current user page, and others users pages. Fixed the pswp image arrows on mobile screen. Fixed logic to send the message during user mentions only for mentioned user. * OI-166 Fix bug related to rules, and voting, add additional condition to rules action. Reworked _openideal_challenge_vote_ajax_submit logic, add additional ajax command to response. Remove unneeded logic from scripts. * OI-159 Move logic of changing the partial field into mentions entity preprocess. * OI-159 Add delta to getText method. * OI-242 Remove image button. OI-113 Increase size of the modal for entity browser. * OI-00 Change the gulp script, remove source map and cleanCss gulp plugins. * OI-166 Implemented new render element - Statistics theme for the element statistics_element, related twig template, ability to change attributes. Replace site_wide_statistics_block theme with statistics_item, reworked all blocks that used this theme. Implemented ability to set data-* attribute to statistics count, that adds ability to update counters in real time, without rely on css classes. * OI-166 Add css files. * OI-258 Implemented AutocompleteController and ideas_autocomplete_entity_reference views entity reference for ideas autocomplete. Add the ability to show autocomplete for title field of the Idea. * OI-258 Reworked IdeasAutocompleteController to use entity_reference_selection plugin, implemented ability to add the url to autocomplete keys. Implemented script that listen "autocompleteselect" event, and redirects user on autocomplete selection. Implemented logic to show message after user being redirected into possible dublication page. * OI-258 Change query parameter name. * OI-00 npm audit fix. * OI-166 Workflow identification fix. * OI-255 Reworked the openideal_user_form_user_login_form_alter hook, implemented ability to add images for the login-with template and reworked the template itself. Create a custom block type for login right section. Implemented styles for login page. Installed and configured "Underline" js library, implemented related script to make it works. * OI-255 Implement hook_update that creates a block_content for right login section, export the block via default_content module. Implement styles for register, reset password forms. Implement modile styles for login form. Add signup, forgot password links, and related to them styles|logic. * OI-276 Composer dependencies fix. * OI-275 Move all logic related to login block, into openideal_login. Create libraries. Reworked openideal_user hook install, to enable the login module. Move all related to block configurations into the block. * OI-275 Move hook_user_login into login module. * OI-255 Small fixes. * OI-255: Add missed module dependencies, move appropriate configuration into config/optional folder. * OI-255: Remove useless dependence. * OI-159 Move cache context out from if statement. * OI-113 Change width of entity browser entity configurations. * OI-00 Remove logic that change behavior of html[type=date] input. * OI-255: Remove position absolute from em. * OI-282: Sets explicit version using commit hash for ajax_comments, ckeditor_mentions. Remove useless patch for rabbit_hole module, and set 1.0-beta9 version for it. * Removed packages with hashes from composer.json * Sorts packages alphabetically * Adds ckeitor_mentions and ajax_comments here. * OI-282: Update the rabbit_hole configurations. * OI-282: Remove unused rabbit_hole configuration. Co-authored-by: Ivan Doroshenko Co-authored-by: Ivan Doroshenko <57439293+db-Matroskeen@users.noreply.github.com> Co-authored-by: Zohar Stolar --- composer.json | 46 +- ...lock.block.openideal_theme_local_tasks.yml | 2 +- ...m_display.message.user_mention.default.yml | 33 + ...w_display.message.user_mention.default.yml | 33 + ...display.message.user_mention.mail_body.yml | 30 + ...play.message.user_mention.mail_subject.yml | 30 + ...ay.message.user_mention.mentioned_user.yml | 40 + ...ntity_view_mode.message.mentioned_user.yml | 9 + config/install/editor.editor.basic_html.yml | 1 - ....editor.basic_html_with_embedded_video.yml | 1 - config/install/editor.editor.full_html.yml | 1 - ...browser.browser.openideal_file_browser.yml | 4 +- ...rowser.browser.openideal_image_browser.yml | 4 +- ...owser.browser.openideal_images_browser.yml | 4 +- ...e.user_mention.field_comment_reference.yml | 27 + ...sage.user_mention.field_node_reference.yml | 29 + config/install/message.settings.yml | 2 +- .../install/message.template.user_mention.yml | 28 + .../rabbit_hole.behavior_settings.default.yml | 3 + ..._hole.behavior_settings.default_bundle.yml | 3 + ...hole.behavior_settings.group_type_idea.yml | 7 +- ...le.behavior_settings.node_type_article.yml | 7 +- ....behavior_settings.node_type_challenge.yml | 7 +- ..._hole.behavior_settings.node_type_idea.yml | 7 +- ..._hole.behavior_settings.node_type_page.yml | 7 +- ...ettings.taxonomy_vocabulary_categories.yml | 7 +- .../rabbit_hole.behavior_settings.user.yml | 8 - ...n.create_message_after_mentioning_user.yml | 56 ++ ...reaction.earn_points_for_voting_a_idea.yml | 23 +- config/install/views.view.ideas.yml | 453 ++++++++-- config/install/views.view.public_activity.yml | 145 ++- idea.info.yml | 1 + modules/openideal_challenge/css/style.css | 34 - modules/openideal_challenge/js/schedule.js | 20 - .../openideal_challenge.module | 1 - .../openideal_content.module | 42 + modules/openideal_idea/js/autocomplete.js | 29 + .../openideal_idea.libraries.yml | 6 + modules/openideal_idea/openideal_idea.module | 6 + .../openideal_idea/openideal_idea.routing.yml | 7 + .../IdeasAutocompleteController.php | 98 ++ .../install/block_content.type.login.yml | 7 + ...rm_display.block_content.login.default.yml | 43 + .../field.field.block_content.login.body.yml | 22 + ....field.block_content.login.field_image.yml | 37 + ...ield.storage.block_content.field_image.yml | 29 + ...ew_display.block_content.login.default.yml | 93 ++ .../9e7546b2-92f2-4792-8710-4995158ee7ed.yml | 33 + .../67ed572b-6083-4b52-91fa-e2202dc60fba.yml | 27 + .../content/file/login_background.jpg | Bin 0 -> 187648 bytes modules/openideal_login/js/underliner.js | 26 + .../openideal_login/openideal_login.info.yml | 12 + .../openideal_login.libraries.yml | 7 + .../openideal_login/openideal_login.module | 193 ++++ .../openideal_statistics.module | 6 +- .../src/Element/StatisticsItem.php | 94 ++ ...dealStatisticsChallengeStatisticsBlock.php | 46 +- ...OpenidealStatisticsIdeaStatisticsBlock.php | 47 +- .../Plugin/Block/SiteWideStatisticsBlock.php | 44 +- .../site-wide-statistics-block.html.twig | 25 - .../templates/statistics-item.html.twig | 20 + .../images/login_background.jpg | Bin 0 -> 23413 bytes modules/openideal_user/openideal_user.install | 16 + modules/openideal_user/openideal_user.module | 52 +- .../src/IsUserProfilePageCacheContext.php | 2 +- .../Notifier/OpenidealBulkEmailNotifier.php | 6 + .../src/Plugin/RulesAction/MessageAction.php | 16 +- themes/openideal_theme/css/style-rtl.css | 850 ++++++++++++++---- themes/openideal_theme/css/style.css | 850 ++++++++++++++---- .../images/icons/facebook_icon.png | Bin 0 -> 366 bytes .../images/icons/github_icon.png | Bin 0 -> 609 bytes .../images/icons/google_icon.png | Bin 0 -> 1101 bytes themes/openideal_theme/js/global.js | 1 + .../openideal_theme.libraries.yml | 9 + themes/openideal_theme/openideal_theme.theme | 40 +- themes/openideal_theme/scss/_functions.scss | 4 + themes/openideal_theme/scss/_import.scss | 2 + themes/openideal_theme/scss/_mixins.scss | 6 +- .../scss/components/_default_user_forms.scss | 60 +- .../scss/components/_form.scss | 13 + .../scss/components/_idea_workflow.scss | 5 + .../scss/components/_import.scss | 3 + .../scss/components/_item_list.scss | 12 + .../scss/components/_login-form.scss | 285 ++++++ .../components/_site-wide-statistics.scss | 96 +- .../scss/components/_teaser.scss | 6 +- .../templates/components/login-with.html.twig | 16 + 87 files changed, 3763 insertions(+), 699 deletions(-) create mode 100644 config/install/core.entity_form_display.message.user_mention.default.yml create mode 100644 config/install/core.entity_view_display.message.user_mention.default.yml create mode 100644 config/install/core.entity_view_display.message.user_mention.mail_body.yml create mode 100644 config/install/core.entity_view_display.message.user_mention.mail_subject.yml create mode 100644 config/install/core.entity_view_display.message.user_mention.mentioned_user.yml create mode 100644 config/install/core.entity_view_mode.message.mentioned_user.yml create mode 100644 config/install/field.field.message.user_mention.field_comment_reference.yml create mode 100644 config/install/field.field.message.user_mention.field_node_reference.yml create mode 100644 config/install/message.template.user_mention.yml delete mode 100644 config/install/rabbit_hole.behavior_settings.user.yml create mode 100644 config/install/rules.reaction.create_message_after_mentioning_user.yml create mode 100644 modules/openideal_idea/js/autocomplete.js create mode 100644 modules/openideal_idea/openideal_idea.libraries.yml create mode 100644 modules/openideal_idea/src/Controller/IdeasAutocompleteController.php create mode 100644 modules/openideal_login/config/install/block_content.type.login.yml create mode 100644 modules/openideal_login/config/install/core.entity_form_display.block_content.login.default.yml create mode 100644 modules/openideal_login/config/install/field.field.block_content.login.body.yml create mode 100644 modules/openideal_login/config/install/field.field.block_content.login.field_image.yml create mode 100644 modules/openideal_login/config/install/field.storage.block_content.field_image.yml create mode 100644 modules/openideal_login/config/optional/core.entity_view_display.block_content.login.default.yml create mode 100644 modules/openideal_login/content/block_content/9e7546b2-92f2-4792-8710-4995158ee7ed.yml create mode 100644 modules/openideal_login/content/file/67ed572b-6083-4b52-91fa-e2202dc60fba.yml create mode 100644 modules/openideal_login/content/file/login_background.jpg create mode 100644 modules/openideal_login/js/underliner.js create mode 100644 modules/openideal_login/openideal_login.info.yml create mode 100644 modules/openideal_login/openideal_login.libraries.yml create mode 100644 modules/openideal_login/openideal_login.module create mode 100644 modules/openideal_statistics/src/Element/StatisticsItem.php delete mode 100644 modules/openideal_statistics/templates/site-wide-statistics-block.html.twig create mode 100644 modules/openideal_statistics/templates/statistics-item.html.twig create mode 100644 modules/openideal_user/images/login_background.jpg create mode 100644 modules/openideal_user/openideal_user.install create mode 100644 themes/openideal_theme/images/icons/facebook_icon.png create mode 100644 themes/openideal_theme/images/icons/github_icon.png create mode 100644 themes/openideal_theme/images/icons/google_icon.png create mode 100644 themes/openideal_theme/scss/_functions.scss create mode 100644 themes/openideal_theme/scss/components/_item_list.scss create mode 100644 themes/openideal_theme/scss/components/_login-form.scss create mode 100755 themes/openideal_theme/templates/components/login-with.html.twig diff --git a/composer.json b/composer.json index 1a161841d..9ad2a9854 100644 --- a/composer.json +++ b/composer.json @@ -173,34 +173,34 @@ ], "require": { "bower-asset/c3": "^0.7.20", + "ckeditor/ajax": "4.14.1", + "ckeditor/autocomplete": "4.14.1", + "ckeditor/autoembed": "4.14.1", + "ckeditor/autolink": "4.14.1", + "ckeditor/embed": "4.14.1", + "ckeditor/embedbase": "4.14.1", + "ckeditor/embedsemantic": "4.14.1", + "ckeditor/mentions": "4.14.1", + "ckeditor/notification": "4.14.1", + "ckeditor/notificationaggregator": "4.14.1", + "ckeditor/textmatch": "4.14.1", + "ckeditor/textwatcher": "4.14.1", + "ckeditor/xml": "4.14.1", "composer/installers": "^1.2", "cweagans/composer-patches": "^1.6", "drupal/admin_toolbar": "^2.2", "drupal/adminimal_admin_toolbar": "^1.10", "drupal/adminimal_theme": "^1.5", "drupal/administerusersbyrole": "^3.0", - "drupal/ajax_comments": "1.x-dev", + "drupal/ajax_comments": "1.x-dev#4b0c423", "drupal/allowed_formats": "^1.2", "drupal/avatars": "^1.1", "drupal/better_exposed_filters": "^4.0", "drupal/bootstrap_barrio": "^5.0", "drupal/ckeditor_media_embed": "^1.9", - "drupal/ckeditor_mentions": "2.x-dev", + "drupal/ckeditor_mentions": "2.x-dev#272a28e7", "drupal/comments_order": "^1.1", "drupal/config_pages": "^2.6", - "ckeditor/ajax": "4.14.1", - "ckeditor/autocomplete": "4.14.1", - "ckeditor/mentions": "4.14.1", - "ckeditor/textmatch": "4.14.1", - "ckeditor/textwatcher": "4.14.1", - "ckeditor/xml": "4.14.1", - "ckeditor/notificationaggregator": "4.14.1", - "ckeditor/notification": "4.14.1", - "ckeditor/autolink": "4.14.1", - "ckeditor/autoembed": "4.14.1", - "ckeditor/embedbase": "4.14.1", - "ckeditor/embedsemantic": "4.14.1", - "ckeditor/embed": "4.14.1", "drupal/ctools": "^3.4", "drupal/default_content": "^2.0", "drupal/dropzonejs": "^2.1", @@ -213,13 +213,13 @@ "drupal/group": "1.3", "drupal/honeypot": "^2.0", "drupal/layout_builder_styles": "^1.0@beta", - "drupal/metatag": "^1.13", "drupal/message": "1.1", "drupal/message_notify": "^1.1", + "drupal/metatag": "^1.13", "drupal/moderation_state_buttons_widget": "^1.0@alpha", "drupal/multiple_fields_remove_button": "^1.0@alpha", "drupal/paragraphs": "^1.11", - "drupal/rabbit_hole": "^1.0-beta7", + "drupal/rabbit_hole": "1.0-beta9", "drupal/redirect": "^1.6", "drupal/route_condition": "^1.1", "drupal/rrssb": "^2.2", @@ -232,18 +232,19 @@ "drupal/twig_field_value": "^2.0", "drupal/twig_tweak": "^2.5", "drupal/ultimate_cron": "^2.0@alpha", - "drupal/userpoints": "^1.0@alpha", "drupal/user_registrationpassword": "1.x-dev", + "drupal/userpoints": "^1.0@alpha", "drupal/views_data_export": "^1.0", "drupal/votingapi": "3.x-dev", "drupal/votingapi_reaction": "^1.1", "drupal/votingapi_widgets": "1.0-alpha5", - "npm-asset/masonry-layout": "^4.2", - "npm-asset/imagesloaded": "^4.1", "npm-asset/dropzone": "^5.7", + "npm-asset/imagesloaded": "^4.1", "npm-asset/jquery-bar-rating": "^1.2", - "npm-asset/swiper": "^6.1", + "npm-asset/link-underliner": "^1.0", + "npm-asset/masonry-layout": "^4.2", "npm-asset/photoswipe": "^4.1", + "npm-asset/swiper": "^6.1", "oomphinc/composer-installers-extender": "^1.1" }, "provide": { @@ -279,9 +280,6 @@ }, "drupal/group": { "Permissions to choose which roles a member can assign, edit or delete": "https://www.drupal.org/files/issues/2020-07-27/group-user-manage-by-role-permissions-3027685-29.patch" - }, - "drupal/rabbit_hole": { - "Split performAction() into submethods in PageRedirect Behaviour": "https://www.drupal.org/files/issues/2019-11-21/3095653-5.patch" } } } diff --git a/config/install/block.block.openideal_theme_local_tasks.yml b/config/install/block.block.openideal_theme_local_tasks.yml index e28e77655..5d8c0e36f 100644 --- a/config/install/block.block.openideal_theme_local_tasks.yml +++ b/config/install/block.block.openideal_theme_local_tasks.yml @@ -21,6 +21,6 @@ settings: visibility: route: id: route - routes: entity.user.canonical + routes: "entity.user.canonical\r\nuser.login\r\nuser.logout\r\nuser.register\r\nuser.pass" negate: true context_mapping: { } diff --git a/config/install/core.entity_form_display.message.user_mention.default.yml b/config/install/core.entity_form_display.message.user_mention.default.yml new file mode 100644 index 000000000..115a28f9b --- /dev/null +++ b/config/install/core.entity_form_display.message.user_mention.default.yml @@ -0,0 +1,33 @@ +langcode: en +status: true +dependencies: + config: + - field.field.message.user_mention.field_comment_reference + - field.field.message.user_mention.field_node_reference + - message.template.user_mention +id: message.user_mention.default +targetEntityType: message +bundle: user_mention +mode: default +content: + field_comment_reference: + weight: 1 + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + type: entity_reference_autocomplete + region: content + field_node_reference: + weight: 0 + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + type: entity_reference_autocomplete + region: content +hidden: { } diff --git a/config/install/core.entity_view_display.message.user_mention.default.yml b/config/install/core.entity_view_display.message.user_mention.default.yml new file mode 100644 index 000000000..040975479 --- /dev/null +++ b/config/install/core.entity_view_display.message.user_mention.default.yml @@ -0,0 +1,33 @@ +langcode: en +status: true +dependencies: + config: + - field.field.message.user_mention.field_comment_reference + - field.field.message.user_mention.field_node_reference + - message.template.user_mention +id: message.user_mention.default +targetEntityType: message +bundle: user_mention +mode: default +content: + field_comment_reference: + type: entity_reference_entity_view + weight: 1 + region: content + label: hidden + settings: + view_mode: message + link: false + offset: 0 + limit: 0 + third_party_settings: { } + partial_0: + weight: 0 + region: content + settings: { } + third_party_settings: { } +hidden: + field_node_reference: true + partial_1: true + partial_2: true + partial_3: true diff --git a/config/install/core.entity_view_display.message.user_mention.mail_body.yml b/config/install/core.entity_view_display.message.user_mention.mail_body.yml new file mode 100644 index 000000000..6541cff65 --- /dev/null +++ b/config/install/core.entity_view_display.message.user_mention.mail_body.yml @@ -0,0 +1,30 @@ +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.message.mail_body + - field.field.message.user_mention.field_comment_reference + - field.field.message.user_mention.field_node_reference + - message.template.user_mention + module: + - layout_builder +third_party_settings: + layout_builder: + allow_custom: false + enabled: false +id: message.user_mention.mail_body +targetEntityType: message +bundle: user_mention +mode: mail_body +content: + partial_2: + weight: 0 + region: content + settings: { } + third_party_settings: { } +hidden: + field_comment_reference: true + field_node_reference: true + partial_0: true + partial_1: true + partial_3: true diff --git a/config/install/core.entity_view_display.message.user_mention.mail_subject.yml b/config/install/core.entity_view_display.message.user_mention.mail_subject.yml new file mode 100644 index 000000000..cfb8c28b0 --- /dev/null +++ b/config/install/core.entity_view_display.message.user_mention.mail_subject.yml @@ -0,0 +1,30 @@ +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.message.mail_subject + - field.field.message.user_mention.field_comment_reference + - field.field.message.user_mention.field_node_reference + - message.template.user_mention + module: + - layout_builder +third_party_settings: + layout_builder: + allow_custom: false + enabled: false +id: message.user_mention.mail_subject +targetEntityType: message +bundle: user_mention +mode: mail_subject +content: + partial_1: + weight: 0 + region: content + settings: { } + third_party_settings: { } +hidden: + field_comment_reference: true + field_node_reference: true + partial_0: true + partial_2: true + partial_3: true diff --git a/config/install/core.entity_view_display.message.user_mention.mentioned_user.yml b/config/install/core.entity_view_display.message.user_mention.mentioned_user.yml new file mode 100644 index 000000000..f332341ba --- /dev/null +++ b/config/install/core.entity_view_display.message.user_mention.mentioned_user.yml @@ -0,0 +1,40 @@ +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.message.mentioned_user + - field.field.message.user_mention.field_comment_reference + - field.field.message.user_mention.field_node_reference + - message.template.user_mention + module: + - layout_builder +third_party_settings: + layout_builder: + allow_custom: false + enabled: false +id: message.user_mention.mentioned_user +targetEntityType: message +bundle: user_mention +mode: mentioned_user +content: + field_comment_reference: + type: entity_reference_entity_view + weight: 1 + region: content + label: hidden + settings: + view_mode: message + link: false + offset: 0 + limit: 0 + third_party_settings: { } + partial_3: + weight: 0 + region: content + settings: { } + third_party_settings: { } +hidden: + field_node_reference: true + partial_0: true + partial_1: true + partial_2: true diff --git a/config/install/core.entity_view_mode.message.mentioned_user.yml b/config/install/core.entity_view_mode.message.mentioned_user.yml new file mode 100644 index 000000000..fea631c07 --- /dev/null +++ b/config/install/core.entity_view_mode.message.mentioned_user.yml @@ -0,0 +1,9 @@ +langcode: en +status: true +dependencies: + module: + - message +id: message.mentioned_user +label: 'Mentioned user' +targetEntityType: message +cache: true diff --git a/config/install/editor.editor.basic_html.yml b/config/install/editor.editor.basic_html.yml index f06849002..b2fe4726c 100644 --- a/config/install/editor.editor.basic_html.yml +++ b/config/install/editor.editor.basic_html.yml @@ -30,7 +30,6 @@ settings: name: Media items: - Blockquote - - DrupalImage - name: 'Block Formatting' items: diff --git a/config/install/editor.editor.basic_html_with_embedded_video.yml b/config/install/editor.editor.basic_html_with_embedded_video.yml index 5cdad0446..43432c357 100644 --- a/config/install/editor.editor.basic_html_with_embedded_video.yml +++ b/config/install/editor.editor.basic_html_with_embedded_video.yml @@ -30,7 +30,6 @@ settings: name: Media items: - Blockquote - - DrupalImage - EmbedSemantic - name: 'Block formatting' diff --git a/config/install/editor.editor.full_html.yml b/config/install/editor.editor.full_html.yml index f5dd7bcc1..fc00deb6e 100644 --- a/config/install/editor.editor.full_html.yml +++ b/config/install/editor.editor.full_html.yml @@ -35,7 +35,6 @@ settings: name: Media items: - Blockquote - - DrupalImage - Table - HorizontalRule - diff --git a/config/install/entity_browser.browser.openideal_file_browser.yml b/config/install/entity_browser.browser.openideal_file_browser.yml index 508b7ba54..6740beb4e 100644 --- a/config/install/entity_browser.browser.openideal_file_browser.yml +++ b/config/install/entity_browser.browser.openideal_file_browser.yml @@ -7,8 +7,8 @@ name: openideal_file_browser label: 'Openideal File Browser' display: modal display_configuration: - width: '650' - height: '500' + width: '1030' + height: '700' link_text: 'Select files' auto_open: false selection_display: no_display diff --git a/config/install/entity_browser.browser.openideal_image_browser.yml b/config/install/entity_browser.browser.openideal_image_browser.yml index bc4a8b16e..0d5d7ca33 100644 --- a/config/install/entity_browser.browser.openideal_image_browser.yml +++ b/config/install/entity_browser.browser.openideal_image_browser.yml @@ -7,8 +7,8 @@ name: openideal_image_browser label: 'Openideal Image Browser' display: modal display_configuration: - width: '650' - height: '500' + width: '1030' + height: '700' link_text: 'Select image' auto_open: false selection_display: no_display diff --git a/config/install/entity_browser.browser.openideal_images_browser.yml b/config/install/entity_browser.browser.openideal_images_browser.yml index 995a75975..0e674773d 100644 --- a/config/install/entity_browser.browser.openideal_images_browser.yml +++ b/config/install/entity_browser.browser.openideal_images_browser.yml @@ -7,8 +7,8 @@ name: openideal_images_browser label: 'Openideal Images Browser' display: modal display_configuration: - width: '650' - height: '500' + width: '1030' + height: '700' link_text: 'Select images' auto_open: false selection_display: no_display diff --git a/config/install/field.field.message.user_mention.field_comment_reference.yml b/config/install/field.field.message.user_mention.field_comment_reference.yml new file mode 100644 index 000000000..1f2fefc06 --- /dev/null +++ b/config/install/field.field.message.user_mention.field_comment_reference.yml @@ -0,0 +1,27 @@ +langcode: en +status: true +dependencies: + config: + - comment.type.comment + - field.storage.message.field_comment_reference + - message.template.user_mention +id: message.user_mention.field_comment_reference +field_name: field_comment_reference +entity_type: message +bundle: user_mention +label: 'Comment reference' +description: '' +required: false +translatable: true +default_value: { } +default_value_callback: '' +settings: + handler: 'default:comment' + handler_settings: + target_bundles: + comment: comment + sort: + field: _none + auto_create: false + auto_create_bundle: '' +field_type: entity_reference diff --git a/config/install/field.field.message.user_mention.field_node_reference.yml b/config/install/field.field.message.user_mention.field_node_reference.yml new file mode 100644 index 000000000..b1d709d06 --- /dev/null +++ b/config/install/field.field.message.user_mention.field_node_reference.yml @@ -0,0 +1,29 @@ +langcode: en +status: true +dependencies: + config: + - field.storage.message.field_node_reference + - message.template.user_mention + - node.type.challenge + - node.type.idea +id: message.user_mention.field_node_reference +field_name: field_node_reference +entity_type: message +bundle: user_mention +label: 'Node reference' +description: '' +required: true +translatable: true +default_value: { } +default_value_callback: '' +settings: + handler: 'default:node' + handler_settings: + target_bundles: + challenge: challenge + idea: idea + sort: + field: _none + auto_create: false + auto_create_bundle: challenge +field_type: entity_reference diff --git a/config/install/message.settings.yml b/config/install/message.settings.yml index 409689cbf..2792ae819 100644 --- a/config/install/message.settings.yml +++ b/config/install/message.settings.yml @@ -3,7 +3,7 @@ purge_methods: id: quota weight: 0 data: - quota: 400 + quota: 10000 delete_on_entity_delete: comment: comment node: node diff --git a/config/install/message.template.user_mention.yml b/config/install/message.template.user_mention.yml new file mode 100644 index 000000000..e36d7b6d5 --- /dev/null +++ b/config/install/message.template.user_mention.yml @@ -0,0 +1,28 @@ +langcode: en +status: true +dependencies: + config: + - filter.format.basic_html + - filter.format.full_html +template: user_mention +label: 'User mention' +description: '' +text: + - + value: "

[message:field_comment_reference:entity:author] mentioned you in [message:field_node_reference:entity:title]

\r\n" + format: full_html + - + value: "

You have a new mention on [site:name]

\r\n" + format: basic_html + - + value: "

Content: [message:field_comment_reference:entity:author] has mentioned you on [message:field_node_reference:entity:title]. See what they say: [message:field_node_reference:entity:url]

\r\n" + format: basic_html + - + value: "

[message:field_comment_reference:entity:author] mentioned [message:author:display-name] in [message:field_node_reference:entity:title]

\r\n" + format: full_html +settings: + 'token options': + clear: false + 'token replace': true + purge_override: false + purge_methods: { } diff --git a/config/install/rabbit_hole.behavior_settings.default.yml b/config/install/rabbit_hole.behavior_settings.default.yml index 934dea579..4ab7f4787 100644 --- a/config/install/rabbit_hole.behavior_settings.default.yml +++ b/config/install/rabbit_hole.behavior_settings.default.yml @@ -2,7 +2,10 @@ langcode: en status: true dependencies: { } id: default +entity_type_id: null +entity_id: null action: display_page allow_override: 1 redirect: '' redirect_code: 0 +redirect_fallback_action: access_denied diff --git a/config/install/rabbit_hole.behavior_settings.default_bundle.yml b/config/install/rabbit_hole.behavior_settings.default_bundle.yml index febf95b92..d7d00684e 100644 --- a/config/install/rabbit_hole.behavior_settings.default_bundle.yml +++ b/config/install/rabbit_hole.behavior_settings.default_bundle.yml @@ -2,7 +2,10 @@ langcode: en status: true dependencies: { } id: default_bundle +entity_type_id: null +entity_id: null action: display_page allow_override: 1 redirect: '' redirect_code: 0 +redirect_fallback_action: access_denied diff --git a/config/install/rabbit_hole.behavior_settings.group_type_idea.yml b/config/install/rabbit_hole.behavior_settings.group_type_idea.yml index 9f7f42313..194475edc 100644 --- a/config/install/rabbit_hole.behavior_settings.group_type_idea.yml +++ b/config/install/rabbit_hole.behavior_settings.group_type_idea.yml @@ -1,8 +1,13 @@ langcode: en status: true -dependencies: { } +dependencies: + config: + - group.type.idea id: group_type_idea +entity_type_id: group_type +entity_id: idea action: openideal_group_page_redirect allow_override: 1 redirect: '' redirect_code: 301 +redirect_fallback_action: access_denied diff --git a/config/install/rabbit_hole.behavior_settings.node_type_article.yml b/config/install/rabbit_hole.behavior_settings.node_type_article.yml index 5a3dc5e71..fab795e9f 100644 --- a/config/install/rabbit_hole.behavior_settings.node_type_article.yml +++ b/config/install/rabbit_hole.behavior_settings.node_type_article.yml @@ -1,8 +1,13 @@ langcode: en status: true -dependencies: { } +dependencies: + config: + - node.type.article id: node_type_article +entity_type_id: node_type +entity_id: article action: display_page allow_override: 1 redirect: '' redirect_code: 301 +redirect_fallback_action: access_denied diff --git a/config/install/rabbit_hole.behavior_settings.node_type_challenge.yml b/config/install/rabbit_hole.behavior_settings.node_type_challenge.yml index 5651a51f8..f6037f4ab 100644 --- a/config/install/rabbit_hole.behavior_settings.node_type_challenge.yml +++ b/config/install/rabbit_hole.behavior_settings.node_type_challenge.yml @@ -1,8 +1,13 @@ langcode: en status: true -dependencies: { } +dependencies: + config: + - node.type.challenge id: node_type_challenge +entity_type_id: node_type +entity_id: challenge action: display_page allow_override: 0 redirect: '' redirect_code: 301 +redirect_fallback_action: access_denied diff --git a/config/install/rabbit_hole.behavior_settings.node_type_idea.yml b/config/install/rabbit_hole.behavior_settings.node_type_idea.yml index 2eea2b80c..609148d33 100644 --- a/config/install/rabbit_hole.behavior_settings.node_type_idea.yml +++ b/config/install/rabbit_hole.behavior_settings.node_type_idea.yml @@ -1,8 +1,13 @@ langcode: en status: true -dependencies: { } +dependencies: + config: + - node.type.idea id: node_type_idea +entity_type_id: node_type +entity_id: idea action: display_page allow_override: 1 redirect: '' redirect_code: 301 +redirect_fallback_action: access_denied diff --git a/config/install/rabbit_hole.behavior_settings.node_type_page.yml b/config/install/rabbit_hole.behavior_settings.node_type_page.yml index 627196245..4ae6bf815 100644 --- a/config/install/rabbit_hole.behavior_settings.node_type_page.yml +++ b/config/install/rabbit_hole.behavior_settings.node_type_page.yml @@ -1,8 +1,13 @@ langcode: en status: true -dependencies: { } +dependencies: + config: + - node.type.page id: node_type_page +entity_type_id: node_type +entity_id: page action: display_page allow_override: 1 redirect: '' redirect_code: 301 +redirect_fallback_action: access_denied diff --git a/config/install/rabbit_hole.behavior_settings.taxonomy_vocabulary_categories.yml b/config/install/rabbit_hole.behavior_settings.taxonomy_vocabulary_categories.yml index d978ab5e5..ce9fa4cbd 100644 --- a/config/install/rabbit_hole.behavior_settings.taxonomy_vocabulary_categories.yml +++ b/config/install/rabbit_hole.behavior_settings.taxonomy_vocabulary_categories.yml @@ -1,8 +1,13 @@ langcode: en status: true -dependencies: { } +dependencies: + config: + - taxonomy.vocabulary.categories id: taxonomy_vocabulary_categories +entity_type_id: taxonomy_vocabulary +entity_id: categories action: display_page allow_override: 0 redirect: '' redirect_code: 301 +redirect_fallback_action: access_denied diff --git a/config/install/rabbit_hole.behavior_settings.user.yml b/config/install/rabbit_hole.behavior_settings.user.yml deleted file mode 100644 index e21ad5bc3..000000000 --- a/config/install/rabbit_hole.behavior_settings.user.yml +++ /dev/null @@ -1,8 +0,0 @@ -langcode: en -status: true -dependencies: { } -id: user -action: page_redirect -allow_override: 1 -redirect: /user/login -redirect_code: 302 diff --git a/config/install/rules.reaction.create_message_after_mentioning_user.yml b/config/install/rules.reaction.create_message_after_mentioning_user.yml new file mode 100644 index 000000000..83757585a --- /dev/null +++ b/config/install/rules.reaction.create_message_after_mentioning_user.yml @@ -0,0 +1,56 @@ +langcode: en +status: true +dependencies: { } +id: create_message_after_mentioning_user +label: 'Create a message after mentioning user' +events: + - + event_name: openideal_user.user_mention +description: '' +tags: { } +config_version: '3' +expression: + id: rules_rule + uuid: 01d20fdd-19f2-4e3c-adfd-45332d13c5e8 + weight: 0 + conditions: + id: rules_and + uuid: 564f446b-dd81-4070-95c7-07a55021ba46 + weight: 0 + conditions: + - + id: rules_condition + uuid: 7fcb2dcc-c1eb-42ac-8b64-73029e7b65ce + weight: 0 + context_values: + operation: '==' + value: '1' + context_mapping: + data: comment.entity_id.entity.status.value + context_processors: + operation: + rules_tokens: { } + value: + rules_tokens: { } + provides_mapping: { } + condition_id: rules_data_comparison + negate: false + actions: + id: rules_action_set + uuid: 4c6fadd2-58a4-421b-a312-43c59a6f7222 + weight: 0 + actions: + - + id: rules_action + uuid: 87e5f07f-7981-4f1f-ad17-29a70e3809a1 + weight: 0 + context_values: + template: user_mention + context_mapping: + referenced_entity: comment + user: user + context_processors: + template: + rules_tokens: { } + provides_mapping: { } + action_id: openideal_message_action diff --git a/config/install/rules.reaction.earn_points_for_voting_a_idea.yml b/config/install/rules.reaction.earn_points_for_voting_a_idea.yml index 3195a44b2..efed36496 100644 --- a/config/install/rules.reaction.earn_points_for_voting_a_idea.yml +++ b/config/install/rules.reaction.earn_points_for_voting_a_idea.yml @@ -22,8 +22,25 @@ expression: conditions: - id: rules_condition - uuid: e42d9597-8b68-4c0f-8104-82cf94775eed + uuid: 64e03746-3bac-4912-8821-0f309c585a53 weight: -50 + context_values: + operation: '==' + value: node + context_mapping: + data: vote.entity_type.value + context_processors: + operation: + rules_tokens: { } + value: + rules_tokens: { } + provides_mapping: { } + condition_id: rules_data_comparison + negate: false + - + id: rules_condition + uuid: e42d9597-8b68-4c0f-8104-82cf94775eed + weight: -49 context_values: operation: '==' value: idea @@ -40,7 +57,7 @@ expression: - id: rules_condition uuid: f8e70bdc-3ebd-416a-88c7-8d51fea56a84 - weight: -49 + weight: -48 context_values: { } context_mapping: entity: vote @@ -51,7 +68,7 @@ expression: - id: rules_condition uuid: 077a555d-78ba-4e37-bf84-5bfb1bafeed6 - weight: -48 + weight: -47 context_values: operation: '==' context_mapping: diff --git a/config/install/views.view.ideas.yml b/config/install/views.view.ideas.yml index 3f1e36c19..944ef9036 100644 --- a/config/install/views.view.ideas.yml +++ b/config/install/views.view.ideas.yml @@ -371,69 +371,6 @@ display: separator: ', ' field_api_classes: false plugin_id: field - field_idea_phase: - id: field_idea_phase - table: node__field_idea_phase - field: field_idea_phase - relationship: none - group_type: group - admin_label: '' - label: '' - exclude: false - alter: - alter_text: false - text: '' - make_link: false - path: '' - absolute: false - external: false - replace_spaces: false - path_case: none - trim_whitespace: false - alt: '' - rel: '' - link_class: '' - prefix: '' - suffix: '' - target: '' - nl2br: false - max_length: 0 - word_boundary: true - ellipsis: true - more_link: false - more_link_text: '' - more_link_path: '' - strip_tags: false - trim: false - preserve_tags: '' - html: false - element_type: '' - element_class: '' - element_label_type: '' - element_label_class: '' - element_label_colon: false - element_wrapper_type: '' - element_wrapper_class: '' - element_default_classes: true - empty: '' - hide_empty: false - empty_zero: false - hide_alter_empty: true - click_sort_column: target_id - type: entity_reference_label - settings: - link: false - group_column: target_id - group_columns: { } - group_rows: true - delta_limit: 0 - delta_offset: 0 - delta_reversed: false - delta_first_last: false - multi_type: separator - separator: ', ' - field_api_classes: false - plugin_id: field field_idea_tags: id: field_idea_tags table: node__field_idea_tags @@ -1792,3 +1729,393 @@ display: - 'user.node_grants:view' - user.permissions tags: { } + ideas_autocomplete_entity_reference: + display_plugin: entity_reference + id: ideas_autocomplete_entity_reference + display_title: 'Ideas autocomplete (Entity Reference)' + position: 1 + display_options: + display_extenders: { } + filters: + type: + id: type + table: node_field_data + field: type + value: + idea: idea + entity_type: node + entity_field: type + plugin_id: bundle + expose: + operator_limit_selection: false + operator_list: { } + group: 1 + moderation_state_1: + id: moderation_state_1 + table: node_field_data + field: moderation_state + relationship: none + group_type: group + admin_label: '' + operator: 'not empty' + value: { } + group: 1 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + operator_limit_selection: false + operator_list: { } + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + reduce: false + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: node + plugin_id: moderation_state_filter + defaults: + filters: false + filter_groups: false + fields: false + relationships: false + sorts: false + css_class: false + arguments: false + filter_groups: + operator: AND + groups: + 1: AND + fields: + title: + id: title + table: node_field_data + field: title + relationship: none + group_type: group + admin_label: '' + label: '' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: false + ellipsis: false + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: string + settings: + link_to_entity: false + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: title + plugin_id: field + body: + id: body + table: node__body + field: body + relationship: none + group_type: group + admin_label: '' + label: '' + exclude: true + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: text_summary_or_trimmed + settings: + trim_length: 600 + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + plugin_id: field + field_challenge: + id: field_challenge + table: node__field_challenge + field: field_challenge + relationship: none + group_type: group + admin_label: '' + label: '' + exclude: true + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: target_id + type: entity_reference_label + settings: + link: true + group_column: target_id + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + plugin_id: field + uid: + id: uid + table: node_field_data + field: uid + relationship: none + group_type: group + admin_label: '' + label: '' + exclude: true + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + click_sort_column: target_id + type: entity_reference_label + settings: + link: true + group_column: target_id + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + entity_type: node + entity_field: uid + plugin_id: field + relationships: + uid: + id: uid + table: node_field_data + field: uid + relationship: none + group_type: group + admin_label: author + required: true + entity_type: node + entity_field: uid + plugin_id: standard + sorts: + created: + id: created + table: node_field_data + field: created + relationship: none + group_type: group + admin_label: '' + order: DESC + exposed: true + expose: + label: Date + granularity: hour + entity_type: node + entity_field: created + plugin_id: date + css_class: 'ideas-teaser-view-page teaser-view-mode teaser-view-mode--teaser' + display_description: '' + style: + type: entity_reference + options: + search_fields: + title: title + body: body + field_challenge: '0' + uid: '0' + row: + type: entity_reference + options: + default_field_elements: false + inline: + title: title + separator: '-' + hide_empty: false + arguments: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - 'url.query_args:sort_by' + - 'url.query_args:sort_order' + - 'user.node_grants:view' + - user.permissions + tags: + - 'config:field.storage.node.body' + - 'config:field.storage.node.field_challenge' + - 'config:workflow_list' diff --git a/config/install/views.view.public_activity.yml b/config/install/views.view.public_activity.yml index e328cfe05..bf711f2c5 100644 --- a/config/install/views.view.public_activity.yml +++ b/config/install/views.view.public_activity.yml @@ -7,6 +7,7 @@ dependencies: - field.storage.message.field_user_reference - flag.flag.follow - message.template.created_reply_on_comment + - message.template.user_mention module: - comment - flag @@ -14,7 +15,7 @@ dependencies: - node - user id: public_activity -label: 'Public activity' +label: 'Activity feed' module: views description: '' tag: '' @@ -587,6 +588,7 @@ display: filter_groups: false arguments: false cache: false + group_by: false relationships: field_node_reference: id: field_node_reference @@ -764,15 +766,105 @@ display: entity_type: comment entity_field: uid plugin_id: numeric + template_1: + id: template_1 + table: message_field_data + field: template + relationship: none + group_type: group + admin_label: '' + operator: in + value: + user_mention: user_mention + group: 3 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + operator_limit_selection: false + operator_list: { } + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + reduce: false + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: message + entity_field: template + plugin_id: bundle + uid_2: + id: uid_2 + table: message_field_data + field: uid + relationship: none + group_type: group + admin_label: '' + operator: '=' + value: + min: '' + max: '' + value: '[user-page-id]' + group: 3 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + operator_limit_selection: false + operator_list: { } + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + placeholder: '' + min_placeholder: '' + max_placeholder: '' + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: message + entity_field: uid + plugin_id: numeric filter_groups: operator: OR groups: 1: OR 2: AND + 3: AND arguments: { } cache: type: none options: { } + group_by: true cache_metadata: max-age: -1 contexts: @@ -792,6 +884,57 @@ display: display_extenders: { } block_description: 'Public activity' display_description: '' + filters: + template: + id: template + table: message_field_data + field: template + relationship: none + group_type: group + admin_label: '' + operator: 'not in' + value: + created_reply_on_comment: created_reply_on_comment + user_mention: user_mention + group: 1 + exposed: false + expose: + operator_id: '' + label: '' + description: '' + use_operator: false + operator: '' + operator_limit_selection: false + operator_list: { } + identifier: '' + required: false + remember: false + multiple: false + remember_roles: + authenticated: authenticated + reduce: false + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + entity_type: message + entity_field: template + plugin_id: bundle + defaults: + filters: false + filter_groups: false + filter_groups: + operator: AND + groups: + 1: AND cache_metadata: max-age: -1 contexts: diff --git a/idea.info.yml b/idea.info.yml index 0c1de1836..c01b90a6e 100644 --- a/idea.info.yml +++ b/idea.info.yml @@ -121,6 +121,7 @@ dependencies: - openideal_slideshow:openideal_slideshow - openideal_comment:openideal_comment - openideal_footer:openideal_footer + - openideal_login:openideal_login - openideal_statistics:openideal_statistics themes: diff --git a/modules/openideal_challenge/css/style.css b/modules/openideal_challenge/css/style.css index b2b8c934d..d41108f70 100644 --- a/modules/openideal_challenge/css/style.css +++ b/modules/openideal_challenge/css/style.css @@ -3,37 +3,3 @@ color: #595959; font-size: 0.95em; } - -input[type="date"] { - position: relative; - width: 145px; - height: 30px; - color: white; - margin-right: 5px; -} - -.field--type-created .container-inline { - display: flex; -} - -input[type="date"]:before { - position: absolute; - content: attr(data-date); - color: #595959; - display: inline-block; -} - -input[type="date"]::-webkit-datetime-edit, -input[type="date"]::-webkit-inner-spin-button, -input[type="date"]::-webkit-clear-button { - display: none; -} - -input[type="date"]::-webkit-calendar-picker-indicator { - position: absolute; - top: 50%; - transform: translateY(-50%); - right: 0; - color: black; - opacity: 1; -} diff --git a/modules/openideal_challenge/js/schedule.js b/modules/openideal_challenge/js/schedule.js index b077b7882..640fe9c99 100644 --- a/modules/openideal_challenge/js/schedule.js +++ b/modules/openideal_challenge/js/schedule.js @@ -18,7 +18,6 @@ */ function generateDefaultDate(date) { if (!(date instanceof Date)) { - // @Todo: throw error? return; } var language = drupalSettings.path.currentLanguage; @@ -47,24 +46,5 @@ }) } }; - - /** - * Change html5 date input view format. - * - * @type {Drupal~behavior} - * - * @prop {Drupal~behaviorAttach} attach - * Attach dynamic format change to date. - */ - Drupal.behaviors.openidealChallengeHMTL5Date = { - attach: function (context, settings) { - $('input[type="date"]').once('openideal_challenge_html5_date').each(function () { - $(this).on('change', function () { - var attribute = !this.value ? 'dd/mm/yyyy' : generateDefaultDate(new Date(this.value)); - this.setAttribute('data-date', attribute); - }).trigger("change") - }) - } - } } )(jQuery, Drupal, drupalSettings); diff --git a/modules/openideal_challenge/openideal_challenge.module b/modules/openideal_challenge/openideal_challenge.module index b1f60f45a..e479214c4 100644 --- a/modules/openideal_challenge/openideal_challenge.module +++ b/modules/openideal_challenge/openideal_challenge.module @@ -33,7 +33,6 @@ function openideal_challenge_form_node_form_alter(&$form, FormStateInterface $fo $value = &$form['created']['widget'][0]['value']; $date_format = DateFormat::load('openideal_date')->getPattern(); $value['#description'] = t('
Note that scheduling is triggered using the server time.
Current server time is: %format.
', ['%format' => Datetime::formatExample($date_format)]); - $form['#attached']['library'][] = 'openideal_challenge/openideal_challenge.schedule'; } } diff --git a/modules/openideal_content/openideal_content.module b/modules/openideal_content/openideal_content.module index c1df177e2..c68fc1c96 100644 --- a/modules/openideal_content/openideal_content.module +++ b/modules/openideal_content/openideal_content.module @@ -5,6 +5,8 @@ * Contains openideal_content.module. */ +use Drupal\Core\Ajax\AjaxResponse; +use Drupal\Core\Ajax\InsertCommand; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Url; @@ -21,6 +23,46 @@ function openideal_content_link_alter(&$variables) { } } +/** + * Implements hook_form_BASE_FORM_ID_alter(). + */ +function openideal_content_form_vote_form_alter(&$form, FormStateInterface $form_state, $form_id) { + $entity = $form_state->getFormObject()->getEntity(); + if (isset($form['type']['#ajax']['callback']) && $entity->entity_type->value == 'node') { + $form['type']['#ajax']['callback'] = '_openideal_content_vote_ajax_submit'; + } +} + +/** + * Ajax submit handler. + * + * Replace submit handler from voting api, and set the + * voting count into hidden field for FE purposes. + */ +function _openideal_content_vote_ajax_submit(&$form, FormStateInterface $form_state) { + // Todo: change the button label here. + // @see Drupal.behaviors.openidealThemeLikeWidgetLabel + $form_state->getFormObject() + ->submitForm($form, $form_state); + $callback_object = $form_state->getFormObject(); + $field_items = $form_state->get('field_items'); + $settings = $form_state->get('formatter_settings') + $field_items->getSettings(); + $results = \Drupal::service('votingapi_reaction.manager')->getResults($callback_object->getEntity(), $settings); + $result = array_sum(array_column($results, 'vote_sum')); + $response = new AjaxResponse(); + + // Form insert. + $html = \Drupal::service('renderer')->renderRoot($form); + $response->addCommand(new InsertCommand(NULL, $html)); + $response->setAttachments($form['#attached']); + + // Votes update. + $content = '

' . $result . '

'; + $response->addCommand(new InsertCommand('[data-openideal-vote="like_tag"]', $content)); + + return $response; +} + /** * Implements hook_views_query_alter(). */ diff --git a/modules/openideal_idea/js/autocomplete.js b/modules/openideal_idea/js/autocomplete.js new file mode 100644 index 000000000..3ab7d1626 --- /dev/null +++ b/modules/openideal_idea/js/autocomplete.js @@ -0,0 +1,29 @@ +/** + * @file + * Autocomplete based on jQuery UI. + */ + +(function ($, Drupal, window) { + 'use strict'; + + /** + * Attaches the autocomplete behavior to all required fields. + * + * @type {Drupal~behavior} + * + * @prop {Drupal~behaviorAttach} attach + * Attaches the autocomplete behaviors. + */ + Drupal.behaviors.openidealIdeaAutocomplete = { + attach: function (context, settings) { + var $autocomplete = $(context).find('.field--name-title input.form-autocomplete').once('openideal_idea_autocomplete'); + + if ($autocomplete.length) { + $autocomplete.on('autocompleteselect', function (event, ui) { + window.location.replace(ui.item.url); + }) + } + } + } + +})(jQuery, Drupal, window); diff --git a/modules/openideal_idea/openideal_idea.libraries.yml b/modules/openideal_idea/openideal_idea.libraries.yml new file mode 100644 index 000000000..7698afb04 --- /dev/null +++ b/modules/openideal_idea/openideal_idea.libraries.yml @@ -0,0 +1,6 @@ +autocomplete: + js: + js/autocomplete.js: {} + dependencies: + - core/jquery + - core/jquery.once diff --git a/modules/openideal_idea/openideal_idea.module b/modules/openideal_idea/openideal_idea.module index ccf3f3c79..b5d71ceb2 100644 --- a/modules/openideal_idea/openideal_idea.module +++ b/modules/openideal_idea/openideal_idea.module @@ -76,6 +76,12 @@ function openideal_idea_form_node_idea_form_alter(&$form, FormStateInterface $fo $form['field_challenge']['widget']['#default_value'] = $challenge_id; } } + + $form['#attached']['library'][] = 'openideal_idea/autocomplete'; + + if (isset($form['title']['widget'][0]['value'])) { + $form['title']['widget'][0]['value']['#autocomplete_route_name'] = 'openideal_idea.ideas_autocomplete'; + } } /** diff --git a/modules/openideal_idea/openideal_idea.routing.yml b/modules/openideal_idea/openideal_idea.routing.yml index 8eaa8a5a5..3eb62db98 100644 --- a/modules/openideal_idea/openideal_idea.routing.yml +++ b/modules/openideal_idea/openideal_idea.routing.yml @@ -7,3 +7,10 @@ openideal_idea.openideal_idea_score_config_form: _permission: 'access to configuration forms' options: _admin_route: TRUE + +openideal_idea.ideas_autocomplete: + path: '/idea/autocomplete' + defaults: + _controller: '\Drupal\openideal_idea\Controller\IdeasAutocompleteController::autocomplete' + requirements: + _permission: 'access content' diff --git a/modules/openideal_idea/src/Controller/IdeasAutocompleteController.php b/modules/openideal_idea/src/Controller/IdeasAutocompleteController.php new file mode 100644 index 000000000..ac6d74768 --- /dev/null +++ b/modules/openideal_idea/src/Controller/IdeasAutocompleteController.php @@ -0,0 +1,98 @@ +selectionManager = $selection_manager; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static( + $container->get('plugin.manager.entity_reference_selection') + ); + } + + /** + * Retrieves suggestions for ides duplication. + * + * @param \Symfony\Component\HttpFoundation\Request $request + * The current request. + * + * @return \Symfony\Component\HttpFoundation\JsonResponse + * A JSON response containing autocomplete suggestions. + */ + public function autocomplete(Request $request) { + $q = $request->query->get('q'); + $matches = []; + + if (!isset($q)) { + return new JsonResponse($matches); + } + + $matches = []; + + $selection_settings = [ + 'view' => + [ + 'view_name' => 'ideas', + 'display_name' => 'ideas_autocomplete_entity_reference', + 'arguments' => + [], + ], + 'match_operator' => 'CONTAINS', + 'match_limit' => self::LIMIT, + 'target_type' => 'node', + 'handler' => 'views', + ]; + + // Need to user selection manager instead of entity.autocomplete_matcher + // because of in such way we have more control + // and can set url for the redirection. + $handler = $this->selectionManager->getInstance($selection_settings); + + $entity_labels = $handler->getReferenceableEntities($q, 'CONTAINS', self::LIMIT); + + foreach ($entity_labels as $values) { + foreach ($values as $entity_id => $label) { + $node_url = Url::fromRoute('entity.node.canonical', ['node' => $entity_id], ['query' => ['suggested-idea' => TRUE]])->toString(); + $matches[] = ['value' => $label, 'label' => $label, 'url' => $node_url]; + } + } + + return new JsonResponse($matches); + } + +} diff --git a/modules/openideal_login/config/install/block_content.type.login.yml b/modules/openideal_login/config/install/block_content.type.login.yml new file mode 100644 index 000000000..ea681aa27 --- /dev/null +++ b/modules/openideal_login/config/install/block_content.type.login.yml @@ -0,0 +1,7 @@ +langcode: en +status: true +dependencies: { } +id: login +label: 'Login block' +revision: 0 +description: '' diff --git a/modules/openideal_login/config/install/core.entity_form_display.block_content.login.default.yml b/modules/openideal_login/config/install/core.entity_form_display.block_content.login.default.yml new file mode 100644 index 000000000..66ec368dd --- /dev/null +++ b/modules/openideal_login/config/install/core.entity_form_display.block_content.login.default.yml @@ -0,0 +1,43 @@ +langcode: en +status: true +dependencies: + config: + - block_content.type.login + - field.field.block_content.login.body + - field.field.block_content.login.field_image + - image.style.thumbnail + module: + - image + - text +id: block_content.login.default +targetEntityType: block_content +bundle: login +mode: default +content: + body: + type: text_textarea_with_summary + weight: 26 + settings: + rows: 9 + summary_rows: 3 + placeholder: '' + show_summary: false + third_party_settings: { } + region: content + field_image: + weight: 27 + settings: + progress_indicator: throbber + preview_image_style: thumbnail + third_party_settings: { } + type: image_image + region: content + info: + type: string_textfield + weight: -5 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } +hidden: { } diff --git a/modules/openideal_login/config/install/field.field.block_content.login.body.yml b/modules/openideal_login/config/install/field.field.block_content.login.body.yml new file mode 100644 index 000000000..6018f4d5a --- /dev/null +++ b/modules/openideal_login/config/install/field.field.block_content.login.body.yml @@ -0,0 +1,22 @@ +langcode: en +status: true +dependencies: + config: + - block_content.type.login + - field.storage.block_content.body + module: + - text +id: block_content.login.body +field_name: body +entity_type: block_content +bundle: login +label: Body +description: '' +required: false +translatable: true +default_value: { } +default_value_callback: '' +settings: + display_summary: false + required_summary: false +field_type: text_with_summary diff --git a/modules/openideal_login/config/install/field.field.block_content.login.field_image.yml b/modules/openideal_login/config/install/field.field.block_content.login.field_image.yml new file mode 100644 index 000000000..00932c7a1 --- /dev/null +++ b/modules/openideal_login/config/install/field.field.block_content.login.field_image.yml @@ -0,0 +1,37 @@ +langcode: en +status: true +dependencies: + config: + - block_content.type.login + - field.storage.block_content.field_image + module: + - image +id: block_content.login.field_image +field_name: field_image +entity_type: block_content +bundle: login +label: Image +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + file_directory: '[date:custom:Y]-[date:custom:m]' + file_extensions: 'png gif jpg jpeg' + max_filesize: '' + max_resolution: '' + min_resolution: '' + alt_field: true + alt_field_required: false + title_field: false + title_field_required: false + default_image: + uuid: '' + alt: '' + title: '' + width: null + height: null + handler: 'default:file' + handler_settings: { } +field_type: image diff --git a/modules/openideal_login/config/install/field.storage.block_content.field_image.yml b/modules/openideal_login/config/install/field.storage.block_content.field_image.yml new file mode 100644 index 000000000..6e0ba2464 --- /dev/null +++ b/modules/openideal_login/config/install/field.storage.block_content.field_image.yml @@ -0,0 +1,29 @@ +langcode: en +status: true +dependencies: + module: + - block_content + - file + - image +id: block_content.field_image +field_name: field_image +entity_type: block_content +type: image +settings: + uri_scheme: public + default_image: + uuid: '' + alt: '' + title: '' + width: null + height: null + target_type: file + display_field: false + display_default: false +module: image +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/modules/openideal_login/config/optional/core.entity_view_display.block_content.login.default.yml b/modules/openideal_login/config/optional/core.entity_view_display.block_content.login.default.yml new file mode 100644 index 000000000..cb66c9b2e --- /dev/null +++ b/modules/openideal_login/config/optional/core.entity_view_display.block_content.login.default.yml @@ -0,0 +1,93 @@ +langcode: en +status: true +dependencies: + config: + - block_content.type.login + - field.field.block_content.login.body + - field.field.block_content.login.field_image + module: + - image + - layout_builder + - text + theme: + - openideal_theme +third_party_settings: + layout_builder: + allow_custom: false + enabled: true + sections: + - + layout_id: openideal_two_columns_teaser + layout_settings: + label: '' + main_class: user-login-form--container--right__text + layout_builder_styles_style: + author: 0 + user_compact: 0 + user_profile: 0 + user_profile_top: 0 + components: + 2f0d2b45-54c7-4ba5-ba86-65dc9505679e: + uuid: 2f0d2b45-54c7-4ba5-ba86-65dc9505679e + region: first + configuration: + label_display: '0' + context_mapping: + entity: layout_builder.entity + id: 'field_block:block_content:login:body' + formatter: + label: hidden + type: text_default + settings: + offset: 0 + limit: 0 + third_party_settings: { } + additional: { } + weight: 0 + 1e4a8db3-8563-465d-bdaa-672eaf9eac1f: + uuid: 1e4a8db3-8563-465d-bdaa-672eaf9eac1f + region: second + configuration: + id: 'field_block:block_content:login:field_image' + label: Image + provider: layout_builder + label_display: '0' + formatter: + label: hidden + type: image + settings: + image_style: '' + image_link: '' + third_party_settings: { } + context_mapping: + entity: layout_builder.entity + view_mode: view_mode + additional: { } + weight: 1 + third_party_settings: { } +id: block_content.login.default +targetEntityType: block_content +bundle: login +mode: default +content: + body: + label: hidden + type: text_default + weight: 0 + settings: + offset: 0 + limit: 0 + third_party_settings: { } + region: content + field_image: + weight: 1 + label: above + settings: + image_style: '' + image_link: '' + offset: 0 + limit: 0 + third_party_settings: { } + type: image + region: content +hidden: { } diff --git a/modules/openideal_login/content/block_content/9e7546b2-92f2-4792-8710-4995158ee7ed.yml b/modules/openideal_login/content/block_content/9e7546b2-92f2-4792-8710-4995158ee7ed.yml new file mode 100644 index 000000000..406b94186 --- /dev/null +++ b/modules/openideal_login/content/block_content/9e7546b2-92f2-4792-8710-4995158ee7ed.yml @@ -0,0 +1,33 @@ +_meta: + version: '1.0' + entity_type: block_content + uuid: 9e7546b2-92f2-4792-8710-4995158ee7ed + bundle: login + default_langcode: en + depends: + 67ed572b-6083-4b52-91fa-e2202dc60fba: file +default: + status: + - + value: true + info: + - + value: login + reusable: + - + value: true + revision_translation_affected: + - + value: true + body: + - + value: "

Ideas Inspire Innovation

\r\n\r\n\r\n" + format: full_html + summary: '' + field_image: + - + entity: 67ed572b-6083-4b52-91fa-e2202dc60fba + alt: '' + title: '' + width: 518 + height: 419 diff --git a/modules/openideal_login/content/file/67ed572b-6083-4b52-91fa-e2202dc60fba.yml b/modules/openideal_login/content/file/67ed572b-6083-4b52-91fa-e2202dc60fba.yml new file mode 100644 index 000000000..5fa7fba60 --- /dev/null +++ b/modules/openideal_login/content/file/67ed572b-6083-4b52-91fa-e2202dc60fba.yml @@ -0,0 +1,27 @@ +_meta: + version: '1.0' + entity_type: file + uuid: 67ed572b-6083-4b52-91fa-e2202dc60fba + default_langcode: en +default: + uid: + - + target_id: 1 + filename: + - + value: login_background.jpg + uri: + - + value: 'public://2020-10/login_background.jpg' + filemime: + - + value: image/jpeg + filesize: + - + value: 187648 + status: + - + value: true + created: + - + value: 1603902995 diff --git a/modules/openideal_login/content/file/login_background.jpg b/modules/openideal_login/content/file/login_background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8c600d3846aa9f8bae50e6596260b58f58f6137a GIT binary patch literal 187648 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

_9LLST0%7F5+Va@6UNuL@;> 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 J2tR&U|Ji!s8(IJW literal 0 HcmV?d00001 diff --git a/modules/openideal_login/js/underliner.js b/modules/openideal_login/js/underliner.js new file mode 100644 index 000000000..b8660aea1 --- /dev/null +++ b/modules/openideal_login/js/underliner.js @@ -0,0 +1,26 @@ +(function ($, Drupal) { + + /** + * Attach behaviours on user login. + * + * @type {Drupal~behavior} + * + * @prop {Drupal~behaviorAttach} attach + * Add svg underline for tag. + */ + Drupal.behaviors.openidealLoginUndeliner = { + attach: function (context, settings) { + if (settings.loginPage.underliner) { + var $span = $('.user-login-form--container--right__text--section__first span').once('openideal_login_undeliner'); + if ($span.length) { + var $em = $('.user-login-form--container--right__text--section__first em').get(0); + $span.css('width', $em.offsetWidth) + $span.css('height', $em.offsetHeight) + new Underliner('.user-login-form--container--right__text--section__first em', '#27c0ff', '#27c0ff', 4, 6); + } + } + } + } + +} +)(jQuery, Drupal); diff --git a/modules/openideal_login/openideal_login.info.yml b/modules/openideal_login/openideal_login.info.yml new file mode 100644 index 000000000..a5516ad02 --- /dev/null +++ b/modules/openideal_login/openideal_login.info.yml @@ -0,0 +1,12 @@ +name: 'OpenideaL Login' +type: module +description: 'Provides main slideshow functionality for OpenideaL login.' +core: 8.x +core_version_requirement: ^8 || ^9 +package: 'OpenideaL' + +dependencies: + - default_content:default_content + - openideal_user:openideal_user + - drupal:image + - drupal:text diff --git a/modules/openideal_login/openideal_login.libraries.yml b/modules/openideal_login/openideal_login.libraries.yml new file mode 100644 index 000000000..40274f5b2 --- /dev/null +++ b/modules/openideal_login/openideal_login.libraries.yml @@ -0,0 +1,7 @@ +underliner: + js: + js/underliner.js: {} + /libraries/link-underliner/index.js: {} + dependencies: + - core/jquery + - core/jquery.once diff --git a/modules/openideal_login/openideal_login.module b/modules/openideal_login/openideal_login.module new file mode 100644 index 000000000..aa640b9c3 --- /dev/null +++ b/modules/openideal_login/openideal_login.module @@ -0,0 +1,193 @@ + 'html_tag', + '#tag' => 'h1', + '#value' => t('Create your @site account', ['@site' => \Drupal::config('system.site')->get('name')]), + '#weight' => -1, + ]; +} + +/** + * Implements hook_form_FORM_ID_alter(). + */ +function openideal_login_form_user_login_form_alter(&$form, FormStateInterface $form_state, $form_id) { + /** @var \Drupal\social_api\Plugin\NetworkManager $network_manager */ + $network_manager = \Drupal::service('plugin.network.manager'); + $social_plugins = \Drupal::config('social_auth.settings')->get('auth'); + $form['#attributes']['class'][] = 'user-login-form'; + $form['container'] = [ + '#type' => 'container', + '#attributes' => ['class' => ['user-login-form--container']], + 'left' => [ + '#type' => 'container', + '#attributes' => ['class' => ['user-login-form--container--left']], + ], + 'right' => [ + '#type' => 'container', + '#attributes' => ['class' => ['user-login-form--container--right']], + ], + ]; + + $entity_manager = \Drupal::entityTypeManager(); + $block_entity = $entity_manager->getStorage('block_content')->loadByProperties(['info' => 'login']); + if (!empty($block_entity)) { + $block = $entity_manager->getViewBuilder('block_content')->view(current($block_entity), 'full'); + $form['container']['right']['section']['block'] = $block; + } + + $form['container']['left']['title'] = [ + '#type' => 'html_tag', + '#tag' => 'h1', + '#attributes' => ['class' => ['user-login-form--container--title']], + '#value' => t('Login to @site', ['@site' => \Drupal::config('system.site')->get('name')]), + ]; + + foreach (['name', 'pass'] as $child) { + if (isset($form[$child])) { + unset($form[$child]['#description']); + + if ($child == 'name') { + $form[$child]['#placeholder'] = t('Email Address'); + $form[$child]['#weight'] = 3; + } + if ($child == 'pass') { + $form[$child]['#placeholder'] = t('Password'); + $form[$child]['#weight'] = 4; + } + + $form['container']['left'][$child] = $form[$child]; + unset($form[$child]); + } + } + + // Remove socials that aren't configured properly. + foreach ($social_plugins as $plugin_id => &$data) { + if (!$network_manager->createInstance($plugin_id)->getSdk()) { + unset($social_plugins[$plugin_id]); + } + + $theme_path = \Drupal::service('theme_handler')->getTheme('openideal_theme')->getPath(); + if (strpos($plugin_id, 'google') !== FALSE) { + $data['img_path'] = $theme_path . '/images/icons/google_icon.png'; + $data['name'] = t('Sign in with Google'); + } + elseif (strpos($plugin_id, 'facebook') !== FALSE) { + $data['img_path'] = $theme_path . '/images/icons/facebook_icon.png'; + $data['name'] = t('Sign in with Facebook'); + } + elseif (strpos($plugin_id, 'github') !== FALSE) { + $data['img_path'] = $theme_path . '/images/icons/github_icon.png'; + $data['name'] = t('Sign in with GitHub'); + } + } + + if (!empty($social_plugins)) { + $form['container']['left']['or'] = [ + '#type' => 'container', + '#attributes' => ['class' => ['user-login-form--container--left__or']], + 'before' => [ + '#type' => 'container', + '#attributes' => ['class' => ['user-login-form--container--left__or--line']], + ], + 'or' => [ + '#type' => 'html_tag', + '#tag' => 'p', + '#value' => 'or', + '#attributes' => ['class' => ['user-login-form--container--left__or--or']], + ], + 'after' => [ + '#type' => 'container', + '#attributes' => ['class' => ['user-login-form--container--left__or--line']], + ], + '#weight' => '2', + ]; + + $form['container']['left']['social_buttons'] = [ + '#type' => 'container', + '#attributes' => ['class' => ['user-login-form--container--left__social-login-buttons']], + 'buttons' => [ + '#theme' => 'login_with', + '#social_networks' => $social_plugins, + '#weight' => '1', + ], + ]; + } + + $signup_link = Link::createFromRoute(t('signup'), 'user.register')->toString(); + $reset_link = Link::createFromRoute(t('Forgot your password?'), 'user.pass')->toString(); + $form['container']['left']['bottom'] = [ + '#type' => 'container', + '#attributes' => ['class' => ['user-login-form--container__bottom']], + 'signup' => [ + '#type' => 'html_tag', + '#attributes' => [ + 'class' => [ + 'user-login-form--container__bottom--signup', + 'user-login-form--container__bottom--text', + ], + ], + '#tag' => 'p', + '#value' => t("Don't have an account? @link", ['@link' => $signup_link]), + ], + 'reset' => [ + '#type' => 'html_tag', + '#attributes' => [ + 'class' => [ + 'user-login-form--container__bottom--forgot-password', + 'user-login-form--container__bottom--text', + ], + ], + '#tag' => 'p', + '#value' => $reset_link, + ], + ]; + + $form['#attached']['library'][] = 'openideal_login/underliner'; + $form['#attached']['drupalSettings']['loginPage']['underliner'] = TRUE; + + $form['actions']['submit']['#value'] = t('Login'); + $form['actions']['#attributes']['class'][] = 'user-login-form--container--actions'; + $form['container']['left']['actions'] = $form['actions']; + unset($form['actions']); +} + +/** + * Implements hook_user_login(). + */ +function openideal_login_user_login(UserInterface $account) { + if (RouteMatch::createFromRequest(\Drupal::request())->getRouteName() == 'user_registrationpassword.confirm') { + $event = new OpenidealUserJoinedSiteEvent($account); + \Drupal::service('event_dispatcher')->dispatch(OpenidealUserEvents::OPENIDEA_USER_JOINED_THE_SITE, $event); + + // Redirect user if joined the site for the first + // time via the user_registrationpassword one time link. + $response = new RedirectResponse(URL::fromRoute('openideal_user.register.user.more_about_you')->toString()); + $response->send(); + } + + // If user was created by UI or via social logins then dispatch + // OpenidealUserEvents. + if (!$account->getLastAccessedTime()) { + $event = new OpenidealUserJoinedSiteEvent($account); + \Drupal::service('event_dispatcher')->dispatch(OpenidealUserEvents::OPENIDEA_USER_JOINED_THE_SITE, $event); + } +} diff --git a/modules/openideal_statistics/openideal_statistics.module b/modules/openideal_statistics/openideal_statistics.module index 0d1435236..3ee4c32b1 100644 --- a/modules/openideal_statistics/openideal_statistics.module +++ b/modules/openideal_statistics/openideal_statistics.module @@ -10,11 +10,11 @@ */ function openideal_statistics_theme() { return [ - 'site_wide_statistics_block' => [ + 'statistics_item' => [ 'variables' => [ - 'content' => NULL, - 'main_class' => NULL, 'show_title' => NULL, + 'img' => NULL, + 'bottom' => NULL, ], ], 'export_icon__openideal' => [ diff --git a/modules/openideal_statistics/src/Element/StatisticsItem.php b/modules/openideal_statistics/src/Element/StatisticsItem.php new file mode 100644 index 000000000..4251dc765 --- /dev/null +++ b/modules/openideal_statistics/src/Element/StatisticsItem.php @@ -0,0 +1,94 @@ + 'statistics_item', + '#show_title' => TRUE, + + // These three variable are replaced/inserted into appropriate places in + // self::preRenderStatisticsItem(). + '#img_class' => NULL, + '#lazy_element' => NULL, + '#item_title' => NULL, + + '#img' => [ + 'attributes' => [ + 'class' => [ + 'item-svg', + // Add. + 'idea-statistics-block--list__item--', + ], + ], + ], + '#bottom' => [ + 'attributes' => ['class' => ['idea-statistics-block--list__item--bottom']], + 'count' => [ + 'attributes' => ['class' => ['idea-statistics-block--list__item--count']], + 'value' => NULL, + ], + 'title' => [ + 'value' => NULL, + 'attributes' => ['class' => ['idea-statistics-block--list__item--title']], + ], + ], + '#pre_render' => [ + [self::class, 'preRenderStatisticsItem'], + ], + ]; + } + + /** + * Pre-render callback. + * + * @param array $element + * The renderable array representing the element. + * + * @return array + * The passed in element with changes made to attributes depending on + * context. + */ + public static function preRenderStatisticsItem(array $element) { + // Set/configure/prepare attributes. + if ($key = array_search( + 'idea-statistics-block--list__item--', + $element['#img']['attributes']['class'] + ) && isset($element['#img_class'])) { + $element['#img']['attributes']['class'][$key] .= $element['#img_class']; + $element['#bottom']['count']['attributes']['data-openideal-vote'] = $element['#img_class']; + unset($element['#img_class']); + } + + if (isset($element['#lazy_element'])) { + $element['#bottom']['count']['value'] = $element['#lazy_element']; + unset($element['#lazy_element']); + } + + if (isset($element['#item_title'])) { + $element['#img']['attributes']['title'] = $element['#item_title']; + $element['#bottom']['title']['value'] = $element['#item_title']; + unset($element['#item_title']); + } + + $element['#img']['attributes'] = new Attribute($element['#img']['attributes']); + $element['#bottom']['attributes'] = new Attribute($element['#bottom']['attributes']); + $element['#bottom']['count']['attributes'] = new Attribute($element['#bottom']['count']['attributes']); + $element['#bottom']['title']['attributes'] = new Attribute($element['#bottom']['title']['attributes']); + return $element; + } + +} diff --git a/modules/openideal_statistics/src/Plugin/Block/OpenidealStatisticsChallengeStatisticsBlock.php b/modules/openideal_statistics/src/Plugin/Block/OpenidealStatisticsChallengeStatisticsBlock.php index ec61911da..756670d2e 100644 --- a/modules/openideal_statistics/src/Plugin/Block/OpenidealStatisticsChallengeStatisticsBlock.php +++ b/modules/openideal_statistics/src/Plugin/Block/OpenidealStatisticsChallengeStatisticsBlock.php @@ -28,7 +28,6 @@ class OpenidealStatisticsChallengeStatisticsBlock extends BlockBase { * {@inheritdoc} */ public function build($challenge = NULL) { - $build = []; $contexts = $this->getContexts(); $is_not_full = isset($contexts['view_mode']) && $contexts['view_mode']->getContextValue() != 'full'; $id = NULL; @@ -40,45 +39,56 @@ public function build($challenge = NULL) { return []; } - $build['#theme'] = 'site_wide_statistics_block'; - $build['#main_class'] = 'idea-statistics-block'; - $build['#show_title'] = !$is_not_full; - $build['#content'] = [ + $items = [ 'ideas' => [ - 'bottom' => [ + '#lazy_element' => [ '#lazy_builder' => ['openideal_statistics.lazy_builder:getChallengeIdeas', [$id]], '#create_placeholder' => TRUE, ], - 'title' => $this->t('Challenge ideas'), - 'img_class' => $is_not_full ? 'public_stream_idea' : 'statistics_tag', + '#item_title' => $this->t('Challenge ideas'), + '#img_class' => $is_not_full ? 'public_stream_idea' : 'statistics_tag', ], 'votes' => [ - 'bottom' => [ + '#lazy_element' => [ '#lazy_builder' => ['openideal_statistics.lazy_builder:getVotes', [$id]], '#create_placeholder' => TRUE, ], - 'title' => $this->t('Votes'), - 'img_class' => $is_not_full ? 'public_stream_like' : 'like_tag', + '#item_title' => $this->t('Votes'), + '#img_class' => $is_not_full ? 'public_stream_like' : 'like_tag', ], 'comments' => [ - 'bottom' => [ + '#lazy_element' => [ '#lazy_builder' => ['openideal_statistics.lazy_builder:getComments', [$id]], '#create_placeholder' => TRUE, ], - 'title' => $this->t('Comments'), - 'img_class' => $is_not_full ? 'public_stream_comment' : 'comment_tag', + '#item_title' => $this->t('Comments'), + '#img_class' => $is_not_full ? 'public_stream_comment' : 'comment_tag', ], 'views' => [ - 'bottom' => [ + '#lazy_element' => [ '#lazy_builder' => ['openideal_statistics.lazy_builder:getViews', [$id]], '#create_placeholder' => TRUE, ], - 'title' => $this->t('Views'), - 'img_class' => $is_not_full ? 'public_stream_view' : 'view_tag', + '#item_title' => $this->t('Views'), + '#img_class' => $is_not_full ? 'public_stream_view' : 'view_tag', + ], + ]; + + foreach ($items as &$item) { + $item['#wrapper_attributes'] = ['class' => ['idea-statistics-block--list__item']]; + $item['#type'] = 'statistics_item'; + $item['#show_title'] = !$is_not_full; + } + + return [ + 'content' => [ + '#theme' => 'item_list', + '#items' => $items, + '#attributes' => ['class' => ['idea-statistics-block--list']], + '#wrapper_attributes' => ['class' => ['idea-statistics-block']], ], ]; - return $build; } } diff --git a/modules/openideal_statistics/src/Plugin/Block/OpenidealStatisticsIdeaStatisticsBlock.php b/modules/openideal_statistics/src/Plugin/Block/OpenidealStatisticsIdeaStatisticsBlock.php index 282b9a0ec..528138b78 100644 --- a/modules/openideal_statistics/src/Plugin/Block/OpenidealStatisticsIdeaStatisticsBlock.php +++ b/modules/openideal_statistics/src/Plugin/Block/OpenidealStatisticsIdeaStatisticsBlock.php @@ -28,7 +28,6 @@ class OpenidealStatisticsIdeaStatisticsBlock extends BlockBase { * {@inheritdoc} */ public function build($challenge = NULL) { - $build = []; $contexts = $this->getContexts(); $is_not_full = isset($contexts['view_mode']) && $contexts['view_mode']->getContextValue() != 'full'; $id = NULL; @@ -40,43 +39,55 @@ public function build($challenge = NULL) { return []; } - $build['#theme'] = 'site_wide_statistics_block'; - $build['#main_class'] = 'idea-statistics-block'; - $build['#show_title'] = !$is_not_full; - $build['#content'] = [ + $items = [ 'overall_score' => [ - 'bottom' => [ + '#lazy_element' => [ $challenge ? '' : $node->field_overall_score->first()->view(['settings' => ['scale' => 0]]), ], - 'title' => $this->t('Overall score'), - 'img_class' => 'score_tag', + '#item_title' => $this->t('Overall score'), + '#img_class' => 'score_tag', ], 'votes' => [ - 'bottom' => [ + '#lazy_element' => [ '#lazy_builder' => ['openideal_statistics.lazy_builder:getVotes', [$id]], '#create_placeholder' => TRUE, ], - 'title' => $this->t('Votes'), - 'img_class' => $is_not_full ? 'public_stream_like' : 'like_tag', + '#item_title' => $this->t('Votes'), + '#img_class' => $is_not_full ? 'public_stream_like' : 'like_tag', ], 'comments' => [ - 'bottom' => [ + '#lazy_element' => [ '#lazy_builder' => ['openideal_statistics.lazy_builder:getComments', [$id]], '#create_placeholder' => TRUE, ], - 'title' => $this->t('Comments'), - 'img_class' => $is_not_full ? 'public_stream_comment' : 'comment_tag', + '#item_title' => $this->t('Comments'), + '#img_class' => $is_not_full ? 'public_stream_comment' : 'comment_tag', ], 'views' => [ - 'bottom' => [ + '#lazy_element' => [ '#lazy_builder' => ['openideal_statistics.lazy_builder:getViews', [$id]], '#create_placeholder' => TRUE, ], - 'title' => $this->t('Views'), - 'img_class' => $is_not_full ? 'public_stream_view' : 'view_tag', + '#item_title' => $this->t('Views'), + '#img_class' => $is_not_full ? 'public_stream_view' : 'view_tag', + ], + ]; + + // @Todo: create trait or abstract class with this as method. + foreach ($items as &$item) { + $item['#wrapper_attributes'] = ['class' => ['idea-statistics-block--list__item']]; + $item['#type'] = 'statistics_item'; + $item['#show_title'] = !$is_not_full; + } + + return [ + 'content' => [ + '#theme' => 'item_list', + '#items' => $items, + '#attributes' => ['class' => ['idea-statistics-block--list']], + '#wrapper_attributes' => ['class' => ['idea-statistics-block']], ], ]; - return $build; } } diff --git a/modules/openideal_statistics/src/Plugin/Block/SiteWideStatisticsBlock.php b/modules/openideal_statistics/src/Plugin/Block/SiteWideStatisticsBlock.php index c8d8eecf2..1353839a3 100644 --- a/modules/openideal_statistics/src/Plugin/Block/SiteWideStatisticsBlock.php +++ b/modules/openideal_statistics/src/Plugin/Block/SiteWideStatisticsBlock.php @@ -18,44 +18,54 @@ class SiteWideStatisticsBlock extends BlockBase { * {@inheritdoc} */ public function build() { - $build['#theme'] = 'site_wide_statistics_block'; - $build['#main_class'] = 'site-wide-statistics-block'; - $build['#show_title'] = TRUE; - $build['#content'] = [ + $items = [ 'ideas' => [ - 'bottom' => [ + '#img_class' => 'statistics_tag', + '#lazy_element' => [ '#lazy_builder' => ['openideal_statistics.lazy_builder:getIdeas', []], '#create_placeholder' => TRUE, ], - 'title' => $this->t('Ideas'), - 'img_class' => 'statistics_tag', + '#item_title' => $this->t('Ideas'), ], 'members' => [ - 'bottom' => [ + '#lazy_element' => [ '#lazy_builder' => ['openideal_statistics.lazy_builder:getMembers', []], '#create_placeholder' => TRUE, ], - 'title' => $this->t('Members'), - 'img_class' => 'members_tag', + '#item_title' => $this->t('Members'), + '#img_class' => 'members_tag', ], 'comments' => [ - 'bottom' => [ + '#lazy_element' => [ '#lazy_builder' => ['openideal_statistics.lazy_builder:getComments', []], '#create_placeholder' => TRUE, ], - 'title' => $this->t('Comments'), - 'img_class' => 'comment_tag', + '#item_title' => $this->t('Comments'), + '#img_class' => 'comment_tag', ], 'votes' => [ - 'bottom' => [ + '#lazy_element' => [ '#lazy_builder' => ['openideal_statistics.lazy_builder:getVotes', []], '#create_placeholder' => TRUE, ], - 'title' => $this->t('Votes'), - 'img_class' => 'like_tag', + '#item_title' => $this->t('Votes'), + '#img_class' => 'like_tag', + ], + ]; + + foreach ($items as &$item) { + $item['#wrapper_attributes'] = ['class' => ['idea-statistics-block--list__item']]; + $item['#type'] = 'statistics_item'; + } + + return [ + 'content' => [ + '#theme' => 'item_list', + '#items' => $items, + '#attributes' => ['class' => ['idea-statistics-block--list']], + '#wrapper_attributes' => ['class' => ['idea-statistics-block']], ], ]; - return $build; } } diff --git a/modules/openideal_statistics/templates/site-wide-statistics-block.html.twig b/modules/openideal_statistics/templates/site-wide-statistics-block.html.twig deleted file mode 100644 index 01e9c76fb..000000000 --- a/modules/openideal_statistics/templates/site-wide-statistics-block.html.twig +++ /dev/null @@ -1,25 +0,0 @@ -{# -/** -* @file -* Default theme implementation to display a block. -* -* @see template_preprocess_block() -* -* @ingroup themeable -*/ -#} -

-
    - {% for item in content %} -
  • -
    -
    -

    {{ item.bottom }}

    - {% if show_title %} -

    {{ item.title }}

    - {% endif %} -
    -
  • - {% endfor %} -
-
diff --git a/modules/openideal_statistics/templates/statistics-item.html.twig b/modules/openideal_statistics/templates/statistics-item.html.twig new file mode 100644 index 000000000..35a636059 --- /dev/null +++ b/modules/openideal_statistics/templates/statistics-item.html.twig @@ -0,0 +1,20 @@ +{# +/** + * @file + * Default theme implementation for the statistics_item render element. + * + * Available variables: + * - img: attributes. + * - bottom: attributes, [count[value, attrbiutes], title[attributes, value]] + * - show_title: bool if TRUE show title. default TRUE + * + * @ingroup themeable + */ +#} +
+
+

{{ bottom.count.value }}

+ {% if show_title %} +

{{ bottom.title.value }}

+ {% endif %} +
diff --git a/modules/openideal_user/images/login_background.jpg b/modules/openideal_user/images/login_background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d363d704780482034495741b89496fdf388347a9 GIT binary patch literal 23413 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'openideal_login')) { + \Drupal::service('module_installer')->install(['openideal_login']); + return t('The "OpenideaL Login" module has been installed.'); + } +} diff --git a/modules/openideal_user/openideal_user.module b/modules/openideal_user/openideal_user.module index 61f3992ee..1676c4ccf 100644 --- a/modules/openideal_user/openideal_user.module +++ b/modules/openideal_user/openideal_user.module @@ -10,7 +10,6 @@ use Drupal\message\MessageInterface; use Drupal\Core\Access\AccessResult; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Form\FormStateInterface; -use Drupal\Core\Routing\RouteMatch; use Drupal\Core\Session\AccountInterface; use Drupal\Core\Url; use Drupal\flag\FlagInterface; @@ -18,39 +17,12 @@ use Drupal\group\Entity\GroupContent; use Drupal\node\NodeInterface; use Drupal\openideal_user\Event\OpenidealUserEvents; use Drupal\openideal_user\Event\OpenidealUserGroupEvent; -use Drupal\openideal_user\Event\OpenidealUserJoinedSiteEvent; use Drupal\openideal_user\Form\OpenidealSecondStepRegistrationForm; use Drupal\transaction\TransactionInterface; use Drupal\user\UserInterface; use Drupal\views\Plugin\views\query\QueryPluginBase; use Drupal\views\ViewExecutable; use Drupal\views\Views; -use Symfony\Component\HttpFoundation\RedirectResponse; - -/** - * Implements hook_form_FORM_ID_alter(). - */ -function openideal_user_form_user_login_form_alter(&$form, FormStateInterface $form_state, $form_id) { - /** @var \Drupal\social_api\Plugin\NetworkManager $network_manager */ - $network_manager = \Drupal::service('plugin.network.manager'); - $social_plugins = \Drupal::config('social_auth.settings')->get('auth'); - - // Remove socials that aren't configured properly. - foreach ($social_plugins as $plugin_id => $data) { - if (!$network_manager->createInstance($plugin_id)->getSdk()) { - unset($social_plugins[$plugin_id]); - } - } - $form['actions']['social_buttons'] = [ - '#type' => 'container', - '#attributes' => ['class' => ['social-login-buttons']], - 'buttons' => [ - '#theme' => 'login_with', - '#social_networks' => $social_plugins, - '#weight' => '1', - ], - ]; -} /** * Implements hook_menu_local_tasks_alter(). @@ -78,28 +50,6 @@ function openideal_user_menu_local_tasks_alter(&$data, $route_name, RefinableCac } } -/** - * Implements hook_user_login(). - */ -function openideal_user_user_login(UserInterface $account) { - if (RouteMatch::createFromRequest(\Drupal::request())->getRouteName() == 'user_registrationpassword.confirm') { - $event = new OpenidealUserJoinedSiteEvent($account); - \Drupal::service('event_dispatcher')->dispatch(OpenidealUserEvents::OPENIDEA_USER_JOINED_THE_SITE, $event); - - // Redirect user if joined the site for the first - // time via the user_registrationpassword one time link. - $response = new RedirectResponse(URL::fromRoute('openideal_user.register.user.more_about_you')->toString()); - $response->send(); - } - - // If user was created by UI or via social logins then dispatch - // OpenidealUserEvents. - if (!$account->getLastAccessedTime()) { - $event = new OpenidealUserJoinedSiteEvent($account); - \Drupal::service('event_dispatcher')->dispatch(OpenidealUserEvents::OPENIDEA_USER_JOINED_THE_SITE, $event); - } -} - /** * Implements hook_entity_type_alter(). */ @@ -233,7 +183,7 @@ function openideal_user_mail($key, &$message, $params) { */ function openideal_user_form_alter(&$form, FormStateInterface $form_state, $form_id) { if (in_array($form_id, ['node_idea_edit_form', 'node_idea_form']) - && !\Drupal::currentUser()->hasPermission('administer site configuration')) { + && !\Drupal::currentUser()->hasPermission('administer site configuration')) { $form['field_duplicate_of']['#access'] = FALSE; } diff --git a/modules/openideal_user/src/IsUserProfilePageCacheContext.php b/modules/openideal_user/src/IsUserProfilePageCacheContext.php index 352b857db..ec28b7b77 100644 --- a/modules/openideal_user/src/IsUserProfilePageCacheContext.php +++ b/modules/openideal_user/src/IsUserProfilePageCacheContext.php @@ -11,7 +11,7 @@ /** * Defines the IsUserProfilePage service, for "is user profile page" caching. * - * Cache context ID: 'openideal_user.is_user_page_page'. + * Cache context ID: 'user.is_user_profile_page'. */ class IsUserProfilePageCacheContext extends UserCacheContextBase implements CacheContextInterface { diff --git a/modules/openideal_user/src/Plugin/Notifier/OpenidealBulkEmailNotifier.php b/modules/openideal_user/src/Plugin/Notifier/OpenidealBulkEmailNotifier.php index 41f11158a..b46448b19 100644 --- a/modules/openideal_user/src/Plugin/Notifier/OpenidealBulkEmailNotifier.php +++ b/modules/openideal_user/src/Plugin/Notifier/OpenidealBulkEmailNotifier.php @@ -114,6 +114,12 @@ protected function getRecipients() { return $recipients; } + // In case of mention send only for the mentioned user. + if ($template === 'user_mention') { + $owner = $this->message->getOwner(); + return [$owner->id() => $owner->getEmail()]; + } + // If it's a reply to comment only need to notify the parent comment owner. if ($template === 'created_reply_on_comment') { $comment = $this->message->field_comment_reference->entity; diff --git a/modules/openideal_user/src/Plugin/RulesAction/MessageAction.php b/modules/openideal_user/src/Plugin/RulesAction/MessageAction.php index 02c415621..32bfedf79 100644 --- a/modules/openideal_user/src/Plugin/RulesAction/MessageAction.php +++ b/modules/openideal_user/src/Plugin/RulesAction/MessageAction.php @@ -33,6 +33,11 @@ * assignment_restriction = "selector", * required = TRUE * ), + * "user" = @ContextDefinition("entity:user", + * label = @Translation("User"), + * assignment_restriction = "selector", + * required = FALSE + * ), * } * ) */ @@ -89,14 +94,23 @@ public static function create(ContainerInterface $container, array $configuratio * Template ID. * @param \Drupal\Core\Entity\EntityInterface $entity * The referenced entity. + * @param \Drupal\user\UserInterface $user + * The mentioned user. */ - protected function doExecute($template, EntityInterface $entity) { + protected function doExecute($template, EntityInterface $entity, UserInterface $user = NULL) { // If user already voted nothing to do here. if ($entity instanceof VoteInterface && $this->isUserVoted($entity, $template)) { return; } $owner_id = $entity instanceof UserInterface ? $entity->id() : $entity->getOwnerId(); + + // In case if event is user mentions, need to specify a mentioned user + // as an owner. + if ($user) { + $owner_id = $user->id(); + } + $message = Message::create(['template' => $template, 'uid' => $owner_id]); $entity_type = $entity->getEntityTypeId(); diff --git a/themes/openideal_theme/css/style-rtl.css b/themes/openideal_theme/css/style-rtl.css index a75a3b4fc..676b6415f 100644 --- a/themes/openideal_theme/css/style-rtl.css +++ b/themes/openideal_theme/css/style-rtl.css @@ -13636,9 +13636,11 @@ nav.tabs { .site-navigation--add-idea a { padding: 9.5px 1.3em; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #27C0FF; color: #fff; font-weight: bold; @@ -13662,10 +13664,19 @@ nav.tabs { text-transform: uppercase; } .site-navigation--add-idea a:hover { background-color: #27C8f9; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .site-navigation--add-idea a:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #27C8f9; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .site-navigation--add-idea a:before { content: ''; display: inline-block; @@ -13909,6 +13920,21 @@ nav.tabs { .block-site-wide-statistics-block { display: none; } } +.list-group { + display: unset; + -webkit-box-orient: unset; + -webkit-box-direction: unset; + -webkit-flex-direction: unset; + -ms-flex-direction: unset; + flex-direction: unset; } + +.list-group-item { + display: unset; + position: unset; + padding: unset; + border: unset; + background-color: unset; } + .block-page-title-block .title { color: #343352; font-size: 2.25rem; @@ -13949,18 +13975,51 @@ nav.tabs { .form-actions input { margin-bottom: 6px; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; } .form-actions input:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .form-actions input:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } + +.form-control { + border: 1px solid #D0D6DC; + border-radius: unset; + line-height: 1.125rem; + height: unset; } + .form-control::-webkit-input-placeholder { + font-family: "Assistant", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + display: block; } + .form-control::-moz-placeholder { + font-family: "Assistant", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + display: block; } + .form-control::-ms-input-placeholder { + font-family: "Assistant", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + display: block; } + .form-control::placeholder { + font-family: "Assistant", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + display: block; } .block-openidel-idea-node-bundle { position: absolute; @@ -14031,9 +14090,11 @@ nav.tabs { margin-bottom: 24px; } .comments--header__add-comment-btn { border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: transparent; color: #fff; font-weight: bold; @@ -14043,10 +14104,19 @@ nav.tabs { padding: 15px 70px; } .comments--header__add-comment-btn:hover { background-color: transparent; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .comments--header__add-comment-btn:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: transparent; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .comments--header__add-comment-btn:hover, .comments--header__add-comment-btn:active { color: #1294ca; } .comments--bottom { @@ -14146,19 +14216,30 @@ nav.tabs { text-transform: uppercase; font-size: inherit; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; padding-right: 25px; } .comment-comment-form .form-actions .font-submit-btn-wrapper .form-submit:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .comment-comment-form .form-actions .font-submit-btn-wrapper .form-submit:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .comment-comment-form .form-actions .font-submit-btn-wrapper img { font-size: inherit; top: 50%; @@ -14262,9 +14343,11 @@ nav.tabs { display: flex; } .node--view-mode-full .block-field-blocknodearticlefield-tags .field__items li { border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #fff; color: #fff; font-weight: bold; @@ -14278,10 +14361,19 @@ nav.tabs { margin-bottom: 5px; } .node--view-mode-full .block-field-blocknodearticlefield-tags .field__items li:hover { background-color: #fff; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--view-mode-full .block-field-blocknodearticlefield-tags .field__items li:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #fff; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--view-mode-full .idea-statistics-and-status-block, .node--view-mode-full .block-openideal-statistics-challenge-statistics { @@ -14344,19 +14436,30 @@ nav.tabs { .node--view-mode-full .two-columns-challenge-ideas a { padding: 15px 70px; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #27C0FF; color: #fff; font-weight: bold; font-size: 15px; } .node--view-mode-full .two-columns-challenge-ideas a:hover { background-color: #5eaed2; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--view-mode-full .two-columns-challenge-ideas a:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #5eaed2; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .view--news--all-news-page .node--type-article .card-body .block-openideal-rrssb-block h2 { text-transform: uppercase; @@ -14511,19 +14614,30 @@ nav.tabs { font-size: 0.9375rem; margin-bottom: 49px; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; margin-left: 0; } .region-sidebar--flag-and-follow--element .votingapi-reaction-item:hover, .region-sidebar--flag--element .votingapi-reaction-item:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .region-sidebar--flag-and-follow--element .votingapi-reaction-item:active, .region-sidebar--flag--element .votingapi-reaction-item:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .region-sidebar--flag-and-follow--element .votingapi-reaction-item.active, .region-sidebar--flag--element .votingapi-reaction-item.active { background-color: #1e7697; } .region-sidebar--flag-and-follow--element .flag-follow, .region-sidebar--flag--element .flag-follow { @@ -14543,18 +14657,29 @@ nav.tabs { flex-basis: 100%; font-size: 0.9375rem; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #27C0FF; color: #fff; font-weight: bold; } .region-sidebar--flag-and-follow--element .flag-follow a:hover, .region-sidebar--flag-and-follow--element .flag-follow--body:hover, .region-sidebar--flag--element .flag-follow a:hover, .region-sidebar--flag--element .flag-follow--body:hover { background-color: #5eaed2; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .region-sidebar--flag-and-follow--element .flag-follow a:active, .region-sidebar--flag-and-follow--element .flag-follow--body:active, .region-sidebar--flag--element .flag-follow a:active, .region-sidebar--flag--element .flag-follow--body:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #5eaed2; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .region-sidebar--flag-and-follow--element .flag-follow--body, .region-sidebar--flag--element .flag-follow--body { margin: 70px 0 11px 0; } @@ -14626,9 +14751,11 @@ nav.tabs { .block-openideal-idea-tags-block .list-group-item { margin-bottom: 5px; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #fff; color: #fff; font-weight: bold; @@ -14641,10 +14768,19 @@ nav.tabs { text-decoration: none; } .block-openideal-idea-tags-block .list-group-item:hover { background-color: #fff; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .block-openideal-idea-tags-block .list-group-item:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #fff; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .idea-statistics-block { margin-bottom: 15px; @@ -15199,13 +15335,13 @@ nav.tabs { .node--view-mode-teaser .teaser-top-section--section__second { padding: 15px; } } -.site-wide-statistics-block--list { +.block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; list-style: none; } - .site-wide-statistics-block--list__item { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -15229,7 +15365,7 @@ nav.tabs { padding: 12px 6px 0; background-color: #fff; min-width: 77px; } - .site-wide-statistics-block--list__item--bottom { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item--bottom { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -15244,23 +15380,27 @@ nav.tabs { -ms-flex-align: center; align-items: center; text-transform: uppercase; } - .site-wide-statistics-block--list__item .item-svg { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item .item-svg { width: 32px; height: 32px; - margin-bottom: 6px; } - .site-wide-statistics-block--list__item--statistics_tag { + margin-bottom: 6px; + margin-left: 0; } + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item--statistics_tag { background: url("../images/icons/statistics_tag.svg") no-repeat center center; } - .site-wide-statistics-block--list__item--members_tag { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item--members_tag { background: url("../images/icons/members_tag.svg") no-repeat center center; } - .site-wide-statistics-block--list__item--comment_tag { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item--comment_tag { background: url("../images/icons/comment_tag.svg") no-repeat center center; } - .site-wide-statistics-block--list__item--like_tag { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item--like_tag { background: url("../images/icons/like_tag.svg") no-repeat center center; } - .site-wide-statistics-block--list__item p { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item p { line-height: 1; letter-spacing: -0.5px; font-size: 15px; } - .site-wide-statistics-block--list__item--count { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item--title { + margin-bottom: 1rem; } + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item--count { + margin-left: 0; font-weight: bold; margin-bottom: 1px; } @@ -15527,9 +15667,11 @@ nav.tabs { -ms-flex-align: center; align-items: center; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; @@ -15544,10 +15686,19 @@ nav.tabs { color: #fff; } .entity--user--canonical .user-top .nav-tabs .nav-item .nav-link:hover { background-color: #1e829a; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .entity--user--canonical .user-top .nav-tabs .nav-item .nav-link:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e829a; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .entity--user--canonical .user-top .nav-tabs .nav-item .nav-link:before { content: ''; display: block; @@ -15577,9 +15728,11 @@ nav.tabs { -ms-flex-align: center; align-items: center; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; @@ -15590,10 +15743,19 @@ nav.tabs { color: #fff; } .entity--user--canonical .user-top .user-actions--link a:hover { background-color: #1e829a; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .entity--user--canonical .user-top .user-actions--link a:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e829a; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .profile-user-profile-view-mode h2 { font-size: 30px; @@ -15694,7 +15856,6 @@ nav.tabs { .main-content nav.tabs ul .nav-item.active a { background: unset; } -.user--login section.main-content, .user--register section.main-content, .user--pass section.main-content { display: -webkit-box; @@ -15715,7 +15876,6 @@ nav.tabs { -ms-flex-align: center; align-items: center; } -.user--login .block-system-main-block, .user--register .block-system-main-block, .user--pass .block-system-main-block { display: -webkit-box; @@ -15727,7 +15887,6 @@ nav.tabs { -ms-flex-pack: center; justify-content: center; } -.user--login .nav-tabs, .user--register .nav-tabs, .user--pass .nav-tabs { -webkit-box-pack: center; @@ -15738,7 +15897,6 @@ nav.tabs { .user-login-form, .user-pass, .user-register-form { - max-width: 560px; display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -15772,6 +15930,7 @@ nav.tabs { .user-pass .password-parent, .user-register-form .confirm-parent, .user-register-form .password-parent { + max-width: unset; min-width: unset; overflow: unset; } .user-login-form .form-submit, @@ -15782,31 +15941,72 @@ nav.tabs { .user-login-form .form-actions, .user-pass .form-actions, .user-register-form .form-actions { - width: 100%; } + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + text-transform: uppercase; } .user-login-form .form-actions input, .user-pass .form-actions input, .user-register-form .form-actions input { + border-width: 0; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; - background-color: #1294ca; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; + background-color: #27C0FF; color: #fff; font-weight: bold; } .user-login-form .form-actions input:hover, .user-pass .form-actions input:hover, .user-register-form .form-actions input:hover { - background-color: #1e7697; - text-decoration: none; } + background-color: #2e5d6d; + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .user-login-form .form-actions input:active, .user-pass .form-actions input:active, .user-register-form .form-actions input:active { - background-color: #1e7697; - text-decoration: none; } - .user-login-form .social-login-buttons, - .user-pass .social-login-buttons, - .user-register-form .social-login-buttons { - margin-top: 5px; + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); + background-color: #2e5d6d; + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } + +.user-pass, +.user-register-form { + padding: 2.5rem 2.875rem; + max-width: 62.5rem; + background-color: #fff; } + .user-pass h1, + .user-register-form h1 { + font-style: normal; + font-weight: 600; + font-size: 1.5625rem; + line-height: 2.0625rem; + text-align: center; + margin-bottom: 2.5625rem; } + .user-pass .form-group, + .user-register-form .form-group { + margin-bottom: 0.625rem; } + .user-pass .form-control, + .user-register-form .form-control { + padding: 0.9375rem 0.875rem; } + .user-pass .form-group, + .user-register-form .form-group { + width: 100%; } + .user-pass .form-actions, + .user-register-form .form-actions { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -15815,39 +16015,14 @@ nav.tabs { -webkit-align-items: center; -ms-flex-align: center; align-items: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; } - .user-login-form .social-login-buttons img, - .user-pass .social-login-buttons img, - .user-register-form .social-login-buttons img { - border-radius: 50%; } - -@media (max-width: 615px) { - .user-login-form .form-actions { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: horizontal; + -webkit-box-orient: vertical; -webkit-box-direction: normal; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - width: 100%; } - .user-login-form .form-actions .form-submit { - -webkit-box-flex: 1; - -webkit-flex: 1 0 100%; - -ms-flex: 1 0 100%; - flex: 1 0 100%; } } + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .user-pass .form-actions input, + .user-register-form .form-actions input { + width: 50%; } .node--edit-form--main { float: unset; @@ -15855,9 +16030,11 @@ nav.tabs { padding-left: 0; } .node--edit-form--main input[type="submit"] { border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: transparent; color: #fff; font-weight: bold; @@ -15867,10 +16044,19 @@ nav.tabs { transition: background-color 0.5s ease-in-out, color 0.5s ease-in-out; } .node--edit-form--main input[type="submit"]:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--main input[type="submit"]:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--main input[type="submit"]:hover { color: #fff; } .node--edit-form--main input[type="text"] { @@ -15883,18 +16069,29 @@ nav.tabs { padding: 1px 14px; font-size: 16px; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; } .node--edit-form--main button:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--main button:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--main .details-wrapper { position: relative; } .node--edit-form--main .details-wrapper label { @@ -15906,18 +16103,29 @@ nav.tabs { height: unset; font-size: 14px; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; } .node--edit-form--main .details-wrapper .js-form-wrapper .form-submit:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--main .details-wrapper .js-form-wrapper .form-submit:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--main .form-item-field-category label { font-size: 16px; } @@ -15945,20 +16153,31 @@ nav.tabs { .node--edit-form .field--widget-moderation-state-buttons > div .form-control:disabled, .node--edit-form .field--widget-moderation-state-buttons > div .form-control[readonly] { border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; } .node--edit-form .field--widget-moderation-state-buttons > div .form-control:disabled:hover, .node--edit-form .field--widget-moderation-state-buttons > div .form-control[readonly]:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form .field--widget-moderation-state-buttons > div .form-control:disabled:active, .node--edit-form .field--widget-moderation-state-buttons > div .form-control[readonly]:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--footer { float: unset; @@ -15981,18 +16200,29 @@ nav.tabs { height: unset; margin-left: 10px; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; } .node--edit-form--footer .form-group input:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--footer .form-group input:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } @media (max-width: 530px) { .node--edit-form .field--widget-moderation-state-buttons > div input { @@ -16290,9 +16520,11 @@ nav.tabs { .view-frontpage .view-filters .form-row .frontpage-add-idea-button { margin-right: auto; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #27C0FF; color: #fff; font-weight: bold; @@ -16301,10 +16533,19 @@ nav.tabs { padding: 0.6em 2.5em; } .view-frontpage .view-filters .form-row .frontpage-add-idea-button:hover { background-color: #5eaed2; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .view-frontpage .view-filters .form-row .frontpage-add-idea-button:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #5eaed2; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .view-frontpage .view-filters .form-row .frontpage-add-idea-button:before { content: ''; display: inline-block; @@ -16535,7 +16776,6 @@ nav.tabs { display: none; } .teaser-view-mode fieldset select, .view--user-admin-people--community-page fieldset select { - margin-bottom: 5px; border: 1px solid #C6CDD0; border-radius: 4px; -webkit-appearance: none; @@ -16560,14 +16800,13 @@ nav.tabs { border: 0.8px solid #D0D6DC; border-radius: 30px; background: #E8E8E9; - margin-top: 0; - margin-bottom: 5px; } + margin-top: 0; } .teaser-view-mode .form-item-search label, .view--user-admin-people--community-page .form-item-search label { display: none; } .teaser-view-mode .form-item-search input, .view--user-admin-people--community-page .form-item-search input { - padding: 18px 18px 18px 3rem; + padding: 0.5rem 1.25rem; background: transparent; border: none; margin: 0; } @@ -16699,7 +16938,8 @@ nav.tabs { content: ": "; } .node--view-mode-teaser .block-openideal-idea-info-block .idea-information--list__item--value { margin-left: 5px; - font-size: 14px; } + font-size: 14px; + margin-bottom: 0; } .node--view-mode-teaser .block-openideal-idea-info-block .idea-information--list__item--value .challenge-status--deadline { font-size: 14px; } .node--view-mode-teaser .block-field-blocknodechallengetitle a, @@ -17020,9 +17260,11 @@ nav.tabs { .openideal-statistics-date-select-form .form-submit { border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; @@ -17030,10 +17272,19 @@ nav.tabs { margin-bottom: 15px; } .openideal-statistics-date-select-form .form-submit:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .openideal-statistics-date-select-form .form-submit:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .reports-filters { display: -webkit-box; @@ -17193,18 +17444,29 @@ nav.tabs { -ms-flex-preferred-size: 10%; flex-basis: 10%; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; } .field--widget-openideal-user-entity-browser-single-file input:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .field--widget-openideal-user-entity-browser-single-file input:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .idea-statistics-and-status-block--status { position: relative; @@ -17296,6 +17558,16 @@ nav.tabs { .idea-workflow-full { color: #828282; text-transform: capitalize; } + .idea-workflow-full .list-group { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } .idea-workflow-full--group-title { margin-bottom: 18.5px; font-weight: bold; @@ -17505,6 +17777,264 @@ nav.tabs { background: -o-linear-gradient(top, #676C72 0.01%, #676C72 24.75%, #1294CA 25.28%, #1294CA 45.54%, #1EBCA1 48.73%, #1EBCA1 67.12%, #C7D2EB 67.39%, #C7D2EB 100%); background: linear-gradient(-180deg, #676C72 0.01%, #676C72 24.75%, #1294CA 25.28%, #1294CA 45.54%, #1EBCA1 48.73%, #1EBCA1 67.12%, #C7D2EB 67.39%, #C7D2EB 100%); } +.user-login-form { + padding-bottom: calc(1rem + 2.5rem); } + .user-login-form--container { + background-color: #fff; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .user-login-form--container--title { + font-style: normal; + font-weight: 600; + font-size: 1.5625rem; + line-height: 2.0625rem; + text-align: center; + margin-bottom: 2.5625rem; } + .user-login-form--container--left { + position: relative; + padding: 2.5rem 2.875rem; + width: 32.625rem; } + .user-login-form--container--left__social-login-buttons .social-auth { + margin-bottom: 0.75rem; + background: #FFFFFF; + border: 1px solid #D0D6DC; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 60px; + padding: 1.125rem; + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; } + .user-login-form--container--left__social-login-buttons .social-auth--name { + font-family: "Assistant", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 600; + font-size: 0.9375rem; + line-height: 1.25rem; + color: #343352; } + .user-login-form--container--left__social-login-buttons .social-auth--icon-wrapper { + position: absolute; + width: 34px; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + right: 1.25rem; + top: 50%; + -webkit-transform: translateY(-50%); + -o-transform: translateY(-50%); + transform: translateY(-50%); + margin-left: 0.625rem; } + .user-login-form--container--left__social-login-buttons .social-auth--icon-wrapper::after { + content: ''; + width: 1px; + height: 100%; + display: block; + background: #D0D6DC; + position: absolute; + left: -0.75rem; + top: 0; } + .user-login-form--container--left__or { + margin: 10px 0; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .user-login-form--container--left__or--line { + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-flex-shrink: 1; + -ms-flex-negative: 1; + flex-shrink: 1; + background-color: #dbdbdb; + height: 1px; + position: relative; + top: .45em; } + .user-login-form--container--left__or--or { + color: #8e8e8e; + -webkit-box-flex: 0; + -webkit-flex-grow: 0; + -ms-flex-positive: 0; + flex-grow: 0; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + font-size: 13px; + font-weight: 600; + line-height: 15px; + margin: 0 18px; + text-transform: uppercase; } + .user-login-form--container--right { + width: 32.625rem; + color: #fff; + margin-bottom: 0; + position: relative; + background: #26282E; + overflow: hidden; } + .user-login-form--container--right__text { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .user-login-form--container--right__text--section__first { + z-index: 999; + padding: 2.375rem; } + .user-login-form--container--right__text--section__first ul { + list-style: none; + padding: 0; + margin: 0; } + .user-login-form--container--right__text--section__first li { + padding-right: 0.8125rem; + text-indent: -.7em; + margin-bottom: 1.0625rem; + font-size: 1.25rem; + line-height: 1.625rem; } + .user-login-form--container--right__text--section__first li::before { + content: "• "; + font-size: 1.5625rem; + color: #27C0FF; } + .user-login-form--container--right__text--section__first h2 { + font-style: normal; + font-weight: bold; + font-size: 3.25rem; + line-height: 60px; + letter-spacing: 0.01em; } + .user-login-form--container--right__text--section__first h2 span { + display: inline-block; + position: relative; } + .user-login-form--container--right__text--section__first h2 em { + color: white; } + .user-login-form--container--right__text--section__first h2 em + svg { + position: absolute; + right: 0; + bottom: -40%; + opacity: 1; } + .user-login-form--container--right__text--section__first h2 em + svg path { + stroke-dashoffset: 0; } + .user-login-form--container--right__text--section__first h2 svg { + pointer-events: none; + -webkit-transition: 0.5s; + -o-transition: 0.5s; + transition: 0.5s; } + .user-login-form--container--right__text--section__first h2 path { + -webkit-transition: stroke-dasharray 0.5s, stroke-dashoffset 0.5s, opacity 0.5s; + -o-transition: stroke-dasharray 0.5s, stroke-dashoffset 0.5s, opacity 0.5s; + transition: stroke-dasharray 0.5s, stroke-dashoffset 0.5s, opacity 0.5s; } + .user-login-form--container--right__text--section__first h2 path:last-child { + opacity: 0.2; } + .user-login-form--container--right__text--section__second { + position: absolute; + bottom: 0; } + .user-login-form--container--right__text--section__second::after { + content: ''; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: -webkit-linear-gradient(266.59deg, #262930 7.81%, rgba(38, 41, 48, 0) 40.61%); + background: -o-linear-gradient(266.59deg, #262930 7.81%, rgba(38, 41, 48, 0) 40.61%); + background: linear-gradient(-176.59deg, #262930 7.81%, rgba(38, 41, 48, 0) 40.61%); } + .user-login-form--container__bottom { + position: absolute; + bottom: -7.5rem; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + right: 50%; + -webkit-transform: translateX(50%); + -o-transform: translateX(50%); + transform: translateX(50%); + width: 19rem; } + .user-login-form--container__bottom--text { + font-weight: 600; + font-size: 1rem; + line-height: 1.3125rem; + color: #000; } + .user-login-form--container__bottom--text a { + color: #27C0FF; } + .user-login-form--container--actions { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + width: 100%; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; } + .user-login-form--container--actions .form-submit { + width: 50%; } + .user-login-form .form-control { + padding: 1.125rem 1rem; } + +@media (max-width: 83.125rem) { + .user-login-form--container--right, .user-login-form--container--left { + width: 25rem; } } + +@media (max-width: 53.75rem) { + .user-login-form--container--right { + display: none; } + .user-login-form--container--left { + width: auto; } + .user-login-form--container--left__social-login-buttons .social-auth { + padding: 0.875rem; } } + +@media (max-width: 26.375rem) { + .user-login-form--container--left { + padding: 0.875rem 0.875rem; } + .user-login-form--container--left__social-login-buttons { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: space-evenly; + -webkit-justify-content: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; } + .user-login-form--container--left__social-login-buttons .social-auth--icon-wrapper { + position: static; + -webkit-transform: unset; + -o-transform: unset; + transform: unset; + margin: 0; } + .user-login-form--container--left__social-login-buttons .social-auth--icon-wrapper::after { + content: unset; } + .user-login-form--container--left__social-login-buttons .social-auth--name { + display: none; } } + .community-page .view-content { display: -webkit-box; display: -webkit-flex; diff --git a/themes/openideal_theme/css/style.css b/themes/openideal_theme/css/style.css index 39338c57b..53ea717bf 100644 --- a/themes/openideal_theme/css/style.css +++ b/themes/openideal_theme/css/style.css @@ -13636,9 +13636,11 @@ nav.tabs { .site-navigation--add-idea a { padding: 9.5px 1.3em; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #27C0FF; color: #fff; font-weight: bold; @@ -13662,10 +13664,19 @@ nav.tabs { text-transform: uppercase; } .site-navigation--add-idea a:hover { background-color: #27C8f9; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .site-navigation--add-idea a:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #27C8f9; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .site-navigation--add-idea a:before { content: ''; display: inline-block; @@ -13909,6 +13920,21 @@ nav.tabs { .block-site-wide-statistics-block { display: none; } } +.list-group { + display: unset; + -webkit-box-orient: unset; + -webkit-box-direction: unset; + -webkit-flex-direction: unset; + -ms-flex-direction: unset; + flex-direction: unset; } + +.list-group-item { + display: unset; + position: unset; + padding: unset; + border: unset; + background-color: unset; } + .block-page-title-block .title { color: #343352; font-size: 2.25rem; @@ -13949,18 +13975,51 @@ nav.tabs { .form-actions input { margin-bottom: 6px; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; } .form-actions input:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .form-actions input:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } + +.form-control { + border: 1px solid #D0D6DC; + border-radius: unset; + line-height: 1.125rem; + height: unset; } + .form-control::-webkit-input-placeholder { + font-family: "Assistant", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + display: block; } + .form-control::-moz-placeholder { + font-family: "Assistant", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + display: block; } + .form-control::-ms-input-placeholder { + font-family: "Assistant", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + display: block; } + .form-control::placeholder { + font-family: "Assistant", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + display: block; } .block-openidel-idea-node-bundle { position: absolute; @@ -14031,9 +14090,11 @@ nav.tabs { margin-bottom: 24px; } .comments--header__add-comment-btn { border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: transparent; color: #fff; font-weight: bold; @@ -14043,10 +14104,19 @@ nav.tabs { padding: 15px 70px; } .comments--header__add-comment-btn:hover { background-color: transparent; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .comments--header__add-comment-btn:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: transparent; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .comments--header__add-comment-btn:hover, .comments--header__add-comment-btn:active { color: #1294ca; } .comments--bottom { @@ -14146,19 +14216,30 @@ nav.tabs { text-transform: uppercase; font-size: inherit; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; padding-left: 25px; } .comment-comment-form .form-actions .font-submit-btn-wrapper .form-submit:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .comment-comment-form .form-actions .font-submit-btn-wrapper .form-submit:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .comment-comment-form .form-actions .font-submit-btn-wrapper img { font-size: inherit; top: 50%; @@ -14262,9 +14343,11 @@ nav.tabs { display: flex; } .node--view-mode-full .block-field-blocknodearticlefield-tags .field__items li { border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #fff; color: #fff; font-weight: bold; @@ -14278,10 +14361,19 @@ nav.tabs { margin-bottom: 5px; } .node--view-mode-full .block-field-blocknodearticlefield-tags .field__items li:hover { background-color: #fff; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--view-mode-full .block-field-blocknodearticlefield-tags .field__items li:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #fff; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--view-mode-full .idea-statistics-and-status-block, .node--view-mode-full .block-openideal-statistics-challenge-statistics { @@ -14344,19 +14436,30 @@ nav.tabs { .node--view-mode-full .two-columns-challenge-ideas a { padding: 15px 70px; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #27C0FF; color: #fff; font-weight: bold; font-size: 15px; } .node--view-mode-full .two-columns-challenge-ideas a:hover { background-color: #5eaed2; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--view-mode-full .two-columns-challenge-ideas a:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #5eaed2; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .view--news--all-news-page .node--type-article .card-body .block-openideal-rrssb-block h2 { text-transform: uppercase; @@ -14511,19 +14614,30 @@ nav.tabs { font-size: 0.9375rem; margin-bottom: 49px; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; margin-right: 0; } .region-sidebar--flag-and-follow--element .votingapi-reaction-item:hover, .region-sidebar--flag--element .votingapi-reaction-item:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .region-sidebar--flag-and-follow--element .votingapi-reaction-item:active, .region-sidebar--flag--element .votingapi-reaction-item:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .region-sidebar--flag-and-follow--element .votingapi-reaction-item.active, .region-sidebar--flag--element .votingapi-reaction-item.active { background-color: #1e7697; } .region-sidebar--flag-and-follow--element .flag-follow, .region-sidebar--flag--element .flag-follow { @@ -14543,18 +14657,29 @@ nav.tabs { flex-basis: 100%; font-size: 0.9375rem; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #27C0FF; color: #fff; font-weight: bold; } .region-sidebar--flag-and-follow--element .flag-follow a:hover, .region-sidebar--flag-and-follow--element .flag-follow--body:hover, .region-sidebar--flag--element .flag-follow a:hover, .region-sidebar--flag--element .flag-follow--body:hover { background-color: #5eaed2; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .region-sidebar--flag-and-follow--element .flag-follow a:active, .region-sidebar--flag-and-follow--element .flag-follow--body:active, .region-sidebar--flag--element .flag-follow a:active, .region-sidebar--flag--element .flag-follow--body:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #5eaed2; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .region-sidebar--flag-and-follow--element .flag-follow--body, .region-sidebar--flag--element .flag-follow--body { margin: 70px 0 11px 0; } @@ -14626,9 +14751,11 @@ nav.tabs { .block-openideal-idea-tags-block .list-group-item { margin-bottom: 5px; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #fff; color: #fff; font-weight: bold; @@ -14641,10 +14768,19 @@ nav.tabs { text-decoration: none; } .block-openideal-idea-tags-block .list-group-item:hover { background-color: #fff; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .block-openideal-idea-tags-block .list-group-item:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #fff; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .idea-statistics-block { margin-bottom: 15px; @@ -15199,13 +15335,13 @@ nav.tabs { .node--view-mode-teaser .teaser-top-section--section__second { padding: 15px; } } -.site-wide-statistics-block--list { +.block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; list-style: none; } - .site-wide-statistics-block--list__item { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -15229,7 +15365,7 @@ nav.tabs { padding: 12px 6px 0; background-color: #fff; min-width: 77px; } - .site-wide-statistics-block--list__item--bottom { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item--bottom { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -15244,23 +15380,27 @@ nav.tabs { -ms-flex-align: center; align-items: center; text-transform: uppercase; } - .site-wide-statistics-block--list__item .item-svg { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item .item-svg { width: 32px; height: 32px; - margin-bottom: 6px; } - .site-wide-statistics-block--list__item--statistics_tag { + margin-bottom: 6px; + margin-right: 0; } + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item--statistics_tag { background: url("../images/icons/statistics_tag.svg") no-repeat center center; } - .site-wide-statistics-block--list__item--members_tag { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item--members_tag { background: url("../images/icons/members_tag.svg") no-repeat center center; } - .site-wide-statistics-block--list__item--comment_tag { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item--comment_tag { background: url("../images/icons/comment_tag.svg") no-repeat center center; } - .site-wide-statistics-block--list__item--like_tag { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item--like_tag { background: url("../images/icons/like_tag.svg") no-repeat center center; } - .site-wide-statistics-block--list__item p { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item p { line-height: 1; letter-spacing: -0.5px; font-size: 15px; } - .site-wide-statistics-block--list__item--count { + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item--title { + margin-bottom: 1rem; } + .block-openideal-statistics.block-site-wide-statistics-block .idea-statistics-block--list__item--count { + margin-right: 0; font-weight: bold; margin-bottom: 1px; } @@ -15527,9 +15667,11 @@ nav.tabs { -ms-flex-align: center; align-items: center; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; @@ -15544,10 +15686,19 @@ nav.tabs { color: #fff; } .entity--user--canonical .user-top .nav-tabs .nav-item .nav-link:hover { background-color: #1e829a; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .entity--user--canonical .user-top .nav-tabs .nav-item .nav-link:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e829a; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .entity--user--canonical .user-top .nav-tabs .nav-item .nav-link:before { content: ''; display: block; @@ -15577,9 +15728,11 @@ nav.tabs { -ms-flex-align: center; align-items: center; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; @@ -15590,10 +15743,19 @@ nav.tabs { color: #fff; } .entity--user--canonical .user-top .user-actions--link a:hover { background-color: #1e829a; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .entity--user--canonical .user-top .user-actions--link a:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e829a; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .profile-user-profile-view-mode h2 { font-size: 30px; @@ -15694,7 +15856,6 @@ nav.tabs { .main-content nav.tabs ul .nav-item.active a { background: unset; } -.user--login section.main-content, .user--register section.main-content, .user--pass section.main-content { display: -webkit-box; @@ -15715,7 +15876,6 @@ nav.tabs { -ms-flex-align: center; align-items: center; } -.user--login .block-system-main-block, .user--register .block-system-main-block, .user--pass .block-system-main-block { display: -webkit-box; @@ -15727,7 +15887,6 @@ nav.tabs { -ms-flex-pack: center; justify-content: center; } -.user--login .nav-tabs, .user--register .nav-tabs, .user--pass .nav-tabs { -webkit-box-pack: center; @@ -15738,7 +15897,6 @@ nav.tabs { .user-login-form, .user-pass, .user-register-form { - max-width: 560px; display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -15772,6 +15930,7 @@ nav.tabs { .user-pass .password-parent, .user-register-form .confirm-parent, .user-register-form .password-parent { + max-width: unset; min-width: unset; overflow: unset; } .user-login-form .form-submit, @@ -15782,31 +15941,72 @@ nav.tabs { .user-login-form .form-actions, .user-pass .form-actions, .user-register-form .form-actions { - width: 100%; } + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + text-transform: uppercase; } .user-login-form .form-actions input, .user-pass .form-actions input, .user-register-form .form-actions input { + border-width: 0; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; - background-color: #1294ca; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; + background-color: #27C0FF; color: #fff; font-weight: bold; } .user-login-form .form-actions input:hover, .user-pass .form-actions input:hover, .user-register-form .form-actions input:hover { - background-color: #1e7697; - text-decoration: none; } + background-color: #2e5d6d; + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .user-login-form .form-actions input:active, .user-pass .form-actions input:active, .user-register-form .form-actions input:active { - background-color: #1e7697; - text-decoration: none; } - .user-login-form .social-login-buttons, - .user-pass .social-login-buttons, - .user-register-form .social-login-buttons { - margin-top: 5px; + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); + background-color: #2e5d6d; + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } + +.user-pass, +.user-register-form { + padding: 2.5rem 2.875rem; + max-width: 62.5rem; + background-color: #fff; } + .user-pass h1, + .user-register-form h1 { + font-style: normal; + font-weight: 600; + font-size: 1.5625rem; + line-height: 2.0625rem; + text-align: center; + margin-bottom: 2.5625rem; } + .user-pass .form-group, + .user-register-form .form-group { + margin-bottom: 0.625rem; } + .user-pass .form-control, + .user-register-form .form-control { + padding: 0.9375rem 0.875rem; } + .user-pass .form-group, + .user-register-form .form-group { + width: 100%; } + .user-pass .form-actions, + .user-register-form .form-actions { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -15815,39 +16015,14 @@ nav.tabs { -webkit-align-items: center; -ms-flex-align: center; align-items: center; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; } - .user-login-form .social-login-buttons img, - .user-pass .social-login-buttons img, - .user-register-form .social-login-buttons img { - border-radius: 50%; } - -@media (max-width: 615px) { - .user-login-form .form-actions { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: horizontal; + -webkit-box-orient: vertical; -webkit-box-direction: normal; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-box-pack: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - width: 100%; } - .user-login-form .form-actions .form-submit { - -webkit-box-flex: 1; - -webkit-flex: 1 0 100%; - -ms-flex: 1 0 100%; - flex: 1 0 100%; } } + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .user-pass .form-actions input, + .user-register-form .form-actions input { + width: 50%; } .node--edit-form--main { float: unset; @@ -15855,9 +16030,11 @@ nav.tabs { padding-right: 0; } .node--edit-form--main input[type="submit"] { border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: transparent; color: #fff; font-weight: bold; @@ -15867,10 +16044,19 @@ nav.tabs { transition: background-color 0.5s ease-in-out, color 0.5s ease-in-out; } .node--edit-form--main input[type="submit"]:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--main input[type="submit"]:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--main input[type="submit"]:hover { color: #fff; } .node--edit-form--main input[type="text"] { @@ -15883,18 +16069,29 @@ nav.tabs { padding: 1px 14px; font-size: 16px; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; } .node--edit-form--main button:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--main button:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--main .details-wrapper { position: relative; } .node--edit-form--main .details-wrapper label { @@ -15906,18 +16103,29 @@ nav.tabs { height: unset; font-size: 14px; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; } .node--edit-form--main .details-wrapper .js-form-wrapper .form-submit:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--main .details-wrapper .js-form-wrapper .form-submit:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--main .form-item-field-category label { font-size: 16px; } @@ -15945,20 +16153,31 @@ nav.tabs { .node--edit-form .field--widget-moderation-state-buttons > div .form-control:disabled, .node--edit-form .field--widget-moderation-state-buttons > div .form-control[readonly] { border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; } .node--edit-form .field--widget-moderation-state-buttons > div .form-control:disabled:hover, .node--edit-form .field--widget-moderation-state-buttons > div .form-control[readonly]:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form .field--widget-moderation-state-buttons > div .form-control:disabled:active, .node--edit-form .field--widget-moderation-state-buttons > div .form-control[readonly]:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--footer { float: unset; @@ -15981,18 +16200,29 @@ nav.tabs { height: unset; margin-right: 10px; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; } .node--edit-form--footer .form-group input:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .node--edit-form--footer .form-group input:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } @media (max-width: 530px) { .node--edit-form .field--widget-moderation-state-buttons > div input { @@ -16294,9 +16524,11 @@ nav.tabs { .view-frontpage .view-filters .form-row .frontpage-add-idea-button { margin-left: auto; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #27C0FF; color: #fff; font-weight: bold; @@ -16305,10 +16537,19 @@ nav.tabs { padding: 0.6em 2.5em; } .view-frontpage .view-filters .form-row .frontpage-add-idea-button:hover { background-color: #5eaed2; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .view-frontpage .view-filters .form-row .frontpage-add-idea-button:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #5eaed2; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .view-frontpage .view-filters .form-row .frontpage-add-idea-button:before { content: ''; display: inline-block; @@ -16539,7 +16780,6 @@ nav.tabs { display: none; } .teaser-view-mode fieldset select, .view--user-admin-people--community-page fieldset select { - margin-bottom: 5px; border: 1px solid #C6CDD0; border-radius: 4px; -webkit-appearance: none; @@ -16564,14 +16804,13 @@ nav.tabs { border: 0.8px solid #D0D6DC; border-radius: 30px; background: #E8E8E9; - margin-top: 0; - margin-bottom: 5px; } + margin-top: 0; } .teaser-view-mode .form-item-search label, .view--user-admin-people--community-page .form-item-search label { display: none; } .teaser-view-mode .form-item-search input, .view--user-admin-people--community-page .form-item-search input { - padding: 18px 3rem 18px 18px; + padding: 0.5rem 1.25rem; background: transparent; border: none; margin: 0; } @@ -16703,7 +16942,8 @@ nav.tabs { content: ": "; } .node--view-mode-teaser .block-openideal-idea-info-block .idea-information--list__item--value { margin-right: 5px; - font-size: 14px; } + font-size: 14px; + margin-bottom: 0; } .node--view-mode-teaser .block-openideal-idea-info-block .idea-information--list__item--value .challenge-status--deadline { font-size: 14px; } .node--view-mode-teaser .block-field-blocknodechallengetitle a, @@ -17024,9 +17264,11 @@ nav.tabs { .openideal-statistics-date-select-form .form-submit { border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; @@ -17034,10 +17276,19 @@ nav.tabs { margin-bottom: 15px; } .openideal-statistics-date-select-form .form-submit:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .openideal-statistics-date-select-form .form-submit:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .reports-filters { display: -webkit-box; @@ -17197,18 +17448,29 @@ nav.tabs { -ms-flex-preferred-size: 10%; flex-basis: 10%; border-radius: 25px; - -webkit-transition: background-color 0.5s ease-in-out; - -o-transition: background-color 0.5s ease-in-out; - transition: background-color 0.5s ease-in-out; + -webkit-transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + transition: background-color 0.5s ease-in-out, -webkit-transform .5s; + -o-transition: background-color 0.5s ease-in-out, -o-transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s; + transition: background-color 0.5s ease-in-out, transform .5s, -webkit-transform .5s, -o-transform .5s; background-color: #1294ca; color: #fff; font-weight: bold; } .field--widget-openideal-user-entity-browser-single-file input:hover { background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .field--widget-openideal-user-entity-browser-single-file input:active { + -webkit-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); background-color: #1e7697; - text-decoration: none; } + text-decoration: none; + -webkit-transform: scale(1.005); + -o-transform: scale(1.005); + transform: scale(1.005); } .idea-statistics-and-status-block--status { position: relative; @@ -17300,6 +17562,16 @@ nav.tabs { .idea-workflow-full { color: #828282; text-transform: capitalize; } + .idea-workflow-full .list-group { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } .idea-workflow-full--group-title { margin-bottom: 18.5px; font-weight: bold; @@ -17509,6 +17781,264 @@ nav.tabs { background: -o-linear-gradient(top, #676C72 0.01%, #676C72 24.75%, #1294CA 25.28%, #1294CA 45.54%, #1EBCA1 48.73%, #1EBCA1 67.12%, #C7D2EB 67.39%, #C7D2EB 100%); background: linear-gradient(180deg, #676C72 0.01%, #676C72 24.75%, #1294CA 25.28%, #1294CA 45.54%, #1EBCA1 48.73%, #1EBCA1 67.12%, #C7D2EB 67.39%, #C7D2EB 100%); } +.user-login-form { + padding-bottom: calc(1rem + 2.5rem); } + .user-login-form--container { + background-color: #fff; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .user-login-form--container--title { + font-style: normal; + font-weight: 600; + font-size: 1.5625rem; + line-height: 2.0625rem; + text-align: center; + margin-bottom: 2.5625rem; } + .user-login-form--container--left { + position: relative; + padding: 2.5rem 2.875rem; + width: 32.625rem; } + .user-login-form--container--left__social-login-buttons .social-auth { + margin-bottom: 0.75rem; + background: #FFFFFF; + border: 1px solid #D0D6DC; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 60px; + padding: 1.125rem; + position: relative; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; } + .user-login-form--container--left__social-login-buttons .social-auth--name { + font-family: "Assistant", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 600; + font-size: 0.9375rem; + line-height: 1.25rem; + color: #343352; } + .user-login-form--container--left__social-login-buttons .social-auth--icon-wrapper { + position: absolute; + width: 34px; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + left: 1.25rem; + top: 50%; + -webkit-transform: translateY(-50%); + -o-transform: translateY(-50%); + transform: translateY(-50%); + margin-right: 0.625rem; } + .user-login-form--container--left__social-login-buttons .social-auth--icon-wrapper::after { + content: ''; + width: 1px; + height: 100%; + display: block; + background: #D0D6DC; + position: absolute; + right: -0.75rem; + top: 0; } + .user-login-form--container--left__or { + margin: 10px 0; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .user-login-form--container--left__or--line { + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-flex-shrink: 1; + -ms-flex-negative: 1; + flex-shrink: 1; + background-color: #dbdbdb; + height: 1px; + position: relative; + top: .45em; } + .user-login-form--container--left__or--or { + color: #8e8e8e; + -webkit-box-flex: 0; + -webkit-flex-grow: 0; + -ms-flex-positive: 0; + flex-grow: 0; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + font-size: 13px; + font-weight: 600; + line-height: 15px; + margin: 0 18px; + text-transform: uppercase; } + .user-login-form--container--right { + width: 32.625rem; + color: #fff; + margin-bottom: 0; + position: relative; + background: #26282E; + overflow: hidden; } + .user-login-form--container--right__text { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .user-login-form--container--right__text--section__first { + z-index: 999; + padding: 2.375rem; } + .user-login-form--container--right__text--section__first ul { + list-style: none; + padding: 0; + margin: 0; } + .user-login-form--container--right__text--section__first li { + padding-left: 0.8125rem; + text-indent: -.7em; + margin-bottom: 1.0625rem; + font-size: 1.25rem; + line-height: 1.625rem; } + .user-login-form--container--right__text--section__first li::before { + content: "• "; + font-size: 1.5625rem; + color: #27C0FF; } + .user-login-form--container--right__text--section__first h2 { + font-style: normal; + font-weight: bold; + font-size: 3.25rem; + line-height: 60px; + letter-spacing: 0.01em; } + .user-login-form--container--right__text--section__first h2 span { + display: inline-block; + position: relative; } + .user-login-form--container--right__text--section__first h2 em { + color: white; } + .user-login-form--container--right__text--section__first h2 em + svg { + position: absolute; + left: 0; + bottom: -40%; + opacity: 1; } + .user-login-form--container--right__text--section__first h2 em + svg path { + stroke-dashoffset: 0; } + .user-login-form--container--right__text--section__first h2 svg { + pointer-events: none; + -webkit-transition: 0.5s; + -o-transition: 0.5s; + transition: 0.5s; } + .user-login-form--container--right__text--section__first h2 path { + -webkit-transition: stroke-dasharray 0.5s, stroke-dashoffset 0.5s, opacity 0.5s; + -o-transition: stroke-dasharray 0.5s, stroke-dashoffset 0.5s, opacity 0.5s; + transition: stroke-dasharray 0.5s, stroke-dashoffset 0.5s, opacity 0.5s; } + .user-login-form--container--right__text--section__first h2 path:last-child { + opacity: 0.2; } + .user-login-form--container--right__text--section__second { + position: absolute; + bottom: 0; } + .user-login-form--container--right__text--section__second::after { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: -webkit-linear-gradient(273.41deg, #262930 7.81%, rgba(38, 41, 48, 0) 40.61%); + background: -o-linear-gradient(273.41deg, #262930 7.81%, rgba(38, 41, 48, 0) 40.61%); + background: linear-gradient(176.59deg, #262930 7.81%, rgba(38, 41, 48, 0) 40.61%); } + .user-login-form--container__bottom { + position: absolute; + bottom: -7.5rem; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + left: 50%; + -webkit-transform: translateX(-50%); + -o-transform: translateX(-50%); + transform: translateX(-50%); + width: 19rem; } + .user-login-form--container__bottom--text { + font-weight: 600; + font-size: 1rem; + line-height: 1.3125rem; + color: #000; } + .user-login-form--container__bottom--text a { + color: #27C0FF; } + .user-login-form--container--actions { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + width: 100%; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; } + .user-login-form--container--actions .form-submit { + width: 50%; } + .user-login-form .form-control { + padding: 1.125rem 1rem; } + +@media (max-width: 83.125rem) { + .user-login-form--container--right, .user-login-form--container--left { + width: 25rem; } } + +@media (max-width: 53.75rem) { + .user-login-form--container--right { + display: none; } + .user-login-form--container--left { + width: auto; } + .user-login-form--container--left__social-login-buttons .social-auth { + padding: 0.875rem; } } + +@media (max-width: 26.375rem) { + .user-login-form--container--left { + padding: 0.875rem 0.875rem; } + .user-login-form--container--left__social-login-buttons { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: space-evenly; + -webkit-justify-content: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; } + .user-login-form--container--left__social-login-buttons .social-auth--icon-wrapper { + position: static; + -webkit-transform: unset; + -o-transform: unset; + transform: unset; + margin: 0; } + .user-login-form--container--left__social-login-buttons .social-auth--icon-wrapper::after { + content: unset; } + .user-login-form--container--left__social-login-buttons .social-auth--name { + display: none; } } + .community-page .view-content { display: -webkit-box; display: -webkit-flex; diff --git a/themes/openideal_theme/images/icons/facebook_icon.png b/themes/openideal_theme/images/icons/facebook_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e46972dfe99c3ea3bcb09a177e64b3bf9bd1cc90 GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^LO`s z3tgfSOy2BM95~Ass4n0=aaZBAWNPe#q=feQDg138_-21#+n3lrmoahC9)-`i+op@?MnSyr@iNK-sGV)M}*~A3a>*2_e`}b&P8e)s}8ta zjlR5ZViSu&uuJcS#jh5{#94*?d7bMOD4_6Ckn>#mKJHS%O*dSa99`3zGXBbQ#Qxj$ zC3lsqL8$kwVnOBf740URGom7{|79prj^4a_lL6DJ;~ks<#oKrqQi9f(b}yNw!E9Ci zyu>^{$lfhxUf^V%eINe@iboW5uUR0v#Yf=l^4_g_heSDQ8GYQnt7X=-ECmJ+gQu&X J%Q~loCIG@NhkXD5 literal 0 HcmV?d00001 diff --git a/themes/openideal_theme/images/icons/github_icon.png b/themes/openideal_theme/images/icons/github_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cf959e89e9ee306fe27dfefba7d1be4faebbb30e GIT binary patch literal 609 zcmV-n0-pVeP)-;TZYbEY0Vnx@L4>vqC*%#oagEU~*Tcw;3bb=Vz&zJ#SSE06aL#%@sY*~Q zVY%|jRcED&+xFtNjMxDu49UI8J<<(sXWDLc3mMGi_;2W z;PNEWqHaY@R0zY_(Vo)9G)eV}5eP>K`#i}POlO}6R}tcaX-nvm!K^YySR&XfQZJam z8ewUewulpQS4fCW=@Y`j4Ru38Dof)F!ouaN=px|Qegh!De;{-1Xgdnh^SP^s;!B5+ zR6D9t8E!Q3V&bvYfB_7WDvz?(mpO`*~^jx3zO#*5#!=foX#n_GqM9ReMVLl{@ zev;TzL=K+J5OYv%xo@t_Lx=!Rq&lF^^-$_R!fu|@m5Upq0@LYN!?_ws{Rz{C#fHG& ziJJBumWCkO@}JSZ{nR~V-HCm~b(K->SF{s%6d9&fWRGDrOU&FH1+MdEiVzx-4Ca03 vmnGa(Xoo6sCF^mN_JwxWZtzcx5&Xk9f`*PN)Xzrb00000NkvXXu0mjfu&@P& literal 0 HcmV?d00001 diff --git a/themes/openideal_theme/images/icons/google_icon.png b/themes/openideal_theme/images/icons/google_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..33a2d26a8476bd2a1d6dc4b5ba11dedb2677915f GIT binary patch literal 1101 zcmV-T1hV^yP)Id1(sACA z;#~R2A6WY1Vr$zjPu`B0ND-y?UN^WWiUedpH-I#KaPjKrVH6Adv-Hl0$vwW>H315Q zQ|rewxiAVt1qdj%>;5RniM~Csv@#jN)d|?m77#d6sDnT*0j5=^$n20A1IBIyDCqS+ ze2>q{hXG9|r~F;v&kWg4IgFN`e9PxBEoV042zX@k5dR+^nUJfPjh-7^F1*p_ZO4Te zxOw7OP6z=9m#?00WxFlnZtn0u)hmMrL^E@!y~gR396l$j9A+b`flcx0onFLrUJeG6>aQ2i<|? zl_BUcbnlXGLCBeqdh-S(4ppXMx%mKAu9Rj;EemZzZ1I9F^E*uur?+x%C$2}bBDD{C3`8vJ zC}h(S(N%cFRn*V49EiYf#tVeBoWcy_IFXCWXm{$cp0^0K`+{_`kwh_}DI zoh8N=!Z-mi%pL`wT~AC`UV*Rf3`1G$u`+XKEa(u#w6O@PY@h3Qg20r0K|wwL<9p%k z#v3qSec`bgiVNm!w(S75zOEW_hKX<%ZS@(5NNC>0HJ&biDg~^1&o&yGTAy|S+7XbG z=|`d%#S1~f;4`@lRzqu^Khq%&EFb#^ELnA|MN&MPz^rT5+9x&ELoZJ!f< zQp_l#$++1>A6q>(fBF+>fswgW6PriQu9CiPM%j>neC_*=Y{{7*v-w%E8lG0~Em%#hhzgetRouteName(); $node = $route_match->getParameter('node'); if ($node instanceof NodeInterface) { $variables['node_type'] = $node->bundle(); } - if ($route_match->getRouteName() == 'view.frontpage.front_page' - || $route_match->getRouteName() == 'entity.user.canonical' - || $route_match->getRouteName() == 'view.news.all_news_page') { + $activity_pages = [ + 'view.frontpage.front_page', + 'entity.user.canonical', + 'view.news.all_news_page', + ]; + + if (in_array($route_name, $activity_pages)) { $variables['is_activity_page'] = TRUE; } + + if ($route_match->getRouteName() == 'entity.node.canonical' && + $route_match->getParameter('node')->bundle() == 'idea' && + \Drupal::request()->query->has('suggested-idea')) { + $link = Link::createFromRoute(t('create an idea by yourself'), 'node.add', ['node_type' => 'idea'])->toString(); + $message = new FormattableMarkup('
' . t('This idea might be similar to the one you were about to create.') . '
+
' . t('Consider joining this idea as a follower or co-author.') . '
+
' . t('Ideas have better chance in being complete, and to move on to execution, if a large group of people collaborates on making the idea better.') . '
+
' . t('If you want, and whenever you want, you can always go ahead and @create') . '
', ['@create' => $link]); + \Drupal::messenger()->addMessage($message); + } } /** @@ -187,3 +205,19 @@ function openideal_theme_preprocess_image(&$variables) { $variables['attributes']['title'] = $variables['alt']; } } + +/** + * Implements hook_preprocess_HOOK(). + */ +function openideal_theme_preprocess_message__user_mention(&$variables) { + // In case the user is not viewing its page, + // its necessary to change the partial template. + $variables['#cache']['contexts'][] = 'user.is_user_profile_page'; + if (\Drupal::routeMatch()->getRouteName() == 'entity.user.canonical' && + \Drupal::currentUser()->id() !== \Drupal::routeMatch()->getParameter('user')->id()) { + $partial = $variables['elements']['#message']->getText(\Drupal::languageManager()->getCurrentLanguage()->getId(), 3); + if (!empty($partial)) { + $variables['content']['partial_0']['#markup'] = current($partial); + } + } +} diff --git a/themes/openideal_theme/scss/_functions.scss b/themes/openideal_theme/scss/_functions.scss new file mode 100644 index 000000000..153ae7421 --- /dev/null +++ b/themes/openideal_theme/scss/_functions.scss @@ -0,0 +1,4 @@ +// Convert px into rem. +@function size($target) { + @return ($target / 16) * 1rem; +} diff --git a/themes/openideal_theme/scss/_import.scss b/themes/openideal_theme/scss/_import.scss index 3823a5c0a..33c3b7e8e 100644 --- a/themes/openideal_theme/scss/_import.scss +++ b/themes/openideal_theme/scss/_import.scss @@ -1,6 +1,8 @@ /* IMPORTS */ //@import url(font-awesome.min.css); +// functions +@import "functions"; // variables @import "variables"; // typography diff --git a/themes/openideal_theme/scss/_mixins.scss b/themes/openideal_theme/scss/_mixins.scss index a8235fab3..ccc67c868 100644 --- a/themes/openideal_theme/scss/_mixins.scss +++ b/themes/openideal_theme/scss/_mixins.scss @@ -19,16 +19,20 @@ $value in $theme-colors { @mixin btn-theme($btn-color, $active-color) { border-radius: 25px; - transition: background-color 0.5s ease-in-out; + transition: background-color 0.5s ease-in-out, transform .5s; background-color: $btn-color; color: $white; font-weight: $font-weight-bold; + &:hover { background-color: $active-color; text-decoration: none; + transform: scale(1.005); } &:active { + transform: scale(0.9); background-color: $active-color; text-decoration: none; + transform: scale(1.005); } } diff --git a/themes/openideal_theme/scss/components/_default_user_forms.scss b/themes/openideal_theme/scss/components/_default_user_forms.scss index 3422936b2..322383a80 100644 --- a/themes/openideal_theme/scss/components/_default_user_forms.scss +++ b/themes/openideal_theme/scss/components/_default_user_forms.scss @@ -1,4 +1,3 @@ -.user--login, .user--register, .user--pass { section.main-content { @@ -21,7 +20,6 @@ .user-login-form, .user-pass, .user-register-form { - max-width: 560px; display: flex; flex-direction: column; align-items: center; @@ -33,6 +31,7 @@ .confirm-parent, .password-parent { + max-width: unset; min-width: unset; overflow: unset; } @@ -43,33 +42,50 @@ } .form-actions { - width: 100%; + align-items: center; + display: flex; + text-transform: uppercase; input { - @include btn-theme($btn-dark, #1e7697); + border-width: 0; + @include btn-theme($btn-light, #2e5d6d); } } - .social-login-buttons { - margin-top: 5px; - display: flex; - align-items: center; - justify-content: center; +} - img { - border-radius: 50%; - } +.user-pass, +.user-register-form { + padding: size(40) size(46); + max-width: size(1000); + background-color: $white; + + h1 { + font-style: normal; + font-weight: 600; + font-size: size(25); + line-height: size(33); + text-align: center; + margin-bottom: size(41); } -} -@media (max-width: 615px) { - .user-login-form .form-actions { - display: flex; - flex-direction: row; - justify-content: center; - flex-wrap: wrap; + .form-group { + margin-bottom: size(10); + } + + .form-control { + padding: size(15) size(14); + } + + .form-group { width: 100%; + } - .form-submit { - flex: 1 0 100%; + .form-actions { + display: flex; + align-items: center; + flex-direction: column; + + input { + width: 50%; } } -} +} \ No newline at end of file diff --git a/themes/openideal_theme/scss/components/_form.scss b/themes/openideal_theme/scss/components/_form.scss index 5c9ff4cfb..8e00dcf50 100644 --- a/themes/openideal_theme/scss/components/_form.scss +++ b/themes/openideal_theme/scss/components/_form.scss @@ -4,3 +4,16 @@ @include btn-theme($btn-dark, #1e7697); } } + +.form-control { + border: 1px solid #D0D6DC; + border-radius: unset; + line-height: size(18); + height: unset; + + &::placeholder { + font-family: "Assistant", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: size(16); + display: block; + } +} diff --git a/themes/openideal_theme/scss/components/_idea_workflow.scss b/themes/openideal_theme/scss/components/_idea_workflow.scss index d55753538..b64a12c17 100644 --- a/themes/openideal_theme/scss/components/_idea_workflow.scss +++ b/themes/openideal_theme/scss/components/_idea_workflow.scss @@ -151,6 +151,11 @@ color: #828282; text-transform: capitalize; + .list-group { + flex-direction: column; + display: flex; + } + &--group-title { margin-bottom: 18.5px; font-weight: $font-weight-bold; diff --git a/themes/openideal_theme/scss/components/_import.scss b/themes/openideal_theme/scss/components/_import.scss index 7185d07e3..9774cbc8a 100644 --- a/themes/openideal_theme/scss/components/_import.scss +++ b/themes/openideal_theme/scss/components/_import.scss @@ -1,3 +1,4 @@ +@import "item_list"; @import "page_title"; @import "statistics_block"; @import "form"; @@ -33,3 +34,5 @@ @import "alert"; @import "single_entity_browser_widget"; @import "idea_workflow"; +@import "login-form"; + diff --git a/themes/openideal_theme/scss/components/_item_list.scss b/themes/openideal_theme/scss/components/_item_list.scss new file mode 100644 index 000000000..5429e4cf0 --- /dev/null +++ b/themes/openideal_theme/scss/components/_item_list.scss @@ -0,0 +1,12 @@ +.list-group { + display: unset; + flex-direction: unset; +} + +.list-group-item { + display: unset; + position: unset; + padding: unset; + border: unset; + background-color: unset; +} diff --git a/themes/openideal_theme/scss/components/_login-form.scss b/themes/openideal_theme/scss/components/_login-form.scss new file mode 100644 index 000000000..8d640f4de --- /dev/null +++ b/themes/openideal_theme/scss/components/_login-form.scss @@ -0,0 +1,285 @@ +.user-login-form { + padding-bottom: calc(#{size(16)} + #{size(40)}); + &--container { + background-color: $white; + display: flex; + + // Title + &--title { + font-style: normal; + font-weight: 600; + font-size: size(25); + line-height: size(33); + text-align: center; + margin-bottom: size(41); + } + + // Left container with form + &--left { + position: relative; + padding: size(40) size(46); + width: size(522); + + // Social login buttons + &__social-login-buttons { + .social-auth { + margin-bottom: size(12); + background: #FFFFFF; + border: 1px solid #D0D6DC; + box-sizing: border-box; + border-radius: 60px; + padding: size(18); + position: relative; + display: flex; + justify-content: center; + + &--name { + font-family: "Assistant", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 600; + font-size: size(15); + line-height: size(20); + color: #343352; + } + + &--icon-wrapper { + position: absolute; + width: 34px; + justify-content: center; + display: flex; + left: size(20); + top: 50%; + transform: translateY(-50%); + margin-right: size(10); + + &::after { + content: ''; + width: 1px; + height: 100%; + display: block; + background: #D0D6DC; + position: absolute; + right: size(-12); + top: 0; + } + } + + &--icon { + + } + } + } + + // Or "--- or ---" + &__or { + margin: 10px 0; + display: flex; + &--line { + flex-grow: 1; + flex-shrink: 1; + background-color: #dbdbdb; + height: 1px; + position: relative; + top: .45em; + } + + &--or { + color: #8e8e8e; + flex-grow: 0; + flex-shrink: 0; + font-size: 13px; + font-weight: 600; + line-height: 15px; + margin: 0 18px; + text-transform: uppercase; + } + } + } + + // Right section + &--right { + width: size(522); + color: $white; + margin-bottom: 0; + position: relative; + background: #26282E; + overflow: hidden; + + &__text { + display: flex; + + &--section__first { + z-index: 999; + padding: size(38); + + ul { + list-style: none; + padding: 0; + margin: 0; + } + + li { + padding-left: size(13); + text-indent: -.7em; + margin-bottom: size(17); + font-size: size(20); + line-height: size(26); + } + + li::before { + content: "• "; + font-size: size(25); + color: #27C0FF; + } + + h2 { + span { + display: inline-block; + position: relative; + } + + em { + color: white; + + & + svg { + position: absolute; + left: 0; + bottom: -40%; + opacity: 1; + + path { + stroke-dashoffset: 0; + } + } + } + + svg { + pointer-events: none; + transition: 0.5s; + //outline: solid 1px lightgrey; + } + + path { + transition: stroke-dasharray 0.5s, stroke-dashoffset 0.5s, opacity 0.5s; + + &:last-child { + opacity: 0.2; + } + } + + font-style: normal; + font-weight: bold; + font-size: size(52); + line-height: 60px; + letter-spacing: 0.01em; + } + } + + &--section__second { + position: absolute; + bottom: 0; + &::after { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: linear-gradient(176.59deg, #262930 7.81%, rgba(38, 41, 48, 0) 40.61%); + } + } + } + } + + &__bottom { + position: absolute; + bottom: size(-120); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + left: 50%; + transform: translateX(-50%); + width: size(304); + + &--text { + font-weight: 600; + font-size: size(16); + line-height: size(21); + color: $black; + + a { + color: $btn-light; + } + } + } + + // Actions + &--actions { + display: flex; + align-items: center; + width: 100%; + justify-content: center; + + .form-submit { + width: 50%; + } + } + } + + .form-control { + padding: size(18) size(16); + } +} + +@media (max-width: size(1330)) { + .user-login-form--container { + &--right, + &--left { + width: size(400); + } + } +} + +@media (max-width: size(860)) { + .user-login-form--container { + &--right { + display: none; + } + + &--left { + width: auto; + &__social-login-buttons .social-auth { + padding: size(14); + } + } + } +} + +@media (max-width: size(422)) { + .user-login-form--container { + &--left { + padding: size(14) size(14); + + &__social-login-buttons { + display: flex; + justify-content: space-evenly; + + .social-auth { + &--icon-wrapper { + position: static; + transform: unset; + margin: 0; + + &::after { + content: unset; + } + } + &--name { + display: none; + } + } + } + } + } +} diff --git a/themes/openideal_theme/scss/components/_site-wide-statistics.scss b/themes/openideal_theme/scss/components/_site-wide-statistics.scss index d1007427f..abce9b72f 100644 --- a/themes/openideal_theme/scss/components/_site-wide-statistics.scss +++ b/themes/openideal_theme/scss/components/_site-wide-statistics.scss @@ -1,58 +1,66 @@ -.site-wide-statistics-block { - &--list { - display: flex; - list-style: none; - - &__item { +.block-openideal-statistics.block-site-wide-statistics-block { + .idea-statistics-block { + &--list { display: flex; - flex-direction: column; - align-items: center; - margin-right: 5px; - flex-basis: 75px; - box-shadow: 0 1px 5px rgba(0,0,0,0.03), 0 3px 6px rgba(0,0,0,0.1); - border-radius: 2px; - padding: 12px 6px 0; - background-color: #fff; - min-width: 77px; - - &--bottom { + list-style: none; + + &__item { display: flex; flex-direction: column; align-items: center; - text-transform: uppercase; - } + margin-right: 5px; + flex-basis: 75px; + box-shadow: 0 1px 5px rgba(0,0,0,0.03), 0 3px 6px rgba(0,0,0,0.1); + border-radius: 2px; + padding: 12px 6px 0; + background-color: #fff; + min-width: 77px; - .item-svg { - width: 32px; - height: 32px; - margin-bottom: 6px; - } + &--bottom { + display: flex; + flex-direction: column; + align-items: center; + text-transform: uppercase; + } - &--statistics_tag { - background: url('../images/icons/statistics_tag.svg') no-repeat center center; - } + .item-svg { + width: 32px; + height: 32px; + margin-bottom: 6px; + margin-right: 0; + } - &--members_tag { - background: url('../images/icons/members_tag.svg') no-repeat center center; - } + &--statistics_tag { + background: url('../images/icons/statistics_tag.svg') no-repeat center center; + } - &--comment_tag { - background: url('../images/icons/comment_tag.svg') no-repeat center center; - } + &--members_tag { + background: url('../images/icons/members_tag.svg') no-repeat center center; + } - &--like_tag { - background: url('../images/icons/like_tag.svg') no-repeat center center; - } + &--comment_tag { + background: url('../images/icons/comment_tag.svg') no-repeat center center; + } - p { - line-height: 1; - letter-spacing: -0.5px; - font-size: 15px; - } + &--like_tag { + background: url('../images/icons/like_tag.svg') no-repeat center center; + } + + p { + line-height: 1; + letter-spacing: -0.5px; + font-size: 15px; + } + + &--title { + margin-bottom: 1rem; + } - &--count { - font-weight: bold; - margin-bottom: 1px; + &--count { + margin-right: 0; + font-weight: bold; + margin-bottom: 1px; + } } } } diff --git a/themes/openideal_theme/scss/components/_teaser.scss b/themes/openideal_theme/scss/components/_teaser.scss index 38a053294..7e18eec9a 100644 --- a/themes/openideal_theme/scss/components/_teaser.scss +++ b/themes/openideal_theme/scss/components/_teaser.scss @@ -18,7 +18,6 @@ } select { - margin-bottom: 5px; border: 1px solid #C6CDD0; border-radius: 4px; appearance: none; @@ -45,14 +44,13 @@ border-radius: 30px; background: #E8E8E9; margin-top: 0; - margin-bottom: 5px; label { display: none; } input { - padding: 18px 3rem 18px 18px; + padding: size(8) size(20); background: transparent; border: none; margin: 0; @@ -182,7 +180,7 @@ &--value { margin-right: 5px; font-size: 14px; - + margin-bottom: 0; .challenge-status--deadline { font-size: 14px; } diff --git a/themes/openideal_theme/templates/components/login-with.html.twig b/themes/openideal_theme/templates/components/login-with.html.twig new file mode 100755 index 000000000..ff65d2bed --- /dev/null +++ b/themes/openideal_theme/templates/components/login-with.html.twig @@ -0,0 +1,16 @@ +{% set module = 'social-auth' %} + +{{ attach_library('social_auth/auth-icons') }} + +{% for social_network in social_networks %} + {% if destination %} +
+ {% else %} + + {% endif %} +
+ {{ social_network.name }} +
+ {{ social_network.name }} +
+{% endfor %}