35 Commits

Author SHA1 Message Date
2bed556c02 restored wrongly commited composer.json commerce patches 2022-11-01 12:17:44 +01:00
27b50d0cba updated contrib modules 2022-11-01 12:14:04 +01:00
685d2dbcbd Merge branch 'prod' 2022-11-01 12:02:41 +01:00
03487b78bf modules update 2022-11-01 09:36:27 +01:00
afb9d13ed8 security updatesn, phpdotenv update, profile update 2022-10-31 14:45:34 +01:00
7ce2e5fb39 updated core to 9.4.8 2022-10-31 13:13:15 +01:00
78a94ed058 fixed #1989, login block hover on ipad 2022-10-31 11:10:51 +01:00
88e9ed16ff improved admin views 2022-10-20 10:33:00 +02:00
c4bf0b7c28 added 'email verified' column on admin user view 2022-10-18 16:11:23 +02:00
17b6581aa6 improved cleanflaglist script 2022-10-18 15:06:33 +02:00
1beb2b4dfa improved cleanflaglist script 2022-10-18 15:03:32 +02:00
4bc00f9b2b forgot to commit structure_sync login_history menu item 2022-09-23 11:20:33 +02:00
7cc9166ddd user_history initialized, granted admin to access login_history view 2022-09-23 11:18:01 +02:00
905c82f59f patched user_history 2022-09-23 11:01:45 +02:00
6c9d750851 changed some labels on commerce 2022-09-23 10:20:00 +02:00
7f0c254d9e added user_history module 2022-09-23 10:19:39 +02:00
895be04b6b admin can access and edit subscriptions 2022-09-21 17:13:17 +02:00
2f6560b88a only one retry for annual licence. Displaying state on licence edit form #1958 2022-09-20 21:44:43 +02:00
306c0d3f94 lightbox switching (modal cards) fix 2022-09-19 16:20:38 +02:00
9f20d34f42 refactored showrooms page 2022-09-19 15:58:11 +02:00
e5c6b871db removed showrooms bad links from home #1909 2022-09-19 11:45:23 +02:00
2e3612badc fixed blabla lightbox #1969 2022-09-19 11:25:38 +02:00
3960310677 improved licences admin page: more filters 2022-09-16 17:26:34 +02:00
76f8e9298a improved licences admin page: more filters 2022-09-16 16:02:56 +02:00
faa589332b changed default ordering for admin licences page 2022-09-16 15:54:11 +02:00
de89f29915 search form micro fixe (comma alone) 2022-09-13 12:40:32 +02:00
7051869819 last commit bug fix 2022-09-13 12:35:15 +02:00
1565ce8aa2 #1906 fixed search multi keys (ajax query params miswrited qs.stringify arrayFormat) 2022-09-13 12:29:38 +02:00
40b7e75d44 #1906, click on header menu base reset search 2022-09-13 11:26:34 +02:00
f919dab0e9 #1661 added phrase query before and then or querys of solr search 2022-08-15 17:54:32 +02:00
1c47278ae5 fix #1816 solr too many boolean clauses 2022-08-15 17:30:59 +02:00
db6a82f7f7 1906 FIX search form autocomplete multi terms 2022-08-15 16:57:57 +02:00
1993f80d8d #1791 removed terms thesaurus without parents from search form autocomplete 2022-08-12 19:05:17 +02:00
d1b4902aa3 #1906 serach form autocmplete multi terms 2022-08-12 17:00:49 +02:00
75ea440f89 updated webpack dev build to run 'drush cc css-js' 2022-08-10 14:49:59 +02:00
108 changed files with 7064 additions and 1533 deletions

View File

