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 000000000..8c600d384 Binary files /dev/null and b/modules/openideal_login/content/file/login_background.jpg differ 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 -*/ -#} -
- -
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 000000000..d363d7047 Binary files /dev/null and b/modules/openideal_user/images/login_background.jpg differ diff --git a/modules/openideal_user/openideal_user.install b/modules/openideal_user/openideal_user.install new file mode 100644 index 000000000..f3e74f80a --- /dev/null +++ b/modules/openideal_user/openideal_user.install @@ -0,0 +1,16 @@ +moduleExists('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 000000000..e46972dfe Binary files /dev/null and b/themes/openideal_theme/images/icons/facebook_icon.png differ 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 000000000..cf959e89e Binary files /dev/null and b/themes/openideal_theme/images/icons/github_icon.png differ 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 000000000..33a2d26a8 Binary files /dev/null and b/themes/openideal_theme/images/icons/google_icon.png differ diff --git a/themes/openideal_theme/js/global.js b/themes/openideal_theme/js/global.js index 9ec071d23..b1e541401 100644 --- a/themes/openideal_theme/js/global.js +++ b/themes/openideal_theme/js/global.js @@ -175,6 +175,7 @@ var $this = $(this); var $item = $('.votingapi-reaction-item', $this); var $label = $('.votingapi-reaction-label', $this); + if ($('.radio input', $this).is(':checked')) { $item.addClass('active'); $label.text(Drupal.t('Liked')); diff --git a/themes/openideal_theme/openideal_theme.libraries.yml b/themes/openideal_theme/openideal_theme.libraries.yml index 06f681af0..27ba5b63e 100644 --- a/themes/openideal_theme/openideal_theme.libraries.yml +++ b/themes/openideal_theme/openideal_theme.libraries.yml @@ -22,3 +22,12 @@ global-scripts: - core/jquery - core/drupal - core/jquery.once + +underliner: + version: VERSION + js: + js/underliner.js: {} + dependencies: + - core/jquery + - core/drupal + - core/jquery.once diff --git a/themes/openideal_theme/openideal_theme.theme b/themes/openideal_theme/openideal_theme.theme index abfff6ea7..008b93060 100644 --- a/themes/openideal_theme/openideal_theme.theme +++ b/themes/openideal_theme/openideal_theme.theme @@ -5,7 +5,9 @@ * Functions to support theming in the SASS Starterkit subtheme. */ +use Drupal\Component\Render\FormattableMarkup; use Drupal\Core\Form\FormStateInterface; +use Drupal\Core\Link; use Drupal\Core\StringTranslation\TranslatableMarkup; use Drupal\Core\Url; use Drupal\node\NodeInterface; @@ -68,16 +70,32 @@ function openideal_theme_preprocess_html(&$variables) { */ function openideal_theme_preprocess_page(&$variables) { $route_match = \Drupal::routeMatch(); + $route_name = $route_match->getRouteName(); $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 %}