diff --git a/.github/workflows/laravel.yml b/.github/workflows/laravel.yml index c03afdc73..4cfcfdf00 100644 --- a/.github/workflows/laravel.yml +++ b/.github/workflows/laravel.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: true matrix: - php: [8.1] + php: [8.1, 8.2] name: tests - PHP ${{ matrix.php }} @@ -80,7 +80,7 @@ jobs: php artisan storage:link php artisan test --parallel --coverage-clover coverage.xml - name: Upload coverage to Codecov - if: steps.git-diff.outputs.diff + if: steps.git-diff.outputs.diff && matrix.php == '8.1' uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/mirror-dev.yml b/.github/workflows/mirror-dev.yml new file mode 100644 index 000000000..16f2dbdeb --- /dev/null +++ b/.github/workflows/mirror-dev.yml @@ -0,0 +1,33 @@ +name: Mirror dev to GitLab + +on: + push: + branches: + - dev + +jobs: + mirror: + if: github.repository == 'accessibility-exchange/platform' + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Git + run: | + git config --global user.name "${{ vars.GIT_USER }}" + git config --global user.email "${{ vars.GIT_EMAIL }}" + git remote add gitlab ${{ vars.GITLAB_URL }} + + - name: Setup SSH + uses: webfactory/ssh-agent@v0.7.0 + with: + ssh-private-key: ${{ secrets.GITLAB_SSH_KEY }} + + - name: Push to GitLab + run: | + ssh-keyscan git.kube.v1.colab.coop >> ~/.ssh/known_hosts + git push gitlab dev:development diff --git a/.github/workflows/mirror-production.yml b/.github/workflows/mirror-production.yml new file mode 100644 index 000000000..363d8d3f4 --- /dev/null +++ b/.github/workflows/mirror-production.yml @@ -0,0 +1,33 @@ +name: Mirror production to GitLab + +on: + push: + branches: + - production + +jobs: + mirror: + if: github.repository == 'accessibility-exchange/platform' + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Git + run: | + git config --global user.name "${{ vars.GIT_USER }}" + git config --global user.email "${{ vars.GIT_EMAIL }}" + git remote add gitlab ${{ vars.GITLAB_URL }} + + - name: Setup SSH + uses: webfactory/ssh-agent@v0.7.0 + with: + ssh-private-key: ${{ secrets.GITLAB_SSH_KEY }} + + - name: Push to GitLab + run: | + ssh-keyscan git.kube.v1.colab.coop >> ~/.ssh/known_hosts + git push gitlab production:production diff --git a/.github/workflows/mirror-staging.yml b/.github/workflows/mirror-staging.yml new file mode 100644 index 000000000..601ba3a9b --- /dev/null +++ b/.github/workflows/mirror-staging.yml @@ -0,0 +1,33 @@ +name: Mirror staging to GitLab + +on: + push: + branches: + - staging + +jobs: + mirror: + if: github.repository == 'accessibility-exchange/platform' + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Git + run: | + git config --global user.name "${{ vars.GIT_USER }}" + git config --global user.email "${{ vars.GIT_EMAIL }}" + git remote add gitlab ${{ vars.GITLAB_URL }} + + - name: Setup SSH + uses: webfactory/ssh-agent@v0.7.0 + with: + ssh-private-key: ${{ secrets.GITLAB_SSH_KEY }} + + - name: Push to GitLab + run: | + ssh-keyscan git.kube.v1.colab.coop >> ~/.ssh/known_hosts + git push gitlab staging:staging diff --git a/.github/workflows/mirror-tags.yml b/.github/workflows/mirror-tags.yml new file mode 100644 index 000000000..f9728870c --- /dev/null +++ b/.github/workflows/mirror-tags.yml @@ -0,0 +1,33 @@ +name: Mirror tags to GitLab + +on: + push: + tags: + - '*' + +jobs: + mirror: + if: github.repository == 'accessibility-exchange/platform' + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Git + run: | + git config --global user.name "${{ vars.GIT_USER }}" + git config --global user.email "${{ vars.GIT_EMAIL }}" + git remote add gitlab ${{ vars.GITLAB_URL }} + + - name: Setup SSH + uses: webfactory/ssh-agent@v0.7.0 + with: + ssh-private-key: ${{ secrets.GITLAB_SSH_KEY }} + + - name: Push tags to GitLab + run: | + ssh-keyscan git.kube.v1.colab.coop >> ~/.ssh/known_hosts + git push gitlab --tags diff --git a/.kube/app/Dockerfile b/.kube/app/Dockerfile index 7de34535c..599ad8fc8 100644 --- a/.kube/app/Dockerfile +++ b/.kube/app/Dockerfile @@ -1,5 +1,10 @@ FROM php:8.1-fpm +ENV PHP_VERSION 8.1 +ENV NODE_VERSION 16 +ENV NVM_VERSION 0.39.3 +ENV NVM_DIR /root/.nvm + ENV APP_DIR /app ENV KUBE_DIR .kube/app @@ -47,12 +52,11 @@ RUN pecl install -o -f redis && \ COPY --from=composer:latest /usr/bin/composer /usr/bin/composer -ENV NODE_VERSION 16 -RUN curl -sL https://deb.nodesource.com/setup_$NODE_VERSION.x | bash - \ - && apt install -y nodejs \ - && npm install -g npm +RUN wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v$NVM_VERSION/install.sh | bash +RUN . "$NVM_DIR/nvm.sh" && nvm install $NODE_VERSION +ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH -COPY $KUBE_DIR/php.ini /etc/php/8.1/cli/conf.d/99-sail.ini +COPY $KUBE_DIR/php.ini /etc/php/$PHP_VERSION/cli/conf.d/99-sail.ini COPY $KUBE_DIR/nginx.conf /etc/nginx/nginx.conf COPY $KUBE_DIR/supervisord.conf /etc/supervisor/conf.d/supervisord.conf @@ -62,7 +66,7 @@ COPY . $APP_DIR RUN composer install -RUN npm install +RUN . "$NVM_DIR/nvm.sh" && nvm use $NODE_VERSION && npm ci RUN chown www-data:root $APP_DIR/public/ -R diff --git a/.kube/app/entrypoint.sh b/.kube/app/entrypoint.sh index 3e19f18ad..86897f692 100755 --- a/.kube/app/entrypoint.sh +++ b/.kube/app/entrypoint.sh @@ -8,7 +8,7 @@ mkdir -p $FILES_PATH # mkdir -p $CACHE_PATH removed per https://github.com/accessibility-exchange/platform/issues/1596 ## fix permissions before syncing to existing storage and cache https://github.com/accessibility-exchange/platform/issues/1226 -chown -R www-data:root /app/storage /app/bootstrap/cache $FILES_PATH # $CACHE_PATH removed per https://github.com/accessibility-exchange/platform/issues/1596 +chown -R www-data:root /app/storage /app/bootstrap/cache $FILES_PATH $VIEW_COMPILED_PATH # $CACHE_PATH removed per https://github.com/accessibility-exchange/platform/issues/1596 ## sync files from container storage to permanent storage then remove container storage rsync -a /app/storage/ $FILES_PATH diff --git a/.kube/app/values.development.yaml b/.kube/app/values.development.yaml index 8e1965ff2..5a09a678f 100644 --- a/.kube/app/values.development.yaml +++ b/.kube/app/values.development.yaml @@ -18,6 +18,8 @@ env: SESSION_LIFETIME: "120" SAIL_XDEBUG_MODE: "develop,debug,coverage" FILES_PATH: "/opt/data/storage" + VIEW_COMPILED_PATH: "/app/bootstrap/views" + # CACHE_PATH: "/opt/data/cache" removed per https://github.com/accessibility-exchange/platform/issues/1596 ### Place those values in Vault # secrets: diff --git a/.kube/app/values.production.yaml b/.kube/app/values.production.yaml index 5d5c0aac7..3a2601e62 100644 --- a/.kube/app/values.production.yaml +++ b/.kube/app/values.production.yaml @@ -23,6 +23,7 @@ env: SESSION_LIFETIME: "120" SAIL_XDEBUG_MODE: "develop,debug,coverage" FILES_PATH: "/opt/data/storage" + VIEW_COMPILED_PATH: "/app/bootstrap/views" # CACHE_PATH: "/opt/data/cache" removed per https://github.com/accessibility-exchange/platform/issues/1596 ### Place those values in Vault # secrets: diff --git a/.kube/app/values.staging.yaml b/.kube/app/values.staging.yaml index a6610d522..55bc1215c 100644 --- a/.kube/app/values.staging.yaml +++ b/.kube/app/values.staging.yaml @@ -18,6 +18,7 @@ env: SESSION_LIFETIME: "120" SAIL_XDEBUG_MODE: "develop,debug,coverage" FILES_PATH: "/opt/data/storage" + VIEW_COMPILED_PATH: "/app/bootstrap/views" # CACHE_PATH: "/opt/data/cache" removed per https://github.com/accessibility-exchange/platform/issues/1596 ### Place those values in Vault # secrets: diff --git a/.kube/db/values.development.yaml b/.kube/db/values.development.yaml new file mode 100644 index 000000000..971d38052 --- /dev/null +++ b/.kube/db/values.development.yaml @@ -0,0 +1,87 @@ +primary: + configuration: |- + [mysqld] + basedir=/opt/bitnami/mysql + bind-address=0.0.0.0 + character-set-server=UTF8 + collation-server=utf8_general_ci + datadir=/bitnami/mysql/data + default_authentication_plugin=mysql_native_password + explicit_defaults_for_timestamp + innodb_buffer_pool_size=1G + innodb_doublewrite=1 + innodb_flush_log_at_trx_commit=1 + innodb_flush_method=O_DIRECT + innodb_lock_wait_timeout=100 + innodb_log_buffer_size=16M + innodb_max_dirty_pages_pct=80 + innodb_thread_concurrency=0 + log-error=/opt/bitnami/mysql/logs/mysqld.log + long_query_time=20.0 + max_allowed_packet=16M + pid-file=/opt/bitnami/mysql/tmp/mysqld.pid + plugin_dir=/opt/bitnami/mysql/lib/plugin + port=3306 + skip-name-resolve + slow_query_log=1 + slow_query_log_file=/opt/bitnami/mysql/logs/mysqld.log + socket=/opt/bitnami/mysql/tmp/mysql.sock + table_definition_cache=2048 + table_open_cache=512 + tmpdir=/opt/bitnami/mysql/tmp + [client] + default-character-set=UTF8 + plugin_dir=/opt/bitnami/mysql/lib/plugin + port=3306 + socket=/opt/bitnami/mysql/tmp/mysql.sock + [manager] + pid-file=/opt/bitnami/mysql/tmp/mysqld.pid + port=3306 + socket=/opt/bitnami/mysql/tmp/mysql.sock +secondary: + configuration: |- + [mysqld] + basedir=/opt/bitnami/mysql + bind-address=0.0.0.0 + character-set-server=UTF8 + collation-server=utf8_general_ci + datadir=/bitnami/mysql/data + default_authentication_plugin=mysql_native_password + explicit_defaults_for_timestamp + innodb_buffer_pool_size=1G + innodb_doublewrite=1 + innodb_flush_log_at_trx_commit=1 + innodb_flush_method=O_DIRECT + innodb_lock_wait_timeout=100 + innodb_log_buffer_size=16M + innodb_max_dirty_pages_pct=80 + innodb_thread_concurrency=0 + log-error=/opt/bitnami/mysql/logs/mysqld.log + long_query_time=20.0 + max_allowed_packet=16M + pid-file=/opt/bitnami/mysql/tmp/mysqld.pid + plugin_dir=/opt/bitnami/mysql/lib/plugin + port=3306 + skip-name-resolve + slow_query_log=1 + slow_query_log_file=/opt/bitnami/mysql/logs/mysqld.log + socket=/opt/bitnami/mysql/tmp/mysql.sock + table_definition_cache=2048 + table_open_cache=512 + tmpdir=/opt/bitnami/mysql/tmp + [client] + default-character-set=UTF8 + plugin_dir=/opt/bitnami/mysql/lib/plugin + port=3306 + socket=/opt/bitnami/mysql/tmp/mysql.sock + [manager] + pid-file=/opt/bitnami/mysql/tmp/mysqld.pid + port=3306 + socket=/opt/bitnami/mysql/tmp/mysql.sock +### Place those values in Vault +# auth: +# database: "" +# username: "" +# password: "" +# rootPassword: "" +# replicationPassword: "" diff --git a/.kube/db/values.yaml b/.kube/db/values.yaml index d0c12a76c..9f8cde11c 100644 --- a/.kube/db/values.yaml +++ b/.kube/db/values.yaml @@ -43,6 +43,45 @@ primary: secondary: persistence: size: 10Gi + configuration: |- + [mysqld] + basedir=/opt/bitnami/mysql + bind-address=0.0.0.0 + character-set-server=UTF8 + collation-server=utf8_general_ci + datadir=/bitnami/mysql/data + default_authentication_plugin=mysql_native_password + explicit_defaults_for_timestamp + innodb_buffer_pool_size=1G + innodb_doublewrite=1 + innodb_flush_log_at_trx_commit=1 + innodb_flush_method=O_DIRECT + innodb_lock_wait_timeout=50 + innodb_log_buffer_size=16M + innodb_max_dirty_pages_pct=80 + innodb_thread_concurrency=0 + log-error=/opt/bitnami/mysql/logs/mysqld.log + long_query_time=10.0 + max_allowed_packet=16M + pid-file=/opt/bitnami/mysql/tmp/mysqld.pid + plugin_dir=/opt/bitnami/mysql/lib/plugin + port=3306 + skip-name-resolve + slow_query_log=0 + slow_query_log_file=/opt/bitnami/mysql/logs/mysqld.log + socket=/opt/bitnami/mysql/tmp/mysql.sock + table_definition_cache=2048 + table_open_cache=512 + tmpdir=/opt/bitnami/mysql/tmp + [client] + default-character-set=UTF8 + plugin_dir=/opt/bitnami/mysql/lib/plugin + port=3306 + socket=/opt/bitnami/mysql/tmp/mysql.sock + [manager] + pid-file=/opt/bitnami/mysql/tmp/mysqld.pid + port=3306 + socket=/opt/bitnami/mysql/tmp/mysql.sock ### Place those values in Vault # auth: # database: "" diff --git a/README.md b/README.md index 4953fff8c..30d4a4f1e 100644 --- a/README.md +++ b/README.md @@ -257,6 +257,45 @@ The project uses [Pest](http://pestphp.com) for testing. For more information ab - Prereleases must be tagged from the `dev` branch. - Releases must be tagged from the `production` branch. +### Working with markdown + +In other Laravel applications you may see methods such as [`Str::markdown()`](https://laravel.com/docs/9.x/helpers#method-str-markdown) +and [`Str::inlineMarkdown()`](https://laravel.com/docs/9.x/helpers#method-str-inline-markdown) used. In general we attempt +to avoid using these methods and instead favour using the provided `safe_markdown()` and `safe_inlineMarkdown` helpers. These +methods will escape HTML used in a markdown string, strip unsafe links, and escape replacements. They are also tied into +the localization system, and will populate their strings into the string packages, just as `__()` would. + +The `safe_markdown()` and `safe_inlineMarkdown()` methods should not be called with `{!! !!}` as their output will safely +pass through `{{ }}`. This provides an additional layer of protection in cases where you may have mixed types output +to the template or make a mistake. + +```php +{{ safe_markdown('**hello :location**', ['location' => '**World**']) }} +{{--
Hello **World**
--}} +``` + +If you need to unescape a replacement you can use a `!` at the start of the placeholder name (e.g. `:!placeholder`). + +```php +{{ safe_markdown('**hello :!location**', ['location' => 'World']) }} +{{--Hello World
--}} +``` + +There are some cases where you may still wish to use the `Str` markdown helpers, such as when handling admin input (e.g. +resource collection information). In these special cases, make sure to call the Laravel markdown helpers with the +`SAFE_MARKDOWN_OPTIONS` argument to escape HTML and remove unsafe links. + +```php +{!! Str::markdown('Hello **World**', SAFE_MARKDOWN_OPTIONS) !!} +{{--<em>Hello World</em>
--}} +``` + +#### Mail notification templates + +By default Laravel supports a mixture of markdown and HTML in mail notification templates. However, in this application +we've modified the templates to only support HTML. This aligns the behaviour of the mail templates with that of the site's +blade templates. + ## Supported application environments The application environment is set by specifying the `APP_ENV` environment variable. See [Environment Configuration](https://laravel.com/docs/9.x/configuration#environment-configuration) docs for more information. diff --git a/app/Actions/Fortify/UpdateUserProfileInformation.php b/app/Actions/Fortify/UpdateUserProfileInformation.php index 4950d2ee4..d7ffd134a 100644 --- a/app/Actions/Fortify/UpdateUserProfileInformation.php +++ b/app/Actions/Fortify/UpdateUserProfileInformation.php @@ -2,10 +2,11 @@ namespace App\Actions\Fortify; +use App\Rules\UniqueUserEmail; use App\Traits\UserEmailVerification; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Support\Facades\Validator; -use Illuminate\Validation\Rule; +use Illuminate\Support\Str; use Laravel\Fortify\Contracts\UpdatesUserProfileInformation; class UpdateUserProfileInformation implements UpdatesUserProfileInformation @@ -25,12 +26,12 @@ public function update($user, array $input): void 'string', 'email', 'max:255', - Rule::unique('users')->ignore($user->id), + new UniqueUserEmail($user->id), ], ])->validateWithBag('updateProfileInformation'); if ( - $input['email'] !== $user->email && + Str::lower($input['email']) !== $user->email && $user instanceof MustVerifyEmail ) { $this->updateVerifiedUser($user, $input['email']); diff --git a/app/Console/Commands/SeederBackupData.php b/app/Console/Commands/SeederBackupData.php index 50cfd62b3..e52dd4e25 100644 --- a/app/Console/Commands/SeederBackupData.php +++ b/app/Console/Commands/SeederBackupData.php @@ -15,6 +15,7 @@ class SeederBackupData extends Command */ protected $signature = 'db:seed:backup {--a|all : Whether to run through all available backups/restores in config}? + {--env= : Specify an environment configured in backup.filament_seeders.environments}? {--remove : Remove backed up files}? {--restore : Restore the filament table}? {--t|table=* : Create/remove specific table file}? diff --git a/app/Enums/IdentityType.php b/app/Enums/IdentityType.php new file mode 100644 index 000000000..ff4ec2395 --- /dev/null +++ b/app/Enums/IdentityType.php @@ -0,0 +1,27 @@ + __('Age'), + 'gender-and-sexual-identity' => __('Gender and sexual identity'), + 'indigenous-identity' => __('Indigenous'), + 'ethnoracial-identity' => __('Race and ethnicity'), + 'refugee-or-immigrant' => __('Refugees and/or immigrants'), + 'first-language' => __('First language'), + 'area-type' => __('Living in urban, rural, or remote areas'), + ]; + } +} diff --git a/app/Enums/LocationType.php b/app/Enums/LocationType.php new file mode 100644 index 000000000..5ddc54777 --- /dev/null +++ b/app/Enums/LocationType.php @@ -0,0 +1,17 @@ + __('Specific provinces or territories'), + 'localities' => __('Specific cities or towns'), + ]; + } +} diff --git a/app/Enums/OutcomeAnalyzer.php b/app/Enums/OutcomeAnalyzer.php new file mode 100644 index 000000000..2df27067e --- /dev/null +++ b/app/Enums/OutcomeAnalyzer.php @@ -0,0 +1,17 @@ + __('Internal team'), + 'external' => __('External team'), + ]; + } +} diff --git a/app/Http/Controllers/EngagementController.php b/app/Http/Controllers/EngagementController.php index 8f0521c5a..0227b6ef0 100644 --- a/app/Http/Controllers/EngagementController.php +++ b/app/Http/Controllers/EngagementController.php @@ -7,6 +7,8 @@ use App\Enums\EngagementFormat; use App\Enums\EngagementRecruitment; use App\Enums\IdentityCluster; +use App\Enums\IdentityType; +use App\Enums\LocationType; use App\Enums\MeetingType; use App\Enums\ProvinceOrTerritory; use App\Enums\TimeZone; @@ -164,23 +166,12 @@ public function criteriaSelection(Engagement $engagement): View 'indigenousIdentities' => Options::forModels(Identity::query()->whereJsonContains('clusters', IdentityCluster::Indigenous))->toArray(), 'ethnoracialIdentities' => Options::forModels(Identity::query()->whereJsonContains('clusters', IdentityCluster::Ethnoracial))->toArray(), 'languages' => Options::forArray(get_available_languages(true))->nullable(__('Choose a language…'))->toArray(), - 'locationTypeOptions' => Options::forArray([ - 'regions' => __('Specific provinces or territories'), - 'localities' => __('Specific cities or towns'), - ])->toArray(), + 'locationTypeOptions' => Options::forEnum(LocationType::class)->toArray(), 'intersectionalOptions' => Options::forArray([ '1' => __('No, give me a group with intersectional experiences and/or identities'), '0' => __('Yes, I’m looking for a group with a specific experience and/or identity (for example: Indigenous, immigrant, 2SLGBTQIA+)'), ])->toArray(), - 'otherIdentityOptions' => Options::forArray([ - 'age-bracket' => __('Age'), - 'gender-and-sexual-identity' => __('Gender and sexual identity'), - 'indigenous-identity' => __('Indigenous'), - 'ethnoracial-identity' => __('Race and ethnicity'), - 'refugee-or-immigrant' => __('Refugees and/or immigrants'), - 'first-language' => __('First language'), - 'area-type' => __('Living in urban, rural, or remote areas'), - ])->nullable(__('Select a criteria…'))->toArray(), + 'otherIdentityOptions' => Options::forEnum(IdentityType::class)->nullable(__('Select a criteria…'))->toArray(), ]); } @@ -192,11 +183,11 @@ public function updateCriteria(UpdateEngagementSelectionCriteriaRequest $request $matchingStrategyData = $request->safe()->except(['ideal_participants', 'minimum_participants']); - if ($matchingStrategyData['location_type'] === 'regions') { + if ($matchingStrategyData['location_type'] === LocationType::Regions->value) { $matchingStrategyData['locations'] = []; } - if ($matchingStrategyData['location_type'] === 'localities') { + if ($matchingStrategyData['location_type'] === LocationType::Localities->value) { $matchingStrategyData['regions'] = []; } @@ -215,7 +206,7 @@ public function updateCriteria(UpdateEngagementSelectionCriteriaRequest $request if ($matchingStrategyData['intersectional'] == 0) { $matchingStrategy->extra_attributes->other_identity_type = $matchingStrategyData['other_identity_type']; - if ($matchingStrategyData['other_identity_type'] === 'age-bracket') { + if ($matchingStrategyData['other_identity_type'] === IdentityType::AgeBracket->value) { $matchingStrategy->languages()->detach(); $matchingStrategy->syncMutuallyExclusiveIdentities( IdentityCluster::Age, @@ -229,7 +220,7 @@ public function updateCriteria(UpdateEngagementSelectionCriteriaRequest $request ); } - if ($matchingStrategyData['other_identity_type'] === 'gender-and-sexual-identity') { + if ($matchingStrategyData['other_identity_type'] === IdentityType::GenderAndSexualIdentity->value) { if (isset($matchingStrategyData['nb_gnc_fluid_identity']) && $matchingStrategyData['nb_gnc_fluid_identity'] == 1) { foreach (Identity::whereJsonContains('clusters', IdentityCluster::GenderDiverse)->get() as $genderDiverseIdentity) { $matchingStrategyData['gender_and_sexual_identities'][] = $genderDiverseIdentity->id; @@ -250,7 +241,7 @@ public function updateCriteria(UpdateEngagementSelectionCriteriaRequest $request ); } - if ($matchingStrategyData['other_identity_type'] === 'indigenous-identity') { + if ($matchingStrategyData['other_identity_type'] === IdentityType::IndigenousIdentity->value) { $matchingStrategy->languages()->detach(); $matchingStrategy->syncMutuallyExclusiveIdentities( IdentityCluster::Indigenous, @@ -264,7 +255,7 @@ public function updateCriteria(UpdateEngagementSelectionCriteriaRequest $request ); } - if ($matchingStrategyData['other_identity_type'] === 'ethnoracial-identity') { + if ($matchingStrategyData['other_identity_type'] === IdentityType::EthnoracialIdentity->value) { $matchingStrategy->languages()->detach(); $matchingStrategy->syncMutuallyExclusiveIdentities( IdentityCluster::Ethnoracial, @@ -279,7 +270,7 @@ public function updateCriteria(UpdateEngagementSelectionCriteriaRequest $request ); } - if ($matchingStrategyData['other_identity_type'] === 'refugee-or-immigrant') { + if ($matchingStrategyData['other_identity_type'] === IdentityType::RefugeeOrImmigrant->value) { $matchingStrategy->languages()->detach(); $matchingStrategy->detachClusters([ IdentityCluster::Age, @@ -294,7 +285,7 @@ public function updateCriteria(UpdateEngagementSelectionCriteriaRequest $request ); } - if ($matchingStrategyData['other_identity_type'] === 'first-language') { + if ($matchingStrategyData['other_identity_type'] === IdentityType::FirstLanguage->value) { $languages = []; foreach ($matchingStrategyData['first_languages'] as $code) { @@ -322,7 +313,7 @@ public function updateCriteria(UpdateEngagementSelectionCriteriaRequest $request ]); } - if ($matchingStrategyData['other_identity_type'] === 'area-type') { + if ($matchingStrategyData['other_identity_type'] === IdentityType::AreaType->value) { $matchingStrategy->languages()->detach(); $matchingStrategy->syncMutuallyExclusiveIdentities( IdentityCluster::Area, @@ -419,7 +410,7 @@ public function update(UpdateEngagementRequest $request, Engagement $engagement) if ($request->input('publish')) { if ($engagement->fresh()->isPublishable()) { $engagement->update(['published_at' => now()]); - flash(__('Your engagement has been published. [Visit engagement](:url)', ['url' => localized_route('engagements.show', $engagement)]), 'success'); + flash(__('Your engagement has been published.'), 'success'); } } else { flash(__('Your engagement has been updated.'), 'success'); diff --git a/app/Http/Controllers/IndividualController.php b/app/Http/Controllers/IndividualController.php index 15c6e9475..57e9e274b 100644 --- a/app/Http/Controllers/IndividualController.php +++ b/app/Http/Controllers/IndividualController.php @@ -31,6 +31,7 @@ use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Str; use Spatie\LaravelOptions\Options; class IndividualController extends Controller @@ -91,7 +92,7 @@ public function saveRoles(SaveIndividualRolesRequest $request): RedirectResponse $individual->unpublish(true); flash(__('Your roles have been saved.'), 'success'); } elseif (count($oldRoles) && ((! in_array($consultantRole, $oldRoles) && in_array($consultantRole, $newRoles)) || (! in_array($connectorRole, $oldRoles) && in_array($connectorRole, $newRoles)))) { - flash(__('Your roles have been saved.').' '.__('Please review your page. There is some information for your new role that you will have to fill in.').' '.__('Review page').'', 'warning'); + flash(__('Your roles have been saved.').' '.__('Please review your page. There is some information for your new role that you will have to fill in.'), 'warning'); } else { flash(__('Your roles have been saved.'), 'success'); } @@ -307,7 +308,7 @@ public function updateCommunicationAndConsultationPreferences(UpdateIndividualCo if ( $data['email'] !== '' - && $data['email'] !== $user->email + && Str::lower($data['email']) !== $user->email && $user instanceof MustVerifyEmail ) { $this->updateVerifiedUser($user, $data['email']); diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php index 0ba632e72..4a46f9dfa 100644 --- a/app/Http/Controllers/ProjectController.php +++ b/app/Http/Controllers/ProjectController.php @@ -104,10 +104,18 @@ public function show(Project $project): View $language = false; } + if ($user->can('manage', $project)) { + $engagements = $project->allEngagements; + } elseif ($user->isAdministrator()) { + $engagements = $project->allEngagements->filter(fn ($engagement) => $engagement->isPreviewable()); + } else { + $engagements = $project->engagements; + } + return view('projects.show', [ 'language' => $language ?? locale(), 'project' => $project, - 'engagements' => $user->can('manage', $project) || $user->isAdministrator() ? $project->allEngagements : $project->engagements, + 'engagements' => $engagements, ]); } diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index aafda7f0a..422c9f1e7 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -30,6 +30,7 @@ use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Cookie; use Illuminate\Support\Facades\Gate; +use Illuminate\Support\Str; use Spatie\LaravelOptions\Options; class SettingsController extends Controller @@ -196,7 +197,7 @@ public function updateCommunicationAndConsultationPreferences(UpdateCommunicatio $individual = $user->individual; if ( - isset($data['email']) && $data['email'] !== $user->email && $user instanceof MustVerifyEmail + isset($data['email']) && Str::lower($data['email']) !== $user->email && $user instanceof MustVerifyEmail ) { $this->updateVerifiedUser($user, $data['email']); } diff --git a/app/Http/Requests/AddNotificationableRequest.php b/app/Http/Requests/AddNotificationableRequest.php index b1dcc6291..519b8d85a 100644 --- a/app/Http/Requests/AddNotificationableRequest.php +++ b/app/Http/Requests/AddNotificationableRequest.php @@ -8,6 +8,10 @@ class AddNotificationableRequest extends FormRequest { public function authorize(): bool { + if (! is_callable($this->input('notificationable_type').'::find')) { + return false; + } + $notificationable = $this->input('notificationable_type')::find($this->input('notificationable_id')); return $notificationable && $this->user()->can('receiveNotifications'); diff --git a/app/Http/Requests/AddTranslationRequest.php b/app/Http/Requests/AddTranslationRequest.php index 13be621ad..fcac8ee4f 100644 --- a/app/Http/Requests/AddTranslationRequest.php +++ b/app/Http/Requests/AddTranslationRequest.php @@ -12,6 +12,10 @@ class AddTranslationRequest extends FormRequest */ public function authorize(): bool { + if (! is_callable($this->input('translatable_type').'::where')) { + return false; + } + $translatable = $this->input('translatable_type')::where('id', $this->input('translatable_id'))->first(); return $translatable && $this->user()->can('update', $translatable); @@ -39,7 +43,9 @@ public function rules(): array public function messages(): array { return [ - 'new_language.not_in' => __(':model is already translatable into :language.', ['model' => $this->get('translatable_type')::find($this->get('translatable_id'))->name, 'language' => get_language_exonym($this->get('new_language'))]), + 'new_language.required' => __('Please select a language.', ['model' => $this->get('translatable_type')::find($this->get('translatable_id'))->name]), + 'new_language.string' => __('Please select a language.', ['model' => $this->get('translatable_type')::find($this->get('translatable_id'))->name]), + 'new_language.not_in' => __(':model is already translatable into :language.', ['model' => $this->get('translatable_type')::find($this->get('translatable_id'))->name, 'language' => get_language_exonym($this->get('new_language') ?? '')]), ]; } } diff --git a/app/Http/Requests/DestroyTranslationRequest.php b/app/Http/Requests/DestroyTranslationRequest.php index 3124bde8a..09865532f 100644 --- a/app/Http/Requests/DestroyTranslationRequest.php +++ b/app/Http/Requests/DestroyTranslationRequest.php @@ -12,6 +12,10 @@ class DestroyTranslationRequest extends FormRequest */ public function authorize(): bool { + if (! is_callable($this->input('translatable_type').'::where')) { + return false; + } + $translatable = $this->input('translatable_type')::where('id', $this->input('translatable_id'))->first(); return $translatable && $this->user()->can('update', $translatable); @@ -39,7 +43,9 @@ public function rules(): array public function messages(): array { return [ - 'language.in' => __(':model was not translatable into :language.', ['model' => $this->get('translatable_type')::find($this->get('translatable_id'))->name, 'language' => get_language_exonym($this->get('language'))]), + 'language.required' => __('Please select a language to remove.'), + 'language.string' => __('Please select a language to remove.'), + 'language.in' => __(':model was not translatable into :language.', ['model' => $this->get('translatable_type')::find($this->get('translatable_id'))->name, 'language' => get_language_exonym($this->get('language') ?? '')]), ]; } } diff --git a/app/Http/Requests/MeetingRequest.php b/app/Http/Requests/MeetingRequest.php index 6e91c3634..519f019ec 100644 --- a/app/Http/Requests/MeetingRequest.php +++ b/app/Http/Requests/MeetingRequest.php @@ -7,9 +7,12 @@ use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; use Illuminate\Validation\Rules\Enum; +use Worksome\RequestFactories\Concerns\HasFactory; class MeetingRequest extends FormRequest { + use HasFactory; + public function authorize(): bool { return true; @@ -22,12 +25,12 @@ public function rules(): array $phone = MeetingType::Phone->value; return [ - 'title.*' => 'nullable|string', 'title.en' => 'required_without:title.fr', 'title.fr' => 'required_without:title.en', + 'title.*' => 'nullable|string', 'date' => 'required|date', - 'start_time' => 'required|date_format:G:i', - 'end_time' => 'required|date_format:G:i', + 'start_time' => 'required|date_format:G:i|before:end_time', + 'end_time' => 'required|date_format:G:i|after:start_time', 'timezone' => 'required|timezone', 'meeting_types' => 'required|array', 'meeting_types.*' => [ @@ -36,67 +39,69 @@ public function rules(): array ], 'street_address' => [ 'nullable', - Rule::excludeIf(! in_array($inPerson, $this->input('meeting_types', []))), - Rule::requiredIf(in_array($inPerson, $this->input('meeting_types', []))), + Rule::excludeIf(! in_array($inPerson, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + Rule::requiredIf(in_array($inPerson, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'string', ], 'unit_suite_floor' => [ 'nullable', - Rule::excludeIf(! in_array($inPerson, $this->input('meeting_types', []))), + Rule::excludeIf(! in_array($inPerson, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'string', ], 'locality' => [ 'nullable', - Rule::excludeIf(! in_array($inPerson, $this->input('meeting_types', []))), - Rule::requiredIf(in_array($inPerson, $this->input('meeting_types', []))), + Rule::excludeIf(! in_array($inPerson, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + Rule::requiredIf(in_array($inPerson, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'string', ], 'region' => [ 'nullable', - Rule::excludeIf(! in_array($inPerson, $this->input('meeting_types', []))), - Rule::requiredIf(in_array($inPerson, $this->input('meeting_types', []))), + Rule::excludeIf(! in_array($inPerson, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + Rule::requiredIf(in_array($inPerson, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), new Enum(ProvinceOrTerritory::class), ], 'postal_code' => [ 'nullable', - Rule::excludeIf(! in_array($inPerson, $this->input('meeting_types', []))), - Rule::requiredIf(in_array($inPerson, $this->input('meeting_types', []))), + Rule::excludeIf(! in_array($inPerson, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + Rule::requiredIf(in_array($inPerson, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'postal_code:CA', ], 'directions' => [ 'nullable', - Rule::excludeIf(! in_array($inPerson, $this->input('meeting_types', []))), + Rule::excludeIf(! in_array($inPerson, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'array', ], 'meeting_software' => [ 'nullable', - Rule::excludeIf(! in_array($webConference, $this->input('meeting_types', []))), - Rule::requiredIf(in_array($webConference, $this->input('meeting_types', []))), + Rule::excludeIf(! in_array($webConference, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + Rule::requiredIf(in_array($webConference, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + 'string', ], 'alternative_meeting_software' => [ 'nullable', - Rule::excludeIf(! in_array($webConference, $this->input('meeting_types', []))), + Rule::excludeIf(! in_array($webConference, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'boolean', ], 'meeting_url' => [ 'nullable', - Rule::excludeIf(! in_array($webConference, $this->input('meeting_types', []))), - Rule::requiredIf(in_array($webConference, $this->input('meeting_types', []))), + Rule::excludeIf(! in_array($webConference, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + Rule::requiredIf(in_array($webConference, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + 'url', ], 'additional_video_information' => [ 'nullable', - Rule::excludeIf(! in_array($webConference, $this->input('meeting_types', []))), + Rule::excludeIf(! in_array($webConference, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'array', ], 'meeting_phone' => [ 'nullable', - Rule::excludeIf(! in_array($phone, $this->input('meeting_types', []))), - Rule::requiredIf(in_array($phone, $this->input('meeting_types', []))), - 'phone:CA', + Rule::excludeIf(! in_array($phone, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + Rule::requiredIf(in_array($phone, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + 'phone:CA,US', ], 'additional_phone_information' => [ 'nullable', - Rule::excludeIf(! in_array($phone, $this->input('meeting_types', []))), + Rule::excludeIf(! in_array($phone, is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'array', ], ]; @@ -109,23 +114,33 @@ public function attributes(): array 'end_time' => __('meeting end time'), 'date' => __('meeting date'), 'timezone' => __('meeting time zone'), + 'locality' => __('city or town'), 'region' => __('province or territory'), 'meeting_url' => __('link to join the meeting'), - 'meeting_phone' => __('meeting phone number'), + 'meeting_phone' => __('phone number to join the meeting'), ]; } public function messages(): array { return [ - 'title.*.required_without' => __('A meeting title must be provided in at least one language.'), + 'date.required' => __('You must enter a :attribute'), + 'title.*.required_without' => __('A meeting title must be provided in at least English or French.'), 'meeting_types.required' => __('You must indicate at least one way for participants to attend the meeting.'), + 'meeting_types.*.Illuminate\Validation\Rules\Enum' => __('You must select a valid meeting type.'), 'street_address.required' => __('You must enter a :attribute for the meeting location.'), 'locality.required' => __('You must enter a :attribute for the meeting location.'), 'region.required' => __('You must enter a :attribute for the meeting location.'), 'postal_code.required' => __('You must enter a :attribute for the meeting location.'), 'meeting_software.required' => __('You must indicate the :attribute.'), - 'meeting_url.required' => __('You must provide a :attribute.'), + 'meeting_url.required' => __('You must enter a :attribute.'), + 'meeting_phone.required' => __('You must enter a :attribute.'), + 'start_time.required' => __('You must enter a :attribute'), + 'start_time.date_format' => __('The :attribute format is not valid.'), + 'start_time.before' => __('The :attribute must be before the :date.'), + 'end_time.required' => __('You must enter a :attribute'), + 'end_time.date_format' => __('The :attribute format is not valid.'), + 'end_time.after' => __('The :attribute must be after the :date.'), ]; } } diff --git a/app/Http/Requests/RemoveNotificationableRequest.php b/app/Http/Requests/RemoveNotificationableRequest.php index ca83239eb..b045c421d 100644 --- a/app/Http/Requests/RemoveNotificationableRequest.php +++ b/app/Http/Requests/RemoveNotificationableRequest.php @@ -3,6 +3,7 @@ namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Validator; class RemoveNotificationableRequest extends FormRequest { @@ -15,7 +16,20 @@ public function rules(): array { return [ 'notificationable_type' => 'required|string|in:App\Models\Organization,App\Models\RegulatedOrganization', - 'notificationable_id' => 'required|integer|exists:'.$this->input('notificationable_type').',id', + 'notificationable_id' => 'required|integer', ]; } + + public function withValidator(Validator $validator) + { + $validator->sometimes('notificationable_id', 'exists:'.$this->input('notificationable_type').',id', function ($input) { + return isset($input->notificationable_type) && in_array( + $input->notificationable_type, + [ + 'App\Models\Organization', + 'App\Models\RegulatedOrganization', + ] + ); + }); + } } diff --git a/app/Http/Requests/SaveIndividualRolesRequest.php b/app/Http/Requests/SaveIndividualRolesRequest.php index 03d4f300d..c2d140d54 100644 --- a/app/Http/Requests/SaveIndividualRolesRequest.php +++ b/app/Http/Requests/SaveIndividualRolesRequest.php @@ -41,6 +41,8 @@ public function messages(): array { return [ 'roles.required' => __('You must select what you would like to do on the website.'), + 'roles.array' => __('You must select what you would like to do on the website.'), + 'roles.*.Illuminate\Validation\Rules\Enum' => __('You must select a valid role to perform on the website.'), ]; } } diff --git a/app/Http/Requests/StoreInvitationRequest.php b/app/Http/Requests/StoreInvitationRequest.php index 450ba53c9..564c30fe0 100644 --- a/app/Http/Requests/StoreInvitationRequest.php +++ b/app/Http/Requests/StoreInvitationRequest.php @@ -38,7 +38,10 @@ public function rules(): array public function messages(): array { return [ - 'email.not_in' => __('This user already belongs to this team.'), + 'email.required' => __('You must enter an email address.'), + 'email.unique' => __('This member has already been invited.'), + 'email.not_in' => __('This member already belongs to this organization.'), + 'role.required' => __('The user’s role is missing.'), ]; } } diff --git a/app/Http/Requests/UpdateCommunicationAndConsultationPreferencesRequest.php b/app/Http/Requests/UpdateCommunicationAndConsultationPreferencesRequest.php index 2fb76f093..7c27f5bf0 100644 --- a/app/Http/Requests/UpdateCommunicationAndConsultationPreferencesRequest.php +++ b/app/Http/Requests/UpdateCommunicationAndConsultationPreferencesRequest.php @@ -5,6 +5,7 @@ use App\Enums\ContactPerson; use App\Enums\EngagementFormat; use App\Enums\MeetingType; +use App\Rules\UniqueUserEmail; use App\Traits\ConditionallyRequireContactMethods; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; @@ -32,7 +33,7 @@ public function rules(): array 'string', 'email', 'max:255', - Rule::unique('users')->ignore($this->user()->id), + new UniqueUserEmail($this->user()->id), ], 'phone' => 'required_if:vrs,true|nullable|phone:CA', 'vrs' => 'nullable|boolean', diff --git a/app/Http/Requests/UpdateEngagementLanguagesRequest.php b/app/Http/Requests/UpdateEngagementLanguagesRequest.php index 13fdbdfdf..d0fc63d89 100644 --- a/app/Http/Requests/UpdateEngagementLanguagesRequest.php +++ b/app/Http/Requests/UpdateEngagementLanguagesRequest.php @@ -17,7 +17,7 @@ public function rules(): array return [ 'languages' => 'required|array|min:1', 'languages.*' => [ - Rule::in(array_keys(get_available_languages())), + Rule::in(array_keys(get_available_languages(true, false))), ], ]; } diff --git a/app/Http/Requests/UpdateEngagementRequest.php b/app/Http/Requests/UpdateEngagementRequest.php index d437b2f83..1cd5eb067 100644 --- a/app/Http/Requests/UpdateEngagementRequest.php +++ b/app/Http/Requests/UpdateEngagementRequest.php @@ -30,35 +30,39 @@ public function rules(): array ]; return [ - 'name.*' => 'nullable|string', 'name.en' => 'required_without:name.fr', 'name.fr' => 'required_without:name.en', - 'description.*' => 'nullable|string', + 'name.*' => 'nullable|string', 'description.en' => 'required_without:description.fr', 'description.fr' => 'required_without:description.en', + 'description.*' => 'nullable|string', 'window_start_date' => [ 'nullable', Rule::excludeIf($this->engagement->format !== 'interviews'), Rule::requiredIf($this->engagement->format === 'interviews'), 'date', + 'before:window_end_date', ], 'window_end_date' => [ 'nullable', Rule::excludeIf($this->engagement->format !== 'interviews'), Rule::requiredIf($this->engagement->format === 'interviews'), 'date', + 'after:window_start_date', ], 'window_start_time' => [ 'nullable', Rule::excludeIf($this->engagement->format !== 'interviews'), Rule::requiredIf($this->engagement->format === 'interviews'), 'date_format:G:i', + 'before:window_end_time', ], 'window_end_time' => [ 'nullable', Rule::excludeIf($this->engagement->format !== 'interviews'), Rule::requiredIf($this->engagement->format === 'interviews'), 'date_format:G:i', + 'after:window_start_time', ], 'timezone' => [ 'nullable', @@ -96,67 +100,69 @@ public function rules(): array ], 'street_address' => [ 'nullable', - Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('in_person', $this->input('meeting_types', []))), - Rule::requiredIf($this->engagement->format === 'interviews' && in_array('in_person', $this->input('meeting_types', []))), + Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('in_person', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + Rule::requiredIf($this->engagement->format === 'interviews' && in_array('in_person', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'string', ], 'unit_suite_floor' => [ 'nullable', - Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('in_person', $this->input('meeting_types', []))), + Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('in_person', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'string', ], 'locality' => [ 'nullable', - Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('in_person', $this->input('meeting_types', []))), - Rule::requiredIf($this->engagement->format === 'interviews' && in_array('in_person', $this->input('meeting_types', []))), + Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('in_person', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + Rule::requiredIf($this->engagement->format === 'interviews' && in_array('in_person', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'string', ], 'region' => [ 'nullable', - Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('in_person', $this->input('meeting_types', []))), - Rule::requiredIf($this->engagement->format === 'interviews' && in_array('in_person', $this->input('meeting_types', []))), + Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('in_person', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + Rule::requiredIf($this->engagement->format === 'interviews' && in_array('in_person', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), new Enum(ProvinceOrTerritory::class), ], 'postal_code' => [ 'nullable', - Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('in_person', $this->input('meeting_types', []))), - Rule::requiredIf($this->engagement->format === 'interviews' && in_array('in_person', $this->input('meeting_types', []))), + Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('in_person', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + Rule::requiredIf($this->engagement->format === 'interviews' && in_array('in_person', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'postal_code:CA', ], 'directions' => [ 'nullable', - Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('in_person', $this->input('meeting_types', []))), + Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('in_person', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'array', ], 'meeting_software' => [ 'nullable', - Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('web_conference', $this->input('meeting_types', []))), - Rule::requiredIf($this->engagement->format === 'interviews' && in_array('web_conference', $this->input('meeting_types', []))), + Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('web_conference', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + Rule::requiredIf($this->engagement->format === 'interviews' && in_array('web_conference', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + 'string', ], 'alternative_meeting_software' => [ 'nullable', - Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('web_conference', $this->input('meeting_types', []))), + Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('web_conference', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'boolean', ], 'meeting_url' => [ 'nullable', - Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('web_conference', $this->input('meeting_types', []))), - Rule::requiredIf($this->engagement->format === 'interviews' && in_array('web_conference', $this->input('meeting_types', []))), + Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('web_conference', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + Rule::requiredIf($this->engagement->format === 'interviews' && in_array('web_conference', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + 'url', ], 'additional_video_information' => [ 'nullable', - Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('web_conference', $this->input('meeting_types', []))), + Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('web_conference', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'array', ], 'meeting_phone' => [ 'nullable', - Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('phone', $this->input('meeting_types', []))), - Rule::requiredIf($this->engagement->format === 'interviews' && in_array('phone', $this->input('meeting_types', []))), - 'phone:CA', + Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('phone', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + Rule::requiredIf($this->engagement->format === 'interviews' && in_array('phone', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), + 'phone:CA,US', ], 'additional_phone_information' => [ 'nullable', - Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('phone', $this->input('meeting_types', []))), + Rule::excludeIf($this->engagement->format !== 'interviews' || ! in_array('phone', is_array($this->input('meeting_types')) ? $this->input('meeting_types') : [])), 'array', ], 'materials_by_date' => [ @@ -164,12 +170,14 @@ public function rules(): array Rule::excludeIf(! in_array($this->engagement->format, ['interviews', 'survey', 'other-async'])), Rule::requiredIf(in_array($this->engagement->format, ['interviews', 'survey', 'other-async'])), 'date', + 'before:complete_by_date', ], 'complete_by_date' => [ 'nullable', Rule::excludeIf(! in_array($this->engagement->format, ['interviews', 'survey', 'other-async'])), Rule::requiredIf(in_array($this->engagement->format, ['interviews', 'survey', 'other-async'])), 'date', + 'after:materials_by_date', ], 'document_languages' => [ 'nullable', @@ -233,6 +241,14 @@ public function withValidator($validator) $validator->sometimes('other_accepted_format.fr', 'required_without:other_accepted_format.en', function ($input) { return ! $input->other_accepted_formats === false; }); + + $validator->sometimes('signup_by_date', 'before:window_start_date', function ($input) { + return ! blank($input->window_start_date); + }); + + $validator->sometimes('signup_by_date', 'before:materials_by_date', function ($input) { + return ! blank($input->materials_by_date); + }); } public function prepareForValidation(): void @@ -270,8 +286,8 @@ public function attributes(): array 'locality' => __('city or town'), 'region' => __('province or territory'), 'meeting_url' => __('link to join the meeting'), - 'meeting_phone' => __('meeting phone number'), - 'materials_by_date' => __('sent by date'), + 'meeting_phone' => __('phone number to join the meeting'), + 'materials_by_date' => __('date for materials to be sent by'), 'complete_by_date' => __('due date'), 'signup_by_date' => __('sign up deadline'), 'other_accepted_formats' => __('accepted formats'), @@ -281,19 +297,44 @@ public function attributes(): array public function messages(): array { return [ - 'name.*.required_without' => __('An engagement name must be provided in at least one language.'), - 'description.*.required_without' => __('An engagement description must be provided in at least one language.'), + 'name.*.required_without' => __('An engagement name must be provided in at least English or French.'), + 'description.*.required_without' => __('An engagement description must be provided in at least English or French.'), + 'document_languages.required' => __('Please select a language that the engagement documents will be in.'), + 'document_languages.*.in' => __('Please select a language that the engagement documents will be in.'), + 'window_start_date.required' => __('You must enter a :attribute'), + 'window_start_date.before' => __('The :attribute must be before the :date.'), + 'window_end_date.required' => __('You must enter a :attribute'), + 'window_end_date.after' => __('The :attribute must be after the :date.'), 'window_start_time.date_format' => __('The :attribute is not in the right format.'), + 'window_start_time.required' => __('You must enter a :attribute'), + 'window_start_time.before' => __('The :attribute must be before the :date.'), 'window_end_time.date_format' => __('The :attribute is not in the right format.'), + 'window_end_time.required' => __('You must enter a :attribute'), + 'window_end_time.after' => __('The :attribute must be after the :date.'), + 'timezone.required' => __('You must enter a :attribute'), + 'timezone.timezone' => __('You must enter a :attribute'), 'street_address.required' => __('You must enter a :attribute for the meeting location.'), 'locality.required' => __('You must enter a :attribute for the meeting location.'), 'region.required' => __('You must enter a :attribute for the meeting location.'), 'postal_code.required' => __('You must enter a :attribute for the meeting location.'), + 'meeting_types.required' => __('You must select at least one way to attend the meeting.'), 'meeting_software.required' => __('You must indicate the :attribute.'), - 'meeting_url.required' => __('You must provide a :attribute.'), + 'meeting_url.required' => __('You must enter a :attribute.'), 'accepted_formats.required' => __('You must indicate the :attribute.'), + 'accepted_formats.*.Illuminate\Validation\Rules\Enum' => __('You must select a valid format.'), 'other_accepted_formats.required' => __('You must indicate the :attribute.'), - 'other_accepted_format.*.required_without' => __('The other accepted format must be provided in at least one language.'), + 'other_accepted_format.*.string' => __('The other accepted format must be a string.'), + 'other_accepted_format.*.required_without' => __('The other accepted format must be provided in at least English or French.'), + 'meeting_types.*.Illuminate\Validation\Rules\Enum' => __('You must select a valid meeting type.'), + 'materials_by_date.required' => __('You must enter a :attribute.'), + 'materials_by_date.date' => __('Please enter a valid :attribute.'), + 'materials_by_date.before' => __('The :attribute must be before the :date.'), + 'complete_by_date.required' => __('You must enter a :attribute.'), + 'complete_by_date.date' => __('Please enter a valid :attribute.'), + 'complete_by_date.after' => __('The :attribute must be after the :date.'), + 'signup_by_date' => __('You must enter a :attribute.'), + 'signup_by_date.date' => __('Please enter a valid date for the :attribute.'), + 'signup_by_date.before' => __('The :attribute must be before the :date.'), ]; } } diff --git a/app/Http/Requests/UpdateEngagementSelectionCriteriaRequest.php b/app/Http/Requests/UpdateEngagementSelectionCriteriaRequest.php index ce4c15d67..2f12bfc8a 100644 --- a/app/Http/Requests/UpdateEngagementSelectionCriteriaRequest.php +++ b/app/Http/Requests/UpdateEngagementSelectionCriteriaRequest.php @@ -2,6 +2,7 @@ namespace App\Http\Requests; +use App\Enums\LocationType; use App\Enums\ProvinceOrTerritory; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; @@ -20,7 +21,7 @@ public function authorize(): bool public function rules(): array { return [ - 'location_type' => 'required|in:regions,localities', + 'location_type' => ['required', new Enum(LocationType::class)], 'regions' => 'nullable|array|required_if:location_type,regions|exclude_if:location_type,localities', 'regions.*' => [new Enum(ProvinceOrTerritory::class)], 'locations' => 'nullable|array|required_if:location_type,localities|exclude_if:location_type,regions', @@ -40,7 +41,7 @@ public function rules(): array 'boolean', Rule::requiredIf(function () { return request('other_identity_type') === 'gender-and-sexual-identity' - && count(request('gender_and_sexual_identities') ?? []) === 0; + && (! is_array(request('gender_and_sexual_identities')) || count(request('gender_and_sexual_identities')) === 0); }), 'exclude_unless:other_identity_type,gender-and-sexual-identity', ], @@ -72,19 +73,57 @@ public function rules(): array ]; } + public function attributes(): array + { + return [ + 'age_brackets' => __('age group'), + 'age_brackets.*' => __('age group'), + 'area_types' => __('area type'), + 'area_types.*' => __('area type'), + 'disability_types' => __('Disability or Deaf group'), + 'disability_types.*' => __('Disability or Deaf group'), + 'ethnoracial_identities' => __('ethnoracial group'), + 'ethnoracial_identities.*' => __('ethnoracial group'), + 'first_languages' => __('first language'), + 'first_languages.*' => __('first language'), + 'gender_and_sexual_identities' => __('gender or sexual identity group'), + 'gender_and_sexual_identities.*' => __('gender or sexual identity group'), + 'ideal_participants' => __('ideal number of participants'), + 'indigenous_identities' => __('Indigenous group'), + 'indigenous_identities.*' => __('Indigenous group'), + 'minimum_participants' => __('minimum number of participants'), + 'nb_gnc_fluid_identity' => __('Non-binary/Gender non-conforming/Gender fluid identity'), + ]; + } + public function messages(): array { return [ - 'minimum_participants.lte' => __('The minimum number of participants is more than the ideal number of participants. Please enter a minimum that is less than or the same as the ideal number of participants.'), + 'minimum_participants.required' => __('You must enter a :attribute.'), + 'minimum_participants.lte' => __('Please enter a :attribute that is less than or the same as the ideal number of participants.'), + 'minimum_participants.integer' => __('The :attribute must be a number.'), 'locations.*.region' => __('You must enter a province or territory.'), 'locations.*.locality' => __('You must enter a city or town.'), 'locations.required_if' => __('You must enter at least one city or town.'), 'regions.required_if' => __('You must choose at least one province or territory.'), - 'disability_types.required_if' => __('One or more Disability or Deaf groups are required.'), - 'gender_and_sexual_identities.required_if' => __('You must select at least one gender or sexual identity group.'), - 'gender_and_sexual_identities.required' => __('You must select at least one gender or sexual identity group.'), - 'nb_gnc_fluid_identity.required' => __('You must select at least one gender or sexual identity group.'), - + 'regions.*.Illuminate\Validation\Rules\Enum' => __('You must choose a valid province or territory'), + 'disability_types.required_if' => __('If you are looking for a specific :attribute, you must select at least one.'), + 'disability_types.*.exists' => __('You must select a valid :attribute.'), + 'age_brackets.required_if' => __('If you are interested in engaging a specific :attribute, you must select at least one.'), + 'age_brackets.*.exists' => __('You must select a valid :attribute.'), + 'gender_and_sexual_identities.required_if' => __('If you are interested in engaging a specific :attribute, you must select at least one.'), + 'gender_and_sexual_identities.required' => __('If you are interested in engaging a specific :attribute, you must select at least one.'), + 'gender_and_sexual_identities.*.exists' => __('You must select a valid :attribute.'), + 'nb_gnc_fluid_identity.required' => __('If you are interested in engaging a specific :attribute, you must select at least one.', ['attribute' => __('gender or sexual identity group')]), + 'indigenous_identities.required_if' => __('If you are interested in engaging a specific :attribute, you must select at least one.'), + 'indigenous_identities.*.exists' => __('You must select a valid :attribute.'), + 'ethnoracial_identities.required_if' => __('If you are interested in engaging a specific :attribute, you must select at least one.'), + 'ethnoracial_identities.*.exists' => __('You must select a valid :attribute.'), + 'first_languages.required_if' => __('If you are interested in engaging a specific :attribute, you must select at least one.'), + 'first_languages.*.in' => __('You must select a valid :attribute.'), + 'area_types.required_if' => __('If you are interested in engaging a specific :attribute, you must select at least one.'), + 'area_types.*.exists' => __('You must select a valid :attribute.'), + 'other_identity_type.required_if' => __('If you are looking for a group with a specific experience or identity, you must select which type of experience or identity you are looking for.'), ]; } diff --git a/app/Http/Requests/UpdateIndividualCommunicationAndConsultationPreferencesRequest.php b/app/Http/Requests/UpdateIndividualCommunicationAndConsultationPreferencesRequest.php index 1210f5faf..b5874d88e 100644 --- a/app/Http/Requests/UpdateIndividualCommunicationAndConsultationPreferencesRequest.php +++ b/app/Http/Requests/UpdateIndividualCommunicationAndConsultationPreferencesRequest.php @@ -4,9 +4,9 @@ use App\Enums\ContactPerson; use App\Enums\MeetingType; +use App\Rules\UniqueUserEmail; use App\Traits\ConditionallyRequireContactMethods; use Illuminate\Foundation\Http\FormRequest; -use Illuminate\Validation\Rule; use Illuminate\Validation\Rules\Enum; use Illuminate\Validation\Validator; @@ -31,7 +31,7 @@ public function rules(): array 'string', 'email', 'max:255', - Rule::unique('users')->ignore($this->user()->id), + new UniqueUserEmail($this->user()->id), ], 'phone' => 'required_if:vrs,true|nullable|phone:CA', 'vrs' => 'nullable|boolean', diff --git a/app/Http/Requests/UpdateIndividualRequest.php b/app/Http/Requests/UpdateIndividualRequest.php index 441406447..4d52db458 100644 --- a/app/Http/Requests/UpdateIndividualRequest.php +++ b/app/Http/Requests/UpdateIndividualRequest.php @@ -9,9 +9,12 @@ use Illuminate\Support\Str; use Illuminate\Validation\Rule; use Illuminate\Validation\Rules\Enum; +use Worksome\RequestFactories\Concerns\HasFactory; class UpdateIndividualRequest extends FormRequest { + use HasFactory; + /** * Determine if the user is authorized to make this request. */ @@ -34,9 +37,9 @@ public function rules(): array ], 'pronouns' => 'nullable|array:'.implode(',', to_written_languages($this->individual->languages)), 'bio' => 'required|array:'.implode(',', to_written_languages($this->individual->languages)).'|required_array_keys:'.get_written_language_for_signed_language($this->individual->user->locale), - 'bio.*' => 'nullable|string', 'bio.en' => 'required_without:bio.fr', 'bio.fr' => 'required_without:bio.en', + 'bio.*' => 'nullable|string', 'working_languages' => 'nullable|array', 'consulting_services' => [ 'nullable', @@ -56,7 +59,7 @@ public function rules(): array public function prepareForValidation() { $this->merge([ - 'social_links' => array_map('normalize_url', $this->social_links ?? []), + 'social_links' => array_map('normalize_url', is_array($this->social_links) ? $this->social_links : []), 'website_link' => normalize_url($this->website_link), ]); } @@ -64,18 +67,23 @@ public function prepareForValidation() public function attributes(): array { return [ - 'bio.*' => __('bio'), + 'region' => __('province or territory'), ]; } public function messages(): array { $messages = [ - 'bio.*.required_without' => 'You must enter your :attribute.', + 'bio.required_array_keys' => __('Your bio must be provided in at least English or French.'), + 'bio.*.required_without' => __('Your bio must be provided in at least English or French.'), + 'bio.array' => __('Your bio must be provided in at least English or French.'), + 'consulting_services.*.Illuminate\Validation\Rules\Enum' => __('The selected consulting service is invalid'), + 'pronouns.array' => __('Your pronouns must be provided in at least English or French.'), + 'website_link.active_url' => __('You must enter a valid website link.'), ]; foreach ($this->social_links as $key => $value) { - $messages['social_links.'.$key.'.active_url'] = __('You must enter a valid website address for :key.', ['key' => Str::studly($key)]); + $messages['social_links.'.$key.'.active_url'] = __('You must enter a valid link for :key.', ['key' => Str::studly($key)]); } return $messages; diff --git a/app/Http/Requests/UpdateProjectRequest.php b/app/Http/Requests/UpdateProjectRequest.php index 630d914cd..43fb090ec 100644 --- a/app/Http/Requests/UpdateProjectRequest.php +++ b/app/Http/Requests/UpdateProjectRequest.php @@ -71,7 +71,7 @@ public function messages(): array 'name.*.required_without' => __('A project name must be provided in at least one language.'), 'goals.*.required_without' => __('Project goals must be provided in at least one language.'), 'scope.*.required_without' => __('Project scope must be provided in at least one language.'), - 'outcome_analysis.required' => __('You must identify who will be going through the results from this project and writing a report.'), + 'outcome_analysis.required' => __('You must identify who will be going through the results and producing an outcome.'), 'outcomes.*.required_without' => __('Tangible outcomes must be provided in at least one language.'), 'public_outcomes.required' => __('You must indicate if the reports will be publicly available.'), ]; @@ -83,10 +83,14 @@ public function prepareForValidation() 'impacts' => [], 'regions' => [], 'outcome_analysis' => [], + 'other' => 0, ]; // Prepare input for validation $this->mergeIfMissing($fallbacks); + if (! $this['other']) { + $this->merge(['outcome_analysis_other' => []]); + } // Prepare old input in case of validation failure request()->mergeIfMissing($fallbacks); diff --git a/app/Models/Engagement.php b/app/Models/Engagement.php index cac2d9cf8..a196cc849 100644 --- a/app/Models/Engagement.php +++ b/app/Models/Engagement.php @@ -21,10 +21,16 @@ use Illuminate\Validation\ValidationException; use Makeable\EloquentStatus\HasStatus; use Propaganistas\LaravelPhone\Casts\E164PhoneNumberCast; +use Spatie\SchemalessAttributes\Casts\SchemalessAttributes; use Spatie\Translatable\HasTranslations; use Staudenmeir\EloquentHasManyDeep\HasManyDeep; use Staudenmeir\EloquentHasManyDeep\HasRelationships; +/** + * App\Models\Engagement + * + * @property SchemalessAttributes::class $extra_attributes + */ class Engagement extends Model { use HasFactory; diff --git a/app/Models/Individual.php b/app/Models/Individual.php index 72b4e51da..104dea022 100644 --- a/app/Models/Individual.php +++ b/app/Models/Individual.php @@ -30,6 +30,7 @@ use ParagonIE\CipherSweet\EncryptedRow; use Spatie\LaravelCipherSweet\Concerns\UsesCipherSweet; use Spatie\LaravelCipherSweet\Contracts\CipherSweetEncrypted; +use Spatie\SchemalessAttributes\Casts\SchemalessAttributes; use Spatie\Sluggable\HasSlug; use Spatie\Sluggable\SlugOptions; use Spatie\Translatable\HasTranslations; @@ -39,6 +40,11 @@ use Staudenmeir\LaravelMergedRelations\Eloquent\Relations\MergedRelation; use TheIconic\NameParser\Parser as NameParser; +/** + * App\Models\Individual + * + * @property SchemalessAttributes::class $extra_attributes + */ class Individual extends Model implements CipherSweetEncrypted { use UsesCipherSweet; diff --git a/app/Models/MatchingStrategy.php b/app/Models/MatchingStrategy.php index 7265db6c9..0ddd8e747 100644 --- a/app/Models/MatchingStrategy.php +++ b/app/Models/MatchingStrategy.php @@ -3,6 +3,8 @@ namespace App\Models; use App\Enums\IdentityCluster; +use App\Enums\IdentityType; +use App\Enums\LocationType; use App\Enums\ProvinceOrTerritory; use App\Models\Scopes\ReachableIdentityScope; use App\Traits\HasSchemalessAttributes; @@ -12,7 +14,13 @@ use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\MorphTo; use Illuminate\Support\Arr; +use Spatie\SchemalessAttributes\Casts\SchemalessAttributes; +/** + * App\Models\MatchingStrategy + * + * @property SchemalessAttributes::class $extra_attributes + */ class MatchingStrategy extends Model { use HasFactory; @@ -92,12 +100,12 @@ public function hasIdentities(array $identities): bool public function locationType(): Attribute { return Attribute::make( - get: function ($value) { + get: function () { if (! empty($this->regions)) { - return 'regions'; + return LocationType::Regions->value; } if (! empty($this->locations)) { - return 'localities'; + return LocationType::Localities->value; } return null; @@ -108,22 +116,25 @@ public function locationType(): Attribute public function locationSummary(): Attribute { return Attribute::make( - get: function ($value) { + get: function () { if (count($this->regions ?? [])) { - if (count($this->regions) === 13) { - return __('All provinces and territories'); + if (count($this->regions) === count(ProvinceOrTerritory::cases())) { + return [__('All provinces and territories')]; } else { $regions = Arr::map($this->regions, fn ($region) => ProvinceOrTerritory::labels()[$region]); - return implode(" \n", Arr::sort($regions)); + return Arr::sort($regions); } } elseif (count($this->locations ?? [])) { - $locations = Arr::map($this->locations ?? [], fn ($location) => $location['locality'].', '.ProvinceOrTerritory::labels()[$location['region']]); + $locations = Arr::map( + $this->locations ?? [], + fn ($location) => __(':locality, :region', ['locality' => $location['locality'], 'region' => ProvinceOrTerritory::labels()[$location['region']]]) + ); - return implode(" \n", Arr::sort($locations)); + return Arr::sort($locations); } - return __('All provinces and territories'); + return [__('All provinces and territories')]; }, ); } @@ -131,14 +142,14 @@ public function locationSummary(): Attribute public function disabilityAndDeafGroupSummary(): Attribute { return Attribute::make( - get: function ($value) { + get: function () { if ($this->hasDisabilityTypes()) { - return implode(" \n", $this->identities()->whereJsonContains('clusters', IdentityCluster::DisabilityAndDeaf)->pluck('name')->toArray()); + return $this->identities()->whereJsonContains('clusters', IdentityCluster::DisabilityAndDeaf)->pluck('name')->toArray(); } elseif ($this->cross_disability_and_deaf) { - return __('Cross disability (includes people with disabilities, Deaf people, and supporters)'); + return [__('Cross disability (includes people with disabilities, Deaf people, and supporters)')]; } - return __('Cross disability (includes people with disabilities, Deaf people, and supporters)'); + return [__('Cross disability (includes people with disabilities, Deaf people, and supporters)')]; }, ); } @@ -146,16 +157,16 @@ public function disabilityAndDeafGroupSummary(): Attribute public function otherIdentitiesSummary(): Attribute { return Attribute::make( - get: function ($value) { + get: function () { return match ($this->extra_attributes->get('other_identity_type', null)) { - 'age-bracket' => implode(" \n", $this->identities()->whereJsonContains('clusters', IdentityCluster::Age)->pluck('name')->toArray()), - 'gender-and-sexual-identity' => implode(" \n", $this->identities()->whereJsonContains('clusters', IdentityCluster::GenderAndSexuality)->pluck('name')->toArray()), - 'indigenous-identity' => implode(" \n", $this->identities()->whereJsonContains('clusters', IdentityCluster::Indigenous)->pluck('name')->toArray()), - 'ethnoracial-identity' => implode(" \n", $this->identities()->whereJsonContains('clusters', IdentityCluster::Ethnoracial)->pluck('name')->toArray()), - 'refugee-or-immigrant' => implode(" \n", $this->identities()->whereJsonContains('clusters', IdentityCluster::Status)->pluck('name')->toArray()), - 'first-language' => implode(" \n", $this->languages->map(fn ($language) => $language->name)->toArray()), - 'area-type' => implode(" \n", $this->identities()->whereJsonContains('clusters', IdentityCluster::Area)->pluck('name')->toArray()), - default => __('Intersectional').' - '.__('This engagement is looking for people who have all sorts of different identities and lived experiences, such as race, gender, age, sexual orientation, and more.'), + IdentityType::AgeBracket->value => $this->identities()->whereJsonContains('clusters', IdentityCluster::Age)->pluck('name')->toArray(), + IdentityType::GenderAndSexualIdentity->value => $this->identities()->whereJsonContains('clusters', IdentityCluster::GenderAndSexuality)->pluck('name')->toArray(), + IdentityType::IndigenousIdentity->value => $this->identities()->whereJsonContains('clusters', IdentityCluster::Indigenous)->pluck('name')->toArray(), + IdentityType::EthnoracialIdentity->value => $this->identities()->whereJsonContains('clusters', IdentityCluster::Ethnoracial)->pluck('name')->toArray(), + IdentityType::RefugeeOrImmigrant->value => $this->identities()->whereJsonContains('clusters', IdentityCluster::Status)->pluck('name')->toArray(), + IdentityType::FirstLanguage->value => $this->languages->map(fn ($language) => $language->name)->toArray(), + IdentityType::AreaType->value => $this->identities()->whereJsonContains('clusters', IdentityCluster::Area)->pluck('name')->toArray(), + default => [__('Intersectional - This engagement is looking for people who have all sorts of different identities and lived experiences, such as race, gender, age, sexual orientation, and more.')], }; }, ); diff --git a/app/Models/Organization.php b/app/Models/Organization.php index ef457df0a..523b82e09 100644 --- a/app/Models/Organization.php +++ b/app/Models/Organization.php @@ -40,6 +40,11 @@ use Staudenmeir\LaravelMergedRelations\Eloquent\HasMergedRelationships; use Staudenmeir\LaravelMergedRelations\Eloquent\Relations\MergedRelation; +/** + * App\Models\Organization + * + * @property SchemalessAttributes::class $extra_attributes + */ class Organization extends Model { use CascadesDeletes; diff --git a/app/Models/Project.php b/app/Models/Project.php index 5266f6dae..1e843e9d6 100644 --- a/app/Models/Project.php +++ b/app/Models/Project.php @@ -254,15 +254,6 @@ public function isPublishable(): bool return true; } - public function timeframe(): string - { - if ($this->start_date->translatedFormat('Y') === $this->end_date->translatedFormat('Y')) { - return $this->start_date->translatedFormat('F').'–'.$this->end_date->translatedFormat('F Y'); - } else { - return $this->start_date->translatedFormat('F Y').'–'.$this->end_date->translatedFormat('F Y'); - } - } - public function impacts(): BelongsToMany { return $this->belongsToMany(Impact::class); diff --git a/app/Models/RegulatedOrganization.php b/app/Models/RegulatedOrganization.php index a999825e5..bdd36c4e4 100644 --- a/app/Models/RegulatedOrganization.php +++ b/app/Models/RegulatedOrganization.php @@ -30,6 +30,11 @@ use Spatie\Sluggable\SlugOptions; use Spatie\Translatable\HasTranslations; +/** + * App\Models\RegulatedOrganization + * + * @property SchemalessAttributes::class $extra_attributes + */ class RegulatedOrganization extends Model { use CascadesDeletes; diff --git a/app/Models/User.php b/app/Models/User.php index 1eed4a8f4..530a9b668 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -27,12 +27,15 @@ use ShiftOneLabs\LaravelCascadeDeletes\CascadesDeletes; use Spatie\LaravelCipherSweet\Concerns\UsesCipherSweet; use Spatie\LaravelCipherSweet\Contracts\CipherSweetEncrypted; +use Spatie\SchemalessAttributes\Casts\SchemalessAttributes; use Spatie\SchemalessAttributes\SchemalessAttributesTrait; use Staudenmeir\LaravelMergedRelations\Eloquent\HasMergedRelationships; /** * @property Collection $unreadNotifications * @property bool $requires_vrs + * @property SchemalessAttributes::class $extra_attributes + * @property SchemalessAttributes::class $notification_settings */ class User extends Authenticatable implements CipherSweetEncrypted, FilamentUser, HasLocalePreference, MustVerifyEmail { diff --git a/app/Policies/EngagementPolicy.php b/app/Policies/EngagementPolicy.php index c19494617..86ffc3791 100644 --- a/app/Policies/EngagementPolicy.php +++ b/app/Policies/EngagementPolicy.php @@ -7,7 +7,6 @@ use App\Traits\UserCanViewPublishedContent; use Illuminate\Auth\Access\HandlesAuthorization; use Illuminate\Auth\Access\Response; -use Illuminate\Support\Str; class EngagementPolicy { @@ -17,10 +16,7 @@ class EngagementPolicy public function before(User $user, string $ability): null|Response { if ($user->checkStatus('suspended') && $ability !== 'view') { - return Response::deny(Str::markdown( - __('Your account has been suspended. Because of that, you do not have access to this page. Please contact us if you need further assistance.') - .contact_information() - )); + return Response::deny(__('Your account has been suspended. Because of that, you do not have access to this page. Please contact us if you need further assistance.')); } return null; diff --git a/app/Policies/IndividualPolicy.php b/app/Policies/IndividualPolicy.php index 18d407540..df8c2f5a3 100644 --- a/app/Policies/IndividualPolicy.php +++ b/app/Policies/IndividualPolicy.php @@ -7,7 +7,6 @@ use App\Traits\UserCanViewPublishedContent; use Illuminate\Auth\Access\HandlesAuthorization; use Illuminate\Auth\Access\Response; -use Illuminate\Support\Str; class IndividualPolicy { @@ -16,10 +15,7 @@ class IndividualPolicy public function before(User $user, string $ability): null|Response { if ($user->checkStatus('suspended') && $ability !== 'view') { - return Response::deny(Str::markdown( - __('Your account has been suspended. Because of that, you do not have access to this page. Please contact us if you need further assistance.') - .contact_information() - )); + return Response::deny(__('Your account has been suspended. Because of that, you do not have access to this page. Please contact us if you need further assistance.')); } return null; diff --git a/app/Policies/OrganizationPolicy.php b/app/Policies/OrganizationPolicy.php index efc43a123..3d749c319 100644 --- a/app/Policies/OrganizationPolicy.php +++ b/app/Policies/OrganizationPolicy.php @@ -7,7 +7,6 @@ use App\Traits\UserCanViewPublishedContent; use Illuminate\Auth\Access\HandlesAuthorization; use Illuminate\Auth\Access\Response; -use Illuminate\Support\Str; class OrganizationPolicy { @@ -17,10 +16,7 @@ class OrganizationPolicy public function before(User $user, string $ability): null|Response { if ($user->checkStatus('suspended') && $ability !== 'view') { - return Response::deny(Str::markdown( - __('Your account has been suspended. Because of that, you do not have access to this page. Please contact us if you need further assistance.') - .contact_information() - )); + return Response::deny(__('Your account has been suspended. Because of that, you do not have access to this page. Please contact us if you need further assistance.')); } return null; diff --git a/app/Policies/ProjectPolicy.php b/app/Policies/ProjectPolicy.php index ce55ecabe..671727866 100644 --- a/app/Policies/ProjectPolicy.php +++ b/app/Policies/ProjectPolicy.php @@ -7,7 +7,6 @@ use App\Traits\UserCanViewPublishedContent; use Illuminate\Auth\Access\HandlesAuthorization; use Illuminate\Auth\Access\Response; -use Illuminate\Support\Str; class ProjectPolicy { @@ -17,10 +16,7 @@ class ProjectPolicy public function before(User $user, string $ability): null|Response { if ($user->checkStatus('suspended') && $ability !== 'view') { - return Response::deny(Str::markdown( - __('Your account has been suspended. Because of that, you do not have access to this page. Please contact us if you need further assistance.') - .contact_information() - )); + return Response::deny(__('Your account has been suspended. Because of that, you do not have access to this page. Please contact us if you need further assistance.')); } return null; diff --git a/app/Policies/RegulatedOrganizationPolicy.php b/app/Policies/RegulatedOrganizationPolicy.php index 33e492cb7..dec12da13 100644 --- a/app/Policies/RegulatedOrganizationPolicy.php +++ b/app/Policies/RegulatedOrganizationPolicy.php @@ -7,7 +7,6 @@ use App\Traits\UserCanViewPublishedContent; use Illuminate\Auth\Access\HandlesAuthorization; use Illuminate\Auth\Access\Response; -use Illuminate\Support\Str; class RegulatedOrganizationPolicy { @@ -17,10 +16,7 @@ class RegulatedOrganizationPolicy public function before(User $user, string $ability): null|Response { if ($user->checkStatus('suspended') && $ability !== 'view') { - return Response::deny(Str::markdown( - __('Your account has been suspended. Because of that, you do not have access to this page. Please contact us if you need further assistance.') - .contact_information() - )); + return Response::deny(__('Your account has been suspended. Because of that, you do not have access to this page. Please contact us if you need further assistance.')); } return null; diff --git a/app/Policies/UserPolicy.php b/app/Policies/UserPolicy.php index c2df48afd..4026f2333 100644 --- a/app/Policies/UserPolicy.php +++ b/app/Policies/UserPolicy.php @@ -5,7 +5,6 @@ use App\Models\User; use Illuminate\Auth\Access\HandlesAuthorization; use Illuminate\Auth\Access\Response; -use Illuminate\Support\Str; class UserPolicy { @@ -14,10 +13,7 @@ class UserPolicy public function before(User $user, string $ability): null|Response { if ($user->checkStatus('suspended')) { - return Response::deny(Str::markdown( - __('Your account has been suspended. Because of that, you do not have access to this page. Please contact us if you need further assistance.') - .contact_information() - )); + return Response::deny(__('Your account has been suspended. Because of that, you do not have access to this page. Please contact us if you need further assistance.')); } return null; diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 6802592d9..c72036f88 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -17,7 +17,7 @@ class RouteServiceProvider extends ServiceProvider * * @var string */ - public const HOME = '/en/home/'; + public const HOME = '/'; /** * The controller namespace for the application. diff --git a/app/Rules/UniqueUserEmail.php b/app/Rules/UniqueUserEmail.php index 1d0b86779..ed2d2affa 100644 --- a/app/Rules/UniqueUserEmail.php +++ b/app/Rules/UniqueUserEmail.php @@ -8,9 +8,28 @@ class UniqueUserEmail implements InvokableRule { + public $id; + + public $idColumn; + + // Can use the $id and $idColumn to define a model to ignore. Similar to how Laravel's unique validation rule works + // see: https://laravel.com/docs/9.x/validation#rule-unique + public function __construct(mixed $id = null, ?string $idColumn = null) + { + $this->id = $id; + $this->idColumn = $idColumn ?? 'id'; + } + public function __invoke($attribute, mixed $value, $fail): void { - if (User::whereBlind($attribute, $attribute.'_index', Str::lower($value))->exists()) { + $exists = User::whereBlind($attribute, $attribute.'_index', Str::lower($value)) + ->when($this->id, function ($query, $role) { + $query->whereNot(function ($query) { + $query->where($this->idColumn, $this->id); + }); + }) + ->exists(); + if ($exists) { $fail(__('A user with this email already exists.')); } } diff --git a/app/Settings.php b/app/Settings.php deleted file mode 100644 index a30c6880f..000000000 --- a/app/Settings.php +++ /dev/null @@ -1,9 +0,0 @@ -published_at = date('Y-m-d h:i:s', time()); + $this->published_at = now(); $this->save(); flash(__('Congratulations! Your have successfully published your :model page.', ['model' => $this->getSingularName()]), 'success'); } @@ -50,7 +50,7 @@ public function handleUpdateRequest(mixed $request, int $step = 0): RedirectResp } elseif ($request->input('save_and_next')) { return redirect(localized_route($this->getRoutePrefix().'.edit', [$this->getRoutePlaceholder() => $this, 'step' => $step + 1])); } elseif ($request->input('preview')) { - flash(__('You have successfully saved your draft :item page.', ['item' => $this->getSingularName()]).' '.__('Return to edit mode').'', 'success'); + flash(__('You have successfully saved your draft :item page.', ['item' => $this->getSingularName()]), 'success'); return redirect(localized_route($this->getRoutePrefix().'.show', $this)); } elseif ($request->input('publish')) { diff --git a/app/View/Components/Notification.php b/app/View/Components/Notification.php index 7ca5c18c2..f69684638 100644 --- a/app/View/Components/Notification.php +++ b/app/View/Components/Notification.php @@ -2,6 +2,7 @@ namespace App\View\Components; +use Illuminate\Contracts\Support\Htmlable; use Illuminate\Contracts\View\View; use Illuminate\Notifications\DatabaseNotification; use Illuminate\View\Component; @@ -12,7 +13,7 @@ class Notification extends Component public string $title = ''; - public string $body = ''; + public string|Htmlable $body = ''; public function __construct(DatabaseNotification $notification) { diff --git a/app/View/Components/Notification/AccessNeedsFacilitationRequested.php b/app/View/Components/Notification/AccessNeedsFacilitationRequested.php index 6294fe5ee..4151aa129 100644 --- a/app/View/Components/Notification/AccessNeedsFacilitationRequested.php +++ b/app/View/Components/Notification/AccessNeedsFacilitationRequested.php @@ -19,10 +19,8 @@ public function __construct(DatabaseNotification $notification) $this->individual = Individual::find($notification->data['individual_id']); $this->engagement = Engagement::find($notification->data['engagement_id']); $this->title = __(':name requires access needs facilitation', ['name' => $this->individual->name]); - $this->body = __( + $this->body = safe_markdown( 'Please contact :name to facilitate their access needs being met on the engagement [:engagement_name](:engagement_url).', - // Following array throws errors because it thinks the localized engagement name might be an array - // @phpstan-ignore-next-line [ 'name' => $this->individual->name, 'engagement_name' => $this->engagement->name, diff --git a/app/View/Components/Notification/AgreementReceived.php b/app/View/Components/Notification/AgreementReceived.php index d3be0bac5..1a5fcafb2 100644 --- a/app/View/Components/Notification/AgreementReceived.php +++ b/app/View/Components/Notification/AgreementReceived.php @@ -15,7 +15,7 @@ public function __construct(DatabaseNotification $notification) { $this->project = Project::find($notification->data['project_id']); $this->title = __('Your agreement has been received'); - $this->body = __('Your agreement has been received for **:project**. You can now publish your project page and engagement details.', [ + $this->body = safe_markdown('Your agreement has been received for **:project**. You can now publish your project page and engagement details.', [ 'project' => $this->project->getTranslation('name', locale()), ]); diff --git a/app/View/Components/Notification/EstimateApproved.php b/app/View/Components/Notification/EstimateApproved.php index 45e3aaba6..98ef5faa1 100644 --- a/app/View/Components/Notification/EstimateApproved.php +++ b/app/View/Components/Notification/EstimateApproved.php @@ -20,7 +20,7 @@ public function __construct(DatabaseNotification $notification) $this->project = Project::find($notification->data['project_id']); $this->projectable = $this->project->projectable; $this->title = __('New estimate approval'); - $this->body = __('[:projectable](:projectable_url) has approved an estimate for their project [:project](:project_url).', [ + $this->body = safe_markdown('[:projectable](:projectable_url) has approved an estimate for their project [:project](:project_url).', [ 'projectable' => $this->projectable->getTranslation('name', locale()), 'projectable_url' => localized_route($this->projectable->getRoutePrefix().'.show', $this->projectable), 'project' => $this->project->getTranslation('name', locale()), diff --git a/app/View/Components/Notification/EstimateRequested.php b/app/View/Components/Notification/EstimateRequested.php index e55e12888..a9e8cd307 100644 --- a/app/View/Components/Notification/EstimateRequested.php +++ b/app/View/Components/Notification/EstimateRequested.php @@ -20,7 +20,7 @@ public function __construct(DatabaseNotification $notification) $this->project = Project::find($notification->data['project_id']); $this->projectable = $this->project->projectable; $this->title = __('New estimate request'); - $this->body = __('[:projectable](:projectable_url) has requested an estimate for their project [:project](:project_url).', [ + $this->body = safe_markdown('[:projectable](:projectable_url) has requested an estimate for their project [:project](:project_url).', [ 'projectable' => $this->projectable->getTranslation('name', locale()), 'projectable_url' => localized_route($this->projectable->getRoutePrefix().'.show', $this->projectable), 'project' => $this->project->getTranslation('name', locale()), diff --git a/app/View/Components/Notification/EstimateReturned.php b/app/View/Components/Notification/EstimateReturned.php index 6bcdce9f6..a75a9f678 100644 --- a/app/View/Components/Notification/EstimateReturned.php +++ b/app/View/Components/Notification/EstimateReturned.php @@ -15,7 +15,7 @@ public function __construct(DatabaseNotification $notification) { $this->project = Project::find($notification->data['project_id']); $this->title = __('Your estimate has been returned'); - $this->body = __('Your estimate for **:project**, along with a project agreement for to sign, has been sent to [:contact](mailto::contact).', [ + $this->body = safe_markdown('Your estimate for **:project**, along with a project agreement for to sign, has been sent to <:contact>.', [ 'project' => $this->project->getTranslation('name', locale()), 'contact' => $this->project->contact_person_email, ]); diff --git a/app/View/Components/Notification/OrganizationAddedToEngagement.php b/app/View/Components/Notification/OrganizationAddedToEngagement.php index e51c7a0e5..3623242a7 100644 --- a/app/View/Components/Notification/OrganizationAddedToEngagement.php +++ b/app/View/Components/Notification/OrganizationAddedToEngagement.php @@ -15,7 +15,7 @@ public function __construct(DatabaseNotification $notification) { $this->engagement = Engagement::find($notification->data['engagement_id']); $this->title = __('Your organization has been added to an engagement', ['engagement' => $this->engagement->getTranslation('name', locale())]); - $this->body = __('Your organization has been added to the engagement “:engagement”', ['engagement' => $this->engagement->getTranslation('name', locale())]).'.'; + $this->body = __('Your organization has been added to the engagement “:engagement”.', ['engagement' => $this->engagement->getTranslation('name', locale())]); parent::__construct($notification); } diff --git a/app/View/Components/Notification/OrganizationRemovedFromEngagement.php b/app/View/Components/Notification/OrganizationRemovedFromEngagement.php index 5e8d1e8d6..4ec45d344 100644 --- a/app/View/Components/Notification/OrganizationRemovedFromEngagement.php +++ b/app/View/Components/Notification/OrganizationRemovedFromEngagement.php @@ -15,7 +15,7 @@ public function __construct(DatabaseNotification $notification) { $this->engagement = Engagement::find($notification->data['engagement_id']); $this->title = __('Your organization has been removed from an engagement', ['engagement' => $this->engagement->getTranslation('name', locale())]); - $this->body = __('Your organization has been removed from the engagement “:engagement”', ['engagement' => $this->engagement->getTranslation('name', locale())]).'.'; + $this->body = __('Your organization has been removed from the engagement “:engagement”.', ['engagement' => $this->engagement->getTranslation('name', locale())]); parent::__construct($notification); } diff --git a/app/View/Components/Notification/ParticipantInvited.php b/app/View/Components/Notification/ParticipantInvited.php index 7793fbdd3..2d0c7ec89 100644 --- a/app/View/Components/Notification/ParticipantInvited.php +++ b/app/View/Components/Notification/ParticipantInvited.php @@ -6,6 +6,7 @@ use App\View\Components\Notification; use Illuminate\Contracts\View\View; use Illuminate\Notifications\DatabaseNotification; +use Illuminate\Support\HtmlString; class ParticipantInvited extends Notification { @@ -18,18 +19,21 @@ public function __construct(DatabaseNotification $notification) $this->invitation = Invitation::find($notification->data['invitation_id']); $this->invitationable = $this->invitation->invitationable; $this->title = __('You have been invited as a Consultation Participant'); - $this->body = __( - 'You’ve been invited to participate in [:projectable](:projectable_url)’s project, [:project](:project_url). They would like you to join them for their engagement, [:engagement](:engagement_url).', - [ - 'projectable' => $this->invitationable->project->projectable->getTranslation('name', locale()), - 'projectable_url' => localized_route($this->invitationable->project->projectable->getRoutePrefix().'.show', $this->invitationable->project->projectable), - 'project' => $this->invitationable->project->getTranslation('name', locale()), - 'project_url' => localized_route('projects.show', $this->invitationable->project), - 'engagement' => $this->invitationable->getTranslation('name', locale()), - 'engagement_url' => localized_route('engagements.show', $this->invitationable), - ] - )."\n\n**".__('Please respond by :signup_by_date.', ['signup_by_date' => $this->invitationable->signup_by_date->isoFormat('LL')]).'**'; - + $this->body = new HtmlString( + safe_markdown( + 'You’ve been invited to participate in [:projectable](:projectable_url)’s project, [:project](:project_url). They would like you to join them for their engagement, [:engagement](:engagement_url).', + [ + 'projectable' => $this->invitationable->project->projectable->getTranslation('name', locale()), + 'projectable_url' => localized_route($this->invitationable->project->projectable->getRoutePrefix().'.show', $this->invitationable->project->projectable), + 'project' => $this->invitationable->project->getTranslation('name', locale()), + 'project_url' => localized_route('projects.show', $this->invitationable->project), + 'engagement' => $this->invitationable->getTranslation('name', locale()), + 'engagement_url' => localized_route('engagements.show', $this->invitationable), + ] + ) + ."\n\n" + .safe_markdown('**Please respond by :signup_by_date.**', ['signup_by_date' => $this->invitationable->signup_by_date->isoFormat('LL')]) + ); parent::__construct($notification); } diff --git a/app/View/Components/TimeFrame.php b/app/View/Components/TimeFrame.php new file mode 100644 index 000000000..f72b42bfa --- /dev/null +++ b/app/View/Components/TimeFrame.php @@ -0,0 +1,33 @@ +start = $start->translatedFormat($start->year === $end->year ? 'F' : 'F Y'); + $this->end = $end->translatedFormat('F Y'); + } + + /** + * Get the view / contents that represent the component. + * + * @return \Illuminate\Contracts\View\View|\Closure|string + */ + public function render() + { + return view('components.time-frame'); + } +} diff --git a/app/helpers.php b/app/helpers.php index 5570ac2e0..9a75c423f 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -3,11 +3,12 @@ use App\Settings; use App\Settings\GeneralSettings; use Illuminate\Support\Arr; +use Illuminate\Support\HtmlString; use Illuminate\Support\Str; if (! function_exists('settings')) { /** - * Retrieve a setting from the settings Valuestore. + * Retrieve a setting from the general settings table. * * @param string|null $key The setting key. * @param mixed|null $default A default value for the setting. @@ -42,9 +43,8 @@ function get_available_languages(bool $all = false, bool $signed = true): array $languages, function ($language) { return - (! str_starts_with($language, 'en') && ! str_starts_with($language, 'fr')) - || ! strpos($language, '_') - || in_array($language, [ + ! ((str_starts_with($language, 'en_') || str_starts_with($language, 'fr_'))) + && ! in_array($language, [ 'ase', 'egy', 'grc', @@ -258,20 +258,76 @@ function context_from_model(mixed $model): string } } -if (! function_exists('contact_information')) { - function contact_information(): string +define('SAFE_MARKDOWN_OPTIONS', [ + 'html_input' => 'escape', + 'allow_unsafe_links' => false, +]); + +if (! function_exists('safe_link_replacement')) { + function safe_link_replacement(string $string): string + { + if (filter_var($string, FILTER_VALIDATE_EMAIL)) { + $string = htmlentities($string); + + return "{$string}"; + } + + if (filter_var($string, FILTER_VALIDATE_URL)) { + $string = htmlentities($string); + + return "{$string}"; + } + + $string = htmlentities($string); + + return "<{$string}>"; + } +} + +// The placeholder replacement is based off of the makeReplacements method from Laravel's +// framework/src/Illuminate/Translation/Translator.php +// See: https://github.com/laravel/framework/blob/4d4898878d1ba52d6689506527d1d4bfa24d57f2/src/Illuminate/Translation/Translator.php#L227 +// Original License: MIT (https://github.com/laravel/framework/tree/4d4898878d1ba52d6689506527d1d4bfa24d57f2#license) +if (! function_exists('html_replacements')) { + function html_replacements(string $string, array $replacements = []): string + { + if (empty($replacements)) { + return $string; + } + + $replace_pairs = []; + + foreach ($replacements as $key => $value) { + $replace_pairs[":{$key}"] = htmlentities($value); + $replace_pairs[":!{$key}"] = $value; + // Replaces `<:placeholder>` in the $string when the $string has + // already been processed, with HTML characters such + // as `<` and `>` replaced by entities. + $linkReplacement = safe_link_replacement($value); + $replace_pairs["<:{$key}>"] = $linkReplacement; + $replace_pairs["<:{$key}>"] = $linkReplacement; + } + + return strtr($string, $replace_pairs); + } +} + +if (! function_exists('safe_markdown')) { + function safe_markdown(string $string, array $replacements = [], ?string $locale = null, bool $inline = false): HtmlString + { + $markdownFuncName = $inline ? 'inlineMarkdown' : 'markdown'; + + $localized = __($string, [], $locale); + $html = Str::$markdownFuncName($localized, SAFE_MARKDOWN_OPTIONS); + + return new HtmlString(html_replacements($html, $replacements)); + } +} + +if (! function_exists('safe_inlineMarkdown')) { + function safe_inlineMarkdown(string $string, array $replacements = [], ?string $locale = null): HtmlString { - $email = settings('email'); - $phone = phone(settings('phone'), 'CA')->formatForCountry('CA'); - - return Str::markdown( - '**' - .__('Email').':** ['.$email.'](mailto:'.$email.') ' - ."\n" - .'**'.__('Call or :vrs', [ - 'vrs' => ''.__('VRS').'', - ]).':** '.$phone - ); + return safe_markdown($string, $replacements, $locale, true); } } diff --git a/bootstrap/views/.gitkeep b/bootstrap/views/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/composer.json b/composer.json index 967db72e5..3eb8469e8 100644 --- a/composer.json +++ b/composer.json @@ -6,7 +6,7 @@ "framework", "laravel" ], - "version": "1.0.0-alpha.13", + "version": "1.0.0", "license": "MIT", "require": { "php": "^8.1", @@ -41,7 +41,6 @@ "spatie/laravel-options": "^1.0", "spatie/laravel-schemaless-attributes": "^2.3", "spatie/laravel-translatable": "^6.0", - "spatie/valuestore": "^1.3", "staudenmeir/eloquent-has-many-deep": "^1.15", "staudenmeir/laravel-merged-relations": "^1.5", "symfony/http-foundation": "~6.2.8", diff --git a/composer.lock b/composer.lock index 74cceafb5..780dc6509 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c41afca6d767134fdfba5b7a145fbc44", + "content-hash": "39982df0271629f34e5e8a0dd30bd5a6", "packages": [ { "name": "akaunting/laravel-money", @@ -1506,25 +1506,29 @@ }, { "name": "doctrine/deprecations", - "version": "v1.0.0", + "version": "v1.1.1", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de" + "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", - "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", + "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", "shasum": "" }, "require": { - "php": "^7.1|^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^9", - "phpunit/phpunit": "^7.5|^8.5|^9.5", - "psr/log": "^1|^2|^3" + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" }, "suggest": { "psr/log": "Allows logging deprecations via PSR-3 logger implementation" @@ -1543,9 +1547,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.0.0" + "source": "https://github.com/doctrine/deprecations/tree/v1.1.1" }, - "time": "2022-05-02T15:47:09+00:00" + "time": "2023-06-03T09:27:29+00:00" }, { "name": "doctrine/event-manager", @@ -2748,21 +2752,21 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.5.1", + "version": "7.7.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "b964ca597e86b752cd994f27293e9fa6b6a95ed9" + "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b964ca597e86b752cd994f27293e9fa6b6a95ed9", - "reference": "b964ca597e86b752cd994f27293e9fa6b6a95ed9", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5", + "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5", + "guzzlehttp/promises": "^1.5.3 || ^2.0", "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", @@ -2774,7 +2778,8 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.1", "ext-curl": "*", - "php-http/client-integration-tests": "^3.0", + "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "php-http/message-factory": "^1.1", "phpunit/phpunit": "^8.5.29 || ^9.5.23", "psr/log": "^1.1 || ^2.0 || ^3.0" }, @@ -2788,9 +2793,6 @@ "bamarni-bin": { "bin-links": true, "forward-command": false - }, - "branch-alias": { - "dev-master": "7.5-dev" } }, "autoload": { @@ -2856,7 +2858,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.5.1" + "source": "https://github.com/guzzle/guzzle/tree/7.7.0" }, "funding": [ { @@ -2872,20 +2874,20 @@ "type": "tidelift" } ], - "time": "2023-04-17T16:30:08+00:00" + "time": "2023-05-21T14:04:53+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.5.2", + "version": "1.5.3", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "b94b2807d85443f9719887892882d0329d1e2598" + "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", - "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e", + "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e", "shasum": "" }, "require": { @@ -2895,11 +2897,6 @@ "symfony/phpunit-bridge": "^4.4 || ^5.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.5-dev" - } - }, "autoload": { "files": [ "src/functions_include.php" @@ -2940,7 +2937,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.2" + "source": "https://github.com/guzzle/promises/tree/1.5.3" }, "funding": [ { @@ -2956,7 +2953,7 @@ "type": "tidelift" } ], - "time": "2022-08-28T14:55:35+00:00" + "time": "2023-05-21T12:31:43+00:00" }, { "name": "guzzlehttp/psr7", @@ -3214,22 +3211,22 @@ }, { "name": "laminas/laminas-diactoros", - "version": "2.17.0", + "version": "2.25.2", "source": { "type": "git", "url": "https://github.com/laminas/laminas-diactoros.git", - "reference": "5b32597aa46b83c8b85bb1cf9a6ed4fe7dd980c5" + "reference": "9f3f4bf5b99c9538b6f1dbcc20f6fec357914f9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/5b32597aa46b83c8b85bb1cf9a6ed4fe7dd980c5", - "reference": "5b32597aa46b83c8b85bb1cf9a6ed4fe7dd980c5", + "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/9f3f4bf5b99c9538b6f1dbcc20f6fec357914f9e", + "reference": "9f3f4bf5b99c9538b6f1dbcc20f6fec357914f9e", "shasum": "" }, "require": { - "php": "^7.4 || ~8.0.0 || ~8.1.0", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0", "psr/http-factory": "^1.0", - "psr/http-message": "^1.0" + "psr/http-message": "^1.1" }, "conflict": { "zendframework/zend-diactoros": "*" @@ -3244,11 +3241,11 @@ "ext-gd": "*", "ext-libxml": "*", "http-interop/http-factory-tests": "^0.9.0", - "laminas/laminas-coding-standard": "^2.4.0", - "php-http/psr7-integration-tests": "^1.1.1", - "phpunit/phpunit": "^9.5.23", - "psalm/plugin-phpunit": "^0.17.0", - "vimeo/psalm": "^4.24.0" + "laminas/laminas-coding-standard": "^2.5", + "php-http/psr7-integration-tests": "^1.2", + "phpunit/phpunit": "^9.5.28", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.6" }, "type": "library", "extra": { @@ -3307,7 +3304,7 @@ "type": "community_bridge" } ], - "time": "2022-08-30T17:01:46+00:00" + "time": "2023-04-17T15:44:17+00:00" }, { "name": "laravel/fortify", @@ -3374,16 +3371,16 @@ }, { "name": "laravel/framework", - "version": "v9.52.7", + "version": "v9.52.8", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "675ea868fe36b18c8303e954aac540e6b1caa677" + "reference": "d4c62cc12544b8acc8d89fcb510f4aefb12e6dea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/675ea868fe36b18c8303e954aac540e6b1caa677", - "reference": "675ea868fe36b18c8303e954aac540e6b1caa677", + "url": "https://api.github.com/repos/laravel/framework/zipball/d4c62cc12544b8acc8d89fcb510f4aefb12e6dea", + "reference": "d4c62cc12544b8acc8d89fcb510f4aefb12e6dea", "shasum": "" }, "require": { @@ -3568,7 +3565,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2023-04-25T13:44:05+00:00" + "time": "2023-05-30T14:45:57+00:00" }, { "name": "laravel/serializable-closure", @@ -3632,22 +3629,22 @@ }, { "name": "laravel/tinker", - "version": "v2.7.2", + "version": "v2.8.1", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "dff39b661e827dae6e092412f976658df82dbac5" + "reference": "04a2d3bd0d650c0764f70bf49d1ee39393e4eb10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/dff39b661e827dae6e092412f976658df82dbac5", - "reference": "dff39b661e827dae6e092412f976658df82dbac5", + "url": "https://api.github.com/repos/laravel/tinker/zipball/04a2d3bd0d650c0764f70bf49d1ee39393e4eb10", + "reference": "04a2d3bd0d650c0764f70bf49d1ee39393e4eb10", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0", + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0", "php": "^7.2.5|^8.0", "psy/psysh": "^0.10.4|^0.11.1", "symfony/var-dumper": "^4.3.4|^5.0|^6.0" @@ -3657,7 +3654,7 @@ "phpunit/phpunit": "^8.5.8|^9.3.3" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0)." + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)." }, "type": "library", "extra": { @@ -3694,9 +3691,9 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.7.2" + "source": "https://github.com/laravel/tinker/tree/v2.8.1" }, - "time": "2022-03-23T12:38:24+00:00" + "time": "2023-02-15T16:40:09+00:00" }, { "name": "laravel/vonage-notification-channel", @@ -4090,19 +4087,20 @@ }, { "name": "league/flysystem", - "version": "3.14.0", + "version": "3.15.1", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "e2a279d7f47d9098e479e8b21f7fb8b8de230158" + "reference": "a141d430414fcb8bf797a18716b09f759a385bed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/e2a279d7f47d9098e479e8b21f7fb8b8de230158", - "reference": "e2a279d7f47d9098e479e8b21f7fb8b8de230158", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a141d430414fcb8bf797a18716b09f759a385bed", + "reference": "a141d430414fcb8bf797a18716b09f759a385bed", "shasum": "" }, "require": { + "league/flysystem-local": "^3.0.0", "league/mime-type-detection": "^1.0.0", "php": "^8.0.2" }, @@ -4161,7 +4159,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.14.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.15.1" }, "funding": [ { @@ -4173,7 +4171,7 @@ "type": "github" } ], - "time": "2023-04-11T18:11:47+00:00" + "time": "2023-05-04T09:04:26+00:00" }, { "name": "league/flysystem-aws-s3-v3", @@ -4241,6 +4239,66 @@ ], "time": "2023-03-16T14:29:01+00:00" }, + { + "name": "league/flysystem-local", + "version": "3.15.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-local.git", + "reference": "543f64c397fefdf9cfeac443ffb6beff602796b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/543f64c397fefdf9cfeac443ffb6beff602796b3", + "reference": "543f64c397fefdf9cfeac443ffb6beff602796b3", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "league/flysystem": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Local\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Local filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "file", + "files", + "filesystem", + "local" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem-local/issues", + "source": "https://github.com/thephpleague/flysystem-local/tree/3.15.0" + }, + "funding": [ + { + "url": "https://ecologi.com/frankdejonge", + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + } + ], + "time": "2023-05-02T20:02:14+00:00" + }, { "name": "league/mime-type-detection", "version": "1.11.0", @@ -4757,16 +4815,16 @@ }, { "name": "nesbot/carbon", - "version": "2.66.0", + "version": "2.67.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "496712849902241f04902033b0441b269effe001" + "reference": "c1001b3bc75039b07f38a79db5237c4c529e04c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/496712849902241f04902033b0441b269effe001", - "reference": "496712849902241f04902033b0441b269effe001", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/c1001b3bc75039b07f38a79db5237c4c529e04c8", + "reference": "c1001b3bc75039b07f38a79db5237c4c529e04c8", "shasum": "" }, "require": { @@ -4855,7 +4913,7 @@ "type": "tidelift" } ], - "time": "2023-01-29T18:53:47+00:00" + "time": "2023-05-25T22:09:47+00:00" }, { "name": "nette/schema", @@ -5008,16 +5066,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.15.3", + "version": "v4.15.5", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039" + "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/570e980a201d8ed0236b0a62ddf2c9cbb2034039", - "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/11e2663a5bc9db5d714eedb4277ee300403b4a9e", + "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e", "shasum": "" }, "require": { @@ -5058,9 +5116,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.3" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.5" }, - "time": "2023-01-16T22:05:37+00:00" + "time": "2023-05-19T20:20:00+00:00" }, { "name": "nunomaduro/termwind", @@ -5464,16 +5522,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.7.1", + "version": "1.7.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "dfc078e8af9c99210337325ff5aa152872c98714" + "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/dfc078e8af9c99210337325ff5aa152872c98714", - "reference": "dfc078e8af9c99210337325ff5aa152872c98714", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b2fe4d22a5426f38e014855322200b97b5362c0d", + "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d", "shasum": "" }, "require": { @@ -5516,9 +5574,9 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.1" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.2" }, - "time": "2023-03-27T19:02:04+00:00" + "time": "2023-05-30T18:13:47+00:00" }, { "name": "phpoption/phpoption", @@ -5597,22 +5655,24 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.20.3", + "version": "1.22.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "6c04009f6cae6eda2f040745b6b846080ef069c2" + "reference": "ec58baf7b3c7f1c81b3b00617c953249fb8cf30c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/6c04009f6cae6eda2f040745b6b846080ef069c2", - "reference": "6c04009f6cae6eda2f040745b6b846080ef069c2", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/ec58baf7b3c7f1c81b3b00617c953249fb8cf30c", + "reference": "ec58baf7b3c7f1c81b3b00617c953249fb8cf30c", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^1.5", @@ -5636,9 +5696,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.20.3" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.22.0" }, - "time": "2023-04-25T09:01:03+00:00" + "time": "2023-06-01T12:35:21+00:00" }, { "name": "pragmarx/google2fa", @@ -6179,16 +6239,16 @@ }, { "name": "psy/psysh", - "version": "v0.11.7", + "version": "v0.11.18", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "77fc7270031fbc28f9a7bea31385da5c4855cb7a" + "reference": "4f00ee9e236fa6a48f4560d1300b9c961a70a7ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/77fc7270031fbc28f9a7bea31385da5c4855cb7a", - "reference": "77fc7270031fbc28f9a7bea31385da5c4855cb7a", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/4f00ee9e236fa6a48f4560d1300b9c961a70a7ec", + "reference": "4f00ee9e236fa6a48f4560d1300b9c961a70a7ec", "shasum": "" }, "require": { @@ -6249,9 +6309,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.7" + "source": "https://github.com/bobthecow/psysh/tree/v0.11.18" }, - "time": "2022-07-07T13:49:11+00:00" + "time": "2023-05-23T02:31:11+00:00" }, { "name": "ralouphie/getallheaders", @@ -7718,20 +7778,20 @@ }, { "name": "spatie/laravel-options", - "version": "1.0.3", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-options.git", - "reference": "7631d2bb99b5b4b507293a4d8823c9244b4c18cb" + "reference": "5bed29084853dd97355ea055c017c27614900b2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-options/zipball/7631d2bb99b5b4b507293a4d8823c9244b4c18cb", - "reference": "7631d2bb99b5b4b507293a4d8823c9244b4c18cb", + "url": "https://api.github.com/repos/spatie/laravel-options/zipball/5bed29084853dd97355ea055c017c27614900b2c", + "reference": "5bed29084853dd97355ea055c017c27614900b2c", "shasum": "" }, "require": { - "illuminate/contracts": "^8.81|^9.0", + "illuminate/contracts": "^8.81|^9.0|^10.0", "php": "^8.1", "spatie/laravel-package-tools": "^1.9.2" }, @@ -7740,7 +7800,7 @@ "myclabs/php-enum": "^1.6", "nunomaduro/collision": "^6.0|^5.0", "nunomaduro/larastan": "^2.0.1|^1.0.3", - "orchestra/testbench": "^7.0|^v6.24.1", + "orchestra/testbench": "^7.0|^v6.24.1|^8.0", "pestphp/pest": "^v1.21.3", "pestphp/pest-plugin-laravel": "^1.1", "phpstan/extension-installer": "^1.1", @@ -7784,22 +7844,22 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-options/tree/1.0.3" + "source": "https://github.com/spatie/laravel-options/tree/1.1.0" }, - "time": "2022-07-29T08:14:50+00:00" + "time": "2023-02-09T15:07:29+00:00" }, { "name": "spatie/laravel-package-tools", - "version": "1.14.2", + "version": "1.15.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "bab62023a4745a61170ad5424184533685e73c2d" + "reference": "efab1844b8826443135201c4443690f032c3d533" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/bab62023a4745a61170ad5424184533685e73c2d", - "reference": "bab62023a4745a61170ad5424184533685e73c2d", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/efab1844b8826443135201c4443690f032c3d533", + "reference": "efab1844b8826443135201c4443690f032c3d533", "shasum": "" }, "require": { @@ -7838,7 +7898,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.14.2" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.15.0" }, "funding": [ { @@ -7846,7 +7906,7 @@ "type": "github" } ], - "time": "2023-03-14T16:41:21+00:00" + "time": "2023-04-27T08:09:01+00:00" }, { "name": "spatie/laravel-schemaless-attributes", @@ -8286,73 +8346,6 @@ ], "time": "2022-08-23T07:15:15+00:00" }, - { - "name": "spatie/valuestore", - "version": "1.3.2", - "source": { - "type": "git", - "url": "https://github.com/spatie/valuestore.git", - "reference": "29562273e843ff0967725f1e2cb946e5c029d606" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/valuestore/zipball/29562273e843ff0967725f1e2cb946e5c029d606", - "reference": "29562273e843ff0967725f1e2cb946e5c029d606", - "shasum": "" - }, - "require": { - "php": "^8.0|^8.1" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Spatie\\Valuestore\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - }, - { - "name": "Jolita Grazyte", - "email": "jolita@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - } - ], - "description": "Easily store some values", - "homepage": "https://github.com/spatie/valuestore", - "keywords": [ - "json", - "spatie", - "valuestore" - ], - "support": { - "issues": "https://github.com/spatie/valuestore/issues", - "source": "https://github.com/spatie/valuestore/tree/1.3.2" - }, - "funding": [ - { - "url": "https://spatie.be/open-source/support-us", - "type": "custom" - }, - { - "url": "https://github.com/spatie", - "type": "github" - } - ], - "time": "2022-12-13T09:04:49+00:00" - }, { "name": "staudenmeir/eloquent-has-many-deep", "version": "v1.17", @@ -8597,23 +8590,23 @@ }, { "name": "symfony/console", - "version": "v6.2.10", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "12288d9f4500f84a4d02254d4aa968b15488476f" + "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/12288d9f4500f84a4d02254d4aa968b15488476f", - "reference": "12288d9f4500f84a4d02254d4aa968b15488476f", + "url": "https://api.github.com/repos/symfony/console/zipball/8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7", + "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/deprecation-contracts": "^2.1|^3", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^1.1|^2|^3", + "symfony/service-contracts": "^2.5|^3", "symfony/string": "^5.4|^6.0" }, "conflict": { @@ -8635,12 +8628,6 @@ "symfony/process": "^5.4|^6.0", "symfony/var-dumper": "^5.4|^6.0" }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, "type": "library", "autoload": { "psr-4": { @@ -8673,7 +8660,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.2.10" + "source": "https://github.com/symfony/console/tree/v6.3.0" }, "funding": [ { @@ -8689,20 +8676,20 @@ "type": "tidelift" } ], - "time": "2023-04-28T13:37:43+00:00" + "time": "2023-05-29T12:49:39+00:00" }, { "name": "symfony/css-selector", - "version": "v6.2.7", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "aedf3cb0f5b929ec255d96bbb4909e9932c769e0" + "reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/aedf3cb0f5b929ec255d96bbb4909e9932c769e0", - "reference": "aedf3cb0f5b929ec255d96bbb4909e9932c769e0", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf", + "reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf", "shasum": "" }, "require": { @@ -8738,7 +8725,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.2.7" + "source": "https://github.com/symfony/css-selector/tree/v6.3.0" }, "funding": [ { @@ -8754,20 +8741,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:44:56+00:00" + "time": "2023-03-20T16:43:42+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.2.1", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e" + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e", - "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", "shasum": "" }, "require": { @@ -8776,7 +8763,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.3-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -8805,7 +8792,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" }, "funding": [ { @@ -8821,20 +8808,20 @@ "type": "tidelift" } ], - "time": "2023-03-01T10:25:55+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/error-handler", - "version": "v6.2.10", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "8b7e9f124640cb0611624a9383176c3e5f7d8cfb" + "reference": "99d2d814a6351461af350ead4d963bd67451236f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/8b7e9f124640cb0611624a9383176c3e5f7d8cfb", - "reference": "8b7e9f124640cb0611624a9383176c3e5f7d8cfb", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/99d2d814a6351461af350ead4d963bd67451236f", + "reference": "99d2d814a6351461af350ead4d963bd67451236f", "shasum": "" }, "require": { @@ -8842,8 +8829,11 @@ "psr/log": "^1|^2|^3", "symfony/var-dumper": "^5.4|^6.0" }, + "conflict": { + "symfony/deprecation-contracts": "<2.5" + }, "require-dev": { - "symfony/deprecation-contracts": "^2.1|^3", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-kernel": "^5.4|^6.0", "symfony/serializer": "^5.4|^6.0" }, @@ -8876,7 +8866,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.2.10" + "source": "https://github.com/symfony/error-handler/tree/v6.3.0" }, "funding": [ { @@ -8892,28 +8882,29 @@ "type": "tidelift" } ], - "time": "2023-04-18T13:46:08+00:00" + "time": "2023-05-10T12:03:13+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.2.8", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339" + "reference": "3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/04046f35fd7d72f9646e721fc2ecb8f9c67d3339", - "reference": "04046f35fd7d72f9646e721fc2ecb8f9c67d3339", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa", + "reference": "3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/event-dispatcher-contracts": "^2|^3" + "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<5.4" + "symfony/dependency-injection": "<5.4", + "symfony/service-contracts": "<2.5" }, "provide": { "psr/event-dispatcher-implementation": "1.0", @@ -8926,13 +8917,9 @@ "symfony/error-handler": "^5.4|^6.0", "symfony/expression-language": "^5.4|^6.0", "symfony/http-foundation": "^5.4|^6.0", - "symfony/service-contracts": "^1.1|^2|^3", + "symfony/service-contracts": "^2.5|^3", "symfony/stopwatch": "^5.4|^6.0" }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, "type": "library", "autoload": { "psr-4": { @@ -8959,7 +8946,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.2.8" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.0" }, "funding": [ { @@ -8975,33 +8962,30 @@ "type": "tidelift" } ], - "time": "2023-03-20T16:06:02+00:00" + "time": "2023-04-21T14:41:17+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.2.1", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd" + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ad3b6f1e4e2da5690fefe075cd53a238646d8dd", - "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", "shasum": "" }, "require": { "php": ">=8.1", "psr/event-dispatcher": "^1" }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.3-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -9038,7 +9022,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.2.1" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0" }, "funding": [ { @@ -9054,20 +9038,20 @@ "type": "tidelift" } ], - "time": "2023-03-01T10:32:47+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/finder", - "version": "v6.2.7", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb" + "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/20808dc6631aecafbe67c186af5dcb370be3a0eb", - "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb", + "url": "https://api.github.com/repos/symfony/finder/zipball/d9b01ba073c44cef617c7907ce2419f8d00d75e2", + "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2", "shasum": "" }, "require": { @@ -9102,7 +9086,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.2.7" + "source": "https://github.com/symfony/finder/tree/v6.3.0" }, "funding": [ { @@ -9118,20 +9102,20 @@ "type": "tidelift" } ], - "time": "2023-02-16T09:57:23+00:00" + "time": "2023-04-02T01:25:41+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.2.10", + "version": "v6.2.11", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "49adbb92bcb4e3c2943719d2756271e8b9602acc" + "reference": "df27f4191a4292d01fd062296e09cbc8b657cb57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/49adbb92bcb4e3c2943719d2756271e8b9602acc", - "reference": "49adbb92bcb4e3c2943719d2756271e8b9602acc", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/df27f4191a4292d01fd062296e09cbc8b657cb57", + "reference": "df27f4191a4292d01fd062296e09cbc8b657cb57", "shasum": "" }, "require": { @@ -9180,7 +9164,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.2.10" + "source": "https://github.com/symfony/http-foundation/tree/v6.2.11" }, "funding": [ { @@ -9196,29 +9180,29 @@ "type": "tidelift" } ], - "time": "2023-04-18T13:46:08+00:00" + "time": "2023-05-19T12:39:53+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.2.10", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "81064a65a5496f17d2b6984f6519406f98864215" + "reference": "241973f3dd900620b1ca052fe409144f11aea748" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/81064a65a5496f17d2b6984f6519406f98864215", - "reference": "81064a65a5496f17d2b6984f6519406f98864215", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/241973f3dd900620b1ca052fe409144f11aea748", + "reference": "241973f3dd900620b1ca052fe409144f11aea748", "shasum": "" }, "require": { "php": ">=8.1", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/error-handler": "^6.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.3", "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/http-foundation": "^5.4.21|^6.2.7", + "symfony/http-foundation": "^6.2.7", "symfony/polyfill-ctype": "^1.8" }, "conflict": { @@ -9226,15 +9210,18 @@ "symfony/cache": "<5.4", "symfony/config": "<6.1", "symfony/console": "<5.4", - "symfony/dependency-injection": "<6.2", + "symfony/dependency-injection": "<6.3", "symfony/doctrine-bridge": "<5.4", "symfony/form": "<5.4", "symfony/http-client": "<5.4", + "symfony/http-client-contracts": "<2.5", "symfony/mailer": "<5.4", "symfony/messenger": "<5.4", "symfony/translation": "<5.4", + "symfony/translation-contracts": "<2.5", "symfony/twig-bridge": "<5.4", "symfony/validator": "<5.4", + "symfony/var-dumper": "<6.3", "twig/twig": "<2.13" }, "provide": { @@ -9243,28 +9230,27 @@ "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", "symfony/browser-kit": "^5.4|^6.0", + "symfony/clock": "^6.2", "symfony/config": "^6.1", "symfony/console": "^5.4|^6.0", "symfony/css-selector": "^5.4|^6.0", - "symfony/dependency-injection": "^6.2", + "symfony/dependency-injection": "^6.3", "symfony/dom-crawler": "^5.4|^6.0", "symfony/expression-language": "^5.4|^6.0", "symfony/finder": "^5.4|^6.0", - "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/http-client-contracts": "^2.5|^3", "symfony/process": "^5.4|^6.0", + "symfony/property-access": "^5.4.5|^6.0.5", "symfony/routing": "^5.4|^6.0", + "symfony/serializer": "^6.3", "symfony/stopwatch": "^5.4|^6.0", "symfony/translation": "^5.4|^6.0", - "symfony/translation-contracts": "^1.1|^2|^3", + "symfony/translation-contracts": "^2.5|^3", "symfony/uid": "^5.4|^6.0", + "symfony/validator": "^6.3", + "symfony/var-exporter": "^6.2", "twig/twig": "^2.13|^3.0.4" }, - "suggest": { - "symfony/browser-kit": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "" - }, "type": "library", "autoload": { "psr-4": { @@ -9291,7 +9277,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.2.10" + "source": "https://github.com/symfony/http-kernel/tree/v6.3.0" }, "funding": [ { @@ -9307,20 +9293,20 @@ "type": "tidelift" } ], - "time": "2023-04-28T13:50:28+00:00" + "time": "2023-05-30T19:03:32+00:00" }, { "name": "symfony/mailer", - "version": "v6.2.8", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "bfcfa015c67e19c6fdb7ca6fe70700af1e740a17" + "reference": "7b03d9be1dea29bfec0a6c7b603f5072a4c97435" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/bfcfa015c67e19c6fdb7ca6fe70700af1e740a17", - "reference": "bfcfa015c67e19c6fdb7ca6fe70700af1e740a17", + "url": "https://api.github.com/repos/symfony/mailer/zipball/7b03d9be1dea29bfec0a6c7b603f5072a4c97435", + "reference": "7b03d9be1dea29bfec0a6c7b603f5072a4c97435", "shasum": "" }, "require": { @@ -9330,9 +9316,10 @@ "psr/log": "^1|^2|^3", "symfony/event-dispatcher": "^5.4|^6.0", "symfony/mime": "^6.2", - "symfony/service-contracts": "^1.1|^2|^3" + "symfony/service-contracts": "^2.5|^3" }, "conflict": { + "symfony/http-client-contracts": "<2.5", "symfony/http-kernel": "<5.4", "symfony/messenger": "<6.2", "symfony/mime": "<6.2", @@ -9370,7 +9357,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.2.8" + "source": "https://github.com/symfony/mailer/tree/v6.3.0" }, "funding": [ { @@ -9386,20 +9373,20 @@ "type": "tidelift" } ], - "time": "2023-03-14T15:00:05+00:00" + "time": "2023-05-29T12:49:39+00:00" }, { "name": "symfony/mime", - "version": "v6.2.10", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "b6c137fc53a9f7c4c951cd3f362b3734c7a97723" + "reference": "7b5d2121858cd6efbed778abce9cfdd7ab1f62ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/b6c137fc53a9f7c4c951cd3f362b3734c7a97723", - "reference": "b6c137fc53a9f7c4c951cd3f362b3734c7a97723", + "url": "https://api.github.com/repos/symfony/mime/zipball/7b5d2121858cd6efbed778abce9cfdd7ab1f62ad", + "reference": "7b5d2121858cd6efbed778abce9cfdd7ab1f62ad", "shasum": "" }, "require": { @@ -9453,7 +9440,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.2.10" + "source": "https://github.com/symfony/mime/tree/v6.3.0" }, "funding": [ { @@ -9469,7 +9456,7 @@ "type": "tidelift" } ], - "time": "2023-04-19T09:54:16+00:00" + "time": "2023-04-28T15:57:00+00:00" }, { "name": "symfony/polyfill-ctype", @@ -10131,16 +10118,16 @@ }, { "name": "symfony/process", - "version": "v6.2.10", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "b34cdbc9c5e75d45a3703e63a48ad07aafa8bf2e" + "reference": "8741e3ed7fe2e91ec099e02446fb86667a0f1628" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/b34cdbc9c5e75d45a3703e63a48ad07aafa8bf2e", - "reference": "b34cdbc9c5e75d45a3703e63a48ad07aafa8bf2e", + "url": "https://api.github.com/repos/symfony/process/zipball/8741e3ed7fe2e91ec099e02446fb86667a0f1628", + "reference": "8741e3ed7fe2e91ec099e02446fb86667a0f1628", "shasum": "" }, "require": { @@ -10172,7 +10159,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.2.10" + "source": "https://github.com/symfony/process/tree/v6.3.0" }, "funding": [ { @@ -10188,20 +10175,20 @@ "type": "tidelift" } ], - "time": "2023-04-18T13:56:57+00:00" + "time": "2023-05-19T08:06:44+00:00" }, { "name": "symfony/routing", - "version": "v6.2.8", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "69062e2823f03b82265d73a966999660f0e1e404" + "reference": "827f59fdc67eecfc4dfff81f9c93bf4d98f0c89b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/69062e2823f03b82265d73a966999660f0e1e404", - "reference": "69062e2823f03b82265d73a966999660f0e1e404", + "url": "https://api.github.com/repos/symfony/routing/zipball/827f59fdc67eecfc4dfff81f9c93bf4d98f0c89b", + "reference": "827f59fdc67eecfc4dfff81f9c93bf4d98f0c89b", "shasum": "" }, "require": { @@ -10222,12 +10209,6 @@ "symfony/http-foundation": "^5.4|^6.0", "symfony/yaml": "^5.4|^6.0" }, - "suggest": { - "symfony/config": "For using the all-in-one router or any loader", - "symfony/expression-language": "For using expression matching", - "symfony/http-foundation": "For using a Symfony Request object", - "symfony/yaml": "For using the YAML loader" - }, "type": "library", "autoload": { "psr-4": { @@ -10260,7 +10241,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.2.8" + "source": "https://github.com/symfony/routing/tree/v6.3.0" }, "funding": [ { @@ -10276,20 +10257,20 @@ "type": "tidelift" } ], - "time": "2023-03-14T15:00:05+00:00" + "time": "2023-04-28T15:57:00+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.2.1", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "a8c9cedf55f314f3a186041d19537303766df09a" + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a8c9cedf55f314f3a186041d19537303766df09a", - "reference": "a8c9cedf55f314f3a186041d19537303766df09a", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", "shasum": "" }, "require": { @@ -10299,13 +10280,10 @@ "conflict": { "ext-psr": "<1.1|>=2" }, - "suggest": { - "symfony/service-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.3-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -10345,7 +10323,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.2.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.3.0" }, "funding": [ { @@ -10361,20 +10339,20 @@ "type": "tidelift" } ], - "time": "2023-03-01T10:32:47+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/string", - "version": "v6.2.8", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef" + "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/193e83bbd6617d6b2151c37fff10fa7168ebddef", - "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef", + "url": "https://api.github.com/repos/symfony/string/zipball/f2e190ee75ff0f5eced645ec0be5c66fac81f51f", + "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f", "shasum": "" }, "require": { @@ -10385,13 +10363,13 @@ "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/translation-contracts": "<2.0" + "symfony/translation-contracts": "<2.5" }, "require-dev": { "symfony/error-handler": "^5.4|^6.0", "symfony/http-client": "^5.4|^6.0", "symfony/intl": "^6.2", - "symfony/translation-contracts": "^2.0|^3.0", + "symfony/translation-contracts": "^2.5|^3.0", "symfony/var-exporter": "^5.4|^6.0" }, "type": "library", @@ -10431,7 +10409,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.2.8" + "source": "https://github.com/symfony/string/tree/v6.3.0" }, "funding": [ { @@ -10447,32 +10425,34 @@ "type": "tidelift" } ], - "time": "2023-03-20T16:06:02+00:00" + "time": "2023-03-21T21:06:29+00:00" }, { "name": "symfony/translation", - "version": "v6.2.8", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "817535dbb1721df8b3a8f2489dc7e50bcd6209b5" + "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/817535dbb1721df8b3a8f2489dc7e50bcd6209b5", - "reference": "817535dbb1721df8b3a8f2489dc7e50bcd6209b5", + "url": "https://api.github.com/repos/symfony/translation/zipball/f72b2cba8f79dd9d536f534f76874b58ad37876f", + "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f", "shasum": "" }, "require": { "php": ">=8.1", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2.3|^3.0" + "symfony/translation-contracts": "^2.5|^3.0" }, "conflict": { "symfony/config": "<5.4", "symfony/console": "<5.4", "symfony/dependency-injection": "<5.4", + "symfony/http-client-contracts": "<2.5", "symfony/http-kernel": "<5.4", + "symfony/service-contracts": "<2.5", "symfony/twig-bundle": "<5.4", "symfony/yaml": "<5.4" }, @@ -10486,20 +10466,14 @@ "symfony/console": "^5.4|^6.0", "symfony/dependency-injection": "^5.4|^6.0", "symfony/finder": "^5.4|^6.0", - "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-client-contracts": "^2.5|^3.0", "symfony/http-kernel": "^5.4|^6.0", "symfony/intl": "^5.4|^6.0", "symfony/polyfill-intl-icu": "^1.21", "symfony/routing": "^5.4|^6.0", - "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/service-contracts": "^2.5|^3", "symfony/yaml": "^5.4|^6.0" }, - "suggest": { - "nikic/php-parser": "To use PhpAstExtractor", - "psr/log-implementation": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" - }, "type": "library", "autoload": { "files": [ @@ -10529,7 +10503,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.2.8" + "source": "https://github.com/symfony/translation/tree/v6.3.0" }, "funding": [ { @@ -10545,32 +10519,29 @@ "type": "tidelift" } ], - "time": "2023-03-31T09:14:44+00:00" + "time": "2023-05-19T12:46:45+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.2.1", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "dfec258b9dd17a6b24420d464c43bffe347441c8" + "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dfec258b9dd17a6b24420d464c43bffe347441c8", - "reference": "dfec258b9dd17a6b24420d464c43bffe347441c8", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/02c24deb352fb0d79db5486c0c79905a85e37e86", + "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86", "shasum": "" }, "require": { "php": ">=8.1" }, - "suggest": { - "symfony/translation-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.3-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -10610,7 +10581,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.2.1" + "source": "https://github.com/symfony/translation-contracts/tree/v3.3.0" }, "funding": [ { @@ -10626,20 +10597,20 @@ "type": "tidelift" } ], - "time": "2023-03-01T10:32:47+00:00" + "time": "2023-05-30T17:17:10+00:00" }, { "name": "symfony/uid", - "version": "v6.2.7", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "d30c72a63897cfa043e1de4d4dd2ffa9ecefcdc0" + "reference": "01b0f20b1351d997711c56f1638f7a8c3061e384" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/d30c72a63897cfa043e1de4d4dd2ffa9ecefcdc0", - "reference": "d30c72a63897cfa043e1de4d4dd2ffa9ecefcdc0", + "url": "https://api.github.com/repos/symfony/uid/zipball/01b0f20b1351d997711c56f1638f7a8c3061e384", + "reference": "01b0f20b1351d997711c56f1638f7a8c3061e384", "shasum": "" }, "require": { @@ -10684,7 +10655,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v6.2.7" + "source": "https://github.com/symfony/uid/tree/v6.3.0" }, "funding": [ { @@ -10700,20 +10671,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:44:56+00:00" + "time": "2023-04-08T07:25:02+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.2.10", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "41a750a23412ca76fdbbf5096943b4134272c1ab" + "reference": "6acdcd5c122074ee9f7b051e4fb177025c277a0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/41a750a23412ca76fdbbf5096943b4134272c1ab", - "reference": "41a750a23412ca76fdbbf5096943b4134272c1ab", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6acdcd5c122074ee9f7b051e4fb177025c277a0e", + "reference": "6acdcd5c122074ee9f7b051e4fb177025c277a0e", "shasum": "" }, "require": { @@ -10721,7 +10692,6 @@ "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "phpunit/phpunit": "<5.4.3", "symfony/console": "<5.4" }, "require-dev": { @@ -10731,11 +10701,6 @@ "symfony/uid": "^5.4|^6.0", "twig/twig": "^2.13|^3.0.4" }, - "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" - }, "bin": [ "Resources/bin/var-dump-server" ], @@ -10772,7 +10737,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.2.10" + "source": "https://github.com/symfony/var-dumper/tree/v6.3.0" }, "funding": [ { @@ -10788,7 +10753,7 @@ "type": "tidelift" } ], - "time": "2023-04-18T13:46:08+00:00" + "time": "2023-05-25T13:09:35+00:00" }, { "name": "tgalopin/html-sanitizer", @@ -11793,16 +11758,16 @@ }, { "name": "composer/pcre", - "version": "3.0.0", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd" + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/e300eb6c535192decd27a85bc72a9290f0d6b3bd", - "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd", + "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", "shasum": "" }, "require": { @@ -11844,7 +11809,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.0.0" + "source": "https://github.com/composer/pcre/tree/3.1.0" }, "funding": [ { @@ -11860,7 +11825,7 @@ "type": "tidelift" } ], - "time": "2022-02-25T20:21:48+00:00" + "time": "2022-11-17T09:50:14+00:00" }, { "name": "doctrine/instantiator", @@ -11934,16 +11899,16 @@ }, { "name": "fakerphp/faker", - "version": "v1.21.0", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d" + "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/92efad6a967f0b79c499705c69b662f738cc9e4d", - "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e3daa170d00fde61ea7719ef47bb09bb8f1d9b01", + "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01", "shasum": "" }, "require": { @@ -11996,9 +11961,9 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.21.0" + "source": "https://github.com/FakerPHP/Faker/tree/v1.23.0" }, - "time": "2022-12-13T13:54:32+00:00" + "time": "2023-06-12T08:44:38+00:00" }, { "name": "fidry/cpu-core-counter", @@ -12063,16 +12028,16 @@ }, { "name": "filp/whoops", - "version": "2.14.5", + "version": "2.15.2", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc" + "reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/a63e5e8f26ebbebf8ed3c5c691637325512eb0dc", - "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc", + "url": "https://api.github.com/repos/filp/whoops/zipball/aac9304c5ed61bf7b1b7a6064bf9806ab842ce73", + "reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73", "shasum": "" }, "require": { @@ -12122,7 +12087,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.14.5" + "source": "https://github.com/filp/whoops/tree/2.15.2" }, "funding": [ { @@ -12130,7 +12095,7 @@ "type": "github" } ], - "time": "2022-01-07T12:00:00+00:00" + "time": "2023-04-12T12:00:00+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -12383,23 +12348,23 @@ }, { "name": "laravel/sail", - "version": "v1.21.5", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "27af207bb1c53faddcba34c7528b3e969f6a646d" + "reference": "923e1e112b6a8598664dbb0ee79dd3137f1c9d56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/27af207bb1c53faddcba34c7528b3e969f6a646d", - "reference": "27af207bb1c53faddcba34c7528b3e969f6a646d", + "url": "https://api.github.com/repos/laravel/sail/zipball/923e1e112b6a8598664dbb0ee79dd3137f1c9d56", + "reference": "923e1e112b6a8598664dbb0ee79dd3137f1c9d56", "shasum": "" }, "require": { "illuminate/console": "^8.0|^9.0|^10.0", "illuminate/contracts": "^8.0|^9.0|^10.0", "illuminate/support": "^8.0|^9.0|^10.0", - "php": "^7.3|^8.0", + "php": "^8.0", "symfony/yaml": "^6.0" }, "require-dev": { @@ -12444,7 +12409,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2023-04-24T13:29:38+00:00" + "time": "2023-05-04T14:52:56+00:00" }, { "name": "maximebf/debugbar", @@ -12514,28 +12479,30 @@ }, { "name": "mockery/mockery", - "version": "1.5.1", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e" + "reference": "a8dd186f07ea667c1e3abd2176bfab0ab161ea94" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/e92dcc83d5a51851baf5f5591d32cb2b16e3684e", - "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e", + "url": "https://api.github.com/repos/mockery/mockery/zipball/a8dd186f07ea667c1e3abd2176bfab0ab161ea94", + "reference": "a8dd186f07ea667c1e3abd2176bfab0ab161ea94", "shasum": "" }, "require": { "hamcrest/hamcrest-php": "^2.0.1", "lib-pcre": ">=7.0", - "php": "^7.3 || ^8.0" + "php": "^7.4 || ^8.0" }, "conflict": { "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.3" + "phpunit/phpunit": "^8.5 || ^9.3", + "psalm/plugin-phpunit": "^0.18", + "vimeo/psalm": "^5.9" }, "type": "library", "extra": { @@ -12544,8 +12511,12 @@ } }, "autoload": { - "psr-0": { - "Mockery": "library/" + "files": [ + "library/helpers.php", + "library/Mockery.php" + ], + "psr-4": { + "Mockery\\": "library/Mockery" } }, "notification-url": "https://packagist.org/downloads/", @@ -12580,22 +12551,22 @@ ], "support": { "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/1.5.1" + "source": "https://github.com/mockery/mockery/tree/1.6.1" }, - "time": "2022-09-07T15:32:08+00:00" + "time": "2023-06-05T13:59:03+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.0", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", "shasum": "" }, "require": { @@ -12633,7 +12604,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" }, "funding": [ { @@ -12641,20 +12612,20 @@ "type": "tidelift" } ], - "time": "2022-03-03T13:19:32+00:00" + "time": "2023-03-08T13:26:56+00:00" }, { "name": "nunomaduro/collision", - "version": "v6.3.1", + "version": "v6.4.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "0f6349c3ed5dd28467087b08fb59384bb458a22b" + "reference": "f05978827b9343cba381ca05b8c7deee346b6015" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/0f6349c3ed5dd28467087b08fb59384bb458a22b", - "reference": "0f6349c3ed5dd28467087b08fb59384bb458a22b", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f05978827b9343cba381ca05b8c7deee346b6015", + "reference": "f05978827b9343cba381ca05b8c7deee346b6015", "shasum": "" }, "require": { @@ -12729,40 +12700,39 @@ "type": "patreon" } ], - "time": "2022-09-29T12:29:49+00:00" + "time": "2023-01-03T12:54:54+00:00" }, { "name": "nunomaduro/larastan", - "version": "2.2.7", + "version": "v2.6.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/larastan.git", - "reference": "a3f67a4a668e477751557b0b19ad2c870e1e4e56" + "reference": "7823bc1fdbd8e72fd1e9cd8d746e7e104bccf02c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/larastan/zipball/a3f67a4a668e477751557b0b19ad2c870e1e4e56", - "reference": "a3f67a4a668e477751557b0b19ad2c870e1e4e56", + "url": "https://api.github.com/repos/nunomaduro/larastan/zipball/7823bc1fdbd8e72fd1e9cd8d746e7e104bccf02c", + "reference": "7823bc1fdbd8e72fd1e9cd8d746e7e104bccf02c", "shasum": "" }, "require": { "ext-json": "*", - "illuminate/console": "^9", - "illuminate/container": "^9", - "illuminate/contracts": "^9", - "illuminate/database": "^9", - "illuminate/http": "^9", - "illuminate/pipeline": "^9", - "illuminate/support": "^9", - "mockery/mockery": "^1.4.4", + "illuminate/console": "^9.47.0 || ^10.0.0", + "illuminate/container": "^9.47.0 || ^10.0.0", + "illuminate/contracts": "^9.47.0 || ^10.0.0", + "illuminate/database": "^9.47.0 || ^10.0.0", + "illuminate/http": "^9.47.0 || ^10.0.0", + "illuminate/pipeline": "^9.47.0 || ^10.0.0", + "illuminate/support": "^9.47.0 || ^10.0.0", "php": "^8.0.2", - "phpmyadmin/sql-parser": "^5.5", - "phpstan/phpstan": "^1.8.7" + "phpmyadmin/sql-parser": "^5.6.0", + "phpstan/phpstan": "~1.10.6" }, "require-dev": { - "nikic/php-parser": "^4.13.2", - "orchestra/testbench": "^7.0.0", - "phpunit/phpunit": "^9.5.11" + "nikic/php-parser": "^4.15.2", + "orchestra/testbench": "^7.19.0 || ^8.0.0", + "phpunit/phpunit": "^9.5.27" }, "suggest": { "orchestra/testbench": "Using Larastan for analysing a package needs Testbench" @@ -12806,7 +12776,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/larastan/issues", - "source": "https://github.com/nunomaduro/larastan/tree/2.2.7" + "source": "https://github.com/nunomaduro/larastan/tree/v2.6.1" }, "funding": [ { @@ -12826,34 +12796,34 @@ "type": "patreon" } ], - "time": "2022-10-30T15:02:40+00:00" + "time": "2023-06-04T20:55:57+00:00" }, { "name": "pestphp/pest", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "af6240b4eed8b049ac43c91184141ee337305df7" + "reference": "061c9de301531e500a8157b476a5899361e60068" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/af6240b4eed8b049ac43c91184141ee337305df7", - "reference": "af6240b4eed8b049ac43c91184141ee337305df7", + "url": "https://api.github.com/repos/pestphp/pest/zipball/061c9de301531e500a8157b476a5899361e60068", + "reference": "061c9de301531e500a8157b476a5899361e60068", "shasum": "" }, "require": { - "nunomaduro/collision": "^5.10.0|^6.0", - "pestphp/pest-plugin": "^1.0.0", + "nunomaduro/collision": "^5.11.0|^6.4.0", + "pestphp/pest-plugin": "^1.1.0", "php": "^7.3 || ^8.0", - "phpunit/phpunit": "^9.5.5" + "phpunit/phpunit": "^9.6.7" }, "require-dev": { - "illuminate/console": "^8.47.0", - "illuminate/support": "^8.47.0", - "laravel/dusk": "^6.15.0", - "pestphp/pest-dev-tools": "dev-master", - "pestphp/pest-plugin-parallel": "^1.0" + "illuminate/console": "^8.83.27", + "illuminate/support": "^8.83.27", + "laravel/dusk": "^6.25.2", + "pestphp/pest-dev-tools": "^1.0.0", + "pestphp/pest-plugin-parallel": "^1.2.1" }, "bin": [ "bin/pest" @@ -12907,39 +12877,19 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v1.22.1" + "source": "https://github.com/pestphp/pest/tree/v1.23.0" }, "funding": [ { "url": "https://www.paypal.com/paypalme/enunomaduro", "type": "custom" }, - { - "url": "https://github.com/lukeraymonddowning", - "type": "github" - }, { "url": "https://github.com/nunomaduro", "type": "github" - }, - { - "url": "https://github.com/octoper", - "type": "github" - }, - { - "url": "https://github.com/olivernybroe", - "type": "github" - }, - { - "url": "https://github.com/owenvoke", - "type": "github" - }, - { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" } ], - "time": "2022-08-29T10:42:13+00:00" + "time": "2023-04-19T20:10:22+00:00" }, { "name": "pestphp/pest-plugin", @@ -13085,33 +13035,28 @@ }, { "name": "pestphp/pest-plugin-laravel", - "version": "v1.3.0", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/pestphp/pest-plugin-laravel.git", - "reference": "561930875e0336441f93fbd120fd53a2a890a8f5" + "reference": "61935be0deae1732a3ead780fbd9277aa93e2f6d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/561930875e0336441f93fbd120fd53a2a890a8f5", - "reference": "561930875e0336441f93fbd120fd53a2a890a8f5", + "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/61935be0deae1732a3ead780fbd9277aa93e2f6d", + "reference": "61935be0deae1732a3ead780fbd9277aa93e2f6d", "shasum": "" }, "require": { - "laravel/framework": "^7.30.6 || ^8.83.23 || ^9.30.1", + "laravel/framework": "^7.30.6 || ^8.83.27 || ^9.47.0 || ^10.0.0", "pestphp/pest": "^1.22.1", "php": "^7.3 || ^8.0" }, "require-dev": { - "orchestra/testbench": "^5.20.0 || ^6.25.0 || ^7.7.0", - "pestphp/pest-dev-tools": "dev-master" + "orchestra/testbench": "^5.20.0 || ^6.25.0 || ^7.7.0 || ^8.0", + "pestphp/pest-dev-tools": "^1.0.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { "files": [ "src/Autoload.php" @@ -13135,7 +13080,7 @@ "unit" ], "support": { - "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v1.3.0" + "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v1.4.0" }, "funding": [ { @@ -13151,7 +13096,7 @@ "type": "patreon" } ], - "time": "2022-09-18T13:04:53+00:00" + "time": "2023-01-13T16:54:07+00:00" }, { "name": "pestphp/pest-plugin-livewire", @@ -13502,31 +13447,33 @@ }, { "name": "phpmyadmin/sql-parser", - "version": "5.5.0", + "version": "5.8.0", "source": { "type": "git", "url": "https://github.com/phpmyadmin/sql-parser.git", - "reference": "8ab99cd0007d880f49f5aa1807033dbfa21b1cb5" + "reference": "db1b3069b5dbc220d393d67ff911e0ae76732755" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/8ab99cd0007d880f49f5aa1807033dbfa21b1cb5", - "reference": "8ab99cd0007d880f49f5aa1807033dbfa21b1cb5", + "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/db1b3069b5dbc220d393d67ff911e0ae76732755", + "reference": "db1b3069b5dbc220d393d67ff911e0ae76732755", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0", - "symfony/polyfill-mbstring": "^1.3" + "php": "^7.2 || ^8.0", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php80": "^1.16" }, "conflict": { "phpmyadmin/motranslator": "<3.0" }, "require-dev": { + "phpbench/phpbench": "^1.1", "phpmyadmin/coding-standard": "^3.0", "phpmyadmin/motranslator": "^4.0 || ^5.0", "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.2", - "phpstan/phpstan-phpunit": "^1.0", + "phpstan/phpstan": "^1.9.12", + "phpstan/phpstan-phpunit": "^1.3.3", "phpunit/php-code-coverage": "*", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "psalm/plugin-phpunit": "^0.16.1", @@ -13565,26 +13512,38 @@ "analysis", "lexer", "parser", - "sql" + "query linter", + "sql", + "sql lexer", + "sql linter", + "sql parser", + "sql syntax highlighter", + "sql tokenizer" ], "support": { "issues": "https://github.com/phpmyadmin/sql-parser/issues", "source": "https://github.com/phpmyadmin/sql-parser" }, - "time": "2021-12-09T04:31:52+00:00" + "funding": [ + { + "url": "https://www.phpmyadmin.net/donate/", + "type": "other" + } + ], + "time": "2023-06-05T18:19:38+00:00" }, { "name": "phpstan/phpstan", - "version": "1.8.11", + "version": "1.10.16", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "46e223dd68a620da18855c23046ddb00940b4014" + "reference": "352bdbb960bb523e3d71b834862589f910921c23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/46e223dd68a620da18855c23046ddb00940b4014", - "reference": "46e223dd68a620da18855c23046ddb00940b4014", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/352bdbb960bb523e3d71b834862589f910921c23", + "reference": "352bdbb960bb523e3d71b834862589f910921c23", "shasum": "" }, "require": { @@ -13613,8 +13572,11 @@ "static analysis" ], "support": { + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.8.11" + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" }, "funding": [ { @@ -13630,20 +13592,20 @@ "type": "tidelift" } ], - "time": "2022-10-24T15:45:13+00:00" + "time": "2023-06-05T08:21:46+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.25", + "version": "9.2.26", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "0e2b40518197a8c0d4b08bc34dfff1c99c508954" + "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/0e2b40518197a8c0d4b08bc34dfff1c99c508954", - "reference": "0e2b40518197a8c0d4b08bc34dfff1c99c508954", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", + "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", "shasum": "" }, "require": { @@ -13665,8 +13627,8 @@ "phpunit/phpunit": "^9.3" }, "suggest": { - "ext-pcov": "*", - "ext-xdebug": "*" + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "type": "library", "extra": { @@ -13699,7 +13661,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.25" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" }, "funding": [ { @@ -13707,7 +13669,7 @@ "type": "github" } ], - "time": "2023-02-25T05:32:00+00:00" + "time": "2023-03-06T12:58:08+00:00" }, { "name": "phpunit/php-file-iterator", @@ -13952,16 +13914,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.4", + "version": "9.6.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "9125ee085b6d95e78277dc07aa1f46f9e0607b8d" + "reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9125ee085b6d95e78277dc07aa1f46f9e0607b8d", - "reference": "9125ee085b6d95e78277dc07aa1f46f9e0607b8d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/17d621b3aff84d0c8b62539e269e87d8d5baa76e", + "reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e", "shasum": "" }, "require": { @@ -13994,8 +13956,8 @@ "sebastian/version": "^3.0.2" }, "suggest": { - "ext-soap": "*", - "ext-xdebug": "*" + "ext-soap": "To be able to generate mocks based on WSDL files", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "bin": [ "phpunit" @@ -14034,7 +13996,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.4" + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.8" }, "funding": [ { @@ -14050,7 +14013,7 @@ "type": "tidelift" } ], - "time": "2023-02-27T13:06:37+00:00" + "time": "2023-05-11T05:14:45+00:00" }, { "name": "pimple/pimple", @@ -14405,16 +14368,16 @@ }, { "name": "sebastian/diff", - "version": "4.0.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", "shasum": "" }, "require": { @@ -14459,7 +14422,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" }, "funding": [ { @@ -14467,7 +14430,7 @@ "type": "github" } ], - "time": "2020-10-26T13:10:38+00:00" + "time": "2023-05-07T05:35:17+00:00" }, { "name": "sebastian/environment", @@ -15425,16 +15388,16 @@ }, { "name": "symfony/yaml", - "version": "v6.2.10", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "61916f3861b1e9705b18cfde723921a71dd1559d" + "reference": "a9a8337aa641ef2aa39c3e028f9107ec391e5927" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/61916f3861b1e9705b18cfde723921a71dd1559d", - "reference": "61916f3861b1e9705b18cfde723921a71dd1559d", + "url": "https://api.github.com/repos/symfony/yaml/zipball/a9a8337aa641ef2aa39c3e028f9107ec391e5927", + "reference": "a9a8337aa641ef2aa39c3e028f9107ec391e5927", "shasum": "" }, "require": { @@ -15447,9 +15410,6 @@ "require-dev": { "symfony/console": "^5.4|^6.0" }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, "bin": [ "Resources/bin/yaml-lint" ], @@ -15479,7 +15439,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.2.10" + "source": "https://github.com/symfony/yaml/tree/v6.3.0" }, "funding": [ { @@ -15495,7 +15455,7 @@ "type": "tidelift" } ], - "time": "2023-04-28T13:25:36+00:00" + "time": "2023-04-28T13:28:14+00:00" }, { "name": "theseer/tokenizer", diff --git a/config/localizator.php b/config/localizator.php index 81e6331df..eac50e8b3 100644 --- a/config/localizator.php +++ b/config/localizator.php @@ -47,7 +47,7 @@ * Add here any custom defined functions. * NOTE: The translation string should always be the first argument. */ - 'functions' => ['__', 'trans', '@lang'], + 'functions' => ['__', 'trans', '@lang', 'safe_markdown', 'safe_inlineMarkdown'], ], /** diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php deleted file mode 100644 index 8f576f0de..000000000 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ /dev/null @@ -1,55 +0,0 @@ -id(); - $table->timestamps(); - $table->string('name'); - $table->string('email')->unique(); - $table->timestamp('email_verified_at')->nullable(); - $table->timestamp('oriented_at')->nullable(); - $table->string('password'); - $table->rememberToken(); - $table->string('locale')->default('en'); - $table->string('signed_language')->nullable(); - $table->string('context')->default('individual'); - $table->boolean('finished_introduction')->nullable(); - $table->string('theme')->default('light'); - $table->boolean('text_to_speech')->nullable(); - $table->string('sign_language_translations')->nullable(); - $table->string('phone')->nullable(); - $table->boolean('vrs')->nullable(); - $table->string('support_person_name')->nullable(); - $table->string('support_person_email')->nullable(); - $table->string('support_person_phone')->nullable(); - $table->boolean('support_person_vrs')->nullable(); - $table->string('preferred_contact_person')->default('me'); - $table->string('preferred_contact_method')->default('email'); - $table->string('preferred_notification_method')->default('email'); - $table->schemalessAttributes('notification_settings')->nullable(); - $table->schemalessAttributes('extra_attributes')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('users'); - } -}; diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php deleted file mode 100644 index fcacb80b3..000000000 --- a/database/migrations/2014_10_12_100000_create_password_resets_table.php +++ /dev/null @@ -1,32 +0,0 @@ -string('email')->index(); - $table->string('token'); - $table->timestamp('created_at')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('password_resets'); - } -}; diff --git a/database/migrations/2014_10_12_200000_add_two_factor_columns_to_users_table.php b/database/migrations/2014_10_12_200000_add_two_factor_columns_to_users_table.php deleted file mode 100644 index 286d226cb..000000000 --- a/database/migrations/2014_10_12_200000_add_two_factor_columns_to_users_table.php +++ /dev/null @@ -1,38 +0,0 @@ -text('two_factor_secret') - ->after('password') - ->nullable(); - - $table->text('two_factor_recovery_codes') - ->after('two_factor_secret') - ->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('users', function (Blueprint $table) { - $table->dropColumn('two_factor_secret', 'two_factor_recovery_codes'); - }); - } -}; diff --git a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php deleted file mode 100644 index 17191986b..000000000 --- a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php +++ /dev/null @@ -1,36 +0,0 @@ -id(); - $table->string('uuid')->unique(); - $table->text('connection'); - $table->text('queue'); - $table->longText('payload'); - $table->longText('exception'); - $table->timestamp('failed_at')->useCurrent(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('failed_jobs'); - } -}; diff --git a/database/migrations/2021_01_26_135429_create_sessions_table.php b/database/migrations/2021_01_26_135429_create_sessions_table.php deleted file mode 100644 index c455537a9..000000000 --- a/database/migrations/2021_01_26_135429_create_sessions_table.php +++ /dev/null @@ -1,35 +0,0 @@ -string('id')->primary(); - $table->foreignId('user_id')->nullable()->index(); - $table->string('ip_address', 45)->nullable(); - $table->text('user_agent')->nullable(); - $table->text('payload'); - $table->integer('last_activity')->index(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('sessions'); - } -}; diff --git a/database/migrations/2022_07_01_000000_create_blind_indexes_table.php b/database/migrations/2022_07_01_000000_create_blind_indexes_table.php deleted file mode 100644 index 6eb58447e..000000000 --- a/database/migrations/2022_07_01_000000_create_blind_indexes_table.php +++ /dev/null @@ -1,20 +0,0 @@ -morphs('indexable'); - $table->string('name'); - $table->string('value'); - - $table->index(['name', 'value']); - $table->unique(['indexable_type', 'indexable_id', 'name']); - }); - } -}; diff --git a/database/migrations/2022_07_01_000000_create_media_table.php b/database/migrations/2022_07_01_000000_create_media_table.php deleted file mode 100644 index f23ba952a..000000000 --- a/database/migrations/2022_07_01_000000_create_media_table.php +++ /dev/null @@ -1,30 +0,0 @@ -bigIncrements('id'); - $table->morphs('model'); - $table->uuid('uuid')->nullable()->unique(); - $table->string('collection_name'); - $table->string('name'); - $table->string('file_name'); - $table->string('mime_type')->nullable(); - $table->string('disk'); - $table->string('conversions_disk')->nullable(); - $table->unsignedBigInteger('size'); - $table->json('manipulations'); - $table->json('custom_properties'); - $table->json('generated_conversions'); - $table->json('responsive_images'); - $table->unsignedInteger('order_column')->nullable(); - $table->nullableTimestamps(); - }); - } -}; diff --git a/database/migrations/2022_07_28_000000_create_content_types_table.php b/database/migrations/2022_07_28_000000_create_content_types_table.php deleted file mode 100644 index 06e52171f..000000000 --- a/database/migrations/2022_07_28_000000_create_content_types_table.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->json('name'); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('content_types'); - } -}; diff --git a/database/migrations/2022_07_28_000000_create_individuals_table.php b/database/migrations/2022_07_28_000000_create_individuals_table.php deleted file mode 100644 index 8a491510c..000000000 --- a/database/migrations/2022_07_28_000000_create_individuals_table.php +++ /dev/null @@ -1,67 +0,0 @@ -id(); - $table->timestamps(); - $table->timestamp('published_at')->nullable(); - $table->foreignId('user_id') - ->constrained() - ->onDelete('cascade'); - $table->string('name'); - $table->string('slug'); - $table->json('picture_alt')->nullable(); - $table->json('languages')->nullable(); - $table->json('roles')->nullable(); - $table->json('pronouns')->nullable(); - $table->json('bio')->nullable(); - $table->string('region')->nullable(); - $table->string('locality')->nullable(); - $table->json('working_languages')->nullable(); - $table->json('consulting_services')->nullable(); - $table->json('social_links')->nullable(); - $table->string('website_link')->nullable(); - $table->schemalessAttributes('extra_attributes'); - $table->json('other_disability_type_connection')->nullable(); - $table->json('other_ethnoracial_identity_connection')->nullable(); - $table->string('connection_lived_experience')->nullable(); - $table->json('lived_experience')->nullable(); - $table->json('skills_and_strengths')->nullable(); - $table->json('relevant_experiences')->nullable(); - $table->json('meeting_types')->nullable(); - $table->date('birth_date')->nullable(); - $table->string('first_language'); - $table->string('other_payment_type')->nullable(); - $table->json('other_access_need')->nullable(); - $table->string('signed_language_for_interpretation')->nullable(); - $table->string('spoken_language_for_interpretation')->nullable(); - $table->string('signed_language_for_translation')->nullable(); - $table->string('written_language_for_translation')->nullable(); - $table->string('street_address')->nullable(); - $table->string('unit_apartment_suite')->nullable(); - $table->string('postal_code')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('individuals'); - } -}; diff --git a/database/migrations/2022_07_28_000000_create_matching_strategies_table.php b/database/migrations/2022_07_28_000000_create_matching_strategies_table.php deleted file mode 100644 index 04c8d96c1..000000000 --- a/database/migrations/2022_07_28_000000_create_matching_strategies_table.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - $table->timestamps(); - $table->nullableMorphs('matchable'); - $table->json('regions')->nullable(); - $table->json('locations')->nullable(); - $table->schemalessAttributes('extra_attributes'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('matching_strategies'); - } -}; diff --git a/database/migrations/2022_07_28_000000_create_organizations_table.php b/database/migrations/2022_07_28_000000_create_organizations_table.php deleted file mode 100644 index b616d6ffc..000000000 --- a/database/migrations/2022_07_28_000000_create_organizations_table.php +++ /dev/null @@ -1,58 +0,0 @@ -id(); - $table->timestamps(); - $table->timestamp('oriented_at')->nullable(); - $table->timestamp('validated_at')->nullable(); - $table->timestamp('published_at')->nullable(); - $table->json('name'); - $table->json('slug'); - $table->string('type'); - $table->json('languages')->nullable(); - $table->json('roles')->nullable(); - $table->string('region')->nullable(); - $table->string('locality')->nullable(); - $table->json('about')->nullable(); - $table->json('service_areas')->nullable(); - $table->json('working_languages')->nullable(); - $table->json('consulting_services')->nullable(); - $table->json('social_links')->nullable(); - $table->string('website_link')->nullable(); - $table->schemalessAttributes('extra_attributes'); - $table->json('other_disability_type')->nullable(); - $table->json('other_ethnoracial_identity')->nullable(); - $table->string('staff_lived_experience')->nullable(); - $table->string('contact_person_name')->nullable(); - $table->string('contact_person_email')->nullable(); - $table->string('contact_person_phone')->nullable(); - $table->boolean('contact_person_vrs')->nullable(); - $table->string('preferred_contact_method')->default('email'); - $table->string('preferred_notification_method')->default('email'); - $table->schemalessAttributes('notification_settings')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('organizations'); - } -}; diff --git a/database/migrations/2022_07_28_000000_create_regulated_organizations_table.php b/database/migrations/2022_07_28_000000_create_regulated_organizations_table.php deleted file mode 100644 index c075e17db..000000000 --- a/database/migrations/2022_07_28_000000_create_regulated_organizations_table.php +++ /dev/null @@ -1,51 +0,0 @@ -id(); - $table->timestamps(); - $table->timestamp('validated_at')->nullable(); - $table->timestamp('published_at')->nullable(); - $table->json('name'); - $table->json('slug'); - $table->string('type'); - $table->json('languages')->nullable(); - $table->string('region')->nullable(); - $table->string('locality')->nullable(); - $table->json('about')->nullable(); - $table->json('service_areas')->nullable(); - $table->json('accessibility_and_inclusion_links')->nullable(); - $table->json('social_links')->nullable(); - $table->string('website_link')->nullable(); - $table->string('contact_person_name')->nullable(); - $table->string('contact_person_email')->nullable(); - $table->string('contact_person_phone')->nullable(); - $table->boolean('contact_person_vrs')->nullable(); - $table->string('preferred_contact_method')->default('email'); - $table->string('preferred_notification_method')->default('email'); - $table->schemalessAttributes('notification_settings')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('regulated_organizations'); - } -}; diff --git a/database/migrations/2022_07_28_000000_create_resources_table.php b/database/migrations/2022_07_28_000000_create_resources_table.php deleted file mode 100644 index 69f47d3e1..000000000 --- a/database/migrations/2022_07_28_000000_create_resources_table.php +++ /dev/null @@ -1,41 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('user_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('content_type_id') - ->nullable() - ->constrained() - ->onDelete('cascade'); - $table->json('title'); - $table->json('slug'); - $table->json('summary'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('resources'); - } -}; diff --git a/database/migrations/2022_07_28_100000_create_criteria_table.php b/database/migrations/2022_07_28_100000_create_criteria_table.php deleted file mode 100644 index 9f3ab5a27..000000000 --- a/database/migrations/2022_07_28_100000_create_criteria_table.php +++ /dev/null @@ -1,36 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('matching_strategy_id') - ->constrained() - ->onDelete('cascade'); - $table->morphs('criteriable'); - $table->float('weight')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('criteria'); - } -}; diff --git a/database/migrations/2022_07_28_100000_create_projects_table.php b/database/migrations/2022_07_28_100000_create_projects_table.php deleted file mode 100644 index 992ffa2c0..000000000 --- a/database/migrations/2022_07_28_100000_create_projects_table.php +++ /dev/null @@ -1,70 +0,0 @@ -id(); - $table->timestamps(); - $table->timestamp('published_at')->nullable(); - $table->morphs('projectable'); - $table->bigInteger('ancestor_id') - ->references('id') - ->on('projects') - ->nullable(); - $table->json('languages')->nullable(); - $table->json('name'); - $table->json('goals')->nullable(); - $table->json('scope')->nullable(); - $table->json('regions')->nullable(); - $table->json('out_of_scope')->nullable(); - $table->date('start_date')->nullable(); - $table->date('end_date')->nullable(); - $table->json('outcome_analysis')->nullable(); - $table->json('outcome_analysis_other')->nullable(); - $table->json('outcomes')->nullable(); - $table->boolean('public_outcomes')->nullable(); - $table->json('team_size')->nullable(); - $table->boolean('team_has_disability_or_deaf_lived_experience')->nullable(); - $table->json('team_languages')->nullable(); - $table->json('team_trainings')->nullable(); - $table->boolean('seeking_consultant')->nullable(); - $table->string('consultant_name')->nullable(); - $table->bigInteger('individual_consultant_id') - ->references('id') - ->on('individuals') - ->nullable(); - $table->bigInteger('organizational_consultant_id') - ->references('id') - ->on('organizations') - ->nullable(); - $table->json('consultant_responsibilities')->nullable(); - $table->string('contact_person_name')->nullable(); - $table->string('contact_person_email')->nullable(); - $table->string('contact_person_phone')->nullable(); - $table->boolean('contact_person_vrs')->nullable(); - $table->string('preferred_contact_method')->default('email'); - $table->json('contact_person_response_time')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('projects'); - } -}; diff --git a/database/migrations/2022_07_28_100000_create_resource_collections_table.php b/database/migrations/2022_07_28_100000_create_resource_collections_table.php deleted file mode 100644 index 38e9feec7..000000000 --- a/database/migrations/2022_07_28_100000_create_resource_collections_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('user_id') - ->constrained() - ->onDelete('cascade'); - $table->json('title'); - $table->json('slug'); - $table->json('description'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('resource_collections'); - } -}; diff --git a/database/migrations/2022_07_28_200000_create_engagements_table.php b/database/migrations/2022_07_28_200000_create_engagements_table.php deleted file mode 100644 index 249bcf2b5..000000000 --- a/database/migrations/2022_07_28_200000_create_engagements_table.php +++ /dev/null @@ -1,72 +0,0 @@ -id(); - $table->timestamps(); - $table->timestamp('published_at')->nullable(); - $table->foreignId('project_id') - ->constrained() - ->onDelete('cascade'); - $table->json('languages')->nullable(); - $table->json('name'); - $table->json('description')->nullable(); - $table->string('format'); - $table->integer('ideal_participants')->nullable(); - $table->integer('minimum_participants')->nullable(); - $table->string('who')->nullable(); - $table->string('recruitment')->nullable(); - $table->json('regions')->nullable(); - $table->json('localities')->nullable(); - $table->boolean('paid')->default(1); - $table->json('payment')->nullable(); - $table->date('signup_by_date')->nullable(); - $table->date('materials_by_date')->nullable(); - $table->date('complete_by_date')->nullable(); - $table->date('window_start_date')->nullable(); - $table->date('window_end_date')->nullable(); - $table->string('timezone')->nullable(); - $table->json('weekday_availabilities')->nullable(); - $table->json('document_languages')->nullable(); - $table->json('accepted_formats')->nullable(); - $table->bigInteger('individual_connector_id') - ->references('id') - ->on('individuals') - ->nullable(); - $table->bigInteger('organizational_connector_id') - ->references('id') - ->on('organizations') - ->nullable(); - $table->bigInteger('individual_consultant_id') - ->references('id') - ->on('individuals') - ->nullable(); - $table->bigInteger('organizational_consultant_id') - ->references('id') - ->on('organizations') - ->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('engagements'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_access_supports_table.php b/database/migrations/2022_07_28_300000_create_access_supports_table.php deleted file mode 100644 index 397196a78..000000000 --- a/database/migrations/2022_07_28_300000_create_access_supports_table.php +++ /dev/null @@ -1,36 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - $table->json('description')->nullable(); - $table->boolean('in_person')->nullable(); - $table->boolean('virtual')->nullable(); - $table->boolean('documents')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('access_supports'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_age_brackets_table.php b/database/migrations/2022_07_28_300000_create_age_brackets_table.php deleted file mode 100644 index 380a66cbd..000000000 --- a/database/migrations/2022_07_28_300000_create_age_brackets_table.php +++ /dev/null @@ -1,34 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - $table->integer('min')->nullable(); - $table->integer('max')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('age_brackets'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_area_types_table.php b/database/migrations/2022_07_28_300000_create_area_types_table.php deleted file mode 100644 index fbdae1f94..000000000 --- a/database/migrations/2022_07_28_300000_create_area_types_table.php +++ /dev/null @@ -1,33 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - $table->json('description')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('area_types'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_communication_tools_table.php b/database/migrations/2022_07_28_300000_create_communication_tools_table.php deleted file mode 100644 index 1da4a9156..000000000 --- a/database/migrations/2022_07_28_300000_create_communication_tools_table.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('communication_tools'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_constituencies_table.php b/database/migrations/2022_07_28_300000_create_constituencies_table.php deleted file mode 100644 index a419388c7..000000000 --- a/database/migrations/2022_07_28_300000_create_constituencies_table.php +++ /dev/null @@ -1,25 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - $table->json('name_plural'); - $table->json('adjective'); - $table->json('description'); - }); - } - - public function down() - { - Schema::dropIfExists('constituencies'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_consulting_methods_table.php b/database/migrations/2022_07_28_300000_create_consulting_methods_table.php deleted file mode 100644 index dd6c4d744..000000000 --- a/database/migrations/2022_07_28_300000_create_consulting_methods_table.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('consulting_methods'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_defined_terms_table.php b/database/migrations/2022_07_28_300000_create_defined_terms_table.php deleted file mode 100644 index fb8361467..000000000 --- a/database/migrations/2022_07_28_300000_create_defined_terms_table.php +++ /dev/null @@ -1,34 +0,0 @@ -id(); - $table->timestamps(); - $table->json('term'); - $table->json('definition'); - $table->nullableMorphs('defineable'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('defined_terms'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_disability_types_table.php b/database/migrations/2022_07_28_300000_create_disability_types_table.php deleted file mode 100644 index 433dfae81..000000000 --- a/database/migrations/2022_07_28_300000_create_disability_types_table.php +++ /dev/null @@ -1,33 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - $table->json('description')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('disability_types'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_employment_statuses_table.php b/database/migrations/2022_07_28_300000_create_employment_statuses_table.php deleted file mode 100644 index 2ee2e6335..000000000 --- a/database/migrations/2022_07_28_300000_create_employment_statuses_table.php +++ /dev/null @@ -1,33 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - $table->json('description')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('employment_statuses'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_ethnoracial_identities_table.php b/database/migrations/2022_07_28_300000_create_ethnoracial_identities_table.php deleted file mode 100644 index 5e57c51e3..000000000 --- a/database/migrations/2022_07_28_300000_create_ethnoracial_identities_table.php +++ /dev/null @@ -1,33 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - $table->json('description')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('ethnoracial_identities'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_formats_table.php b/database/migrations/2022_07_28_300000_create_formats_table.php deleted file mode 100644 index 77f1b82fd..000000000 --- a/database/migrations/2022_07_28_300000_create_formats_table.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('formats'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_gender_identities_table.php b/database/migrations/2022_07_28_300000_create_gender_identities_table.php deleted file mode 100644 index 857e0678c..000000000 --- a/database/migrations/2022_07_28_300000_create_gender_identities_table.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - $table->json('name_plural'); - $table->json('adjective'); - $table->json('description')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('gender_identities'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_identities_table.php b/database/migrations/2022_07_28_300000_create_identities_table.php deleted file mode 100644 index 51d9fdc12..000000000 --- a/database/migrations/2022_07_28_300000_create_identities_table.php +++ /dev/null @@ -1,34 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - $table->json('description')->nullable(); - $table->string('cluster')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('identities'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_impacts_table.php b/database/migrations/2022_07_28_300000_create_impacts_table.php deleted file mode 100644 index 0f97748f3..000000000 --- a/database/migrations/2022_07_28_300000_create_impacts_table.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('impacts'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_indigenous_identities_table.php b/database/migrations/2022_07_28_300000_create_indigenous_identities_table.php deleted file mode 100644 index 694b39a52..000000000 --- a/database/migrations/2022_07_28_300000_create_indigenous_identities_table.php +++ /dev/null @@ -1,33 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - $table->json('description')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('indigenous_identities'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_languages_table.php b/database/migrations/2022_07_28_300000_create_languages_table.php deleted file mode 100644 index 186cc3312..000000000 --- a/database/migrations/2022_07_28_300000_create_languages_table.php +++ /dev/null @@ -1,22 +0,0 @@ -id(); - $table->string('code'); - $table->json('name'); - }); - } - - public function down(): void - { - Schema::dropIfExists('languages'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_lived_experiences_table.php b/database/migrations/2022_07_28_300000_create_lived_experiences_table.php deleted file mode 100644 index 2ca75dbed..000000000 --- a/database/migrations/2022_07_28_300000_create_lived_experiences_table.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('lived_experiences'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_meetings_table.php b/database/migrations/2022_07_28_300000_create_meetings_table.php deleted file mode 100644 index 666274980..000000000 --- a/database/migrations/2022_07_28_300000_create_meetings_table.php +++ /dev/null @@ -1,40 +0,0 @@ -id(); - $table->timestamps(); - $table->timestamp('published_at')->nullable(); - $table->foreignId('engagement_id') - ->constrained() - ->onDelete('cascade'); - $table->json('title'); - $table->dateTimeTz('start_datetime'); - $table->dateTimeTz('end_datetime'); - $table->json('ways_to_attend'); - $table->string('street_address')->nullable(); - $table->string('unit_apartment_suite')->nullable(); - $table->string('locality')->nullable(); - $table->string('region')->nullable(); - $table->string('postal_code')->nullable(); - $table->string('web_conference_tool')->nullable(); - $table->boolean('alternate_web_conference_tool')->nullable(); - $table->string('web_conference_url')->nullable(); - $table->json('web_conference_information')->nullable(); - $table->json('phone')->nullable(); - $table->json('phone_information'); - }); - } - - public function down(): void - { - Schema::dropIfExists('meetings'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_payment_types_table.php b/database/migrations/2022_07_28_300000_create_payment_types_table.php deleted file mode 100644 index 5cb3e448e..000000000 --- a/database/migrations/2022_07_28_300000_create_payment_types_table.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('payment_types'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_phases_table.php b/database/migrations/2022_07_28_300000_create_phases_table.php deleted file mode 100644 index b34ecb990..000000000 --- a/database/migrations/2022_07_28_300000_create_phases_table.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('phases'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_sectors_table.php b/database/migrations/2022_07_28_300000_create_sectors_table.php deleted file mode 100644 index 564588cb8..000000000 --- a/database/migrations/2022_07_28_300000_create_sectors_table.php +++ /dev/null @@ -1,33 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - $table->json('description')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('sectors'); - } -}; diff --git a/database/migrations/2022_07_28_300000_create_topics_table.php b/database/migrations/2022_07_28_300000_create_topics_table.php deleted file mode 100644 index 948da8086..000000000 --- a/database/migrations/2022_07_28_300000_create_topics_table.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('topics'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_access_support_individual_table.php b/database/migrations/2022_07_28_400000_create_access_support_individual_table.php deleted file mode 100644 index f44f51edd..000000000 --- a/database/migrations/2022_07_28_400000_create_access_support_individual_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('access_support_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('access_support_individual'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_age_bracket_organization_table.php b/database/migrations/2022_07_28_400000_create_age_bracket_organization_table.php deleted file mode 100644 index f65a667b0..000000000 --- a/database/migrations/2022_07_28_400000_create_age_bracket_organization_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('age_bracket_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('organization_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('age_bracket_organization'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_area_type_organization_table.php b/database/migrations/2022_07_28_400000_create_area_type_organization_table.php deleted file mode 100644 index 731d89e8e..000000000 --- a/database/migrations/2022_07_28_400000_create_area_type_organization_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('area_type_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('organization_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('area_type_organization'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_blockables_table.php b/database/migrations/2022_07_28_400000_create_blockables_table.php deleted file mode 100644 index cf668ea11..000000000 --- a/database/migrations/2022_07_28_400000_create_blockables_table.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('user_id') - ->constrained() - ->onDelete('cascade'); - $table->morphs('blockable'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('blockables'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_connectables_table.php b/database/migrations/2022_07_28_400000_create_connectables_table.php deleted file mode 100644 index 6dc534d22..000000000 --- a/database/migrations/2022_07_28_400000_create_connectables_table.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - $table->morphs('connectable'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('connectables'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_constituency_individual_table.php b/database/migrations/2022_07_28_400000_create_constituency_individual_table.php deleted file mode 100644 index 8ad2ee65b..000000000 --- a/database/migrations/2022_07_28_400000_create_constituency_individual_table.php +++ /dev/null @@ -1,27 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('constituency_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - public function down(): void - { - Schema::dropIfExists('constituency_individual'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_constituency_organization_table.php b/database/migrations/2022_07_28_400000_create_constituency_organization_table.php deleted file mode 100644 index 1d030acb4..000000000 --- a/database/migrations/2022_07_28_400000_create_constituency_organization_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('constituency_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('organization_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('constituency_organization'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_consulting_method_individual_table.php b/database/migrations/2022_07_28_400000_create_consulting_method_individual_table.php deleted file mode 100644 index 555d6b26e..000000000 --- a/database/migrations/2022_07_28_400000_create_consulting_method_individual_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('consulting_method_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('consulting_method_individual'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_disability_type_organization_table.php b/database/migrations/2022_07_28_400000_create_disability_type_organization_table.php deleted file mode 100644 index 828559035..000000000 --- a/database/migrations/2022_07_28_400000_create_disability_type_organization_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('disability_type_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('organization_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('disability_type_organization'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_engagement_individual_table.php b/database/migrations/2022_07_28_400000_create_engagement_individual_table.php deleted file mode 100644 index 12125f11a..000000000 --- a/database/migrations/2022_07_28_400000_create_engagement_individual_table.php +++ /dev/null @@ -1,38 +0,0 @@ -id(); - $table->timestamps(); - $table->string('status')->default('invited'); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('engagement_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('engagement_individual'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_engagement_organization_table.php b/database/migrations/2022_07_28_400000_create_engagement_organization_table.php deleted file mode 100644 index 347cec870..000000000 --- a/database/migrations/2022_07_28_400000_create_engagement_organization_table.php +++ /dev/null @@ -1,38 +0,0 @@ -id(); - $table->timestamps(); - $table->string('status')->default('invited'); - $table->foreignId('organization_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('engagement_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('engagement_organization'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_ethnoracial_identity_organization_table.php b/database/migrations/2022_07_28_400000_create_ethnoracial_identity_organization_table.php deleted file mode 100644 index 3ad8f3412..000000000 --- a/database/migrations/2022_07_28_400000_create_ethnoracial_identity_organization_table.php +++ /dev/null @@ -1,39 +0,0 @@ -id(); - $table->timestamps(); - $table->unsignedBigInteger('ethnoracial_identity_id'); - $table->foreign('ethnoracial_identity_id', 'ethnoracial_identity_foreign') - ->references('id') - ->on('ethnoracial_identities') - ->onDelete('cascade'); - $table->foreignId('organization_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('ethnoracial_identity_organization'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_formattables_table.php b/database/migrations/2022_07_28_400000_create_formattables_table.php deleted file mode 100644 index aefa6672b..000000000 --- a/database/migrations/2022_07_28_400000_create_formattables_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('format_id') - ->constrained() - ->onDelete('cascade'); - $table->morphs('formattable'); - $table->string('language'); - $table->boolean('original')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('formatables'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_gender_identity_organization_table.php b/database/migrations/2022_07_28_400000_create_gender_identity_organization_table.php deleted file mode 100644 index e54bba2ac..000000000 --- a/database/migrations/2022_07_28_400000_create_gender_identity_organization_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('gender_identity_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('organization_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('gender_identity_organization'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_identity_individual_table.php b/database/migrations/2022_07_28_400000_create_identity_individual_table.php deleted file mode 100644 index b1e27be2c..000000000 --- a/database/migrations/2022_07_28_400000_create_identity_individual_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('identity_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('identity_individual'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_identity_organization_table.php b/database/migrations/2022_07_28_400000_create_identity_organization_table.php deleted file mode 100644 index c735f5356..000000000 --- a/database/migrations/2022_07_28_400000_create_identity_organization_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('identity_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('organization_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('identity_organization'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_impact_organization_table.php b/database/migrations/2022_07_28_400000_create_impact_organization_table.php deleted file mode 100644 index 3228ac57f..000000000 --- a/database/migrations/2022_07_28_400000_create_impact_organization_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('impact_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('organization_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('impact_organization'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_impact_project_table.php b/database/migrations/2022_07_28_400000_create_impact_project_table.php deleted file mode 100644 index dd0bcd9be..000000000 --- a/database/migrations/2022_07_28_400000_create_impact_project_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('impact_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('project_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('impact_project'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_indigenous_identity_organization_table.php b/database/migrations/2022_07_28_400000_create_indigenous_identity_organization_table.php deleted file mode 100644 index 72614ea23..000000000 --- a/database/migrations/2022_07_28_400000_create_indigenous_identity_organization_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('indigenous_identity_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('organization_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('indigenous_identity_organization'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_individual_identity_connections_table.php b/database/migrations/2022_07_28_400000_create_individual_identity_connections_table.php deleted file mode 100644 index 53b13570a..000000000 --- a/database/migrations/2022_07_28_400000_create_individual_identity_connections_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('identity_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('individual_identity_connections'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_individual_impact_table.php b/database/migrations/2022_07_28_400000_create_individual_impact_table.php deleted file mode 100644 index 1a9c3316b..000000000 --- a/database/migrations/2022_07_28_400000_create_individual_impact_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('impact_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('impact_individual'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_individual_language_table.php b/database/migrations/2022_07_28_400000_create_individual_language_table.php deleted file mode 100644 index 4b6714818..000000000 --- a/database/migrations/2022_07_28_400000_create_individual_language_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('language_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('individual_language'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_individual_lived_experience_table.php b/database/migrations/2022_07_28_400000_create_individual_lived_experience_table.php deleted file mode 100644 index e94f6b8bf..000000000 --- a/database/migrations/2022_07_28_400000_create_individual_lived_experience_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('lived_experience_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('individual_lived_experience'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_individual_payment_type_table.php b/database/migrations/2022_07_28_400000_create_individual_payment_type_table.php deleted file mode 100644 index 7f2eba567..000000000 --- a/database/migrations/2022_07_28_400000_create_individual_payment_type_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('payment_type_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('individual_payment_type'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_individual_sector_table.php b/database/migrations/2022_07_28_400000_create_individual_sector_table.php deleted file mode 100644 index e8c7f75bd..000000000 --- a/database/migrations/2022_07_28_400000_create_individual_sector_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('sector_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('individual_sector'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_language_organization_table.php b/database/migrations/2022_07_28_400000_create_language_organization_table.php deleted file mode 100644 index 6d275ba61..000000000 --- a/database/migrations/2022_07_28_400000_create_language_organization_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('language_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('organization_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('language_organization'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_lived_experience_organization_table.php b/database/migrations/2022_07_28_400000_create_lived_experience_organization_table.php deleted file mode 100644 index 0cdb6a353..000000000 --- a/database/migrations/2022_07_28_400000_create_lived_experience_organization_table.php +++ /dev/null @@ -1,39 +0,0 @@ -id(); - $table->timestamps(); - $table->unsignedBigInteger('lived_experience_id'); - $table->foreign('lived_experience_id', 'lived_experience_foreign') - ->references('id') - ->on('lived_experiences') - ->onDelete('cascade'); - $table->foreignId('organization_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('lived_experience_organization'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_notificationables_table.php b/database/migrations/2022_07_28_400000_create_notificationables_table.php deleted file mode 100644 index fdd1453bf..000000000 --- a/database/migrations/2022_07_28_400000_create_notificationables_table.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('user_id') - ->constrained() - ->onDelete('cascade'); - $table->morphs('notificationable', 'notificationable_index'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('notificationables'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_organization_sector_table.php b/database/migrations/2022_07_28_400000_create_organization_sector_table.php deleted file mode 100644 index 7bcdcc72c..000000000 --- a/database/migrations/2022_07_28_400000_create_organization_sector_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('organization_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('sector_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('organization_sector'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_phaseables_table.php b/database/migrations/2022_07_28_400000_create_phaseables_table.php deleted file mode 100644 index 7c19d7461..000000000 --- a/database/migrations/2022_07_28_400000_create_phaseables_table.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('phase_id') - ->constrained() - ->onDelete('cascade'); - $table->morphs('phaseable'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('phaseables'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_projects_of_interest_table.php b/database/migrations/2022_07_28_400000_create_projects_of_interest_table.php deleted file mode 100644 index e5d785758..000000000 --- a/database/migrations/2022_07_28_400000_create_projects_of_interest_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('project_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('projects_of_interest'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_regulated_organization_sector_table.php b/database/migrations/2022_07_28_400000_create_regulated_organization_sector_table.php deleted file mode 100644 index e6602af83..000000000 --- a/database/migrations/2022_07_28_400000_create_regulated_organization_sector_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('regulated_organization_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('sector_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('regulated_organization_sector'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_resource_resource_collection_table.php b/database/migrations/2022_07_28_400000_create_resource_resource_collection_table.php deleted file mode 100644 index 1089424af..000000000 --- a/database/migrations/2022_07_28_400000_create_resource_resource_collection_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('resource_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('resource_collection_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('collectionables'); - } -}; diff --git a/database/migrations/2022_07_28_400000_create_topicables_table.php b/database/migrations/2022_07_28_400000_create_topicables_table.php deleted file mode 100644 index e999ee4cc..000000000 --- a/database/migrations/2022_07_28_400000_create_topicables_table.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('topic_id') - ->constrained() - ->onDelete('cascade'); - $table->morphs('topicable'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('topicables'); - } -}; diff --git a/database/migrations/2022_07_28_500000_create_all_individual_contracted_projects_view.php b/database/migrations/2022_07_28_500000_create_all_individual_contracted_projects_view.php deleted file mode 100644 index 610d9c494..000000000 --- a/database/migrations/2022_07_28_500000_create_all_individual_contracted_projects_view.php +++ /dev/null @@ -1,33 +0,0 @@ -connectingEngagementProjects(), - ] - ); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropView('all_individual_contracted_projects'); - } -}; diff --git a/database/migrations/2022_07_28_500000_create_all_organization_contracted_projects_view.php b/database/migrations/2022_07_28_500000_create_all_organization_contracted_projects_view.php deleted file mode 100644 index 1827cba1d..000000000 --- a/database/migrations/2022_07_28_500000_create_all_organization_contracted_projects_view.php +++ /dev/null @@ -1,33 +0,0 @@ -connectingEngagementProjects(), - ] - ); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropView('all_organization_contracted_projects'); - } -}; diff --git a/database/migrations/2022_09_06_180755_add_attributes_to_engagements_table_and_modify_required_columns.php b/database/migrations/2022_09_06_180755_add_attributes_to_engagements_table_and_modify_required_columns.php deleted file mode 100644 index 3e8109fed..000000000 --- a/database/migrations/2022_09_06_180755_add_attributes_to_engagements_table_and_modify_required_columns.php +++ /dev/null @@ -1,36 +0,0 @@ -schemalessAttributes('extra_attributes'); - $table->string('format')->nullable()->change(); - $table->string('who')->nullable(false)->change(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('engagements', function (Blueprint $table) { - $table->dropColumn('extra_attributes'); - $table->string('format')->nullable(false)->change(); - $table->string('who')->nullable()->change(); - }); - } -}; diff --git a/database/migrations/2022_09_07_003406_add_contractual_fields_to_projects_table.php b/database/migrations/2022_09_07_003406_add_contractual_fields_to_projects_table.php deleted file mode 100644 index d7b0e209d..000000000 --- a/database/migrations/2022_09_07_003406_add_contractual_fields_to_projects_table.php +++ /dev/null @@ -1,39 +0,0 @@ -dateTime('estimate_requested_at')->nullable(); - $table->dateTime('estimate_returned_at')->nullable(); - $table->dateTime('estimate_approved_at')->nullable(); - $table->dateTime('agreement_received_at')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('projects', function (Blueprint $table) { - $table->dropColumn([ - 'estimate_requested_at', - 'estimate_approved_at', - 'agreement_received_at', - ]); - }); - } -}; diff --git a/database/migrations/2022_09_13_125950_add_type_column_to_invitations_table.php b/database/migrations/2022_09_13_125950_add_type_column_to_invitations_table.php deleted file mode 100644 index 43860f41e..000000000 --- a/database/migrations/2022_09_13_125950_add_type_column_to_invitations_table.php +++ /dev/null @@ -1,32 +0,0 @@ -enum('type', ['individual', 'organization'])->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('invitations', function (Blueprint $table) { - $table->dropColumn('type'); - }); - } -}; diff --git a/database/migrations/2022_09_13_173553_create_notifications_table.php b/database/migrations/2022_09_13_173553_create_notifications_table.php deleted file mode 100644 index 4357c9efa..000000000 --- a/database/migrations/2022_09_13_173553_create_notifications_table.php +++ /dev/null @@ -1,35 +0,0 @@ -uuid('id')->primary(); - $table->string('type'); - $table->morphs('notifiable'); - $table->text('data'); - $table->timestamp('read_at')->nullable(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('notifications'); - } -}; diff --git a/database/migrations/2022_09_19_123825_add_estimate_or_agreement_updated_at_column_to_projects_table.php b/database/migrations/2022_09_19_123825_add_estimate_or_agreement_updated_at_column_to_projects_table.php deleted file mode 100644 index 084f3dd1e..000000000 --- a/database/migrations/2022_09_19_123825_add_estimate_or_agreement_updated_at_column_to_projects_table.php +++ /dev/null @@ -1,42 +0,0 @@ -dateTime('estimate_or_agreement_updated_at') - ->storedAs(' - CASE - WHEN agreement_received_at IS NOT NULL THEN agreement_received_at - WHEN estimate_approved_at IS NOT NULL THEN estimate_approved_at - WHEN estimate_returned_at IS NOT NULL THEN estimate_returned_at - WHEN estimate_requested_at IS NOT NULL THEN estimate_requested_at - ELSE NULL - END - ') - ->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('projects', function (Blueprint $table) { - $table->dropColumn('estimate_or_agreement_updated_at'); - }); - } -}; diff --git a/database/migrations/2022_09_23_013753_update_engagements_table.php b/database/migrations/2022_09_23_013753_update_engagements_table.php deleted file mode 100644 index b3d1822c6..000000000 --- a/database/migrations/2022_09_23_013753_update_engagements_table.php +++ /dev/null @@ -1,70 +0,0 @@ -dropColumn('payment'); - $table->time('window_start_time')->after('window_end_date')->nullable(); - $table->time('window_end_time')->after('window_start_time')->nullable(); - $table->boolean('window_flexibility')->after('timezone')->nullable(); - $table->json('meeting_types')->after('weekday_availabilities')->nullable(); - $table->string('street_address')->after('meeting_types')->nullable(); - $table->string('unit_suite_floor')->after('street_address')->nullable(); - $table->string('locality')->after('unit_suite_floor')->nullable(); - $table->string('region')->after('locality')->nullable(); - $table->string('postal_code')->after('region')->nullable(); - $table->json('directions')->after('postal_code')->nullable(); - $table->string('meeting_software')->after('directions')->nullable(); - $table->boolean('alternative_meeting_software')->after('meeting_software')->nullable(); - $table->string('meeting_url')->after('alternative_meeting_software')->nullable(); - $table->json('additional_video_information')->after('meeting_url')->nullable(); - $table->string('meeting_phone')->after('additional_video_information')->nullable(); - $table->json('additional_phone_information')->after('meeting_phone')->nullable(); - $table->json('other_accepted_format')->after('accepted_formats')->nullable(); - $table->boolean('open_to_other_formats')->after('other_accepted_format')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('engagements', function (Blueprint $table) { - $table->json('payment')->nullable(); - $table->dropColumn([ - 'window_start_time', - 'window_end_time', - 'window_flexibility', - 'meeting_types', - 'street_address', - 'unit_suite_floor', - 'locality', - 'region', - 'postal_code', - 'directions', - 'meeting_software', - 'alternative_meeting_software', - 'meeting_url', - 'additional_video_information', - 'meeting_phone', - 'additional_phone_information', - 'other_accepted_format', - 'open_to_other_formats', - ]); - }); - } -}; diff --git a/database/migrations/2022_09_28_150051_update_meetings_table.php b/database/migrations/2022_09_28_150051_update_meetings_table.php deleted file mode 100644 index bf47f4797..000000000 --- a/database/migrations/2022_09_28_150051_update_meetings_table.php +++ /dev/null @@ -1,56 +0,0 @@ -dropColumn(['published_at', 'start_datetime', 'end_datetime', 'phone', 'phone_information']); - $table->date('date')->after('title'); - $table->time('start_time')->after('date'); - $table->time('end_time')->after('start_time'); - $table->string('timezone')->after('end_time')->nullable(); - $table->json('directions')->after('postal_code')->nullable(); - $table->renameColumn('ways_to_attend', 'meeting_types'); - $table->renameColumn('unit_apartment_suite', 'unit_suite_floor'); - $table->renameColumn('web_conference_tool', 'meeting_software'); - $table->renameColumn('alternate_web_conference_tool', 'alternative_meeting_software'); - $table->renameColumn('web_conference_url', 'meeting_url'); - $table->renameColumn('web_conference_information', 'additional_video_information'); - $table->string('meeting_phone')->nullable(); - $table->json('additional_phone_information')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('meetings', function (Blueprint $table) { - $table->dropColumn(['date', 'start_time', 'end_time', 'timezone', 'directions', 'meeting_phone', 'additional_phone_information']); - $table->dateTime('published_at')->after('updated_at')->nullable(); - $table->dateTimeTz('start_datetime')->after('title'); - $table->dateTimeTz('end_datetime')->after('start_datetime'); - $table->renameColumn('meeting_types', 'ways_to_attend'); - $table->renameColumn('unit_suite_floor', 'unit_apartment_suite'); - $table->renameColumn('meeting_software', 'web_conference_tool'); - $table->renameColumn('alternative_meeting_software', 'alternate_web_conference_tool'); - $table->renameColumn('meeting_url', 'web_conference_url'); - $table->renameColumn('additional_video_information', 'web_conference_information'); - $table->json('phone')->nullable(); - $table->json('phone_information'); - }); - } -}; diff --git a/database/migrations/2022_10_13_131410_remove_projects_of_interest_table.php b/database/migrations/2022_10_13_131410_remove_projects_of_interest_table.php deleted file mode 100644 index 49b860ded..000000000 --- a/database/migrations/2022_10_13_131410_remove_projects_of_interest_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('project_id') - ->constrained() - ->onDelete('cascade'); - }); - } -}; diff --git a/database/migrations/2022_10_13_145652_add_shared_access_needs_column_to_engagement_individual_table.php b/database/migrations/2022_10_13_145652_add_shared_access_needs_column_to_engagement_individual_table.php deleted file mode 100644 index c4898def7..000000000 --- a/database/migrations/2022_10_13_145652_add_shared_access_needs_column_to_engagement_individual_table.php +++ /dev/null @@ -1,32 +0,0 @@ -boolean('share_access_needs')->after('status')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('engagement_individual', function (Blueprint $table) { - $table->dropColumn('share_access_needs'); - }); - } -}; diff --git a/database/migrations/2022_10_13_171523_add_anonymizable_column_to_access_supports_table.php b/database/migrations/2022_10_13_171523_add_anonymizable_column_to_access_supports_table.php deleted file mode 100644 index 34af9cf17..000000000 --- a/database/migrations/2022_10_13_171523_add_anonymizable_column_to_access_supports_table.php +++ /dev/null @@ -1,32 +0,0 @@ -boolean('anonymizable')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('access_supports', function (Blueprint $table) { - $table->dropColumn('anonymizable'); - }); - } -}; diff --git a/database/migrations/2022_10_18_002212_drop_engagement_organization_table.php b/database/migrations/2022_10_18_002212_drop_engagement_organization_table.php deleted file mode 100644 index 79593d767..000000000 --- a/database/migrations/2022_10_18_002212_drop_engagement_organization_table.php +++ /dev/null @@ -1,38 +0,0 @@ -id(); - $table->timestamps(); - $table->string('status')->default('invited'); - $table->foreignId('organization_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('engagement_id') - ->constrained() - ->onDelete('cascade'); - }); - } -}; diff --git a/database/migrations/2022_10_18_002311_add_organization_id_column_to_engagements_table.php b/database/migrations/2022_10_18_002311_add_organization_id_column_to_engagements_table.php deleted file mode 100644 index c60f8f9a4..000000000 --- a/database/migrations/2022_10_18_002311_add_organization_id_column_to_engagements_table.php +++ /dev/null @@ -1,35 +0,0 @@ -bigInteger('organization_id') - ->references('id') - ->on('organizations') - ->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('engagements', function (Blueprint $table) { - $table->dropColumn('organization_id'); - }); - } -}; diff --git a/database/migrations/2022_10_18_153227_update_user_privacy_policy_and_terms_of_service.php b/database/migrations/2022_10_18_153227_update_user_privacy_policy_and_terms_of_service.php deleted file mode 100644 index 87988e9a2..000000000 --- a/database/migrations/2022_10_18_153227_update_user_privacy_policy_and_terms_of_service.php +++ /dev/null @@ -1,36 +0,0 @@ -timestamp('accepted_privacy_policy_at')->nullable(); - $table->timestamp('accepted_terms_of_service_at')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('users', function (Blueprint $table) { - $table->dropColumn([ - 'accepted_privacy_policy_at', - 'accepted_terms_of_service_at', - ]); - }); - } -}; diff --git a/database/migrations/2022_10_19_161516_drop_media_table.php b/database/migrations/2022_10_19_161516_drop_media_table.php deleted file mode 100644 index 6a3dda0f4..000000000 --- a/database/migrations/2022_10_19_161516_drop_media_table.php +++ /dev/null @@ -1,45 +0,0 @@ -bigIncrements('id'); - $table->morphs('model'); - $table->uuid('uuid')->nullable()->unique(); - $table->string('collection_name'); - $table->string('name'); - $table->string('file_name'); - $table->string('mime_type')->nullable(); - $table->string('disk'); - $table->string('conversions_disk')->nullable(); - $table->unsignedBigInteger('size'); - $table->json('manipulations'); - $table->json('custom_properties'); - $table->json('generated_conversions'); - $table->json('responsive_images'); - $table->unsignedInteger('order_column')->nullable(); - $table->nullableTimestamps(); - }); - } -}; diff --git a/database/migrations/2022_10_24_121706_remove_team_languages_column_from_projects_table.php b/database/migrations/2022_10_24_121706_remove_team_languages_column_from_projects_table.php deleted file mode 100644 index 0f4ffbc9d..000000000 --- a/database/migrations/2022_10_24_121706_remove_team_languages_column_from_projects_table.php +++ /dev/null @@ -1,63 +0,0 @@ -dropColumn('team_languages'); - }); - - MergedRelationSchema::createOrReplaceMergeViewWithoutDuplicates( - 'all_individual_contracted_projects', - [ - (new Individual)->connectingEngagementProjects(), - ] - ); - - MergedRelationSchema::createOrReplaceMergeViewWithoutDuplicates( - 'all_organization_contracted_projects', - [ - (new Organization)->connectingEngagementProjects(), - ] - ); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('projects', function (Blueprint $table) { - $table->json('team_languages')->after('team_has_disability_or_deaf_lived_experience')->nullable(); - }); - - MergedRelationSchema::createOrReplaceMergeViewWithoutDuplicates( - 'all_individual_contracted_projects', - [ - (new Individual)->connectingEngagementProjects(), - ] - ); - - MergedRelationSchema::createOrReplaceMergeViewWithoutDuplicates( - 'all_organization_contracted_projects', - [ - (new Organization)->connectingEngagementProjects(), - ] - ); - } -}; diff --git a/database/migrations/2022_10_24_140206_add_oriented_at_column_to_regulated_organizations_table.php b/database/migrations/2022_10_24_140206_add_oriented_at_column_to_regulated_organizations_table.php deleted file mode 100644 index a9a7ad90d..000000000 --- a/database/migrations/2022_10_24_140206_add_oriented_at_column_to_regulated_organizations_table.php +++ /dev/null @@ -1,32 +0,0 @@ -timestamp('oriented_at')->before('validated_at')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('regulated_organizations', function (Blueprint $table) { - $table->dropColumn('oriented_at'); - }); - } -}; diff --git a/database/migrations/2022_10_24_174535_add_suspended_at_columns_to_various_tables.php b/database/migrations/2022_10_24_174535_add_suspended_at_columns_to_various_tables.php deleted file mode 100644 index ffe581ea2..000000000 --- a/database/migrations/2022_10_24_174535_add_suspended_at_columns_to_various_tables.php +++ /dev/null @@ -1,48 +0,0 @@ -timestamp('suspended_at')->after('oriented_at')->nullable(); - }); - - Schema::table('organizations', function (Blueprint $table) { - $table->timestamp('suspended_at')->after('oriented_at')->nullable(); - }); - - Schema::table('users', function (Blueprint $table) { - $table->timestamp('suspended_at')->after('oriented_at')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('regulated_organizations', function (Blueprint $table) { - $table->dropColumn('suspended_at'); - }); - - Schema::table('organizations', function (Blueprint $table) { - $table->dropColumn('suspended_at'); - }); - - Schema::table('users', function (Blueprint $table) { - $table->dropColumn('suspended_at'); - }); - } -}; diff --git a/database/migrations/2022_11_01_173407_create_courses_table.php b/database/migrations/2022_11_01_173407_create_courses_table.php deleted file mode 100644 index 3bc4da5c4..000000000 --- a/database/migrations/2022_11_01_173407_create_courses_table.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('organization_id')->nullable(); - $table->json('title'); - $table->json('introduction'); - $table->json('video')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('courses'); - } -}; diff --git a/database/migrations/2022_11_01_175858_create_modules_table.php b/database/migrations/2022_11_01_175858_create_modules_table.php deleted file mode 100644 index 037dc4bdf..000000000 --- a/database/migrations/2022_11_01_175858_create_modules_table.php +++ /dev/null @@ -1,38 +0,0 @@ -id(); - $table->foreignId('course_id') - ->constrained() - ->onDelete('cascade'); - $table->timestamps(); - $table->json('title'); - $table->json('description'); - $table->json('introduction'); - $table->json('video')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('modules'); - } -}; diff --git a/database/migrations/2022_11_01_175924_create_quizzes_table.php b/database/migrations/2022_11_01_175924_create_quizzes_table.php deleted file mode 100644 index ee97e0b7c..000000000 --- a/database/migrations/2022_11_01_175924_create_quizzes_table.php +++ /dev/null @@ -1,41 +0,0 @@ -id(); - $table->foreignId('module_id') - ->nullable() - ->constrained() - ->onDelete('cascade'); - $table->foreignId('course_id') - ->nullable() - ->constrained() - ->onDelete('cascade'); - $table->timestamps(); - $table->float('minimum_score'); - $table->json('title')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('quizzes'); - } -}; diff --git a/database/migrations/2022_11_01_180656_create_questions_table.php b/database/migrations/2022_11_01_180656_create_questions_table.php deleted file mode 100644 index dda8d1ce3..000000000 --- a/database/migrations/2022_11_01_180656_create_questions_table.php +++ /dev/null @@ -1,36 +0,0 @@ -id(); - $table->foreignId('quiz_id') - ->constrained() - ->onDelete('cascade'); - $table->timestamps(); - $table->integer('order'); - $table->json('question'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('questions'); - } -}; diff --git a/database/migrations/2022_11_01_195858_create_course_user_table.php b/database/migrations/2022_11_01_195858_create_course_user_table.php deleted file mode 100644 index 0f4fc30fe..000000000 --- a/database/migrations/2022_11_01_195858_create_course_user_table.php +++ /dev/null @@ -1,40 +0,0 @@ -id(); - $table->timestamps(); - $table->dateTime('started_at')->nullable(); - $table->dateTime('finished_at')->nullable(); - $table->dateTime('received_certificate_at')->nullable(); - $table->foreignId('user_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('course_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('course_user'); - } -}; diff --git a/database/migrations/2022_11_02_002440_create_interpretations_table.php b/database/migrations/2022_11_02_002440_create_interpretations_table.php deleted file mode 100644 index 656b1289e..000000000 --- a/database/migrations/2022_11_02_002440_create_interpretations_table.php +++ /dev/null @@ -1,36 +0,0 @@ -id(); - $table->string('name'); - $table->string('namespace'); - $table->string('route'); - $table->boolean('route_has_params')->nullable(); - $table->json('video')->nullable(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('interpretations'); - } -}; diff --git a/database/migrations/2022_11_02_045232_create_module_user_table.php b/database/migrations/2022_11_02_045232_create_module_user_table.php deleted file mode 100644 index 057958762..000000000 --- a/database/migrations/2022_11_02_045232_create_module_user_table.php +++ /dev/null @@ -1,40 +0,0 @@ -id(); - $table->timestamps(); - $table->dateTime('started_content_at')->nullable(); - $table->dateTime('finished_content_at')->nullable(); - $table->dateTime('completed_at')->nullable(); - $table->foreignId('user_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('module_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('module_user'); - } -}; diff --git a/database/migrations/2022_11_02_045319_create_quiz_user_table.php b/database/migrations/2022_11_02_045319_create_quiz_user_table.php deleted file mode 100644 index 0acc6744a..000000000 --- a/database/migrations/2022_11_02_045319_create_quiz_user_table.php +++ /dev/null @@ -1,40 +0,0 @@ -id(); - $table->timestamps(); - $table->integer('attempts')->nullable(); - $table->json('answers')->nullable(); - $table->float('score')->nullable(); - $table->foreignId('user_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('quiz_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('quiz_user'); - } -}; diff --git a/database/migrations/2022_11_08_181911_change_type_user_sign_language_translations.php b/database/migrations/2022_11_08_181911_change_type_user_sign_language_translations.php deleted file mode 100644 index ff88455d9..000000000 --- a/database/migrations/2022_11_08_181911_change_type_user_sign_language_translations.php +++ /dev/null @@ -1,32 +0,0 @@ -boolean('sign_language_translations')->change(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('users', function (Blueprint $table) { - $table->string('sign_language_translations')->change(); - }); - } -}; diff --git a/database/migrations/2022_11_08_203439_drop_formattables_table.php b/database/migrations/2022_11_08_203439_drop_formattables_table.php deleted file mode 100644 index e8434e424..000000000 --- a/database/migrations/2022_11_08_203439_drop_formattables_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('format_id') - ->constrained() - ->onDelete('cascade'); - $table->morphs('formattable'); - $table->string('language'); - $table->boolean('original')->nullable(); - }); - } -}; diff --git a/database/migrations/2022_11_08_203780_drop_formats_table.php.php b/database/migrations/2022_11_08_203780_drop_formats_table.php.php deleted file mode 100644 index 40453b653..000000000 --- a/database/migrations/2022_11_08_203780_drop_formats_table.php.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - }); - } -}; diff --git a/database/migrations/2022_11_08_204008_add_formats_column_to_resources_table.php b/database/migrations/2022_11_08_204008_add_formats_column_to_resources_table.php deleted file mode 100644 index 10954dd64..000000000 --- a/database/migrations/2022_11_08_204008_add_formats_column_to_resources_table.php +++ /dev/null @@ -1,32 +0,0 @@ -json('formats')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('resources', function (Blueprint $table) { - $table->dropColumn('formats'); - }); - } -}; diff --git a/database/migrations/2022_11_09_122702_drop_phaseables_table.php b/database/migrations/2022_11_09_122702_drop_phaseables_table.php deleted file mode 100644 index a14049257..000000000 --- a/database/migrations/2022_11_09_122702_drop_phaseables_table.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('phase_id') - ->constrained() - ->onDelete('cascade'); - $table->morphs('phaseable'); - }); - } -}; diff --git a/database/migrations/2022_11_09_122719_drop_phases_table.php b/database/migrations/2022_11_09_122719_drop_phases_table.php deleted file mode 100644 index 60702acc1..000000000 --- a/database/migrations/2022_11_09_122719_drop_phases_table.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - }); - } -}; diff --git a/database/migrations/2022_11_09_122754_add_phases_column_to_resources_table.php b/database/migrations/2022_11_09_122754_add_phases_column_to_resources_table.php deleted file mode 100644 index 475ae0584..000000000 --- a/database/migrations/2022_11_09_122754_add_phases_column_to_resources_table.php +++ /dev/null @@ -1,32 +0,0 @@ -json('phases')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('resources', function (Blueprint $table) { - $table->dropColumn('phases'); - }); - } -}; diff --git a/database/migrations/2022_11_09_125102_drop_consulting_method_individual_table.php b/database/migrations/2022_11_09_125102_drop_consulting_method_individual_table.php deleted file mode 100644 index 03315ddb8..000000000 --- a/database/migrations/2022_11_09_125102_drop_consulting_method_individual_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('consulting_method_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('individual_id') - ->constrained() - ->onDelete('cascade'); - }); - } -}; diff --git a/database/migrations/2022_11_09_125235_drop_consulting_methods_table.php b/database/migrations/2022_11_09_125235_drop_consulting_methods_table.php deleted file mode 100644 index 0f8a60f05..000000000 --- a/database/migrations/2022_11_09_125235_drop_consulting_methods_table.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - }); - } -}; diff --git a/database/migrations/2022_11_09_125556_add_consulting_methods_column_to_individuals_table.php b/database/migrations/2022_11_09_125556_add_consulting_methods_column_to_individuals_table.php deleted file mode 100644 index 69862dbc6..000000000 --- a/database/migrations/2022_11_09_125556_add_consulting_methods_column_to_individuals_table.php +++ /dev/null @@ -1,32 +0,0 @@ -json('consulting_methods')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('individuals', function (Blueprint $table) { - $table->dropColumn('consulting_methods'); - }); - } -}; diff --git a/database/migrations/2022_11_09_184522_drop_employment_statuses_table.php b/database/migrations/2022_11_09_184522_drop_employment_statuses_table.php deleted file mode 100644 index b0f1bd3ef..000000000 --- a/database/migrations/2022_11_09_184522_drop_employment_statuses_table.php +++ /dev/null @@ -1,33 +0,0 @@ -id(); - $table->timestamps(); - $table->json('name'); - $table->json('description')->nullable(); - }); - } -}; diff --git a/database/migrations/2022_11_10_181232_create_choices_table.php b/database/migrations/2022_11_10_181232_create_choices_table.php deleted file mode 100644 index a44f17fb7..000000000 --- a/database/migrations/2022_11_10_181232_create_choices_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->foreignId('question_id') - ->constrained() - ->onDelete('cascade'); - $table->string('value'); - $table->json('label'); - $table->boolean('is_answer'); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('choices'); - } -}; diff --git a/database/migrations/2022_11_17_181722_remove_signed_language_columns_from_users_table.php b/database/migrations/2022_11_17_181722_remove_signed_language_columns_from_users_table.php deleted file mode 100644 index 821e760b7..000000000 --- a/database/migrations/2022_11_17_181722_remove_signed_language_columns_from_users_table.php +++ /dev/null @@ -1,33 +0,0 @@ -dropColumn(['signed_language', 'sign_language_translations']); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('users', function (Blueprint $table) { - $table->string('signed_language')->nullable(); - $table->boolean('sign_language_translations')->nullable(); - }); - } -}; diff --git a/database/migrations/2022_11_18_135707_update_translatable_slugs.php b/database/migrations/2022_11_18_135707_update_translatable_slugs.php deleted file mode 100644 index 7b4f7da90..000000000 --- a/database/migrations/2022_11_18_135707_update_translatable_slugs.php +++ /dev/null @@ -1,82 +0,0 @@ -generateSlug(); - $organization->save(); - } - - $regulatedOrganizations = RegulatedOrganization::all(); - - foreach ($regulatedOrganizations as $regulatedOrganization) { - $regulatedOrganization->generateSlug(); - $regulatedOrganization->save(); - } - - $resourceCollections = ResourceCollection::all(); - - foreach ($resourceCollections as $resourceCollection) { - $resourceCollection->generateSlug(); - $resourceCollection->save(); - } - - $resources = Resource::all(); - - foreach ($resources as $resource) { - $resource->generateSlug(); - $resource->save(); - } - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - $organizations = Organization::all(); - - foreach ($organizations as $organization) { - $organization->generateSlug(); - $organization->save(); - } - - $regulatedOrganizations = RegulatedOrganization::all(); - - foreach ($regulatedOrganizations as $regulatedOrganization) { - $regulatedOrganization->generateSlug(); - $regulatedOrganization->save(); - } - - $resourceCollections = ResourceCollection::all(); - - foreach ($resourceCollections as $resourceCollection) { - $resourceCollection->generateSlug(); - $resourceCollection->save(); - } - - $resources = Resource::all(); - - foreach ($resources as $resource) { - $resource->generateSlug(); - $resource->save(); - } - } -}; diff --git a/database/migrations/2022_11_24_200740_create_language_matching_strategy_table.php b/database/migrations/2022_11_24_200740_create_language_matching_strategy_table.php deleted file mode 100644 index a990fe348..000000000 --- a/database/migrations/2022_11_24_200740_create_language_matching_strategy_table.php +++ /dev/null @@ -1,38 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('language_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('matching_strategy_id') - ->constrained() - ->onDelete('cascade'); - $table->float('weight')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('language_matching_strategy'); - } -}; diff --git a/database/migrations/2022_11_24_202938_create_identity_matching_strategy_table.php b/database/migrations/2022_11_24_202938_create_identity_matching_strategy_table.php deleted file mode 100644 index de5e3a258..000000000 --- a/database/migrations/2022_11_24_202938_create_identity_matching_strategy_table.php +++ /dev/null @@ -1,38 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('identity_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('matching_strategy_id') - ->constrained() - ->onDelete('cascade'); - $table->float('weight')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('identity_matching_strategy'); - } -}; diff --git a/database/migrations/2022_11_28_151526_drop_redundant_identity_tables.php b/database/migrations/2022_11_28_151526_drop_redundant_identity_tables.php deleted file mode 100644 index 724adc243..000000000 --- a/database/migrations/2022_11_28_151526_drop_redundant_identity_tables.php +++ /dev/null @@ -1,39 +0,0 @@ -json('author')->nullable(); - $table->json('url')->nullable(); - $table->dropForeign(['user_id']); - $table->dropColumn('user_id'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('resources', function (Blueprint $table) { - $table->dropColumn(['author', 'url']); - $table->foreignId('user_id') - ->constrained() - ->onDelete('cascade'); - }); - } -}; diff --git a/database/migrations/2022_11_29_004006_create_impact_resource_table.php b/database/migrations/2022_11_29_004006_create_impact_resource_table.php deleted file mode 100644 index 41c85c302..000000000 --- a/database/migrations/2022_11_29_004006_create_impact_resource_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('impact_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('resource_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('impact_resource'); - } -}; diff --git a/database/migrations/2022_11_29_004030_create_resource_sector_table.php b/database/migrations/2022_11_29_004030_create_resource_sector_table.php deleted file mode 100644 index 2cbb7917c..000000000 --- a/database/migrations/2022_11_29_004030_create_resource_sector_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('resource_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('sector_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('resource_sector'); - } -}; diff --git a/database/migrations/2022_11_29_005942_drop_topicables_table.php b/database/migrations/2022_11_29_005942_drop_topicables_table.php deleted file mode 100644 index 5a7335a18..000000000 --- a/database/migrations/2022_11_29_005942_drop_topicables_table.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('topic_id') - ->constrained() - ->onDelete('cascade'); - $table->morphs('topicable'); - }); - } -}; diff --git a/database/migrations/2022_11_29_010044_create_resource_topic_table.php b/database/migrations/2022_11_29_010044_create_resource_topic_table.php deleted file mode 100644 index 973b33249..000000000 --- a/database/migrations/2022_11_29_010044_create_resource_topic_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('resource_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('topic_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('resource_topic'); - } -}; diff --git a/database/migrations/2022_11_29_150313_add_clusters_column_to_identities_table.php b/database/migrations/2022_11_29_150313_add_clusters_column_to_identities_table.php deleted file mode 100644 index 01058ae17..000000000 --- a/database/migrations/2022_11_29_150313_add_clusters_column_to_identities_table.php +++ /dev/null @@ -1,34 +0,0 @@ -json('clusters'); - $table->dropColumn('cluster'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('identities', function (Blueprint $table) { - $table->string('cluster')->nullable(); - $table->dropColumn('clusters'); - }); - } -}; diff --git a/database/migrations/2022_12_02_013944_rename_other_disability_type_connection_column_on_individuals_table.php b/database/migrations/2022_12_02_013944_rename_other_disability_type_connection_column_on_individuals_table.php deleted file mode 100644 index a379c288e..000000000 --- a/database/migrations/2022_12_02_013944_rename_other_disability_type_connection_column_on_individuals_table.php +++ /dev/null @@ -1,32 +0,0 @@ -renameColumn('other_disability_type_connection', 'other_disability_connection'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('individuals', function (Blueprint $table) { - $table->renameColumn('other_disability_connection', 'other_disability_type_connection'); - }); - } -}; diff --git a/database/migrations/2022_12_05_191025_rename_other_disability_type_column_on_organizations_table.php b/database/migrations/2022_12_05_191025_rename_other_disability_type_column_on_organizations_table.php deleted file mode 100644 index da9d99515..000000000 --- a/database/migrations/2022_12_05_191025_rename_other_disability_type_column_on_organizations_table.php +++ /dev/null @@ -1,32 +0,0 @@ -renameColumn('other_disability_type', 'other_disability_constituency'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('organizations', function (Blueprint $table) { - $table->renameColumn('other_disability_constituency', 'other_disability_type'); - }); - } -}; diff --git a/database/migrations/2022_12_05_203758_rename_column_on_organizations_table.php b/database/migrations/2022_12_05_203758_rename_column_on_organizations_table.php deleted file mode 100644 index 2ed665675..000000000 --- a/database/migrations/2022_12_05_203758_rename_column_on_organizations_table.php +++ /dev/null @@ -1,32 +0,0 @@ -renameColumn('other_ethnoracial_identity', 'other_ethnoracial_identity_constituency'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('organizations', function (Blueprint $table) { - $table->renameColumn('other_ethnoracial_identity_constituency', 'other_ethnoracial_identity'); - }); - } -}; diff --git a/database/migrations/2022_12_06_141502_add_cross_disability_and_deaf_column_to_matching_strategies_table.php b/database/migrations/2022_12_06_141502_add_cross_disability_and_deaf_column_to_matching_strategies_table.php deleted file mode 100644 index 13bbc59d8..000000000 --- a/database/migrations/2022_12_06_141502_add_cross_disability_and_deaf_column_to_matching_strategies_table.php +++ /dev/null @@ -1,32 +0,0 @@ -boolean('cross_disability_and_deaf')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('matching_strategies', function (Blueprint $table) { - $table->$table->dropColumn('cross_disability_and_deaf'); - }); - } -}; diff --git a/database/migrations/2022_12_08_193312_drop_value_column_from_choices_table.php b/database/migrations/2022_12_08_193312_drop_value_column_from_choices_table.php deleted file mode 100644 index 6cfe205c1..000000000 --- a/database/migrations/2022_12_08_193312_drop_value_column_from_choices_table.php +++ /dev/null @@ -1,32 +0,0 @@ -dropColumn('value'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('choices', function (Blueprint $table) { - $table->string('value'); - }); - } -}; diff --git a/database/migrations/2022_12_09_192148_add_organization_id_column_to_resources_table.php b/database/migrations/2022_12_09_192148_add_organization_id_column_to_resources_table.php deleted file mode 100644 index 4d7180f1f..000000000 --- a/database/migrations/2022_12_09_192148_add_organization_id_column_to_resources_table.php +++ /dev/null @@ -1,36 +0,0 @@ -foreignId('organization_id') - ->nullable() - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('resources', function (Blueprint $table) { - $table->dropForeign(['organization_id']); - $table->dropColumn('organization_id'); - }); - } -}; diff --git a/database/migrations/2022_12_10_210658_update_description_column_in_resource_collections_table.php b/database/migrations/2022_12_10_210658_update_description_column_in_resource_collections_table.php deleted file mode 100644 index 5d420bcfa..000000000 --- a/database/migrations/2022_12_10_210658_update_description_column_in_resource_collections_table.php +++ /dev/null @@ -1,32 +0,0 @@ -json('description')->nullable()->change(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('resource_collections', function (Blueprint $table) { - $table->json('description')->nullable(true)->change(); - }); - } -}; diff --git a/database/migrations/2022_12_11_201445_remove_user_id_column_from_resource_collections_table.php b/database/migrations/2022_12_11_201445_remove_user_id_column_from_resource_collections_table.php deleted file mode 100644 index 25c16c05e..000000000 --- a/database/migrations/2022_12_11_201445_remove_user_id_column_from_resource_collections_table.php +++ /dev/null @@ -1,35 +0,0 @@ -dropForeign(['user_id']); - $table->dropColumn('user_id'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('resource_collections', function (Blueprint $table) { - $table->foreignId('user_id') - ->constrained() - ->onDelete('cascade'); - }); - } -}; diff --git a/database/migrations/2022_12_14_083707_create_settings_table.php b/database/migrations/2022_12_14_083707_create_settings_table.php deleted file mode 100644 index 6d04960d6..000000000 --- a/database/migrations/2022_12_14_083707_create_settings_table.php +++ /dev/null @@ -1,27 +0,0 @@ -id(); - - $table->string('group')->index(); - $table->string('name'); - $table->boolean('locked'); - $table->json('payload'); - - $table->timestamps(); - }); - } - - public function down() - { - Schema::dropIfExists('settings'); - } -}; diff --git a/database/migrations/2022_12_21_184920_remove_finished_at_from_course_user_table.php b/database/migrations/2022_12_21_184920_remove_finished_at_from_course_user_table.php deleted file mode 100644 index 6a2a0c890..000000000 --- a/database/migrations/2022_12_21_184920_remove_finished_at_from_course_user_table.php +++ /dev/null @@ -1,32 +0,0 @@ -dropColumn('finished_at'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('course_user', function (Blueprint $table) { - $table->dateTime('finished_at'); - }); - } -}; diff --git a/database/migrations/2023_01_25_202134_drop_choices_table.php b/database/migrations/2023_01_25_202134_drop_choices_table.php deleted file mode 100644 index 9aaeb3ad1..000000000 --- a/database/migrations/2023_01_25_202134_drop_choices_table.php +++ /dev/null @@ -1,36 +0,0 @@ -id(); - $table->foreignId('question_id') - ->constrained() - ->onDelete('cascade'); - $table->json('label'); - $table->boolean('is_answer'); - $table->timestamps(); - }); - } -}; diff --git a/database/migrations/2023_01_26_043044_add_choices_and_correct_choices_columns_to_questions_table.php b/database/migrations/2023_01_26_043044_add_choices_and_correct_choices_columns_to_questions_table.php deleted file mode 100644 index fe4274993..000000000 --- a/database/migrations/2023_01_26_043044_add_choices_and_correct_choices_columns_to_questions_table.php +++ /dev/null @@ -1,34 +0,0 @@ -json('choices'); - $table->json('correct_choices'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('questions', function (Blueprint $table) { - $table->dropColumn('choices'); - $table->dropColumn('correct_choices'); - }); - } -}; diff --git a/database/migrations/2023_01_27_015926_create_question_quiz_table.php b/database/migrations/2023_01_27_015926_create_question_quiz_table.php deleted file mode 100644 index aa97b689b..000000000 --- a/database/migrations/2023_01_27_015926_create_question_quiz_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->timestamps(); - $table->foreignId('question_id') - ->constrained() - ->onDelete('cascade'); - $table->foreignId('quiz_id') - ->constrained() - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('question_quiz'); - } -}; diff --git a/database/migrations/2023_01_27_025738_remove_quiz_id_from_questions_table.php b/database/migrations/2023_01_27_025738_remove_quiz_id_from_questions_table.php deleted file mode 100644 index 87be9710b..000000000 --- a/database/migrations/2023_01_27_025738_remove_quiz_id_from_questions_table.php +++ /dev/null @@ -1,35 +0,0 @@ -dropForeign(['quiz_id']); - $table->dropColumn('quiz_id'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('questions', function (Blueprint $table) { - $table->foreignId('quiz_id') - ->constrained() - ->onDelete('cascade'); - }); - } -}; diff --git a/database/migrations/2023_02_06_213028_drop_attempts_column_from_quiz_user_table.php b/database/migrations/2023_02_06_213028_drop_attempts_column_from_quiz_user_table.php deleted file mode 100644 index 45f45e1a0..000000000 --- a/database/migrations/2023_02_06_213028_drop_attempts_column_from_quiz_user_table.php +++ /dev/null @@ -1,32 +0,0 @@ -dropColumn('attempts'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('quiz_user', function (Blueprint $table) { - $table->integer('attempts')->nullable(); - }); - } -}; diff --git a/database/migrations/2023_02_14_185236_remove_order_column_from_questions_table.php b/database/migrations/2023_02_14_185236_remove_order_column_from_questions_table.php deleted file mode 100644 index e3c4d10ba..000000000 --- a/database/migrations/2023_02_14_185236_remove_order_column_from_questions_table.php +++ /dev/null @@ -1,32 +0,0 @@ -dropColumn('order'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('questions', function (Blueprint $table) { - $table->integer('order'); - }); - } -}; diff --git a/database/migrations/2023_02_14_190146_add_order_column_to_quizzes_table.php b/database/migrations/2023_02_14_190146_add_order_column_to_quizzes_table.php deleted file mode 100644 index a20c80907..000000000 --- a/database/migrations/2023_02_14_190146_add_order_column_to_quizzes_table.php +++ /dev/null @@ -1,32 +0,0 @@ -json('order')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('quizzes', function (Blueprint $table) { - $table->dropColumn('author'); - }); - } -}; diff --git a/database/migrations/2023_02_14_205104_add_author_column_to_courses_table.php b/database/migrations/2023_02_14_205104_add_author_column_to_courses_table.php deleted file mode 100644 index 6be371af4..000000000 --- a/database/migrations/2023_02_14_205104_add_author_column_to_courses_table.php +++ /dev/null @@ -1,32 +0,0 @@ -string('author')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('courses', function (Blueprint $table) { - $table->dropColumn('author'); - }); - } -}; diff --git a/database/migrations/2023_02_27_135909_add_slug_column_courses_table.php b/database/migrations/2023_02_27_135909_add_slug_column_courses_table.php deleted file mode 100644 index 027583273..000000000 --- a/database/migrations/2023_02_27_135909_add_slug_column_courses_table.php +++ /dev/null @@ -1,32 +0,0 @@ -string('slug')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('courses', function (Blueprint $table) { - $table->dropColumn('slug'); - }); - } -}; diff --git a/database/migrations/2023_02_27_143224_add_slug_column_modules_table.php b/database/migrations/2023_02_27_143224_add_slug_column_modules_table.php deleted file mode 100644 index 24ea103df..000000000 --- a/database/migrations/2023_02_27_143224_add_slug_column_modules_table.php +++ /dev/null @@ -1,32 +0,0 @@ -string('slug')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('modules', function (Blueprint $table) { - $table->dropColumn('slug'); - }); - } -}; diff --git a/database/migrations/2023_04_18_114553_add_description_to_impacts_table.php b/database/migrations/2023_04_18_114553_add_description_to_impacts_table.php deleted file mode 100644 index aca9270f8..000000000 --- a/database/migrations/2023_04_18_114553_add_description_to_impacts_table.php +++ /dev/null @@ -1,32 +0,0 @@ -json('description')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('impacts', function (Blueprint $table) { - $table->dropColumn('description'); - }); - } -}; diff --git a/database/migrations/2023_05_09_132308_add_dismiss_customization_status_to_users_table.php b/database/migrations/2023_05_09_132308_add_dismiss_customization_status_to_users_table.php deleted file mode 100644 index be7c5df82..000000000 --- a/database/migrations/2023_05_09_132308_add_dismiss_customization_status_to_users_table.php +++ /dev/null @@ -1,32 +0,0 @@ -timestamp('dismissed_customize_prompt_at')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('users', function (Blueprint $table) { - $table->dropColumn('dismissed_customize_prompt_at'); - }); - } -}; diff --git a/database/migrations/2023_05_09_141054_add_dismiss_invite_status_to_organizations_table.php b/database/migrations/2023_05_09_141054_add_dismiss_invite_status_to_organizations_table.php deleted file mode 100644 index 185df6916..000000000 --- a/database/migrations/2023_05_09_141054_add_dismiss_invite_status_to_organizations_table.php +++ /dev/null @@ -1,32 +0,0 @@ -timestamp('dismissed_invite_prompt_at')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('organizations', function (Blueprint $table) { - $table->dropColumn('dismissed_invite_prompt_at'); - }); - } -}; diff --git a/database/migrations/2023_05_09_141124_add_dismiss_invite_status_to_regulated_organizations_table.php b/database/migrations/2023_05_09_141124_add_dismiss_invite_status_to_regulated_organizations_table.php deleted file mode 100644 index 162d38264..000000000 --- a/database/migrations/2023_05_09_141124_add_dismiss_invite_status_to_regulated_organizations_table.php +++ /dev/null @@ -1,32 +0,0 @@ -timestamp('dismissed_invite_prompt_at')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('regulated_organizations', function (Blueprint $table) { - $table->dropColumn('dismissed_invite_prompt_at'); - }); - } -}; diff --git a/database/schema/mysql-schema.dump b/database/schema/mysql-schema.sql similarity index 93% rename from database/schema/mysql-schema.dump rename to database/schema/mysql-schema.sql index cda49cc7a..001b60b2b 100644 --- a/database/schema/mysql-schema.dump +++ b/database/schema/mysql-schema.sql @@ -40,99 +40,97 @@ DROP TABLE IF EXISTS `all_individual_contracted_projects`; /*!50001 DROP VIEW IF EXISTS `all_individual_contracted_projects`*/; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; -/*!50001 CREATE TABLE `all_individual_contracted_projects` ( - `agreement_received_at` tinyint NOT NULL, - `ancestor_id` tinyint NOT NULL, - `consultant_name` tinyint NOT NULL, - `consultant_responsibilities` tinyint NOT NULL, - `contact_person_email` tinyint NOT NULL, - `contact_person_name` tinyint NOT NULL, - `contact_person_phone` tinyint NOT NULL, - `contact_person_response_time` tinyint NOT NULL, - `contact_person_vrs` tinyint NOT NULL, - `created_at` tinyint NOT NULL, - `end_date` tinyint NOT NULL, - `estimate_approved_at` tinyint NOT NULL, - `estimate_or_agreement_updated_at` tinyint NOT NULL, - `estimate_requested_at` tinyint NOT NULL, - `estimate_returned_at` tinyint NOT NULL, - `goals` tinyint NOT NULL, - `id` tinyint NOT NULL, - `individual_consultant_id` tinyint NOT NULL, - `languages` tinyint NOT NULL, - `name` tinyint NOT NULL, - `organizational_consultant_id` tinyint NOT NULL, - `out_of_scope` tinyint NOT NULL, - `outcome_analysis` tinyint NOT NULL, - `outcome_analysis_other` tinyint NOT NULL, - `outcomes` tinyint NOT NULL, - `preferred_contact_method` tinyint NOT NULL, - `projectable_id` tinyint NOT NULL, - `projectable_type` tinyint NOT NULL, - `public_outcomes` tinyint NOT NULL, - `published_at` tinyint NOT NULL, - `regions` tinyint NOT NULL, - `scope` tinyint NOT NULL, - `seeking_consultant` tinyint NOT NULL, - `start_date` tinyint NOT NULL, - `team_has_disability_or_deaf_lived_experience` tinyint NOT NULL, - `team_size` tinyint NOT NULL, - `team_trainings` tinyint NOT NULL, - `updated_at` tinyint NOT NULL, - `laravel_foreign_key` tinyint NOT NULL, - `laravel_model` tinyint NOT NULL, - `laravel_placeholders` tinyint NOT NULL, - `laravel_with` tinyint NOT NULL -) ENGINE=MyISAM */; +/*!50001 CREATE VIEW `all_individual_contracted_projects` AS SELECT + 1 AS `agreement_received_at`, + 1 AS `ancestor_id`, + 1 AS `consultant_name`, + 1 AS `consultant_responsibilities`, + 1 AS `contact_person_email`, + 1 AS `contact_person_name`, + 1 AS `contact_person_phone`, + 1 AS `contact_person_response_time`, + 1 AS `contact_person_vrs`, + 1 AS `created_at`, + 1 AS `end_date`, + 1 AS `estimate_approved_at`, + 1 AS `estimate_or_agreement_updated_at`, + 1 AS `estimate_requested_at`, + 1 AS `estimate_returned_at`, + 1 AS `goals`, + 1 AS `id`, + 1 AS `individual_consultant_id`, + 1 AS `languages`, + 1 AS `name`, + 1 AS `organizational_consultant_id`, + 1 AS `out_of_scope`, + 1 AS `outcome_analysis`, + 1 AS `outcome_analysis_other`, + 1 AS `outcomes`, + 1 AS `preferred_contact_method`, + 1 AS `projectable_id`, + 1 AS `projectable_type`, + 1 AS `public_outcomes`, + 1 AS `published_at`, + 1 AS `regions`, + 1 AS `scope`, + 1 AS `seeking_consultant`, + 1 AS `start_date`, + 1 AS `team_has_disability_or_deaf_lived_experience`, + 1 AS `team_size`, + 1 AS `team_trainings`, + 1 AS `updated_at`, + 1 AS `laravel_foreign_key`, + 1 AS `laravel_model`, + 1 AS `laravel_placeholders`, + 1 AS `laravel_with` */; SET character_set_client = @saved_cs_client; DROP TABLE IF EXISTS `all_organization_contracted_projects`; /*!50001 DROP VIEW IF EXISTS `all_organization_contracted_projects`*/; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; -/*!50001 CREATE TABLE `all_organization_contracted_projects` ( - `agreement_received_at` tinyint NOT NULL, - `ancestor_id` tinyint NOT NULL, - `consultant_name` tinyint NOT NULL, - `consultant_responsibilities` tinyint NOT NULL, - `contact_person_email` tinyint NOT NULL, - `contact_person_name` tinyint NOT NULL, - `contact_person_phone` tinyint NOT NULL, - `contact_person_response_time` tinyint NOT NULL, - `contact_person_vrs` tinyint NOT NULL, - `created_at` tinyint NOT NULL, - `end_date` tinyint NOT NULL, - `estimate_approved_at` tinyint NOT NULL, - `estimate_or_agreement_updated_at` tinyint NOT NULL, - `estimate_requested_at` tinyint NOT NULL, - `estimate_returned_at` tinyint NOT NULL, - `goals` tinyint NOT NULL, - `id` tinyint NOT NULL, - `individual_consultant_id` tinyint NOT NULL, - `languages` tinyint NOT NULL, - `name` tinyint NOT NULL, - `organizational_consultant_id` tinyint NOT NULL, - `out_of_scope` tinyint NOT NULL, - `outcome_analysis` tinyint NOT NULL, - `outcome_analysis_other` tinyint NOT NULL, - `outcomes` tinyint NOT NULL, - `preferred_contact_method` tinyint NOT NULL, - `projectable_id` tinyint NOT NULL, - `projectable_type` tinyint NOT NULL, - `public_outcomes` tinyint NOT NULL, - `published_at` tinyint NOT NULL, - `regions` tinyint NOT NULL, - `scope` tinyint NOT NULL, - `seeking_consultant` tinyint NOT NULL, - `start_date` tinyint NOT NULL, - `team_has_disability_or_deaf_lived_experience` tinyint NOT NULL, - `team_size` tinyint NOT NULL, - `team_trainings` tinyint NOT NULL, - `updated_at` tinyint NOT NULL, - `laravel_foreign_key` tinyint NOT NULL, - `laravel_model` tinyint NOT NULL, - `laravel_placeholders` tinyint NOT NULL, - `laravel_with` tinyint NOT NULL -) ENGINE=MyISAM */; +/*!50001 CREATE VIEW `all_organization_contracted_projects` AS SELECT + 1 AS `agreement_received_at`, + 1 AS `ancestor_id`, + 1 AS `consultant_name`, + 1 AS `consultant_responsibilities`, + 1 AS `contact_person_email`, + 1 AS `contact_person_name`, + 1 AS `contact_person_phone`, + 1 AS `contact_person_response_time`, + 1 AS `contact_person_vrs`, + 1 AS `created_at`, + 1 AS `end_date`, + 1 AS `estimate_approved_at`, + 1 AS `estimate_or_agreement_updated_at`, + 1 AS `estimate_requested_at`, + 1 AS `estimate_returned_at`, + 1 AS `goals`, + 1 AS `id`, + 1 AS `individual_consultant_id`, + 1 AS `languages`, + 1 AS `name`, + 1 AS `organizational_consultant_id`, + 1 AS `out_of_scope`, + 1 AS `outcome_analysis`, + 1 AS `outcome_analysis_other`, + 1 AS `outcomes`, + 1 AS `preferred_contact_method`, + 1 AS `projectable_id`, + 1 AS `projectable_type`, + 1 AS `public_outcomes`, + 1 AS `published_at`, + 1 AS `regions`, + 1 AS `scope`, + 1 AS `seeking_consultant`, + 1 AS `start_date`, + 1 AS `team_has_disability_or_deaf_lived_experience`, + 1 AS `team_size`, + 1 AS `team_trainings`, + 1 AS `updated_at`, + 1 AS `laravel_foreign_key`, + 1 AS `laravel_model`, + 1 AS `laravel_placeholders`, + 1 AS `laravel_with` */; SET character_set_client = @saved_cs_client; DROP TABLE IF EXISTS `blind_indexes`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -163,22 +161,6 @@ CREATE TABLE `blockables` ( CONSTRAINT `blockables_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -DROP TABLE IF EXISTS `choices`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `choices` ( - `id` bigint unsigned NOT NULL AUTO_INCREMENT, - `question_id` bigint unsigned NOT NULL, - `value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, - `label` json NOT NULL, - `is_answer` tinyint(1) NOT NULL, - `created_at` timestamp NULL DEFAULT NULL, - `updated_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `choices_question_id_foreign` (`question_id`), - CONSTRAINT `choices_question_id_foreign` FOREIGN KEY (`question_id`) REFERENCES `questions` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `communication_tools`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; @@ -225,7 +207,6 @@ CREATE TABLE `course_user` ( `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, `started_at` datetime DEFAULT NULL, - `finished_at` datetime DEFAULT NULL, `received_certificate_at` datetime DEFAULT NULL, `user_id` bigint unsigned NOT NULL, `course_id` bigint unsigned NOT NULL, @@ -247,6 +228,8 @@ CREATE TABLE `courses` ( `title` json NOT NULL, `introduction` json NOT NULL, `video` json DEFAULT NULL, + `author` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `slug` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -490,6 +473,7 @@ CREATE TABLE `impacts` ( `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, `name` json NOT NULL, + `description` json DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -785,6 +769,7 @@ CREATE TABLE `modules` ( `description` json NOT NULL, `introduction` json NOT NULL, `video` json DEFAULT NULL, + `slug` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`), KEY `modules_course_id_foreign` (`course_id`), CONSTRAINT `modules_course_id_foreign` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE @@ -873,6 +858,7 @@ CREATE TABLE `organizations` ( `preferred_contact_method` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'email', `preferred_notification_method` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'email', `notification_settings` json DEFAULT NULL, + `dismissed_invite_prompt_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -943,19 +929,33 @@ CREATE TABLE `projects` ( KEY `projects_projectable_type_projectable_id_index` (`projectable_type`,`projectable_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `question_quiz`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `question_quiz` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + `question_id` bigint unsigned NOT NULL, + `quiz_id` bigint unsigned NOT NULL, + PRIMARY KEY (`id`), + KEY `question_quiz_question_id_foreign` (`question_id`), + KEY `question_quiz_quiz_id_foreign` (`quiz_id`), + CONSTRAINT `question_quiz_question_id_foreign` FOREIGN KEY (`question_id`) REFERENCES `questions` (`id`) ON DELETE CASCADE, + CONSTRAINT `question_quiz_quiz_id_foreign` FOREIGN KEY (`quiz_id`) REFERENCES `quizzes` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `questions`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `questions` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, - `quiz_id` bigint unsigned NOT NULL, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, - `order` int NOT NULL, `question` json NOT NULL, - PRIMARY KEY (`id`), - KEY `questions_quiz_id_foreign` (`quiz_id`), - CONSTRAINT `questions_quiz_id_foreign` FOREIGN KEY (`quiz_id`) REFERENCES `quizzes` (`id`) ON DELETE CASCADE + `choices` json NOT NULL, + `correct_choices` json NOT NULL, + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `quiz_user`; @@ -965,7 +965,6 @@ CREATE TABLE `quiz_user` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, - `attempts` int DEFAULT NULL, `answers` json DEFAULT NULL, `score` double(8,2) DEFAULT NULL, `user_id` bigint unsigned NOT NULL, @@ -988,6 +987,7 @@ CREATE TABLE `quizzes` ( `updated_at` timestamp NULL DEFAULT NULL, `minimum_score` double(8,2) NOT NULL, `title` json DEFAULT NULL, + `order` json DEFAULT NULL, PRIMARY KEY (`id`), KEY `quizzes_module_id_foreign` (`module_id`), KEY `quizzes_course_id_foreign` (`course_id`), @@ -1040,6 +1040,7 @@ CREATE TABLE `regulated_organizations` ( `notification_settings` json DEFAULT NULL, `oriented_at` timestamp NULL DEFAULT NULL, `suspended_at` timestamp NULL DEFAULT NULL, + `dismissed_invite_prompt_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1154,6 +1155,21 @@ CREATE TABLE `sessions` ( KEY `sessions_last_activity_index` (`last_activity`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `settings`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `settings` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `group` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `locked` tinyint(1) NOT NULL, + `payload` json NOT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `settings_group_index` (`group`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `topics`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; @@ -1201,12 +1217,12 @@ CREATE TABLE `users` ( `joinable_id` bigint unsigned DEFAULT NULL, `accepted_privacy_policy_at` timestamp NULL DEFAULT NULL, `accepted_terms_of_service_at` timestamp NULL DEFAULT NULL, + `dismissed_customize_prompt_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `users_email_unique` (`email`), KEY `users_joinable_type_joinable_id_index` (`joinable_type`,`joinable_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -/*!50001 DROP TABLE IF EXISTS `all_individual_contracted_projects`*/; /*!50001 DROP VIEW IF EXISTS `all_individual_contracted_projects`*/; /*!50001 SET @saved_cs_client = @@character_set_client */; /*!50001 SET @saved_cs_results = @@character_set_results */; @@ -1220,7 +1236,6 @@ CREATE TABLE `users` ( /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; -/*!50001 DROP TABLE IF EXISTS `all_organization_contracted_projects`*/; /*!50001 DROP VIEW IF EXISTS `all_organization_contracted_projects`*/; /*!50001 SET @saved_cs_client = @@character_set_client */; /*!50001 SET @saved_cs_results = @@character_set_results */; @@ -1374,3 +1389,22 @@ INSERT INTO `migrations` VALUES (130,'2022_11_29_010044_create_resource_topic_ta INSERT INTO `migrations` VALUES (131,'2022_12_09_192148_add_organization_id_column_to_resources_table',9); INSERT INTO `migrations` VALUES (132,'2022_12_10_210658_update_description_column_in_resource_collections_table',9); INSERT INTO `migrations` VALUES (133,'2022_12_11_201445_remove_user_id_column_from_resource_collections_table',10); +INSERT INTO `migrations` VALUES (134,'2022_12_08_193312_drop_value_column_from_choices_table',11); +INSERT INTO `migrations` VALUES (135,'2022_12_14_083707_create_settings_table',11); +INSERT INTO `migrations` VALUES (136,'2022_12_21_184920_remove_finished_at_from_course_user_table',11); +INSERT INTO `migrations` VALUES (137,'2023_01_25_202134_drop_choices_table',11); +INSERT INTO `migrations` VALUES (138,'2023_01_26_043044_add_choices_and_correct_choices_columns_to_questions_table',11); +INSERT INTO `migrations` VALUES (139,'2023_01_27_015926_create_question_quiz_table',11); +INSERT INTO `migrations` VALUES (140,'2023_01_27_025738_remove_quiz_id_from_questions_table',11); +INSERT INTO `migrations` VALUES (141,'2023_02_06_213028_drop_attempts_column_from_quiz_user_table',11); +INSERT INTO `migrations` VALUES (142,'2023_02_14_185236_remove_order_column_from_questions_table',11); +INSERT INTO `migrations` VALUES (143,'2023_02_14_190146_add_order_column_to_quizzes_table',11); +INSERT INTO `migrations` VALUES (144,'2023_02_14_205104_add_author_column_to_courses_table',11); +INSERT INTO `migrations` VALUES (145,'2023_02_27_135909_add_slug_column_courses_table',11); +INSERT INTO `migrations` VALUES (146,'2023_02_27_143224_add_slug_column_modules_table',11); +INSERT INTO `migrations` VALUES (147,'2023_04_18_114553_add_description_to_impacts_table',11); +INSERT INTO `migrations` VALUES (148,'2023_05_01_180138_create_general_settings',11); +INSERT INTO `migrations` VALUES (149,'2023_05_01_201239_add_registration_links_to_general_settings',11); +INSERT INTO `migrations` VALUES (150,'2023_05_09_132308_add_dismiss_customization_status_to_users_table',11); +INSERT INTO `migrations` VALUES (151,'2023_05_09_141054_add_dismiss_invite_status_to_organizations_table',11); +INSERT INTO `migrations` VALUES (152,'2023_05_09_141124_add_dismiss_invite_status_to_regulated_organizations_table',11); diff --git a/package-lock.json b/package-lock.json index ee74a24ce..637b4b9bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,6 @@ "hasInstallScript": true, "dependencies": { "@alpinejs/mask": "^3.12.0", - "@popperjs/core": "^2.11.6", "@vimeo/player": "^2.18.0", "alpinejs": "^3.12.0", "axios": "^1.2.2", @@ -19,7 +18,7 @@ "devDependencies": { "@commitlint/cli": "^17.3.0", "@commitlint/config-conventional": "^17.6.1", - "@shufo/prettier-plugin-blade": "^1.8.0", + "@shufo/prettier-plugin-blade": "^1.8.12", "@tailwindcss/typography": "^0.5.9", "autoprefixer": "^10.4.14", "eslint": "^8.37.0", @@ -30,15 +29,15 @@ "lint-staged": "^13.0.4", "modern-css-reset": "^1.4.0", "npm-run-all": "^4.1.5", - "postcss": "^8.4.23", + "postcss": "^8.4.24", "postcss-custom-media": "^9.1.3", "postcss-import": "^15.1.0", "postcss-import-ext-glob": "^2.1.1", "postcss-logical": "^6.1.0", - "prettier": "^2.8.0", + "prettier": "^2.8.8", "stylelint": "^14.16.1", "stylelint-config-prettier": "^9.0.5", - "stylelint-config-standard": "^28.0.0", + "stylelint-config-standard": "^29.0.0", "stylelint-order": "^5.0.0", "stylelint-use-logical-spec": "^4.1.0", "tailwindcss": "^3.2.4", @@ -148,13 +147,13 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.0.tgz", - "integrity": "sha512-v1JH7PeAAGBEyTQM9TqojVl+b20zXtesFKCJHu50xMxZKD1fX0TKaKHPsZfFkXfs7D1M9M6Eeqg1FkJ3a0x2dA==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.22.3.tgz", + "integrity": "sha512-6bdmknScYKmt8I9VjsJuKKGr+TwUb555FTf6tT1P/ANlCjTHCiYLhiQ4X/O7J731w5NOqu8c1aYHEVuOwPz7jA==", "dev": true, "dependencies": { - "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.10" + "core-js-pure": "^3.30.2", + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" @@ -713,17 +712,17 @@ } }, "node_modules/@pkgr/utils": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz", - "integrity": "sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.1.tgz", + "integrity": "sha512-JOqwkgFEyi+OROIyq7l4Jy28h/WwhDnG/cPkXG2Z1iFbubB6jsHW1NDvmyOzTBxHr3yg68YGirmh1JUgMqa+9w==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", + "fast-glob": "^3.2.12", "is-glob": "^4.0.3", - "open": "^8.4.0", + "open": "^9.1.0", "picocolors": "^1.0.0", - "tiny-glob": "^0.2.9", - "tslib": "^2.4.0" + "tslib": "^2.5.0" }, "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" @@ -733,54 +732,55 @@ } }, "node_modules/@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" } }, "node_modules/@prettier/plugin-php": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@prettier/plugin-php/-/plugin-php-0.19.1.tgz", - "integrity": "sha512-faoQX6QF4JZ0xJT+FRkMU7JnUTqVFRSwz7oKYuKgjY6u8VHSURlRXVkP4UyXxsTPAGjVJpNh7JseKkpK1DZziw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@prettier/plugin-php/-/plugin-php-0.19.5.tgz", + "integrity": "sha512-AnmiB76G7qX2d7FbvGgABc3l4dVshOlBqxajiHe8nfMVTzmge7xDhiC28aP8OZafhIRksLKNRB1ZEemfN+j5pg==", "dev": true, "dependencies": { "linguist-languages": "^7.21.0", "mem": "^8.0.0", - "php-parser": "^3.1.1" + "php-parser": "^3.1.3" }, "peerDependencies": { "prettier": "^1.15.0 || ^2.0.0" } }, "node_modules/@shufo/prettier-plugin-blade": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@shufo/prettier-plugin-blade/-/prettier-plugin-blade-1.8.0.tgz", - "integrity": "sha512-inWakYel77plbfWcFlA5WQO78k4TgAh0IqPF+XeGulGZiuqDg7FtUqL3ZaHMGMcBfV805YVfRM7WqtfOQ7PPVQ==", + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/@shufo/prettier-plugin-blade/-/prettier-plugin-blade-1.8.12.tgz", + "integrity": "sha512-Ec74bhLCsfs5HNdqajWDzepFFrmEFeI/Bh4HiFY9snqUbMIbzHbXZY2SgHZpm0SaiyCFri/xznpmc8WShF7uIA==", "dev": true, "dependencies": { - "blade-formatter": "^1.31.0", + "blade-formatter": "^1.32.12", "prettier": "^2.6.2", - "synckit": "^0.8.4" + "synckit": "^0.8.5" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@shufo/tailwindcss-class-sorter": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@shufo/tailwindcss-class-sorter/-/tailwindcss-class-sorter-1.0.12.tgz", - "integrity": "sha512-dGyIdWGAPG7sMbZb/Q/RgR60DpyxZ3772mQCy1hb72ILBFYcqpOzjGt7tsR5HrV8apo4IV1j/Ako17bkbnQewA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@shufo/tailwindcss-class-sorter/-/tailwindcss-class-sorter-2.0.0.tgz", + "integrity": "sha512-whoaxr/m3Bi+UBnlsWpmf38/yhDAg9zeLKpU5syBNC68d9QINL2IwCt1zw1JuKHHSAqxiFY3Km5iJcFiz16WxQ==", "dev": true, "dependencies": { "escalade": "^3.1.1", "object-hash": "^3.0.0", - "tailwindcss": "^3.1.8" + "tailwindcss": "^3.2.4" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 14.0.0" } }, "node_modules/@tailwindcss/typography": { @@ -1115,6 +1115,15 @@ "dev": true, "license": "MIT" }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", "dev": true, @@ -1124,13 +1133,13 @@ } }, "node_modules/blade-formatter": { - "version": "1.31.0", - "resolved": "https://registry.npmjs.org/blade-formatter/-/blade-formatter-1.31.0.tgz", - "integrity": "sha512-PU5tlHoydJ7HWCdwaXRvdAxHdIraN63abIteGKZujqW3YzHzOkk2H7t3jFjz682mlBsbmjBjjcsguiyd0UTZHg==", + "version": "1.32.12", + "resolved": "https://registry.npmjs.org/blade-formatter/-/blade-formatter-1.32.12.tgz", + "integrity": "sha512-Xc1eEy/Adi6DnnUuh9IprD7Kyg2tq/ix3DFnr8AgN3wFg1Ews6vWpA44tuyoigqNHq59ss4JX2cgPkqbMLiurg==", "dev": true, "dependencies": { "@prettier/plugin-php": "^0.19.0", - "@shufo/tailwindcss-class-sorter": "^1.0.12", + "@shufo/tailwindcss-class-sorter": "^2.0.0", "aigle": "^1.14.1", "ajv": "^8.9.0", "chalk": "^4.1.0", @@ -1138,14 +1147,14 @@ "detect-indent": "^6.0.0", "find-config": "^1.0.0", "glob": "^8.0.1", - "html-attribute-sorter": "^0.4.2", + "html-attribute-sorter": "^0.4.3", "ignore": "^5.1.8", "js-beautify": "^1.14.0", "lodash": "^4.17.19", - "php-parser": "3.1.1", + "php-parser": "3.1.4", "prettier": "^2.2.0", "tailwindcss": "^3.1.8", - "vscode-oniguruma": "1.6.2", + "vscode-oniguruma": "1.7.0", "vscode-textmate": "^7.0.1", "xregexp": "^5.0.1", "yargs": "^17.3.1" @@ -1158,9 +1167,9 @@ } }, "node_modules/blade-formatter/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -1183,9 +1192,9 @@ } }, "node_modules/blade-formatter/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -1208,9 +1217,9 @@ "dev": true }, "node_modules/blade-formatter/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -1219,6 +1228,18 @@ "node": ">=10" } }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "dev": true, @@ -1273,6 +1294,21 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/call-bind": { "version": "1.0.2", "dev": true, @@ -1621,9 +1657,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz", - "integrity": "sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==", + "version": "3.30.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.2.tgz", + "integrity": "sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==", "dev": true, "hasInstallScript": true, "funding": { @@ -1760,13 +1796,160 @@ "dev": true, "license": "MIT" }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/execa": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-browser/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/default-browser/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/define-properties": { @@ -2971,12 +3154,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globalyzer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", - "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", - "dev": true - }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -3002,12 +3179,6 @@ "dev": true, "license": "MIT" }, - "node_modules/globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true - }, "node_modules/graceful-fs": { "version": "4.2.8", "dev": true, @@ -3091,9 +3262,9 @@ } }, "node_modules/html-attribute-sorter": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/html-attribute-sorter/-/html-attribute-sorter-0.4.2.tgz", - "integrity": "sha512-WjAaUWPuqXxddyQ5M4vqDHG8tcO+ajTnz03GNwmTsTyGdg9dJqoswwHyniK5ygitgXxqBYIE4T88/edWkl7wMQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/html-attribute-sorter/-/html-attribute-sorter-0.4.3.tgz", + "integrity": "sha512-HWSvaXJki44tg0uR1t+j5pRdUVpNiZcJaoB/PFhss/YoAw9cxUDLCpIBbLWQmKjBQfWk91P6LaRnredEyabrDw==", "dev": true, "engines": { "node": ">= 12.0.0" @@ -3314,15 +3485,15 @@ } }, "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "dev": true, "bin": { "is-docker": "cli.js" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3358,6 +3529,24 @@ "node": ">=0.10.0" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-negative-zero": { "version": "2.0.1", "dev": true, @@ -3522,20 +3711,35 @@ "node": ">=8" } }, + "node_modules/is-wsl/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/isexe": { "version": "2.0.0", "dev": true, "license": "ISC" }, "node_modules/js-beautify": { - "version": "1.14.7", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.7.tgz", - "integrity": "sha512-5SOX1KXPFKx+5f6ZrPsIPEY7NwKeQz47n3jm2i+XeHx9MoRsfQenlOP13FQhWvg8JRS0+XLO6XYUQ2GX+q+T9A==", + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.8.tgz", + "integrity": "sha512-4S7HFeI9YfRvRgKnEweohs0tgJj28InHVIj4Nl8Htf96Y6pHg3+tJrmo4ucAM9f7l4SHbFI3IvFAZ2a1eQPbyg==", "dev": true, "dependencies": { "config-chain": "^1.1.13", "editorconfig": "^0.15.3", - "glob": "^8.0.3", + "glob": "^8.1.0", "nopt": "^6.0.0" }, "bin": { @@ -3544,7 +3748,7 @@ "js-beautify": "js/bin/js-beautify.js" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/js-beautify/node_modules/brace-expansion": { @@ -3557,9 +3761,9 @@ } }, "node_modules/js-beautify/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -3576,9 +3780,9 @@ } }, "node_modules/js-beautify/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -4689,17 +4893,18 @@ } }, "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", "dev": true, "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", "is-wsl": "^2.2.0" }, "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4858,9 +5063,9 @@ } }, "node_modules/php-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/php-parser/-/php-parser-3.1.1.tgz", - "integrity": "sha512-HUxWIWpJoGhnSVzM6nPI1O2RePd7eJKzJoL3VZr6/KUUdcHKBex2Cp7p6pWOV1WxgKI/oYgRPMywwLCP789OYA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/php-parser/-/php-parser-3.1.4.tgz", + "integrity": "sha512-WUEfH4FWsVItqgOknM67msDdcUAfgPJsHhPNl6EPXzWtX+PfdY282m4i8YIJ9ALUEhf+qGDajdmW+VYqSd7Deg==", "dev": true }, "node_modules/picocolors": { @@ -4900,9 +5105,9 @@ } }, "node_modules/postcss": { - "version": "8.4.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", - "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "version": "8.4.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", + "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", "dev": true, "funding": [ { @@ -5118,9 +5323,9 @@ } }, "node_modules/prettier": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", - "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -5407,9 +5612,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.10", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", - "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==", + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "dev": true }, "node_modules/require-directory": { @@ -5522,6 +5727,21 @@ "fsevents": "~2.3.2" } }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "dev": true, @@ -5931,15 +6151,15 @@ } }, "node_modules/stylelint-config-standard": { - "version": "28.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-28.0.0.tgz", - "integrity": "sha512-q/StuowDdDmFCravzGHAwgS9pjX0bdOQUEBBDIkIWsQuYGgYz/xsO8CM6eepmIQ1fc5bKdDVimlJZ6MoOUcJ5Q==", + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-29.0.0.tgz", + "integrity": "sha512-uy8tZLbfq6ZrXy4JKu3W+7lYLgRQBxYTUUB88vPgQ+ZzAxdrvcaSUW9hOMNLYBnwH+9Kkj19M2DHdZ4gKwI7tg==", "dev": true, "dependencies": { "stylelint-config-recommended": "^9.0.0" }, "peerDependencies": { - "stylelint": "^14.11.0" + "stylelint": "^14.14.0" } }, "node_modules/stylelint-order": { @@ -6069,13 +6289,13 @@ "dev": true }, "node_modules/synckit": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.4.tgz", - "integrity": "sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", "dev": true, "dependencies": { "@pkgr/utils": "^2.3.1", - "tslib": "^2.4.0" + "tslib": "^2.5.0" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -6264,16 +6484,6 @@ "readable-stream": "3" } }, - "node_modules/tiny-glob": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", - "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", - "dev": true, - "dependencies": { - "globalyzer": "0.1.0", - "globrex": "^0.1.2" - } - }, "node_modules/tippy.js": { "version": "6.3.7", "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", @@ -6283,6 +6493,18 @@ "@popperjs/core": "^2.9.0" } }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "dev": true, @@ -6367,9 +6589,9 @@ } }, "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", "dev": true }, "node_modules/type-check": { @@ -6437,6 +6659,15 @@ "node": ">= 10.0.0" } }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", @@ -6599,15 +6830,15 @@ } }, "node_modules/vscode-oniguruma": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", - "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", "dev": true }, "node_modules/vscode-textmate": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.3.tgz", - "integrity": "sha512-OkE/mYm1h5ZX9IEKeKR/2zKDt2SzYyIfTEOVFX4QhA+B3BPROvNEmDDXvBThz3qknKO3Cy/VVb8/sx1UlqP/Xw==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.4.tgz", + "integrity": "sha512-9hJp0xL7HW1Q5OgGe03NACo7yiCTMEk3WU/rtKXUbncLtdg6rVVNJnHwD88UhbIYU2KoxY0Dih0x+kIsmUKn2A==", "dev": true }, "node_modules/weakmap-polyfill": { @@ -6859,13 +7090,13 @@ } }, "@babel/runtime-corejs3": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.0.tgz", - "integrity": "sha512-v1JH7PeAAGBEyTQM9TqojVl+b20zXtesFKCJHu50xMxZKD1fX0TKaKHPsZfFkXfs7D1M9M6Eeqg1FkJ3a0x2dA==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.22.3.tgz", + "integrity": "sha512-6bdmknScYKmt8I9VjsJuKKGr+TwUb555FTf6tT1P/ANlCjTHCiYLhiQ4X/O7J731w5NOqu8c1aYHEVuOwPz7jA==", "dev": true, "requires": { - "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.10" + "core-js-pure": "^3.30.2", + "regenerator-runtime": "^0.13.11" } }, "@commitlint/cli": { @@ -7252,55 +7483,56 @@ } }, "@pkgr/utils": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz", - "integrity": "sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.1.tgz", + "integrity": "sha512-JOqwkgFEyi+OROIyq7l4Jy28h/WwhDnG/cPkXG2Z1iFbubB6jsHW1NDvmyOzTBxHr3yg68YGirmh1JUgMqa+9w==", "dev": true, "requires": { "cross-spawn": "^7.0.3", + "fast-glob": "^3.2.12", "is-glob": "^4.0.3", - "open": "^8.4.0", + "open": "^9.1.0", "picocolors": "^1.0.0", - "tiny-glob": "^0.2.9", - "tslib": "^2.4.0" + "tslib": "^2.5.0" } }, "@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "dev": true }, "@prettier/plugin-php": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@prettier/plugin-php/-/plugin-php-0.19.1.tgz", - "integrity": "sha512-faoQX6QF4JZ0xJT+FRkMU7JnUTqVFRSwz7oKYuKgjY6u8VHSURlRXVkP4UyXxsTPAGjVJpNh7JseKkpK1DZziw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@prettier/plugin-php/-/plugin-php-0.19.5.tgz", + "integrity": "sha512-AnmiB76G7qX2d7FbvGgABc3l4dVshOlBqxajiHe8nfMVTzmge7xDhiC28aP8OZafhIRksLKNRB1ZEemfN+j5pg==", "dev": true, "requires": { "linguist-languages": "^7.21.0", "mem": "^8.0.0", - "php-parser": "^3.1.1" + "php-parser": "^3.1.3" } }, "@shufo/prettier-plugin-blade": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@shufo/prettier-plugin-blade/-/prettier-plugin-blade-1.8.0.tgz", - "integrity": "sha512-inWakYel77plbfWcFlA5WQO78k4TgAh0IqPF+XeGulGZiuqDg7FtUqL3ZaHMGMcBfV805YVfRM7WqtfOQ7PPVQ==", + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/@shufo/prettier-plugin-blade/-/prettier-plugin-blade-1.8.12.tgz", + "integrity": "sha512-Ec74bhLCsfs5HNdqajWDzepFFrmEFeI/Bh4HiFY9snqUbMIbzHbXZY2SgHZpm0SaiyCFri/xznpmc8WShF7uIA==", "dev": true, "requires": { - "blade-formatter": "^1.31.0", + "blade-formatter": "^1.32.12", "prettier": "^2.6.2", - "synckit": "^0.8.4" + "synckit": "^0.8.5" } }, "@shufo/tailwindcss-class-sorter": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@shufo/tailwindcss-class-sorter/-/tailwindcss-class-sorter-1.0.12.tgz", - "integrity": "sha512-dGyIdWGAPG7sMbZb/Q/RgR60DpyxZ3772mQCy1hb72ILBFYcqpOzjGt7tsR5HrV8apo4IV1j/Ako17bkbnQewA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@shufo/tailwindcss-class-sorter/-/tailwindcss-class-sorter-2.0.0.tgz", + "integrity": "sha512-whoaxr/m3Bi+UBnlsWpmf38/yhDAg9zeLKpU5syBNC68d9QINL2IwCt1zw1JuKHHSAqxiFY3Km5iJcFiz16WxQ==", "dev": true, "requires": { "escalade": "^3.1.1", "object-hash": "^3.0.0", - "tailwindcss": "^3.1.8" + "tailwindcss": "^3.2.4" } }, "@tailwindcss/typography": { @@ -7549,18 +7781,24 @@ "version": "1.0.2", "dev": true }, + "big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "dev": true + }, "binary-extensions": { "version": "2.2.0", "dev": true }, "blade-formatter": { - "version": "1.31.0", - "resolved": "https://registry.npmjs.org/blade-formatter/-/blade-formatter-1.31.0.tgz", - "integrity": "sha512-PU5tlHoydJ7HWCdwaXRvdAxHdIraN63abIteGKZujqW3YzHzOkk2H7t3jFjz682mlBsbmjBjjcsguiyd0UTZHg==", + "version": "1.32.12", + "resolved": "https://registry.npmjs.org/blade-formatter/-/blade-formatter-1.32.12.tgz", + "integrity": "sha512-Xc1eEy/Adi6DnnUuh9IprD7Kyg2tq/ix3DFnr8AgN3wFg1Ews6vWpA44tuyoigqNHq59ss4JX2cgPkqbMLiurg==", "dev": true, "requires": { "@prettier/plugin-php": "^0.19.0", - "@shufo/tailwindcss-class-sorter": "^1.0.12", + "@shufo/tailwindcss-class-sorter": "^2.0.0", "aigle": "^1.14.1", "ajv": "^8.9.0", "chalk": "^4.1.0", @@ -7568,23 +7806,23 @@ "detect-indent": "^6.0.0", "find-config": "^1.0.0", "glob": "^8.0.1", - "html-attribute-sorter": "^0.4.2", + "html-attribute-sorter": "^0.4.3", "ignore": "^5.1.8", "js-beautify": "^1.14.0", "lodash": "^4.17.19", - "php-parser": "3.1.1", + "php-parser": "3.1.4", "prettier": "^2.2.0", "tailwindcss": "^3.1.8", - "vscode-oniguruma": "1.6.2", + "vscode-oniguruma": "1.7.0", "vscode-textmate": "^7.0.1", "xregexp": "^5.0.1", "yargs": "^17.3.1" }, "dependencies": { "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -7603,9 +7841,9 @@ } }, "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -7622,9 +7860,9 @@ "dev": true }, "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -7632,6 +7870,15 @@ } } }, + "bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "requires": { + "big-integer": "^1.6.44" + } + }, "brace-expansion": { "version": "1.1.11", "dev": true, @@ -7665,6 +7912,15 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "requires": { + "run-applescript": "^5.0.0" + } + }, "call-bind": { "version": "1.0.2", "dev": true, @@ -7897,9 +8153,9 @@ } }, "core-js-pure": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz", - "integrity": "sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==", + "version": "3.30.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.2.tgz", + "integrity": "sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==", "dev": true }, "cosmiconfig": { @@ -7982,10 +8238,99 @@ "version": "0.1.4", "dev": true }, + "default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "requires": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "dependencies": { + "execa": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + } + } + }, + "default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "requires": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + } + }, "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "dev": true }, "define-properties": { @@ -8748,12 +9093,6 @@ "type-fest": "^0.20.2" } }, - "globalyzer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", - "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", - "dev": true - }, "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -8772,12 +9111,6 @@ "version": "0.1.4", "dev": true }, - "globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true - }, "graceful-fs": { "version": "4.2.8", "dev": true @@ -8826,9 +9159,9 @@ } }, "html-attribute-sorter": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/html-attribute-sorter/-/html-attribute-sorter-0.4.2.tgz", - "integrity": "sha512-WjAaUWPuqXxddyQ5M4vqDHG8tcO+ajTnz03GNwmTsTyGdg9dJqoswwHyniK5ygitgXxqBYIE4T88/edWkl7wMQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/html-attribute-sorter/-/html-attribute-sorter-0.4.3.tgz", + "integrity": "sha512-HWSvaXJki44tg0uR1t+j5pRdUVpNiZcJaoB/PFhss/YoAw9cxUDLCpIBbLWQmKjBQfWk91P6LaRnredEyabrDw==", "dev": true }, "html-tags": { @@ -8961,9 +9294,9 @@ } }, "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "dev": true }, "is-extglob": { @@ -8981,6 +9314,15 @@ "is-extglob": "^2.1.1" } }, + "is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "requires": { + "is-docker": "^3.0.0" + } + }, "is-negative-zero": { "version": "2.0.1", "dev": true @@ -9069,6 +9411,14 @@ "dev": true, "requires": { "is-docker": "^2.0.0" + }, + "dependencies": { + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + } } }, "isexe": { @@ -9076,14 +9426,14 @@ "dev": true }, "js-beautify": { - "version": "1.14.7", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.7.tgz", - "integrity": "sha512-5SOX1KXPFKx+5f6ZrPsIPEY7NwKeQz47n3jm2i+XeHx9MoRsfQenlOP13FQhWvg8JRS0+XLO6XYUQ2GX+q+T9A==", + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.8.tgz", + "integrity": "sha512-4S7HFeI9YfRvRgKnEweohs0tgJj28InHVIj4Nl8Htf96Y6pHg3+tJrmo4ucAM9f7l4SHbFI3IvFAZ2a1eQPbyg==", "dev": true, "requires": { "config-chain": "^1.1.13", "editorconfig": "^0.15.3", - "glob": "^8.0.3", + "glob": "^8.1.0", "nopt": "^6.0.0" }, "dependencies": { @@ -9097,9 +9447,9 @@ } }, "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -9110,9 +9460,9 @@ } }, "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -9882,13 +10232,14 @@ } }, "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", "dev": true, "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", "is-wsl": "^2.2.0" } }, @@ -9985,9 +10336,9 @@ "dev": true }, "php-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/php-parser/-/php-parser-3.1.1.tgz", - "integrity": "sha512-HUxWIWpJoGhnSVzM6nPI1O2RePd7eJKzJoL3VZr6/KUUdcHKBex2Cp7p6pWOV1WxgKI/oYgRPMywwLCP789OYA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/php-parser/-/php-parser-3.1.4.tgz", + "integrity": "sha512-WUEfH4FWsVItqgOknM67msDdcUAfgPJsHhPNl6EPXzWtX+PfdY282m4i8YIJ9ALUEhf+qGDajdmW+VYqSd7Deg==", "dev": true }, "picocolors": { @@ -10009,9 +10360,9 @@ "dev": true }, "postcss": { - "version": "8.4.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", - "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", + "version": "8.4.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", + "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", "dev": true, "requires": { "nanoid": "^3.3.6", @@ -10122,9 +10473,9 @@ "dev": true }, "prettier": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.0.tgz", - "integrity": "sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true }, "proto-list": { @@ -10314,9 +10665,9 @@ } }, "regenerator-runtime": { - "version": "0.13.10", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", - "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==", + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "dev": true }, "require-directory": { @@ -10387,6 +10738,15 @@ "fsevents": "~2.3.2" } }, + "run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "requires": { + "execa": "^5.0.0" + } + }, "run-parallel": { "version": "1.2.0", "dev": true, @@ -10695,9 +11055,9 @@ "requires": {} }, "stylelint-config-standard": { - "version": "28.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-28.0.0.tgz", - "integrity": "sha512-q/StuowDdDmFCravzGHAwgS9pjX0bdOQUEBBDIkIWsQuYGgYz/xsO8CM6eepmIQ1fc5bKdDVimlJZ6MoOUcJ5Q==", + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-29.0.0.tgz", + "integrity": "sha512-uy8tZLbfq6ZrXy4JKu3W+7lYLgRQBxYTUUB88vPgQ+ZzAxdrvcaSUW9hOMNLYBnwH+9Kkj19M2DHdZ4gKwI7tg==", "dev": true, "requires": { "stylelint-config-recommended": "^9.0.0" @@ -10753,13 +11113,13 @@ "dev": true }, "synckit": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.4.tgz", - "integrity": "sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", "dev": true, "requires": { "@pkgr/utils": "^2.3.1", - "tslib": "^2.4.0" + "tslib": "^2.5.0" } }, "table": { @@ -10900,16 +11260,6 @@ "readable-stream": "3" } }, - "tiny-glob": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", - "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", - "dev": true, - "requires": { - "globalyzer": "0.1.0", - "globrex": "^0.1.2" - } - }, "tippy.js": { "version": "6.3.7", "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", @@ -10919,6 +11269,12 @@ "@popperjs/core": "^2.9.0" } }, + "titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true + }, "to-regex-range": { "version": "5.0.1", "dev": true, @@ -10966,9 +11322,9 @@ } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", "dev": true }, "type-check": { @@ -11012,6 +11368,12 @@ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true + }, "update-browserslist-db": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", @@ -11108,15 +11470,15 @@ } }, "vscode-oniguruma": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", - "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", "dev": true }, "vscode-textmate": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.3.tgz", - "integrity": "sha512-OkE/mYm1h5ZX9IEKeKR/2zKDt2SzYyIfTEOVFX4QhA+B3BPROvNEmDDXvBThz3qknKO3Cy/VVb8/sx1UlqP/Xw==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.4.tgz", + "integrity": "sha512-9hJp0xL7HW1Q5OgGe03NACo7yiCTMEk3WU/rtKXUbncLtdg6rVVNJnHwD88UhbIYU2KoxY0Dih0x+kIsmUKn2A==", "dev": true }, "weakmap-polyfill": { diff --git a/package.json b/package.json index d25f796c1..f10ef5bf3 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "devDependencies": { "@commitlint/cli": "^17.3.0", "@commitlint/config-conventional": "^17.6.1", - "@shufo/prettier-plugin-blade": "^1.8.0", + "@shufo/prettier-plugin-blade": "^1.8.12", "@tailwindcss/typography": "^0.5.9", "autoprefixer": "^10.4.14", "eslint": "^8.37.0", @@ -41,15 +41,15 @@ "lint-staged": "^13.0.4", "modern-css-reset": "^1.4.0", "npm-run-all": "^4.1.5", - "postcss": "^8.4.23", + "postcss": "^8.4.24", "postcss-custom-media": "^9.1.3", "postcss-import": "^15.1.0", "postcss-import-ext-glob": "^2.1.1", "postcss-logical": "^6.1.0", - "prettier": "^2.8.0", + "prettier": "^2.8.8", "stylelint": "^14.16.1", "stylelint-config-prettier": "^9.0.5", - "stylelint-config-standard": "^28.0.0", + "stylelint-config-standard": "^29.0.0", "stylelint-order": "^5.0.0", "stylelint-use-logical-spec": "^4.1.0", "tailwindcss": "^3.2.4", @@ -61,7 +61,6 @@ }, "dependencies": { "@alpinejs/mask": "^3.12.0", - "@popperjs/core": "^2.11.6", "@vimeo/player": "^2.18.0", "alpinejs": "^3.12.0", "axios": "^1.2.2", diff --git a/phpstan.neon.dist b/phpstan.neon.dist index f12791609..e9de95946 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -23,3 +23,8 @@ parameters: scanFiles: - vendor/chinleung/laravel-locales/src/helpers.php + + treatPhpDocTypesAsCertain: false + + universalObjectCratesClasses: + - Spatie\SchemalessAttributes\Casts\SchemalessAttributes::class diff --git a/resources/css/_props.css b/resources/css/_props.css index ed4183d97..bc6b2d89d 100644 --- a/resources/css/_props.css +++ b/resources/css/_props.css @@ -365,12 +365,6 @@ /* Footer */ --footer-border: var(--theme-footer-border, transparent); - /* Defined term */ - --defined-term-color: var(--theme-defined-term-color, var(--color-blue-6)); - --definition-background: var(--theme-definition-background, var(--color-grey-2)); - --definition-color: var(--theme-definition-color, var(--color-black)); - --definition-shadow: var(--theme-definition-shadow, 0 0 0.625rem rgb(0 0 0 / 15%)); - /* Box */ --box-color: var(--theme-box-color, var(--color-black)); --box-background: var(--theme-box-background, var(--color-white)); diff --git a/resources/css/_tokens.css b/resources/css/_tokens.css index 8b0861ed2..74e916453 100644 --- a/resources/css/_tokens.css +++ b/resources/css/_tokens.css @@ -1,4 +1,4 @@ -/* VARIABLES GENERATED WITH TAILWIND CONFIG ON 2023-05-11. +/* VARIABLES GENERATED WITH TAILWIND CONFIG ON 6/21/2023. Tokens location: ./tailwind.config.js */ :root { --space-0: 0; diff --git a/resources/css/components/_defined-term.css b/resources/css/components/_defined-term.css deleted file mode 100644 index 9ae821d81..000000000 --- a/resources/css/components/_defined-term.css +++ /dev/null @@ -1,37 +0,0 @@ -.defined-term { - color: var(--defined-term-color); - font-weight: var(--font-semibold); - text-decoration: underline; - text-decoration-style: dotted; -} - -.defined-term button { - align-items: center; - background-color: transparent; - border: 0; - border-radius: 0; - color: inherit; - display: inline-flex; - height: var(--space-6); - margin-block-start: -0.125em; - padding: 0; - vertical-align: middle; - width: auto; -} - -.defined-term button svg { - height: var(--space-6); - width: var(--space-6); -} - -.defined-term .definition { - background: var(--definition-background); - border-radius: var(--radius-xs); - box-shadow: var(--definition-shadow); - color: var(--definition-color); - display: block; - font-weight: var(--font-normal); - max-width: var(--space-14); - padding: var(--space-5); - width: 100%; -} diff --git a/resources/css/themes/_dark.css b/resources/css/themes/_dark.css index 63d9ba393..c05a0de1f 100644 --- a/resources/css/themes/_dark.css +++ b/resources/css/themes/_dark.css @@ -266,12 +266,6 @@ --theme-expander-color-active: var(--color-turquoise-1); --theme-expander-border-active: var(--color-turquoise-1); - /* Defined term */ - --theme-defined-term-color: var(--color-turquoise-1); - --theme-definition-background: var(--color-white); - --theme-definition-color: var(--color-black); - --theme-definition-shadow: 0 0 0.625rem rgb(0 0 0 / 50%); - /* Cookie Consent */ --theme-cookie-consent-background: var(--color-black); --theme-cookie-consent-color: var(--color-grey-1); diff --git a/resources/js/DefinedTerm.js b/resources/js/DefinedTerm.js deleted file mode 100644 index f4aa8b398..000000000 --- a/resources/js/DefinedTerm.js +++ /dev/null @@ -1,66 +0,0 @@ -import { createPopper } from "@popperjs/core"; - -class DefinedTerm extends HTMLElement { - constructor() { - super(); - - const term = this.innerText; - const definition = this.dataset.definition; - - const wrapper = document.createElement("span"); - wrapper.setAttribute("class", "defined-term"); - - const button = document.createElement("button"); - button.setAttribute("type", "button"); - button.setAttribute("data-definition", definition); - button.innerHTML = `${term} `; - - const status = document.createElement("span"); - status.setAttribute("role", "status"); - - const bubble = document.createElement("span"); - bubble.setAttribute("class", "definition"); - bubble.innerText = definition; - - this.innerHTML = ""; - this.appendChild(wrapper); - wrapper.appendChild(button); - wrapper.appendChild(status); - - button.addEventListener("click", function () { - status.innerHTML = ""; - window.setTimeout(function () { - status.appendChild(bubble); - createPopper(button, bubble, { - modifiers: [ - { - name: "offset", - options: { - offset: [0, 10] - } - } - ] - }); - }, 100); - }); - - document.addEventListener("click", function (e) { - if (button !== e.target.closest("button")) { - status.innerHTML = ""; - } - }); - - button.addEventListener("keydown", function (e) { - if ((e.key) === "Escape") { - status.innerHTML = ""; - } - }); - - button.addEventListener("blur", function () { - status.innerHTML = ""; - }); - } -} - -customElements.define("defined-term", DefinedTerm); - diff --git a/resources/js/app.js b/resources/js/app.js index 84a1d7d4a..949cc0fce 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -1,5 +1,4 @@ import "./bootstrap"; -import "./DefinedTerm.js"; import Alpine from "alpinejs"; import mask from "@alpinejs/mask"; diff --git a/resources/lang/en.json b/resources/lang/en.json index ffe6a9982..e926f61ec 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -18,7 +18,7 @@ "**Disclaimer.** All notices, Project Agreements and related documents made available on or through the Platform, either by IRIS, other users, or generated as a third party service on or through the Platform, are not legally reviewed, endorsed or approved by IRIS and are used at your sole risk. We make no representation or warranty concerning the enforceability of any agreements signed or exchanged by electronic means through tools or functions made available on or through the Platform.": "**Disclaimer.** All notices, Project Agreements and related documents made available on or through the Platform, either by IRIS, other users, or generated as a third party service on or through the Platform, are not legally reviewed, endorsed or approved by IRIS and are used at your sole risk. We make no representation or warranty concerning the enforceability of any agreements signed or exchanged by electronic means through tools or functions made available on or through the Platform.", "**Disclosure of Submissions.** You acknowledge and agree that any questions, comments, suggestions, ideas, feedback or other information about the Platform (“Submissions”), provided by you to IRIS are non-confidential and IRIS will be entitled to the unrestricted use and dissemination of these Submissions for any purpose, commercial or otherwise, without acknowledgment or compensation to you.": "**Disclosure of Submissions.** You acknowledge and agree that any questions, comments, suggestions, ideas, feedback or other information about the Platform (“Submissions”), provided by you to IRIS are non-confidential and IRIS will be entitled to the unrestricted use and dissemination of these Submissions for any purpose, commercial or otherwise, without acknowledgment or compensation to you.", "**Entire Agreement.** These Terms constitute the entire agreement between you and IRIS and govern your use of the Platform, superseding any prior agreements between you and IRIS with respect to the Platform. You also may be subject to additional terms and conditions that may apply when you use affiliate or Third Party Services, Third Party Content or third party software.": "**Entire Agreement.** These Terms constitute the entire agreement between you and IRIS and govern your use of the Platform, superseding any prior agreements between you and IRIS with respect to the Platform. You also may be subject to additional terms and conditions that may apply when you use affiliate or Third Party Services, Third Party Content or third party software.", - "**For Cause.** IRIS may, in its sole discretion, immediately terminate these Terms or, without limiting its other rights and remedies, suspend User’s access to the Platform and Services if User fails to comply with any provision of these Terms. In the event that IRIS terminates or suspends your access to the Platform or Services or these Terms under this Section, you understand and agree that you will not receive a refund of, or credit for, any fees paid.": "**For Cause.** IRIS may, in its sole discretion, immediately terminate these Terms or, without limiting its other rights and remedies, suspend User’s access to the Platform and Services if User fails to comply with any provision of these Terms. In the event that IRIS terminates or suspends your access to the Platform or Services or these Terms under this Section, you understand and agree that you will not receive a refund of, or credit for, any fees paid.", + "**For Cause.** IRIS may, in its sole discretion, immediately terminate these Terms or, without limiting its other rights and remedies, suspend User’s access to the Platform and Services if User fails to comply with any provision of these Terms. In the event that IRIS terminates or suspends your access to the Platform or Services or these Terms under this Section, you understand and agree that you will not receive a refund of, or credit for, any fees paid.": "**For Cause.** IRIS may, in its sole discretion, immediately terminate these Terms or, without limiting its other rights and remedies, suspend User’s access to the Platform and Services if User fails to comply with any provision of these Terms. In the event that IRIS terminates or suspends your access to the Platform or Services or these Terms under this Section, you understand and agree that you will not receive a refund of, or credit for, any fees paid.", "**General Practices.** You acknowledge that IRIS may establish general practices and limits concerning use of the Platform, including without limitation the maximum period of time that data or other content, will be retained by the Platform and the maximum storage space that will be allotted on IRIS’ or its partners’, affiliates’, or service providers’ servers on your behalf. You agree that IRIS has no responsibility or liability for the deletion or failure to store any data or other content maintained or uploaded by the Platform. You acknowledge that IRIS reserves the right to terminate accounts that are inactive for an extended period of time. You further acknowledge that IRIS reserves the right to change these general practices and limits at any time, in its sole discretion, with or without notice.": "**General Practices.** You acknowledge that IRIS may establish general practices and limits concerning use of the Platform, including without limitation the maximum period of time that data or other content, will be retained by the Platform and the maximum storage space that will be allotted on IRIS’ or its partners’, affiliates’, or service providers’ servers on your behalf. You agree that IRIS has no responsibility or liability for the deletion or failure to store any data or other content maintained or uploaded by the Platform. You acknowledge that IRIS reserves the right to terminate accounts that are inactive for an extended period of time. You further acknowledge that IRIS reserves the right to change these general practices and limits at any time, in its sole discretion, with or without notice.", "**Governing Law.** These Terms will be governed by the laws of the Province of Ontario without regard to its conflict of law provisions. With respect to any disputes or claims not subject to arbitration, as set forth above, you and IRIS agree to submit to the personal and exclusive jurisdiction of the province of Ontario. The failure of IRIS to exercise or enforce any right or provision of these Terms will not constitute a waiver of such right or provision. Recognizing the global nature of the Internet, you agree to comply with all local rules and laws regarding your use of the Platform, including as it concerns online conduct and acceptable content.": "**Governing Law.** These Terms will be governed by the laws of the Province of Ontario without regard to its conflict of law provisions. With respect to any disputes or claims not subject to arbitration, as set forth above, you and IRIS agree to submit to the personal and exclusive jurisdiction of the province of Ontario. The failure of IRIS to exercise or enforce any right or provision of these Terms will not constitute a waiver of such right or provision. Recognizing the global nature of the Internet, you agree to comply with all local rules and laws regarding your use of the Platform, including as it concerns online conduct and acceptable content.", "**If you select no,** our support line will contact you and arrange for a different way to have your access needs met.": "**If you select no,** our support line will contact you and arrange for a different way to have your access needs met.", @@ -27,13 +27,14 @@ "**Invoices.** IRIS will invoice Project Proponents the annual subscription amount owed to access and use the Platform. Project Proponents hereby agree to pay any undisputed amounts to IRIS within 30 days of such invoice.": "**Invoices.** IRIS will invoice Project Proponents the annual subscription amount owed to access and use the Platform. Project Proponents hereby agree to pay any undisputed amounts to IRIS within 30 days of such invoice.", "**Language.** It is the express wish of the parties hereto that the Terms be drawn up in English. The parties hereto hereby waive any right to use and rely upon any other language.": "**Language.** It is the express wish of the parties hereto that the Terms be drawn up in English. The parties hereto hereby waive any right to use and rely upon any other language.", "**Limitation Period.** You agree that regardless of any statute or law to the contrary, any claim or cause of action arising out of or related to use of the Platform or these Terms must be filed within one (1) year after such claim or cause of action arose or be forever barred. A printed version of this agreement and of any notice given in electronic form will be admissible in judicial or administrative proceedings based upon or relating to this agreement to the same extent and subject to the same conditions as other business documents and records originally generated and maintained in printed form.": "**Limitation Period.** You agree that regardless of any statute or law to the contrary, any claim or cause of action arising out of or related to use of the Platform or these Terms must be filed within one (1) year after such claim or cause of action arose or be forever barred. A printed version of this agreement and of any notice given in electronic form will be admissible in judicial or administrative proceedings based upon or relating to this agreement to the same extent and subject to the same conditions as other business documents and records originally generated and maintained in printed form.", - "**Modification.** We reserve the right, at our sole discretion, to change or modify portions of these Terms at any time. If we do this, we will post the changes on **[[:url](:url)]** and will indicate at the top of the Terms page the date these terms were last revised. We will also endeavor to notify you, either through the Platform user interface, in an email notification or through other reasonable means. Any such changes will become effective no earlier than fourteen (14) days after they are posted, except that changes addressing new functions of the Platform or changes made for legal reasons will be effective immediately. Your continued use of the Platform after the date any such changes become effective constitutes your acceptance of the new Terms.": "**Modification.** We reserve the right, at our sole discretion, to change or modify portions of these Terms at any time. If we do this, we will post the changes on **[[:url](:url)]** and will indicate at the top of the Terms page the date these terms were last revised. We will also endeavor to notify you, either through the Platform user interface, in an email notification or through other reasonable means. Any such changes will become effective no earlier than fourteen (14) days after they are posted, except that changes addressing new functions of the Platform or changes made for legal reasons will be effective immediately. Your continued use of the Platform after the date any such changes become effective constitutes your acceptance of the new Terms.", + "**Modification.** We reserve the right, at our sole discretion, to change or modify portions of these Terms at any time. If we do this, we will post the changes on **[<:url>]** and will indicate at the top of the Terms page the date these terms were last revised. We will also endeavor to notify you, either through the Platform user interface, in an email notification or through other reasonable means. Any such changes will become effective no earlier than fourteen (14) days after they are posted, except that changes addressing new functions of the Platform or changes made for legal reasons will be effective immediately. Your continued use of the Platform after the date any such changes become effective constitutes your acceptance of the new Terms.": "**Modification.** We reserve the right, at our sole discretion, to change or modify portions of these Terms at any time. If we do this, we will post the changes on **[<:url>]** and will indicate at the top of the Terms page the date these terms were last revised. We will also endeavor to notify you, either through the Platform user interface, in an email notification or through other reasonable means. Any such changes will become effective no earlier than fourteen (14) days after they are posted, except that changes addressing new functions of the Platform or changes made for legal reasons will be effective immediately. Your continued use of the Platform after the date any such changes become effective constitutes your acceptance of the new Terms.", "**Modification of the Platform.** IRIS reserves the right to modify the form and nature of the Platform, or discontinue, temporarily or permanently, the Platform (or any part thereof) with or without notice. You agree that IRIS will not be liable to you or to any third party for any modification, suspension or discontinuance of the Platform. IRIS may also, in its sole discretion, restrict access to the website for any reason.": "**Modification of the Platform.** IRIS reserves the right to modify the form and nature of the Platform, or discontinue, temporarily or permanently, the Platform (or any part thereof) with or without notice. You agree that IRIS will not be liable to you or to any third party for any modification, suspension or discontinuance of the Platform. IRIS may also, in its sole discretion, restrict access to the website for any reason.", - "**Notices.** All notices or approvals required or permitted under these Terms will be in writing and delivered by email transmission, and in each instance will be deemed given upon receipt. All notices or approvals will be sent to IRIS at **[[:email](:mailto)]**. Notices to you may be made via either email or regular mail. The Platform may also provide notices to you of changes to these Terms or other matters by displaying notices or links to notices generally on the Platform.": "**Notices.** All notices or approvals required or permitted under these Terms will be in writing and delivered by email transmission, and in each instance will be deemed given upon receipt. All notices or approvals will be sent to IRIS at **[[:email](:mailto)]**. Notices to you may be made via either email or regular mail. The Platform may also provide notices to you of changes to these Terms or other matters by displaying notices or links to notices generally on the Platform.", + "**Notices.** All notices or approvals required or permitted under these Terms will be in writing and delivered by email transmission, and in each instance will be deemed given upon receipt. All notices or approvals will be sent to IRIS at **[<:email>]**. Notices to you may be made via either email or regular mail. The Platform may also provide notices to you of changes to these Terms or other matters by displaying notices or links to notices generally on the Platform.": "**Notices.** All notices or approvals required or permitted under these Terms will be in writing and delivered by email transmission, and in each instance will be deemed given upon receipt. All notices or approvals will be sent to IRIS at **[<:email>]**. Notices to you may be made via either email or regular mail. The Platform may also provide notices to you of changes to these Terms or other matters by displaying notices or links to notices generally on the Platform.", "**Other Termination.** IRIS reserves the right to terminate these Terms, suspend or terminate User’s access to the Platform and\/or any Services with or without notice, or deactivate or delete your account including all related information to User for any reason, including:": "**Other Termination.** IRIS reserves the right to terminate these Terms, suspend or terminate User’s access to the Platform and\/or any Services with or without notice, or deactivate or delete your account including all related information to User for any reason, including:", "**Password and Security.** You are responsible for maintaining the confidentiality of your Registration Information (and the Registration Information of related usernames) and are fully responsible for any and all activities that occur under your Personal Contact Information. You agree to (a) immediately notify IRIS of any unauthorized use of your Registration Information or any other breach of security, and (b) ensure that you log out from the Platform at the end of each session when accessing the Platform. IRIS will not be liable for any loss or damage arising from your failure to comply with this Subsection 3(b). Further, you agree not to allow third parties to access the Platform or IRIS’ website through your username and password.": "**Password and Security.** You are responsible for maintaining the confidentiality of your Registration Information (and the Registration Information of related usernames) and are fully responsible for any and all activities that occur under your Personal Contact Information. You agree to (a) immediately notify IRIS of any unauthorized use of your Registration Information or any other breach of security, and (b) ensure that you log out from the Platform at the end of each session when accessing the Platform. IRIS will not be liable for any loss or damage arising from your failure to comply with this Subsection 3(b). Further, you agree not to allow third parties to access the Platform or IRIS’ website through your username and password.", "**Payments.** Any payments between Users are for services provided by Consultants or another party separate from IRIS. Payment amounts are determined solely between Users. While IRIS provides the Platform through which activities are facilitated, IRIS is not liable for, party to, or responsible for those transactions even though IRIS may receive a commission from such payments and assist in the administration of remuneration from Project Proponents to Consultants. User agrees that issues or concerns, including non-receipt of payment, any discrepancy in payment amounts, or delays in payment, will be addressed by contacting the relevant User or third party.": "**Payments.** Any payments between Users are for services provided by Consultants or another party separate from IRIS. Payment amounts are determined solely between Users. While IRIS provides the Platform through which activities are facilitated, IRIS is not liable for, party to, or responsible for those transactions even though IRIS may receive a commission from such payments and assist in the administration of remuneration from Project Proponents to Consultants. User agrees that issues or concerns, including non-receipt of payment, any discrepancy in payment amounts, or delays in payment, will be addressed by contacting the relevant User or third party.", "**Platform Access.** In order to use the Platform, you must obtain Internet access, either directly or through devices that access web-based content and pay any service fees associated with such access. You are solely responsible for paying such fees. In addition, you must provide all equipment necessary to make such Internet connection, including a computer and modem or other access device. You are solely responsible for providing such equipment. You acknowledge that while IRIS may not currently have set a fixed upper limit on the number of transmissions you may send or receive through the Platform or on the amount of storage space used for the provision of the Platform’s services, such fixed upper limits may be set by IRIS at any time, at IRIS’ discretion.": "**Platform Access.** In order to use the Platform, you must obtain Internet access, either directly or through devices that access web-based content and pay any service fees associated with such access. You are solely responsible for paying such fees. In addition, you must provide all equipment necessary to make such Internet connection, including a computer and modem or other access device. You are solely responsible for providing such equipment. You acknowledge that while IRIS may not currently have set a fixed upper limit on the number of transmissions you may send or receive through the Platform or on the amount of storage space used for the provision of the Platform’s services, such fixed upper limits may be set by IRIS at any time, at IRIS’ discretion.", + "**Please respond by :signup_by_date.**": "**Please respond by :signup_by_date.**", "**Preservation of Content.** You acknowledge and agree that IRIS may preserve User Content and may also disclose User Content if required to do so by law or in the good faith belief that such preservation or disclosure is reasonably necessary to: (a) comply with legal process, applicable laws or government requests; (b) enforce these Terms; (c) respond to claims that any content violates the rights of third parties; or (d) protect the rights, property, or personal safety of IRIS, its users and the public.": "**Preservation of Content.** You acknowledge and agree that IRIS may preserve User Content and may also disclose User Content if required to do so by law or in the good faith belief that such preservation or disclosure is reasonably necessary to: (a) comply with legal process, applicable laws or government requests; (b) enforce these Terms; (c) respond to claims that any content violates the rights of third parties; or (d) protect the rights, property, or personal safety of IRIS, its users and the public.", "**Projects and Project Agreements.** IRIS is not a party to any agreements, transactions, projects or arrangements (“**Project Agreements**”) entered into between Project Proponents and Consultants unless explicitly agreed to. While IRIS provides the Platform and Services enabling you to engage in Projects and facilitate the payment for certain services, IRIS is not involved in any way in the Project other than through the provision of the Services, nor is IRIS party to the Project Agreements, except for any transactions for services expressly entered into between IRIS and Users. You understand and agree that IRIS will not be liable under any circumstances for the content or enforcement of any Project Agreement between you and another User, as applicable. You further understand and agree that while IRIS requires Users to submit true, accurate, current and complete information, IRIS cannot guarantee the qualifications of any Consultant or the success of any Project.": "**Projects and Project Agreements.** IRIS is not a party to any agreements, transactions, projects or arrangements (“**Project Agreements**”) entered into between Project Proponents and Consultants unless explicitly agreed to. While IRIS provides the Platform and Services enabling you to engage in Projects and facilitate the payment for certain services, IRIS is not involved in any way in the Project other than through the provision of the Services, nor is IRIS party to the Project Agreements, except for any transactions for services expressly entered into between IRIS and Users. You understand and agree that IRIS will not be liable under any circumstances for the content or enforcement of any Project Agreement between you and another User, as applicable. You further understand and agree that while IRIS requires Users to submit true, accurate, current and complete information, IRIS cannot guarantee the qualifications of any Consultant or the success of any Project.", "**Registration.** If you choose to register for the Platform, you agree to provide and maintain true, accurate, current and complete information about yourself as prompted by the Platform’s registration form to create your user account, including your name or the name of the organization you represent, email address, password and phone number (“**Personal Contact Information**”). If you are under 13 years of age, you are not authorized to use the Platform, with or without registering. In addition, if you are under 18 years old, you may use the Platform, with or without registering, only with the approval and supervision of your parent or guardian. In addition, you may also provide certain additional information in order to enable the Platform to match you to appropriate Projects, including information pertaining to location, identity, experience of disability, citizenship status (“**Demographic Information**”). If you provide any Personal Contact Information or Demographic Information that is untrue, inaccurate, not current, or incomplete, or if IRIS has a reasonable ground to suspect that such information is untrue, inaccurate, not current, or incomplete, IRIS has the right, in its sole discretion, to suspend or terminate your account and refuse any and all current or future use of the Platform (or any portion thereof). If you invite anyone under the age of 18 (an “**Underaged Person**”) to use the Platform, you agree to be solely responsible for the Underaged Person’s use of same.": "**Registration.** If you choose to register for the Platform, you agree to provide and maintain true, accurate, current and complete information about yourself as prompted by the Platform’s registration form to create your user account, including your name or the name of the organization you represent, email address, password and phone number (“**Personal Contact Information**”). If you are under 13 years of age, you are not authorized to use the Platform, with or without registering. In addition, if you are under 18 years old, you may use the Platform, with or without registering, only with the approval and supervision of your parent or guardian. In addition, you may also provide certain additional information in order to enable the Platform to match you to appropriate Projects, including information pertaining to location, identity, experience of disability, citizenship status (“**Demographic Information**”). If you provide any Personal Contact Information or Demographic Information that is untrue, inaccurate, not current, or incomplete, or if IRIS has a reasonable ground to suspect that such information is untrue, inaccurate, not current, or incomplete, IRIS has the right, in its sole discretion, to suspend or terminate your account and refuse any and all current or future use of the Platform (or any portion thereof). If you invite anyone under the age of 18 (an “**Underaged Person**”) to use the Platform, you agree to be solely responsible for the Underaged Person’s use of same.", @@ -60,19 +61,15 @@ "1 participant left :engagement": "1 participant left :engagement", "1 person declined their invitation for :engagement": "1 person declined their invitation for :engagement", "1 person declined your invitation for :engagement": "1 person declined your invitation for :engagement", - "1. Create an account, if you don’t already have one.": "1. Create an account, if you don’t already have one.", - "1. Send the estimate and agreement to [:contact](mailto::contact).": "1. Send the estimate and agreement to [:contact](mailto::contact).", "1. Sign up and share more about your organization": "1. Sign up and share more about your organization", "1. Sign up for the website and build your Accessibility Consultant profile": "1. Sign up for the website and build your Accessibility Consultant profile", "1. Sign up for the website and build your Community Connector profile": "1. Sign up for the website and build your Community Connector profile", "1. Sign up for the website and share some information about your organization": "1. Sign up for the website and share some information about your organization", "1. Sign up for the website and share some information about yourself": "1. Sign up for the website and share some information about yourself", - "2. Accept your invitation by clicking the button below.": "2. Accept your invitation by clicking the button below.", "2. Businesses and government can reach out to hire you": "2. Businesses and government can reach out to hire you", "2. Find an engagement or get matched to one": "2. Find an engagement or get matched to one", "2. Find projects that are looking for a Community Connector": "2. Find projects that are looking for a Community Connector", "2. Find projects that are looking for an Accessibility Consultant": "2. Find projects that are looking for an Accessibility Consultant", - "2. Mark the estimate as \"returned\" by visiting the link below and searching for :projectable.": "2. Mark the estimate as \"returned\" by visiting the link below and searching for :projectable.", "2. Share more about your projects and who you are looking to engage": "2. Share more about your projects and who you are looking to engage", "2SLGBTQIA+ people": "2SLGBTQIA+ people", "3. Work directly with businesses and governments": "3. Work directly with businesses and governments", @@ -92,7 +89,6 @@ ":count engagements": ":count engagements", ":count members of your organization": ":count members of your organization", ":count more unread": ":count more unread", - ":count participants confirmed": ":count participants confirmed", ":count projects": ":count projects", ":count projects match your applied filters.": ":count projects match your applied filters.", ":count results for": ":count results for", @@ -106,6 +102,7 @@ ":engagement time changed": ":engagement time changed", ":engagement time confirmed": ":engagement time confirmed", ":label (:locale)": ":label (:locale)", + ":locality, :region": ":locality, :region", ":model is already translatable into :language.": ":model is already translatable into :language.", ":model was not translatable into :language.": ":model was not translatable into :language.", ":name has accepted your invitation to join your organization.": ":name has accepted your invitation to join your organization.", @@ -151,6 +148,7 @@ "accepted formats": "accepted formats", "Accept Invitation": "Accept Invitation", "Accept invitation": "Accept invitation", + "Accept your invitation by clicking the button below.": "Accept your invitation by clicking the button below.", "Access :language version": "Access :language version", "ACCESS AND USE OF THE PLATFORM": "ACCESS AND USE OF THE PLATFORM", "Access governments and businesses who are looking for a Community Connector to help with a project.": "Access governments and businesses who are looking for a Community Connector to help with a project.", @@ -166,7 +164,7 @@ "Accessibility Consultants could help you design consultations that are inclusive and accessible.": "Accessibility Consultants could help you design consultations that are inclusive and accessible.", "Accessibility Consultants — Individual": "Accessibility Consultants — Individual", "Accessibility preferences": "Accessibility preferences", - "Accessibility project by :projectable": "Accessibility project by :projectable", + "Accessibility project by [:projectable](:url)": "Accessibility project by [:projectable](:url)", "Accessible consultation": "Accessible consultation", "Access more resources": "Access more resources", "Access need": "Access need", @@ -208,6 +206,7 @@ "Additional information to join:": "Additional information to join:", "Additional needs or concerns": "Additional needs or concerns", "Add language": "Add language", + "Add link": "Add link", "Add meeting": "Add meeting", "Add new meeting": "Add new meeting", "Add participant": "Add participant", @@ -225,6 +224,7 @@ "After the consultation follow up with participants to share next steps and your organization’s plan for implementing their feedback. This can help foster confidence in your commitment, and an ongoing relationship with your participants, who can be involved in future updates of your accessibility plan.": "After the consultation follow up with participants to share next steps and your organization’s plan for implementing their feedback. This can help foster confidence in your commitment, and an ongoing relationship with your participants, who can be involved in future updates of your accessibility plan.", "Age": "Age", "Age group": "Age group", + "age group": "age group", "Age groups": "Age groups", "Age groups they can connect to": "Age groups they can connect to", "Agreement pending": "Agreement pending", @@ -241,14 +241,15 @@ "All the training I am doing or have done.": "All the training I am doing or have done.", "Alternative text for images": "Alternative text for images", "Although it is not compulsory, we highly recommend that you include English and French translations of your content.": "Although it is not compulsory, we highly recommend that you include English and French translations of your content.", - "A meeting title must be provided in at least one language.": "A meeting title must be provided in at least one language.", + "A meeting title must be provided in at least English or French.": "A meeting title must be provided in at least English or French.", "American Sign Language (ASL)": "American Sign Language (ASL)", "Analysis of collected information": "Analysis of collected information", "Analyze the outcomes of your consultation with people who are in the context of disability and Deaf groups.": "Analyze the outcomes of your consultation with people who are in the context of disability and Deaf groups.", "An approximate response time must be provided in at least one language.": "An approximate response time must be provided in at least one language.", - "An engagement description must be provided in at least one language.": "An engagement description must be provided in at least one language.", + "An engagement description must be provided in at least English or French.": "An engagement description must be provided in at least English or French.", "An engagement involves a group of people participating in one set way (for example, a focus group or a survey). An engagement like a focus group can have multiple meetings.": "An engagement involves a group of people participating in one set way (for example, a focus group or a survey). An engagement like a focus group can have multiple meetings.", "An engagement involves a group of people participating in one set way (for example, a focus group or survey).": "An engagement involves a group of people participating in one set way (for example, a focus group or survey).", + "An engagement name must be provided in at least English or French.": "An engagement name must be provided in at least English or French.", "An engagement name must be provided in at least one language.": "An engagement name must be provided in at least one language.", "An engagement with this name already exists.": "An engagement with this name already exists.", "a network and is able to conduct effective outreach to people with disabilities and Deaf persons in particular geographic communities and social groups (for example, Indigenous communities).": "a network and is able to conduct effective outreach to people with disabilities and Deaf persons in particular geographic communities and social groups (for example, Indigenous communities).", @@ -279,6 +280,7 @@ "Areas of interest": "Areas of interest", "Areas of your organization this project will impact": "Areas of your organization this project will impact", "Areas where the organization serves": "Areas where the organization serves", + "area type": "area type", "Are you able to attend consultations in real-time, or do you prefer to receive the materials (ex. questions, discussion topics) and record your responses at your own pace?": "Are you able to attend consultations in real-time, or do you prefer to receive the materials (ex. questions, discussion topics) and record your responses at your own pace?", "Are you looking for individuals in specific provinces or territories or specific cities or towns?": "Are you looking for individuals in specific provinces or territories or specific cities or towns?", "Are you sure you want to block :blockable?": "Are you sure you want to block :blockable?", @@ -369,7 +371,6 @@ "Browse for an Community Connector": "Browse for an Community Connector", "Browse individuals": "Browse individuals", "Browse our resources": "Browse our resources", - "browse projects": "browse projects", "Browse regulated organizations": "Browse regulated organizations", "Browse resources by :creator": "Browse resources by :creator", "Browse resources for Community Connectors and Accessibility Consultants": "Browse resources for Community Connectors and Accessibility Consultants", @@ -383,7 +384,7 @@ "by": "by", "By clicking to accept the Terms or otherwise using the Platform you agree to be bound by these Terms.": "By clicking to accept the Terms or otherwise using the Platform you agree to be bound by these Terms.", "By selecting Consultation Participant as your only role, your role no longer will include the Accessibility Consultant or Community Connector roles. You do not need a profile to be a Consultation Participant, so your profile will be unpublished and saved, and will no longer be visible by other members of The Accessibility Exchange. However, if you edit your role to add the Accessibility Consultant or Community Connector roles again, you will be able to publish your profile again all your saved information will be restored.": "By selecting Consultation Participant as your only role, your role no longer will include the Accessibility Consultant or Community Connector roles. You do not need a profile to be a Consultation Participant, so your profile will be unpublished and saved, and will no longer be visible by other members of The Accessibility Exchange. However, if you edit your role to add the Accessibility Consultant or Community Connector roles again, you will be able to publish your profile again all your saved information will be restored.", - "Call or :vrs": "Call or :vrs", + "Call or :!vrs": "Call or :!vrs", "Call our support line at :number": "Call our support line at :number", "Cancel": "Cancel", "Cancel engagement": "Cancel engagement", @@ -531,6 +532,7 @@ "Create account": "Create account", "Create Account": "Create Account", "Create an account": "Create an account", + "Create an account, if you don’t already have one.": "Create an account, if you don’t already have one.", "Create and implement inclusive and accessible consultations for your organization": "Create and implement inclusive and accessible consultations for your organization", "Create an engagement": "Create an engagement", "Create a new engagement": "Create a new engagement", @@ -565,6 +567,7 @@ "Date": "Date", "Date added": "Date added", "Date created": "Date created", + "date for materials to be sent by": "date for materials to be sent by", "Date of training": "Date of training", "Date range": "Date range", "Dates": "Dates", @@ -653,7 +656,7 @@ "East Asian": "East Asian", "Eastern Standard or Daylight Time": "Eastern Standard or Daylight Time", "Edit": "Edit", - "Edit :section": "Edit :section", + "Edit :!section": "Edit :!section", "Edit :user’s role": "Edit :user’s role", "Editable PDF document": "Editable PDF document", "Edit engagement": "Edit engagement", @@ -716,6 +719,7 @@ "Estimates and agreements": "Estimates and agreements", "Estimate status": "Estimate status", "Ethno-racial groups": "Ethno-racial groups", + "ethnoracial group": "ethnoracial group", "Ethnoracial group they can connect to": "Ethnoracial group they can connect to", "Ethnoracial identity": "Ethnoracial identity", "ethnoracial identity": "ethnoracial identity", @@ -747,6 +751,7 @@ "Find learning materials, best practices, and variety of tools to help you throughout the consultation process.": "Find learning materials, best practices, and variety of tools to help you throughout the consultation process.", "Find people with disabilities, Deaf people and community organizations (for example, disability or other relevant civil society organizations, like Indigenous groups), to consult with on your accessibility project.": "Find people with disabilities, Deaf people and community organizations (for example, disability or other relevant civil society organizations, like Indigenous groups), to consult with on your accessibility project.", "First language": "First language", + "first language": "first language", "First Nations": "First Nations", "flexible, please contact us if you need to use another software": "flexible, please contact us if you need to use another software", "Focus group": "Focus group", @@ -800,6 +805,7 @@ "Gender neutral, barrier-free washrooms": "Gender neutral, barrier-free washrooms", "Gender neutral washroom": "Gender neutral washroom", "Gender non-conforming people": "Gender non-conforming people", + "gender or sexual identity group": "gender or sexual identity group", "GENERAL": "GENERAL", "General": "General", "General access needs": "General access needs", @@ -851,6 +857,7 @@ "House of Commons, Senate, Library of Parliament, Parliamentary Protective Service": "House of Commons, Senate, Library of Parliament, Parliamentary Protective Service", "How can you help a regulated organization?": "How can you help a regulated organization?", "how communities will be impacted": "how communities will be impacted", + "How does being a **:role** work?": "How does being a **:role** work?", "How does being a :role work?": "How does being a :role work?", "How does being an :role work?": "How does being an :role work?", "How does getting input for your projects work?": "How does getting input for your projects work?", @@ -882,6 +889,7 @@ "Ideally, an Accessibility Consultant has:": "Ideally, an Accessibility Consultant has:", "Ideally a Community Connector has:": "Ideally a Community Connector has:", "Ideal number of participants": "Ideal number of participants", + "ideal number of participants": "ideal number of participants", "Identities": "Identities", "If anything about your projects or engagements have changed, please send a new estimate request.": "If anything about your projects or engagements have changed, please send a new estimate request.", "If a Sign Language video translation is available, you will see a button in line with the website content. Pressing that button will load the Sign Language video.": "If a Sign Language video translation is available, you will see a button in line with the website content. Pressing that button will load the Sign Language video.", @@ -889,14 +897,17 @@ "if IRIS is transitioning to no longer providing the Platform to users in the region or province in which you reside or from which you use the Platform; or": "if IRIS is transitioning to no longer providing the Platform to users in the region or province in which you reside or from which you use the Platform; or", "If more than one of the following applies to you, you will need to register separate accounts.": "If more than one of the following applies to you, you will need to register separate accounts.", "if the provision of the Platform to you by IRIS is, in IRIS’ opinion, no longer commercially or financially viable.": "if the provision of the Platform to you by IRIS is, in IRIS’ opinion, no longer commercially or financially viable.", - "If you already have an account, please :sign_in": "If you already have an account, please :sign_in", + "If you already have an account, please [sign in](:url).": "If you already have an account, please [sign in](:url).", "IF YOU ARE DISSATISFIED WITH ANY PORTION OF THE PLATFORM OR WITH THESE TERMS OF SERVICE, YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USE OF THE PLATFORM.": "IF YOU ARE DISSATISFIED WITH ANY PORTION OF THE PLATFORM OR WITH THESE TERMS OF SERVICE, YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USE OF THE PLATFORM.", + "If you are interested in engaging a specific :attribute, you must select at least one.": "If you are interested in engaging a specific :attribute, you must select at least one.", + "If you are looking for a group with a specific experience or identity, you must select which type of experience or identity you are looking for.": "If you are looking for a group with a specific experience or identity, you must select which type of experience or identity you are looking for.", + "If you are looking for a specific :attribute, you must select at least one.": "If you are looking for a specific :attribute, you must select at least one.", "If you are seeking a Community Connector for this engagement, there are a few ways to find one:": "If you are seeking a Community Connector for this engagement, there are a few ways to find one:", "If you are thinking of working with a specific group, for example, Indigenous people with disabilities, it would be a good idea to hire an Accessibility Consultant from that community.": "If you are thinking of working with a specific group, for example, Indigenous people with disabilities, it would be a good idea to hire an Accessibility Consultant from that community.", "If you delete your account:": "If you delete your account:", "If you did not expect to receive an invitation to this :invitationable_type, you may discard this email.": "If you did not expect to receive an invitation to this :invitationable_type, you may discard this email.", "If you have an additional access need you must describe it.": "If you have an additional access need you must describe it.", - "If you have any questions, you understand that you may contact IRIS via email at **[[:email](:mailto)]**.": "If you have any questions, you understand that you may contact IRIS via email at **[[:email](:mailto)]**.", + "If you have any questions, you understand that you may contact IRIS via email at <:email>.": "If you have any questions, you understand that you may contact IRIS via email at <:email>.", "If you have forgotten your password, please enter the email address that you used to sign up for The Accessibility Exchange. We will email you a link that will let you choose a new password.": "If you have forgotten your password, please enter the email address that you used to sign up for The Accessibility Exchange. We will email you a link that will let you choose a new password.", " if you need this in another language.": " if you need this in another language.", "If your organization is offering services as a **Community Connector**, regulated organizations may ask you to assist them in connecting to your primary constituencies. If your organization is offering services as a **Consultation Participant**, regulated organizations may ask you to represent this group’s point of view in consultations.": "If your organization is offering services as a **Community Connector**, regulated organizations may ask you to assist them in connecting to your primary constituencies. If your organization is offering services as a **Consultation Participant**, regulated organizations may ask you to represent this group’s point of view in consultations.", @@ -915,8 +926,10 @@ "Includes size, limb, and facial differences": "Includes size, limb, and facial differences", "Includes traumatic brain injury, memory difficulties, dementia": "Includes traumatic brain injury, memory difficulties, dementia", "Including government departments, agencies and Crown Corporations": "Including government departments, agencies and Crown Corporations", + "Incomplete": "Incomplete", "INDEMNITY AND RELEASE.": "INDEMNITY AND RELEASE.", "Indigenous": "Indigenous", + "Indigenous group": "Indigenous group", "Indigenous identity": "Indigenous identity", "Individual": "Individual", "individual": "individual", @@ -936,12 +949,12 @@ "In person": "In person", "In progress": "In progress", "In Progress": "In Progress", - "Institute for Research and Development on Inclusion and Society (“**IRIS**”, “**we**”, “**us**” or “**our**”) invites you (“**you**” or “**your**”) to join The Accessibility Exchange, a platform enabling people with disabilities, Deaf persons, and their supporters and people and organizations with expertise in supporting these communities to connect with one another and with federally regulated organizations (“**FROs**”) and other organizations (together with FROs, the “**Project Proponents**”), for the purpose of developing accessibility plans or other relevant services (the “**Service**”), which you can access at **[[:url](:url)]** or on our mobile applications (the “**Platform**”). These terms of service and the IRIS Privacy Policy (together, the “**Terms**”) govern your use of the Platform and represent a legally binding agreement between you and IRIS.": "Institute for Research and Development on Inclusion and Society (“**IRIS**”, “**we**”, “**us**” or “**our**”) invites you (“**you**” or “**your**”) to join The Accessibility Exchange, a platform enabling people with disabilities, Deaf persons, and their supporters and people and organizations with expertise in supporting these communities to connect with one another and with federally regulated organizations (“**FROs**”) and other organizations (together with FROs, the “**Project Proponents**”), for the purpose of developing accessibility plans or other relevant services (the “**Service**”), which you can access at **[[:url](:url)]** or on our mobile applications (the “**Platform**”). These terms of service and the IRIS Privacy Policy (together, the “**Terms**”) govern your use of the Platform and represent a legally binding agreement between you and IRIS.", + "Institute for Research and Development on Inclusion and Society (“**IRIS**”, “**we**”, “**us**” or “**our**”) invites you (“**you**” or “**your**”) to join The Accessibility Exchange, a platform enabling people with disabilities, Deaf persons, and their supporters and people and organizations with expertise in supporting these communities to connect with one another and with federally regulated organizations (“**FROs**”) and other organizations (together with FROs, the “**Project Proponents**”), for the purpose of developing accessibility plans or other relevant services (the “**Service**”), which you can access at **[<:url>]** or on our mobile applications (the “**Platform**”). These terms of service and the IRIS Privacy Policy (together, the “**Terms**”) govern your use of the Platform and represent a legally binding agreement between you and IRIS.": "Institute for Research and Development on Inclusion and Society (“**IRIS**”, “**we**”, “**us**” or “**our**”) invites you (“**you**” or “**your**”) to join The Accessibility Exchange, a platform enabling people with disabilities, Deaf persons, and their supporters and people and organizations with expertise in supporting these communities to connect with one another and with federally regulated organizations (“**FROs**”) and other organizations (together with FROs, the “**Project Proponents**”), for the purpose of developing accessibility plans or other relevant services (the “**Service**”), which you can access at **[<:url>]** or on our mobile applications (the “**Platform**”). These terms of service and the IRIS Privacy Policy (together, the “**Terms**”) govern your use of the Platform and represent a legally binding agreement between you and IRIS.", "INTELLECTUAL PROPERTY RIGHTS.": "INTELLECTUAL PROPERTY RIGHTS.", "Interests": "Interests", "interfere with or disrupt the Platform or servers or networks connected to the Platform, or disobey any requirements, procedures, policies or regulations of networks connected to the Platform; or violate any applicable provincial, territorial, local, national or international law, or any regulations having the force of law;": "interfere with or disrupt the Platform or servers or networks connected to the Platform, or disobey any requirements, procedures, policies or regulations of networks connected to the Platform; or violate any applicable provincial, territorial, local, national or international law, or any regulations having the force of law;", "Internal team": "Internal team", - "Intersectional": "Intersectional", + "Intersectional - This engagement is looking for people who have all sorts of different identities and lived experiences, such as race, gender, age, sexual orientation, and more.": "Intersectional - This engagement is looking for people who have all sorts of different identities and lived experiences, such as race, gender, age, sexual orientation, and more.", "Intersectional outreach": "Intersectional outreach", "Intervenor": "Intervenor", "Interview at their own pace": "Interview at their own pace", @@ -1060,6 +1073,7 @@ "Mark agreement as received": "Mark agreement as received", "Mark as read": "Mark as read", "Mark estimate as returned": "Mark estimate as returned", + "Mark the estimate as \"returned\" by visiting the link below and searching for :projectable.": "Mark the estimate as \"returned\" by visiting the link below and searching for :projectable.", "Matching information": "Matching information", "Matching service": "Matching service", "match you to their projects or engagements": "match you to their projects or engagements", @@ -1073,7 +1087,6 @@ "Meeting date :date": "Meeting date :date", "Meeting dates": "Meeting dates", "meeting end time": "meeting end time", - "meeting phone number": "meeting phone number", "Meetings": "Meetings", "meeting start time": "meeting start time", "meeting time zone": "meeting time zone", @@ -1087,6 +1100,7 @@ "Microsoft Word": "Microsoft Word", "Middle Eastern": "Middle Eastern", "Minimum number of participants": "Minimum number of participants", + "minimum number of participants": "minimum number of participants", "Missing an engagement?": "Missing an engagement?", "modify, copy, reproduce, reverse engineer, frame, rent, lease, loan, sell, distribute, publish, or create derivative works based on the Platform or the Service Content (as defined below), in whole or in part;": "modify, copy, reproduce, reverse engineer, frame, rent, lease, loan, sell, distribute, publish, or create derivative works based on the Platform or the Service Content (as defined below), in whole or in part;", "Module - :title": "Module - :title", @@ -1157,6 +1171,7 @@ "No interests listed.": "No interests listed.", "No meetings found.": "No meetings found.", "Non-binary, gender non-conforming and\/or gender fluid people": "Non-binary, gender non-conforming and\/or gender fluid people", + "Non-binary\/Gender non-conforming\/Gender fluid identity": "Non-binary\/Gender non-conforming\/Gender fluid identity", "Non-binary people": "Non-binary people", "None found.": "None found.", "None listed": "None listed", @@ -1227,7 +1242,6 @@ "Once you sign up, you can sign up for an orientation session to learn about what you can do on this website. You can also fill in information to facilitate a smoother collaboration with organizations, such as access needs, communication preferences, and consultation preferences.": "Once you sign up, you can sign up for an orientation session to learn about what you can do on this website. You can also fill in information to facilitate a smoother collaboration with organizations, such as access needs, communication preferences, and consultation preferences.", "Once you’ve reviewed the project details, please:": "Once you’ve reviewed the project details, please:", "One of the key parts of preparing for your consultation with the disability and Deaf communities is making sure that your consultations are done in an accessible and inclusive way.": "One of the key parts of preparing for your consultation with the disability and Deaf communities is making sure that your consultations are done in an accessible and inclusive way.", - "One or more Disability or Deaf groups are required.": "One or more Disability or Deaf groups are required.", "Online form, such as survey monkey or google forms": "Online form, such as survey monkey or google forms", "Only people with specific disabilities and\/or Deaf people": "Only people with specific disabilities and\/or Deaf people", "Only reachable within cross-disability and Deaf or intersectional groups": "Only reachable within cross-disability and Deaf or intersectional groups", @@ -1289,6 +1303,7 @@ "Participant location": "Participant location", "Participant non-disclosure agreement": "Participant non-disclosure agreement", "Participants": "Participants", + "participants confirmed": "participants confirmed", "Participant selection criteria": "Participant selection criteria", "Participants must respond to their invitation by the following date": "Participants must respond to their invitation by the following date", "Participants must sign up for this engagement by the following date": "Participants must sign up for this engagement by the following date", @@ -1324,6 +1339,7 @@ "phone number": "phone number", "Phone number:": "Phone number:", "Phone number to join": "Phone number to join", + "phone number to join the meeting": "phone number to join the meeting", "Physical and mobility disabilities": "Physical and mobility disabilities", "Plain language": "Plain language", "Plan and share your project with others on this website.": "Plan and share your project with others on this website.", @@ -1353,7 +1369,10 @@ "Please create your profile to share more about who you are, your experiences, and your interests.": "Please create your profile to share more about who you are, your experiences, and your interests.", "Please describe how the Disability and Deaf communities will be impacted by the outcomes of your project.": "Please describe how the Disability and Deaf communities will be impacted by the outcomes of your project.", "Please describe this engagement.": "Please describe this engagement.", + "Please enter a :attribute that is less than or the same as the ideal number of participants.": "Please enter a :attribute that is less than or the same as the ideal number of participants.", "Please enter an end year for your experience that is equal to or greater than the start year.": "Please enter an end year for your experience that is equal to or greater than the start year.", + "Please enter a valid :attribute.": "Please enter a valid :attribute.", + "Please enter a valid date for the :attribute.": "Please enter a valid date for the :attribute.", "Please enter a valid website link under “Accessibility and Inclusion links”.": "Please enter a valid website link under “Accessibility and Inclusion links”.", "Please enter the email address of the individual you have hired as a Community Connector.": "Please enter the email address of the individual you have hired as a Community Connector.", "Please enter your collaboration preferences": "Please enter your collaboration preferences", @@ -1398,13 +1417,15 @@ "Please read these terms of service carefully.": "Please read these terms of service carefully.", "Please reset your password for The Accessibility Exchange": "Please reset your password for The Accessibility Exchange", "Please respond by :date.": "Please respond by :date.", - "Please respond by :signup_by_date.": "Please respond by :signup_by_date.", "Please review and publish your engagement details.": "Please review and publish your engagement details.", "Please review and update your communication and consultation preferences": "Please review and update your communication and consultation preferences", "Please review and update your matching information": "Please review and update your matching information", "Please review and update your public page": "Please review and update your public page", "Please review your page. There is some information for your new role that you will have to fill in.": "Please review your page. There is some information for your new role that you will have to fill in.", "Please see the resource [Planning a Safe, Accessible Consultation](:url).": "Please see the resource [Planning a Safe, Accessible Consultation](:url).", + "Please select a language.": "Please select a language.", + "Please select a language that the engagement documents will be in.": "Please select a language that the engagement documents will be in.", + "Please select a language to remove.": "Please select a language to remove.", "Please select a recruitment method": "Please select a recruitment method", "Please select disability groups that your organization specifically represents": "Please select disability groups that your organization specifically represents", "Please select the disability and\/or Deaf groups that you can connect to.": "Please select the disability and\/or Deaf groups that you can connect to.", @@ -1602,14 +1623,12 @@ "Responses are due by:": "Responses are due by:", "Returned": "Returned", "Return to dashboard": "Return to dashboard", - "Return to edit mode": "Return to edit mode", "Review and publish engagement details": "Review and publish engagement details", "Review and publish your organization’s public page": "Review and publish your organization’s public page", "Review and publish your public page": "Review and publish your public page", "Review engagement details": "Review engagement details", "Review my organization’s page": "Review my organization’s page", "Review my page": "Review my page", - "Review page": "Review page", "Review project": "Review project", "Review project details": "Review project details", "Role": "Role", @@ -1671,7 +1690,7 @@ "Select your criteria": "Select your criteria", "Send invitation": "Send invitation", "Send request": "Send request", - "sent by date": "sent by date", + "Send the estimate and agreement to <:contact>.": "Send the estimate and agreement to <:contact>.", "serve and support": "serve and support", "serves and supports": "serves and supports", "Service areas": "Service areas", @@ -1689,7 +1708,6 @@ "show up on search results for them": "show up on search results for them", "Signed language for interpretation": "Signed language for interpretation", "Sign in": "Sign in", - "sign in.": "sign in.", "Sign language interpretation": "Sign language interpretation", "Sign language interpretations": "Sign language interpretations", "Sign language translation": "Sign language translation", @@ -1803,14 +1821,18 @@ "Text": "Text", "Text message": "Text message", "Text to speech": "Text to speech", + "The :attribute format is not valid.": "The :attribute format is not valid.", "The :attribute is not in the right format.": "The :attribute is not in the right format.", + "The :attribute must be after the :date.": "The :attribute must be after the :date.", + "The :attribute must be a number.": "The :attribute must be a number.", + "The :attribute must be before the :date.": "The :attribute must be before the :date.", "The :projectable sends out a list of questions, and you can can respond to them at your own pace.": "The :projectable sends out a list of questions, and you can can respond to them at your own pace.", "The Accessibility Exchange": "The Accessibility Exchange", "The Accessibility Exchange will send you notifications, based on what you chose to be notified of here.": "The Accessibility Exchange will send you notifications, based on what you chose to be notified of here.", "The Accessible Canada Act has identified sectors that are required to comply with the Act. If you would like, you may indicate which sectors are of interest to you. You do not have to answer this question as it is optional. ": "The Accessible Canada Act has identified sectors that are required to comply with the Act. If you would like, you may indicate which sectors are of interest to you. You do not have to answer this question as it is optional. ", "The Accessible Canada Act has outlined seven main areas that governments and businesses have to make accessible. If you would like, you may indicate which areas are of interest to you. You do not have to answer this question as it is optional. ": "The Accessible Canada Act has outlined seven main areas that governments and businesses have to make accessible. If you would like, you may indicate which areas are of interest to you. You do not have to answer this question as it is optional. ", "The agreement for “:project” has been marked as received.": "The agreement for “:project” has been marked as received.", - "The agreement will be sent with your estimate. Please sign this agreement and send it to :email.": "The agreement will be sent with your estimate. Please sign this agreement and send it to :email.", + "The agreement will be sent with your estimate. Please sign this agreement and send it to <:email>.": "The agreement will be sent with your estimate. Please sign this agreement and send it to <:email>.", "The Canadian Forces and the Royal Canadian Mounted Police": "The Canadian Forces and the Royal Canadian Mounted Police", "The Community Organization being consulted with for this engagement.": "The Community Organization being consulted with for this engagement.", "The demographic breakdown of your confirmed participants will show when your sign up deadline has passed. Please come back and check again at that time.": "The demographic breakdown of your confirmed participants will show when your sign up deadline has passed. Please come back and check again at that time.", @@ -1830,11 +1852,11 @@ "Theme": "Theme", "themes": "themes", "Themes": "Themes", - "The minimum number of participants is more than the ideal number of participants. Please enter a minimum that is less than or the same as the ideal number of participants.": "The minimum number of participants is more than the ideal number of participants. Please enter a minimum that is less than or the same as the ideal number of participants.", "The notification has been marked as read.": "The notification has been marked as read.", "the number of people on your team": "the number of people on your team", "The organization you have added does not participate in engagements.": "The organization you have added does not participate in engagements.", - "The other accepted format must be provided in at least one language.": "The other accepted format must be provided in at least one language.", + "The other accepted format must be a string.": "The other accepted format must be a string.", + "The other accepted format must be provided in at least English or French.": "The other accepted format must be provided in at least English or French.", "the other languages are you able to work in": "the other languages are you able to work in", "the other languages you are able to work in": "the other languages you are able to work in", "The other payment type must be specified.": "The other payment type must be specified.", @@ -1848,6 +1870,7 @@ "These are the seven areas listed within the Accessible Canada Act. By law, entities must ensure these areas are accessible.": "These are the seven areas listed within the Accessible Canada Act. By law, entities must ensure these areas are accessible.", "These are the seven areas listed within the Accessible Canada Act. Federally regulated organizations must work to improve their accessibility in all of these areas.": "These are the seven areas listed within the Accessible Canada Act. Federally regulated organizations must work to improve their accessibility in all of these areas.", "These details will help people know what to expect when working with you.": "These details will help people know what to expect when working with you.", + "The selected consulting service is invalid": "The selected consulting service is invalid", "The selected working language is not valid.": "The selected working language is not valid.", "These organizations, coalitions, cross-disability or umbrella groups are made up of, and controlled by, persons with disabilities, Deaf persons, and\/or their family members. These organizations were created to advance and defend the rights of persons with disabilities.": "These organizations, coalitions, cross-disability or umbrella groups are made up of, and controlled by, persons with disabilities, Deaf persons, and\/or their family members. These organizations were created to advance and defend the rights of persons with disabilities.", "These organizations have constituencies which include persons with disabilities, Deaf persons, and family members. Disability and Deaf services are not the primary mandate of these organizations. ": "These organizations have constituencies which include persons with disabilities, Deaf persons, and family members. Disability and Deaf services are not the primary mandate of these organizations. ", @@ -1856,7 +1879,8 @@ "The suspension of :account and its users has been lifted.": "The suspension of :account and its users has been lifted.", "The suspension of :account has been lifted.": "The suspension of :account has been lifted.", "The type of disability they experience": "The type of disability they experience", - "They have been instructed to send their signed agreement to [support@accessibilityexchange.ca](mailto:support@accessibilityexchange.ca).": "They have been instructed to send their signed agreement to [support@accessibilityexchange.ca](mailto:support@accessibilityexchange.ca).", + "The user’s role is missing.": "The user’s role is missing.", + "They have been instructed to send their signed agreement to <:email>.": "They have been instructed to send their signed agreement to <:email>.", "They require Video Relay Service (VRS) for phone calls": "They require Video Relay Service (VRS) for phone calls", "They will not be able to:": "They will not be able to:", "They will not know you have blocked them.": "They will not know you have blocked them.", @@ -1874,7 +1898,6 @@ "This engagement is a **paid** opportunity.": "This engagement is a **paid** opportunity.", "This engagement is a **volunteer** opportunity.": "This engagement is a **volunteer** opportunity.", "This engagement is a volunteer engagement. There will be no monetary payment.": "This engagement is a volunteer engagement. There will be no monetary payment.", - "This engagement is looking for people who have all sorts of different identities and lived experiences, such as race, gender, age, sexual orientation, and more.": "This engagement is looking for people who have all sorts of different identities and lived experiences, such as race, gender, age, sexual orientation, and more.", "This estimate includes the following engagements:": "This estimate includes the following engagements:", "This estimate was sent to :contact on :date.": "This estimate was sent to :contact on :date.", "This includes disability and Deaf representative organizations, support organizations, and other civil society organizations (not only disability focused).": "This includes disability and Deaf representative organizations, support organizations, and other civil society organizations (not only disability focused).", @@ -1898,19 +1921,20 @@ "This is the name that will be displayed on your page. This does not have to be your legal name.": "This is the name that will be displayed on your page. This does not have to be your legal name.", "This is the name that will be displayed on your project page.": "This is the name that will be displayed on your project page.", "This is the name that will show up publicly on your page.": "This is the name that will show up publicly on your page.", + "This member already belongs to this organization.": "This member already belongs to this organization.", + "This member has already been invited.": "This member has already been invited.", "This organization has already been invited.": "This organization has already been invited.", "This organization has people on staff who have lived experience of the communities they :represent_or_serve_and_support.": "This organization has people on staff who have lived experience of the communities they :represent_or_serve_and_support.", "This site is for three kinds of users. Select an option below to learn more.": "This site is for three kinds of users. Select an option below to learn more.", "This site uses cookies to help provide a better experience.": "This site uses cookies to help provide a better experience.", "This survey will be provided in the following digital formats:": "This survey will be provided in the following digital formats:", "This survey will be provided in the following formats:": "This survey will be provided in the following formats:", - "This user already belongs to this team.": "This user already belongs to this team.", "This website was made in partnership with members and organizations from the disability and Deaf communities, supporters, and members from Federally Regulated Organizations.": "This website was made in partnership with members and organizations from the disability and Deaf communities, supporters, and members from Federally Regulated Organizations.", "This will help governments and businesses communicate and work with you in a format that is accessible to you.": "This will help governments and businesses communicate and work with you in a format that is accessible to you.", "This will help people know what to expect when working with you.": "This will help people know what to expect when working with you.", "This will help you get paid in the way that you want.": "This will help you get paid in the way that you want.", "This will only be shared with participants who have accepted the invitation.": "This will only be shared with participants who have accepted the invitation.", - "This will show Community Connectors on the :browse page that you are looking, and that they are welcome to reach out.": "This will show Community Connectors on the :browse page that you are looking, and that they are welcome to reach out.", + "This will show Community Connectors on the [browse projects](:url) page that you are looking, and that they are welcome to reach out.": "This will show Community Connectors on the [browse projects](:url) page that you are looking, and that they are welcome to reach out.", "Through contacting me or my support person": "Through contacting me or my support person", "Throughout this page, you can choose whether you would like notifications to be sent through the website or by contacting the project team contact for that specific project directly. You can edit this in each individual project page.": "Throughout this page, you can choose whether you would like notifications to be sent through the website or by contacting the project team contact for that specific project directly. You can edit this in each individual project page.", "Throughout this page, you can chose whether you would like notifications to be sent through the website or by contacting :contact_person directly.": "Throughout this page, you can chose whether you would like notifications to be sent through the website or by contacting :contact_person directly.", @@ -2129,9 +2153,10 @@ "who is going through the results": "who is going through the results", "Who they’re seeking": "Who they’re seeking", "Who we’re looking for": "Who we’re looking for", - "Who will be going through the results from this project and writing a report?": "Who will be going through the results from this project and writing a report?", + "Who will be going through the results and producing an outcome?": "Who will be going through the results and producing an outcome?", "Who will be the best person to facilitate your consultation?": "Who will be the best person to facilitate your consultation?", "Who you’re joining as": "Who you’re joining as", + "Who’s responsible for going through results and producing an outcome": "Who’s responsible for going through results and producing an outcome", "Why do we ask for this information?": "Why do we ask for this information?", "With disability and Deaf communities and hold meaningful consultations": "With disability and Deaf communities and hold meaningful consultations", "Women": "Women", @@ -2290,31 +2315,34 @@ "You must choose at least one type of federally regulated organization.": "You must choose at least one type of federally regulated organization.", "You must choose at least one type of organization.": "You must choose at least one type of organization.", "You must choose at least one type of project.": "You must choose at least one type of project.", + "You must choose a valid province or territory": "You must choose a valid province or territory", + "You must enter a :attribute": "You must enter a :attribute", + "You must enter a :attribute.": "You must enter a :attribute.", "You must enter a :attribute for the meeting location.": "You must enter a :attribute for the meeting location.", "You must enter a city or town.": "You must enter a city or town.", "You must enter an email address.": "You must enter an email address.", "You must enter a province or territory.": "You must enter a province or territory.", "You must enter at least one city or town.": "You must enter at least one city or town.", + "You must enter a valid link for :key.": "You must enter a valid link for :key.", "You must enter a valid website address for :key.": "You must enter a valid website address for :key.", + "You must enter a valid website link.": "You must enter a valid website link.", "You must enter your organization's name in either English or French.": "You must enter your organization's name in either English or French.", "You must enter your organization name.": "You must enter your organization name.", "You must enter your organization name in either English or French.": "You must enter your organization name in either English or French.", "You must fill out the field “About your organization”.": "You must fill out the field “About your organization”.", "You must fill out your [payment information](:url) before you can sign up.": "You must fill out your [payment information](:url) before you can sign up.", - "You must identify who will be going through the results from this project and writing a report.": "You must identify who will be going through the results from this project and writing a report.", + "You must identify who will be going through the results and producing an outcome.": "You must identify who will be going through the results and producing an outcome.", "You must indicate at least one way for participants to attend the meeting.": "You must indicate at least one way for participants to attend the meeting.", "You must indicate if the reports will be publicly available.": "You must indicate if the reports will be publicly available.", "You must indicate the :attribute.": "You must indicate the :attribute.", "You must indicate who you want to engage.": "You must indicate who you want to engage.", "You must pick at least one of these roles.": "You must pick at least one of these roles.", - "You must provide a :attribute.": "You must provide a :attribute.", "You must select a language.": "You must select a language.", "You must select a role for your organization.": "You must select a role for your organization.", "You must select at least one age group you can connect to.": "You must select at least one age group you can connect to.", "You must select at least one age group your organization specifically :represents_or_serves_and_supports.": "You must select at least one age group your organization specifically :represents_or_serves_and_supports.", "You must select at least one ethno-racial identity you can connect to.": "You must select at least one ethno-racial identity you can connect to.", "You must select at least one ethno-racial identity your organization specifically :represents_or_serves_and_supports.": "You must select at least one ethno-racial identity your organization specifically :represents_or_serves_and_supports.", - "You must select at least one gender or sexual identity group.": "You must select at least one gender or sexual identity group.", "You must select at least one gender or sexual identity group you can connect to.": "You must select at least one gender or sexual identity group you can connect to.", "You must select at least one gender or sexual identity group your organization specifically :represents_or_serves_and_supports.": "You must select at least one gender or sexual identity group your organization specifically :represents_or_serves_and_supports.", "You must select at least one Indigenous group you can connect to.": "You must select at least one Indigenous group you can connect to.", @@ -2323,6 +2351,11 @@ "You must select at least one option for “Can you connect to people with disabilities, Deaf persons, and\/or their supporters?”": "You must select at least one option for “Can you connect to people with disabilities, Deaf persons, and\/or their supporters?”", "You must select at least one option for “Where do the people that you :represent_or_serve_and_support come from?”": "You must select at least one option for “Where do the people that you :represent_or_serve_and_support come from?”", "You must select at least one option for “Where do the people that you can connect to come from?”": "You must select at least one option for “Where do the people that you can connect to come from?”", + "You must select at least one way to attend the meeting.": "You must select at least one way to attend the meeting.", + "You must select a valid :attribute.": "You must select a valid :attribute.", + "You must select a valid format.": "You must select a valid format.", + "You must select a valid meeting type.": "You must select a valid meeting type.", + "You must select a valid role to perform on the website.": "You must select a valid role to perform on the website.", "You must select one option for “Can you connect to a specific age group or groups?”": "You must select one option for “Can you connect to a specific age group or groups?”", "You must select one option for “Can you connect to people who are First Nations, Inuit, or Métis?”": "You must select one option for “Can you connect to people who are First Nations, Inuit, or Métis?”", "You must select one option for “Can you connect to people who are marginalized based on gender or sexual identity?”": "You must select one option for “Can you connect to people who are marginalized based on gender or sexual identity?”", @@ -2364,17 +2397,18 @@ "Your agreement has been received for :project. You can now publish your project page and engagement details. Sign in to your account at https:\/\/accessibilityexchange.ca to continue.": "Your agreement has been received for :project. You can now publish your project page and engagement details. Sign in to your account at https:\/\/accessibilityexchange.ca to continue.", "Your areas of interest have been updated.": "Your areas of interest have been updated.", "Your bio": "Your bio", + "Your bio must be provided in at least English or French.": "Your bio must be provided in at least English or French.", "Your communication and consultation preferences have been updated.": "Your communication and consultation preferences have been updated.", "Your Community Connector has been removed.": "Your Community Connector has been removed.", "Your consultation preferences": "Your consultation preferences", "Your details": "Your details", "Your engagement has been created.": "Your engagement has been created.", - "Your engagement has been published. [Visit engagement](:url)": "Your engagement has been published. [Visit engagement](:url)", + "Your engagement has been published.": "Your engagement has been published.", "Your engagement has been updated.": "Your engagement has been updated.", "Your engagement translations have been updated.": "Your engagement translations have been updated.", "You represent that you are of legal age, as set forth in Subsection 3(a), to use the Platform.": "You represent that you are of legal age, as set forth in Subsection 3(a), to use the Platform.", - "Your estimate for **:project**, along with a project agreement for to sign, has been sent to [:contact](mailto::contact).": "Your estimate for **:project**, along with a project agreement for to sign, has been sent to [:contact](mailto::contact).", - "Your estimate for **:project**, along with a project agreement for you to sign, has been sent to [:contact](mailto::contact).": "Your estimate for **:project**, along with a project agreement for you to sign, has been sent to [:contact](mailto::contact).", + "Your estimate for **:project**, along with a project agreement for to sign, has been sent to <:contact>.": "Your estimate for **:project**, along with a project agreement for to sign, has been sent to <:contact>.", + "Your estimate for **:project**, along with a project agreement for you to sign, has been sent to <:contact>.": "Your estimate for **:project**, along with a project agreement for you to sign, has been sent to <:contact>.", "Your estimate has been returned": "Your estimate has been returned", "Your estimate has been returned for :project, along with a project agreement for you to sign. Sign in to your account at https:\/\/accessibilityexchange.ca for further details.": "Your estimate has been returned for :project, along with a project agreement for you to sign. Sign in to your account at https:\/\/accessibilityexchange.ca for further details.", "Your federally regulated organization has been deleted.": "Your federally regulated organization has been deleted.", @@ -2396,14 +2430,12 @@ "Your name and your contact information have been shared with :name.": "Your name and your contact information have been shared with :name.", "Your notification preferences have been updated.": "Your notification preferences have been updated.", "Your organization has been added to an engagement": "Your organization has been added to an engagement", - "Your organization has been added to the engagement “:engagement”": "Your organization has been added to the engagement “:engagement”", "Your organization has been added to the engagement “:engagement”.": "Your organization has been added to the engagement “:engagement”.", "Your organization has been invited as a :role": "Your organization has been invited as a :role", "Your organization has been invited as a :role to :projectable’s :invitationable_type, :invitationable.": "Your organization has been invited as a :role to :projectable’s :invitationable_type, :invitationable.", "Your organization has been invited to join the :invitationable_type “:invitationable” as a :role.": "Your organization has been invited to join the :invitationable_type “:invitationable” as a :role.", "Your organization has been invited to the :invitationable_type \":invitationable\" as a :role on The Accessibility Exchange. Sign in to your account at https:\/\/accessibilityexchange.ca to continue.": "Your organization has been invited to the :invitationable_type \":invitationable\" as a :role on The Accessibility Exchange. Sign in to your account at https:\/\/accessibilityexchange.ca to continue.", "Your organization has been removed from an engagement": "Your organization has been removed from an engagement", - "Your organization has been removed from the engagement “:engagement”": "Your organization has been removed from the engagement “:engagement”", "Your organization has been removed from the engagement “:engagement”.": "Your organization has been removed from the engagement “:engagement”.", "Your organization’s name": "Your organization’s name", "Your organization’s name in either English or French is required.": "Your organization’s name in either English or French is required.", @@ -2420,6 +2452,7 @@ "Your project has been created.": "Your project has been created.", "Your project has been deleted.": "Your project has been deleted.", "Your projects and engagements": "Your projects and engagements", + "Your pronouns must be provided in at least English or French.": "Your pronouns must be provided in at least English or French.", "your public profile will be removed from the platform": "your public profile will be removed from the platform", "your public profile will be removed from the website": "your public profile will be removed from the website", "Your regulated organization, :name, will be deleted and cannot be recovered. If you still want to delete your regulated organization, please enter your current password to proceed.": "Your regulated organization, :name, will be deleted and cannot be recovered. If you still want to delete your regulated organization, please enter your current password to proceed.", diff --git a/resources/lang/en/invitation.php b/resources/lang/en/invitation.php index a3493207d..f52e03e3f 100644 --- a/resources/lang/en/invitation.php +++ b/resources/lang/en/invitation.php @@ -7,8 +7,8 @@ 'cancel_member_invitation_link' => 'Cancel invitation', 'cancel_member_invitation_link_with_email' => 'Cancel invitation for :email', 'create_invitation_succeeded' => 'Your invitation has been sent.', - 'invited_user_already_belongs_to_a_team' => 'This user already belongs to a team.', - 'invited_user_already_belongs_to_this_team' => 'This user already belongs to this team.', + 'invited_user_already_belongs_to_a_team' => 'The person you invited is already a member of another organization.', + 'invited_user_already_belongs_to_this_team' => 'The person you invited is already a member of this organization.', 'cancel_invitation_succeeded' => 'The invitation has been cancelled.', 'email_not_valid' => 'You are logged in as :email, but this invitation is for a different email address.', 'accept_invitation_succeeded' => 'You have joined the :invitationable team.', diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php index 0e8247d5c..aee77eee2 100644 --- a/resources/lang/en/validation.php +++ b/resources/lang/en/validation.php @@ -96,16 +96,18 @@ 'not_regex' => 'The :attribute format is invalid.', 'numeric' => 'The :attribute must be a number.', 'password' => 'The password is incorrect.', + 'postal_code' => 'You must enter a valid Canadian postal code.', 'present' => 'The :attribute field must be present.', 'regex' => 'The :attribute format is invalid.', 'required' => 'You must enter your :attribute.', + 'required_array_keys' => 'The :attribute must contain values for :values', 'required_if' => 'The :attribute field is required when :other is :value.', 'required_unless' => 'The :attribute field is required unless :other is in :values.', 'required_with' => 'The :attribute field is required when :values is present.', 'required_with_all' => 'The :attribute field is required when :values are present.', 'required_without' => 'The :attribute field is required when :values is not present.', 'required_without_all' => 'The :attribute field is required when none of :values are present.', - 'phone' => 'The :attribute is not a valid phone number.', + 'phone' => 'The :attribute is not a valid number.', 'prohibits' => 'The :attribute field is prohibited when :other is present.', 'prohibited' => 'The :attribute field is prohibited.', 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', @@ -122,7 +124,7 @@ 'timezone' => 'The :attribute must be a valid zone.', 'unique' => 'The :attribute has already been taken.', 'uploaded' => 'The :attribute failed to upload.', - 'url' => 'The :attribute format is invalid.', + 'url' => 'The :attribute is invalid.', 'uuid' => 'The :attribute must be a valid UUID.', /* diff --git a/resources/lang/fr.json b/resources/lang/fr.json index 4153a48d2..442138e02 100644 --- a/resources/lang/fr.json +++ b/resources/lang/fr.json @@ -18,7 +18,7 @@ "**Disclaimer.** All notices, Project Agreements and related documents made available on or through the Platform, either by IRIS, other users, or generated as a third party service on or through the Platform, are not legally reviewed, endorsed or approved by IRIS and are used at your sole risk. We make no representation or warranty concerning the enforceability of any agreements signed or exchanged by electronic means through tools or functions made available on or through the Platform.": "**Disclaimer.** All notices, Project Agreements and related documents made available on or through the Platform, either by IRIS, other users, or generated as a third party service on or through the Platform, are not legally reviewed, endorsed or approved by IRIS and are used at your sole risk. We make no representation or warranty concerning the enforceability of any agreements signed or exchanged by electronic means through tools or functions made available on or through the Platform.", "**Disclosure of Submissions.** You acknowledge and agree that any questions, comments, suggestions, ideas, feedback or other information about the Platform (“Submissions”), provided by you to IRIS are non-confidential and IRIS will be entitled to the unrestricted use and dissemination of these Submissions for any purpose, commercial or otherwise, without acknowledgment or compensation to you.": "**Disclosure of Submissions.** You acknowledge and agree that any questions, comments, suggestions, ideas, feedback or other information about the Platform (“Submissions”), provided by you to IRIS are non-confidential and IRIS will be entitled to the unrestricted use and dissemination of these Submissions for any purpose, commercial or otherwise, without acknowledgment or compensation to you.", "**Entire Agreement.** These Terms constitute the entire agreement between you and IRIS and govern your use of the Platform, superseding any prior agreements between you and IRIS with respect to the Platform. You also may be subject to additional terms and conditions that may apply when you use affiliate or Third Party Services, Third Party Content or third party software.": "**Entire Agreement.** These Terms constitute the entire agreement between you and IRIS and govern your use of the Platform, superseding any prior agreements between you and IRIS with respect to the Platform. You also may be subject to additional terms and conditions that may apply when you use affiliate or Third Party Services, Third Party Content or third party software.", - "**For Cause.** IRIS may, in its sole discretion, immediately terminate these Terms or, without limiting its other rights and remedies, suspend User’s access to the Platform and Services if User fails to comply with any provision of these Terms. In the event that IRIS terminates or suspends your access to the Platform or Services or these Terms under this Section, you understand and agree that you will not receive a refund of, or credit for, any fees paid.": "**For Cause.** IRIS may, in its sole discretion, immediately terminate these Terms or, without limiting its other rights and remedies, suspend User’s access to the Platform and Services if User fails to comply with any provision of these Terms. In the event that IRIS terminates or suspends your access to the Platform or Services or these Terms under this Section, you understand and agree that you will not receive a refund of, or credit for, any fees paid.", + "**For Cause.** IRIS may, in its sole discretion, immediately terminate these Terms or, without limiting its other rights and remedies, suspend User’s access to the Platform and Services if User fails to comply with any provision of these Terms. In the event that IRIS terminates or suspends your access to the Platform or Services or these Terms under this Section, you understand and agree that you will not receive a refund of, or credit for, any fees paid.": "", "**General Practices.** You acknowledge that IRIS may establish general practices and limits concerning use of the Platform, including without limitation the maximum period of time that data or other content, will be retained by the Platform and the maximum storage space that will be allotted on IRIS’ or its partners’, affiliates’, or service providers’ servers on your behalf. You agree that IRIS has no responsibility or liability for the deletion or failure to store any data or other content maintained or uploaded by the Platform. You acknowledge that IRIS reserves the right to terminate accounts that are inactive for an extended period of time. You further acknowledge that IRIS reserves the right to change these general practices and limits at any time, in its sole discretion, with or without notice.": "**General Practices.** You acknowledge that IRIS may establish general practices and limits concerning use of the Platform, including without limitation the maximum period of time that data or other content, will be retained by the Platform and the maximum storage space that will be allotted on IRIS’ or its partners’, affiliates’, or service providers’ servers on your behalf. You agree that IRIS has no responsibility or liability for the deletion or failure to store any data or other content maintained or uploaded by the Platform. You acknowledge that IRIS reserves the right to terminate accounts that are inactive for an extended period of time. You further acknowledge that IRIS reserves the right to change these general practices and limits at any time, in its sole discretion, with or without notice.", "**Governing Law.** These Terms will be governed by the laws of the Province of Ontario without regard to its conflict of law provisions. With respect to any disputes or claims not subject to arbitration, as set forth above, you and IRIS agree to submit to the personal and exclusive jurisdiction of the province of Ontario. The failure of IRIS to exercise or enforce any right or provision of these Terms will not constitute a waiver of such right or provision. Recognizing the global nature of the Internet, you agree to comply with all local rules and laws regarding your use of the Platform, including as it concerns online conduct and acceptable content.": "**Governing Law.** These Terms will be governed by the laws of the Province of Ontario without regard to its conflict of law provisions. With respect to any disputes or claims not subject to arbitration, as set forth above, you and IRIS agree to submit to the personal and exclusive jurisdiction of the province of Ontario. The failure of IRIS to exercise or enforce any right or provision of these Terms will not constitute a waiver of such right or provision. Recognizing the global nature of the Internet, you agree to comply with all local rules and laws regarding your use of the Platform, including as it concerns online conduct and acceptable content.", "**If you select no,** our support line will contact you and arrange for a different way to have your access needs met.": "**If you select no,** our support line will contact you and arrange for a different way to have your access needs met.", @@ -27,13 +27,14 @@ "**Invoices.** IRIS will invoice Project Proponents the annual subscription amount owed to access and use the Platform. Project Proponents hereby agree to pay any undisputed amounts to IRIS within 30 days of such invoice.": "**Invoices.** IRIS will invoice Project Proponents the annual subscription amount owed to access and use the Platform. Project Proponents hereby agree to pay any undisputed amounts to IRIS within 30 days of such invoice.", "**Language.** It is the express wish of the parties hereto that the Terms be drawn up in English. The parties hereto hereby waive any right to use and rely upon any other language.": "**Language.** It is the express wish of the parties hereto that the Terms be drawn up in English. The parties hereto hereby waive any right to use and rely upon any other language.", "**Limitation Period.** You agree that regardless of any statute or law to the contrary, any claim or cause of action arising out of or related to use of the Platform or these Terms must be filed within one (1) year after such claim or cause of action arose or be forever barred. A printed version of this agreement and of any notice given in electronic form will be admissible in judicial or administrative proceedings based upon or relating to this agreement to the same extent and subject to the same conditions as other business documents and records originally generated and maintained in printed form.": "**Limitation Period.** You agree that regardless of any statute or law to the contrary, any claim or cause of action arising out of or related to use of the Platform or these Terms must be filed within one (1) year after such claim or cause of action arose or be forever barred. A printed version of this agreement and of any notice given in electronic form will be admissible in judicial or administrative proceedings based upon or relating to this agreement to the same extent and subject to the same conditions as other business documents and records originally generated and maintained in printed form.", - "**Modification.** We reserve the right, at our sole discretion, to change or modify portions of these Terms at any time. If we do this, we will post the changes on **[[:url](:url)]** and will indicate at the top of the Terms page the date these terms were last revised. We will also endeavor to notify you, either through the Platform user interface, in an email notification or through other reasonable means. Any such changes will become effective no earlier than fourteen (14) days after they are posted, except that changes addressing new functions of the Platform or changes made for legal reasons will be effective immediately. Your continued use of the Platform after the date any such changes become effective constitutes your acceptance of the new Terms.": "**Modification.** We reserve the right, at our sole discretion, to change or modify portions of these Terms at any time. If we do this, we will post the changes on **[[:url](:url)]** and will indicate at the top of the Terms page the date these terms were last revised. We will also endeavor to notify you, either through the Platform user interface, in an email notification or through other reasonable means. Any such changes will become effective no earlier than fourteen (14) days after they are posted, except that changes addressing new functions of the Platform or changes made for legal reasons will be effective immediately. Your continued use of the Platform after the date any such changes become effective constitutes your acceptance of the new Terms.", + "**Modification.** We reserve the right, at our sole discretion, to change or modify portions of these Terms at any time. If we do this, we will post the changes on **[<:url>]** and will indicate at the top of the Terms page the date these terms were last revised. We will also endeavor to notify you, either through the Platform user interface, in an email notification or through other reasonable means. Any such changes will become effective no earlier than fourteen (14) days after they are posted, except that changes addressing new functions of the Platform or changes made for legal reasons will be effective immediately. Your continued use of the Platform after the date any such changes become effective constitutes your acceptance of the new Terms.": "", "**Modification of the Platform.** IRIS reserves the right to modify the form and nature of the Platform, or discontinue, temporarily or permanently, the Platform (or any part thereof) with or without notice. You agree that IRIS will not be liable to you or to any third party for any modification, suspension or discontinuance of the Platform. IRIS may also, in its sole discretion, restrict access to the website for any reason.": "**Modification of the Platform.** IRIS reserves the right to modify the form and nature of the Platform, or discontinue, temporarily or permanently, the Platform (or any part thereof) with or without notice. You agree that IRIS will not be liable to you or to any third party for any modification, suspension or discontinuance of the Platform. IRIS may also, in its sole discretion, restrict access to the website for any reason.", - "**Notices.** All notices or approvals required or permitted under these Terms will be in writing and delivered by email transmission, and in each instance will be deemed given upon receipt. All notices or approvals will be sent to IRIS at **[[:email](:mailto)]**. Notices to you may be made via either email or regular mail. The Platform may also provide notices to you of changes to these Terms or other matters by displaying notices or links to notices generally on the Platform.": "**Notices.** All notices or approvals required or permitted under these Terms will be in writing and delivered by email transmission, and in each instance will be deemed given upon receipt. All notices or approvals will be sent to IRIS at **[[:email](:mailto)]**. Notices to you may be made via either email or regular mail. The Platform may also provide notices to you of changes to these Terms or other matters by displaying notices or links to notices generally on the Platform.", + "**Notices.** All notices or approvals required or permitted under these Terms will be in writing and delivered by email transmission, and in each instance will be deemed given upon receipt. All notices or approvals will be sent to IRIS at **[<:email>]**. Notices to you may be made via either email or regular mail. The Platform may also provide notices to you of changes to these Terms or other matters by displaying notices or links to notices generally on the Platform.": "", "**Other Termination.** IRIS reserves the right to terminate these Terms, suspend or terminate User’s access to the Platform and\/or any Services with or without notice, or deactivate or delete your account including all related information to User for any reason, including:": "**Other Termination.** IRIS reserves the right to terminate these Terms, suspend or terminate User’s access to the Platform and\/or any Services with or without notice, or deactivate or delete your account including all related information to User for any reason, including:", "**Password and Security.** You are responsible for maintaining the confidentiality of your Registration Information (and the Registration Information of related usernames) and are fully responsible for any and all activities that occur under your Personal Contact Information. You agree to (a) immediately notify IRIS of any unauthorized use of your Registration Information or any other breach of security, and (b) ensure that you log out from the Platform at the end of each session when accessing the Platform. IRIS will not be liable for any loss or damage arising from your failure to comply with this Subsection 3(b). Further, you agree not to allow third parties to access the Platform or IRIS’ website through your username and password.": "**Password and Security.** You are responsible for maintaining the confidentiality of your Registration Information (and the Registration Information of related usernames) and are fully responsible for any and all activities that occur under your Personal Contact Information. You agree to (a) immediately notify IRIS of any unauthorized use of your Registration Information or any other breach of security, and (b) ensure that you log out from the Platform at the end of each session when accessing the Platform. IRIS will not be liable for any loss or damage arising from your failure to comply with this Subsection 3(b). Further, you agree not to allow third parties to access the Platform or IRIS’ website through your username and password.", "**Payments.** Any payments between Users are for services provided by Consultants or another party separate from IRIS. Payment amounts are determined solely between Users. While IRIS provides the Platform through which activities are facilitated, IRIS is not liable for, party to, or responsible for those transactions even though IRIS may receive a commission from such payments and assist in the administration of remuneration from Project Proponents to Consultants. User agrees that issues or concerns, including non-receipt of payment, any discrepancy in payment amounts, or delays in payment, will be addressed by contacting the relevant User or third party.": "**Payments.** Any payments between Users are for services provided by Consultants or another party separate from IRIS. Payment amounts are determined solely between Users. While IRIS provides the Platform through which activities are facilitated, IRIS is not liable for, party to, or responsible for those transactions even though IRIS may receive a commission from such payments and assist in the administration of remuneration from Project Proponents to Consultants. User agrees that issues or concerns, including non-receipt of payment, any discrepancy in payment amounts, or delays in payment, will be addressed by contacting the relevant User or third party.", "**Platform Access.** In order to use the Platform, you must obtain Internet access, either directly or through devices that access web-based content and pay any service fees associated with such access. You are solely responsible for paying such fees. In addition, you must provide all equipment necessary to make such Internet connection, including a computer and modem or other access device. You are solely responsible for providing such equipment. You acknowledge that while IRIS may not currently have set a fixed upper limit on the number of transmissions you may send or receive through the Platform or on the amount of storage space used for the provision of the Platform’s services, such fixed upper limits may be set by IRIS at any time, at IRIS’ discretion.": "**Platform Access.** In order to use the Platform, you must obtain Internet access, either directly or through devices that access web-based content and pay any service fees associated with such access. You are solely responsible for paying such fees. In addition, you must provide all equipment necessary to make such Internet connection, including a computer and modem or other access device. You are solely responsible for providing such equipment. You acknowledge that while IRIS may not currently have set a fixed upper limit on the number of transmissions you may send or receive through the Platform or on the amount of storage space used for the provision of the Platform’s services, such fixed upper limits may be set by IRIS at any time, at IRIS’ discretion.", + "**Please respond by :signup_by_date.**": "**Veuillez répondre avant le :signup_by_date.**", "**Preservation of Content.** You acknowledge and agree that IRIS may preserve User Content and may also disclose User Content if required to do so by law or in the good faith belief that such preservation or disclosure is reasonably necessary to: (a) comply with legal process, applicable laws or government requests; (b) enforce these Terms; (c) respond to claims that any content violates the rights of third parties; or (d) protect the rights, property, or personal safety of IRIS, its users and the public.": "**Preservation of Content.** You acknowledge and agree that IRIS may preserve User Content and may also disclose User Content if required to do so by law or in the good faith belief that such preservation or disclosure is reasonably necessary to: (a) comply with legal process, applicable laws or government requests; (b) enforce these Terms; (c) respond to claims that any content violates the rights of third parties; or (d) protect the rights, property, or personal safety of IRIS, its users and the public.", "**Projects and Project Agreements.** IRIS is not a party to any agreements, transactions, projects or arrangements (“**Project Agreements**”) entered into between Project Proponents and Consultants unless explicitly agreed to. While IRIS provides the Platform and Services enabling you to engage in Projects and facilitate the payment for certain services, IRIS is not involved in any way in the Project other than through the provision of the Services, nor is IRIS party to the Project Agreements, except for any transactions for services expressly entered into between IRIS and Users. You understand and agree that IRIS will not be liable under any circumstances for the content or enforcement of any Project Agreement between you and another User, as applicable. You further understand and agree that while IRIS requires Users to submit true, accurate, current and complete information, IRIS cannot guarantee the qualifications of any Consultant or the success of any Project.": "**Projects and Project Agreements.** IRIS is not a party to any agreements, transactions, projects or arrangements (“**Project Agreements**”) entered into between Project Proponents and Consultants unless explicitly agreed to. While IRIS provides the Platform and Services enabling you to engage in Projects and facilitate the payment for certain services, IRIS is not involved in any way in the Project other than through the provision of the Services, nor is IRIS party to the Project Agreements, except for any transactions for services expressly entered into between IRIS and Users. You understand and agree that IRIS will not be liable under any circumstances for the content or enforcement of any Project Agreement between you and another User, as applicable. You further understand and agree that while IRIS requires Users to submit true, accurate, current and complete information, IRIS cannot guarantee the qualifications of any Consultant or the success of any Project.", "**Registration.** If you choose to register for the Platform, you agree to provide and maintain true, accurate, current and complete information about yourself as prompted by the Platform’s registration form to create your user account, including your name or the name of the organization you represent, email address, password and phone number (“**Personal Contact Information**”). If you are under 13 years of age, you are not authorized to use the Platform, with or without registering. In addition, if you are under 18 years old, you may use the Platform, with or without registering, only with the approval and supervision of your parent or guardian. In addition, you may also provide certain additional information in order to enable the Platform to match you to appropriate Projects, including information pertaining to location, identity, experience of disability, citizenship status (“**Demographic Information**”). If you provide any Personal Contact Information or Demographic Information that is untrue, inaccurate, not current, or incomplete, or if IRIS has a reasonable ground to suspect that such information is untrue, inaccurate, not current, or incomplete, IRIS has the right, in its sole discretion, to suspend or terminate your account and refuse any and all current or future use of the Platform (or any portion thereof). If you invite anyone under the age of 18 (an “**Underaged Person**”) to use the Platform, you agree to be solely responsible for the Underaged Person’s use of same.": "**Registration.** If you choose to register for the Platform, you agree to provide and maintain true, accurate, current and complete information about yourself as prompted by the Platform’s registration form to create your user account, including your name or the name of the organization you represent, email address, password and phone number (“**Personal Contact Information**”). If you are under 13 years of age, you are not authorized to use the Platform, with or without registering. In addition, if you are under 18 years old, you may use the Platform, with or without registering, only with the approval and supervision of your parent or guardian. In addition, you may also provide certain additional information in order to enable the Platform to match you to appropriate Projects, including information pertaining to location, identity, experience of disability, citizenship status (“**Demographic Information**”). If you provide any Personal Contact Information or Demographic Information that is untrue, inaccurate, not current, or incomplete, or if IRIS has a reasonable ground to suspect that such information is untrue, inaccurate, not current, or incomplete, IRIS has the right, in its sole discretion, to suspend or terminate your account and refuse any and all current or future use of the Platform (or any portion thereof). If you invite anyone under the age of 18 (an “**Underaged Person**”) to use the Platform, you agree to be solely responsible for the Underaged Person’s use of same.", @@ -60,19 +61,15 @@ "1 participant left :engagement": "1 personne participante à quitté :engagement", "1 person declined their invitation for :engagement": "1 personne a refusé l'invitation à rejoindre :engagement", "1 person declined your invitation for :engagement": "1 personne a refusé votre invitation à rejoindre :engagement", - "1. Create an account, if you don’t already have one.": "1. Créez un compte, si vous n'en avez pas déjà un.", - "1. Send the estimate and agreement to [:contact](mailto::contact).": "1. Envoyez le devis et l'entente à [:contact](mailto::contact).", "1. Sign up and share more about your organization": "1. Inscrivez-vous et présentez votre organisation", "1. Sign up for the website and build your Accessibility Consultant profile": "1. Inscrivez-vous sur le site et créez votre profil de personne consultante en matière d'accessibilité", "1. Sign up for the website and build your Community Connector profile": "1. Inscrivez-vous sur le site et créez votre profil de personne facilitatrice communautaire", "1. Sign up for the website and share some information about your organization": "1. Inscrivez-vous sur le site et partagez des informations sur votre organisation", "1. Sign up for the website and share some information about yourself": "1. Inscrivez-vous sur le site et partagez des informations sur vous-même", - "2. Accept your invitation by clicking the button below.": "2. Acceptez votre invitation en cliquant sur le bouton ci-dessous.", "2. Businesses and government can reach out to hire you": "2. Les entreprises et le gouvernement peuvent vous solliciter pour vous embaucher", "2. Find an engagement or get matched to one": "2. Find an engagement or get matched to one", "2. Find projects that are looking for a Community Connector": "2. Find projects that are looking for a Community Connector", "2. Find projects that are looking for an Accessibility Consultant": "2. Find projects that are looking for an Accessibility Consultant", - "2. Mark the estimate as \"returned\" by visiting the link below and searching for :projectable.": "2. Marquez le devis comme « retourné » en visitant le lien ci-dessous et en recherchant :projectable.", "2. Share more about your projects and who you are looking to engage": "2. Share more about your projects and who you are looking to engage", "2SLGBTQIA+ people": "Personnes 2SLGBTQIA+", "3. Work directly with businesses and governments": "3. Work directly with businesses and governments", @@ -92,7 +89,6 @@ ":count engagements": ":count interactions", ":count members of your organization": ":count membres de votre organisation", ":count more unread": ":count autres non-lus", - ":count participants confirmed": ":count personnes participantes confirmées", ":count projects": ":count projets", ":count projects match your applied filters.": ":count projets répondent aux critères sélectionnés.", ":count results for": ":count résultats pour", @@ -106,6 +102,7 @@ ":engagement time changed": "L'heure pour :engagement a changée", ":engagement time confirmed": "L'heure pour :engagement a été confirmée", ":label (:locale)": ":label (:locale)", + ":locality, :region": "", ":model is already translatable into :language.": ":model est déjà traduit en :language.", ":model was not translatable into :language.": ":model n'était pas traduisible en :language.", ":name has accepted your invitation to join your organization.": ":name a accepté votre invitation à rejoindre votre organisation.", @@ -151,6 +148,7 @@ "accepted formats": "formats acceptés", "Accept Invitation": "Accepter l'invitation", "Accept invitation": "Accepter l'invitation", + "Accept your invitation by clicking the button below.": "Acceptez votre invitation en cliquant sur le bouton ci-dessous.", "Access :language version": "Accéder à la version en :language", "ACCESS AND USE OF THE PLATFORM": "ACCESS AND USE OF THE PLATFORM", "Access governments and businesses who are looking for a Community Connector to help with a project.": "Accéder aux organisations gouvernementales et aux entreprises à la recherche d'une personne facilitatrice communautaire pouvant aider pour un projet.", @@ -166,7 +164,7 @@ "Accessibility Consultants could help you design consultations that are inclusive and accessible.": "Les personnes consultantes en matière d'accessibilité peuvent vous aider à concevoir des consultations qui soient inclusives et accessibles.", "Accessibility Consultants — Individual": "Personne consultante en matière d'accessibilité - Individu", "Accessibility preferences": "Préférences d'accessibilité", - "Accessibility project by :projectable": "Projet en matière d'accessibilité par :projectable", + "Accessibility project by [:projectable](:url)": "Projet en matière d'accessibilité par [:projectable](:url)", "Accessible consultation": "Consultation accessible", "Access more resources": "Accéder à plus de ressources", "Access need": "Besoin en matière d'accessibilité", @@ -208,6 +206,7 @@ "Additional information to join:": "Information supplémentaire à joindre :", "Additional needs or concerns": "Besoins ou préoccupations supplémentaires", "Add language": "Ajouter une langue", + "Add link": "", "Add meeting": "Ajouter une réunion", "Add new meeting": "Ajouter une nouvelle réunion", "Add participant": "Ajouter une personne participante", @@ -225,6 +224,7 @@ "After the consultation follow up with participants to share next steps and your organization’s plan for implementing their feedback. This can help foster confidence in your commitment, and an ongoing relationship with your participants, who can be involved in future updates of your accessibility plan.": "Après la consultation, assurez un suivi auprès des personnes participantes pour leur faire part des prochaines étapes et du plan de votre organisation pour mettre en œuvre leurs commentaires. Cela peut contribuer à renforcer la confiance envers votre initiative et à établir une relation durable avec vos participants, lesquels pourraient éventuellement participer aux futures mises à jour de votre plan d'accessibilité.", "Age": "Âge", "Age group": "Groupe d'âge", + "age group": "", "Age groups": "Groupes d'âge", "Age groups they can connect to": "Tranches d'âge auprès desquelles vous pouvez agir comme intermédiaire", "Agreement pending": "Entente en attente", @@ -241,14 +241,15 @@ "All the training I am doing or have done.": "Toutes les formations que je fais ou que j'ai faites.", "Alternative text for images": "Texte de remplacement pour les images", "Although it is not compulsory, we highly recommend that you include English and French translations of your content.": "Although it is not compulsory, we highly recommend that you include English and French translations of your content.", - "A meeting title must be provided in at least one language.": "Un titre de réunion doit être fourni dans au moins une langue.", + "A meeting title must be provided in at least English or French.": "", "American Sign Language (ASL)": "American Sign Language (ASL)", "Analysis of collected information": "Analyse des informations recueillies", "Analyze the outcomes of your consultation with people who are in the context of disability and Deaf groups.": "Analyser les résultats de votre consultation avec des personnes faisant partie de groupes de personnes en situation de handicap et de personnes sourdes.", "An approximate response time must be provided in at least one language.": "Un temps de réponse approximatif doit être indiqué dans au moins une langue.", - "An engagement description must be provided in at least one language.": "Une description de la consultation doit être fournie dans au moins une langue.", + "An engagement description must be provided in at least English or French.": "", "An engagement involves a group of people participating in one set way (for example, a focus group or a survey). An engagement like a focus group can have multiple meetings.": "Une consultation implique un groupe de personnes participant d'une manière donnée (par exemple, un groupe de discussion ou un sondage). Une consultation, comme un groupe de discussion, peut se dérouler sur plusieurs réunions.", "An engagement involves a group of people participating in one set way (for example, a focus group or survey).": "Une consultation implique un groupe de personnes participant d'une manière donnée (par exemple, un groupe de discussion ou un sondage).", + "An engagement name must be provided in at least English or French.": "", "An engagement name must be provided in at least one language.": "Le nom de la consultation doit être fourni dans au moins une langue.", "An engagement with this name already exists.": "Une consultation avec ce nom existe déjà.", "a network and is able to conduct effective outreach to people with disabilities and Deaf persons in particular geographic communities and social groups (for example, Indigenous communities).": "un réseau et est capable de mener des actions de sensibilisation efficaces auprès des personnes en situation de handicap et des personnes sourdes dans des communautés géographiques et des groupes particuliers (par exemple, les communautés autochtones).", @@ -279,6 +280,7 @@ "Areas of interest": "Domaines d'intérêt", "Areas of your organization this project will impact": "Secteurs de votre organisation sur lesquels ce projet aura un impact", "Areas where the organization serves": "Régions où l'organisation est active", + "area type": "", "Are you able to attend consultations in real-time, or do you prefer to receive the materials (ex. questions, discussion topics) and record your responses at your own pace?": "Êtes-vous en mesure d'assister aux consultations en temps réel, ou préférez-vous recevoir le matériel (ex. questions, sujets de discussion) et enregistrer vos réponses à votre propre rythme ?", "Are you looking for individuals in specific provinces or territories or specific cities or towns?": "Cherchez-vous des personnes dans des provinces ou territoires spécifiques ou dans des villes ou villages spécifiques ?", "Are you sure you want to block :blockable?": "Voulez-vous vraiment bloquer :blockable?", @@ -369,7 +371,6 @@ "Browse for an Community Connector": "Chercher une personne facilitatrice communautaire", "Browse individuals": "Parcourir les individus", "Browse our resources": "Parcourir nos ressources", - "browse projects": "parcourir les projets", "Browse regulated organizations": "Parcourir les organisations sous réglementation fédérale", "Browse resources by :creator": "Parcourir les ressources par :creator", "Browse resources for Community Connectors and Accessibility Consultants": "Parcourir les ressources pour les personnes facilitatrices communautaires et pour les personnes consultantes en matière d'accessibilité", @@ -383,7 +384,7 @@ "by": "par", "By clicking to accept the Terms or otherwise using the Platform you agree to be bound by these Terms.": "En acceptant les conditions ou en utilisant la plateforme, vous acceptez d'être lié par ces conditions.", "By selecting Consultation Participant as your only role, your role no longer will include the Accessibility Consultant or Community Connector roles. You do not need a profile to be a Consultation Participant, so your profile will be unpublished and saved, and will no longer be visible by other members of The Accessibility Exchange. However, if you edit your role to add the Accessibility Consultant or Community Connector roles again, you will be able to publish your profile again all your saved information will be restored.": "En choisissant comme seul rôle celui de personne participante à une consultation, votre rôle ne comprendra plus les rôles de personne consultante en matière d'accessibilité ou de personne facilitatrice communautaire. Vous n'avez pas besoin d'un profil pour être une personne participante à des consultations. Votre profil sera donc dépublié et enregistré et ne sera plus visible par les autres membres du Connecteur pour l'accessibilité. Toutefois, si vous modifiez votre rôle pour ajouter à nouveau les rôles de personne consultante en matière d'accessibilité ou de facilitatrice communautaire, vous pourrez publier à nouveau votre profil et toutes vos informations sauvegardées seront restaurées.", - "Call or :vrs": "Appel ou :vrs", + "Call or :!vrs": "Appel ou :!vrs", "Call our support line at :number": "Appelez notre ligne d'assistance au :number", "Cancel": "Annuler", "Cancel engagement": "Annuler la consultation", @@ -531,6 +532,7 @@ "Create account": "Créer un compte", "Create Account": "Créer un compte", "Create an account": "Créer un compte", + "Create an account, if you don’t already have one.": "Créez un compte, si vous n'en avez pas déjà un.", "Create and implement inclusive and accessible consultations for your organization": "Créer et mettre en œuvre des consultations inclusives et accessibles pour votre organisation", "Create an engagement": "Créer une consultation", "Create a new engagement": "Créer une nouvelle consultation", @@ -565,6 +567,7 @@ "Date": "Date", "Date added": "Date ajoutée", "Date created": "Date de création", + "date for materials to be sent by": "", "Date of training": "Date de la formation", "Date range": "Plage de dates", "Dates": "Dates", @@ -653,7 +656,7 @@ "East Asian": "Asiatique de l'Est", "Eastern Standard or Daylight Time": "Heure normale de l'Est ou heure avancée de l'Est", "Edit": "Modifier", - "Edit :section": "Modifier :section", + "Edit :!section": "Modifier :!section", "Edit :user’s role": "Modifier le rôle de :user", "Editable PDF document": "Document PDF modifiable", "Edit engagement": "Modifier la consultation", @@ -716,6 +719,7 @@ "Estimates and agreements": "Devis et ententes", "Estimate status": "Statut du devis", "Ethno-racial groups": "Communautés ethniques et racisées", + "ethnoracial group": "", "Ethnoracial group they can connect to": "Communautés ethniques et racisées auprès desquelles ils peuvent servir d'intermédiaire", "Ethnoracial identity": "Identité ethnoraciale", "ethnoracial identity": "identité ethnoraciale", @@ -747,6 +751,7 @@ "Find learning materials, best practices, and variety of tools to help you throughout the consultation process.": "Supports d'apprentissage, meilleures pratiques et une variété d'outils pour vous aider tout au long du processus de consultation.", "Find people with disabilities, Deaf people and community organizations (for example, disability or other relevant civil society organizations, like Indigenous groups), to consult with on your accessibility project.": "Trouvez des personnes en situation de handicap, des personnes sourdes et des organisations communautaires (par exemple, des organisations de personnes en situation de handicap ou d'autres organisations pertinentes de la société civile, comme les groupes autochtones), à consulter dans le cadre de votre projet en matière d'accessibilité.", "First language": "Première langue", + "first language": "", "First Nations": "Premières Nations", "flexible, please contact us if you need to use another software": "flexible, veuillez nous contacter si vous souhaitez utiliser un autre logiciel", "Focus group": "Groupe de discussion", @@ -800,6 +805,7 @@ "Gender neutral, barrier-free washrooms": "Toilettes mixtes et accessibles", "Gender neutral washroom": "Salle de bain non genrée", "Gender non-conforming people": "Personnes non-conformes au genre", + "gender or sexual identity group": "", "GENERAL": "DISPOSITIONS GÉNÉRALES", "General": "Général", "General access needs": "Besoins généraux en matière d'accessibilité", @@ -851,6 +857,7 @@ "House of Commons, Senate, Library of Parliament, Parliamentary Protective Service": "House of Commons, Senate, Library of Parliament, Parliamentary Protective Service", "How can you help a regulated organization?": "Comment pouvez-vous aider les organisations réglementées ?", "how communities will be impacted": "comment les communautés seront touchées", + "How does being a **:role** work?": "Qu'est-ce qu'être un-e **:role** représente?", "How does being a :role work?": "Qu'est-ce qu'être un-e :role représente?", "How does being an :role work?": "Qu'est-ce qu'être un-e :role représente?", "How does getting input for your projects work?": "Comment fonctionne la collecte de commentaires pour vos projets ?", @@ -882,6 +889,7 @@ "Ideally, an Accessibility Consultant has:": "Dans l'idéal, une personne consultante en matière d'accessibilité possède :", "Ideally a Community Connector has:": "Dans l'idéal, une personne facilitatrice communautaire possède :", "Ideal number of participants": "Nombre idéal de personnes participantes", + "ideal number of participants": "", "Identities": "Identités", "If anything about your projects or engagements have changed, please send a new estimate request.": "Si un élément de vos projets ou consultations a changé, veuillez envoyer une nouvelle demande de devis.", "If a Sign Language video translation is available, you will see a button in line with the website content. Pressing that button will load the Sign Language video.": "Si une traduction vidéo en langue des signes est disponible, vous verrez un bouton en ligne avec le contenu du site Internet. En appuyant sur ce bouton, la vidéo en langue des signes sera chargée.", @@ -889,14 +897,17 @@ "if IRIS is transitioning to no longer providing the Platform to users in the region or province in which you reside or from which you use the Platform; or": "if IRIS is transitioning to no longer providing the Platform to users in the region or province in which you reside or from which you use the Platform; or", "If more than one of the following applies to you, you will need to register separate accounts.": "Si plus qu'une des conditions suivantes s'applique à vous, vous devrez créer des comptes séparés.", "if the provision of the Platform to you by IRIS is, in IRIS’ opinion, no longer commercially or financially viable.": "if the provision of the Platform to you by IRIS is, in IRIS’ opinion, no longer commercially or financially viable.", - "If you already have an account, please :sign_in": "Si vous avez déjà un compte, veuillez :sign_in", + "If you already have an account, please [sign in](:url).": "Si vous avez déjà un compte, veuillez [vous identifier](:url).", "IF YOU ARE DISSATISFIED WITH ANY PORTION OF THE PLATFORM OR WITH THESE TERMS OF SERVICE, YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USE OF THE PLATFORM.": "IF YOU ARE DISSATISFIED WITH ANY PORTION OF THE PLATFORM OR WITH THESE TERMS OF SERVICE, YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USE OF THE PLATFORM.", + "If you are interested in engaging a specific :attribute, you must select at least one.": "", + "If you are looking for a group with a specific experience or identity, you must select which type of experience or identity you are looking for.": "", + "If you are looking for a specific :attribute, you must select at least one.": "", "If you are seeking a Community Connector for this engagement, there are a few ways to find one:": "Si vous recherchez une personne facilitatrice communautaire pour cette consultation, plusieurs moyens s'offrent à vous :", "If you are thinking of working with a specific group, for example, Indigenous people with disabilities, it would be a good idea to hire an Accessibility Consultant from that community.": "Si vous envisagez de travailler avec un groupe spécifique, par exemple, des personnes en situation de handicap issues de communautés autochtones, il pourrait être avantageux d'engager une personne consultante en matière d'accessibilité issue de cette communauté.", "If you delete your account:": "Si vous supprimez votre compte :", "If you did not expect to receive an invitation to this :invitationable_type, you may discard this email.": "Si vous ne vous attendiez pas à recevoir une invitation pour ce\/cette :invitationable_type, vous pouvez ignorer ce courriel.", "If you have an additional access need you must describe it.": "Si vous avez des besoins additionnels en matière d'accessibilité, veuillez les décrire.", - "If you have any questions, you understand that you may contact IRIS via email at **[[:email](:mailto)]**.": "If you have any questions, you understand that you may contact IRIS via email at **[[:email](:mailto)]**.", + "If you have any questions, you understand that you may contact IRIS via email at <:email>.": "", "If you have forgotten your password, please enter the email address that you used to sign up for The Accessibility Exchange. We will email you a link that will let you choose a new password.": "Si vous avez oublié votre mot de passe, veuillez entrer l'adresse courriel que vous avez utilisée pour vous inscrire au Connecteur pour l'accessibilité. Nous vous enverrons par courriel un lien qui vous permettra de choisir un nouveau mot de passe.", " if you need this in another language.": " si vous avez besoin de soutien dans une autre langue.", "If your organization is offering services as a **Community Connector**, regulated organizations may ask you to assist them in connecting to your primary constituencies. If your organization is offering services as a **Consultation Participant**, regulated organizations may ask you to represent this group’s point of view in consultations.": "Si votre organisation offre des services en tant que **Community Connector**, les organisations réglementées peuvent vous demander de les aider à établir des liens avec les populations les intéressant le plus. Si votre organisation offre des services en tant que **Consultation Participant**, les organisations réglementées peuvent vous demander de représenter le point de vue de ce ou ces groupes lors des consultations.", @@ -915,8 +926,10 @@ "Includes size, limb, and facial differences": "Comprend les différences de taille, les différences de membres et les différences faciales", "Includes traumatic brain injury, memory difficulties, dementia": "Comprend les lésions cérébrales résultant d'un traumatisme, les troubles de la mémoire et la démence", "Including government departments, agencies and Crown Corporations": "Including government departments, agencies and Crown Corporations", + "Incomplete": "", "INDEMNITY AND RELEASE.": "INDEMNITY AND RELEASE.", "Indigenous": "Autochtone", + "Indigenous group": "", "Indigenous identity": "Indigenous identity", "Individual": "Individu", "individual": "individu", @@ -936,12 +949,12 @@ "In person": "En personne", "In progress": "En cours", "In Progress": "En cours", - "Institute for Research and Development on Inclusion and Society (“**IRIS**”, “**we**”, “**us**” or “**our**”) invites you (“**you**” or “**your**”) to join The Accessibility Exchange, a platform enabling people with disabilities, Deaf persons, and their supporters and people and organizations with expertise in supporting these communities to connect with one another and with federally regulated organizations (“**FROs**”) and other organizations (together with FROs, the “**Project Proponents**”), for the purpose of developing accessibility plans or other relevant services (the “**Service**”), which you can access at **[[:url](:url)]** or on our mobile applications (the “**Platform**”). These terms of service and the IRIS Privacy Policy (together, the “**Terms**”) govern your use of the Platform and represent a legally binding agreement between you and IRIS.": "L'Institut de recherche et développement sur l'inclusion et la société (\"**IRIS**\", \"**nous**\", \"**nous**\" ou \"**notre**\") vous invite (\"**vous**\" ou \"**votre**\") à rejoindre le Connecteur pour l'accessibilité, une plateforme permettant aux personnes en situation de handicap, aux personnes sourdes, et à leurs sympathisants, ainsi qu'aux personnes et aux organisations ayant une expertise dans le soutien de ces communautés, de se mettre en contact les uns avec les autres et avec des organisations sous réglementation fédérale (\"**ORF**\") et d'autres organisations (ensemble avec les ORF, les \"**Proposants de projet**\"), dans le but d'élaborer des plans d'accessibilité ou d'autres services pertinents (le \"**Service**\"), auquel vous pouvez accéder à l'adresse **[ : url](:url)]** ou sur nos applications mobiles (la \"**Plateforme**\"). Les présentes conditions de service et la politique de confidentialité de l'IRIS (ensemble, les \"**Conditions**\") régissent votre utilisation de la plateforme et constituent une entente juridiquement contraignante entre vous et l'IRIS.", + "Institute for Research and Development on Inclusion and Society (“**IRIS**”, “**we**”, “**us**” or “**our**”) invites you (“**you**” or “**your**”) to join The Accessibility Exchange, a platform enabling people with disabilities, Deaf persons, and their supporters and people and organizations with expertise in supporting these communities to connect with one another and with federally regulated organizations (“**FROs**”) and other organizations (together with FROs, the “**Project Proponents**”), for the purpose of developing accessibility plans or other relevant services (the “**Service**”), which you can access at **[<:url>]** or on our mobile applications (the “**Platform**”). These terms of service and the IRIS Privacy Policy (together, the “**Terms**”) govern your use of the Platform and represent a legally binding agreement between you and IRIS.": "L'Institut de recherche et développement sur l'inclusion et la société (\"**IRIS**\", \"**nous**\", \"**nous**\" ou \"**notre**\") vous invite (\"**vous**\" ou \"**votre**\") à rejoindre le Connecteur pour l'accessibilité, une plateforme permettant aux personnes en situation de handicap, aux personnes sourdes, et à leurs sympathisants, ainsi qu'aux personnes et aux organisations ayant une expertise dans le soutien de ces communautés, de se mettre en contact les uns avec les autres et avec des organisations sous réglementation fédérale (\"**ORF**\") et d'autres organisations (ensemble avec les ORF, les \"**Proposants de projet**\"), dans le but d'élaborer des plans d'accessibilité ou d'autres services pertinents (le \"**Service**\"), auquel vous pouvez accéder à l'adresse **[<:url>]** ou sur nos applications mobiles (la \"**Plateforme**\"). Les présentes conditions de service et la politique de confidentialité de l'IRIS (ensemble, les \"**Conditions**\") régissent votre utilisation de la plateforme et constituent une entente juridiquement contraignante entre vous et l'IRIS.", "INTELLECTUAL PROPERTY RIGHTS.": "DROITS DE PROPRIÉTÉ INTELLECTUELLE.", "Interests": "Intérêts", "interfere with or disrupt the Platform or servers or networks connected to the Platform, or disobey any requirements, procedures, policies or regulations of networks connected to the Platform; or violate any applicable provincial, territorial, local, national or international law, or any regulations having the force of law;": "interfere with or disrupt the Platform or servers or networks connected to the Platform, or disobey any requirements, procedures, policies or regulations of networks connected to the Platform; or violate any applicable provincial, territorial, local, national or international law, or any regulations having the force of law;", "Internal team": "Équipe interne", - "Intersectional": "Intersectionnel", + "Intersectional - This engagement is looking for people who have all sorts of different identities and lived experiences, such as race, gender, age, sexual orientation, and more.": "Intersectionnel - Cette consultation s'adresse à toute personne, peu importe leurs axes d'identités intersectionnels (telles que la race, le sexe, l'âge, l'orientation sexuelle) et leurs expériences vécues.", "Intersectional outreach": "Approche intersectionnelle", "Intervenor": "Intervenant", "Interview at their own pace": "Effectuer l'entrevue à leur propre rythme", @@ -1060,6 +1073,7 @@ "Mark agreement as received": "Marquer l'entente comme reçue", "Mark as read": "Marquer comme lu", "Mark estimate as returned": "Marquer le devis comme retourné", + "Mark the estimate as \"returned\" by visiting the link below and searching for :projectable.": "Marquez le devis comme « retourné » en visitant le lien ci-dessous et en recherchant :projectable.", "Matching information": "Information correspondante", "Matching service": "Service de jumelage", "match you to their projects or engagements": "vous jumeler à leurs projets ou consultations", @@ -1073,7 +1087,6 @@ "Meeting date :date": "Date de la réunion :date", "Meeting dates": "Dates de réunion", "meeting end time": "heure de fin de la réunion", - "meeting phone number": "numéro de téléphone de la réunion", "Meetings": "Réunions", "meeting start time": "heure de début de la réunion", "meeting time zone": "fuseau horaire de la réunion", @@ -1087,6 +1100,7 @@ "Microsoft Word": "Microsoft Word", "Middle Eastern": "Moyen-oriental", "Minimum number of participants": "Nombre minimum de personnes participantes", + "minimum number of participants": "", "Missing an engagement?": "Manque-t-il une consultation?", "modify, copy, reproduce, reverse engineer, frame, rent, lease, loan, sell, distribute, publish, or create derivative works based on the Platform or the Service Content (as defined below), in whole or in part;": "modify, copy, reproduce, reverse engineer, frame, rent, lease, loan, sell, distribute, publish, or create derivative works based on the Platform or the Service Content (as defined below), in whole or in part;", "Module - :title": "Module - :title", @@ -1157,6 +1171,7 @@ "No interests listed.": "Aucun intérêt répertorié.", "No meetings found.": "Aucune réunion trouvée.", "Non-binary, gender non-conforming and\/or gender fluid people": "Personnes non-binaires, non-conformes au genre et\/ou fluides de genre", + "Non-binary\/Gender non-conforming\/Gender fluid identity": "", "Non-binary people": "Personnes non-binaires", "None found.": "Rien n'a été trouvé.", "None listed": "Aucun listé", @@ -1227,7 +1242,6 @@ "Once you sign up, you can sign up for an orientation session to learn about what you can do on this website. You can also fill in information to facilitate a smoother collaboration with organizations, such as access needs, communication preferences, and consultation preferences.": "Une fois inscrit, vous pouvez vous inscrire à une séance d'orientation pour découvrir ce que vous pouvez faire sur ce site. Vous pouvez également remplir des informations destinées à rendre la collaboration avec les organisations plus harmonieuse, telles que vos besoins en matière d'accessibilité, vos préférences en ce qui concerne les communications ou encore les consultations.", "Once you’ve reviewed the project details, please:": "Une fois que vous aurez revu les détails du projet, veuillez :", "One of the key parts of preparing for your consultation with the disability and Deaf communities is making sure that your consultations are done in an accessible and inclusive way.": "L'un des éléments clés de la préparation de votre consultation avec les communautés de personnes en situation de handicap et de personnes sourdes est de s'assurer que vos consultations se déroulent d'une manière accessible et inclusive.", - "One or more Disability or Deaf groups are required.": "One or more Disability or Deaf groups are required.", "Online form, such as survey monkey or google forms": "Formulaire en ligne, tel que SurveyMonkey ou Google Forms", "Only people with specific disabilities and\/or Deaf people": "Personnes ayant des handicaps spécifiques et\/ou personnes sourdes", "Only reachable within cross-disability and Deaf or intersectional groups": "Only reachable within cross-disability and Deaf or intersectional groups", @@ -1289,6 +1303,7 @@ "Participant location": "Emplacement de la personne participante", "Participant non-disclosure agreement": "Entente de confidentialité de la personne participante", "Participants": "Personnes participantes", + "participants confirmed": "personnes participantes confirmées", "Participant selection criteria": "Critères de sélection des personnes participantes", "Participants must respond to their invitation by the following date": "Les personnes participantes doivent répondre à l'invitation avant la date suivante", "Participants must sign up for this engagement by the following date": "Les personnes intéressées doivent s'inscrire à cette consultation avant la date suivante", @@ -1324,6 +1339,7 @@ "phone number": "numéro de téléphone", "Phone number:": "Numéro de téléphone :", "Phone number to join": "Numéro de téléphone à rejoindre", + "phone number to join the meeting": "", "Physical and mobility disabilities": "Déficience physique et de mobilité", "Plain language": "Langage simple", "Plan and share your project with others on this website.": "Planifiez et partagez votre projet avec d'autres personnes sur ce site Internet.", @@ -1353,7 +1369,10 @@ "Please create your profile to share more about who you are, your experiences, and your interests.": "Veuillez créer votre profil pour en dire plus sur qui vous êtes, vos expériences et vos intérêts.", "Please describe how the Disability and Deaf communities will be impacted by the outcomes of your project.": "Veuillez décrire comment les communautés des personnes en situation de handicap et des personnes sourdes seront touchées par les résultats de votre projet.", "Please describe this engagement.": "Veuillez décrire cette consultation.", + "Please enter a :attribute that is less than or the same as the ideal number of participants.": "", "Please enter an end year for your experience that is equal to or greater than the start year.": "Please enter an end year for your experience that is equal to or greater than the start year.", + "Please enter a valid :attribute.": "", + "Please enter a valid date for the :attribute.": "", "Please enter a valid website link under “Accessibility and Inclusion links”.": "Veuillez saisir un lien Internet valide sous \"Liens en lien avec l'accessibilité et l'inclusion\".", "Please enter the email address of the individual you have hired as a Community Connector.": "Veuillez entrer l'adresse courriel de la personne que vous avez embauchée en tant que personne facilitatrice communautaire.", "Please enter your collaboration preferences": "Veuillez entrer vos préférences de collaboration", @@ -1398,13 +1417,15 @@ "Please read these terms of service carefully.": "Veuillez lire attentivement ces conditions de service.", "Please reset your password for The Accessibility Exchange": "Veuillez réinitialiser votre mot de passe pour le Connecteur pour l'accessibilité", "Please respond by :date.": "Veuillez répondre avant le :date.", - "Please respond by :signup_by_date.": "Veuillez répondre avant le :signup_by_date.", "Please review and publish your engagement details.": "Veuillez réviser et publier les détails de votre consultation.", "Please review and update your communication and consultation preferences": "Veuillez réviser et mettre à jour vos préférences en matière de communication et de consultation", "Please review and update your matching information": "Veuillez réviser et mettre à jour vos informations de jumelage", "Please review and update your public page": "Veuillez réviser et mettre à jour votre page publique", "Please review your page. There is some information for your new role that you will have to fill in.": "Merci de vérifier l'information présentée sur cette page. De l'information sur les nouveaux rôles que vous avez sélectionnés est disponible.", "Please see the resource [Planning a Safe, Accessible Consultation](:url).": "Veuillez consulter la ressource [Planification d'une consultation sûre et accessible](:url).", + "Please select a language.": "", + "Please select a language that the engagement documents will be in.": "", + "Please select a language to remove.": "", "Please select a recruitment method": "Veuillez sélectionner une méthode de recrutement", "Please select disability groups that your organization specifically represents": "Veuillez sélectionner les groupes de personnes en situation de handicap que votre organisation représente spécifiquement", "Please select the disability and\/or Deaf groups that you can connect to.": "Veuillez sélectionner les groupes de personnes en situation de handicap et\/ou de personnes sourdes auprès desquels vous pouvez agir comme intermédiaire.", @@ -1602,14 +1623,12 @@ "Responses are due by:": "Les réponses doivent être remises au plus tard le :", "Returned": "Retourné", "Return to dashboard": "Retour au tableau de bord", - "Return to edit mode": "Revenir en mode édition", "Review and publish engagement details": "Réviser et publier les détails de la consultation", "Review and publish your organization’s public page": "Review and publish your organization’s public page", "Review and publish your public page": "Réviser et publier votre page publique", "Review engagement details": "Réviser les détails de la consultation", "Review my organization’s page": "Réviser la page de mon organisation", "Review my page": "Réviser ma page", - "Review page": "Réviser mes informations", "Review project": "Réviser le projet", "Review project details": "Vérifier les détails du projet", "Role": "Rôle", @@ -1671,7 +1690,7 @@ "Select your criteria": "Sélectionnez vos critères", "Send invitation": "Envoyer l'invitation", "Send request": "Envoyer la demande", - "sent by date": "envoyé par date", + "Send the estimate and agreement to <:contact>.": "Envoyez le devis et l'entente à <:contact>.", "serve and support": "servir et soutenir", "serves and supports": "sert et soutien", "Service areas": "Régions desservies", @@ -1689,7 +1708,6 @@ "show up on search results for them": "apparaître dans les résultats de recherche", "Signed language for interpretation": "Langue signée pour l'interprétation", "Sign in": "S’identifier", - "sign in.": "vous identifier.", "Sign language interpretation": "Interprétation en langue des signes", "Sign language interpretations": "Sign language interpretations", "Sign language translation": "Traduction en langue des signes", @@ -1803,14 +1821,18 @@ "Text": "Texte", "Text message": "Message texte", "Text to speech": "Synthèse vocale", + "The :attribute format is not valid.": "", "The :attribute is not in the right format.": "Le champ :attribute n'est pas au bon format.", + "The :attribute must be after the :date.": "", + "The :attribute must be a number.": "", + "The :attribute must be before the :date.": "", "The :projectable sends out a list of questions, and you can can respond to them at your own pace.": "Dans ce cas, l':projectable vous enverra une liste de questions et vous pourrez y répondre à votre propre rythme.", "The Accessibility Exchange": "Connecteur pour l’accessibilité", "The Accessibility Exchange will send you notifications, based on what you chose to be notified of here.": "Le Connecteur pour l'accessibilité vous enverra des notifications, en fonction de ce que vous avez choisi de recevoir ici.", "The Accessible Canada Act has identified sectors that are required to comply with the Act. If you would like, you may indicate which sectors are of interest to you. You do not have to answer this question as it is optional. ": "La Loi canadienne sur l'accessibilité a identifié les secteurs qui doivent se conformer à la Loi. Si vous le souhaitez, vous pouvez indiquer les secteurs qui vous intéressent. Vous n'avez pas à répondre à cette question car elle est facultative. ", "The Accessible Canada Act has outlined seven main areas that governments and businesses have to make accessible. If you would like, you may indicate which areas are of interest to you. You do not have to answer this question as it is optional. ": "La Loi canadienne sur l'accessibilité a défini sept domaines principaux que les gouvernements et les entreprises doivent rendre accessibles. Si vous le souhaitez, vous pouvez indiquer les domaines qui vous intéressent. Vous vous n'avez pas à répondre à cette question car elle est facultative. ", "The agreement for “:project” has been marked as received.": "L’entente pour « :project » a été marquée comme reçue.", - "The agreement will be sent with your estimate. Please sign this agreement and send it to :email.": "L'entente sera envoyée avec votre devis. Veuillez signer l'entente et l'envoyer à :email.", + "The agreement will be sent with your estimate. Please sign this agreement and send it to <:email>.": "L'entente sera envoyée avec votre devis. Veuillez signer l'entente et l'envoyer à <:email>.", "The Canadian Forces and the Royal Canadian Mounted Police": "The Canadian Forces and the Royal Canadian Mounted Police", "The Community Organization being consulted with for this engagement.": "Organisation communautaire consultée dans le cadre de cette consultation.", "The demographic breakdown of your confirmed participants will show when your sign up deadline has passed. Please come back and check again at that time.": "La répartition démographique de vos personnes participantes s'affichera lorsque la date limite d'inscription sera passée. Veuillez revenir et vérifier à nouveau à ce moment-là.", @@ -1830,11 +1852,11 @@ "Theme": "Thème", "themes": "thèmes", "Themes": "Thèmes", - "The minimum number of participants is more than the ideal number of participants. Please enter a minimum that is less than or the same as the ideal number of participants.": "Le nombre minimum de personnes participantes est supérieur au nombre idéal de personnes participantes. Veuillez saisir un minimum inférieur ou égal au nombre idéal de personnes participantes.", "The notification has been marked as read.": "La notification a été marquée comme lue.", "the number of people on your team": "the number of people on your team", "The organization you have added does not participate in engagements.": "L'organisation que vous avez ajoutée ne désire pas participer à des consultations.", - "The other accepted format must be provided in at least one language.": "L'autre format accepté doit être fourni dans au moins une langue.", + "The other accepted format must be a string.": "", + "The other accepted format must be provided in at least English or French.": "", "the other languages are you able to work in": "les autres langues dans lesquelles vous êtes capable de travailler", "the other languages you are able to work in": "les autres langues dans lesquelles vous êtes capable de travailler", "The other payment type must be specified.": "Vous devez spécifier l'autre type de paiement.", @@ -1848,6 +1870,7 @@ "These are the seven areas listed within the Accessible Canada Act. By law, entities must ensure these areas are accessible.": "Ces sept domaines sont énumérés dans la Loi canadienne sur l'accessibilité. En vertu de la loi, les entités doivent s'assurer que ces domaines sont accessibles.", "These are the seven areas listed within the Accessible Canada Act. Federally regulated organizations must work to improve their accessibility in all of these areas.": "Ces sept domaines sont énumérés dans la Loi canadienne sur l'accessibilité. En vertu de la loi, les organisations sous réglementation fédérale doivent s'assurer que ces domaines sont accessibles.", "These details will help people know what to expect when working with you.": "Ces détails aideront les gens à savoir à quoi s'attendre lorsqu'ils travaillent avec vous.", + "The selected consulting service is invalid": "", "The selected working language is not valid.": "La langue de travail sélectionnée n'est pas valide.", "These organizations, coalitions, cross-disability or umbrella groups are made up of, and controlled by, persons with disabilities, Deaf persons, and\/or their family members. These organizations were created to advance and defend the rights of persons with disabilities.": "Ces organisations, coalitions, groupes multi-handicap ou parapluies sont constitués et contrôlés par des personnes en situation de handicap, des personnes sourdes et\/ou des membres de leur famille. Ces organisations ont été créées pour faire avancer et défendre les droits des personnes en situation de handicap.", "These organizations have constituencies which include persons with disabilities, Deaf persons, and family members. Disability and Deaf services are not the primary mandate of these organizations. ": "Ces organisations comptent parmi leurs membres des personnes en situation de handicap, des personnes sourdes et des membres de leur famille. Les services aux personnes en situation de handicap et aux personnes sourdes ne constituent pas le mandat principal de ces organisations. ", @@ -1856,7 +1879,8 @@ "The suspension of :account and its users has been lifted.": "The suspension of :account and its users has been lifted.", "The suspension of :account has been lifted.": "The suspension of :account has been lifted.", "The type of disability they experience": "Le type de handicap vécu", - "They have been instructed to send their signed agreement to [support@accessibilityexchange.ca](mailto:support@accessibilityexchange.ca).": "Ils ont été priés d'envoyer leur accord signé à [support@accessibilityexchange.ca](mailto:support@accessibilityexchange.ca).", + "The user’s role is missing.": "", + "They have been instructed to send their signed agreement to <:email>.": "Ils ont été priés d'envoyer leur accord signé à <:email>.", "They require Video Relay Service (VRS) for phone calls": "Cette personne a besoin du service de relais vidéo (SRV) pour les appels téléphoniques", "They will not be able to:": "Ils ne seront pas en mesure de faire les choses suivantes :", "They will not know you have blocked them.": "Ces personnes ne sauront pas que vous les avez bloquées.", @@ -1874,7 +1898,6 @@ "This engagement is a **paid** opportunity.": "Cette consultation est une opportunité **rémunérée**.", "This engagement is a **volunteer** opportunity.": "Cette consultation est une opportunité **bénévole**.", "This engagement is a volunteer engagement. There will be no monetary payment.": "Cette consultation est entièrement bénévole. Il n'y aura pas de paiement effectué.", - "This engagement is looking for people who have all sorts of different identities and lived experiences, such as race, gender, age, sexual orientation, and more.": "Cette consultation s'adresse à toute personne, peu importe leurs axes d'identités intersectionnels (telles que la race, le sexe, l'âge, l'orientation sexuelle) et leurs expériences vécues.", "This estimate includes the following engagements:": "Ce devis comprend les consultations suivantes :", "This estimate was sent to :contact on :date.": "Ce devis a été envoyé à :contact le :date.", "This includes disability and Deaf representative organizations, support organizations, and other civil society organizations (not only disability focused).": "Cela inclut les organisations représentant les personnes en situation de handicap et les personnes sourdes, les organisations de défense des droits et les autres organisations de la société civile (pas seulement axées sur le handicap).", @@ -1898,19 +1921,20 @@ "This is the name that will be displayed on your page. This does not have to be your legal name.": "Il s'agit du nom qui sera affiché sur votre page. Il peut être différent de votre nom légal.", "This is the name that will be displayed on your project page.": "Il s'agit du nom qui sera affiché sur la page de votre projet.", "This is the name that will show up publicly on your page.": "Il s'agit du nom qui apparaîtra publiquement sur votre page.", + "This member already belongs to this organization.": "", + "This member has already been invited.": "", "This organization has already been invited.": "Cette organisation a déjà été invitée.", "This organization has people on staff who have lived experience of the communities they :represent_or_serve_and_support.": "Cette organisation compte parmi son personnel des personnes ayant une expérience vécue des communautés qu'elle :represent_or_serve_and_support.", "This site is for three kinds of users. Select an option below to learn more.": "Ce site s'adresse à trois types de publics. Sélectionnez une option ci-dessous pour en savoir plus.", "This site uses cookies to help provide a better experience.": "This site uses cookies to help provide a better experience.", "This survey will be provided in the following digital formats:": "Ce sondage sera fourni dans les formats numériques suivants :", "This survey will be provided in the following formats:": "Ce sondage sera fourni dans les formats suivants :", - "This user already belongs to this team.": "Cette personne fait déjà partie de cette équipe.", "This website was made in partnership with members and organizations from the disability and Deaf communities, supporters, and members from Federally Regulated Organizations.": "Ce site Internet a été conçu en partenariat avec des membres et des organisations de la communauté des personnes en situation de handicap et des personnes sourdes, de leurs alliés et des membres d'organisations sous réglementation fédérale.", "This will help governments and businesses communicate and work with you in a format that is accessible to you.": "Cela aidera les gouvernements et les entreprises à communiquer et à travailler avec vous dans un format qui vous est accessible.", "This will help people know what to expect when working with you.": "Cela permettra aux gens de savoir à quoi s'attendre lorsqu'ils travaillent avec vous.", "This will help you get paid in the way that you want.": "Cela vous permettra d'être payé de la façon qui vous convient le mieux.", "This will only be shared with participants who have accepted the invitation.": "Cette information ne sera partagée qu'avec les personnes qui ont acceptées l'invitation.", - "This will show Community Connectors on the :browse page that you are looking, and that they are welcome to reach out.": "Cela montrera aux personnes facilitatrices communautaires de la page :browse que vous êtes en train de chercher et qu'elles peuvent vous contacter.", + "This will show Community Connectors on the [browse projects](:url) page that you are looking, and that they are welcome to reach out.": "Cela montrera aux personnes facilitatrices communautaires de la page [parcourir les projets](:url) que vous êtes en train de chercher et qu'elles peuvent vous contacter.", "Through contacting me or my support person": "En me contactant ou en contactant la personne m'apportant du soutien", "Throughout this page, you can choose whether you would like notifications to be sent through the website or by contacting the project team contact for that specific project directly. You can edit this in each individual project page.": "Sur cette page, vous pouvez choisir si vous souhaitez que les notifications soient envoyées via le site Internet ou directement à la personne responsable du projet en question. Vous pouvez modifier ce réglage pour chaque projet individuellement.", "Throughout this page, you can chose whether you would like notifications to be sent through the website or by contacting :contact_person directly.": "Sur cette page, vous pouvez choisir si vous souhaitez que les notifications soient envoyées via le site Internet ou directement à :contact_person.", @@ -2129,9 +2153,10 @@ "who is going through the results": "qui passe en revue les résultats", "Who they’re seeking": "Profil recherché", "Who we’re looking for": "Qui nous cherchons", - "Who will be going through the results from this project and writing a report?": "Qui sera responsable de l'analyse des résultats de ce projet et de la rédaction d'un rapport ?", + "Who will be going through the results and producing an outcome?": "", "Who will be the best person to facilitate your consultation?": "Qui pourrait être la meilleure personne pour mener à bien votre consultation ?", "Who you’re joining as": "Quel type de compte voulez-vous créer?", + "Who’s responsible for going through results and producing an outcome": "", "Why do we ask for this information?": "Pourquoi demandons-nous ces informations ?", "With disability and Deaf communities and hold meaningful consultations": "Avec les communautés de personnes en situation de handicap et de personnes sourdes et tenir des consultations efficaces", "Women": "Femmes", @@ -2290,31 +2315,34 @@ "You must choose at least one type of federally regulated organization.": "Vous devez choisir au moins un type d'organisation sous réglementation fédérale.", "You must choose at least one type of organization.": "Vous devez choisir au moins un type d'organisation.", "You must choose at least one type of project.": "Vous devez choisir au moins un type de projet.", + "You must choose a valid province or territory": "", + "You must enter a :attribute": "", + "You must enter a :attribute.": "", "You must enter a :attribute for the meeting location.": "Vous devez saisir un\/une :attribute pour le lieu de la réunion.", "You must enter a city or town.": "Vous devez indiquer une ville ou un village.", "You must enter an email address.": "Vous devez saisir une adresse courriel.", "You must enter a province or territory.": "Vous devez indiquer une province ou un territoire.", "You must enter at least one city or town.": "Vous devez indiquer au moins une ville ou un village.", + "You must enter a valid link for :key.": "", "You must enter a valid website address for :key.": "Vous devez indiquer une adresse valide pour :key.", + "You must enter a valid website link.": "", "You must enter your organization's name in either English or French.": "Vous devez saisir le nom de votre organisation en anglais ou en français.", "You must enter your organization name.": "Vous devez saisir le nom de votre organisation.", "You must enter your organization name in either English or French.": "Vous devez saisir le nom de votre organisation en anglais ou en français.", "You must fill out the field “About your organization”.": "Vous devez remplir le champ « À propos de votre organisation ».", "You must fill out your [payment information](:url) before you can sign up.": "You must fill out your [payment information](:url) before you can sign up.", - "You must identify who will be going through the results from this project and writing a report.": "You must identify who will be going through the results from this project and writing a report.", + "You must identify who will be going through the results and producing an outcome.": "", "You must indicate at least one way for participants to attend the meeting.": "Vous devez indiquer au moins un moyen pour les personnes participantes de se joindre à la réunion.", "You must indicate if the reports will be publicly available.": "You must indicate if the reports will be publicly available.", "You must indicate the :attribute.": "Vous devez indiquer l'attribut :attribute.", "You must indicate who you want to engage.": "Vous devez indiquer qui vous voulez impliquer.", "You must pick at least one of these roles.": "Vous devez choisir au moins un de ces rôles.", - "You must provide a :attribute.": "Vous devez fournir un :attribute.", "You must select a language.": "Vous devez sélectionner une langue.", "You must select a role for your organization.": "Vous devez sélectionner un rôle pour votre organisation.", "You must select at least one age group you can connect to.": "Vous devez sélectionner au moins un groupe d'âge auprès duquel vous pouvez servir d'intermédiaire.", "You must select at least one age group your organization specifically :represents_or_serves_and_supports.": "Vous devez sélectionner au moins un groupe d'âge que votre organisation :represents_or_serves_and_supports spécifiquement.", "You must select at least one ethno-racial identity you can connect to.": "Vous devez sélectionner au moins une identité ethnoraciale auprès de laquelle vous pouvez servir d'intermédiaire.", "You must select at least one ethno-racial identity your organization specifically :represents_or_serves_and_supports.": "Vous devez sélectionner au moins une identité ethnoraciale spécifique que votre organisation :represents_or_serves_and_supports.", - "You must select at least one gender or sexual identity group.": "Vous devez sélectionner au moins un groupe relatif au genre ou à l'identité sexuelle.", "You must select at least one gender or sexual identity group you can connect to.": "Vous devez sélectionner au moins un groupe d'identité sexuelle ou de genre auprès duquel vous pouvez servir d'intermédiaire.", "You must select at least one gender or sexual identity group your organization specifically :represents_or_serves_and_supports.": "Vous devez sélectionner au moins un groupe d'identité sexuelle ou de genre que votre organisation :represents_or_serves_and_supports.", "You must select at least one Indigenous group you can connect to.": "Vous devez sélectionner au moins un groupe autochtone auprès duquel vous pouvez servir d'intermédiaire.", @@ -2323,6 +2351,11 @@ "You must select at least one option for “Can you connect to people with disabilities, Deaf persons, and\/or their supporters?”": "Vous devez sélectionner au moins une option pour \"Pouvez-vous servir d'intermédiaire auprès des personnes en situation de handicap, des personnes sourdes et\/ou leurs alliés?\"", "You must select at least one option for “Where do the people that you :represent_or_serve_and_support come from?”": "Vous devez sélectionner au moins une option pour « D'où viennent les personnes que vous représentez »", "You must select at least one option for “Where do the people that you can connect to come from?”": "Vous devez sélectionner au moins une option pour « D'où viennent les personnes auprès desquelles vous pouvez servir d'intermédiaire ? »", + "You must select at least one way to attend the meeting.": "", + "You must select a valid :attribute.": "", + "You must select a valid format.": "", + "You must select a valid meeting type.": "", + "You must select a valid role to perform on the website.": "", "You must select one option for “Can you connect to a specific age group or groups?”": "Vous devez sélectionner une option pour « Pouvez-vous servir d'intermédiaire auprès d'un ou de plusieurs groupes d'âge spécifiques ? »", "You must select one option for “Can you connect to people who are First Nations, Inuit, or Métis?”": "Vous devez sélectionner une option pour « Pouvez-vous servir d'intermédiaire auprès de personnes issues des Premières Nations, de personnes Inuit ou Métis ? »", "You must select one option for “Can you connect to people who are marginalized based on gender or sexual identity?”": "Vous devez sélectionner une option pour « Pouvez-vous servir d'intermédiaire auprès de personne marginalisées en raison de leur identité de genre ou sexuelle ? »", @@ -2364,17 +2397,18 @@ "Your agreement has been received for :project. You can now publish your project page and engagement details. Sign in to your account at https:\/\/accessibilityexchange.ca to continue.": "Votre entente a été reçue pour :project. Vous pouvez maintenant publier votre page de projet et les détails de votre consultation. Connectez-vous à votre compte sur https:\/\/accessibilityexchange.ca pour continuer.", "Your areas of interest have been updated.": "Vos centres d'intérêt ont été mis à jour.", "Your bio": "Votre bio", + "Your bio must be provided in at least English or French.": "", "Your communication and consultation preferences have been updated.": "Vos préférences en matière de communication et de consultation ont été mises à jour.", "Your Community Connector has been removed.": "Votre personne facilitatrice communautaire a été supprimée.", "Your consultation preferences": "Vos préférences en matière de consultation", "Your details": "Vos informations", "Your engagement has been created.": "Votre consultation a été créée.", - "Your engagement has been published. [Visit engagement](:url)": "Votre consultation a été publiée. [Voir la consultation](:url)", + "Your engagement has been published.": "Votre consultation a été publiée.", "Your engagement has been updated.": "Votre consultation a été mise à jour.", "Your engagement translations have been updated.": "Les traductions de vos consultations ont été mises à jour.", "You represent that you are of legal age, as set forth in Subsection 3(a), to use the Platform.": "You represent that you are of legal age, as set forth in Subsection 3(a), to use the Platform.", - "Your estimate for **:project**, along with a project agreement for to sign, has been sent to [:contact](mailto::contact).": "Votre devis pour **:project**, ainsi qu'une entente à signer, ont été envoyés à [:contact](mailto::contact).", - "Your estimate for **:project**, along with a project agreement for you to sign, has been sent to [:contact](mailto::contact).": "Votre devis pour **:project**, ainsi qu'une entente à signer ont été envoyés à [:contact](mailto::contact).", + "Your estimate for **:project**, along with a project agreement for to sign, has been sent to <:contact>.": "Votre devis pour **:project**, ainsi qu'une entente à signer, ont été envoyés à <:contact>.", + "Your estimate for **:project**, along with a project agreement for you to sign, has been sent to <:contact>.": "Votre devis pour **:project**, ainsi qu'une entente à signer ont été envoyés à <:contact>.", "Your estimate has been returned": "Votre devis a été retourné", "Your estimate has been returned for :project, along with a project agreement for you to sign. Sign in to your account at https:\/\/accessibilityexchange.ca for further details.": "Votre devis a été renvoyé pour le projet :project, ainsi qu'une etente de projet à signer. Connectez-vous à votre compte sur https:\/\/accessibilityexchange.ca pour plus de détails.", "Your federally regulated organization has been deleted.": "Votre organisation sous réglementation fédérale a été supprimée.", @@ -2396,14 +2430,12 @@ "Your name and your contact information have been shared with :name.": "Votre nom et vos coordonnées ont été partagés avec :name.", "Your notification preferences have been updated.": "Vos préférences de notification ont été mises à jour.", "Your organization has been added to an engagement": "Votre organisation a été ajoutée à une consultation", - "Your organization has been added to the engagement “:engagement”": "Votre organisation a été ajoutée à la consultation « :engagement »", "Your organization has been added to the engagement “:engagement”.": "Votre organisation a été ajoutée à la consultation « :engagement ».", "Your organization has been invited as a :role": "Votre organisation a été invitée en tant que :role", "Your organization has been invited as a :role to :projectable’s :invitationable_type, :invitationable.": "Votre organisation a été invitée en tant que :role au :invitationable_type de :projectable, :invitationable.", "Your organization has been invited to join the :invitationable_type “:invitationable” as a :role.": "Votre organisation a été invitée à rejoindre :invitationable_type « :invitationable »en tant que :role.", "Your organization has been invited to the :invitationable_type \":invitationable\" as a :role on The Accessibility Exchange. Sign in to your account at https:\/\/accessibilityexchange.ca to continue.": "Votre organisation a été invitée au :invitationable_type « :invitationable » en tant que :role sur le Connecteur pour l'accessibilité. Connectez-vous à votre compte à l'adresse https:\/\/accessibilityexchange.ca pour continuer.", "Your organization has been removed from an engagement": "Votre organisation a été retirée d'une consultation", - "Your organization has been removed from the engagement “:engagement”": "Votre organisation a été retirée de la consultation « :engagement »", "Your organization has been removed from the engagement “:engagement”.": "Votre organisation a été retirée de la consultation « :engagement ».", "Your organization’s name": "Nom de votre organisation", "Your organization’s name in either English or French is required.": "Le nom de votre organisation est requis en anglais ou en français.", @@ -2420,6 +2452,7 @@ "Your project has been created.": "Votre projet a été créé.", "Your project has been deleted.": "Votre projet a été supprimé.", "Your projects and engagements": "Vos projets et consultations", + "Your pronouns must be provided in at least English or French.": "", "your public profile will be removed from the platform": "votre profil public sera supprimé de la plateforme", "your public profile will be removed from the website": "votre profil public sera supprimé du site Internet", "Your regulated organization, :name, will be deleted and cannot be recovered. If you still want to delete your regulated organization, please enter your current password to proceed.": "Votre organisme réglementé, :name, sera supprimé et ne pourra pas être récupéré. Si vous souhaitez toujours supprimer votre organisme réglementé, veuillez saisir votre mot de passe actuel pour continuer.", diff --git a/resources/lang/fr/passwords.php b/resources/lang/fr/passwords.php index 97a44f765..0032a373b 100644 --- a/resources/lang/fr/passwords.php +++ b/resources/lang/fr/passwords.php @@ -17,6 +17,6 @@ 'sent' => 'Nous vous avons envoyé par courriel un lien de réinitialisation du mot de passe pour le site Connecteur pour l\'accessibilité. Veuillez vérifier votre courriel.', 'throttled' => 'Veuillez patienter avant de réessayer.', 'token' => 'Ce jeton de réinitialisation du mot de passe n\'est pas valide.', - 'user' => "Nous ne pouvons pas trouver de compte associé à cette adresse courriel.", + 'user' => 'Nous ne pouvons pas trouver de compte associé à cette adresse courriel.', ]; diff --git a/resources/lang/lsq.json b/resources/lang/lsq.json index 1098a9d54..442138e02 100644 --- a/resources/lang/lsq.json +++ b/resources/lang/lsq.json @@ -18,7 +18,7 @@ "**Disclaimer.** All notices, Project Agreements and related documents made available on or through the Platform, either by IRIS, other users, or generated as a third party service on or through the Platform, are not legally reviewed, endorsed or approved by IRIS and are used at your sole risk. We make no representation or warranty concerning the enforceability of any agreements signed or exchanged by electronic means through tools or functions made available on or through the Platform.": "**Disclaimer.** All notices, Project Agreements and related documents made available on or through the Platform, either by IRIS, other users, or generated as a third party service on or through the Platform, are not legally reviewed, endorsed or approved by IRIS and are used at your sole risk. We make no representation or warranty concerning the enforceability of any agreements signed or exchanged by electronic means through tools or functions made available on or through the Platform.", "**Disclosure of Submissions.** You acknowledge and agree that any questions, comments, suggestions, ideas, feedback or other information about the Platform (“Submissions”), provided by you to IRIS are non-confidential and IRIS will be entitled to the unrestricted use and dissemination of these Submissions for any purpose, commercial or otherwise, without acknowledgment or compensation to you.": "**Disclosure of Submissions.** You acknowledge and agree that any questions, comments, suggestions, ideas, feedback or other information about the Platform (“Submissions”), provided by you to IRIS are non-confidential and IRIS will be entitled to the unrestricted use and dissemination of these Submissions for any purpose, commercial or otherwise, without acknowledgment or compensation to you.", "**Entire Agreement.** These Terms constitute the entire agreement between you and IRIS and govern your use of the Platform, superseding any prior agreements between you and IRIS with respect to the Platform. You also may be subject to additional terms and conditions that may apply when you use affiliate or Third Party Services, Third Party Content or third party software.": "**Entire Agreement.** These Terms constitute the entire agreement between you and IRIS and govern your use of the Platform, superseding any prior agreements between you and IRIS with respect to the Platform. You also may be subject to additional terms and conditions that may apply when you use affiliate or Third Party Services, Third Party Content or third party software.", - "**For Cause.** IRIS may, in its sole discretion, immediately terminate these Terms or, without limiting its other rights and remedies, suspend User’s access to the Platform and Services if User fails to comply with any provision of these Terms. In the event that IRIS terminates or suspends your access to the Platform or Services or these Terms under this Section, you understand and agree that you will not receive a refund of, or credit for, any fees paid.": "**For Cause.** IRIS may, in its sole discretion, immediately terminate these Terms or, without limiting its other rights and remedies, suspend User’s access to the Platform and Services if User fails to comply with any provision of these Terms. In the event that IRIS terminates or suspends your access to the Platform or Services or these Terms under this Section, you understand and agree that you will not receive a refund of, or credit for, any fees paid.", + "**For Cause.** IRIS may, in its sole discretion, immediately terminate these Terms or, without limiting its other rights and remedies, suspend User’s access to the Platform and Services if User fails to comply with any provision of these Terms. In the event that IRIS terminates or suspends your access to the Platform or Services or these Terms under this Section, you understand and agree that you will not receive a refund of, or credit for, any fees paid.": "", "**General Practices.** You acknowledge that IRIS may establish general practices and limits concerning use of the Platform, including without limitation the maximum period of time that data or other content, will be retained by the Platform and the maximum storage space that will be allotted on IRIS’ or its partners’, affiliates’, or service providers’ servers on your behalf. You agree that IRIS has no responsibility or liability for the deletion or failure to store any data or other content maintained or uploaded by the Platform. You acknowledge that IRIS reserves the right to terminate accounts that are inactive for an extended period of time. You further acknowledge that IRIS reserves the right to change these general practices and limits at any time, in its sole discretion, with or without notice.": "**General Practices.** You acknowledge that IRIS may establish general practices and limits concerning use of the Platform, including without limitation the maximum period of time that data or other content, will be retained by the Platform and the maximum storage space that will be allotted on IRIS’ or its partners’, affiliates’, or service providers’ servers on your behalf. You agree that IRIS has no responsibility or liability for the deletion or failure to store any data or other content maintained or uploaded by the Platform. You acknowledge that IRIS reserves the right to terminate accounts that are inactive for an extended period of time. You further acknowledge that IRIS reserves the right to change these general practices and limits at any time, in its sole discretion, with or without notice.", "**Governing Law.** These Terms will be governed by the laws of the Province of Ontario without regard to its conflict of law provisions. With respect to any disputes or claims not subject to arbitration, as set forth above, you and IRIS agree to submit to the personal and exclusive jurisdiction of the province of Ontario. The failure of IRIS to exercise or enforce any right or provision of these Terms will not constitute a waiver of such right or provision. Recognizing the global nature of the Internet, you agree to comply with all local rules and laws regarding your use of the Platform, including as it concerns online conduct and acceptable content.": "**Governing Law.** These Terms will be governed by the laws of the Province of Ontario without regard to its conflict of law provisions. With respect to any disputes or claims not subject to arbitration, as set forth above, you and IRIS agree to submit to the personal and exclusive jurisdiction of the province of Ontario. The failure of IRIS to exercise or enforce any right or provision of these Terms will not constitute a waiver of such right or provision. Recognizing the global nature of the Internet, you agree to comply with all local rules and laws regarding your use of the Platform, including as it concerns online conduct and acceptable content.", "**If you select no,** our support line will contact you and arrange for a different way to have your access needs met.": "**If you select no,** our support line will contact you and arrange for a different way to have your access needs met.", @@ -27,13 +27,14 @@ "**Invoices.** IRIS will invoice Project Proponents the annual subscription amount owed to access and use the Platform. Project Proponents hereby agree to pay any undisputed amounts to IRIS within 30 days of such invoice.": "**Invoices.** IRIS will invoice Project Proponents the annual subscription amount owed to access and use the Platform. Project Proponents hereby agree to pay any undisputed amounts to IRIS within 30 days of such invoice.", "**Language.** It is the express wish of the parties hereto that the Terms be drawn up in English. The parties hereto hereby waive any right to use and rely upon any other language.": "**Language.** It is the express wish of the parties hereto that the Terms be drawn up in English. The parties hereto hereby waive any right to use and rely upon any other language.", "**Limitation Period.** You agree that regardless of any statute or law to the contrary, any claim or cause of action arising out of or related to use of the Platform or these Terms must be filed within one (1) year after such claim or cause of action arose or be forever barred. A printed version of this agreement and of any notice given in electronic form will be admissible in judicial or administrative proceedings based upon or relating to this agreement to the same extent and subject to the same conditions as other business documents and records originally generated and maintained in printed form.": "**Limitation Period.** You agree that regardless of any statute or law to the contrary, any claim or cause of action arising out of or related to use of the Platform or these Terms must be filed within one (1) year after such claim or cause of action arose or be forever barred. A printed version of this agreement and of any notice given in electronic form will be admissible in judicial or administrative proceedings based upon or relating to this agreement to the same extent and subject to the same conditions as other business documents and records originally generated and maintained in printed form.", - "**Modification.** We reserve the right, at our sole discretion, to change or modify portions of these Terms at any time. If we do this, we will post the changes on **[[:url](:url)]** and will indicate at the top of the Terms page the date these terms were last revised. We will also endeavor to notify you, either through the Platform user interface, in an email notification or through other reasonable means. Any such changes will become effective no earlier than fourteen (14) days after they are posted, except that changes addressing new functions of the Platform or changes made for legal reasons will be effective immediately. Your continued use of the Platform after the date any such changes become effective constitutes your acceptance of the new Terms.": "**Modification.** We reserve the right, at our sole discretion, to change or modify portions of these Terms at any time. If we do this, we will post the changes on **[[:url](:url)]** and will indicate at the top of the Terms page the date these terms were last revised. We will also endeavor to notify you, either through the Platform user interface, in an email notification or through other reasonable means. Any such changes will become effective no earlier than fourteen (14) days after they are posted, except that changes addressing new functions of the Platform or changes made for legal reasons will be effective immediately. Your continued use of the Platform after the date any such changes become effective constitutes your acceptance of the new Terms.", + "**Modification.** We reserve the right, at our sole discretion, to change or modify portions of these Terms at any time. If we do this, we will post the changes on **[<:url>]** and will indicate at the top of the Terms page the date these terms were last revised. We will also endeavor to notify you, either through the Platform user interface, in an email notification or through other reasonable means. Any such changes will become effective no earlier than fourteen (14) days after they are posted, except that changes addressing new functions of the Platform or changes made for legal reasons will be effective immediately. Your continued use of the Platform after the date any such changes become effective constitutes your acceptance of the new Terms.": "", "**Modification of the Platform.** IRIS reserves the right to modify the form and nature of the Platform, or discontinue, temporarily or permanently, the Platform (or any part thereof) with or without notice. You agree that IRIS will not be liable to you or to any third party for any modification, suspension or discontinuance of the Platform. IRIS may also, in its sole discretion, restrict access to the website for any reason.": "**Modification of the Platform.** IRIS reserves the right to modify the form and nature of the Platform, or discontinue, temporarily or permanently, the Platform (or any part thereof) with or without notice. You agree that IRIS will not be liable to you or to any third party for any modification, suspension or discontinuance of the Platform. IRIS may also, in its sole discretion, restrict access to the website for any reason.", - "**Notices.** All notices or approvals required or permitted under these Terms will be in writing and delivered by email transmission, and in each instance will be deemed given upon receipt. All notices or approvals will be sent to IRIS at **[[:email](:mailto)]**. Notices to you may be made via either email or regular mail. The Platform may also provide notices to you of changes to these Terms or other matters by displaying notices or links to notices generally on the Platform.": "**Notices.** All notices or approvals required or permitted under these Terms will be in writing and delivered by email transmission, and in each instance will be deemed given upon receipt. All notices or approvals will be sent to IRIS at **[[:email](:mailto)]**. Notices to you may be made via either email or regular mail. The Platform may also provide notices to you of changes to these Terms or other matters by displaying notices or links to notices generally on the Platform.", + "**Notices.** All notices or approvals required or permitted under these Terms will be in writing and delivered by email transmission, and in each instance will be deemed given upon receipt. All notices or approvals will be sent to IRIS at **[<:email>]**. Notices to you may be made via either email or regular mail. The Platform may also provide notices to you of changes to these Terms or other matters by displaying notices or links to notices generally on the Platform.": "", "**Other Termination.** IRIS reserves the right to terminate these Terms, suspend or terminate User’s access to the Platform and\/or any Services with or without notice, or deactivate or delete your account including all related information to User for any reason, including:": "**Other Termination.** IRIS reserves the right to terminate these Terms, suspend or terminate User’s access to the Platform and\/or any Services with or without notice, or deactivate or delete your account including all related information to User for any reason, including:", "**Password and Security.** You are responsible for maintaining the confidentiality of your Registration Information (and the Registration Information of related usernames) and are fully responsible for any and all activities that occur under your Personal Contact Information. You agree to (a) immediately notify IRIS of any unauthorized use of your Registration Information or any other breach of security, and (b) ensure that you log out from the Platform at the end of each session when accessing the Platform. IRIS will not be liable for any loss or damage arising from your failure to comply with this Subsection 3(b). Further, you agree not to allow third parties to access the Platform or IRIS’ website through your username and password.": "**Password and Security.** You are responsible for maintaining the confidentiality of your Registration Information (and the Registration Information of related usernames) and are fully responsible for any and all activities that occur under your Personal Contact Information. You agree to (a) immediately notify IRIS of any unauthorized use of your Registration Information or any other breach of security, and (b) ensure that you log out from the Platform at the end of each session when accessing the Platform. IRIS will not be liable for any loss or damage arising from your failure to comply with this Subsection 3(b). Further, you agree not to allow third parties to access the Platform or IRIS’ website through your username and password.", "**Payments.** Any payments between Users are for services provided by Consultants or another party separate from IRIS. Payment amounts are determined solely between Users. While IRIS provides the Platform through which activities are facilitated, IRIS is not liable for, party to, or responsible for those transactions even though IRIS may receive a commission from such payments and assist in the administration of remuneration from Project Proponents to Consultants. User agrees that issues or concerns, including non-receipt of payment, any discrepancy in payment amounts, or delays in payment, will be addressed by contacting the relevant User or third party.": "**Payments.** Any payments between Users are for services provided by Consultants or another party separate from IRIS. Payment amounts are determined solely between Users. While IRIS provides the Platform through which activities are facilitated, IRIS is not liable for, party to, or responsible for those transactions even though IRIS may receive a commission from such payments and assist in the administration of remuneration from Project Proponents to Consultants. User agrees that issues or concerns, including non-receipt of payment, any discrepancy in payment amounts, or delays in payment, will be addressed by contacting the relevant User or third party.", "**Platform Access.** In order to use the Platform, you must obtain Internet access, either directly or through devices that access web-based content and pay any service fees associated with such access. You are solely responsible for paying such fees. In addition, you must provide all equipment necessary to make such Internet connection, including a computer and modem or other access device. You are solely responsible for providing such equipment. You acknowledge that while IRIS may not currently have set a fixed upper limit on the number of transmissions you may send or receive through the Platform or on the amount of storage space used for the provision of the Platform’s services, such fixed upper limits may be set by IRIS at any time, at IRIS’ discretion.": "**Platform Access.** In order to use the Platform, you must obtain Internet access, either directly or through devices that access web-based content and pay any service fees associated with such access. You are solely responsible for paying such fees. In addition, you must provide all equipment necessary to make such Internet connection, including a computer and modem or other access device. You are solely responsible for providing such equipment. You acknowledge that while IRIS may not currently have set a fixed upper limit on the number of transmissions you may send or receive through the Platform or on the amount of storage space used for the provision of the Platform’s services, such fixed upper limits may be set by IRIS at any time, at IRIS’ discretion.", + "**Please respond by :signup_by_date.**": "**Veuillez répondre avant le :signup_by_date.**", "**Preservation of Content.** You acknowledge and agree that IRIS may preserve User Content and may also disclose User Content if required to do so by law or in the good faith belief that such preservation or disclosure is reasonably necessary to: (a) comply with legal process, applicable laws or government requests; (b) enforce these Terms; (c) respond to claims that any content violates the rights of third parties; or (d) protect the rights, property, or personal safety of IRIS, its users and the public.": "**Preservation of Content.** You acknowledge and agree that IRIS may preserve User Content and may also disclose User Content if required to do so by law or in the good faith belief that such preservation or disclosure is reasonably necessary to: (a) comply with legal process, applicable laws or government requests; (b) enforce these Terms; (c) respond to claims that any content violates the rights of third parties; or (d) protect the rights, property, or personal safety of IRIS, its users and the public.", "**Projects and Project Agreements.** IRIS is not a party to any agreements, transactions, projects or arrangements (“**Project Agreements**”) entered into between Project Proponents and Consultants unless explicitly agreed to. While IRIS provides the Platform and Services enabling you to engage in Projects and facilitate the payment for certain services, IRIS is not involved in any way in the Project other than through the provision of the Services, nor is IRIS party to the Project Agreements, except for any transactions for services expressly entered into between IRIS and Users. You understand and agree that IRIS will not be liable under any circumstances for the content or enforcement of any Project Agreement between you and another User, as applicable. You further understand and agree that while IRIS requires Users to submit true, accurate, current and complete information, IRIS cannot guarantee the qualifications of any Consultant or the success of any Project.": "**Projects and Project Agreements.** IRIS is not a party to any agreements, transactions, projects or arrangements (“**Project Agreements**”) entered into between Project Proponents and Consultants unless explicitly agreed to. While IRIS provides the Platform and Services enabling you to engage in Projects and facilitate the payment for certain services, IRIS is not involved in any way in the Project other than through the provision of the Services, nor is IRIS party to the Project Agreements, except for any transactions for services expressly entered into between IRIS and Users. You understand and agree that IRIS will not be liable under any circumstances for the content or enforcement of any Project Agreement between you and another User, as applicable. You further understand and agree that while IRIS requires Users to submit true, accurate, current and complete information, IRIS cannot guarantee the qualifications of any Consultant or the success of any Project.", "**Registration.** If you choose to register for the Platform, you agree to provide and maintain true, accurate, current and complete information about yourself as prompted by the Platform’s registration form to create your user account, including your name or the name of the organization you represent, email address, password and phone number (“**Personal Contact Information**”). If you are under 13 years of age, you are not authorized to use the Platform, with or without registering. In addition, if you are under 18 years old, you may use the Platform, with or without registering, only with the approval and supervision of your parent or guardian. In addition, you may also provide certain additional information in order to enable the Platform to match you to appropriate Projects, including information pertaining to location, identity, experience of disability, citizenship status (“**Demographic Information**”). If you provide any Personal Contact Information or Demographic Information that is untrue, inaccurate, not current, or incomplete, or if IRIS has a reasonable ground to suspect that such information is untrue, inaccurate, not current, or incomplete, IRIS has the right, in its sole discretion, to suspend or terminate your account and refuse any and all current or future use of the Platform (or any portion thereof). If you invite anyone under the age of 18 (an “**Underaged Person**”) to use the Platform, you agree to be solely responsible for the Underaged Person’s use of same.": "**Registration.** If you choose to register for the Platform, you agree to provide and maintain true, accurate, current and complete information about yourself as prompted by the Platform’s registration form to create your user account, including your name or the name of the organization you represent, email address, password and phone number (“**Personal Contact Information**”). If you are under 13 years of age, you are not authorized to use the Platform, with or without registering. In addition, if you are under 18 years old, you may use the Platform, with or without registering, only with the approval and supervision of your parent or guardian. In addition, you may also provide certain additional information in order to enable the Platform to match you to appropriate Projects, including information pertaining to location, identity, experience of disability, citizenship status (“**Demographic Information**”). If you provide any Personal Contact Information or Demographic Information that is untrue, inaccurate, not current, or incomplete, or if IRIS has a reasonable ground to suspect that such information is untrue, inaccurate, not current, or incomplete, IRIS has the right, in its sole discretion, to suspend or terminate your account and refuse any and all current or future use of the Platform (or any portion thereof). If you invite anyone under the age of 18 (an “**Underaged Person**”) to use the Platform, you agree to be solely responsible for the Underaged Person’s use of same.", @@ -60,19 +61,15 @@ "1 participant left :engagement": "1 personne participante à quitté :engagement", "1 person declined their invitation for :engagement": "1 personne a refusé l'invitation à rejoindre :engagement", "1 person declined your invitation for :engagement": "1 personne a refusé votre invitation à rejoindre :engagement", - "1. Create an account, if you don’t already have one.": "1. Créez un compte, si vous n'en avez pas déjà un.", - "1. Send the estimate and agreement to [:contact](mailto::contact).": "1. Envoyez le devis et l'entente à [:contact](mailto::contact).", "1. Sign up and share more about your organization": "1. Inscrivez-vous et présentez votre organisation", "1. Sign up for the website and build your Accessibility Consultant profile": "1. Inscrivez-vous sur le site et créez votre profil de personne consultante en matière d'accessibilité", "1. Sign up for the website and build your Community Connector profile": "1. Inscrivez-vous sur le site et créez votre profil de personne facilitatrice communautaire", "1. Sign up for the website and share some information about your organization": "1. Inscrivez-vous sur le site et partagez des informations sur votre organisation", "1. Sign up for the website and share some information about yourself": "1. Inscrivez-vous sur le site et partagez des informations sur vous-même", - "2. Accept your invitation by clicking the button below.": "2. Acceptez votre invitation en cliquant sur le bouton ci-dessous.", "2. Businesses and government can reach out to hire you": "2. Les entreprises et le gouvernement peuvent vous solliciter pour vous embaucher", "2. Find an engagement or get matched to one": "2. Find an engagement or get matched to one", "2. Find projects that are looking for a Community Connector": "2. Find projects that are looking for a Community Connector", "2. Find projects that are looking for an Accessibility Consultant": "2. Find projects that are looking for an Accessibility Consultant", - "2. Mark the estimate as \"returned\" by visiting the link below and searching for :projectable.": "2. Marquez le devis comme « retourné » en visitant le lien ci-dessous et en recherchant :projectable.", "2. Share more about your projects and who you are looking to engage": "2. Share more about your projects and who you are looking to engage", "2SLGBTQIA+ people": "Personnes 2SLGBTQIA+", "3. Work directly with businesses and governments": "3. Work directly with businesses and governments", @@ -92,7 +89,6 @@ ":count engagements": ":count interactions", ":count members of your organization": ":count membres de votre organisation", ":count more unread": ":count autres non-lus", - ":count participants confirmed": ":count personnes participantes confirmées", ":count projects": ":count projets", ":count projects match your applied filters.": ":count projets répondent aux critères sélectionnés.", ":count results for": ":count résultats pour", @@ -106,6 +102,7 @@ ":engagement time changed": "L'heure pour :engagement a changée", ":engagement time confirmed": "L'heure pour :engagement a été confirmée", ":label (:locale)": ":label (:locale)", + ":locality, :region": "", ":model is already translatable into :language.": ":model est déjà traduit en :language.", ":model was not translatable into :language.": ":model n'était pas traduisible en :language.", ":name has accepted your invitation to join your organization.": ":name a accepté votre invitation à rejoindre votre organisation.", @@ -151,6 +148,7 @@ "accepted formats": "formats acceptés", "Accept Invitation": "Accepter l'invitation", "Accept invitation": "Accepter l'invitation", + "Accept your invitation by clicking the button below.": "Acceptez votre invitation en cliquant sur le bouton ci-dessous.", "Access :language version": "Accéder à la version en :language", "ACCESS AND USE OF THE PLATFORM": "ACCESS AND USE OF THE PLATFORM", "Access governments and businesses who are looking for a Community Connector to help with a project.": "Accéder aux organisations gouvernementales et aux entreprises à la recherche d'une personne facilitatrice communautaire pouvant aider pour un projet.", @@ -161,12 +159,12 @@ "Accessibility and inclusion links": "Liens sur les mesures d'accessibilité et d'inclusion", "accessibility and inclusion link title": "titre du lien sur les mesures d'accessibilité et d'inclusion", "Accessibility Consultant": "Personne consultante en matière d'accessibilité", - "Accessibility consultant application": "", + "Accessibility consultant application": "Accessibility consultant application", "Accessibility Consultants": "Personnes consultantes en matière d'accessibilité", "Accessibility Consultants could help you design consultations that are inclusive and accessible.": "Les personnes consultantes en matière d'accessibilité peuvent vous aider à concevoir des consultations qui soient inclusives et accessibles.", "Accessibility Consultants — Individual": "Personne consultante en matière d'accessibilité - Individu", "Accessibility preferences": "Préférences d'accessibilité", - "Accessibility project by :projectable": "Projet en matière d'accessibilité par :projectable", + "Accessibility project by [:projectable](:url)": "Projet en matière d'accessibilité par [:projectable](:url)", "Accessible consultation": "Consultation accessible", "Access more resources": "Accéder à plus de ressources", "Access need": "Besoin en matière d'accessibilité", @@ -208,6 +206,7 @@ "Additional information to join:": "Information supplémentaire à joindre :", "Additional needs or concerns": "Besoins ou préoccupations supplémentaires", "Add language": "Ajouter une langue", + "Add link": "", "Add meeting": "Ajouter une réunion", "Add new meeting": "Ajouter une nouvelle réunion", "Add participant": "Ajouter une personne participante", @@ -225,6 +224,7 @@ "After the consultation follow up with participants to share next steps and your organization’s plan for implementing their feedback. This can help foster confidence in your commitment, and an ongoing relationship with your participants, who can be involved in future updates of your accessibility plan.": "Après la consultation, assurez un suivi auprès des personnes participantes pour leur faire part des prochaines étapes et du plan de votre organisation pour mettre en œuvre leurs commentaires. Cela peut contribuer à renforcer la confiance envers votre initiative et à établir une relation durable avec vos participants, lesquels pourraient éventuellement participer aux futures mises à jour de votre plan d'accessibilité.", "Age": "Âge", "Age group": "Groupe d'âge", + "age group": "", "Age groups": "Groupes d'âge", "Age groups they can connect to": "Tranches d'âge auprès desquelles vous pouvez agir comme intermédiaire", "Agreement pending": "Entente en attente", @@ -241,14 +241,15 @@ "All the training I am doing or have done.": "Toutes les formations que je fais ou que j'ai faites.", "Alternative text for images": "Texte de remplacement pour les images", "Although it is not compulsory, we highly recommend that you include English and French translations of your content.": "Although it is not compulsory, we highly recommend that you include English and French translations of your content.", - "A meeting title must be provided in at least one language.": "Un titre de réunion doit être fourni dans au moins une langue.", + "A meeting title must be provided in at least English or French.": "", "American Sign Language (ASL)": "American Sign Language (ASL)", "Analysis of collected information": "Analyse des informations recueillies", "Analyze the outcomes of your consultation with people who are in the context of disability and Deaf groups.": "Analyser les résultats de votre consultation avec des personnes faisant partie de groupes de personnes en situation de handicap et de personnes sourdes.", "An approximate response time must be provided in at least one language.": "Un temps de réponse approximatif doit être indiqué dans au moins une langue.", - "An engagement description must be provided in at least one language.": "Une description de la consultation doit être fournie dans au moins une langue.", + "An engagement description must be provided in at least English or French.": "", "An engagement involves a group of people participating in one set way (for example, a focus group or a survey). An engagement like a focus group can have multiple meetings.": "Une consultation implique un groupe de personnes participant d'une manière donnée (par exemple, un groupe de discussion ou un sondage). Une consultation, comme un groupe de discussion, peut se dérouler sur plusieurs réunions.", "An engagement involves a group of people participating in one set way (for example, a focus group or survey).": "Une consultation implique un groupe de personnes participant d'une manière donnée (par exemple, un groupe de discussion ou un sondage).", + "An engagement name must be provided in at least English or French.": "", "An engagement name must be provided in at least one language.": "Le nom de la consultation doit être fourni dans au moins une langue.", "An engagement with this name already exists.": "Une consultation avec ce nom existe déjà.", "a network and is able to conduct effective outreach to people with disabilities and Deaf persons in particular geographic communities and social groups (for example, Indigenous communities).": "un réseau et est capable de mener des actions de sensibilisation efficaces auprès des personnes en situation de handicap et des personnes sourdes dans des communautés géographiques et des groupes particuliers (par exemple, les communautés autochtones).", @@ -258,8 +259,8 @@ "Any group": "Any group", "Any of the following could be Consultation Participants:": "Chacune des catégories de personnes suivantes peut participer aux consultations : ", "ANY SERVICE CONTENT DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE PLATFORM IS DONE AT YOUR OWN DISCRETION AND RISK AND YOU WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR LOSS OF DATA THAT RESULTS FROM THE DOWNLOAD OF ANY SUCH MATERIAL.": "TOUT CONTENU TÉLÉCHARGÉ OU OBTENU DE TOUTE AUTRE MANIÈRE PAR L'UTILISATION DE LA PLATEFORME SE FAIT À VOTRE PROPRE DISCRÉTION ET À VOS RISQUES ET VOUS SEREZ SEUL RESPONSABLE DE TOUT DOMMAGE À VOTRE SYSTÈME INFORMATIQUE OU DE TOUTE PERTE DE DONNÉES RÉSULTANT DU TÉLÉCHARGEMENT D'UN TEL MATÉRIEL.", - "Application for Accessibility Consultant": "", - "Application for Community Connector": "", + "Application for Accessibility Consultant": "Application for Accessibility Consultant", + "Application for Community Connector": "Application for Community Connector", "Apply filter": "Appliquer le filtre", "Apply filters": "Appliquer les filtres", "Approval status": "Approval status", @@ -279,6 +280,7 @@ "Areas of interest": "Domaines d'intérêt", "Areas of your organization this project will impact": "Secteurs de votre organisation sur lesquels ce projet aura un impact", "Areas where the organization serves": "Régions où l'organisation est active", + "area type": "", "Are you able to attend consultations in real-time, or do you prefer to receive the materials (ex. questions, discussion topics) and record your responses at your own pace?": "Êtes-vous en mesure d'assister aux consultations en temps réel, ou préférez-vous recevoir le matériel (ex. questions, sujets de discussion) et enregistrer vos réponses à votre propre rythme ?", "Are you looking for individuals in specific provinces or territories or specific cities or towns?": "Cherchez-vous des personnes dans des provinces ou territoires spécifiques ou dans des villes ou villages spécifiques ?", "Are you sure you want to block :blockable?": "Voulez-vous vraiment bloquer :blockable?", @@ -308,7 +310,7 @@ "At present, you have no unread notifications.": "Vous n'avez pas de notifications non lues.", "Attend an interview in real time.": "Assister à une entrevue en direct.", "Attend an orientation session": "Assister à une séance d'orientation", - "Attended": "", + "Attended": "Attended", "Audio": "Audio", "Audio description for visuals": "Description audio pour les éléments visuels", "Audio versions of engagement documents": "Versions audio des documents de consultation", @@ -369,7 +371,6 @@ "Browse for an Community Connector": "Chercher une personne facilitatrice communautaire", "Browse individuals": "Parcourir les individus", "Browse our resources": "Parcourir nos ressources", - "browse projects": "parcourir les projets", "Browse regulated organizations": "Parcourir les organisations sous réglementation fédérale", "Browse resources by :creator": "Parcourir les ressources par :creator", "Browse resources for Community Connectors and Accessibility Consultants": "Parcourir les ressources pour les personnes facilitatrices communautaires et pour les personnes consultantes en matière d'accessibilité", @@ -383,7 +384,7 @@ "by": "par", "By clicking to accept the Terms or otherwise using the Platform you agree to be bound by these Terms.": "En acceptant les conditions ou en utilisant la plateforme, vous acceptez d'être lié par ces conditions.", "By selecting Consultation Participant as your only role, your role no longer will include the Accessibility Consultant or Community Connector roles. You do not need a profile to be a Consultation Participant, so your profile will be unpublished and saved, and will no longer be visible by other members of The Accessibility Exchange. However, if you edit your role to add the Accessibility Consultant or Community Connector roles again, you will be able to publish your profile again all your saved information will be restored.": "En choisissant comme seul rôle celui de personne participante à une consultation, votre rôle ne comprendra plus les rôles de personne consultante en matière d'accessibilité ou de personne facilitatrice communautaire. Vous n'avez pas besoin d'un profil pour être une personne participante à des consultations. Votre profil sera donc dépublié et enregistré et ne sera plus visible par les autres membres du Connecteur pour l'accessibilité. Toutefois, si vous modifiez votre rôle pour ajouter à nouveau les rôles de personne consultante en matière d'accessibilité ou de facilitatrice communautaire, vous pourrez publier à nouveau votre profil et toutes vos informations sauvegardées seront restaurées.", - "Call or :vrs": "Appel ou :vrs", + "Call or :!vrs": "Appel ou :!vrs", "Call our support line at :number": "Appelez notre ligne d'assistance au :number", "Cancel": "Annuler", "Cancel engagement": "Annuler la consultation", @@ -407,7 +408,7 @@ "Central Standard or Daylight Time": "Heure normale ou avancée du centre", "Central Standard Time**": "Heure normale du centre**", "Change colour contrast, turn on text to speech, and turn on Sign Language videos.": "Modifier le contraste des couleurs, activer la synthèse vocale et activer les vidéos en langue des signes.", - "Change colour contrast and turn on text to speech.": "", + "Change colour contrast and turn on text to speech.": "Change colour contrast and turn on text to speech.", "Change email": "Changer l'adresse courriel", "Change language": "Changer la langue", "Change login email": "Changer l'identifiant courriel", @@ -431,11 +432,11 @@ "Civil society organization": "Organisation de la société civile", "Civil society organizations": "Organisation de la société civile", "Clear filters": "Réinitialiser les filtres", - "Click the link above to sign up for an orientation session. (This will lead you to an external site, and when you’re done it will bring you back automatically.)": "", + "Click the link above to sign up for an orientation session. (This will lead you to an external site, and when you’re done it will bring you back automatically.)": "Click the link above to sign up for an orientation session. (This will lead you to an external site, and when you’re done it will bring you back automatically.)", "Cluster": "Cluster", "Co-design": "Co-conception", "Cognitive disabilities": "Déficiences cognitives", - "Collaboration Preferences": "", + "Collaboration Preferences": "Collaboration Preferences", "collect, aggregate, copy, scrape, duplicate, display or derivatively use the Platform;": "collect, aggregate, copy, scrape, duplicate, display or derivatively use the Platform;", "Collection": "Bibliothèque", "Collections this resource appears in": "Bibliothèques dans lesquelles cette ressource apparaît", @@ -451,14 +452,14 @@ "Communities your organization :represents_or_serves_and_supports": "Communautés que votre organisation :represents_or_serves_and_supports", "Communities your organization serves": "Communautés desservies par votre organisation", "Community Connector": "Personne facilitatrice communautaire", - "Community connector application": "", + "Community connector application": "Community connector application", "Community Connectors": "Personnes facilitatrices communautaires", "Community Connectors and Accessibility Consultants": "Personnes facilitatrices communautaires et personnes consultantes en matière d'accessibilité", "Community Connectors could help you connect with groups that may be hard to reach otherwise.": "Les personnes facilitatrices communautaires peuvent vous aider à entrer en contact avec des groupes qui seraient autrement difficiles à rejoindre.", "Community Connectors — Individual": "Personne facilitatrice communautaire - Individu", "Community organization": "Organisation communautaire", "Community Organization": "Organisation communautaire", - "Community organization orientation": "", + "Community organization orientation": "Community organization orientation", "Community organizations": "Organisations communautaires", "Community Organizations": "Organisations communautaires", "Community organizations could provide research, recommendations, and also support the interpretation of your consultation results to deepen your understanding of Deaf and disability access.": "Les organisations communautaires sont susceptibles de vous fournir des recherches, des recommandations, mais aussi de vous aider à interpréter les résultats de votre consultation afin d'approfondir votre compréhension des questions relatives à l'accessibilité pour les personnes sourdes et les personnes en situation de handicap.", @@ -531,6 +532,7 @@ "Create account": "Créer un compte", "Create Account": "Créer un compte", "Create an account": "Créer un compte", + "Create an account, if you don’t already have one.": "Créez un compte, si vous n'en avez pas déjà un.", "Create and implement inclusive and accessible consultations for your organization": "Créer et mettre en œuvre des consultations inclusives et accessibles pour votre organisation", "Create an engagement": "Créer une consultation", "Create a new engagement": "Créer une nouvelle consultation", @@ -565,6 +567,7 @@ "Date": "Date", "Date added": "Date ajoutée", "Date created": "Date de création", + "date for materials to be sent by": "", "Date of training": "Date de la formation", "Date range": "Plage de dates", "Dates": "Dates", @@ -653,7 +656,7 @@ "East Asian": "Asiatique de l'Est", "Eastern Standard or Daylight Time": "Heure normale de l'Est ou heure avancée de l'Est", "Edit": "Modifier", - "Edit :section": "Modifier :section", + "Edit :!section": "Modifier :!section", "Edit :user’s role": "Modifier le rôle de :user", "Editable PDF document": "Document PDF modifiable", "Edit engagement": "Modifier la consultation", @@ -716,6 +719,7 @@ "Estimates and agreements": "Devis et ententes", "Estimate status": "Statut du devis", "Ethno-racial groups": "Communautés ethniques et racisées", + "ethnoracial group": "", "Ethnoracial group they can connect to": "Communautés ethniques et racisées auprès desquelles ils peuvent servir d'intermédiaire", "Ethnoracial identity": "Identité ethnoraciale", "ethnoracial identity": "identité ethnoraciale", @@ -733,12 +737,12 @@ "Federally Regulated Organization": "Organisation sous réglementation fédérale", "Federally regulated organization name": "Nom de l'organisation sous réglementation fédérale", "federally regulated organization name": "nom de l'organisation sous réglementation fédérale", - "Federally regulated organization orientation": "", + "Federally regulated organization orientation": "Federally regulated organization orientation", "federally regulated organizations": "organisations sous réglementation fédérale", "Federally regulated organizations": "Organisations sous réglementation fédérale", "Federally Regulated private sector": "Federally Regulated private sector", "Feel free to self-identify your experiences of disability, if you feel it is relevant to your work.": "N'hésitez pas à faire part de vos expériences en matière de handicap, si vous pensez que cela est pertinent pour votre travail.", - "Fill out and return your application": "", + "Fill out and return your application": "Fill out and return your application", "Filters": "Filtres", "Find a Community Connector": "Trouver une personne facilitatrice communautaire", "Find a community connector to help you recruit participants.": "Trouver une personne facilitatrice communautaire pouvant aider à trouver des personnes participantes.", @@ -747,6 +751,7 @@ "Find learning materials, best practices, and variety of tools to help you throughout the consultation process.": "Supports d'apprentissage, meilleures pratiques et une variété d'outils pour vous aider tout au long du processus de consultation.", "Find people with disabilities, Deaf people and community organizations (for example, disability or other relevant civil society organizations, like Indigenous groups), to consult with on your accessibility project.": "Trouvez des personnes en situation de handicap, des personnes sourdes et des organisations communautaires (par exemple, des organisations de personnes en situation de handicap ou d'autres organisations pertinentes de la société civile, comme les groupes autochtones), à consulter dans le cadre de votre projet en matière d'accessibilité.", "First language": "Première langue", + "first language": "", "First Nations": "Premières Nations", "flexible, please contact us if you need to use another software": "flexible, veuillez nous contacter si vous souhaitez utiliser un autre logiciel", "Focus group": "Groupe de discussion", @@ -800,6 +805,7 @@ "Gender neutral, barrier-free washrooms": "Toilettes mixtes et accessibles", "Gender neutral washroom": "Salle de bain non genrée", "Gender non-conforming people": "Personnes non-conformes au genre", + "gender or sexual identity group": "", "GENERAL": "DISPOSITIONS GÉNÉRALES", "General": "Général", "General access needs": "Besoins généraux en matière d'accessibilité", @@ -808,7 +814,7 @@ "Get help": "Obtenir de l'aide", "Get input for your projects": "Obtenez de la rétroaction pour vos projets", "Get input on your accessibility projects": "Obtenez de la rétroaction pour vos projets en matière d'accessibilité", - "Getting started": "", + "Getting started": "Getting started", "Gift card": "Carte-cadeau", "Glossary": "Glossaire", "Google Meet": "Google Meet", @@ -851,6 +857,7 @@ "House of Commons, Senate, Library of Parliament, Parliamentary Protective Service": "House of Commons, Senate, Library of Parliament, Parliamentary Protective Service", "How can you help a regulated organization?": "Comment pouvez-vous aider les organisations réglementées ?", "how communities will be impacted": "comment les communautés seront touchées", + "How does being a **:role** work?": "Qu'est-ce qu'être un-e **:role** représente?", "How does being a :role work?": "Qu'est-ce qu'être un-e :role représente?", "How does being an :role work?": "Qu'est-ce qu'être un-e :role représente?", "How does getting input for your projects work?": "Comment fonctionne la collecte de commentaires pour vos projets ?", @@ -882,6 +889,7 @@ "Ideally, an Accessibility Consultant has:": "Dans l'idéal, une personne consultante en matière d'accessibilité possède :", "Ideally a Community Connector has:": "Dans l'idéal, une personne facilitatrice communautaire possède :", "Ideal number of participants": "Nombre idéal de personnes participantes", + "ideal number of participants": "", "Identities": "Identités", "If anything about your projects or engagements have changed, please send a new estimate request.": "Si un élément de vos projets ou consultations a changé, veuillez envoyer une nouvelle demande de devis.", "If a Sign Language video translation is available, you will see a button in line with the website content. Pressing that button will load the Sign Language video.": "Si une traduction vidéo en langue des signes est disponible, vous verrez un bouton en ligne avec le contenu du site Internet. En appuyant sur ce bouton, la vidéo en langue des signes sera chargée.", @@ -889,14 +897,17 @@ "if IRIS is transitioning to no longer providing the Platform to users in the region or province in which you reside or from which you use the Platform; or": "if IRIS is transitioning to no longer providing the Platform to users in the region or province in which you reside or from which you use the Platform; or", "If more than one of the following applies to you, you will need to register separate accounts.": "Si plus qu'une des conditions suivantes s'applique à vous, vous devrez créer des comptes séparés.", "if the provision of the Platform to you by IRIS is, in IRIS’ opinion, no longer commercially or financially viable.": "if the provision of the Platform to you by IRIS is, in IRIS’ opinion, no longer commercially or financially viable.", - "If you already have an account, please :sign_in": "Si vous avez déjà un compte, veuillez :sign_in", + "If you already have an account, please [sign in](:url).": "Si vous avez déjà un compte, veuillez [vous identifier](:url).", "IF YOU ARE DISSATISFIED WITH ANY PORTION OF THE PLATFORM OR WITH THESE TERMS OF SERVICE, YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USE OF THE PLATFORM.": "IF YOU ARE DISSATISFIED WITH ANY PORTION OF THE PLATFORM OR WITH THESE TERMS OF SERVICE, YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USE OF THE PLATFORM.", + "If you are interested in engaging a specific :attribute, you must select at least one.": "", + "If you are looking for a group with a specific experience or identity, you must select which type of experience or identity you are looking for.": "", + "If you are looking for a specific :attribute, you must select at least one.": "", "If you are seeking a Community Connector for this engagement, there are a few ways to find one:": "Si vous recherchez une personne facilitatrice communautaire pour cette consultation, plusieurs moyens s'offrent à vous :", "If you are thinking of working with a specific group, for example, Indigenous people with disabilities, it would be a good idea to hire an Accessibility Consultant from that community.": "Si vous envisagez de travailler avec un groupe spécifique, par exemple, des personnes en situation de handicap issues de communautés autochtones, il pourrait être avantageux d'engager une personne consultante en matière d'accessibilité issue de cette communauté.", "If you delete your account:": "Si vous supprimez votre compte :", "If you did not expect to receive an invitation to this :invitationable_type, you may discard this email.": "Si vous ne vous attendiez pas à recevoir une invitation pour ce\/cette :invitationable_type, vous pouvez ignorer ce courriel.", "If you have an additional access need you must describe it.": "Si vous avez des besoins additionnels en matière d'accessibilité, veuillez les décrire.", - "If you have any questions, you understand that you may contact IRIS via email at **[[:email](:mailto)]**.": "If you have any questions, you understand that you may contact IRIS via email at **[[:email](:mailto)]**.", + "If you have any questions, you understand that you may contact IRIS via email at <:email>.": "", "If you have forgotten your password, please enter the email address that you used to sign up for The Accessibility Exchange. We will email you a link that will let you choose a new password.": "Si vous avez oublié votre mot de passe, veuillez entrer l'adresse courriel que vous avez utilisée pour vous inscrire au Connecteur pour l'accessibilité. Nous vous enverrons par courriel un lien qui vous permettra de choisir un nouveau mot de passe.", " if you need this in another language.": " si vous avez besoin de soutien dans une autre langue.", "If your organization is offering services as a **Community Connector**, regulated organizations may ask you to assist them in connecting to your primary constituencies. If your organization is offering services as a **Consultation Participant**, regulated organizations may ask you to represent this group’s point of view in consultations.": "Si votre organisation offre des services en tant que **Community Connector**, les organisations réglementées peuvent vous demander de les aider à établir des liens avec les populations les intéressant le plus. Si votre organisation offre des services en tant que **Consultation Participant**, les organisations réglementées peuvent vous demander de représenter le point de vue de ce ou ces groupes lors des consultations.", @@ -915,12 +926,14 @@ "Includes size, limb, and facial differences": "Comprend les différences de taille, les différences de membres et les différences faciales", "Includes traumatic brain injury, memory difficulties, dementia": "Comprend les lésions cérébrales résultant d'un traumatisme, les troubles de la mémoire et la démence", "Including government departments, agencies and Crown Corporations": "Including government departments, agencies and Crown Corporations", + "Incomplete": "", "INDEMNITY AND RELEASE.": "INDEMNITY AND RELEASE.", "Indigenous": "Autochtone", + "Indigenous group": "", "Indigenous identity": "Indigenous identity", "Individual": "Individu", "individual": "individu", - "Individual orientation": "", + "Individual orientation": "Individual orientation", "Individual or organization": "Personne ou organisation", "Individuals": "Individus", "individuals": "individus", @@ -936,12 +949,12 @@ "In person": "En personne", "In progress": "En cours", "In Progress": "En cours", - "Institute for Research and Development on Inclusion and Society (“**IRIS**”, “**we**”, “**us**” or “**our**”) invites you (“**you**” or “**your**”) to join The Accessibility Exchange, a platform enabling people with disabilities, Deaf persons, and their supporters and people and organizations with expertise in supporting these communities to connect with one another and with federally regulated organizations (“**FROs**”) and other organizations (together with FROs, the “**Project Proponents**”), for the purpose of developing accessibility plans or other relevant services (the “**Service**”), which you can access at **[[:url](:url)]** or on our mobile applications (the “**Platform**”). These terms of service and the IRIS Privacy Policy (together, the “**Terms**”) govern your use of the Platform and represent a legally binding agreement between you and IRIS.": "L'Institut de recherche et développement sur l'inclusion et la société (\"**IRIS**\", \"**nous**\", \"**nous**\" ou \"**notre**\") vous invite (\"**vous**\" ou \"**votre**\") à rejoindre le Connecteur pour l'accessibilité, une plateforme permettant aux personnes en situation de handicap, aux personnes sourdes, et à leurs sympathisants, ainsi qu'aux personnes et aux organisations ayant une expertise dans le soutien de ces communautés, de se mettre en contact les uns avec les autres et avec des organisations sous réglementation fédérale (\"**ORF**\") et d'autres organisations (ensemble avec les ORF, les \"**Proposants de projet**\"), dans le but d'élaborer des plans d'accessibilité ou d'autres services pertinents (le \"**Service**\"), auquel vous pouvez accéder à l'adresse **[ : url](:url)]** ou sur nos applications mobiles (la \"**Plateforme**\"). Les présentes conditions de service et la politique de confidentialité de l'IRIS (ensemble, les \"**Conditions**\") régissent votre utilisation de la plateforme et constituent une entente juridiquement contraignante entre vous et l'IRIS.", + "Institute for Research and Development on Inclusion and Society (“**IRIS**”, “**we**”, “**us**” or “**our**”) invites you (“**you**” or “**your**”) to join The Accessibility Exchange, a platform enabling people with disabilities, Deaf persons, and their supporters and people and organizations with expertise in supporting these communities to connect with one another and with federally regulated organizations (“**FROs**”) and other organizations (together with FROs, the “**Project Proponents**”), for the purpose of developing accessibility plans or other relevant services (the “**Service**”), which you can access at **[<:url>]** or on our mobile applications (the “**Platform**”). These terms of service and the IRIS Privacy Policy (together, the “**Terms**”) govern your use of the Platform and represent a legally binding agreement between you and IRIS.": "L'Institut de recherche et développement sur l'inclusion et la société (\"**IRIS**\", \"**nous**\", \"**nous**\" ou \"**notre**\") vous invite (\"**vous**\" ou \"**votre**\") à rejoindre le Connecteur pour l'accessibilité, une plateforme permettant aux personnes en situation de handicap, aux personnes sourdes, et à leurs sympathisants, ainsi qu'aux personnes et aux organisations ayant une expertise dans le soutien de ces communautés, de se mettre en contact les uns avec les autres et avec des organisations sous réglementation fédérale (\"**ORF**\") et d'autres organisations (ensemble avec les ORF, les \"**Proposants de projet**\"), dans le but d'élaborer des plans d'accessibilité ou d'autres services pertinents (le \"**Service**\"), auquel vous pouvez accéder à l'adresse **[<:url>]** ou sur nos applications mobiles (la \"**Plateforme**\"). Les présentes conditions de service et la politique de confidentialité de l'IRIS (ensemble, les \"**Conditions**\") régissent votre utilisation de la plateforme et constituent une entente juridiquement contraignante entre vous et l'IRIS.", "INTELLECTUAL PROPERTY RIGHTS.": "DROITS DE PROPRIÉTÉ INTELLECTUELLE.", "Interests": "Intérêts", "interfere with or disrupt the Platform or servers or networks connected to the Platform, or disobey any requirements, procedures, policies or regulations of networks connected to the Platform; or violate any applicable provincial, territorial, local, national or international law, or any regulations having the force of law;": "interfere with or disrupt the Platform or servers or networks connected to the Platform, or disobey any requirements, procedures, policies or regulations of networks connected to the Platform; or violate any applicable provincial, territorial, local, national or international law, or any regulations having the force of law;", "Internal team": "Équipe interne", - "Intersectional": "Intersectionnel", + "Intersectional - This engagement is looking for people who have all sorts of different identities and lived experiences, such as race, gender, age, sexual orientation, and more.": "Intersectionnel - Cette consultation s'adresse à toute personne, peu importe leurs axes d'identités intersectionnels (telles que la race, le sexe, l'âge, l'orientation sexuelle) et leurs expériences vécues.", "Intersectional outreach": "Approche intersectionnelle", "Intervenor": "Intervenant", "Interview at their own pace": "Effectuer l'entrevue à leur propre rythme", @@ -953,7 +966,7 @@ "In the event that IRIS terminates or suspends the User’s access to the Services or this Agreement under this Subsection 16(b), User will receive a pro-rata refund of any prepaid fees paid to IRIS for which Services have not been provided. IRIS shall not be liable to you or to any third party for any suspension or discontinuance of the Services or the Platform, including on account of any expenditures or investments or other commitments made or actions taken in reliance on the expected continuation of the Services or Platform. Any suspected fraudulent, abusive or illegal activity that may be grounds for termination of your use of the Platform and may be referred to appropriate law enforcement authorities.": "In the event that IRIS terminates or suspends the User’s access to the Services or this Agreement under this Subsection 16(b), User will receive a pro-rata refund of any prepaid fees paid to IRIS for which Services have not been provided. IRIS shall not be liable to you or to any third party for any suspension or discontinuance of the Services or the Platform, including on account of any expenditures or investments or other commitments made or actions taken in reliance on the expected continuation of the Services or Platform. Any suspected fraudulent, abusive or illegal activity that may be grounds for termination of your use of the Platform and may be referred to appropriate law enforcement authorities.", "Introduction video": "Vidéo de présentation", "Inuit": "Inuit", - "Invite": "", + "Invite": "Invite", "Invite new member": "Inviter un nouveau membre", "Invite others to your organization": "Invitez d'autres personnes à rejoindre votre organisation", "Invite someone to become a member of your organization. If they do not have an account on this website yet, they will be invited to create one first.": "Invitez une personne à devenir membre de votre organisation. Si cette personne n'a pas encore de compte sur ce site Internet, elle sera d'abord invitée à en créer un.", @@ -982,7 +995,7 @@ "It’s been at least a year since you’ve updated your public page. Please review and update any changes.": "Vous n'avez pas mis à jour votre page publique depuis au moins un an. Veuillez revoir et mettre à jour les changements éventuels.", "I work for a private business, the federal government, or a public sector organization regulated under the Accessible Canada Act.": "Je travaille pour une entreprise privée, le gouvernement fédéral ou une organisation du secteur public réglementée par la Loi canadienne sur l'accessibilité.", "I would like to speak to someone to discuss additional access needs or concerns": "Je voudrais parler à une personne afin de discuter de mes besoins ou préoccupations supplémentaires en matière d'accessibilité", - "I’ve gone to orientation, why isn’t this updated?": "", + "I’ve gone to orientation, why isn’t this updated?": "I’ve gone to orientation, why isn’t this updated?", "Join our accessibility community": "Rejoignez notre communauté en faveur de l'accessibilité", "Keeping my information up to date": "Maintenir mes informations à jour", "Language": "Langue", @@ -1060,6 +1073,7 @@ "Mark agreement as received": "Marquer l'entente comme reçue", "Mark as read": "Marquer comme lu", "Mark estimate as returned": "Marquer le devis comme retourné", + "Mark the estimate as \"returned\" by visiting the link below and searching for :projectable.": "Marquez le devis comme « retourné » en visitant le lien ci-dessous et en recherchant :projectable.", "Matching information": "Information correspondante", "Matching service": "Service de jumelage", "match you to their projects or engagements": "vous jumeler à leurs projets ou consultations", @@ -1073,7 +1087,6 @@ "Meeting date :date": "Date de la réunion :date", "Meeting dates": "Dates de réunion", "meeting end time": "heure de fin de la réunion", - "meeting phone number": "numéro de téléphone de la réunion", "Meetings": "Réunions", "meeting start time": "heure de début de la réunion", "meeting time zone": "fuseau horaire de la réunion", @@ -1087,6 +1100,7 @@ "Microsoft Word": "Microsoft Word", "Middle Eastern": "Moyen-oriental", "Minimum number of participants": "Nombre minimum de personnes participantes", + "minimum number of participants": "", "Missing an engagement?": "Manque-t-il une consultation?", "modify, copy, reproduce, reverse engineer, frame, rent, lease, loan, sell, distribute, publish, or create derivative works based on the Platform or the Service Content (as defined below), in whole or in part;": "modify, copy, reproduce, reverse engineer, frame, rent, lease, loan, sell, distribute, publish, or create derivative works based on the Platform or the Service Content (as defined below), in whole or in part;", "Module - :title": "Module - :title", @@ -1157,6 +1171,7 @@ "No interests listed.": "Aucun intérêt répertorié.", "No meetings found.": "Aucune réunion trouvée.", "Non-binary, gender non-conforming and\/or gender fluid people": "Personnes non-binaires, non-conformes au genre et\/ou fluides de genre", + "Non-binary\/Gender non-conforming\/Gender fluid identity": "", "Non-binary people": "Personnes non-binaires", "None found.": "Rien n'a été trouvé.", "None listed": "Aucun listé", @@ -1165,7 +1180,7 @@ "No projects found.": "Aucun projet trouvé.", "No resources found.": "Aucune ressource trouvée.", "Northwest Territories": "Territoires du Nord-Ouest", - "Not attended yet": "", + "Not attended yet": "Not attended yet", "not available": "non disponible", "Not available": "Non disponible", "Not available.": "Non disponible.", @@ -1193,9 +1208,9 @@ "Not started": "Non commencé", "Not started yet": "Pas encore commencé", "Notwithstanding the foregoing, you will have no obligation to indemnify or hold harmless any Indemnitee from or against any liability, losses, damages or expenses incurred as a result of any action or inaction of such Indemnitee.": "Notwithstanding the foregoing, you will have no obligation to indemnify or hold harmless any Indemnitee from or against any liability, losses, damages or expenses incurred as a result of any action or inaction of such Indemnitee.", - "Not yet approved": "", + "Not yet approved": "Not yet approved", "Not yet requested": "Pas encore demandé", - "Not yet started": "", + "Not yet started": "Not yet started", "No upcoming engagements.": "Aucune consultation à venir.", "Nova Scotia": "Nouvelle-Écosse", "Number of participants": "Nombre de personnes participantes", @@ -1221,13 +1236,12 @@ "Once you publish your engagement details, anyone on this website will be able to access it.": "Une fois que vous aurez publié les détails de vos consultations, n'importe qui sur ce site Internet pourra y accéder.", "Once you publish your profile, other users on this website can access your page.": "Une fois que vous aurez publié votre profil, les autres membres de ce site Internet pourront accéder à votre page.", "Once you publish your project, others can find it.": "Une fois que vous aurez publié votre projet, d'autres personnes pourront le trouver.", - "Once your account has been approved, you can review and publish your organization’s page. You must have completed all the previous steps.": "", - "Once your account has been approved, you can review and publish your page. You must have completed all the previous steps.": "", + "Once your account has been approved, you can review and publish your organization’s page. You must have completed all the previous steps.": "Once your account has been approved, you can review and publish your organization’s page. You must have completed all the previous steps.", + "Once your account has been approved, you can review and publish your page. You must have completed all the previous steps.": "Once your account has been approved, you can review and publish your page. You must have completed all the previous steps.", "Once you sign up, you can sign up for an orientation session to learn about what you can do on this website. You can also fill in information about your organization so businesses and government can learn more about what you do and who you represent or serve.": "Une fois inscrit, vous pouvez vous inscrire à une séance d'orientation pour découvrir ce que vous pouvez faire sur ce site. Vous pouvez également fournir des informations sur votre organisation afin que les entreprises et les gouvernements puissent en savoir plus sur ce que vous faites et qui vous représentez ou soutenez.", "Once you sign up, you can sign up for an orientation session to learn about what you can do on this website. You can also fill in information to facilitate a smoother collaboration with organizations, such as access needs, communication preferences, and consultation preferences.": "Une fois inscrit, vous pouvez vous inscrire à une séance d'orientation pour découvrir ce que vous pouvez faire sur ce site. Vous pouvez également remplir des informations destinées à rendre la collaboration avec les organisations plus harmonieuse, telles que vos besoins en matière d'accessibilité, vos préférences en ce qui concerne les communications ou encore les consultations.", "Once you’ve reviewed the project details, please:": "Une fois que vous aurez revu les détails du projet, veuillez :", "One of the key parts of preparing for your consultation with the disability and Deaf communities is making sure that your consultations are done in an accessible and inclusive way.": "L'un des éléments clés de la préparation de votre consultation avec les communautés de personnes en situation de handicap et de personnes sourdes est de s'assurer que vos consultations se déroulent d'une manière accessible et inclusive.", - "One or more Disability or Deaf groups are required.": "One or more Disability or Deaf groups are required.", "Online form, such as survey monkey or google forms": "Formulaire en ligne, tel que SurveyMonkey ou Google Forms", "Only people with specific disabilities and\/or Deaf people": "Personnes ayant des handicaps spécifiques et\/ou personnes sourdes", "Only reachable within cross-disability and Deaf or intersectional groups": "Only reachable within cross-disability and Deaf or intersectional groups", @@ -1289,6 +1303,7 @@ "Participant location": "Emplacement de la personne participante", "Participant non-disclosure agreement": "Entente de confidentialité de la personne participante", "Participants": "Personnes participantes", + "participants confirmed": "personnes participantes confirmées", "Participant selection criteria": "Critères de sélection des personnes participantes", "Participants must respond to their invitation by the following date": "Les personnes participantes doivent répondre à l'invitation avant la date suivante", "Participants must sign up for this engagement by the following date": "Les personnes intéressées doivent s'inscrire à cette consultation avant la date suivante", @@ -1324,6 +1339,7 @@ "phone number": "numéro de téléphone", "Phone number:": "Numéro de téléphone :", "Phone number to join": "Numéro de téléphone à rejoindre", + "phone number to join the meeting": "", "Physical and mobility disabilities": "Déficience physique et de mobilité", "Plain language": "Langage simple", "Plan and share your project with others on this website.": "Planifiez et partagez votre projet avec d'autres personnes sur ce site Internet.", @@ -1336,7 +1352,7 @@ "Please check all that apply.": "Veuillez cocher toutes les cases qui s'appliquent.", "Please choose a new password for The Accessibility Exchange": "Veuillez choisir un nouveau mot de passe pour le Connecteur pour l'accessibilité", "Please choose the language or languages you would like to use on this website.": "Veuillez choisir la ou les langues que vous souhaitez utiliser sur ce site Internet.", - "Please complete this section so that you can be set up to participate.": "", + "Please complete this section so that you can be set up to participate.": "Please complete this section so that you can be set up to participate.", "Please complete this section so that you can be set up to participate in consultations.": "Veuillez remplir cette section afin de pouvoir participer aux consultations.", "Please complete this section so that you can be set up to participate in consultations and work on projects.": "Veuillez remplir cette section afin de pouvoir participer à des consultations et travailler sur des projets.", "Please complete your engagement details.": "Veuillez compléter les détails de votre consultation.", @@ -1353,7 +1369,10 @@ "Please create your profile to share more about who you are, your experiences, and your interests.": "Veuillez créer votre profil pour en dire plus sur qui vous êtes, vos expériences et vos intérêts.", "Please describe how the Disability and Deaf communities will be impacted by the outcomes of your project.": "Veuillez décrire comment les communautés des personnes en situation de handicap et des personnes sourdes seront touchées par les résultats de votre projet.", "Please describe this engagement.": "Veuillez décrire cette consultation.", + "Please enter a :attribute that is less than or the same as the ideal number of participants.": "", "Please enter an end year for your experience that is equal to or greater than the start year.": "Please enter an end year for your experience that is equal to or greater than the start year.", + "Please enter a valid :attribute.": "", + "Please enter a valid date for the :attribute.": "", "Please enter a valid website link under “Accessibility and Inclusion links”.": "Veuillez saisir un lien Internet valide sous \"Liens en lien avec l'accessibilité et l'inclusion\".", "Please enter the email address of the individual you have hired as a Community Connector.": "Veuillez entrer l'adresse courriel de la personne que vous avez embauchée en tant que personne facilitatrice communautaire.", "Please enter your collaboration preferences": "Veuillez entrer vos préférences de collaboration", @@ -1398,13 +1417,15 @@ "Please read these terms of service carefully.": "Veuillez lire attentivement ces conditions de service.", "Please reset your password for The Accessibility Exchange": "Veuillez réinitialiser votre mot de passe pour le Connecteur pour l'accessibilité", "Please respond by :date.": "Veuillez répondre avant le :date.", - "Please respond by :signup_by_date.": "Veuillez répondre avant le :signup_by_date.", "Please review and publish your engagement details.": "Veuillez réviser et publier les détails de votre consultation.", "Please review and update your communication and consultation preferences": "Veuillez réviser et mettre à jour vos préférences en matière de communication et de consultation", "Please review and update your matching information": "Veuillez réviser et mettre à jour vos informations de jumelage", "Please review and update your public page": "Veuillez réviser et mettre à jour votre page publique", "Please review your page. There is some information for your new role that you will have to fill in.": "Merci de vérifier l'information présentée sur cette page. De l'information sur les nouveaux rôles que vous avez sélectionnés est disponible.", "Please see the resource [Planning a Safe, Accessible Consultation](:url).": "Veuillez consulter la ressource [Planification d'une consultation sûre et accessible](:url).", + "Please select a language.": "", + "Please select a language that the engagement documents will be in.": "", + "Please select a language to remove.": "", "Please select a recruitment method": "Veuillez sélectionner une méthode de recrutement", "Please select disability groups that your organization specifically represents": "Veuillez sélectionner les groupes de personnes en situation de handicap que votre organisation représente spécifiquement", "Please select the disability and\/or Deaf groups that you can connect to.": "Veuillez sélectionner les groupes de personnes en situation de handicap et\/ou de personnes sourdes auprès desquels vous pouvez agir comme intermédiaire.", @@ -1537,7 +1558,7 @@ "receive communication from them": "recevoir des communications de leur part", "Received": "Reçu", "Recommendation": "Recommandation", - "Recommended": "", + "Recommended": "Recommended", "Record responses at my own pace": "Inscrire les réponses à mon propre rythme", "Recruit individuals who are Deaf or have disabilities to give input on your own projects.": "Recrutez des personnes sourdes ou en situation de handicap pour qu'elles donnent leur avis sur vos projets.", "Recruitment": "Recrutement", @@ -1545,7 +1566,7 @@ "Refugees": "Refugees", "Refugees and\/or immigrants": "Personnes réfugiées ou migrantes", "Regions": "Régions", - "Registration": "", + "Registration": "Registration", "Regulated Organization": "Organisation sous réglementation fédérale", "regulated organization": "organisation sous réglementation fédérale", "Regulated organization": "Organisation sous réglementation fédérale", @@ -1580,7 +1601,7 @@ "represents": "représente", "Request a call": "Demander un appel", "Request an introductory phone call": "Demandez un appel téléphonique de présentation", - "Required": "", + "Required": "Required", "required": "requis", "required without an author organization": "required without an author organization", "requires VRS": "requiert le SRV", @@ -1602,14 +1623,12 @@ "Responses are due by:": "Les réponses doivent être remises au plus tard le :", "Returned": "Retourné", "Return to dashboard": "Retour au tableau de bord", - "Return to edit mode": "Revenir en mode édition", "Review and publish engagement details": "Réviser et publier les détails de la consultation", - "Review and publish your organization’s public page": "", + "Review and publish your organization’s public page": "Review and publish your organization’s public page", "Review and publish your public page": "Réviser et publier votre page publique", "Review engagement details": "Réviser les détails de la consultation", "Review my organization’s page": "Réviser la page de mon organisation", "Review my page": "Réviser ma page", - "Review page": "Réviser mes informations", "Review project": "Réviser le projet", "Review project details": "Vérifier les détails du projet", "Role": "Rôle", @@ -1671,7 +1690,7 @@ "Select your criteria": "Sélectionnez vos critères", "Send invitation": "Envoyer l'invitation", "Send request": "Envoyer la demande", - "sent by date": "envoyé par date", + "Send the estimate and agreement to <:contact>.": "Envoyez le devis et l'entente à <:contact>.", "serve and support": "servir et soutenir", "serves and supports": "sert et soutien", "Service areas": "Régions desservies", @@ -1689,7 +1708,6 @@ "show up on search results for them": "apparaître dans les résultats de recherche", "Signed language for interpretation": "Langue signée pour l'interprétation", "Sign in": "S’identifier", - "sign in.": "vous identifier.", "Sign language interpretation": "Interprétation en langue des signes", "Sign language interpretations": "Sign language interpretations", "Sign language translation": "Traduction en langue des signes", @@ -1699,7 +1717,7 @@ "Sign Language video": "Vidéo en langue des signes", "Sign out": "Se déconnecter", "Sign up": "S’inscrire", - "Sign up and attend an orientation session": "", + "Sign up and attend an orientation session": "Sign up and attend an orientation session", "Sign up deadline": "Date limite d'inscription", "sign up deadline": "date limite d'inscription", "Sign up for an open engagement": "Sign up for an open engagement", @@ -1721,7 +1739,7 @@ "Skip to content": "Passer au contenu", "Skype": "Skype", "Social Media": "Réseaux sociaux", - "Social media": "", + "Social media": "Social media", "Social media and website links": "Liens vers les réseaux sociaux et les sites Internet", "Social media links": "Liens de vos réseaux sociaux", "Software": "Logiciel", @@ -1803,14 +1821,18 @@ "Text": "Texte", "Text message": "Message texte", "Text to speech": "Synthèse vocale", + "The :attribute format is not valid.": "", "The :attribute is not in the right format.": "Le champ :attribute n'est pas au bon format.", + "The :attribute must be after the :date.": "", + "The :attribute must be a number.": "", + "The :attribute must be before the :date.": "", "The :projectable sends out a list of questions, and you can can respond to them at your own pace.": "Dans ce cas, l':projectable vous enverra une liste de questions et vous pourrez y répondre à votre propre rythme.", "The Accessibility Exchange": "Connecteur pour l’accessibilité", "The Accessibility Exchange will send you notifications, based on what you chose to be notified of here.": "Le Connecteur pour l'accessibilité vous enverra des notifications, en fonction de ce que vous avez choisi de recevoir ici.", "The Accessible Canada Act has identified sectors that are required to comply with the Act. If you would like, you may indicate which sectors are of interest to you. You do not have to answer this question as it is optional. ": "La Loi canadienne sur l'accessibilité a identifié les secteurs qui doivent se conformer à la Loi. Si vous le souhaitez, vous pouvez indiquer les secteurs qui vous intéressent. Vous n'avez pas à répondre à cette question car elle est facultative. ", "The Accessible Canada Act has outlined seven main areas that governments and businesses have to make accessible. If you would like, you may indicate which areas are of interest to you. You do not have to answer this question as it is optional. ": "La Loi canadienne sur l'accessibilité a défini sept domaines principaux que les gouvernements et les entreprises doivent rendre accessibles. Si vous le souhaitez, vous pouvez indiquer les domaines qui vous intéressent. Vous vous n'avez pas à répondre à cette question car elle est facultative. ", "The agreement for “:project” has been marked as received.": "L’entente pour « :project » a été marquée comme reçue.", - "The agreement will be sent with your estimate. Please sign this agreement and send it to :email.": "L'entente sera envoyée avec votre devis. Veuillez signer l'entente et l'envoyer à :email.", + "The agreement will be sent with your estimate. Please sign this agreement and send it to <:email>.": "L'entente sera envoyée avec votre devis. Veuillez signer l'entente et l'envoyer à <:email>.", "The Canadian Forces and the Royal Canadian Mounted Police": "The Canadian Forces and the Royal Canadian Mounted Police", "The Community Organization being consulted with for this engagement.": "Organisation communautaire consultée dans le cadre de cette consultation.", "The demographic breakdown of your confirmed participants will show when your sign up deadline has passed. Please come back and check again at that time.": "La répartition démographique de vos personnes participantes s'affichera lorsque la date limite d'inscription sera passée. Veuillez revenir et vérifier à nouveau à ce moment-là.", @@ -1830,11 +1852,11 @@ "Theme": "Thème", "themes": "thèmes", "Themes": "Thèmes", - "The minimum number of participants is more than the ideal number of participants. Please enter a minimum that is less than or the same as the ideal number of participants.": "Le nombre minimum de personnes participantes est supérieur au nombre idéal de personnes participantes. Veuillez saisir un minimum inférieur ou égal au nombre idéal de personnes participantes.", "The notification has been marked as read.": "La notification a été marquée comme lue.", "the number of people on your team": "the number of people on your team", "The organization you have added does not participate in engagements.": "L'organisation que vous avez ajoutée ne désire pas participer à des consultations.", - "The other accepted format must be provided in at least one language.": "L'autre format accepté doit être fourni dans au moins une langue.", + "The other accepted format must be a string.": "", + "The other accepted format must be provided in at least English or French.": "", "the other languages are you able to work in": "les autres langues dans lesquelles vous êtes capable de travailler", "the other languages you are able to work in": "les autres langues dans lesquelles vous êtes capable de travailler", "The other payment type must be specified.": "Vous devez spécifier l'autre type de paiement.", @@ -1848,6 +1870,7 @@ "These are the seven areas listed within the Accessible Canada Act. By law, entities must ensure these areas are accessible.": "Ces sept domaines sont énumérés dans la Loi canadienne sur l'accessibilité. En vertu de la loi, les entités doivent s'assurer que ces domaines sont accessibles.", "These are the seven areas listed within the Accessible Canada Act. Federally regulated organizations must work to improve their accessibility in all of these areas.": "Ces sept domaines sont énumérés dans la Loi canadienne sur l'accessibilité. En vertu de la loi, les organisations sous réglementation fédérale doivent s'assurer que ces domaines sont accessibles.", "These details will help people know what to expect when working with you.": "Ces détails aideront les gens à savoir à quoi s'attendre lorsqu'ils travaillent avec vous.", + "The selected consulting service is invalid": "", "The selected working language is not valid.": "La langue de travail sélectionnée n'est pas valide.", "These organizations, coalitions, cross-disability or umbrella groups are made up of, and controlled by, persons with disabilities, Deaf persons, and\/or their family members. These organizations were created to advance and defend the rights of persons with disabilities.": "Ces organisations, coalitions, groupes multi-handicap ou parapluies sont constitués et contrôlés par des personnes en situation de handicap, des personnes sourdes et\/ou des membres de leur famille. Ces organisations ont été créées pour faire avancer et défendre les droits des personnes en situation de handicap.", "These organizations have constituencies which include persons with disabilities, Deaf persons, and family members. Disability and Deaf services are not the primary mandate of these organizations. ": "Ces organisations comptent parmi leurs membres des personnes en situation de handicap, des personnes sourdes et des membres de leur famille. Les services aux personnes en situation de handicap et aux personnes sourdes ne constituent pas le mandat principal de ces organisations. ", @@ -1856,7 +1879,8 @@ "The suspension of :account and its users has been lifted.": "The suspension of :account and its users has been lifted.", "The suspension of :account has been lifted.": "The suspension of :account has been lifted.", "The type of disability they experience": "Le type de handicap vécu", - "They have been instructed to send their signed agreement to [support@accessibilityexchange.ca](mailto:support@accessibilityexchange.ca).": "Ils ont été priés d'envoyer leur accord signé à [support@accessibilityexchange.ca](mailto:support@accessibilityexchange.ca).", + "The user’s role is missing.": "", + "They have been instructed to send their signed agreement to <:email>.": "Ils ont été priés d'envoyer leur accord signé à <:email>.", "They require Video Relay Service (VRS) for phone calls": "Cette personne a besoin du service de relais vidéo (SRV) pour les appels téléphoniques", "They will not be able to:": "Ils ne seront pas en mesure de faire les choses suivantes :", "They will not know you have blocked them.": "Ces personnes ne sauront pas que vous les avez bloquées.", @@ -1874,7 +1898,6 @@ "This engagement is a **paid** opportunity.": "Cette consultation est une opportunité **rémunérée**.", "This engagement is a **volunteer** opportunity.": "Cette consultation est une opportunité **bénévole**.", "This engagement is a volunteer engagement. There will be no monetary payment.": "Cette consultation est entièrement bénévole. Il n'y aura pas de paiement effectué.", - "This engagement is looking for people who have all sorts of different identities and lived experiences, such as race, gender, age, sexual orientation, and more.": "Cette consultation s'adresse à toute personne, peu importe leurs axes d'identités intersectionnels (telles que la race, le sexe, l'âge, l'orientation sexuelle) et leurs expériences vécues.", "This estimate includes the following engagements:": "Ce devis comprend les consultations suivantes :", "This estimate was sent to :contact on :date.": "Ce devis a été envoyé à :contact le :date.", "This includes disability and Deaf representative organizations, support organizations, and other civil society organizations (not only disability focused).": "Cela inclut les organisations représentant les personnes en situation de handicap et les personnes sourdes, les organisations de défense des droits et les autres organisations de la société civile (pas seulement axées sur le handicap).", @@ -1898,19 +1921,20 @@ "This is the name that will be displayed on your page. This does not have to be your legal name.": "Il s'agit du nom qui sera affiché sur votre page. Il peut être différent de votre nom légal.", "This is the name that will be displayed on your project page.": "Il s'agit du nom qui sera affiché sur la page de votre projet.", "This is the name that will show up publicly on your page.": "Il s'agit du nom qui apparaîtra publiquement sur votre page.", + "This member already belongs to this organization.": "", + "This member has already been invited.": "", "This organization has already been invited.": "Cette organisation a déjà été invitée.", "This organization has people on staff who have lived experience of the communities they :represent_or_serve_and_support.": "Cette organisation compte parmi son personnel des personnes ayant une expérience vécue des communautés qu'elle :represent_or_serve_and_support.", "This site is for three kinds of users. Select an option below to learn more.": "Ce site s'adresse à trois types de publics. Sélectionnez une option ci-dessous pour en savoir plus.", "This site uses cookies to help provide a better experience.": "This site uses cookies to help provide a better experience.", "This survey will be provided in the following digital formats:": "Ce sondage sera fourni dans les formats numériques suivants :", "This survey will be provided in the following formats:": "Ce sondage sera fourni dans les formats suivants :", - "This user already belongs to this team.": "Cette personne fait déjà partie de cette équipe.", "This website was made in partnership with members and organizations from the disability and Deaf communities, supporters, and members from Federally Regulated Organizations.": "Ce site Internet a été conçu en partenariat avec des membres et des organisations de la communauté des personnes en situation de handicap et des personnes sourdes, de leurs alliés et des membres d'organisations sous réglementation fédérale.", "This will help governments and businesses communicate and work with you in a format that is accessible to you.": "Cela aidera les gouvernements et les entreprises à communiquer et à travailler avec vous dans un format qui vous est accessible.", "This will help people know what to expect when working with you.": "Cela permettra aux gens de savoir à quoi s'attendre lorsqu'ils travaillent avec vous.", "This will help you get paid in the way that you want.": "Cela vous permettra d'être payé de la façon qui vous convient le mieux.", "This will only be shared with participants who have accepted the invitation.": "Cette information ne sera partagée qu'avec les personnes qui ont acceptées l'invitation.", - "This will show Community Connectors on the :browse page that you are looking, and that they are welcome to reach out.": "Cela montrera aux personnes facilitatrices communautaires de la page :browse que vous êtes en train de chercher et qu'elles peuvent vous contacter.", + "This will show Community Connectors on the [browse projects](:url) page that you are looking, and that they are welcome to reach out.": "Cela montrera aux personnes facilitatrices communautaires de la page [parcourir les projets](:url) que vous êtes en train de chercher et qu'elles peuvent vous contacter.", "Through contacting me or my support person": "En me contactant ou en contactant la personne m'apportant du soutien", "Throughout this page, you can choose whether you would like notifications to be sent through the website or by contacting the project team contact for that specific project directly. You can edit this in each individual project page.": "Sur cette page, vous pouvez choisir si vous souhaitez que les notifications soient envoyées via le site Internet ou directement à la personne responsable du projet en question. Vous pouvez modifier ce réglage pour chaque projet individuellement.", "Throughout this page, you can chose whether you would like notifications to be sent through the website or by contacting :contact_person directly.": "Sur cette page, vous pouvez choisir si vous souhaitez que les notifications soient envoyées via le site Internet ou directement à :contact_person.", @@ -2042,7 +2066,7 @@ "We have a hub of resources and trainings. The materials can help you and your team deepen your understanding of disability and inclusion.": "Nous mettons à votre disposition un centre de ressources et de formations. Ces documents peuvent vous aider, vous et votre équipe, à approfondir votre compréhension du handicap et de l'inclusion.", "Welcome to": "Bienvenue sur le", "Welcome to the Accessibility Exchange": "Bienvenue sur le Connecteur pour l'accessibilité", - "We may have not updated this status in our system yet. Please wait a few days before seeing this status update. If you have further questions, please [contact us](:url).": "", + "We may have not updated this status in our system yet. Please wait a few days before seeing this status update. If you have further questions, please [contact us](:url).": "We may have not updated this status in our system yet. Please wait a few days before seeing this status update. If you have further questions, please [contact us](:url).", "We will ask you about what is the best way to contact you, and your contact information. We will also ask you about whether you have a preference for either in-person or virtual meetings.": "Nous vous demanderons quel est le meilleur moyen de vous contacter et quelles sont vos coordonnées. Nous vous demanderons également si vous avez une préférence pour les réunions en personne ou virtuelles.", "We will ask you about what your access needs are to participate in either an in-person meeting or virtual meeting. We also ask whether you have a preference for either in-person or virtual meetings.": "Nous vous demandons quels sont vos besoins en matière d'accessibilité pour participer à une réunion en personne ou à une réunion virtuelle. Nous vous demandons également si vous avez une préférence pour les réunions en personne ou virtuelles.", "We will ask you about whether you have a preference for either in-person or virtual meetings. We will also ask you how you would like us to contact you, and for your contact information.": "Nous vous demanderons si vous avez une préférence pour les réunions en personne ou virtuelles. Nous vous demanderons également comment vous souhaitez que nous vous contactions, ainsi que vos coordonnées.", @@ -2129,9 +2153,10 @@ "who is going through the results": "qui passe en revue les résultats", "Who they’re seeking": "Profil recherché", "Who we’re looking for": "Qui nous cherchons", - "Who will be going through the results from this project and writing a report?": "Qui sera responsable de l'analyse des résultats de ce projet et de la rédaction d'un rapport ?", + "Who will be going through the results and producing an outcome?": "", "Who will be the best person to facilitate your consultation?": "Qui pourrait être la meilleure personne pour mener à bien votre consultation ?", "Who you’re joining as": "Quel type de compte voulez-vous créer?", + "Who’s responsible for going through results and producing an outcome": "", "Why do we ask for this information?": "Pourquoi demandons-nous ces informations ?", "With disability and Deaf communities and hold meaningful consultations": "Avec les communautés de personnes en situation de handicap et de personnes sourdes et tenir des consultations efficaces", "Women": "Femmes", @@ -2290,31 +2315,34 @@ "You must choose at least one type of federally regulated organization.": "Vous devez choisir au moins un type d'organisation sous réglementation fédérale.", "You must choose at least one type of organization.": "Vous devez choisir au moins un type d'organisation.", "You must choose at least one type of project.": "Vous devez choisir au moins un type de projet.", + "You must choose a valid province or territory": "", + "You must enter a :attribute": "", + "You must enter a :attribute.": "", "You must enter a :attribute for the meeting location.": "Vous devez saisir un\/une :attribute pour le lieu de la réunion.", "You must enter a city or town.": "Vous devez indiquer une ville ou un village.", "You must enter an email address.": "Vous devez saisir une adresse courriel.", "You must enter a province or territory.": "Vous devez indiquer une province ou un territoire.", "You must enter at least one city or town.": "Vous devez indiquer au moins une ville ou un village.", + "You must enter a valid link for :key.": "", "You must enter a valid website address for :key.": "Vous devez indiquer une adresse valide pour :key.", + "You must enter a valid website link.": "", "You must enter your organization's name in either English or French.": "Vous devez saisir le nom de votre organisation en anglais ou en français.", "You must enter your organization name.": "Vous devez saisir le nom de votre organisation.", "You must enter your organization name in either English or French.": "Vous devez saisir le nom de votre organisation en anglais ou en français.", "You must fill out the field “About your organization”.": "Vous devez remplir le champ « À propos de votre organisation ».", "You must fill out your [payment information](:url) before you can sign up.": "You must fill out your [payment information](:url) before you can sign up.", - "You must identify who will be going through the results from this project and writing a report.": "You must identify who will be going through the results from this project and writing a report.", + "You must identify who will be going through the results and producing an outcome.": "", "You must indicate at least one way for participants to attend the meeting.": "Vous devez indiquer au moins un moyen pour les personnes participantes de se joindre à la réunion.", "You must indicate if the reports will be publicly available.": "You must indicate if the reports will be publicly available.", "You must indicate the :attribute.": "Vous devez indiquer l'attribut :attribute.", "You must indicate who you want to engage.": "Vous devez indiquer qui vous voulez impliquer.", "You must pick at least one of these roles.": "Vous devez choisir au moins un de ces rôles.", - "You must provide a :attribute.": "Vous devez fournir un :attribute.", "You must select a language.": "Vous devez sélectionner une langue.", "You must select a role for your organization.": "Vous devez sélectionner un rôle pour votre organisation.", "You must select at least one age group you can connect to.": "Vous devez sélectionner au moins un groupe d'âge auprès duquel vous pouvez servir d'intermédiaire.", "You must select at least one age group your organization specifically :represents_or_serves_and_supports.": "Vous devez sélectionner au moins un groupe d'âge que votre organisation :represents_or_serves_and_supports spécifiquement.", "You must select at least one ethno-racial identity you can connect to.": "Vous devez sélectionner au moins une identité ethnoraciale auprès de laquelle vous pouvez servir d'intermédiaire.", "You must select at least one ethno-racial identity your organization specifically :represents_or_serves_and_supports.": "Vous devez sélectionner au moins une identité ethnoraciale spécifique que votre organisation :represents_or_serves_and_supports.", - "You must select at least one gender or sexual identity group.": "Vous devez sélectionner au moins un groupe relatif au genre ou à l'identité sexuelle.", "You must select at least one gender or sexual identity group you can connect to.": "Vous devez sélectionner au moins un groupe d'identité sexuelle ou de genre auprès duquel vous pouvez servir d'intermédiaire.", "You must select at least one gender or sexual identity group your organization specifically :represents_or_serves_and_supports.": "Vous devez sélectionner au moins un groupe d'identité sexuelle ou de genre que votre organisation :represents_or_serves_and_supports.", "You must select at least one Indigenous group you can connect to.": "Vous devez sélectionner au moins un groupe autochtone auprès duquel vous pouvez servir d'intermédiaire.", @@ -2323,6 +2351,11 @@ "You must select at least one option for “Can you connect to people with disabilities, Deaf persons, and\/or their supporters?”": "Vous devez sélectionner au moins une option pour \"Pouvez-vous servir d'intermédiaire auprès des personnes en situation de handicap, des personnes sourdes et\/ou leurs alliés?\"", "You must select at least one option for “Where do the people that you :represent_or_serve_and_support come from?”": "Vous devez sélectionner au moins une option pour « D'où viennent les personnes que vous représentez »", "You must select at least one option for “Where do the people that you can connect to come from?”": "Vous devez sélectionner au moins une option pour « D'où viennent les personnes auprès desquelles vous pouvez servir d'intermédiaire ? »", + "You must select at least one way to attend the meeting.": "", + "You must select a valid :attribute.": "", + "You must select a valid format.": "", + "You must select a valid meeting type.": "", + "You must select a valid role to perform on the website.": "", "You must select one option for “Can you connect to a specific age group or groups?”": "Vous devez sélectionner une option pour « Pouvez-vous servir d'intermédiaire auprès d'un ou de plusieurs groupes d'âge spécifiques ? »", "You must select one option for “Can you connect to people who are First Nations, Inuit, or Métis?”": "Vous devez sélectionner une option pour « Pouvez-vous servir d'intermédiaire auprès de personnes issues des Premières Nations, de personnes Inuit ou Métis ? »", "You must select one option for “Can you connect to people who are marginalized based on gender or sexual identity?”": "Vous devez sélectionner une option pour « Pouvez-vous servir d'intermédiaire auprès de personne marginalisées en raison de leur identité de genre ou sexuelle ? »", @@ -2364,17 +2397,18 @@ "Your agreement has been received for :project. You can now publish your project page and engagement details. Sign in to your account at https:\/\/accessibilityexchange.ca to continue.": "Votre entente a été reçue pour :project. Vous pouvez maintenant publier votre page de projet et les détails de votre consultation. Connectez-vous à votre compte sur https:\/\/accessibilityexchange.ca pour continuer.", "Your areas of interest have been updated.": "Vos centres d'intérêt ont été mis à jour.", "Your bio": "Votre bio", + "Your bio must be provided in at least English or French.": "", "Your communication and consultation preferences have been updated.": "Vos préférences en matière de communication et de consultation ont été mises à jour.", "Your Community Connector has been removed.": "Votre personne facilitatrice communautaire a été supprimée.", "Your consultation preferences": "Vos préférences en matière de consultation", "Your details": "Vos informations", "Your engagement has been created.": "Votre consultation a été créée.", - "Your engagement has been published. [Visit engagement](:url)": "Votre consultation a été publiée. [Voir la consultation](:url)", + "Your engagement has been published.": "Votre consultation a été publiée.", "Your engagement has been updated.": "Votre consultation a été mise à jour.", "Your engagement translations have been updated.": "Les traductions de vos consultations ont été mises à jour.", "You represent that you are of legal age, as set forth in Subsection 3(a), to use the Platform.": "You represent that you are of legal age, as set forth in Subsection 3(a), to use the Platform.", - "Your estimate for **:project**, along with a project agreement for to sign, has been sent to [:contact](mailto::contact).": "Votre devis pour **:project**, ainsi qu'une entente à signer, ont été envoyés à [:contact](mailto::contact).", - "Your estimate for **:project**, along with a project agreement for you to sign, has been sent to [:contact](mailto::contact).": "Votre devis pour **:project**, ainsi qu'une entente à signer ont été envoyés à [:contact](mailto::contact).", + "Your estimate for **:project**, along with a project agreement for to sign, has been sent to <:contact>.": "Votre devis pour **:project**, ainsi qu'une entente à signer, ont été envoyés à <:contact>.", + "Your estimate for **:project**, along with a project agreement for you to sign, has been sent to <:contact>.": "Votre devis pour **:project**, ainsi qu'une entente à signer ont été envoyés à <:contact>.", "Your estimate has been returned": "Votre devis a été retourné", "Your estimate has been returned for :project, along with a project agreement for you to sign. Sign in to your account at https:\/\/accessibilityexchange.ca for further details.": "Votre devis a été renvoyé pour le projet :project, ainsi qu'une etente de projet à signer. Connectez-vous à votre compte sur https:\/\/accessibilityexchange.ca pour plus de détails.", "Your federally regulated organization has been deleted.": "Votre organisation sous réglementation fédérale a été supprimée.", @@ -2396,14 +2430,12 @@ "Your name and your contact information have been shared with :name.": "Votre nom et vos coordonnées ont été partagés avec :name.", "Your notification preferences have been updated.": "Vos préférences de notification ont été mises à jour.", "Your organization has been added to an engagement": "Votre organisation a été ajoutée à une consultation", - "Your organization has been added to the engagement “:engagement”": "Votre organisation a été ajoutée à la consultation « :engagement »", "Your organization has been added to the engagement “:engagement”.": "Votre organisation a été ajoutée à la consultation « :engagement ».", "Your organization has been invited as a :role": "Votre organisation a été invitée en tant que :role", "Your organization has been invited as a :role to :projectable’s :invitationable_type, :invitationable.": "Votre organisation a été invitée en tant que :role au :invitationable_type de :projectable, :invitationable.", "Your organization has been invited to join the :invitationable_type “:invitationable” as a :role.": "Votre organisation a été invitée à rejoindre :invitationable_type « :invitationable »en tant que :role.", "Your organization has been invited to the :invitationable_type \":invitationable\" as a :role on The Accessibility Exchange. Sign in to your account at https:\/\/accessibilityexchange.ca to continue.": "Votre organisation a été invitée au :invitationable_type « :invitationable » en tant que :role sur le Connecteur pour l'accessibilité. Connectez-vous à votre compte à l'adresse https:\/\/accessibilityexchange.ca pour continuer.", "Your organization has been removed from an engagement": "Votre organisation a été retirée d'une consultation", - "Your organization has been removed from the engagement “:engagement”": "Votre organisation a été retirée de la consultation « :engagement »", "Your organization has been removed from the engagement “:engagement”.": "Votre organisation a été retirée de la consultation « :engagement ».", "Your organization’s name": "Nom de votre organisation", "Your organization’s name in either English or French is required.": "Le nom de votre organisation est requis en anglais ou en français.", @@ -2420,6 +2452,7 @@ "Your project has been created.": "Votre projet a été créé.", "Your project has been deleted.": "Votre projet a été supprimé.", "Your projects and engagements": "Vos projets et consultations", + "Your pronouns must be provided in at least English or French.": "", "your public profile will be removed from the platform": "votre profil public sera supprimé de la plateforme", "your public profile will be removed from the website": "votre profil public sera supprimé du site Internet", "Your regulated organization, :name, will be deleted and cannot be recovered. If you still want to delete your regulated organization, please enter your current password to proceed.": "Votre organisme réglementé, :name, sera supprimé et ne pourra pas être récupéré. Si vous souhaitez toujours supprimer votre organisme réglementé, veuillez saisir votre mot de passe actuel pour continuer.", diff --git a/resources/views/about/roles/accessibility-consultants.blade.php b/resources/views/about/roles/accessibility-consultants.blade.php index 0844fd9fb..a52a9160e 100644 --- a/resources/views/about/roles/accessibility-consultants.blade.php +++ b/resources/views/about/roles/accessibility-consultants.blade.php @@ -22,8 +22,11 @@{{ __('Ideally, an Accessibility Consultant has:') }}
{{ __('Ideally a Community Connector has:') }}
{{ __('Any of the following could be Consultation Participants:') }}
{{ __('Any of the following could be Consultation Participants:') }}
{{ __('Please read these terms of service carefully.') }}
- {!! Str::markdown( - __( - 'Institute for Research and Development on Inclusion and Society (“**IRIS**”, “**we**”, “**us**” or “**our**”) invites you (“**you**” or “**your**”) to join The Accessibility Exchange, a platform enabling people with disabilities, Deaf persons, and their supporters and people and organizations with expertise in supporting these communities to connect with one another and with federally regulated organizations (“**FROs**”) and other organizations (together with FROs, the “**Project Proponents**”), for the purpose of developing accessibility plans or other relevant services (the “**Service**”), which you can access at **[[:url](:url)]** or on our mobile applications (the “**Platform**”). These terms of service and the IRIS Privacy Policy (together, the “**Terms**”) govern your use of the Platform and represent a legally binding agreement between you and IRIS.', - ['url' => $appURL], - ), - ) !!} + {{ safe_markdown( + 'Institute for Research and Development on Inclusion and Society (“**IRIS**”, “**we**”, “**us**” or “**our**”) invites you (“**you**” or “**your**”) to join The Accessibility Exchange, a platform enabling people with disabilities, Deaf persons, and their supporters and people and organizations with expertise in supporting these communities to connect with one another and with federally regulated organizations (“**FROs**”) and other organizations (together with FROs, the “**Project Proponents**”), for the purpose of developing accessibility plans or other relevant services (the “**Service**”), which you can access at **[<:url>]** or on our mobile applications (the “**Platform**”). These terms of service and the IRIS Privacy Policy (together, the “**Terms**”) govern your use of the Platform and represent a legally binding agreement between you and IRIS.', + ['url' => $appURL], + ) }}{{ __('By clicking to accept the Terms or otherwise using the Platform you agree to be bound by these Terms.') }}
{{ __('USER SHOULD SEEK LEGAL ADVICE BEFORE UTILIZING OR ENTERING INTO ANY AGREEMENTS OR OTHER DOCUMENTS OR RELYING ON ANY INFORMATION MADE AVAILABLE THROUGH THE PLATFORM. IRIS DOES NOT PROVIDE LEGAL ADVICE OR ANY ADVICE CONCERNING ANY LEGAL DOCUMENTS OFFERED BY A USER TO ANOTHER USER, INCLUDING PROJECT AGREEMENTS.') }}
{{ __('IRIS has implemented security policies and practices that are designed to protect the security and integrity of the Platform; however, IRIS does not guarantee the security of the Platform or the security or integrity of any communications between you and the Platform. You acknowledge that you alone are responsible for ensuring you have a secure connection to access the Platform and implementing security safeguards to protect yourself when accessing and using the Platform, including taking precautions against viruses, worms, trojan horses and other items of a disabling or destructive nature.') }} @@ -174,7 +128,7 @@
{{ __('YOU EXPRESSLY UNDERSTAND AND AGREE THAT IRIS WILL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY DAMAGES, OR DAMAGES FOR LOSS OF PROFITS INCLUDING BUT NOT LIMITED TO, DAMAGES FOR LOSS OF GOODWILL, USE, DATA OR OTHER INTANGIBLE LOSSES (EVEN IF IRIS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES), WHETHER BASED ON CONTRACT, TORT, NEGLIGENCE, STRICT LIABILITY OR OTHERWISE, INCLUDING BUT NOT LIMITED TO THOSE DAMAGES RESULTING FROM: (I) THE USE OR THE INABILITY TO USE THE PLATFORM; (II) THE COST OF PROCUREMENT OF SUBSTITUTE GOODS AND SERVICES RESULTING FROM ANY GOODS, DATA, INFORMATION OR SERVICES PURCHASED OR OBTAINED OR MESSAGES RECEIVED OR TRANSACTIONS ENTERED INTO THROUGH OR FROM THE PLATFORM; (III) UNAUTHORIZED ACCESS TO OR ALTERATION OF YOUR TRANSMISSIONS OR DATA; (IV) STATEMENTS OR CONDUCT OF ANY THIRD PARTY ON THE PLATFORM; (V) ANY ACTION YOU TAKE BASED ON THE INFORMATION YOU RECEIVE IN THROUGH OR FROM PLATFORM; (VI) YOUR FAILURE TO KEEP YOUR PASSWORD OR ACCOUNT DETAILS SECURE AND CONFIDENTIAL; (VII) THE IMPROPER AUTHORIZATION FOR THE PLATFORM BY SOMEONE CLAIMING SUCH AUTHORITY; OR (VII) ANY OTHER MATTER RELATING TO THE PLATFORM.') }}
- {!! Str::markdown( - __( - 'IN NO EVENT WILL IRIS’ TOTAL AGGREGATE LIABILITY, FOR ANY AND ALL CLAIMS ARISING OUT OF OR RELATED TO THIS AGREEMENT, THE PLATFORM, PLATFORM CONTENT AND ANY SERVICES, WHETHER IN CONTRACT, TORT OR UNDER ANY OTHER THEORY OF LIABILITY, EXCEED THE LESSER OF (I) ANY FEES PAID BY THE USER TO IRIS FOR THE SERVICES DURING **[THE TWELVE (12) MONTH PERIOD IMMEDIATELY PRECEDING THE DATE ON WHICH THE CAUSE OF ACTION AROSE; AND (II) SIX HUNDRED AND TWENTY-FIVE DOLLARS (CDN$625.00)]**. ', - ), - ) !!} + {{ safe_markdown('IN NO EVENT WILL IRIS’ TOTAL AGGREGATE LIABILITY, FOR ANY AND ALL CLAIMS ARISING OUT OF OR RELATED TO THIS AGREEMENT, THE PLATFORM, PLATFORM CONTENT AND ANY SERVICES, WHETHER IN CONTRACT, TORT OR UNDER ANY OTHER THEORY OF LIABILITY, EXCEED THE LESSER OF (I) ANY FEES PAID BY THE USER TO IRIS FOR THE SERVICES DURING **[THE TWELVE (12) MONTH PERIOD IMMEDIATELY PRECEDING THE DATE ON WHICH THE CAUSE OF ACTION AROSE; AND (II) SIX HUNDRED AND TWENTY-FIVE DOLLARS (CDN$625.00)]**. ') }}{{ __('SOME JURISDICTIONS DO NOT ALLOW THE DISCLAIMER OR EXCLUSION OF CERTAIN WARRANTIES OR THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES. ACCORDINGLY, SOME OF THE ABOVE LIMITATIONS SET FORTH ABOVE MAY NOT APPLY TO YOU OR BE ENFORCEABLE WITH RESPECT TO YOU.') }}
{{ __('IF YOU ARE DISSATISFIED WITH ANY PORTION OF THE PLATFORM OR WITH THESE TERMS OF SERVICE, YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USE OF THE PLATFORM.') }} @@ -355,22 +268,12 @@
{{ __('In the event that IRIS terminates or suspends the User’s access to the Services or this Agreement under this Subsection 16(b), User will receive a pro-rata refund of any prepaid fees paid to IRIS for which Services have not been provided. IRIS shall not be liable to you or to any third party for any suspension or discontinuance of the Services or the Platform, including on account of any expenditures or investments or other commitments made or actions taken in reliance on the expected continuation of the Services or Platform. Any suspected fraudulent, abusive or illegal activity that may be grounds for termination of your use of the Platform and may be referred to appropriate law enforcement authorities.') }}
- {!! __('If you already have an account, please :sign_in', [ - 'sign_in' => '' . __('sign in.') . '', - ]) !!} -
+ {{ safe_markdown('If you already have an account, please [sign in](:url).', ['url' => localized_route('login')]) }} + diff --git a/resources/views/components/array-list-view.blade.php b/resources/views/components/array-list-view.blade.php new file mode 100644 index 000000000..9016a06a3 --- /dev/null +++ b/resources/views/components/array-list-view.blade.php @@ -0,0 +1,10 @@ +@props(['data']) +@if (count($data) === 1) +{{ $data[0] }}
+@else +{{ __('Training') }}
@if ($model->introduction) - {!! Str::markdown($model->introduction) !!} + {!! Str::markdown($model->introduction, SAFE_MARKDOWN_OPTIONS) !!} @endif diff --git a/resources/views/components/card/engagement.blade.php b/resources/views/components/card/engagement.blade.php index 4320e34cd..017292a50 100644 --- a/resources/views/components/card/engagement.blade.php +++ b/resources/views/components/card/engagement.blade.php @@ -31,7 +31,7 @@ @if ($model->recruitment === 'open-call') {{ __('Seeking participants') }} @endif - @if ($model->seeking_community_connector) + @if ($model->extra_attributes->get('seeking_community_connector')) {{ __('Seeking community connector') }} @endif $model->paid])>{{ $model->paid ? __('Paid') : __('Volunteer') }} diff --git a/resources/views/components/card/resource-collection.blade.php b/resources/views/components/card/resource-collection.blade.php index b937de73d..468694840 100644 --- a/resources/views/components/card/resource-collection.blade.php +++ b/resources/views/components/card/resource-collection.blade.php @@ -7,5 +7,7 @@{{ __('Collection') }}
- {!! Str::markdown($model->description) !!} + @isset($model->description) + {!! Str::markdown($model->description, SAFE_MARKDOWN_OPTIONS) !!} + @endisset diff --git a/resources/views/components/card/resource.blade.php b/resources/views/components/card/resource.blade.php index 60ff8daa9..ab386bbfd 100644 --- a/resources/views/components/card/resource.blade.php +++ b/resources/views/components/card/resource.blade.php @@ -17,6 +17,6 @@ {{ implode(', ', Arr::map(array_keys($model->getTranslations('url')), fn($code) => get_language_exonym($code, null, true, true))) }} @if ($model->summary) - {!! Str::markdown($model->summary) !!} + {!! Str::markdown($model->summary, SAFE_MARKDOWN_OPTIONS) !!} @endif diff --git a/resources/views/components/date-picker.blade.php b/resources/views/components/date-picker.blade.php index 5b863fb95..d7fa9627f 100644 --- a/resources/views/components/date-picker.blade.php +++ b/resources/views/components/date-picker.blade.php @@ -48,4 +48,5 @@