@@ -5,6 +5,7 @@ const { merge } = require('webpack-merge')
const baseConfig = require('./webpack.config.base')
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
const WebpackShellPluginNext = require('webpack-shell-plugin-next');
module.exports = merge(baseConfig, {
mode: 'development',
@@ -51,6 +52,19 @@ module.exports = merge(baseConfig, {
// new webpack.HotModuleReplacementPlugin()
new BundleAnalyzerPlugin({
'analyzerMode': 'static'
}),
new WebpackShellPluginNext({
// onBuildStart:{
// scripts: ['echo "Webpack Start"'],
// blocking: true,
// parallel: false
// },
// drush is not installed in this container so we have to ssh on the php container
onAfterDone:{
scripts: ['echo "Clearing drupal cache $USER_UNAME $DRUPAL_ROOT"', 'sshpass -p "$USER_UNAME" ssh $USER_UNAME@php "cd $DRUPAL_ROOT && drush cc css-js"', 'echo "Done"'],
blocking: true,
parallel: false
}
})
]
})

View File

@@ -4,17 +4,37 @@
// This example demonstrates how to write a drush
// script. These scripts are run with the php-script command.
//
// drush php-script cleanflaglist.script
use Drush\Drush;
$this->output()->writeln("Flagging collection cleaning");
$this->output()->writeln("options : [delete-all | delete-nullname | delete-missing | delete-dups]");
// $this->output()->writeln("Hello world!");
$this->output()->writeln("The extra options/arguments to this command were:");
$this->output()->writeln(print_r($extra, true));
if ($extra[0] === "delete") {
$delete = true;
} else {
$delete = false;
$delete_all = false;
$delete_nullname = false;
$delete_missing = false;
$delete_dups = false;
if ($extra[0] === "delete-all") {
$delete_all = true;
}
if ($extra[0] === "delete-missing") {
$delete_missing = true;
}
if ($extra[0] === "delete-nullname") {
$delete_nullname = true;
}
if ($extra[0] === "delete-dups") {
$delete_dups = true;
}
@@ -43,7 +63,7 @@ foreach ($fcfd_result as $fc) {
$this->output()->writeln($flifd_query->countQuery()->execute()->fetchField() . " items for fc " . $fc->id . ' with baseflag ' . $fc->relatedflag);
// $this->output()->writeln(print_r($flifd_result->fetchAssoc(), true) . " items");
delete_flagingcollection($fc, $database, $delete);
delete_flagingcollection($fc, $database, $delete_all ? true : $delete_nullname);
}
@@ -64,9 +84,9 @@ foreach ($fcfd_result as $fc) {
$conf_result = $flag_query->execute();
$count = $flag_query->countQuery()->execute()->fetchField();
if(!$count){
$this->output()->writeln($fc->id . ' flagging_collection has ' . $count . " relatedflag");
$this->output()->writeln(' flagging_collection' . $fc->id . ' has ' . $count . " relatedflag");
$fc_missing_relatedflag ++;
delete_flagingcollection($fc, $database, $delete);
delete_flagingcollection($fc, $database, $delete_all ? true : $delete_missing);
}
}
$this->output()->writeln($fc_missing_relatedflag .' flagging_collection with missing related_flag');
@@ -96,7 +116,7 @@ foreach ($dup_result as $dup){
$this->output()->writeln($dup->relatedflag . ' relatedflag has ' . $count . ' flagging collection');
foreach ($fcfd_result as $fc) {
delete_flagingcollection($fc, $database, $delete);
delete_flagingcollection($fc, $database, $delete_all ? true : $delete_dups);
}
}

View File

@@ -92,9 +92,9 @@
"drupal/console": "^1.0.2",
"drupal/consumer_image_styles": "^4.0",
"drupal/content_sync": "^2.x-dev@dev",
"drupal/core-composer-scaffold": "9.3.17",
"drupal/core-project-message": "9.3.17",
"drupal/core-recommended": "9.3.17",
"drupal/core-composer-scaffold": "9.4.8",
"drupal/core-project-message": "9.4.8",
"drupal/core-recommended": "9.4.8",
"drupal/ctools": "^3.6",
"drupal/debug_bar": "^1.4",
"drupal/devel": "^4.1",
@@ -111,11 +111,11 @@
"drupal/gdpr": "^3.0@alpha",
"drupal/genpass": "^1.x-dev",
"drupal/google_analytics": "^4.0",
"drupal/graphql": "^4.0",
"drupal/graphql": "4.x-dev@dev",
"drupal/image_delta_formatter": "^1.x-dev",
"drupal/image_effects": "^3.x-dev@dev",
"drupal/js_cache_buster": "^1.0",
"drupal/jsonapi_extras": "^3.7",
"drupal/jsonapi_extras": "^3.21",
"drupal/jsonrpc": "^2.0",
"drupal/login_destination": "^2.x-dev@dev",
"drupal/login_history": "^1.x-dev",
@@ -167,6 +167,7 @@
"drupal/url_to_video_filter": "^2.0",
"drupal/user_csv_import": "^2.0",
"drupal/user_email_verification": "^1.x-dev@dev",
"drupal/user_history": "^1.0",
"drupal/vde_drush": "^2.0",
"drupal/views_conditional": "^1.x-dev",
"drupal/views_data_export": "^1.1",
@@ -178,7 +179,7 @@
"kint-php/kint": "^3.3",
"smalot/pdfparser": "*",
"symfony/mailjet-mailer": "^5.4",
"vlucas/phpdotenv": "^2.4",
"vlucas/phpdotenv": "^4.0",
"w8tcha/ckeditor_codemirror": "v1.17.8",
"wa72/htmlpagedom": "1.3.*",
"webflo/drupal-finder": "^1.0.0",
@@ -307,6 +308,12 @@
"var_dump https://www.drupal.org/project/simplenews_mailjet_subscriptions/issues/3280822#comment-14517416":"https://www.drupal.org/files/issues/2022-05-17/3280822-vardump%231.patch",
"missing argument https://www.drupal.org/project/simplenews_mailjet_subscriptions/issues/3280825": "https://www.drupal.org/files/issues/2022-05-17/3280825-missing-argument%232.patch",
"using mailjet module":"./patches/simplenews_mailjet_subscriptions__usingmailjetmodule.patch"
},
"drupal/graphql": {
"invalid translation language https://github.com/drupal-graphql/graphql/pull/1176": "./patches/graphql-fix-invalid-translation-language-dev.patch"
},
"drupal/user_history": {
"init batch : field_storage_values misses type https://www.drupal.org/project/user_history/issues/3311360": "https://www.drupal.org/files/issues/2022-09-23/user_history__field_storage_values__miss__type.patch"
}
},
"drupal-scaffold": {

2351
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,7 @@
_core:
default_config_hash: m2pxH8tc4KIlh127R5TYim65W7NBY9gpYQnIXlvDp0M
langcode: fr
enabled: true
timeout: 1800
max_timeout: 172800
padding: 120
@@ -12,6 +13,7 @@ no_dialog: true
message: 'Your session is about to expire. Do you want to reset it?'
inactivity_message: ''
inactivity_message_type: status
modal_width: 450
enforce_admin: false
jstimer_format: '%hours%:%mins%:%secs%'
jstimer_js_load_option: false

View File

@@ -14,7 +14,7 @@ third_party_settings:
_core:
default_config_hash: Q21JtNYYWL-eIfxaX1rm-NvSqPqdDymrDrN08f_QC7M
id: recurring_product_variation
label: 'Recurring (Product variation)'
label: 'Recurring (Product variation) DO NOT USE ME'
traits:
- commerce_license_order_item_type
locked: true

View File

@@ -2,13 +2,18 @@ uuid: 045671c1-aab5-4468-8178-c617dcea16a6
langcode: en
status: true
dependencies:
module:
- commerce_tax
enforced:
module:
- commerce_recurring
third_party_settings:
commerce_tax:
taxable_type: physical_goods
_core:
default_config_hash: iFZgD_z6PSZqyLy65J_OLjA_nnGu-lvKxgPr0BNiCCI
id: recurring_standalone
label: 'Recurring (Standalone)'
label: 'Recurring (Standalone) DO NOT USE ME'
traits: { }
locked: true
purchasableEntityType: ''

View File

@@ -3,10 +3,12 @@ langcode: en
status: true
dependencies: { }
id: materio_product_type
label: 'materio product type'
label: 'materio product type (do not use me)'
traits: { }
locked: false
description: ''
variationType: materio_product_variation_type
variationTypes:
- materio_product_variation_type
multipleVariations: true
injectVariationFields: true

View File

@@ -13,7 +13,7 @@ third_party_settings:
interval: '1'
period: month
id: materio_product_licence_variatio
label: 'materio product licence variation type'
label: 'materio product licence nosub variation type'
traits:
- commerce_license
locked: false

View File

@@ -8,14 +8,12 @@ displayLabel: Annual
billingType: prepaid
retrySchedule:
- 1
- 3
- 5
unpaidSubscriptionState: canceled
plugin: rolling
configuration:
trial_interval: { }
interval:
number: 1
unit: year
unit: month
prorater: full_price
proraterConfiguration: { }

View File

@@ -35,4 +35,9 @@ content:
settings:
include_locked: true
third_party_settings: { }
translation:
weight: 10
region: content
settings: { }
third_party_settings: { }
hidden: { }

View File

@@ -0,0 +1,39 @@
uuid: 0d6fcab7-f639-4dbc-a0d2-bc0e0a45dd76
langcode: fr
status: true
dependencies:
module:
- commerce
- commerce_license
id: commerce_license.role.default
targetEntityType: commerce_license
bundle: role
mode: default
content:
product_variation:
type: entity_reference_autocomplete
weight: 0
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
state:
type: options_select
weight: 2
region: content
settings: { }
third_party_settings: { }
uid:
type: entity_reference_autocomplete
weight: 1
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
hidden: { }

View File

@@ -16,15 +16,9 @@ content:
region: content
settings: { }
third_party_settings: { }
quantity:
type: number
weight: 1
region: content
settings:
placeholder: ''
third_party_settings: { }
hidden:
adjustments: true
created: true
license: true
quantity: true
unit_price: true

View File

@@ -65,11 +65,12 @@ third_party_settings:
region: content
parent_name: ''
weight: 2
format_type: tab
format_type: details
format_settings:
classes: ''
show_empty_fields: false
id: ''
formatter: closed
open: true
description: ''
required_fields: true
group_contents:
@@ -187,7 +188,7 @@ content:
third_party_settings: { }
status:
type: boolean_checkbox
weight: 100
weight: 4
region: content
settings:
display_label: true

View File

@@ -0,0 +1,25 @@
uuid: 82cfb3bb-2c59-4e94-87c2-7ed3fef7d903
langcode: en
status: true
dependencies:
config:
- field.field.user_history.user_history.changed
- field.field.user_history.user_history.field_company
- field.field.user_history.user_history.field_member_type
- field.field.user_history.user_history.field_memo
- field.field.user_history.user_history.field_showroom
module:
- user_history
_core:
default_config_hash: t3pk9G7B-islTarIf5Vn3hst8iT4ymFv2xZC3Pk8s3I
id: user_history.user_history.default
targetEntityType: user_history
bundle: user_history
mode: default
content: { }
hidden:
changed: true
field_company: true
field_member_type: true
field_memo: true
field_showroom: true

View File

@@ -118,6 +118,8 @@ content:
settings:
image_link: ''
image_style: ''
image_loading:
attribute: lazy
third_party_settings: { }
weight: 105
region: content

View File

@@ -118,6 +118,8 @@ content:
settings:
image_link: ''
image_style: ''
image_loading:
attribute: lazy
third_party_settings: { }
weight: 105
region: content

View File

@@ -90,6 +90,8 @@ content:
settings:
image_link: ''
image_style: ''
image_loading:
attribute: lazy
third_party_settings: { }
weight: 7
region: content

View File

@@ -60,6 +60,8 @@ content:
settings:
image_link: ''
image_style: card_full
image_loading:
attribute: lazy
third_party_settings: { }
weight: 3
region: content

View File

@@ -60,6 +60,8 @@ content:
settings:
image_link: ''
image_style: ''
image_loading:
attribute: lazy
third_party_settings: { }
weight: 5
region: content

View File

@@ -53,7 +53,7 @@ content:
settings:
deltas: '0'
image_style: home_showroom
image_link: content
image_link: ''
deltas_reversed: 0
third_party_settings: { }
weight: 0

View File

@@ -0,0 +1,209 @@
uuid: 6159fee5-dea5-4c37-877e-f1d81222e4ef
langcode: en
status: true
dependencies:
config:
- field.field.user_history.user_history.changed
- field.field.user_history.user_history.field_company
- field.field.user_history.user_history.field_member_type
- field.field.user_history.user_history.field_memo
- field.field.user_history.user_history.field_showroom
module:
- user_history
_core:
default_config_hash: rLJ2KvmgjOrIys0VR2ZOuqVSmnAVAyUM4XfjaFEOBNg
id: user_history.user_history.default
targetEntityType: user_history
bundle: user_history
mode: default
content:
action:
type: string
label: inline
settings:
link_to_entity: false
third_party_settings: { }
weight: 2
region: content
created:
type: timestamp
label: inline
settings:
date_format: medium
custom_date_format: ''
timezone: ''
third_party_settings: { }
weight: 1
region: content
difference:
type: string
label: inline
settings:
link_to_entity: false
third_party_settings: { }
weight: 20
region: content
label:
type: string
label: inline
settings:
link_to_entity: false
third_party_settings: { }
weight: 0
region: content
modified_by:
type: entity_reference_label
label: inline
settings:
link: true
third_party_settings: { }
weight: 3
region: content
user_access:
type: timestamp
label: inline
settings:
date_format: medium
custom_date_format: ''
timezone: ''
third_party_settings: { }
weight: 14
region: content
user_changed:
type: timestamp
label: inline
settings:
date_format: medium
custom_date_format: ''
timezone: ''
third_party_settings: { }
weight: 13
region: content
user_created:
type: timestamp
label: inline
settings:
date_format: medium
custom_date_format: ''
timezone: ''
third_party_settings: { }
weight: 12
region: content
user_deleted:
type: boolean
label: inline
settings:
format: yes-no
format_custom_false: ''
format_custom_true: ''
third_party_settings: { }
weight: 4
region: content
user_id:
type: entity_reference_entity_id
label: inline
settings: { }
third_party_settings: { }
weight: 5
region: content
user_init:
type: basic_string
label: inline
settings: { }
third_party_settings: { }
weight: 16
region: content
user_langcode:
type: language
label: inline
settings:
link_to_entity: false
native_language: false
third_party_settings: { }
weight: 17
region: content
user_login:
type: timestamp
label: inline
settings:
date_format: medium
custom_date_format: ''
timezone: ''
third_party_settings: { }
weight: 15
region: content
user_mail:
type: basic_string
label: inline
settings: { }
third_party_settings: { }
weight: 8
region: content
user_name:
type: string
label: inline
settings:
link_to_entity: false
third_party_settings: { }
weight: 6
region: content
user_pass:
type: string
label: inline
settings:
link_to_entity: false
third_party_settings: { }
weight: 7
region: content
user_preferred_admin_langcode:
type: language
label: inline
settings:
link_to_entity: false
native_language: false
third_party_settings: { }
weight: 19
region: content
user_preferred_langcode:
type: language
label: inline
settings:
link_to_entity: false
native_language: false
third_party_settings: { }
weight: 18
region: content
user_roles:
type: string
label: inline
settings:
link_to_entity: false
third_party_settings: { }
weight: 11
region: content
user_status:
type: boolean
label: inline
settings:
format: custom
format_custom_false: Blocked
format_custom_true: Active
third_party_settings: { }
weight: 10
region: content
user_timezone:
type: string
label: inline
settings:
link_to_entity: false
third_party_settings: { }
weight: 9
region: content
hidden:
changed: true
field_company: true
field_member_type: true
field_memo: true
field_showroom: true
search_api_excerpt: true
synonyms: true

View File

@@ -0,0 +1,131 @@
uuid: 91bdd6bf-d214-41c1-9731-f4c5972062a6
langcode: en
status: true
dependencies:
config:
- core.entity_view_mode.user_history.tab
- field.field.user_history.user_history.changed
- field.field.user_history.user_history.field_company
- field.field.user_history.user_history.field_member_type
- field.field.user_history.user_history.field_memo
- field.field.user_history.user_history.field_showroom
module:
- user_history
_core:
default_config_hash: 9xmWD-ipJmTwO8v1QpZ37pO4vsMRUJAhpdiMYtViG5c
id: user_history.user_history.tab
targetEntityType: user_history
bundle: user_history
mode: tab
content:
action:
type: string
label: inline
settings:
link_to_entity: false
third_party_settings: { }
weight: 3
region: content
created:
type: timestamp
label: inline
settings:
date_format: medium
custom_date_format: ''
timezone: ''
third_party_settings: { }
weight: 1
region: content
difference:
type: string
label: inline
settings:
link_to_entity: false
third_party_settings: { }
weight: 20
region: content
label:
type: string
label: inline
settings:
link_to_entity: false
third_party_settings: { }
weight: 0
region: content
modified_by:
type: entity_reference_label
label: inline
settings:
link: true
third_party_settings: { }
weight: 2
region: content
user_login:
type: timestamp
label: inline
settings:
date_format: medium
custom_date_format: ''
timezone: ''
third_party_settings: { }
weight: 9
region: content
user_mail:
type: basic_string
label: inline
settings: { }
third_party_settings: { }
weight: 5
region: content
user_name:
type: string
label: inline
settings:
link_to_entity: false
third_party_settings: { }
weight: 4
region: content
user_roles:
type: string
label: inline
settings:
link_to_entity: false
third_party_settings: { }
weight: 8
region: content
user_status:
type: boolean
label: inline
settings:
format: custom
format_custom_false: Blocked
format_custom_true: Active
third_party_settings: { }
weight: 7
region: content
user_timezone:
type: string
label: inline
settings:
link_to_entity: false
third_party_settings: { }
weight: 6
region: content
hidden:
changed: true
field_company: true
field_member_type: true
field_memo: true
field_showroom: true
search_api_excerpt: true
synonyms: true
user_access: true
user_changed: true
user_created: true
user_deleted: true
user_id: true
user_init: true
user_langcode: true
user_pass: true
user_preferred_admin_langcode: true
user_preferred_langcode: true

View File

@@ -0,0 +1,12 @@
uuid: 1a23be2d-497b-4722-a873-8d33fbd3954e
langcode: en
status: true
dependencies:
module:
- user_history
_core:
default_config_hash: ggnLfDKZKWq9-z6LNunoyDsOtcsUSIo0imn2QXKJIbw
id: user_history.tab
label: 'User profile tab'
targetEntityType: user_history
cache: true

View File

@@ -117,7 +117,9 @@ module:
jquery_ui_button: 0
jquery_ui_checkboxradio: 0
jquery_ui_controlgroup: 0
jquery_ui_datepicker: 0
jquery_ui_slider: 0
jquery_ui_touch_punch: 0
js_cache_buster: 0
jsonapi: 0
jsonapi_extras: 0
@@ -150,6 +152,7 @@ module:
menu_ui: 0
message: 0
modules_weight: 0
mysql: 0
node: 0
options: 0
page_cache: 0
@@ -220,6 +223,7 @@ module:
user: 0
user_csv_import: 0
user_email_verification: 0
user_history: 0
vde_drush: 0
video_embed_field: 0
video_embed_wysiwyg: 0

View File

@@ -58,8 +58,6 @@ settings:
linkit_profile: default
stylescombo:
styles: ''
language:
language_list: un
codemirror:
enable: true
mode: htmlmixed
@@ -77,18 +75,8 @@ settings:
autoFormatOnStart: true
autoFormatOnModeChange: true
autoFormatOnUncomment: true
font:
font_names: ''
font_sizes: ''
colorbutton:
colors: ''
video_embed:
defaults:
children:
autoplay: false
responsive: true
width: '854'
height: '480'
image_upload:
status: true
scheme: public

View File

@@ -58,8 +58,6 @@ settings:
linkit_profile: default
stylescombo:
styles: h4.inter-titre|Inter-titre
language:
language_list: un
codemirror:
enable: true
mode: htmlmixed
@@ -77,18 +75,6 @@ settings:
autoFormatOnStart: true
autoFormatOnModeChange: true
autoFormatOnUncomment: true
font:
font_names: ''
font_sizes: ''
colorbutton:
colors: ''
video_embed:
defaults:
children:
autoplay: true
responsive: true
width: '854'
height: '480'
image_upload:
status: true
scheme: public

View File

@@ -0,0 +1,20 @@
uuid: 5ff1c4d4-a0d9-419b-8f1a-fcd4109af235
langcode: en
status: true
dependencies:
config:
- field.storage.user_history.changed
module:
- user_history
id: user_history.user_history.changed
field_name: changed
entity_type: user_history
bundle: user_history
label: Changed
description: 'The time that the user was last edited.'
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: changed

View File

@@ -0,0 +1,30 @@
uuid: 3c278633-e325-4578-915e-12c4c0962ed9
langcode: en
status: true
dependencies:
config:
- field.storage.user_history.field_company
- taxonomy.vocabulary.company
module:
- user_history
id: user_history.user_history.field_company
field_name: field_company
entity_type: user_history
bundle: user_history
label: Company
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
handler: 'default:taxonomy_term'
handler_settings:
target_bundles:
company: company
sort:
field: name
direction: asc
auto_create: false
auto_create_bundle: ''
field_type: entity_reference

View File

@@ -0,0 +1,28 @@
uuid: 294a3939-be0c-4e55-9d67-2f6a85c20aaf
langcode: en
status: true
dependencies:
config:
- field.storage.user_history.field_member_type
module:
- options
- unique_content_field_validation
- user_history
third_party_settings:
unique_content_field_validation:
unique: false
unique_text: ''
id: user_history.user_history.field_member_type
field_name: field_member_type
entity_type: user_history
bundle: user_history
label: 'Member Type'
description: ''
required: false
translatable: false
default_value:
-
value: 0
default_value_callback: ''
settings: { }
field_type: list_integer

View File

@@ -0,0 +1,25 @@
uuid: 86f32b81-68fa-429f-96bc-78c127614937
langcode: en
status: true
dependencies:
config:
- field.storage.user_history.field_memo
module:
- unique_content_field_validation
- user_history
third_party_settings:
unique_content_field_validation:
unique: false
unique_text: ''
id: user_history.user_history.field_memo
field_name: field_memo
entity_type: user_history
bundle: user_history
label: Memo
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: string_long

View File

@@ -0,0 +1,30 @@
uuid: 4d87baea-bccb-49b0-97bc-7f88227bd591
langcode: en
status: true
dependencies:
config:
- field.storage.user_history.field_showroom
- taxonomy.vocabulary.showroom
module:
- user_history
id: user_history.user_history.field_showroom
field_name: field_showroom
entity_type: user_history
bundle: user_history
label: Showroom
description: ''
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
handler: 'default:taxonomy_term'
handler_settings:
target_bundles:
showroom: showroom
sort:
field: name
direction: asc
auto_create: false
auto_create_bundle: ''
field_type: entity_reference

View File

@@ -0,0 +1,18 @@
uuid: e8488f73-cb96-415c-87df-4354a751d577
langcode: en
status: true
dependencies:
module:
- user_history
id: user_history.changed
field_name: changed
entity_type: user_history
type: changed
settings: { }
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,24 @@
uuid: ab537048-df6b-48f1-ac8d-d868fe1b5368
langcode: en
status: true
dependencies:
module:
- field_permissions
- taxonomy
- user_history
third_party_settings:
field_permissions:
permission_type: custom
id: user_history.field_company
field_name: field_company
entity_type: user_history
type: entity_reference
settings:
target_type: taxonomy_term
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,37 @@
uuid: 5101633f-aba1-4658-bbcf-04e3b199c3f2
langcode: en
status: true
dependencies:
module:
- field_permissions
- options
- user_history
third_party_settings:
field_permissions:
permission_type: custom
id: user_history.field_member_type
field_name: field_member_type
entity_type: user_history
type: list_integer
settings:
allowed_values:
-
value: 0
label: Web
-
value: 1
label: Showroom
-
value: 2
label: Multijoueurs
-
value: 3
label: AAF
allowed_values_function: ''
module: options
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,23 @@
uuid: 5fbd72ac-a63e-4bac-9b91-cfffc8f9a3f1
langcode: en
status: true
dependencies:
module:
- field_permissions
- user_history
third_party_settings:
field_permissions:
permission_type: custom
id: user_history.field_memo
field_name: field_memo
entity_type: user_history
type: string_long
settings:
case_sensitive: false
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,24 @@
uuid: f6cafa78-778a-409a-af83-29cf5e98e3ee
langcode: en
status: true
dependencies:
module:
- field_permissions
- taxonomy
- user_history
third_party_settings:
field_permissions:
permission_type: custom
id: user_history.field_showroom
field_name: field_showroom
entity_type: user_history
type: entity_reference
settings:
target_type: taxonomy_term
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -3,7 +3,7 @@ langcode: en
status: true
dependencies: { }
name: home_showroom
label: 'home-showroom (800x534)'
label: 'home-showroom (800x450)'
effects:
87ca0333-c2de-4d98-91e1-d65b0263a31e:
uuid: 87ca0333-c2de-4d98-91e1-d65b0263a31e

View File

@@ -0,0 +1,5 @@
content:
user_status:
settings:
format_custom_false: Bloqué
format_custom_true: Actif

View File

@@ -0,0 +1,5 @@
content:
user_status:
settings:
format_custom_false: Bloqué
format_custom_true: Actif

View File

@@ -1,3 +1,4 @@
label: 'Checkout Order Summary'
display:
default:
display_title: Maître

View File

@@ -25,8 +25,6 @@ display:
empty:
area_text_custom:
content: 'Aucun contenu de page d''accueil n''a été créé pour l''instant. Suivre le <a href="https://www.drupal.org/fr/docs/user_guide/fr/index.html">Guide utilisateur</a> pour démarrer la construction de votre site.'
title:
title: 'Bienvenue sur [site:name]'
feed_1:
display_title: Flux
page_1:

View File

@@ -0,0 +1,82 @@
display:
default:
display_title: Maître
display_options:
exposed_form:
options:
submit_button: Appliquer
reset_button_label: Réinitialiser
exposed_sorts_label: 'Trier par'
sort_asc_label: Asc
sort_desc_label: Desc
pager:
options:
tags:
previous:
next:
expose:
items_per_page_label: 'Éléments par page'
items_per_page_options_all_label: '- Tout -'
offset_label: Décalage
fields:
action:
label: Action
separator: ', '
user_changed:
label: Modifié
separator: ', '
user_created:
label: Créé
separator: ', '
created:
label: Créé
separator: ', '
user_mail:
label: Courriel
separator: ', '
id:
label: 'Identifiant (ID)'
separator: ', '
user_init:
label: Init
separator: ', '
user_langcode:
label: 'Code de la langue'
separator: ', '
user_access:
label: 'Dernier accès'
separator: ', '
user_login:
separator: ', '
modified_by:
separator: ', '
user_name:
label: Nom
separator: ', '
user_pass:
label: 'Mot de passe'
separator: ', '
user_preferred_admin_langcode:
separator: ', '
user_preferred_langcode:
separator: ', '
user_roles_target_id:
label: Rôles
separator: ', '
user_timezone:
label: 'Fuseau horaire'
separator: ', '
user_deleted:
separator: ', '
user_id:
label: 'Identifiant (ID) utilisateur'
separator: ', '
user_status:
label: 'Statut de l''utilisateur'
separator: ', '
arguments:
user_id:
exception:
title: Tout
page_1:
display_title: Page

View File

@@ -0,0 +1,57 @@
display:
default:
display_title: Maître
display_options:
exposed_form:
options:
submit_button: Appliquer
reset_button_label: Réinitialiser
exposed_sorts_label: 'Trier par'
sort_asc_label: Asc
sort_desc_label: Desc
pager:
options:
expose:
items_per_page_label: 'Éléments par page'
items_per_page_options_all_label: '- Tout -'
offset_label: Décalage
tags:
previous:
next:
fields:
label:
separator: ', '
modified_by:
separator: ', '
created:
separator: ', '
user_id:
separator: ', '
user_name:
label: 'Nom d''utilisateur'
separator: ', '
user_mail:
separator: ', '
user_roles:
label: 'Rôles de l''utilisateur'
separator: ', '
user_status:
label: 'Statut de l''utilisateur'
settings:
format_custom_true: Actif
format_custom_false: Bloqué
separator: ', '
user_deleted:
separator: ', '
user_login:
label: 'Dernière connexion'
separator: ', '
filters:
user_name:
expose:
label: 'Nom d''utilisateur'
user_roles:
expose:
label: 'Rôles de l''utilisateur'
page_1:
display_title: Page

View File

@@ -73,6 +73,14 @@ field_settings:
dependencies:
module:
- taxonomy
parent:
label: 'Parents du terme'
datasource_id: 'entity:taxonomy_term'
property_path: parent
type: integer
dependencies:
module:
- taxonomy
status:
label: Published
datasource_id: 'entity:taxonomy_term'
@@ -97,6 +105,14 @@ field_settings:
dependencies:
module:
- taxonomy
vid:
label: Vocabulaire
datasource_id: 'entity:taxonomy_term'
property_path: vid
type: string
dependencies:
module:
- taxonomy
datasource_settings:
'entity:taxonomy_term':
bundles:
@@ -113,6 +129,7 @@ processor_settings:
add_url: { }
aggregated_field: { }
entity_status: { }
entity_type: { }
language_with_fallback: { }
rendered_item: { }
solr_date_range:

View File

@@ -1,3 +1,16 @@
blocks:
-
info: contact
langcode: en
uuid: e202a879-0a6d-4819-a171-15dfac8d7567
bundle: simple_text
revision_id: null
rev_id_current: null
fields:
field_content:
-
value: "<p>contact <a href=\"mailto:hello@materio.com\" title=\"hello@materio.com\">hello@materio.com</a> | developed by&nbsp;<a href=\"https://figureslibres.cc/\" rel=\"noopener\" target=\"_blank\" title=\"figureslibres.cc\">figureslibres.cc</a></p>\r\n"
format: wysiwyg
menus:
-
menu_name: header
@@ -56,7 +69,7 @@ menus:
description: null
enabled: '1'
expanded: '0'
weight: '-50'
weight: '-49'
langcode: en
uuid: 27e5f4e1-1ea7-425e-aabb-81404d40a864
-
@@ -104,19 +117,30 @@ menus:
description: null
enabled: '1'
expanded: '0'
weight: '-49'
weight: '-50'
langcode: en
uuid: 5b14e014-7aba-4e1b-a619-45177584cf80
blocks:
-
info: contact
menu_name: editors
title: Subscriptions
parent: editors_menus.commerce
uri: 'internal:/admin/commerce/subscriptions'
link_title: ''
description: null
enabled: '1'
expanded: '0'
weight: '-45'
langcode: en
uuid: e202a879-0a6d-4819-a171-15dfac8d7567
bundle: simple_text
revision_id: null
rev_id_current: null
fields:
field_content:
-
value: "<p>contact <a href=\"mailto:hello@materio.com\" title=\"hello@materio.com\">hello@materio.com</a> | developed by&nbsp;<a href=\"https://figureslibres.cc/\" rel=\"noopener\" target=\"_blank\" title=\"figureslibres.cc\">figureslibres.cc</a></p>\r\n"
format: wysiwyg
uuid: b87ef278-a92a-47b5-adc2-2bea12fd9b07
-
menu_name: editors
title: 'login history'
parent: editors_menus.users
uri: 'internal:/admin/reports/login-history'
link_title: ''
description: null
enabled: '1'
expanded: '0'
weight: '0'
langcode: en
uuid: 0f3b6054-63b1-4c01-80bb-609d6ab2ac7b

View File

@@ -0,0 +1,17 @@
uuid: 75c4fa38-9c56-488a-b071-fddb06766178
langcode: en
status: true
dependencies:
module:
- user_history
title: 'Default cron handler'
id: user_history_cron
weight: 0
module: user_history
callback: user_history_cron
scheduler:
id: simple
launcher:
id: serial
logger:
id: database

View File

@@ -6,7 +6,6 @@ dependencies:
- node.type.note
module:
- commerce_license
- commerce_order
- eu_cookie_compliance
- field_permissions
- flag_lists
@@ -46,4 +45,3 @@ permissions:
- 'view own flag lists'
- 'view own member profile'
- 'view printer friendly versions'
- 'view recurring commerce_order'

View File

@@ -51,6 +51,7 @@ dependencies:
- system
- taxonomy
- toolbar
- user_history
- workflow
_core:
default_config_hash: oPv8PkAuHYeKKe1c48A3-O9VsF3Nl1XBsMKrgqxo8vs
@@ -64,6 +65,7 @@ permissions:
- 'access commerce_license overview'
- 'access commerce_order overview'
- 'access commerce_product overview'
- 'access commerce_subscription overview'
- 'access files overview'
- 'access materio search'
- 'access profile overview'
@@ -76,6 +78,7 @@ permissions:
- 'administer commerce_license'
- 'administer commerce_order'
- 'administer commerce_payment'
- 'administer commerce_subscription'
- 'administer newsletters'
- 'administer nodes'
- 'administer simplenews subscriptions'
@@ -99,7 +102,6 @@ permissions:
- 'create commerce_subscription'
- 'create content translations'
- 'create customer profile'
- 'create default commerce_order'
- 'create field_attachments'
- 'create field_company'
- 'create field_distributor'
@@ -120,6 +122,7 @@ permissions:
- 'create field_video'
- 'create field_workflow'
- 'create materiau content'
- 'create materio_order_type commerce_order'
- 'create migration workflow_transition'
- 'create note content'
- 'create simplenews_issue content'
@@ -132,7 +135,6 @@ permissions:
- 'create workflow workflow_transition'
- 'delete all revisions'
- 'delete any simplenews_issue content'
- 'delete default commerce_order'
- 'delete terms in assisted_research'
- 'delete terms in company'
- 'delete terms in showroom'
@@ -212,6 +214,7 @@ permissions:
- 'execute views_bulk_edit all'
- 'execute workflow_node_given_state_action node'
- 'execute workflow_node_next_state_action node'
- 'manage materio_order_item_type commerce_order_item'
- materio_samples_edit_any_sample
- materio_samples_edit_materiaux_titles
- 'revert all revisions'
@@ -246,7 +249,6 @@ permissions:
- 'update any member profile'
- 'update any online commerce_store'
- 'update content translations'
- 'update default commerce_order'
- 'use text format full_html'
- 'use text format wysiwyg'
- 'view all login histories'
@@ -308,7 +310,9 @@ permissions:
- 'view own profile'
- 'view own unpublished content'
- 'view printer friendly versions'
- 'view recurring commerce_order'
- 'view simplenews_issue revisions'
- 'view static revisions'
- 'view the administration theme'
- 'view thematique revisions'
- 'view user_history entities'

View File

@@ -6,7 +6,6 @@ dependencies:
- node.type.note
module:
- commerce_license
- commerce_order
- eu_cookie_compliance
- field_permissions
- flag_lists
@@ -46,4 +45,3 @@ permissions:
- 'view own flag lists'
- 'view own member profile'
- 'view printer friendly versions'
- 'view recurring commerce_order'

View File

@@ -22,6 +22,7 @@ dependencies:
- simplenews
- synonyms_autocomplete
- system
- user_history
- workflow
_core:
default_config_hash: NlAJ1uthbRfNcM-M7UCYixmpTNgZnkuQKQymrXPv7UY
@@ -33,6 +34,7 @@ permissions:
- 'access checkout'
- 'access content'
- 'access synonyms entity autocomplete'
- 'add user_history entities'
- 'create workflow workflow_transition'
- 'display eu cookie compliance popup'
- 'execute materio arbitrary graphql requests'

View File

@@ -0,0 +1,33 @@
_core:
default_config_hash: yGCsRJxhYIIfNycJr9z_9QeZXOPIZjI0Qn_3Mvp2Blk
no_change:
ignore: true
delete: ''
base_fields:
uid: true
name: true
pass: true
mail: true
timezone: true
status: true
roles: true
created: true
changed: true
access: true
login: true
init: true
langcode: true
preferred_langcode: true
preferred_admin_langcode: true
attached_fields:
changed: 1
path: 0
commerce_remote_id: 0
field_company: 1
field_member_type: 1
field_memo: 1
field_showroom: 1
archive:
directory: user-history/archive/
filename: user-history-archive
max_cardinality: 3

View File

@@ -199,6 +199,8 @@ display:
settings:
image_link: ''
image_style: medium
image_loading:
attribute: lazy
group_column: ''
group_columns: { }
group_rows: true
@@ -263,6 +265,8 @@ display:
settings:
image_link: ''
image_style: medium
image_loading:
attribute: lazy
group_column: ''
group_columns: { }
group_rows: true
@@ -1747,12 +1751,12 @@ display:
default_row_class: true
columns:
views_bulk_operations_bulk_form: views_bulk_operations_bulk_form
field_materiau_images: title
field_visuel: field_visuel
field_reference: title
nid: nid
title: title
field_reference: title
field_materiau_images: title
operations: title
is_locked: title
field_thesaurus: field_thesaurus
field_tags: field_tags
field_manufacturer: field_manufacturer
@@ -1762,6 +1766,7 @@ display:
field_samples: field_samples
field_workflow: field_workflow
field_migration: field_migration
is_locked: title
field_memo: field_memo
changed: changed
default: '-1'
@@ -1771,6 +1776,23 @@ display:
separator: ''
empty_column: false
responsive: ''
field_materiau_images:
align: ''
separator: ''
empty_column: false
responsive: ''
field_visuel:
align: ''
separator: ''
empty_column: false
responsive: ''
field_reference:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
nid:
sortable: false
default_sort_order: asc
@@ -1785,30 +1807,11 @@ display:
separator: ''
empty_column: false
responsive: ''
field_reference:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
field_materiau_images:
align: ''
separator: ''
empty_column: false
responsive: ''
operations:
align: ''
separator: ''
empty_column: false
responsive: ''
is_locked:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
field_thesaurus:
align: ''
separator: '<br/>'
@@ -1858,7 +1861,16 @@ display:
separator: ''
empty_column: false
responsive: ''
is_locked:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
field_memo:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
@@ -1871,7 +1883,7 @@ display:
empty_column: false
responsive: ''
override: true
sticky: false
sticky: true
summary: ''
empty_table: false
caption: ''
@@ -2407,6 +2419,8 @@ display:
settings:
image_link: ''
image_style: card_small
image_loading:
attribute: lazy
group_column: ''
group_columns: { }
group_rows: true
@@ -4707,6 +4721,8 @@ display:
settings:
image_link: ''
image_style: card_small
image_loading:
attribute: lazy
group_column: ''
group_columns: { }
group_rows: true
@@ -5754,12 +5770,12 @@ display:
field_tags: field_tags
field_linked_materials: field_linked_materials
field_showroom: field_showroom
field_date: field_date
field_workflow: field_workflow
field_migration: field_migration
created: created
changed: changed
field_memo: field_memo
field_date: field_date
default: '-1'
info:
views_bulk_operations_bulk_form:
@@ -5813,6 +5829,13 @@ display:
separator: ''
empty_column: false
responsive: ''
field_date:
sortable: true
default_sort_order: desc
align: ''
separator: ''
empty_column: false
responsive: ''
field_workflow:
sortable: false
default_sort_order: asc
@@ -5848,13 +5871,6 @@ display:
separator: ''
empty_column: false
responsive: ''
field_date:
sortable: true
default_sort_order: desc
align: ''
separator: ''
empty_column: false
responsive: ''
override: true
sticky: true
summary: ''
@@ -6303,6 +6319,8 @@ display:
settings:
image_link: ''
image_style: card_small
image_loading:
attribute: lazy
group_column: ''
group_columns: { }
group_rows: true

View File

@@ -920,13 +920,10 @@ display:
default_row_class: true
columns:
views_bulk_operations_bulk_form: views_bulk_operations_bulk_form
field_visuels: name
tid: name
name: name
operations: name
field_public_address: field_public_address
translation_count: translation_count
langcode_1: langcode_1
break: break
is_locked: is_locked
langcode: langcode
field_workflow: field_workflow
@@ -939,11 +936,6 @@ display:
separator: ''
empty_column: false
responsive: ''
field_visuels:
align: ''
separator: ''
empty_column: false
responsive: ''
tid:
sortable: false
default_sort_order: asc
@@ -963,21 +955,7 @@ display:
separator: ''
empty_column: false
responsive: ''
field_public_address:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
translation_count:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
langcode_1:
break:
sortable: false
default_sort_order: asc
align: ''
@@ -1020,7 +998,7 @@ display:
empty_column: false
responsive: ''
override: true
sticky: false
sticky: true
summary: ''
empty_table: false
caption: ''
@@ -2906,6 +2884,8 @@ display:
settings:
image_link: ''
image_style: medium
image_loading:
attribute: lazy
group_column: ''
group_columns: { }
group_rows: true

View File

@@ -43,6 +43,7 @@ dependencies:
- taxonomy
- telephone_formatter
- user
- user_email_verification
- views_bulk_operations
- views_data_export
id: admin_users
@@ -2835,17 +2836,15 @@ display:
multi_type: separator
separator: ', '
field_api_classes: false
status:
id: status
table: users_field_data
field: status
verified:
id: verified
table: user_email_verification
field: verified
relationship: none
group_type: group
admin_label: ''
entity_type: user
entity_field: status
plugin_id: field
label: 'Statut de l''utilisateur'
plugin_id: boolean
label: 'Email Verified'
exclude: false
alter:
alter_text: false
@@ -2886,12 +2885,67 @@ display:
hide_empty: false
empty_zero: false
hide_alter_empty: true
type: unicode-yes-no
type_custom_true: ''
type_custom_false: ''
not: false
status:
id: status
table: users_field_data
field: status
relationship: none
group_type: group
admin_label: ''
entity_type: user
entity_field: status
plugin_id: field
label: 'Statut de l''utilisateur'
exclude: false
alter:
alter_text: true
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: true
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: boolean
settings:
format: default
format_custom_false: ''
format_custom_true: ''
format: unicode-yes-no
format_custom_false: '<span style="color:red;">✖</span>'
format_custom_true: '<span style="color:green;">✔</span>'
group_column: value
group_columns: { }
group_rows: true
@@ -3013,6 +3067,444 @@ display:
separator: ', '
custom_date_format: 'Y-m-d H:i'
timezone: ''
filters:
status:
id: status
table: users_field_data
field: status
relationship: none
group_type: group
admin_label: ''
entity_type: user
entity_field: status
plugin_id: boolean
operator: '='
value: All
group: 1
exposed: true
expose:
operator_id: ''
label: Active
description: ''
use_operator: false
operator: status_op
operator_limit_selection: false
operator_list: { }
identifier: status
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
unverified: '0'
anonymous: '0'
free_user: '0'
contact_company: '0'
alpha_testeur: '0'
student: '0'
adherent: '0'
translator: '0'
admin_showroom: '0'
admin: '0'
root: '0'
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
roles_target_id:
id: roles_target_id
table: user__roles
field: roles_target_id
relationship: none
group_type: group
admin_label: ''
entity_type: user
entity_field: roles
plugin_id: user_roles
operator: or
value: { }
group: 1
exposed: true
expose:
operator_id: roles_target_id_op
label: Roles
description: ''
use_operator: false
operator: roles_target_id_op
operator_limit_selection: false
operator_list: { }
identifier: roles_target_id
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
admin: '0'
root: '0'
contact_company: '0'
adherent: '0'
free_user: '0'
premium: '0'
unverified: '0'
student: '0'
alpha_testeur: '0'
translator: '0'
admin_showroom: '0'
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: { }
reduce_duplicates: false
field_member_type_value:
id: field_member_type_value
table: user__field_member_type
field: field_member_type_value
relationship: none
group_type: group
admin_label: ''
plugin_id: list_field
operator: or
value:
all: all
0: '0'
1: '1'
2: '2'
group: 1
exposed: true
expose:
operator_id: field_member_type_value_op
label: 'Member Type'
description: ''
use_operator: false
operator: field_member_type_value_op
operator_limit_selection: false
operator_list: { }
identifier: field_member_type_value
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
unverified: '0'
anonymous: '0'
free_user: '0'
contact_company: '0'
alpha_testeur: '0'
student: '0'
adherent: '0'
translator: '0'
admin_showroom: '0'
admin: '0'
root: '0'
reduce: true
is_grouped: false
group_info:
label: ''
description: ''
identifier: ''
optional: true
widget: select
multiple: false
remember: false
default_group: All
default_group_multiple: { }
group_items: { }
reduce_duplicates: false
mail:
id: mail
table: users_field_data
field: mail
relationship: none
group_type: group
admin_label: ''
entity_type: user
entity_field: mail
plugin_id: string
operator: contains
value: ''
group: 1
exposed: true
expose:
operator_id: mail_op
label: Email
description: ''
use_operator: false
operator: mail_op
operator_limit_selection: false
operator_list: { }
identifier: mail
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
anonymous: '0'
admin: '0'
root: '0'
contact_company: '0'
adherent: '0'
free_user: '0'
premium: '0'
unverified: '0'
student: '0'
alpha_testeur: '0'
translator: '0'
admin_showroom: '0'
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: { }
uid:
id: uid
table: users_field_data
field: uid
relationship: none
group_type: group
admin_label: ''
entity_type: user
entity_field: uid
plugin_id: user_name
operator: in
value: { }
group: 1
exposed: true
expose:
operator_id: uid_op
label: Name
description: ''
use_operator: false
operator: uid_op
operator_limit_selection: false
operator_list: { }
identifier: uid
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
unverified: '0'
anonymous: '0'
free_user: '0'
contact_company: '0'
alpha_testeur: '0'
student: '0'
adherent: '0'
translator: '0'
admin_showroom: '0'
admin: '0'
root: '0'
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: { }
field_company_target_id:
id: field_company_target_id
table: user__field_company
field: field_company_target_id
relationship: none
group_type: group
admin_label: ''
plugin_id: taxonomy_index_tid
operator: or
value: { }
group: 1
exposed: true
expose:
operator_id: field_company_target_id_op
label: Company
description: ''
use_operator: false
operator: field_company_target_id_op
operator_limit_selection: false
operator_list: { }
identifier: field_company_target_id
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
unverified: '0'
anonymous: '0'
free_user: '0'
contact_company: '0'
alpha_testeur: '0'
student: '0'
adherent: '0'
translator: '0'
admin_showroom: '0'
admin: '0'
root: '0'
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: { }
reduce_duplicates: false
vid: company
type: textfield
hierarchy: false
limit: true
error_message: true
force_deepest: false
parent: 0
level_labels: ''
field_showroom_target_id:
id: field_showroom_target_id
table: user__field_showroom
field: field_showroom_target_id
relationship: none
group_type: group
admin_label: ''
plugin_id: taxonomy_index_tid
operator: or
value: { }
group: 1
exposed: true
expose:
operator_id: field_showroom_target_id_op
label: Showroom
description: ''
use_operator: false
operator: field_showroom_target_id_op
operator_limit_selection: false
operator_list: { }
identifier: field_showroom_target_id
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
unverified: '0'
anonymous: '0'
free_user: '0'
contact_company: '0'
alpha_testeur: '0'
student: '0'
adherent: '0'
translator: '0'
admin_showroom: '0'
admin: '0'
root: '0'
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: { }
reduce_duplicates: false
vid: showroom
type: textfield
hierarchy: false
limit: true
error_message: true
force_deepest: false
parent: 0
level_labels: ''
field_memo_value:
id: field_memo_value
table: user__field_memo
field: field_memo_value
relationship: none
group_type: group
admin_label: ''
plugin_id: string
operator: contains
value: ''
group: 1
exposed: true
expose:
operator_id: field_memo_value_op
label: Memo
description: ''
use_operator: false
operator: field_memo_value_op
operator_limit_selection: false
operator_list: { }
identifier: field_memo_value
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
unverified: '0'
anonymous: '0'
free_user: '0'
contact_company: '0'
alpha_testeur: '0'
student: '0'
adherent: '0'
translator: '0'
admin_showroom: '0'
admin: '0'
root: '0'
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: { }
filter_groups:
operator: AND
groups:
1: AND
style:
type: table
options:
@@ -3031,6 +3523,7 @@ display:
access: access
created: created
field_memo: field_memo
verified: verified
status: status
record_id: record_id
role_expire_expiry_data: role_expire_expiry_data
@@ -3109,6 +3602,13 @@ display:
separator: ''
empty_column: false
responsive: ''
verified:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
status:
sortable: false
default_sort_order: asc
@@ -3131,7 +3631,7 @@ display:
empty_column: false
responsive: ''
override: true
sticky: false
sticky: true
summary: ''
empty_table: false
caption: ''
@@ -3143,6 +3643,8 @@ display:
style: false
row: false
fields: false
filters: false
filter_groups: false
display_description: ''
display_extenders:
views_ef_fieldset:
@@ -4334,7 +4836,7 @@ display:
empty_column: false
responsive: ''
override: true
sticky: false
sticky: true
summary: ''
empty_table: false
caption: ''
@@ -5554,7 +6056,7 @@ display:
empty_column: false
responsive: ''
override: true
sticky: false
sticky: true
summary: ''
empty_table: false
caption: ''
@@ -6934,7 +7436,7 @@ display:
empty_column: false
responsive: ''
override: true
sticky: false
sticky: true
summary: ''
empty_table: false
caption: ''
@@ -8015,7 +8517,7 @@ display:
empty_column: false
responsive: ''
override: true
sticky: false
sticky: true
summary: ''
empty_table: false
caption: ''

View File

@@ -361,6 +361,8 @@ display:
settings:
image_link: ''
image_style: article_card_medium
image_loading:
attribute: lazy
group_column: ''
group_columns: { }
group_rows: true

View File

@@ -469,7 +469,7 @@ display:
click_sort_column: value
type: timestamp
settings:
date_format: custom
date_format: short
custom_date_format: 'M jS Y H:i:s'
timezone: ''
group_column: value
@@ -536,7 +536,7 @@ display:
click_sort_column: value
type: timestamp
settings:
date_format: custom
date_format: short
custom_date_format: 'M jS Y H:i:s'
timezone: ''
group_column: value
@@ -625,7 +625,7 @@ display:
type: basic
options:
submit_button: Apply
reset_button: false
reset_button: true
reset_button_label: Reset
exposed_sorts_label: 'Sort by'
expose_sort_order: true
@@ -698,6 +698,58 @@ display:
default_group: All
default_group_multiple: { }
group_items: { }
mail:
id: mail
table: users_field_data
field: mail
relationship: uid
group_type: group
admin_label: ''
entity_type: user
entity_field: mail
plugin_id: string
operator: contains
value: ''
group: 1
exposed: true
expose:
operator_id: mail_op
label: Courriel
description: ''
use_operator: false
operator: mail_op
operator_limit_selection: false
operator_list: { }
identifier: mail
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
unverified: '0'
anonymous: '0'
free_user: '0'
contact_company: '0'
alpha_testeur: '0'
student: '0'
adherent: '0'
translator: '0'
admin_showroom: '0'
admin: '0'
root: '0'
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: { }
state:
id: state
table: commerce_subscription
@@ -741,6 +793,122 @@ display:
default_group: All
default_group_multiple: { }
group_items: { }
starts:
id: starts
table: commerce_subscription
field: starts
relationship: none
group_type: group
admin_label: ''
entity_type: commerce_subscription
entity_field: starts
plugin_id: date
operator: between
value:
min: ''
max: ''
value: ''
type: date
group: 1
exposed: true
expose:
operator_id: starts_op
label: Starts
description: ''
use_operator: false
operator: starts_op
operator_limit_selection: false
operator_list: { }
identifier: starts
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
unverified: '0'
anonymous: '0'
free_user: '0'
contact_company: '0'
alpha_testeur: '0'
student: '0'
adherent: '0'
translator: '0'
admin_showroom: '0'
admin: '0'
root: '0'
min_placeholder: 'AAAA-MM-JJ HH:MM:SS'
max_placeholder: 'AAAA-MM-JJ HH:MM:SS'
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: { }
ends:
id: ends
table: commerce_subscription
field: ends
relationship: none
group_type: group
admin_label: ''
entity_type: commerce_subscription
entity_field: ends
plugin_id: date
operator: between
value:
min: ''
max: ''
value: ''
type: date
group: 1
exposed: true
expose:
operator_id: ends_op
label: Ends
description: ''
use_operator: false
operator: ends_op
operator_limit_selection: false
operator_list: { }
identifier: ends
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
unverified: '0'
anonymous: '0'
free_user: '0'
contact_company: '0'
alpha_testeur: '0'
student: '0'
adherent: '0'
translator: '0'
admin_showroom: '0'
admin: '0'
root: '0'
min_placeholder: 'AAAA-MM-JJ HH:MM:SS'
max_placeholder: 'AAAA-MM-JJ HH:MM:SS'
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: { }
filter_groups:
operator: AND
groups:
@@ -854,7 +1022,70 @@ display:
required: false
header: { }
footer: { }
display_extenders: { }
display_extenders:
views_ef_fieldset:
views_ef_fieldset:
enabled: 0
options:
sort:
root:
container_type: details
title: Filtres
description: ''
open: '1'
weight: '0'
id: root
pid: ''
depth: '0'
type: container
uid:
weight: '-6'
id: uid
pid: root
depth: '1'
type: filter
state:
weight: '-6'
id: state
pid: root
depth: '1'
type: filter
submit:
weight: '-6'
id: submit
pid: root
depth: '1'
type: buttons
container-0:
container_type: details
title: 'Container 0'
description: ''
weight: '-5'
open: 0
id: container-0
pid: root
depth: '1'
type: container
container-1:
container_type: details
title: 'Container 1'
description: ''
weight: '-4'
open: 0
id: container-1
pid: root
depth: '1'
type: container
container-2:
container_type: details
title: 'Container 2'
description: ''
weight: '-3'
open: 0
id: container-2
pid: root
depth: '1'
type: container
cache_metadata:
max-age: -1
contexts:

View File

@@ -82,6 +82,8 @@ display:
settings:
image_link: ''
image_style: card_small
image_loading:
attribute: lazy
group_column: ''
group_columns: { }
group_rows: true

View File

@@ -10,8 +10,10 @@ dependencies:
- commerce
- commerce_license
- options
- pagerer
- state_machine
- user
- views_conditional
id: licences
label: Licences
module: views
@@ -418,7 +420,74 @@ display:
entity_field: expires
plugin_id: field
label: Expire
exclude: false
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: true
element_wrapper_type: ''
element_wrapper_class: ''
element_default_classes: true
empty: 'no expiration'
hide_empty: false
empty_zero: true
hide_alter_empty: true
click_sort_column: value
type: timestamp
settings:
date_format: medium
custom_date_format: ''
timezone: ''
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
expires_1:
id: expires_1
table: commerce_license
field: expires
relationship: none
group_type: group
admin_label: ''
entity_type: commerce_license
entity_field: expires
plugin_id: field
label: 'Expire year'
exclude: true
alter:
alter_text: false
text: ''
@@ -461,7 +530,7 @@ display:
click_sort_column: value
type: timestamp
settings:
date_format: medium
date_format: html_year
custom_date_format: ''
timezone: ''
group_column: value
@@ -474,6 +543,63 @@ display:
multi_type: separator
separator: ', '
field_api_classes: false
views_conditional_field:
id: views_conditional_field
table: views_conditional
field: views_conditional_field
relationship: none
group_type: group
admin_label: ''
plugin_id: views_conditional_field
label: Expiration
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
if: expires_1
condition: eq
equalto: '1970'
then: 'no expiration'
then_translate: 1
or: '{{ expires }}'
or_translate: 1
strip_tags: 0
license_role_target_id:
id: license_role_target_id
table: commerce_license__license_role
@@ -540,28 +666,26 @@ display:
separator: ', '
field_api_classes: false
pager:
type: mini
type: pagerer
options:
offset: 0
items_per_page: 20
total_pages: null
id: 0
tags:
next:
previous:
items_per_page: 50
preset: default
id: '0'
total_pages: ''
expose:
items_per_page: false
items_per_page: 0
items_per_page_label: 'Éléments par page'
items_per_page_options: '5, 10, 25, 50'
items_per_page_options_all: false
items_per_page_options_all: 0
items_per_page_options_all_label: '- Tout -'
offset: false
offset: 0
offset_label: Décalage
exposed_form:
type: basic
options:
submit_button: Appliquer
reset_button: false
reset_button: true
reset_button_label: Réinitialiser
exposed_sorts_label: 'Trier par'
expose_sort_order: true
@@ -589,9 +713,126 @@ display:
plugin_id: commerce_entity_bundle
value:
role: role
group: 1
expose:
operator_limit_selection: false
operator_list: { }
granted:
id: granted
table: commerce_license
field: granted
relationship: none
group_type: group
admin_label: ''
entity_type: commerce_license
entity_field: granted
plugin_id: date
operator: between
value:
min: ''
max: ''
value: ''
type: date
group: 1
exposed: true
expose:
operator_id: granted_op
label: Accordé(e)
description: ''
use_operator: false
operator: granted_op
operator_limit_selection: false
operator_list: { }
identifier: granted
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
unverified: '0'
anonymous: '0'
free_user: '0'
contact_company: '0'
alpha_testeur: '0'
student: '0'
adherent: '0'
translator: '0'
admin_showroom: '0'
admin: '0'
root: '0'
min_placeholder: 'AAAA-MM-JJ HH:MM:SS'
max_placeholder: 'AAAA-MM-JJ HH:MM:SS'
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: { }
expires:
id: expires
table: commerce_license
field: expires
relationship: none
group_type: group
admin_label: ''
entity_type: commerce_license
entity_field: expires
plugin_id: date
operator: between
value:
min: ''
max: ''
value: ''
type: date
group: 1
exposed: true
expose:
operator_id: expires_op
label: Expire
description: ''
use_operator: false
operator: expires_op
operator_limit_selection: false
operator_list: { }
identifier: expires
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
unverified: '0'
anonymous: '0'
free_user: '0'
contact_company: '0'
alpha_testeur: '0'
student: '0'
adherent: '0'
translator: '0'
admin_showroom: '0'
admin: '0'
root: '0'
min_placeholder: 'AAAA-MM-JJ HH:MM:SS'
max_placeholder: 'AAAA-MM-JJ HH:MM:SS'
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: { }
product_variation:
id: product_variation
table: commerce_license
@@ -701,6 +942,62 @@ display:
default_group: All
default_group_multiple: { }
group_items: { }
mail:
id: mail
table: users_field_data
field: mail
relationship: uid
group_type: group
admin_label: ''
entity_type: user
entity_field: mail
plugin_id: string
operator: contains
value: ''
group: 1
exposed: true
expose:
operator_id: mail_op
label: Courriel
description: ''
use_operator: false
operator: mail_op
operator_limit_selection: false
operator_list: { }
identifier: mail
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
unverified: '0'
anonymous: '0'
free_user: '0'
contact_company: '0'
alpha_testeur: '0'
student: '0'
adherent: '0'
translator: '0'
admin_showroom: '0'
admin: '0'
root: '0'
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: { }
filter_groups:
operator: AND
groups:
1: AND
style:
type: table
options:
@@ -710,13 +1007,15 @@ display:
columns:
uid: uid
operations: uid
granted: granted
created: created
expires: expires
state: state
product_variation: product_variation
state: state
created: created
granted: granted
expires: expires
expires_1: expires_1
views_conditional_field: views_conditional_field
license_role_target_id: license_role_target_id
default: expires
default: granted
info:
uid:
sortable: false
@@ -730,22 +1029,8 @@ display:
separator: ''
empty_column: false
responsive: ''
granted:
sortable: true
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
created:
sortable: true
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
expires:
sortable: true
product_variation:
sortable: false
default_sort_order: asc
align: ''
separator: ''
@@ -758,13 +1043,39 @@ display:
separator: ''
empty_column: false
responsive: ''
product_variation:
created:
sortable: true
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
granted:
sortable: true
default_sort_order: desc
align: ''
separator: ''
empty_column: false
responsive: ''
expires:
sortable: true
default_sort_order: desc
align: ''
separator: ''
empty_column: false
responsive: ''
expires_1:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
views_conditional_field:
align: ''
separator: ''
empty_column: false
responsive: ''
license_role_target_id:
sortable: false
default_sort_order: asc
@@ -788,10 +1099,126 @@ display:
distinct: false
replica: false
query_tags: { }
relationships: { }
header: { }
relationships:
uid:
id: uid
table: commerce_license
field: uid
relationship: none
group_type: group
admin_label: Utilisateur
entity_type: commerce_license
entity_field: uid
plugin_id: standard
required: true
header:
result:
id: result
table: views
field: result
relationship: none
group_type: group
admin_label: ''
plugin_id: result
empty: false
content: 'Affichage de @start à @end sur @total'
footer: { }
display_extenders: { }
display_extenders:
views_ef_fieldset:
views_ef_fieldset:
enabled: 0
options:
sort:
root:
container_type: details
title: Filtres
description: ''
open: '1'
weight: '0'
id: root
pid: ''
depth: '0'
type: container
expires:
weight: '-10'
id: expires
pid: root
depth: '1'
type: filter
product_variation:
weight: '-10'
id: product_variation
pid: root
depth: '1'
type: filter
state:
weight: '-10'
id: state
pid: root
depth: '1'
type: filter
mail:
weight: '-10'
id: mail
pid: root
depth: '1'
type: filter
submit:
weight: '-10'
id: submit
pid: root
depth: '1'
type: buttons
container-0:
container_type: details
title: 'Container 0'
description: ''
weight: '-9'
open: 0
id: container-0
pid: root
depth: '1'
type: container
container-1:
container_type: details
title: 'Container 1'
description: ''
weight: '-8'
open: 0
id: container-1
pid: root
depth: '1'
type: container
container-2:
container_type: details
title: 'Container 2'
description: ''
weight: '-7'
open: 0
id: container-2
pid: root
depth: '1'
type: container
container-3:
container_type: details
title: 'Container 3'
description: ''
weight: '-6'
open: 0
id: container-3
pid: root
depth: '1'
type: container
container-4:
container_type: details
title: 'Container 4'
description: ''
weight: '-5'
open: 0
id: container-4
pid: root
depth: '1'
type: container
cache_metadata:
max-age: -1
contexts:
@@ -814,7 +1241,7 @@ display:
type: normal
title: Licences
description: ''
weight: 3
weight: -44
expanded: false
menu_name: editors
parent: editors_menus.commerce

View File

@@ -140,6 +140,70 @@ display:
multi_type: separator
separator: ', '
field_api_classes: false
mail:
id: mail
table: users_field_data
field: mail
relationship: uid
group_type: group
admin_label: ''
entity_type: user
entity_field: mail
plugin_id: field
label: Email
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: true
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: basic_string
settings: { }
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
hostname:
id: hostname
table: login_history
@@ -316,7 +380,7 @@ display:
type: basic
options:
submit_button: Apply
reset_button: false
reset_button: true
reset_button_label: Reset
exposed_sorts_label: 'Sort by'
expose_sort_order: true
@@ -332,7 +396,59 @@ display:
empty: { }
sorts: { }
arguments: { }
filters: { }
filters:
mail:
id: mail
table: users_field_data
field: mail
relationship: uid
group_type: group
admin_label: ''
entity_type: user
entity_field: mail
plugin_id: string
operator: contains
value: ''
group: 1
exposed: true
expose:
operator_id: mail_op
label: Email
description: ''
use_operator: false
operator: mail_op
operator_limit_selection: false
operator_list: { }
identifier: mail
required: false
remember: false
multiple: false
remember_roles:
authenticated: authenticated
unverified: '0'
anonymous: '0'
free_user: '0'
contact_company: '0'
alpha_testeur: '0'
student: '0'
adherent: '0'
translator: '0'
admin_showroom: '0'
admin: '0'
root: '0'
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: { }
style:
type: table
options:
@@ -342,6 +458,7 @@ display:
columns:
login: login
name: name
mail: mail
hostname: hostname
one_time: one_time
user_agent: user_agent
@@ -361,6 +478,13 @@ display:
separator: ''
empty_column: false
responsive: ''
mail:
sortable: false
default_sort_order: asc
align: ''
separator: ''
empty_column: false
responsive: ''
hostname:
sortable: true
default_sort_order: asc
@@ -415,12 +539,60 @@ display:
required: false
header: { }
footer: { }
display_extenders: { }
display_extenders:
views_ef_fieldset:
views_ef_fieldset:
enabled: 0
options:
sort:
root:
container_type: details
title: Filters
description: ''
open: '1'
weight: '0'
id: root
pid: ''
depth: '0'
type: container
mail:
weight: '-4'
id: mail
pid: root
depth: '1'
type: filter
submit:
weight: '-4'
id: submit
pid: root
depth: '1'
type: buttons
container-0:
container_type: details
title: 'Container 0'
description: ''
weight: '-3'
open: 0
id: container-0
pid: root
depth: '1'
type: container
container-1:
container_type: details
title: 'Container 1'
description: ''
weight: '-2'
open: 0
id: container-1
pid: root
depth: '1'
type: container
cache_metadata:
max-age: -1
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- user.permissions
tags: { }
@@ -438,6 +610,7 @@ display:
contexts:
- 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
- user.permissions
tags: { }

View File

@@ -8,7 +8,6 @@ dependencies:
- field.storage.taxonomy_term.field_public_phone
- field.storage.taxonomy_term.field_visuels
- field.storage.taxonomy_term.field_website
- image.style.card_big
- image.style.home_showroom
- system.menu.header
- taxonomy.vocabulary.showroom
@@ -584,6 +583,8 @@ display:
settings:
image_link: ''
image_style: home_showroom
image_loading:
attribute: lazy
group_column: ''
group_columns: { }
group_rows: true
@@ -1131,7 +1132,9 @@ display:
type: image
settings:
image_link: ''
image_style: card_big
image_style: home_showroom
image_loading:
attribute: lazy
group_column: ''
group_columns: { }
group_rows: true

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,20 +1,20 @@
<?php
/**
* This file is included very early. See autoload.files in composer.json and
* https://getcomposer.org/doc/04-schema.md#files
*/
use Dotenv\Dotenv;
use Dotenv\Exception\InvalidPathException;
/**
* Load any .env file. See /.env.example.
*/
$dotenv = new Dotenv(__DIR__);
$dotenv = Dotenv::createImmutable(__DIR__);
try {
$dotenv->load();
}
catch (InvalidPathException $e) {
// Do nothing. Production environments rarely use .env files.
}
}

6
package-lock.json generated
View File

@@ -11351,6 +11351,12 @@
"wildcard": "^2.0.0"
}
},
"webpack-shell-plugin-next": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/webpack-shell-plugin-next/-/webpack-shell-plugin-next-2.2.2.tgz",
"integrity": "sha512-2HeC1e0cCvTgA3SD4XPAD69DnILM92mCschrtKdlLRORHCR+oG7xnibQMkVySxTAYWTQOcBRHlqa88x4syWwhQ==",
"dev": true
},
"webpack-sources": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",

View File

@@ -88,6 +88,7 @@
"webpack-bundle-analyzer": "^4.4.0",
"webpack-cli": "^4.2.0",
"webpack-extraneous-file-cleanup-plugin": "^2.0.0",
"webpack-merge": "^5.4.0"
"webpack-merge": "^5.4.0",
"webpack-shell-plugin-next": "^2.2.2"
}
}

View File

@@ -0,0 +1,98 @@
diff --git a/src/Plugin/GraphQL/DataProducer/Entity/EntityLoad.php b/src/Plugin/GraphQL/DataProducer/Entity/EntityLoad.php
index 867a28c..386b2b3 100644
--- a/src/Plugin/GraphQL/DataProducer/Entity/EntityLoad.php
+++ b/src/Plugin/GraphQL/DataProducer/Entity/EntityLoad.php
@@ -172,8 +172,10 @@ class EntityLoad extends DataProducerPluginBase implements ContainerFactoryPlugi
// Get the correct translation.
if (isset($language) && $language !== $entity->language()->getId() && $entity instanceof TranslatableInterface) {
- $entity = $entity->getTranslation($language);
- $entity->addCacheContexts(["static:language:{$language}"]);
+ if ($entity->hasTranslation($language)) {
+ $entity = $entity->getTranslation($language);
+ $entity->addCacheContexts(["static:language:{$language}"]);
+ }
}
// Check if the passed user (or current user if none is passed) has access
diff --git a/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadByUuid.php b/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadByUuid.php
index 10e2d40..e4e6ed0 100644
--- a/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadByUuid.php
+++ b/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadByUuid.php
@@ -165,8 +165,10 @@ class EntityLoadByUuid extends DataProducerPluginBase implements ContainerFactor
// Get the correct translation.
if (isset($language) && $language != $entity->language()->getId() && $entity instanceof TranslatableInterface) {
- $entity = $entity->getTranslation($language);
- $entity->addCacheContexts(["static:language:{$language}"]);
+ if ($entity->hasTranslation($language)) {
+ $entity = $entity->getTranslation($language);
+ $entity->addCacheContexts(["static:language:{$language}"]);
+ }
}
// Check if the passed user (or current user if none is passed) has access
diff --git a/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadMultiple.php b/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadMultiple.php
index 2a0259c..27a19e5 100644
--- a/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadMultiple.php
+++ b/src/Plugin/GraphQL/DataProducer/Entity/EntityLoadMultiple.php
@@ -172,8 +172,10 @@ class EntityLoadMultiple extends DataProducerPluginBase implements ContainerFact
}
if (isset($language) && $language !== $entities[$id]->language()->getId() && $entities[$id] instanceof TranslatableInterface) {
- $entities[$id] = $entities[$id]->getTranslation($language);
- $entities[$id]->addCacheContexts(["static:language:{$language}"]);
+ if ($entities[$id]->hasTranslation($language)) {
+ $entities[$id] = $entities[$id]->getTranslation($language);
+ $entities[$id]->addCacheContexts(["static:language:{$language}"]);
+ }
}
if ($access) {
diff --git a/src/Plugin/GraphQL/DataProducer/Entity/EntityTranslation.php b/src/Plugin/GraphQL/DataProducer/Entity/EntityTranslation.php
index 633bdc2..3773a9b 100644
--- a/src/Plugin/GraphQL/DataProducer/Entity/EntityTranslation.php
+++ b/src/Plugin/GraphQL/DataProducer/Entity/EntityTranslation.php
@@ -101,7 +101,7 @@ class EntityTranslation extends DataProducerPluginBase implements ContainerFacto
* @return \Drupal\Core\Entity\EntityInterface|null
*/
public function resolve(EntityInterface $entity, $language, ?bool $access, ?AccountInterface $accessUser, ?string $accessOperation) {
- if ($entity instanceof TranslatableInterface && $entity->isTranslatable()) {
+ if ($entity instanceof TranslatableInterface && $entity->isTranslatable() && $entity->hasTranslation($language)) {
$entity = $entity->getTranslation($language);
$entity->addCacheContexts(["static:language:{$language}"]);
// Check if the passed user (or current user if none is passed) has access
diff --git a/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php b/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php
index 10ea4e6..1eef22a 100644
--- a/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php
+++ b/src/Plugin/GraphQL/DataProducer/Routing/RouteEntity.php
@@ -126,8 +126,10 @@ class RouteEntity extends DataProducerPluginBase implements ContainerFactoryPlug
// Get the correct translation.
if (isset($language) && $language != $entity->language()->getId() && $entity instanceof TranslatableInterface) {
- $entity = $entity->getTranslation($language);
- $entity->addCacheContexts(["static:language:{$language}"]);
+ if ($entity->hasTranslation($language)) {
+ $entity = $entity->getTranslation($language);
+ $entity->addCacheContexts(["static:language:{$language}"]);
+ }
}
$access = $entity->access('view', NULL, TRUE);
diff --git a/src/Plugin/GraphQL/DataProducer/Taxonomy/TaxonomyLoadTree.php b/src/Plugin/GraphQL/DataProducer/Taxonomy/TaxonomyLoadTree.php
index 1bcd624..8b2caf2 100644
--- a/src/Plugin/GraphQL/DataProducer/Taxonomy/TaxonomyLoadTree.php
+++ b/src/Plugin/GraphQL/DataProducer/Taxonomy/TaxonomyLoadTree.php
@@ -175,8 +175,10 @@ class TaxonomyLoadTree extends DataProducerPluginBase implements ContainerFactor
$context->addCacheableDependency($entities[$id]);
if (isset($language) && $language !== $entities[$id]->language()->getId() && $entities[$id] instanceof TranslatableInterface) {
- $entities[$id] = $entities[$id]->getTranslation($language);
- $entities[$id]->addCacheContexts(["static:language:{$language}"]);
+ if ($entities[$id]->hasTranslation($language)) {
+ $entities[$id] = $entities[$id]->getTranslation($language);
+ $entities[$id]->addCacheContexts(["static:language:{$language}"]);
+ }
}
if ($access) {

View File

@@ -32,6 +32,11 @@ AddEncoding gzip svgz
php_value assert.active 0
</IfModule>
# PHP 8, Apache 1 and 2.
<IfModule mod_php.c>
php_value assert.active 0
</IfModule>
# Requires mod_expires to be enabled.
<IfModule mod_expires.c>
# Enable expirations.

View File

@@ -167,10 +167,13 @@ type Showroom {
id: Int!
uuid: String!
name: String!
description: String
images: [Image]
email: String
address: Address
country: Country
phone: String
website: Link
}
type Company {
@@ -247,6 +250,8 @@ type Image {
style_articlecardmedium_url: String
style_hd: ImageStyle
style_hd_url: String
style_showroomhome: ImageStyle
style_showroomhome_url: String
}
type ImageStyle {

View File

@@ -26,6 +26,10 @@ extend type Query {
thematique(id: Int!, lang: String): Thematique
}
extend type Query {
allshowrooms(lang: String): [Showroom]
}
extend type Query {
showroom(id: Int!, lang: String): Showroom
}

View File

@@ -902,6 +902,22 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase {
})
));
$registry->addFieldResolver('Image', 'style_showroomhome',
$builder->produce('image_derivative')
->map('entity', $builder->fromParent())
->map('style', $builder->fromValue('home_showroom'))
);
$registry->addFieldResolver('Image', 'style_showroomhome_url',
$builder->compose(
$builder->produce('image_derivative')
->map('entity', $builder->fromParent())
->map('style', $builder->fromValue('home_showroom')),
$builder->callback(function($parent, $args){
return $parent['url'];
})
));
}
// __ ___ _ _ _ _
@@ -979,11 +995,31 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase {
// \__ \ ' \/ _ \ V V / '_/ _ \/ _ \ ' \
// |___/_||_\___/\_/\_/|_| \___/\___/_|_|_|
protected function addShowroom(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
$registry->addFieldResolver('Query', 'allshowrooms',
$builder->compose(
$builder->callback(function($parent, $arg){
$entity_storage = \Drupal::entityTypeManager()->getStorage('taxonomy_term');
$query = $entity_storage->getQuery()
->condition('vid', ['showroom'], 'IN')
->sort('tid')
->accessCheck(TRUE);
$results = $query->execute();
return $results;
}),
$builder->produce('entity_load_multiple')
->map('type', $builder->fromValue('taxonomy_term'))
->map('ids', $builder->fromParent())
->map('language', $builder->fromArgument('lang'))
)
);
$registry->addFieldResolver('Query', 'showroom',
$builder->produce('entity_load')
->map('type', $builder->fromValue('taxonomy_term'))
->map('bundles', $builder->fromValue(['showroom']))
->map('id', $builder->fromArgument('id'))
->map('language', $builder->fromArgument('lang'))
);
$registry->addFieldResolver('Showroom', 'id',
@@ -1001,6 +1037,12 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase {
->map('entity', $builder->fromParent())
);
$registry->addFieldResolver('Showroom', 'description',
$builder->callback(function($parent, $args){
return $parent->getDescription();
})
);
$registry->addFieldResolver('Showroom', 'email',
$builder->produce('property_path')
->map('type', $builder->fromValue('entity:taxonomy_term'))
@@ -1022,6 +1064,26 @@ class MaterioSchemaExtension extends SdlSchemaExtensionPluginBase {
->map('path', $builder->fromValue('field_public_phone.value'))
);
$registry->addFieldResolver('Showroom', 'images',
$builder->produce('entity_reference')
->map('entity', $builder->fromParent())
->map('field', $builder->fromValue('field_visuels'))
);
$registry->addFieldResolver('Showroom', 'website',
$builder->produce('property_path')
->map('type', $builder->fromValue('entity:taxonomy_term'))
->map('value', $builder->fromParent())
->map('path', $builder->fromValue('field_website'))
);
$registry->addFieldResolver('Showroom', 'country',
$builder->produce('property_path')
->map('type', $builder->fromValue('entity:taxonomy_term'))
->map('value', $builder->fromParent())
->map('path', $builder->fromValue('field_public_address'))
);
}
// _ _ _

View File

@@ -43,8 +43,62 @@ class Base extends ControllerBase {
'uuids' => [],
'nids' => []
];
// ,---.| ,---.
// |---'|---.,---.,---.,---.,---. | |. .,---.,---., .
// | | || ,---|`---.|---' | || ||---'| | |
// ` ` '` `---^`---'`---' `---\`---'`---'` `---|
// `---'
// (to match exact materials names (like "wood-skin"))
$this->phrase_query = $this->index->query(['offset'=>0,'limit'=>10000]);
// set parse mode and conjunction
$parse_mode = \Drupal::service('plugin.manager.search_api.parse_mode')
->createInstance('phrase');
$parse_mode->setConjunction('AND');
$this->phrase_query->setParseMode($parse_mode);
// Set fulltext search keywords and fields.
if ($this->keys) {
$this->phrase_query->keys(implode(' ', $this->keys));
}
$this->phrase_query->setFulltextFields(['title']);
// Restrict the search to specific languages.
$this->phrase_query->setLanguages([$lang]);
// AND QUERY
// Do paging.
// $this->and_query->range($this->offset, $this->limit);
// retrieve all results
// $this->and_query->range(0, -1);
// Add sorting.
$this->phrase_query->sort('search_api_relevance', 'DESC');
// Set one or more tags for the query.
// @see hook_search_api_query_TAG_alter()
// @see hook_search_api_results_TAG_alter()
$this->phrase_query->addTag('materio_sapi_search_phrase_query');
$phrase_results = $this->phrase_query->execute();
foreach ($phrase_results as $result) {
$this->results['uuids'][] = $result->getField('uuid')->getValues()[0];
$this->results['nids'][] = $result->getField('nid')->getValues()[0];
}
// ,---. | ,---.
// |---|,---.,---| | |. .,---.,---., .
// | || || | | || ||---'| | |
// ` '` '`---' `---\`---'`---'` `---|
// `---'
$this->and_query = $this->index->query(['offset'=>0,'limit'=>10000]);
// set parse mode and conjunction
$parse_mode = \Drupal::service('plugin.manager.search_api.parse_mode')
@@ -53,15 +107,18 @@ class Base extends ControllerBase {
$this->and_query->setParseMode($parse_mode);
// Set fulltext search keywords and fields.
if ($this->keys) {
$this->and_query->keys($this->keys);
$this->and_query->keys(implode(' ', $this->keys));
}
// in case of term id provided restrict the keys to taxo fields
if ($this->term) {
if ($this->terms && is_array($this->terms) && count($this->terms)) {
$term_conditions = $this->and_query->createConditionGroup('OR');
$term = (int) $this->term;
foreach (['tag_tid', 'thesaurus_tid'] as $field) {
$term_conditions->addCondition($field, $term);
// $term = (int) $this->term;
foreach ($this->terms as $term) {
$tid = $term->value;
foreach (['tag_tid', 'thesaurus_tid'] as $field) {
$term_conditions->addCondition($field, (int) $tid);
}
}
$this->and_query->addConditionGroup($term_conditions);
@@ -138,16 +195,24 @@ class Base extends ControllerBase {
$and_results = $this->and_query->execute();
foreach ($and_results as $result) {
$this->results['uuids'][] = $result->getField('uuid')->getValues()[0];
$this->results['nids'][] = $result->getField('nid')->getValues()[0];
// !! have to remove duplicates from phrase query
$nid = $result->getField('nid')->getValues()[0];
if ( !in_array($nid, $this->results['nids']) ) {
$this->results['uuids'][] = $result->getField('uuid')->getValues()[0];
$this->results['nids'][] = $result->getField('nid')->getValues()[0];
}
}
$this->exactematch_count = count($this->results['nids']);
//
// OR QUERY
//
// ,---. ,---.
// | |,---. | |. .,---.,---., .
// | || | || ||---'| | |
// `---'` `---\`---'`---'` `---|
// `---'
$this->or_query = $this->index->query(['offset'=>0,'limit'=>10000]);
// Change the parse mode for the search.
@@ -163,17 +228,18 @@ class Base extends ControllerBase {
// Set fulltext search keywords and fields.
if ($this->keys) {
$this->or_query->keys($this->keys);
$this->or_query->keys(implode(' ', $this->keys));
}
// exclude results from and_query
$exclude_and_results_conditions = $this->or_query->createConditionGroup('AND');
foreach ($this->results['nids'] as $nid) {
$exclude_and_results_conditions->addCondition('nid', $nid, '<>');
}
$this->or_query->addConditionGroup($exclude_and_results_conditions);
// // exclude results from previous and_query
// !! trigering solr "too many boolean clauses" error
// $exclude_and_results_conditions = $this->or_query->createConditionGroup('AND');
// foreach ($this->results['nids'] as $nid) {
// $exclude_and_results_conditions->addCondition('nid', $nid, '<>');
// }
// $this->or_query->addConditionGroup($exclude_and_results_conditions);
if (preg_match_all('/[WTRPCMFGSO]\d{4}/i', $this->keys, $matches)) {
if (preg_match_all('/[WTRPCMFGSO]\d{4}/i', implode(' ', $this->keys), $matches)) {
// in case we search for material references like W0117
$ref_conditions = $this->or_query->createConditionGroup('OR');
foreach ($matches[0] as $key => $value) {
@@ -223,8 +289,12 @@ class Base extends ControllerBase {
$or_results = $this->or_query->execute();
foreach ($or_results as $result) {
$this->results['uuids'][] = $result->getField('uuid')->getValues()[0];
$this->results['nids'][] = $result->getField('nid')->getValues()[0];
$nid = $result->getField('nid')->getValues()[0];
// !! have to remove duplicates instead of $exclude_and_results_conditions (solr too many boolean clauses)
if ( !in_array($nid, $this->results['nids']) ) {
$this->results['uuids'][] = $result->getField('uuid')->getValues()[0];
$this->results['nids'][] = $nid;
}
}
// todo you may like / more like this
@@ -261,11 +331,15 @@ class Base extends ControllerBase {
$this->keys = $request->query->get('keys');
if($this->keys){
$this->keys = mb_strtolower($this->keys);
// $this->keys = Tags::explode($this->keys);
\Drupal::logger('materio_sapi')->notice($this->keys);
$this->keys = Tags::explode($this->keys);
// \Drupal::logger('materio_sapi')->notice($this->keys);
}
// get the exacte term id in case of autocomplete
$this->term = $request->query->get('term');
// $this->terms = $request->query->get('terms');
$t = $request->query->get('terms');
// $this->terms = strlen($t) ? explode(',', $t) : null;
$this->terms = strlen($t) ? json_decode($t) : null;
// get the filters of advanced search
$f = $request->query->get('filters');
$this->filters = strlen($f) ? explode(',', $f) : null;
@@ -294,8 +368,8 @@ class Base extends ControllerBase {
$this->sapiQuery();
$resp['keys'] = $this->keys;
$resp['term'] = $this->term;
$resp['keys'] = json_encode($this->keys);
$resp['terms'] = json_encode($this->terms);
$resp['filters'] = $this->filters;
// $resp['count'] = $this->results->getResultCount();
$resp['count'] = count($this->results['nids']);
@@ -306,7 +380,7 @@ class Base extends ControllerBase {
));
if ($this->keys) {
$resp['infos'] .= t(' keywords @keys', array(
"@keys" => $this->keys
"@keys" => implode(', ', $this->keys)
));
}
if ($this->keys && $this->filters) {
@@ -382,7 +456,7 @@ class Base extends ControllerBase {
];
if ($this->keys) {
$resp['#title'] = $this->keys;
$resp['#title'] = implode(', ', $this->keys);
// $this->sapiQuery();

View File

@@ -23,10 +23,9 @@ class FormAutocomplete extends ControllerBase {
public function autocomplete(Request $request) {
// Get the typed string from the URL, if it exists.
if ($input = $request->query->get('q')) {
$typed_string = Tags::explode($input);
// $typed_string = Unicode::strtolower(array_pop($typed_string));
$typed_string = mb_strtolower(array_pop($typed_string));
// \Drupal::logger('materio_sapi')->notice($typed_string);
$tag_list = Tags::explode($input); // does not work with space separated words
// $tag_list = explode(" ", $input);
$typed_string = !empty($tag_list) ? mb_strtolower(array_pop($tag_list)) : '';
$index = Index::load('autocomplete');
$query = $index->query();
@@ -55,6 +54,21 @@ class FormAutocomplete extends ControllerBase {
// Add sorting.
$query->sort('search_api_relevance', 'DESC');
// remove thesaurus tags without parents (main categories)
$parents_conditions = $query->createConditionGroup('OR');
// tags
$tags_conditions = $query->createConditionGroup('AND');
$tags_conditions->addCondition('vid', 'tags');
$parents_conditions->addConditionGroup($tags_conditions);
// OR thesaurus & has parent
$thesaurus_conditions = $query->createConditionGroup('AND');
$thesaurus_conditions->addCondition('vid', 'thesaurus');
$thesaurus_conditions->addCondition('parent', 0, '<>');
$parents_conditions->addConditionGroup($thesaurus_conditions);
$query->addConditionGroup($parents_conditions);
// Set one or more tags for the query.
// @see hook_search_api_query_TAG_alter()
// @see hook_search_api_results_TAG_alter()
@@ -74,6 +88,7 @@ class FormAutocomplete extends ControllerBase {
$tid = $result->getField('tid')->getValues()[0];
$term_name = $result->getField('name')->getValues()[0]->getText();
$response[] = [
// 'typed_string' => $typed_string,
'value' => $tid,
'label' => $term_name,
];

View File

@@ -93,6 +93,21 @@ parameters:
# Disabling the Twig cache is not recommended in production environments.
# @default true
cache: true
# File extensions:
#
# List of file extensions the Twig system is allowed to load via the
# twig.loader.filesystem service. Files with other extensions will not be
# loaded unless they are added here. For example, to allow a file named
# 'example.partial' to be loaded, add 'partial' to this list. To load files
# with no extension, add an empty string '' to the list.
#
# @default ['css', 'html', 'js', 'svg', 'twig']
allowed_file_extensions:
- css
- html
- js
- svg
- twig
renderer.config:
# Renderer required cache contexts:
#

View File

@@ -170,9 +170,9 @@ $databases = [];
* information on these defaults and the potential issues.
*
* More details can be found in the constructor methods for each driver:
* - \Drupal\Core\Database\Driver\mysql\Connection::__construct()
* - \Drupal\Core\Database\Driver\pgsql\Connection::__construct()
* - \Drupal\Core\Database\Driver\sqlite\Connection::__construct()
* - \Drupal\mysql\Driver\Database\mysql\Connection::__construct()
* - \Drupal\pgsql\Driver\Database\pgsql\Connection::__construct()
* - \Drupal\sqlite\Driver\Database\sqlite\Connection::__construct()
*
* Sample Database configuration format for PostgreSQL (pgsql):
* @code
@@ -490,6 +490,29 @@ $settings['update_free_access'] = FALSE;
*/
# $settings['file_public_path'] = 'sites/default/files';
/**
* Additional public file schemes:
*
* Public schemes are URI schemes that allow download access to all users for
* all files within that scheme.
*
* The "public" scheme is always public, and the "private" scheme is always
* private, but other schemes, such as "https", "s3", "example", or others,
* can be either public or private depending on the site. By default, they're
* private, and access to individual files is controlled via
* hook_file_download().
*
* Typically, if a scheme should be public, a module makes it public by
* implementing hook_file_download(), and granting access to all users for all
* files. This could be either the same module that provides the stream wrapper
* for the scheme, or a different module that decides to make the scheme
* public. However, in cases where a site needs to make a scheme public, but
* is unable to add code in a module to do so, the scheme may be added to this
* variable, the result of which is that system_file_download() grants public
* access to all files within that scheme.
*/
# $settings['file_additional_public_schemes'] = ['example'];
/**
* Private file path:
*
@@ -703,6 +726,8 @@ $settings['container_yamls'][] = $app_root . '/' . $site_path . '/services.yml';
* @endcode
* will allow the site to run off of all variants of example.com and
* example.org, with all subdomains included.
*
* @see https://www.drupal.org/docs/installing-drupal/trusted-host-settings
*/
/**

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
(self.webpackChunkmaterio_com=self.webpackChunkmaterio_com||[]).push([[204],{281:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>u});var o=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{attrs:{id:"showrooms"}},[e.items.length?e._l(e.items,(function(e){return s("Showroom",{key:e.uuid,attrs:{item:e}})})):s("div",{staticClass:"loading"},[s("span",[e._v(e._s(e.$t("default.Loading…")))])])],2)};o._withStripped=!0;var i=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("article",{staticClass:"showroom"},[s("section",{directives:[{name:"switcher",rawName:"v-switcher"}],staticClass:"images"},e._l(e.item.images,(function(t,o){return s("figure",{directives:[{name:"lazy",rawName:"v-lazy",value:o,expression:"index"}],key:t.url,staticClass:"lazy"},[s("img",{attrs:{"data-src":t.style_showroomhome.url},on:{click:function(t){return e.setLightBox(o)}}})])})),0),e._v(" "),s("section",{staticClass:"content"},[s("header",[s("h1",[e._v(e._s(e.item.name))])]),e._v(" "),s("section",{staticClass:"description",domProps:{innerHTML:e._s(e.item.description)}}),e._v(" "),s("address",[e.item.address.organization?s("span",[e._v(e._s(e.item.address.organization)),s("br")]):e._e(),e._v(" "),e.item.address.address_line1?s("span",[e._v(e._s(e.item.address.address_line1)),s("br")]):e._e(),e._v(" "),e.item.address.locality?s("span",[e._v(e._s(e.item.address.locality)),s("br")]):e._e(),e._v(" "),e.item.country.country_name?s("span",[e._v(e._s(e.item.country.country_name))]):e._e()]),e._v(" "),s("div",{staticClass:"phone",domProps:{innerHTML:e._s(e.item.phone)}}),e._v(" "),s("a",{staticClass:"email",attrs:{href:"mailto:"+e.item.email},domProps:{innerHTML:e._s(e.item.email)}}),e._v(" "),s("div",{staticClass:"website"},[s("a",{attrs:{_target:"_blank",href:e.item.website.url}},[e._v(e._s(e.item.website.title))])])])])};i._withStripped=!0;var r=s(629),a=s(4408),n=s(8357);drupalSettings.path.baseUrl,drupalSettings.path.pathPrefix;const m={name:"Showroom",router:a.Z,mixins:[n.Z],props:["item"],computed:{...(0,r.rn)({coolLightBoxItems:e=>e.Common.coolLightBoxItems,coolLightBoxIndex:e=>e.Common.coolLightBoxIndex})},methods:{...(0,r.nv)({setcoolLightBoxItems:"Common/setcoolLightBoxItems",setcoolLightBoxIndex:"Common/setcoolLightBoxIndex"}),setLightBox(e){this.setcoolLightBoxItems(this.item.images),this.setcoolLightBoxIndex(e)}}};var l=s(1900),c=(0,l.Z)(m,i,[],!1,null,"695652b0",null);c.options.__file="web/themes/custom/materiotheme/vuejs/components/Content/Showroom.vue";const h=c.exports,d={name:"Showrooms",computed:{...(0,r.rn)({items:e=>e.Showrooms.items})},created(){this.items.length||this.getShowrooms()},methods:{...(0,r.nv)({getShowrooms:"Showrooms/getShowrooms"})},components:{Showroom:h}};var _=(0,l.Z)(d,o,[],!1,null,"7566e5fe",null);_.options.__file="web/themes/custom/materiotheme/vuejs/components/Pages/Showrooms.vue";const u=_.exports}}]);

View File

@@ -1 +0,0 @@
(self.webpackChunkmaterio_com=self.webpackChunkmaterio_com||[]).push([[204],{281:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>p});var o=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{attrs:{id:"showrooms"}},[e.items.length?e._l(e.items,(function(e){return s("Showroom",{key:e.uuid,attrs:{item:e}})})):s("div",{staticClass:"loading"},[s("span",[e._v(e._s(e.$t("default.Loading…")))])])],2)};o._withStripped=!0;var i=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("article",{staticClass:"showroom"},[s("header",[s("h1",{domProps:{innerHTML:e._s(e.item.name)}})]),e._v(" "),s("section",{staticClass:"images"},[s("figure",{domProps:{innerHTML:e._s(e.item.field_visuels)}})]),e._v(" "),s("section",{staticClass:"content"},[s("address",{domProps:{innerHTML:e._s(e.item.field_public_address)}}),e._v(" "),s("div",{staticClass:"phone",domProps:{innerHTML:e._s(e.item.field_public_phone)}}),e._v(" "),s("a",{staticClass:"email",attrs:{href:"mailto:"+e.item.field_public_email},domProps:{innerHTML:e._s(e.item.field_public_email)}}),e._v(" "),s("div",{staticClass:"website",domProps:{innerHTML:e._s(e.item.field_website)}})])])};i._withStripped=!0;var r=s(4408);drupalSettings.path.baseUrl,drupalSettings.path.pathPrefix;const n={name:"Showroom",router:r.Z,props:["item"]};var m=s(1900),a=(0,m.Z)(n,i,[],!1,null,"695652b0",null);a.options.__file="web/themes/custom/materiotheme/vuejs/components/Content/Showroom.vue";const l=a.exports;var c=s(629);const _={name:"Showrooms",computed:{...(0,c.rn)({items:e=>e.Showrooms.items})},created(){this.items.length||this.getItems()},methods:{...(0,c.nv)({getItems:"Showrooms/getItems"})},components:{Showroom:l}};var d=(0,m.Z)(_,o,[],!1,null,"7566e5fe",null);d.options.__file="web/themes/custom/materiotheme/vuejs/components/Pages/Showrooms.vue";const p=d.exports}}]);

View File

@@ -50,6 +50,7 @@ import VMainContent from 'vuejs/components/Content/MainContent'
import VSearchBlock from 'vuejs/components/Block/SearchBlock'
import VLeftContent from 'vuejs/components/Content/LeftContent'
import VHeaderMenu from 'vuejs/components/Content/HeaderMenu'
import VLanguageSwitcher from 'vuejs/components/Content/LanguageSwitcher'
import GlobCoolLightBox from 'vuejs/components/Content/GlobCoolLightBox'
import { mapState } from 'vuex'
@@ -62,7 +63,7 @@ import 'theme/assets/styles/print.scss'
import MA from 'vuejs/api/ma-axios'
export let _v_sitebranding_block, _v_user_block, _v_header_menu,
export let _v_sitebranding_block, _v_user_block, _v_header_menu, _v_language_switcher,
_v_pagetitle_block, _v_search_block,
_v_main_content, _v_left_content,
_v_glob_coollightbox
@@ -119,6 +120,7 @@ export let _v_sitebranding_block, _v_user_block, _v_header_menu,
initVSiteBrandingBlock()
initVPagetitleBlock()
initVHeaderMenu()
initVLanguageSwitcher()
initHamburgerMenu()
initVSearchBlock()
initVMainContent()
@@ -140,7 +142,7 @@ export let _v_sitebranding_block, _v_user_block, _v_header_menu,
}
function initVStore () {
store.dispatch('Showrooms/getItems')
store.dispatch('Showrooms/getShowrooms')
}
function initVRouter () {
@@ -206,6 +208,21 @@ export let _v_sitebranding_block, _v_user_block, _v_header_menu,
})
}
function initVLanguageSwitcher () {
console.log('initVLanguageSwitcher')
const id = 'block-languageswitcher'
const $html_obj = document.querySelector('#' + id)
console.log('initVLanguageSwitcher $html_obj', $html_obj)
const html = $html_obj.outerHTML
console.log('initVLanguageSwitcher html', html)
_v_language_switcher = new Vue({
store,
i18n,
router,
render: h => h(VLanguageSwitcher, { props: { id: id, dom_html: html } })
}).$mount('#' + id)
}
function updateLanguageLinksBlock (path) {
// update block language selection
console.log('router beforeEach path ', path)

View File

@@ -2158,6 +2158,7 @@ article.card{
margin:0 $column_goutiere 0 0;
img{
width:100%;
cursor: pointer;
}
}
}
@@ -2178,6 +2179,7 @@ article.card{
margin:0 $column_goutiere $column_goutiere*0.6 0;
height:$card_height / 2;
background-size: cover;
cursor: pointer;
}
@include col-mediaquery-max(3){
display: flex;
@@ -2304,22 +2306,57 @@ article.card{
#showrooms{
width: calc(100% + #{$column_goutiere});
article.showroom{
width: $column_width * 2 + $column_goutiere;
display: inline-block;
vertical-align: top;
margin: 0 $column_goutiere $column_goutiere 0;
h1{
margin:0;
font-weight: 4;
display: flex;
flex-direction: row;
margin-bottom: 1em;
section.images{
flex:0 0 auto;
}
p{ margin:0; }
figure{
margin:0;
img{
max-width: 100%;
section.content{
flex:0 0 100%;
padding: 0 1em;
}
section.images{
position: relative;
width: 800px;
height: 450px;
*{width: 100%; height:100%;}
figure{
cursor: pointer;
margin:0;
position: absolute;
top:0; left:0;
background-color: #fff;
// width: 100%; height:100%;
&:first-of-type{
z-index:5
}
transition: opacity 0.2s ease-in-out;
&.show{opacity: 1; z-index:6;}
&.hide{opacity: 0;}
img{
// width: 100%; height:100%;
&.blank{
position: absolute;
top:0; left:0;
z-index: 20;
}
}
}
}
section.content{
h1{
margin:0;
font-weight: 4;
}
p{
margin:0 0 1em 0!important;
max-width: 30em;
}
}
}
}

View File

@@ -0,0 +1,44 @@
{#
/**
* @file
* Theme override to display a block.
*
* Available variables:
* - plugin_id: The ID of the block implementation.
* - label: The configured label of the block if visible.
* - configuration: A list of the block's configuration values.
* - label: The configured label for the block.
* - label_display: The display settings for the label.
* - provider: The module or other provider that provided this block plugin.
* - Block plugin specific settings will also be stored here.
* - content: The content of this block.
* - attributes: array of HTML attributes populated by modules, intended to
* be added to the main container tag of this template.
* - id: A valid HTML ID and guaranteed unique.
* - title_attributes: Same as attributes, except applied to the main title
* tag that appears in the template.
* - title_prefix: Additional output populated by modules, intended to be
* displayed in front of the main title tag that appears in the template.
* - title_suffix: Additional output populated by modules, intended to be
* displayed after the main title tag that appears in the template.
*
* @see template_preprocess_block()
*/
#}
{%
set classes = [
'block',
'block-' ~ configuration.provider|clean_class,
'block-' ~ plugin_id|clean_class,
]
%}
<div{{ attributes.addClass(classes) }}>
{{ title_prefix }}
{% if label %}
<h2{{ title_attributes }} v-touch.prevent.stop="onTapLanguageSwitcher">{{ label }}</h2>
{% endif %}
{{ title_suffix }}
{% block content %}
{{ content }}
{% endblock %}
</div>

View File

@@ -35,7 +35,7 @@
<div{{ attributes.addClass(classes) }}>
{{ title_prefix }}
{% if label %}
<h2{{ title_attributes }}>{{ label }}</h2>
<h2{{ title_attributes }} v-touch.prevent.stop="onTapLoginBlock">{{ label }}</h2>
{% endif %}
{{ title_suffix }}
<section>

View File

@@ -34,7 +34,8 @@
{{ content.field_visuels }}
</div>
<section class="text">
<h2><a href="{{ url }}">{{ name }}</a></h2>
{# <h2><a href="{{ url }}">{{ name }}</a></h2> #}
<h2>{{ name }}</h2>
{{ content|without('field_visuels') }}
</section>
</div>

View File

@@ -0,0 +1,42 @@
fragment ShowroomFields on Showroom {
uuid
id
name
description
images {
alt
id
style_showroomhome {
height
url
width
}
style_showroomhome_url
url
}
website {
title
url
}
phone
email
country {
country_code
country_name
}
address {
additional_name
address_line1
address_line2
administrative_area
dependent_locality
country_code
family_name
given_name
langcode
locality
organization
postal_code
sorting_code
}
}

View File

@@ -26,19 +26,19 @@ export default {
userLogin: 'User/userLogin',
openCloseHamMenu: 'Common/openCloseHamMenu'
}),
onTapLoginBlock (e) {
console.log('onTapLoginBlock', e)
let tapped = e.target.parentNode.parentNode.querySelectorAll('.tapped')
tapped.forEach((item, i) => {
item.classList.remove('tapped')
})
e.target.parentNode.classList.add('tapped')
},
login () {
this.userLogin({
mail: this.mail,
pass: this.password
})
// moved to user.js store
// .then(() => {
// console.log('LoginBlock user logged-in')
// this.openCloseHamMenu(false)
// this.$router.push({
// name: 'base'
// })
// })
}
},
beforeMount() {

View File

@@ -24,7 +24,7 @@ export default {
...mapState({
canSearch: state => state.User.canSearch,
keys: state => state.Search.keys,
term: state => state.Search.term,
terms: state => state.Search.terms,
filters: state => state.Search.filters
}),
displayform(){
@@ -54,7 +54,7 @@ export default {
// var urlParamsKeys = urlParams.keys()
const params = {
keys: this.keys,
term: this.term,
terms: this.terms, //JSON.stringify(this.terms),
filters: this.filters
}
console.log('Search getSearchForm params', params)

View File

@@ -54,7 +54,14 @@ export default {
// console.log("Clicked on header menu link", event)
const href = event.target.getAttribute('href')
// this.openCloseHamMenu(false)
this.$router.push(href)
// this.$router.push({name:'base', query:{
// keys:this.typed,
// // terms:this.autocomplete.join(','),
// terms: JSON.stringify(this.autocomplete),
// filters:filters.join(',')
// }})
this.$router.push({path: href, query: {}})
}
},
render(h) {

View File

@@ -0,0 +1,59 @@
<script>
import Vue from 'vue'
import router from 'vuejs/route'
export default {
name: "LanguageSwitcher",
router,
props:['id','dom_html'],
data() {
return {
html: null,
template: null
}
},
beforeMount() {
console.log("beforeMount languageSwitcher", this.dom_html)
if (!this.template) {
console.log('no languageswitcher template')
if (this.dom_html) { // if html prop is available
this.html = this.dom_html
this.compileTemplate()
}
}
},
methods: {
compileTemplate(){
console.log("languageSwitcher compileTemplate html", this.html)
this.template = Vue.compile(this.html)
// https://github.com/vuejs/vue/issues/9911
this.$options.staticRenderFns = [];
this._staticTrees = [];
this.template.staticRenderFns.map(fn => (this.$options.staticRenderFns.push(fn)));
console.log("languageSwitcher compileTemplate template", this.template)
},
onTapLanguageSwitcher (e) {
console.log('onTapLanguageSwitcher', e)
let tapped = e.target.parentNode.parentNode.querySelectorAll('.tapped')
tapped.forEach((item, i) => {
item.classList.remove('tapped')
})
e.target.parentNode.classList.add('tapped')
}
},
render(h) {
console.log('languageswitcher render')
if (!this.template) {
return h('span', $t('default.Loading…'))
} else {
return this.template.render.call(this)
}
}
}
</script>
<style lang="scss" scoped>
</style>

Some files were not shown because too many files have changed in this diff Show More