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 @@
-

{!! __('What experiences should I have to be an :role?', ['role' => __('Accessibility Consultant')]) !!}

- +

+ {{ __('What experiences should I have to be an :role?', ['role' => __('Accessibility Consultant')]) }} +

+

{{ __('Ideally, an Accessibility Consultant has:') }}

    @@ -38,8 +41,10 @@
    -

    {!! __('How does being an :role work?', ['role' => __('Accessibility Consultant')]) !!}

    - +

    + {{ __('How does being an :role work?', ['role' => __('Accessibility Consultant')]) }}

    +
    diff --git a/resources/views/about/roles/community-connectors.blade.php b/resources/views/about/roles/community-connectors.blade.php index 871c157ef..b91fe2e31 100644 --- a/resources/views/about/roles/community-connectors.blade.php +++ b/resources/views/about/roles/community-connectors.blade.php @@ -22,8 +22,10 @@
    -

    {!! __('What experiences should I have to be a :role?', ['role' => __('Community Connector')]) !!}

    - +

    + {{ __('What experiences should I have to be a :role?', ['role' => __('Community Connector')]) }}

    +

    {{ __('Ideally a Community Connector has:') }}

      @@ -37,8 +39,10 @@ -

      {!! __('How does being a :role work?', ['role' => __('Community Connector')]) !!}

      - +

      + {{ __('How does being a :role work?', ['role' => __('Community Connector')]) }}

      +

      {{ __('1. Sign up for the website and build your Community Connector profile') }}

      diff --git a/resources/views/about/roles/community-organizations-consultation-participants.blade.php b/resources/views/about/roles/community-organizations-consultation-participants.blade.php index 1ccf73338..5ba83b5d1 100644 --- a/resources/views/about/roles/community-organizations-consultation-participants.blade.php +++ b/resources/views/about/roles/community-organizations-consultation-participants.blade.php @@ -16,8 +16,10 @@
      -

      {!! __('Who can be a :role?', ['role' => __('Consultation Participant')]) !!}

      - +

      + {{ __('Who can be a :role?', ['role' => __('Consultation Participant')]) }}

      +

      {{ __('Any of the following could be Consultation Participants:') }}

        @@ -34,8 +36,11 @@
        -

        {!! __('How does being a :role work?', ['role' => '' . __('Consultation Participant') . '']) !!}

        - +

        + {{ safe_inlineMarkdown('How does being a **:role** work?', ['role' => __('Consultation Participant')]) }} +

        +
        diff --git a/resources/views/about/roles/consultation-participants.blade.php b/resources/views/about/roles/consultation-participants.blade.php index 8fbc63923..d4a713955 100644 --- a/resources/views/about/roles/consultation-participants.blade.php +++ b/resources/views/about/roles/consultation-participants.blade.php @@ -16,8 +16,16 @@
        -

        {!! __('Who can be a :role?', ['role' => __('Consultation Participant')]) !!}

        - +

        + {{ __('Who can be a :role?', ['role' => __('Consultation Participant')]) }}

        +

        {{ __('Any of the following could be Consultation Participants:') }}

          @@ -34,8 +42,11 @@
          -

          {!! __('How does being a :role work?', ['role' => '' . __('Consultation Participant') . '']) !!}

          - +

          + {{ safe_inlineMarkdown('How does being a **:role** work?', ['role' => __('Consultation Participant')]) }} +

          +
          diff --git a/resources/views/about/roles/get-input-for-projects.blade.php b/resources/views/about/roles/get-input-for-projects.blade.php index 414f0e274..bd07db260 100644 --- a/resources/views/about/roles/get-input-for-projects.blade.php +++ b/resources/views/about/roles/get-input-for-projects.blade.php @@ -30,7 +30,7 @@
          -

          {!! __('How does getting input for your projects work?') !!}

          +

          {{ __('How does getting input for your projects work?') }}

          diff --git a/resources/views/about/terms-of-service.blade.php b/resources/views/about/terms-of-service.blade.php index 578b60036..f71d415a5 100644 --- a/resources/views/about/terms-of-service.blade.php +++ b/resources/views/about/terms-of-service.blade.php @@ -14,72 +14,59 @@

          {{ __('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.') }}

          {{ __('Definitions') }}

            -
          1. {!! Str::inlineMarkdown( - __( - '“**Accessibility Consultant**” means an individual or organization helping Project Proponents design, facilitate and complete their Projects.', - ), - ) !!}
          2. -
          3. {!! Str::inlineMarkdown( - __( - '“**Community Connector**” means an individual or organization helping connect communities to Project Proponents seeking knowledge about how to connect with and/or support the community or Consultation Participants.', - ), - ) !!}
          4. -
          5. {!! Str::inlineMarkdown( - __( - '“**Consultation Participant**” means an individual or organization participating in consultations hosted by Project Proponents.', - ), - ) !!}
          6. -
          7. {!! Str::inlineMarkdown( - __( - '“**Consultants**” means an Accessibility Consultant, Community Connector, or Consultation Participants, as the context may require.', - ), - ) !!}
          8. -
          9. {!! Str::inlineMarkdown( - __( - '“**Content**” means documents, including agreements or memorandums of understanding, code, links, video, images, information, data, text, software, music, sound, photographs, images, graphics, messages, financial information, postings, files, identification, video, key word data and other advertising content, and other information or materials.', - ), - ) !!}
          10. -
          11. {!! Str::inlineMarkdown(__('“**FRO**” has the meaning set out in the opening paragraph of these Terms.')) !!}
          12. -
          13. {!! Str::inlineMarkdown(__('“**Indemnitees**” has the meaning set out in Section 12(a) of these Terms.')) !!}
          14. -
          15. {!! Str::inlineMarkdown(__('“**IRIS Trademarks**” has the meaning set out in Section 9(b) of these Terms.')) !!}
          16. -
          17. {!! Str::inlineMarkdown( - __( - '“**Project**” means any engagement to develop an accessibility plan or to undertake other activities to improve accessibility, between a Consultant and a Project Proponent pursuant to a Project Agreement.', - ), - ) !!}
          18. -
          19. {!! Str::inlineMarkdown(__('“**Project Agreement**” has the meaning set out in Section 2(b) of these Terms.')) !!}
          20. -
          21. {!! Str::inlineMarkdown( - __('“**Registration Information**” has the meaning set out in Section 3(a) of these Terms.'), - ) !!}
          22. -
          23. {!! Str::inlineMarkdown(__('“**Service Content**” has the meaning set out in Section 9(a) of these Terms.')) !!}
          24. -
          25. {!! Str::inlineMarkdown(__('“**Services**” has the meaning set out in the opening paragraph of these Terms.')) !!}
          26. -
          27. {!! Str::inlineMarkdown(__('“**Submissions**” has the meaning set out in Section 10(c) of these Terms.')) !!}
          28. -
          29. {!! Str::inlineMarkdown(__('“**Third Party Content**” has the meaning set out in Section 8(a) of these Terms.')) !!}
          30. -
          31. {!! Str::inlineMarkdown( - __('“**Third Party Provider**” has the meaning set out in Section 8(a) of these Terms.'), - ) !!}
          32. -
          33. {!! Str::inlineMarkdown(__('“**Third Party Service**” has the meaning set out in Section 8(b) of these Terms.')) !!}
          34. -
          35. {!! Str::inlineMarkdown(__('“**Third Party Terms**” has the meaning set out in Section 8(b) of these Terms.')) !!}
          36. -
          37. {!! Str::inlineMarkdown(__('“**Underaged Person**” has the meaning set out in Section 3(a) of these Terms.')) !!}
          38. -
          39. {!! Str::inlineMarkdown(__('“**Upload**” means to upload, post or publish on the Platform.')) !!}
          40. -
          41. {!! Str::inlineMarkdown( - __( - '“**User**” or “**you**” means a Project Proponent or Consultant, as the circumstances may indicate or require. ', - ), - ) !!}
          42. -
          43. {!! Str::inlineMarkdown(__('“**User Content**” has the meaning set out in Section 7(a) of these Terms.')) !!}
          44. +
          45. {{ safe_inlineMarkdown('“**Accessibility Consultant**” means an individual or organization helping Project Proponents design, facilitate and complete their Projects.') }} +
          46. +
          47. {{ safe_inlineMarkdown('“**Community Connector**” means an individual or organization helping connect communities to Project Proponents seeking knowledge about how to connect with and/or support the community or Consultation Participants.') }} +
          48. +
          49. {{ safe_inlineMarkdown('“**Consultation Participant**” means an individual or organization participating in consultations hosted by Project Proponents.') }} +
          50. +
          51. {{ safe_inlineMarkdown('“**Consultants**” means an Accessibility Consultant, Community Connector, or Consultation Participants, as the context may require.') }} +
          52. +
          53. {{ safe_inlineMarkdown('“**Content**” means documents, including agreements or memorandums of understanding, code, links, video, images, information, data, text, software, music, sound, photographs, images, graphics, messages, financial information, postings, files, identification, video, key word data and other advertising content, and other information or materials.') }} +
          54. +
          55. {{ safe_inlineMarkdown('“**FRO**” has the meaning set out in the opening paragraph of these Terms.') }} +
          56. +
          57. {{ safe_inlineMarkdown('“**Indemnitees**” has the meaning set out in Section 12(a) of these Terms.') }} +
          58. +
          59. {{ safe_inlineMarkdown('“**IRIS Trademarks**” has the meaning set out in Section 9(b) of these Terms.') }} +
          60. +
          61. {{ safe_inlineMarkdown('“**Project**” means any engagement to develop an accessibility plan or to undertake other activities to improve accessibility, between a Consultant and a Project Proponent pursuant to a Project Agreement.') }} +
          62. +
          63. {{ safe_inlineMarkdown('“**Project Agreement**” has the meaning set out in Section 2(b) of these Terms.') }} +
          64. +
          65. {{ safe_inlineMarkdown('“**Registration Information**” has the meaning set out in Section 3(a) of these Terms.') }} +
          66. +
          67. {{ safe_inlineMarkdown('“**Service Content**” has the meaning set out in Section 9(a) of these Terms.') }} +
          68. +
          69. {{ safe_inlineMarkdown('“**Services**” has the meaning set out in the opening paragraph of these Terms.') }} +
          70. +
          71. {{ safe_inlineMarkdown('“**Submissions**” has the meaning set out in Section 10(c) of these Terms.') }} +
          72. +
          73. {{ safe_inlineMarkdown('“**Third Party Content**” has the meaning set out in Section 8(a) of these Terms.') }} +
          74. +
          75. {{ safe_inlineMarkdown('“**Third Party Provider**” has the meaning set out in Section 8(a) of these Terms.') }} +
          76. +
          77. {{ safe_inlineMarkdown('“**Third Party Service**” has the meaning set out in Section 8(b) of these Terms.') }} +
          78. +
          79. {{ safe_inlineMarkdown('“**Third Party Terms**” has the meaning set out in Section 8(b) of these Terms.') }} +
          80. +
          81. {{ safe_inlineMarkdown('“**Underaged Person**” has the meaning set out in Section 3(a) of these Terms.') }} +
          82. +
          83. {{ safe_inlineMarkdown('“**Upload**” means to upload, post or publish on the Platform.') }}
          84. +
          85. {{ safe_inlineMarkdown('“**User**” or “**you**” means a Project Proponent or Consultant, as the circumstances may indicate or require. ') }} +
          86. +
          87. {{ safe_inlineMarkdown('“**User Content**” has the meaning set out in Section 7(a) of these Terms.') }} +

          @@ -87,7 +74,7 @@

          1. - {!! Str::markdown(__('**The Platform is a Venue.** The Platform serves as a venue that:')) !!} + {{ safe_markdown('**The Platform is a Venue.** The Platform serves as a venue that:') }}
            1. {{ __('provides digital tools for Project Proponents to propose Projects, enter into relationships with Consultants who can assist them with the design and development of such Projects; and') }}
            2. @@ -98,74 +85,41 @@ {{ __('USE OF THE PLATFORM, ANY SERVICE CONTENT AND THE SERVICES IS AT USER’S DISCRETION AND RISK.') }}

              -
            3. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
            4. +
            5. {{ safe_inlineMarkdown('**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.') }} +
            6. - {!! Str::markdown( - __( - '**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.', - ), - ) !!} + {{ safe_markdown('**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.') }}

              {{ __('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.') }}

            7. -
            8. {!! Str::inlineMarkdown( - __( - '**Applicable Laws.** You agree that you are responsible for, and agree to abide by, all laws, rules, and regulations applicable to your use of the Platform, your use of any tool, service or product offered on the Platform and any transaction or agreement you enter into on the Platform or in connection with your use of the Platform. You further agree that you are responsible for and agree to abide by all laws, rules and regulations applicable to the Project, including any and all laws, rules, regulations or other requirements relating to taxes, credit cards, data and privacy, accessibility, and compliance with all anti-discrimination laws, as applicable.', - ), - ) !!}
            9. -
            10. {!! Str::inlineMarkdown( - __( - '**Compliance with Government Investigations.** You acknowledge that, even though we are not a party to any Project Agreement, unless otherwise stated in a particular Project Agreement, and assume no liability for legal or regulatory compliance pertaining to any Project listed on the Platform, there may be circumstances where we are nevertheless legally obligated (as we may determine in our sole discretion) to provide information relating to your Project in order to comply with governmental bodies in relation to investigations, litigation or administrative proceedings, and we may choose to comply with or disregard such obligation in our sole discretion.', - ), - ) !!}
            11. -
            12. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
            13. +
            14. {{ safe_inlineMarkdown('**Applicable Laws.** You agree that you are responsible for, and agree to abide by, all laws, rules, and regulations applicable to your use of the Platform, your use of any tool, service or product offered on the Platform and any transaction or agreement you enter into on the Platform or in connection with your use of the Platform. You further agree that you are responsible for and agree to abide by all laws, rules and regulations applicable to the Project, including any and all laws, rules, regulations or other requirements relating to taxes, credit cards, data and privacy, accessibility, and compliance with all anti-discrimination laws, as applicable.') }} +
            15. +
            16. {{ safe_inlineMarkdown('**Compliance with Government Investigations.** You acknowledge that, even though we are not a party to any Project Agreement, unless otherwise stated in a particular Project Agreement, and assume no liability for legal or regulatory compliance pertaining to any Project listed on the Platform, there may be circumstances where we are nevertheless legally obligated (as we may determine in our sole discretion) to provide information relating to your Project in order to comply with governmental bodies in relation to investigations, litigation or administrative proceedings, and we may choose to comply with or disregard such obligation in our sole discretion.') }} +
            17. +
            18. {{ safe_inlineMarkdown('**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.') }} +

            {{ __('ACCESS AND USE OF THE PLATFORM') }}

              -
            1. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
            2. -
            3. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
            4. -
            5. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
            6. -
            7. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
            8. -
            9. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
            10. +
            11. {{ safe_inlineMarkdown('**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.') }} +
            12. +
            13. {{ safe_inlineMarkdown('**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.') }} +
            14. +
            15. {{ safe_inlineMarkdown('**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.') }} +
            16. +
            17. {{ safe_inlineMarkdown('**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.') }} +
            18. +
            19. {{ safe_inlineMarkdown('**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.') }} +

            {{ __('PRIVACY AND CONFIDENTIALITY.') }}

            - {!! Str::markdown( - __( - 'IRIS respects your right to privacy. Any personal information collected in connection with your registering on and use of the Platform shall be done in accordance with [IRIS’ Privacy Policy](:url), which forms part of these Terms. User is responsible for its compliance with all applicable privacy laws and covenants that all personal data and information provided to IRIS or uploaded to the Platform is provided in compliance with applicable laws.', - ['url' => localized_route('about.privacy-policy')], - ), - ) !!} + {{ safe_markdown( + 'IRIS respects your right to privacy. Any personal information collected in connection with your registering on and use of the Platform shall be done in accordance with [IRIS’ Privacy Policy](:url), which forms part of these Terms. User is responsible for its compliance with all applicable privacy laws and covenants that all personal data and information provided to IRIS or uploaded to the Platform is provided in compliance with applicable laws.', + ['url' => localized_route('about.privacy-policy')], + ) }}

            {{ __('SECURITY.') }}

            {{ __('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 @@

            {{ __('CONDITIONS OF USE.') }}

            1. - {!! Str::markdown(__('**Unauthorized uses of the Platform.** You agree not to:')) !!} + {{ safe_markdown('**Unauthorized uses of the Platform.** You agree not to:') }}
              1. {{ __('Engage in the commercial use of the Platform except for the purposes set out in these Terms;') }}
              2. @@ -215,23 +169,16 @@
            2. -
            3. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
            4. -
            5. {!! Str::inlineMarkdown( - __( - '**Suspension.** You acknowledge and agree that you are solely responsible for (and that IRIS has no responsibility to you or to any third party for) any breach of your obligations under these Terms or for the consequences (including any loss or damage which IRIS may suffer) of any such breach. If you breach these Terms and/or IRIS has a reasonable ground to suspect that you have violated the terms of these Terms, IRIS may suspend or terminate your access to and use of the Platform (or any portion thereof).', - ), - ) !!}
            6. +
            7. {{ safe_inlineMarkdown('**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.') }} +
            8. +
            9. {{ safe_inlineMarkdown('**Suspension.** You acknowledge and agree that you are solely responsible for (and that IRIS has no responsibility to you or to any third party for) any breach of your obligations under these Terms or for the consequences (including any loss or damage which IRIS may suffer) of any such breach. If you breach these Terms and/or IRIS has a reasonable ground to suspect that you have violated the terms of these Terms, IRIS may suspend or terminate your access to and use of the Platform (or any portion thereof).') }} +

            {{ __('USER CONTENT.') }}

              -
            1. {!! Str::inlineMarkdown( - __('You are solely responsible for all Content that you Upload or make available to IRIS (“**User Content**”).'), - ) !!}
            2. +
            3. {{ safe_inlineMarkdown('You are solely responsible for all Content that you Upload or make available to IRIS (“**User Content**”).') }} +
            4. {{ __('You acknowledge that IRIS does not independently evaluate, investigate, or otherwise conduct any due diligence regarding any User Content provided by other Users and IRIS has no liability to User for any damage or loss concerning the accuracy of User Content or User’s access to, or use of, or reliance on, any User Content.') }}
            5. {{ __('User represents and warrants that all User Content made available to and through the Platform: (i) is true, accurate and current; (ii) belongs to User and that User owns all right, title and interest in and to such User Content, including, without limitation, all copyrights and rights of publicity contained therein; (iii) does not and will not, directly or indirectly, infringe, violate or breach any duty toward or rights of any person or entity, including without limitation any copyright, trademark, service mark, trade secret, other intellectual property, publicity or privacy right; (iv) provided in compliance with all applicable laws, regulations, regulatory guidelines, policies and codes and industry guidelines, policies and codes.') }} @@ -244,61 +191,34 @@

              {{ __('THIRD PARTY CONTENT AND SERVICES.') }}

                -
              1. {!! Str::inlineMarkdown( - __( - '**Third Party Content.** Certain third-party service providers, including advertisers, payment processing vendors, and other service providers (“**Third Party Provider**”) may Upload Content to the Platform (“**Third Party Content**”). IRIS does not control or own, is not responsible for, and does not guarantee the accuracy, integrity, or quality of such Third Party Content. All issues or concerns, technical or otherwise, with Third Party Content must be addressed by contacting the applicable Third Party Provider directly and not through IRIS. Under no circumstances will IRIS be liable in any way for any Third Party Content, including, but not limited to, any errors or omissions in any such Third Party Content, or for any loss or damage of any kind incurred as a result of the use of any such content posted, emailed, or otherwise transmitted via the Platform. You acknowledge and agree that you rely on the use of any Third Party Content, at your own risk, including any reliance on the accuracy, completeness, or usefulness of such content.', - ), - ) !!}
              2. -
              3. {!! Str::inlineMarkdown( - __( - '**Third Party Services.** In addition to Third Party Content, the Platform may allow you to connect with Third Party Providers in order to purchase goods and/or sign up for, services from or participate in promotions of a Third Party (“**Third Party Service**”). You acknowledge and agree that the provision of any Third Party Service is provided solely by the applicable Third Party, and not IRIS, and is subject to the terms and conditions of such Third Party (“**Third Party Terms**”). Unless otherwise stated in a particular agreement, IRIS is not a party to any Third Party Terms and shall have no liability, obligation, responsibility or duty for any Third Party Service between you and any such Third Party Provider. Your use of any Third Party Service is solely at your risk.', - ), - ) !!}
              4. -
              5. {!! Str::inlineMarkdown( - __( - '**Third Party Payment Processors.** If as part of the Services the Platform offers Project Proponents the ability to pay Consultants directly, any such payments will made using a Third Party Service provided by a Third Party Provider. The processing of payments or credits, as applicable will be subject to the Third Party Terms of the Third Party Provider and applicable credit card issuer. IRIS is not responsible for any errors by the payment processor and Users will resolve any disputes for amounts charged directly with the payment processor. In connection with Users’ use of the Platform and receipt of Services, IRIS may obtain certain transaction details, which IRIS will only use in accordance with these Terms. Users will be responsible to obtain all necessary authorizations and consents to process User credit cards and other permitted payment cards and methods.', - ), - ) !!}
              6. +
              7. {{ safe_inlineMarkdown('**Third Party Content.** Certain third-party service providers, including advertisers, payment processing vendors, and other service providers (“**Third Party Provider**”) may Upload Content to the Platform (“**Third Party Content**”). IRIS does not control or own, is not responsible for, and does not guarantee the accuracy, integrity, or quality of such Third Party Content. All issues or concerns, technical or otherwise, with Third Party Content must be addressed by contacting the applicable Third Party Provider directly and not through IRIS. Under no circumstances will IRIS be liable in any way for any Third Party Content, including, but not limited to, any errors or omissions in any such Third Party Content, or for any loss or damage of any kind incurred as a result of the use of any such content posted, emailed, or otherwise transmitted via the Platform. You acknowledge and agree that you rely on the use of any Third Party Content, at your own risk, including any reliance on the accuracy, completeness, or usefulness of such content.') }} +
              8. +
              9. {{ safe_inlineMarkdown('**Third Party Services.** In addition to Third Party Content, the Platform may allow you to connect with Third Party Providers in order to purchase goods and/or sign up for, services from or participate in promotions of a Third Party (“**Third Party Service**”). You acknowledge and agree that the provision of any Third Party Service is provided solely by the applicable Third Party, and not IRIS, and is subject to the terms and conditions of such Third Party (“**Third Party Terms**”). Unless otherwise stated in a particular agreement, IRIS is not a party to any Third Party Terms and shall have no liability, obligation, responsibility or duty for any Third Party Service between you and any such Third Party Provider. Your use of any Third Party Service is solely at your risk.') }} +
              10. +
              11. {{ safe_inlineMarkdown('**Third Party Payment Processors.** If as part of the Services the Platform offers Project Proponents the ability to pay Consultants directly, any such payments will made using a Third Party Service provided by a Third Party Provider. The processing of payments or credits, as applicable will be subject to the Third Party Terms of the Third Party Provider and applicable credit card issuer. IRIS is not responsible for any errors by the payment processor and Users will resolve any disputes for amounts charged directly with the payment processor. In connection with Users’ use of the Platform and receipt of Services, IRIS may obtain certain transaction details, which IRIS will only use in accordance with these Terms. Users will be responsible to obtain all necessary authorizations and consents to process User credit cards and other permitted payment cards and methods.') }} +

              {{ __('INTELLECTUAL PROPERTY RIGHTS.') }}

                -
              1. {!! Str::markdown( - __( - '**Service Content.** You acknowledge and agree that all right, title, and interest (including all intellectual property rights) in and to the Platform and any Content on the Platform (excluding any User Content and any Third Party Content), including but not limited to graphics, design, compilation, interfaces, computer code, products, software (these content, the “**Service Content**”) are and will remain the sole and exclusive property of IRIS or its third party licensors, as applicable. Any rights not expressly granted under these Terms are reserved by IRIS. Any use of the Platform or the Service Content other than as specifically authorized herein is strictly prohibited. To the extent that IRIS identifies any Service Content or other information on the Platform as confidential, you agree that you will not disclose such information without IRIS’ prior written consent. ', - ), - ) !!}
              2. -
              3. {!! Str::markdown( - __( - '**Trademarks.** The IRIS name and logos and The Accessibility Exchange name and logos are trademarks and business names of the Institute for Research and Development on Inclusion and Society (collectively the “**IRIS Trademarks**”). Other company, product, and service names and logos used and displayed via the Platform are trademarks of their respective owners who may or may not endorse or be affiliated with or connected to IRIS. Nothing in these Terms or the Platform should be construed as granting, by implication, estoppel, or otherwise, any license or right to use any of the IRIS Trademarks displayed on the Platform without our prior written permission in each instance. All goodwill generated from the use of the IRIS Trademarks will inure to our exclusive benefit.', - ), - ) !!}
              4. +
              5. {{ safe_markdown('**Service Content.** You acknowledge and agree that all right, title, and interest (including all intellectual property rights) in and to the Platform and any Content on the Platform (excluding any User Content and any Third Party Content), including but not limited to graphics, design, compilation, interfaces, computer code, products, software (these content, the “**Service Content**”) are and will remain the sole and exclusive property of IRIS or its third party licensors, as applicable. Any rights not expressly granted under these Terms are reserved by IRIS. Any use of the Platform or the Service Content other than as specifically authorized herein is strictly prohibited. To the extent that IRIS identifies any Service Content or other information on the Platform as confidential, you agree that you will not disclose such information without IRIS’ prior written consent. ') }} +
              6. +
              7. {{ safe_markdown('**Trademarks.** The IRIS name and logos and The Accessibility Exchange name and logos are trademarks and business names of the Institute for Research and Development on Inclusion and Society (collectively the “**IRIS Trademarks**”). Other company, product, and service names and logos used and displayed via the Platform are trademarks of their respective owners who may or may not endorse or be affiliated with or connected to IRIS. Nothing in these Terms or the Platform should be construed as granting, by implication, estoppel, or otherwise, any license or right to use any of the IRIS Trademarks displayed on the Platform without our prior written permission in each instance. All goodwill generated from the use of the IRIS Trademarks will inure to our exclusive benefit.') }} +
              8. {{ __('You agree that you shall not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Platform or in or on any Service Content.') }}

              {{ __('LICENSES.') }}

                -
              1. {!! Str::inlineMarkdown( - __( - '**Use of the Platform.** IRIS authorizes You to access and use the Platform solely for the purpose of searching, accessing, downloading and reviewing Platform content (in print, audio, video or other provided format) for informational purposes only and solely for your own use.', - ), - ) !!}
              2. -
              3. {!! Str::inlineMarkdown( - __( - '**User Content.** IRIS does not claim ownership of any User Content you provide to IRIS (including feedback and suggestions) via the Platform. Unless otherwise specified, you retain copyright and any other rights you already hold over User Content that you create and submit, post, or display on or through the Platform. However, by submitting, posting, or displaying User Content, you give IRIS and its affiliates and their successors and assigns a perpetual, irrevocable, worldwide, royalty-free, fully paid up, sublicensable and non-exclusive license to reproduce, adapt, modify, translate, publish, publicly perform, publicly display, distribute, Upload, store, edit, reformat, otherwise use and create derivative works from any User Content that you submit, post, or display on or through the Platform.', - ), - ) !!}
              4. -
              5. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
              6. -
              7. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
              8. +
              9. {{ safe_inlineMarkdown('**Use of the Platform.** IRIS authorizes You to access and use the Platform solely for the purpose of searching, accessing, downloading and reviewing Platform content (in print, audio, video or other provided format) for informational purposes only and solely for your own use.') }} +
              10. +
              11. {{ safe_inlineMarkdown('**User Content.** IRIS does not claim ownership of any User Content you provide to IRIS (including feedback and suggestions) via the Platform. Unless otherwise specified, you retain copyright and any other rights you already hold over User Content that you create and submit, post, or display on or through the Platform. However, by submitting, posting, or displaying User Content, you give IRIS and its affiliates and their successors and assigns a perpetual, irrevocable, worldwide, royalty-free, fully paid up, sublicensable and non-exclusive license to reproduce, adapt, modify, translate, publish, publicly perform, publicly display, distribute, Upload, store, edit, reformat, otherwise use and create derivative works from any User Content that you submit, post, or display on or through the Platform.') }} +
              12. +
              13. {{ safe_inlineMarkdown('**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.') }} +
              14. +
              15. {{ safe_inlineMarkdown('**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.') }} +

              {{ __('USER REPRESENTATIONS.') }}

              @@ -317,11 +237,8 @@

              {{ __('INDEMNITY AND RELEASE.') }}

                -
              1. {!! Str::inlineMarkdown( - __( - '(a) You agree to release, indemnify and hold IRIS and its affiliates and their officers, employees, directors and agents (collectively, “**Indemnitees**”) harmless from any and all losses, damages, expenses, liability, or costs, including reasonable attorneys’ fees, rights, claims, actions of any kind and injury (including death) arising out of or relating to (i) your access, use and/or misuse of the Platform; (ii) any of your User Content, including any claim by a third party that the display or other use of User Content infringes the intellectual property or other rights of a third party; (iii) your violation of these Terms or your violation of any rights of another; (iv) access and use of your Registration Information by any third parties; (v) any use of your Registration Information by an Underaged Person; or (vi) claims asserted against the Indemnitees by another User or third party arising as a consequence of User’s act, omission or conduct in relation to the use of the Platform and Services, or a Third Party Service, or any activities ancillary thereto.', - ), - ) !!}
              2. +
              3. {{ safe_inlineMarkdown('(a) You agree to release, indemnify and hold IRIS and its affiliates and their officers, employees, directors and agents (collectively, “**Indemnitees**”) harmless from any and all losses, damages, expenses, liability, or costs, including reasonable attorneys’ fees, rights, claims, actions of any kind and injury (including death) arising out of or relating to (i) your access, use and/or misuse of the Platform; (ii) any of your User Content, including any claim by a third party that the display or other use of User Content infringes the intellectual property or other rights of a third party; (iii) your violation of these Terms or your violation of any rights of another; (iv) access and use of your Registration Information by any third parties; (v) any use of your Registration Information by an Underaged Person; or (vi) claims asserted against the Indemnitees by another User or third party arising as a consequence of User’s act, omission or conduct in relation to the use of the Platform and Services, or a Third Party Service, or any activities ancillary thereto.') }} +
              4. {{ __('IRIS shall have the right, in its sole discretion, to participate in the defense of any third party claim. User will not, without the prior written approval of IRIS, settle, dispose or enter into any proposed settlement or resolution of any claim (whether having been finally adjudicated or otherwise) brought against User, if such settlement or resolution results in any obligation or liability for or admission of wrongdoing by IRIS.') }}
              5. {{ __('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.') }} @@ -339,11 +256,7 @@

                {{ __('LIMITATION OF LIABILITY.') }}

                {{ __('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 @@

                {{ __('TERMINATION.') }}

                  -
                1. {!! Str::inlineMarkdown( - __( - '**Term.** This Agreement will continue for a term of 12 months and automatically renew at the end of such period, subject to your continued payment of any subscription amounts owed.', - ), - ) !!}
                2. -
                3. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
                4. +
                5. {{ safe_inlineMarkdown('**Term.** This Agreement will continue for a term of 12 months and automatically renew at the end of such period, subject to your continued payment of any subscription amounts owed.') }} +
                6. +
                7. {{ safe_inlineMarkdown('**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.') }} +
                8. - {!! Str::markdown( - __( - '**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:', - ), - ) !!} + {{ safe_markdown('**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:') }}
                  1. {{ __('for lack of use;') }}
                  2. {{ __('if IRIS is required to do so by law (for example, where the provision of the Platform to you is, or becomes, unlawful);') }} @@ -383,11 +286,8 @@

                    {{ __('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.') }}

                  3. -
                  4. {!! Str::inlineMarkdown( - __( - '**Termination for Convenience.** You may terminate these Terms for convenience upon 30 days prior written notice to IRIS. At the end of such 30-day period, IRIS will de-activate your account and to the extent there are outstanding amounts owed from you or to you, either invoice you for any outstanding amounts owed or provide a pro-rata reimbursement of your annual subscription.', - ), - ) !!}
                  5. +
                  6. {{ safe_inlineMarkdown('**Termination for Convenience.** You may terminate these Terms for convenience upon 30 days prior written notice to IRIS. At the end of such 30-day period, IRIS will de-activate your account and to the extent there are outstanding amounts owed from you or to you, either invoice you for any outstanding amounts owed or provide a pro-rata reimbursement of your annual subscription.') }} +

                  {{ __('SURVEYS.') }}

                  @@ -396,70 +296,40 @@

                  {{ __('GENERAL') }}

                    -
                  1. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
                  2. -
                  3. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
                  4. -
                  5. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
                  6. -
                  7. {!! Str::inlineMarkdown( - __( - '**Severability.** If any provision of these Terms is found by a court of competent jurisdiction to be invalid, the parties nevertheless agree that the court should endeavor to give effect to the parties’ intentions as reflected in the provision, and the other provisions of these Terms remain in full force and effect.', - ), - ) !!}
                  8. -
                  9. {!! Str::inlineMarkdown( - __( - '**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.', - ), - ) !!}
                  10. -
                  11. {!! Str::inlineMarkdown( - __( - '**Assignment.** You may not assign these Terms without the prior written consent of IRIS, but IRIS may assign or transfer these Terms, in whole or in part, without restriction.', - ), - ) !!}
                  12. -
                  13. {!! Str::inlineMarkdown( - __( - '**Interpretation.** The section titles in these Terms are for convenience only and have no legal or contractual effect.', - ), - ) !!}
                  14. -
                  15. {!! Str::inlineMarkdown( - __( - '**Waiver.** No failure or delay by IRIS in exercising any right hereunder will waive any further exercise of that right.', - ), - ) !!}
                  16. -
                  17. {!! Str::inlineMarkdown( - __( - '**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.', - [ - 'email' => $email, - 'mailto' => "mailto:{$email}", - ], - ), - ) !!}
                  18. -
                  19. {!! Str::inlineMarkdown( - __( - '**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.', +
                  20. {{ safe_inlineMarkdown('**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.') }} +
                  21. +
                  22. {{ safe_inlineMarkdown('**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.') }} +
                  23. +
                  24. {{ safe_inlineMarkdown('**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.') }} +
                  25. +
                  26. {{ safe_inlineMarkdown('**Severability.** If any provision of these Terms is found by a court of competent jurisdiction to be invalid, the parties nevertheless agree that the court should endeavor to give effect to the parties’ intentions as reflected in the provision, and the other provisions of these Terms remain in full force and effect.') }} +
                  27. +
                  28. {{ safe_inlineMarkdown('**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.') }} +
                  29. +
                  30. {{ safe_inlineMarkdown('**Assignment.** You may not assign these Terms without the prior written consent of IRIS, but IRIS may assign or transfer these Terms, in whole or in part, without restriction.') }} +
                  31. +
                  32. {{ safe_inlineMarkdown('**Interpretation.** The section titles in these Terms are for convenience only and have no legal or contractual effect.') }} +
                  33. +
                  34. {{ safe_inlineMarkdown('**Waiver.** No failure or delay by IRIS in exercising any right hereunder will waive any further exercise of that right.') }} +
                  35. +
                  36. + {{ safe_inlineMarkdown( + '**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.', + ['email' => $email], + ) }} +
                  37. +
                  38. + {{ safe_inlineMarkdown( + '**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.', ['url' => $appURL], - ), - ) !!}
                  39. + ) }} +

                  {{ __('QUESTIONS') }}

                  - {!! Str::markdown( - __('If you have any questions, you understand that you may contact IRIS via email at **[[:email](:mailto)]**.', [ - 'email' => $email, - 'mailto' => "mailto:{$email}", - ]), - ) !!} + {{ safe_markdown('If you have any questions, you understand that you may contact IRIS via email at <:email>.', [ + 'email' => $email, + ]) }}
          diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php index 32f6024b7..57d072ff1 100644 --- a/resources/views/auth/register.blade.php +++ b/resources/views/auth/register.blade.php @@ -35,9 +35,6 @@ @include('auth.register.steps.1') @endif -

          - {!! __('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 +
            + @foreach ($data as $item) +
          • {{ $item }}
          • + @endforeach +
          +@endif diff --git a/resources/views/components/card/course.blade.php b/resources/views/components/card/course.blade.php index 5b48ae243..96ef442e4 100644 --- a/resources/views/components/card/course.blade.php +++ b/resources/views/components/card/course.blade.php @@ -8,6 +8,6 @@

          {{ __('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 @@ {{ $model->title }}

          {{ __('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 @@
          + diff --git a/resources/views/components/defined-term.blade.php b/resources/views/components/defined-term.blade.php deleted file mode 100644 index 575a4163d..000000000 --- a/resources/views/components/defined-term.blade.php +++ /dev/null @@ -1,5 +0,0 @@ -@props(['definition']) - - - {{ $slot }} - diff --git a/resources/views/components/expander.blade.php b/resources/views/components/expander.blade.php index 25cad4332..81e1a1abb 100644 --- a/resources/views/components/expander.blade.php +++ b/resources/views/components/expander.blade.php @@ -1,6 +1,6 @@ -@props(['level', 'summary' => '', 'type' => null]) -
          class(['expander stack', 'expander--disclosure' => $type === 'disclosure']) }} - x-data="{ expanded: false }"> +@props(['level', 'summary' => '', 'type' => null, 'expanded' => 'false']) +
          class(['expander stack', 'expander--disclosure' => $type === 'disclosure'])->whereDoesntStartWith('x-data') }} + x-data="{ expanded: {{ $expanded }} }">
          - {!! $slot ?? '' !!} + {{ $slot }}
          diff --git a/resources/views/components/language-switcher.blade.php b/resources/views/components/language-switcher.blade.php index 2f45b4f01..2feb2f364 100644 --- a/resources/views/components/language-switcher.blade.php +++ b/resources/views/components/language-switcher.blade.php @@ -3,7 +3,7 @@ @svg('tae-language', 'icon--2xl') {{ __('hearth::nav.languages') }} - + @foreach ($locales as $key => $locale)
        • {{ $title }}
          - {!! Str::markdown($body) !!} + {{ $body }}
          {{ $contact ?? '' }} diff --git a/resources/views/components/password-input.blade.php b/resources/views/components/password-input.blade.php index 4e0792f17..76b735891 100644 --- a/resources/views/components/password-input.blade.php +++ b/resources/views/components/password-input.blade.php @@ -1,9 +1,11 @@
          - merge([ - 'name' => $name, - 'id' => $id, - ]) !!} - {{ $required ? 'required' : '' }} @disabled($disabled) {!! $describedBy() ? 'aria-describedby="' . $describedBy() . '"' : '' !!} {!! $invalid ? 'aria-invalid="true"' : '' !!}> + merge([ + 'name' => $name, + 'id' => $id, + ]) }} + @if ($describedBy()) aria-describedby="{{ $describedBy() }}" @endif + @if ($invalid) aria-invalid="true" @endif @required($required) @disabled($disabled)>
          {{ __('Show password') }} @svg('heroicon-o-eye', 'ml-2 icon--lg') diff --git a/resources/views/components/section-heading.blade.php b/resources/views/components/section-heading.blade.php new file mode 100644 index 000000000..7b453f018 --- /dev/null +++ b/resources/views/components/section-heading.blade.php @@ -0,0 +1,10 @@ +@props(['level' => 2, 'name', 'model', 'href' => '', 'linkText' => $name]) + + {{ $name }} + @can('update', $model) + + @svg('heroicon-o-pencil', 'mr-1') + {{ safe_inlineMarkdown('Edit :!section', ['section' => '' . htmlentities($linkText) . '']) }} + + @endcan + diff --git a/resources/views/components/theme-preview.blade.php b/resources/views/components/theme-preview.blade.php index 5575357cc..196a69a30 100644 --- a/resources/views/components/theme-preview.blade.php +++ b/resources/views/components/theme-preview.blade.php @@ -1,4 +1,4 @@ -merge([ diff --git a/resources/views/components/time-frame.blade.php b/resources/views/components/time-frame.blade.php new file mode 100644 index 000000000..d3a3b7796 --- /dev/null +++ b/resources/views/components/time-frame.blade.php @@ -0,0 +1 @@ +{{ $start }}–{{ $end }} diff --git a/resources/views/components/translation-manager.blade.php b/resources/views/components/translation-manager.blade.php index 1c7cf3ba9..4f5e06ac4 100644 --- a/resources/views/components/translation-manager.blade.php +++ b/resources/views/components/translation-manager.blade.php @@ -1,5 +1,5 @@
          - + @foreach ($model->languages as $language)

          {{ get_language_exonym($language) }}@if (count($model->languages) > 1) diff --git a/resources/views/courses/show.blade.php b/resources/views/courses/show.blade.php index 097d76310..0f43d8091 100644 --- a/resources/views/courses/show.blade.php +++ b/resources/views/courses/show.blade.php @@ -43,7 +43,9 @@ })" @ended="player().setCurrentTime(0)">

          @endif -

          {{ $course->introduction }}

          + @if ($course->introduction) + {!! Str::markdown($course->introduction, SAFE_MARKDOWN_OPTIONS) !!} + @endif

          {{ __('Modules') }}

          diff --git a/resources/views/dashboard/partials/getting-started-individual.blade.php b/resources/views/dashboard/partials/getting-started-individual.blade.php index eff4880a3..3856d7a21 100644 --- a/resources/views/dashboard/partials/getting-started-individual.blade.php +++ b/resources/views/dashboard/partials/getting-started-individual.blade.php @@ -24,6 +24,11 @@

          {{ __('This will help people know what to expect when working with you.') }}

          + @if (Auth::user()->individual->paymentTypes->count() || !blank(Auth::user()->individual->other_payment_type)) + {{ __('Completed') }} + @else + {{ __('Incomplete') }} + @endif
        • @@ -41,12 +46,10 @@ {{ __('Not attended yet') }} {{ __('I’ve gone to orientation, why isn’t this updated?') }} - {!! Str::markdown( - __( - '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).', - ['url' => '#footer-contact'], - ), - ) !!} + {{ safe_markdown( + '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).', + ['url' => '#footer-contact'], + ) }} @endif

        • diff --git a/resources/views/dashboard/partials/getting-started-organization.blade.php b/resources/views/dashboard/partials/getting-started-organization.blade.php index 2618505c0..8f9ba649e 100644 --- a/resources/views/dashboard/partials/getting-started-organization.blade.php +++ b/resources/views/dashboard/partials/getting-started-organization.blade.php @@ -33,12 +33,10 @@ {{ __('Not attended yet') }} {{ __('I’ve gone to orientation, why isn’t this updated?') }} - {!! Str::markdown( - __( - '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).', - ['url' => '#footer-contact'], - ), - ) !!} + {{ safe_markdown( + '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).', + ['url' => '#footer-contact'], + ) }} @endif diff --git a/resources/views/dashboard/partials/getting-started-regulated-organization.blade.php b/resources/views/dashboard/partials/getting-started-regulated-organization.blade.php index 2b63ccaf2..8a6861794 100644 --- a/resources/views/dashboard/partials/getting-started-regulated-organization.blade.php +++ b/resources/views/dashboard/partials/getting-started-regulated-organization.blade.php @@ -33,12 +33,10 @@ {{ __('Not attended yet') }} {{ __('I’ve gone to orientation, why isn’t this updated?') }} - {!! Str::markdown( - __( - '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).', - ['url' => '#footer-contact'], - ), - ) !!} + {{ safe_markdown( + '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).', + ['url' => '#footer-contact'], + ) }} @endif diff --git a/resources/views/emails/quiz/results.blade.php b/resources/views/emails/quiz/results.blade.php index 5e6e68074..af9adf7fc 100644 --- a/resources/views/emails/quiz/results.blade.php +++ b/resources/views/emails/quiz/results.blade.php @@ -1,5 +1,5 @@ - # {{ __('Quiz results') }} +

          {{ __('Quiz results') }}

          {{ __('Congratulations, :name!', ['name' => $name]) }} {{ __('You have successfully completed course :course and passed the quiz.', ['course' => $course]) }} diff --git a/resources/views/engagements/access-needs-permissions.blade.php b/resources/views/engagements/access-needs-permissions.blade.php index e9ec31089..90fa0295e 100644 --- a/resources/views/engagements/access-needs-permissions.blade.php +++ b/resources/views/engagements/access-needs-permissions.blade.php @@ -18,11 +18,7 @@

          {{ __('Some of the access needs you’ve chosen need :projectable to directly contact you to arrange and deliver. Are you okay with us putting your name beside this access need?', ['projectable' => $project->projectable->name]) }}

          - {!! Str::markdown( - __( - '**If you select no,** our support line will contact you and arrange for a different way to have your access needs met.', - ), - ) !!} + {{ safe_markdown('**If you select no,** our support line will contact you and arrange for a different way to have your access needs met.') }}
            @forelse($identifiableAccessSupports as $support) diff --git a/resources/views/engagements/create.blade.php b/resources/views/engagements/create.blade.php index 5ca97d166..a4c119404 100644 --- a/resources/views/engagements/create.blade.php +++ b/resources/views/engagements/create.blade.php @@ -30,13 +30,13 @@ {{ __('Who do you want to engage?') . ' ' . __('(required)') }}
            - {!! Str::inlineMarkdown(__('**Individuals** with lived experience of being disabled or Deaf')) !!} + {{ safe_inlineMarkdown('**Individuals** with lived experience of being disabled or Deaf') }}
            - {!! Str::inlineMarkdown( - __('**A community organization** who represents or supports the disability or Deaf community'), - ) !!} + {{ safe_inlineMarkdown('**A community organization** who represents or supports the disability or Deaf community') }}
            diff --git a/resources/views/engagements/edit.blade.php b/resources/views/engagements/edit.blade.php index 73f8561c6..38474f0df 100644 --- a/resources/views/engagements/edit.blade.php +++ b/resources/views/engagements/edit.blade.php @@ -297,12 +297,10 @@ class="field @error('accepted_formats') field--error @enderror @error('other_acc @endif
          @if (!$engagement->hasEstimateAndAgreement()) - {!! Str::markdown( - __( - 'You must [approve your estimate and return your signed agreement](:estimates_and_agreements) before you can publish your engagement.', - ['estimates_and_agreements' => localized_route('projects.manage-estimates-and-agreements', $project)], - ), - ) !!} + {{ safe_markdown( + 'You must [approve your estimate and return your signed agreement](:estimates_and_agreements) before you can publish your engagement.', + ['estimates_and_agreements' => localized_route('projects.manage-estimates-and-agreements', $project)], + ) }} @else

          {{ __('Once you publish your engagement details, anyone on this website will be able to access it.') }}

          diff --git a/resources/views/engagements/manage-access-needs.blade.php b/resources/views/engagements/manage-access-needs.blade.php index a8957eeba..ba566fe37 100644 --- a/resources/views/engagements/manage-access-needs.blade.php +++ b/resources/views/engagements/manage-access-needs.blade.php @@ -98,7 +98,7 @@

          {{ __('Please reach out to us and we can try to help.') }}

          - {!! contact_information() !!} + @include('partials.contact-information')

          diff --git a/resources/views/engagements/manage.blade.php b/resources/views/engagements/manage.blade.php index 8c6480e5d..1ea8353f4 100644 --- a/resources/views/engagements/manage.blade.php +++ b/resources/views/engagements/manage.blade.php @@ -59,15 +59,15 @@ title="{{ $engagement->who === 'individuals' ? __('Participant selection criteria') : __('Organization selection criteria') }}">

          {{ __('Location') }}

          - {!! Str::markdown($engagement->matchingStrategy->location_summary) !!} +

          {{ __('Disability or Deaf group') }}

          - {!! Str::markdown($engagement->matchingStrategy->disability_and_deaf_group_summary) !!} +

          {{ __('Other identities') }}

          - {!! Str::markdown($engagement->matchingStrategy->other_identities_summary) !!} +
          @svg('heroicon-o-pencil') {{ __('Edit') }} @@ -84,14 +84,12 @@ @if (!$engagement->isPreviewable()) {{ __('Please complete your engagement details so potential participants can know what they are signing up for.') }} @else - {!! Str::inlineMarkdown( - __( - 'You have completed your engagement details, **but you won’t be able to publish them until you [get an estimate](:get_estimate) for this project and approve it**.', - [ - 'get_estimate' => localized_route('projects.manage-estimates-and-agreements', $project), - ], - ), - ) !!} + {{ safe_inlineMarkdown( + 'You have completed your engagement details, **but you won’t be able to publish them until you [get an estimate](:get_estimate) for this project and approve it**.', + [ + 'get_estimate' => localized_route('projects.manage-estimates-and-agreements', $project), + ], + ) }} @endif

          @@ -328,9 +326,11 @@ class="sr-only">{{ $engagement->name }} @if ($engagement->who === 'individuals')

          -

          {!! __(':count participants confirmed', [ - 'count' => '' . $engagement->confirmedParticipants->count() . '
          ', - ]) !!}

          +

          + {{ $engagement->confirmedParticipants->count() }} +
          + {{ __('participants confirmed') }} +

          {{-- TODO: aggregate participant access needs --}} {{--

          {{ __(':count access needs listed', ['count' => $engagement->confirmedParticipantAccessNeeds->count()]) }}

          --}}
          diff --git a/resources/views/engagements/partials/details-in_person.blade.php b/resources/views/engagements/partials/details-in_person.blade.php index e6e63dc19..c780914c2 100644 --- a/resources/views/engagements/partials/details-in_person.blade.php +++ b/resources/views/engagements/partials/details-in_person.blade.php @@ -11,7 +11,7 @@ @if ($meeting->directions)
          {{ __('Further directions') }}: - {!! Str::markdown($meeting->directions) !!} + {{ $meeting->directions }}
          @endif @else diff --git a/resources/views/engagements/partials/details-phone.blade.php b/resources/views/engagements/partials/details-phone.blade.php index e287e6fe8..67181bb5c 100644 --- a/resources/views/engagements/partials/details-phone.blade.php +++ b/resources/views/engagements/partials/details-phone.blade.php @@ -1,6 +1,6 @@ @can('participate', $engagement)

          {{ __('Phone number:') }} {{ $meeting->meeting_phone->formatForCountry('CA') }}

          @if ($meeting->additional_phone_information) - {!! Str::markdown($meeting->additional_phone_information) !!} + {{ $meeting->additional_phone_information }} @endif @endcan diff --git a/resources/views/engagements/partials/details-web_conference.blade.php b/resources/views/engagements/partials/details-web_conference.blade.php index 877179707..31756f51d 100644 --- a/resources/views/engagements/partials/details-web_conference.blade.php +++ b/resources/views/engagements/partials/details-web_conference.blade.php @@ -9,7 +9,7 @@

          @if ($meeting->additional_video_information)
          {{ __('Additional information to join') }}: - {!! Str::markdown($meeting->additional_video_information) !!} + {{ $meeting->additional_video_information }}
          @endif @else diff --git a/resources/views/engagements/show-criteria-selection.blade.php b/resources/views/engagements/show-criteria-selection.blade.php index 0e86f4c06..c6891b12e 100644 --- a/resources/views/engagements/show-criteria-selection.blade.php +++ b/resources/views/engagements/show-criteria-selection.blade.php @@ -30,14 +30,15 @@
          - {!! Str::markdown($engagement->matchingStrategy->location_summary) !!} + +
          -
          +
          {{ __('Are you looking for individuals in specific provinces or territories or specific cities or towns?') }} @@ -47,7 +48,7 @@
          + x-show="locationType == '{{ App\Enums\LocationType::Regions->value }}'"> {{ __('Specific provinces or territories') }}
          @@ -60,7 +61,7 @@
          + x-show="locationType == '{{ App\Enums\LocationType::Localities->value }}'"> {{ __('Specific cities or towns') }} @@ -73,7 +74,7 @@
          - {!! Str::markdown($engagement->matchingStrategy->disability_and_deaf_group_summary) !!} + @@ -150,7 +152,7 @@ class="sr-only">{{ __('Disability or Deaf group') }}
          + x-show="otherIdentityType == '{{ App\Enums\IdentityType::AgeBracket->value }}'"> {{ __('What age group are you interested in engaging?') }} {{ __('Disability or Deaf group') }}
          + x-show="otherIdentityType == '{{ App\Enums\IdentityType::GenderAndSexualIdentity->value }}'"> {{ __('What group that has been marginalized based on gender or sexual identity are you interested in engaging?') }} @@ -179,7 +181,7 @@ class="sr-only">{{ __('Disability or Deaf group') }}
          + x-show="otherIdentityType == '{{ App\Enums\IdentityType::IndigenousIdentity->value }}'"> {{ __('What Indigenous group are you interested in engaging?') }} @@ -190,7 +192,7 @@ class="sr-only">{{ __('Disability or Deaf group') }}
          + x-show="otherIdentityType == '{{ App\Enums\IdentityType::EthnoracialIdentity->value }}'"> {{ __('What ethno-racial group are you interested in engaging?') }} {{ __('Disability or Deaf group') }}
          + x-show="otherIdentityType == '{{ App\Enums\IdentityType::FirstLanguage->value }}'"> {{ __('What first languages are used by the people you’re interested in engaging?') }} @@ -210,7 +212,7 @@ class="sr-only">{{ __('Disability or Deaf group') }}
          + x-show="otherIdentityType == '{{ App\Enums\IdentityType::AreaType->value }}'"> {{ __('Where do the people you’re interested in engaging live?') }} {{ __('Please check all that apply.') }} +

          {{ __('Cancel') }}

          diff --git a/resources/views/engagements/show.blade.php b/resources/views/engagements/show.blade.php index f5591be02..fd2710aa0 100644 --- a/resources/views/engagements/show.blade.php +++ b/resources/views/engagements/show.blade.php @@ -74,11 +74,11 @@ @elseif ($engagement->paid && (auth()->user()->individual?->paymentTypes()->count() === 0 && blank(auth()->user()->individual?->other_payment_type))) -

          {!! Str::inlineMarkdown( - __('You must fill out your [payment information](:url) before you can sign up.', [ +

          + {{ safe_inlineMarkdown('You must fill out your [payment information](:url) before you can sign up.', [ 'url' => localized_route('settings.edit-payment-information'), - ]), - ) !!}

          + ]) }} +

          @endif
          @endcan @@ -108,7 +108,7 @@

          {{ __('Description') }}

          - {!! Str::markdown($engagement->description) !!} + {{ $engagement->description }}
          @@ -116,15 +116,15 @@

          {{ __('Location') }}

          - {!! Str::markdown($engagement->matchingStrategy->location_summary) !!} +

          {{ __('Disability or Deaf group') }}

          - {!! Str::markdown($engagement->matchingStrategy->disability_and_deaf_group_summary) !!} +

          {{ __('Other identities') }}

          - {!! Str::markdown($engagement->matchingStrategy->other_identities_summary) !!} +
          @@ -241,9 +241,9 @@

          @if ($engagement->paid) - {!! Str::inlinemarkdown(__('This engagement is a **paid** opportunity.')) !!} + {{ safe_inlineMarkdown('This engagement is a **paid** opportunity.') }} @else - {!! Str::inlineMarkdown(__('This engagement is a **volunteer** opportunity.')) !!} + {{ safe_inlineMarkdown('This engagement is a **volunteer** opportunity.') }} @endif

          @endif diff --git a/resources/views/engagements/sign-up.blade.php b/resources/views/engagements/sign-up.blade.php index 30c99d1be..d46784016 100644 --- a/resources/views/engagements/sign-up.blade.php +++ b/resources/views/engagements/sign-up.blade.php @@ -16,15 +16,15 @@

          {{ __('Location') }}

          - {!! Str::markdown($engagement->matchingStrategy->location_summary) !!} +

          {{ __('Disability or Deaf group') }}

          - {!! Str::markdown($engagement->matchingStrategy->disability_and_deaf_group_summary) !!} +

          {{ __('Other identities') }}

          - {!! Str::markdown($engagement->matchingStrategy->other_identities_summary) !!} +
          @csrf diff --git a/resources/views/errors/403.blade.php b/resources/views/errors/403.blade.php index efbbd18a4..b2a3a2732 100644 --- a/resources/views/errors/403.blade.php +++ b/resources/views/errors/403.blade.php @@ -2,4 +2,7 @@ @section('title', __('hearth::errors.error_403_title')) @section('code', '403') -@section('message') {!! __($exception->getMessage() ?: 'errors.error_403_message') !!} @endsection +@section('message') +

          {{ $exception->getMessage() }}

          + @include('partials.contact-information') +@endsection diff --git a/resources/views/errors/errorpage.blade.php b/resources/views/errors/errorpage.blade.php index 36f2bb2c7..6cd0e01c7 100644 --- a/resources/views/errors/errorpage.blade.php +++ b/resources/views/errors/errorpage.blade.php @@ -3,7 +3,7 @@

          @yield('code'): @yield('title')

          -

          @yield('message')

          +
          @yield('message')
          @auth()

          {{ __('Return to dashboard') }}

          @else diff --git a/resources/views/individuals/partials/about.blade.php b/resources/views/individuals/partials/about.blade.php index 5f08de07c..80ccfe929 100644 --- a/resources/views/individuals/partials/about.blade.php +++ b/resources/views/individuals/partials/about.blade.php @@ -1,4 +1,4 @@ -{!! Str::markdown($individual->getWrittenTranslation('bio', $language)) !!} +{{ $individual->getWrittenTranslation('bio', $language) }}

          {{ __('Languages :name uses', ['name' => $individual->first_name]) }}

          @@ -23,16 +23,7 @@ @endif @if ($individual->isConnector()) -

          {{ __('As a Community Connector, :name can connect to:', ['name' => $individual->firstName]) }} - @can('update', $individual) -

          @svg('heroicon-o-pencil', 'mr-1') - {!! __('Edit :section', [ - 'section' => '' . __('groups you can connect to') . '', - ]) !!} -

          - @endcan -

          +

          {{ __('Groups in the disability and Deaf community') }}

          diff --git a/resources/views/individuals/partials/experiences.blade.php b/resources/views/individuals/partials/experiences.blade.php index 38e3a5dc9..eb89624e6 100644 --- a/resources/views/individuals/partials/experiences.blade.php +++ b/resources/views/individuals/partials/experiences.blade.php @@ -1,11 +1,11 @@ @if ($individual->lived_experience)

          {{ __('Lived experience') }}

          - {!! Str::markdown($individual->getWrittenTranslation('lived_experience', $language)) !!} + {{ $individual->getWrittenTranslation('lived_experience', $language) }} @endif @if ($individual->skills_and_strengths)

          {{ __('Skills and strengths') }}

          - {!! Str::markdown($individual->getWrittenTranslation('skills_and_strengths', $language)) !!} + {{ $individual->getWrittenTranslation('skills_and_strengths', $language) }} @endif @if ($individual->relevant_experiences && count($individual->relevant_experiences) > 0) diff --git a/resources/views/individuals/partials/progress.blade.php b/resources/views/individuals/partials/progress.blade.php index a5ebd8859..4d558c187 100644 --- a/resources/views/individuals/partials/progress.blade.php +++ b/resources/views/individuals/partials/progress.blade.php @@ -39,12 +39,10 @@ namespace="publish_page" /> @else

          - {!! Str::markdown( - __( - 'You must attend an [orientation session](:url) and fill in all the required information before you can publish your page.', - ['url' => orientation_link(Auth::user()->context)], - ), - ) !!} + {{ safe_markdown( + 'You must attend an [orientation session](:url) and fill in all the required information before you can publish your page.', + ['url' => orientation_link(Auth::user()->context)], + ) }}

          diff --git a/resources/views/individuals/show.blade.php b/resources/views/individuals/show.blade.php index 162cdf9dc..a16812e48 100644 --- a/resources/views/individuals/show.blade.php +++ b/resources/views/individuals/show.blade.php @@ -110,38 +110,25 @@
          @if (request()->localizedRouteIs('individuals.show')) -

          {{ __('About') }} @can('update', $individual) - @svg('heroicon-o-pencil', 'mr-1') - {!! __('Edit :section', ['section' => '' . __('About') . '']) !!} - @endcan -

          + @include('individuals.partials.about') @elseif(request()->localizedRouteIs('individuals.show-experiences')) -

          {{ __('Experiences') }} @can('update', $individual) - @svg('heroicon-o-pencil', 'mr-1') - {!! __('Edit :section', ['section' => '' . __('Experiences') . '']) !!} - @endcan -

          + @include('individuals.partials.experiences') @elseif(request()->localizedRouteIs('individuals.show-interests')) -

          {{ __('Interests') }} @can('update', $individual) - @svg('heroicon-o-pencil', 'mr-1') - {!! __('Edit :section', ['section' => '' . __('Interests') . '']) !!} - @endcan -

          + @include('individuals.partials.interests') @elseif(request()->localizedRouteIs('individuals.show-communication-and-consultation-preferences')) -

          {{ __('Communication and consultation preferences') }} @can('update', $individual) - @svg('heroicon-o-pencil', 'mr-1') - {!! __('Edit :section', [ - 'section' => '' . __('Communication and consultation preferences') . '', - ]) !!} - @endcan -

          + @include('individuals.partials.communication-and-consultation-preferences') @endif
          diff --git a/resources/views/layouts/footer.blade.php b/resources/views/layouts/footer.blade.php index a8e659532..a7fb97b7b 100644 --- a/resources/views/layouts/footer.blade.php +++ b/resources/views/layouts/footer.blade.php @@ -32,15 +32,16 @@

          {{ __('Email') }}

          {{ settings('email') }}

          -

          {!! __('Call or :vrs', [ +

          {{ safe_inlineMarkdown('Call or :!vrs', [ 'vrs' => '' . - __('VRS') . + htmlentities(__('VRS')) . '', - ]) !!}

          + ]) }} +

          {{ phone(settings('phone'), 'CA')->formatForCountry('CA') }}

          {{ __('Mailing Address') }}

          - {!! nl2br(settings('address')) !!} + {!! nl2br(htmlentities(settings('address'))) !!}
          diff --git a/resources/views/livewire/language-picker.blade.php b/resources/views/livewire/language-picker.blade.php index cb5230673..91f544083 100644 --- a/resources/views/livewire/language-picker.blade.php +++ b/resources/views/livewire/language-picker.blade.php @@ -8,6 +8,7 @@ @endif + @endforeach
        diff --git a/resources/views/livewire/manage-accounts.blade.php b/resources/views/livewire/manage-accounts.blade.php index 859c103cf..ff2009370 100644 --- a/resources/views/livewire/manage-accounts.blade.php +++ b/resources/views/livewire/manage-accounts.blade.php @@ -17,7 +17,7 @@
        @if (session()->has('message')) - {!! Str::markdown(session('message')) !!} + {{ session('message') }} @endif
        diff --git a/resources/views/livewire/manage-engagement-connector.blade.php b/resources/views/livewire/manage-engagement-connector.blade.php index 711471e5d..135899661 100644 --- a/resources/views/livewire/manage-engagement-connector.blade.php +++ b/resources/views/livewire/manage-engagement-connector.blade.php @@ -15,7 +15,7 @@
        @if (session()->has('message')) - {!! Str::markdown(session('message')) !!} + {{ session('message') }} @endif
        @@ -29,13 +29,10 @@

        {{ __('Show that you are looking for a Community Connector') }}

        -

        {!! __( - 'This will show Community Connectors on the :browse page that you are looking, and that they are welcome to reach out.', - [ - 'browse' => '' . __('browse projects') . '', - ], - ) !!} -

        + {{ safe_markdown( + 'This will show Community Connectors on the [browse projects](:url) page that you are looking, and that they are welcome to reach out.', + ['url' => localized_route('projects.all-projects')], + ) }}
        @if ($this->canAddMoreLinks()) - + @endif
        diff --git a/resources/views/mail/access-needs-facilitation-requested.blade.php b/resources/views/mail/access-needs-facilitation-requested.blade.php index aae0efb30..69d3010aa 100644 --- a/resources/views/mail/access-needs-facilitation-requested.blade.php +++ b/resources/views/mail/access-needs-facilitation-requested.blade.php @@ -1,5 +1,14 @@ @component('mail::message') -{{ __('Please contact :name to facilitate their access needs being met on the engagement [:engagement](:engagement-url).', ['name' => $individual->name, 'engagement' => $engagement->name, 'engagement-url' => localized_route('engagements.show', $engagement)]) }} +{{ + safe_markdown( + 'Please contact :name to facilitate their access needs being met on the engagement [:engagement](:engagement-url).', + [ + 'name' => $individual->name, + 'engagement' => $engagement->name, + 'engagement-url' => localized_route('engagements.show', $engagement) + ] + ) +}} @component('mail::panel')

        diff --git a/resources/views/mail/agreement-received.blade.php b/resources/views/mail/agreement-received.blade.php index 8cc1495fc..4286eba87 100644 --- a/resources/views/mail/agreement-received.blade.php +++ b/resources/views/mail/agreement-received.blade.php @@ -1,5 +1,5 @@ @component('mail::message') -{{ __('Your agreement has been received for **:project**. You can now publish your project page and engagement details.', ['project' => $project->name]) }} +{{ safe_markdown('Your agreement has been received for **:project**. You can now publish your project page and engagement details.', ['project' => $project->name]) }} @component('mail::button', ['url' => localized_route('projects.manage-estimates-and-agreements', $project)]) {{ __('Manage project') }} diff --git a/resources/views/mail/estimate-approved.blade.php b/resources/views/mail/estimate-approved.blade.php index db6dc87d3..043c15cd2 100644 --- a/resources/views/mail/estimate-approved.blade.php +++ b/resources/views/mail/estimate-approved.blade.php @@ -1,9 +1,9 @@ @component('mail::message') -{{ __(':projectable has approved an estimate for their project **:project**.', ['projectable' => $projectable->name, 'project' => $project->name]) }} +{{ safe_markdown(':projectable has approved an estimate for their project **:project**.', ['projectable' => $projectable->name, 'project' => $project->name]) }} @component('mail::button', ['url' => localized_route('projects.show', $project)]) {{ __('Review project details') }} @endcomponent -{{ __('They have been instructed to send their signed agreement to [support@accessibilityexchange.ca](mailto:support@accessibilityexchange.ca).') }} +{{ safe_markdown('They have been instructed to send their signed agreement to <:email>.', ['email' => settings('email')]) }} @endcomponent diff --git a/resources/views/mail/estimate-requested.blade.php b/resources/views/mail/estimate-requested.blade.php index 26a16ba3a..80c41b6ea 100644 --- a/resources/views/mail/estimate-requested.blade.php +++ b/resources/views/mail/estimate-requested.blade.php @@ -1,14 +1,16 @@ @component('mail::message') -{{ __(':projectable has requested an estimate for their project **:project**.', ['projectable' => $projectable->name, 'project' => $project->name]) }} +{{ safe_markdown(':projectable has requested an estimate for their project **:project**.', ['projectable' => $projectable->name, 'project' => $project->name]) }} @component('mail::button', ['url' => localized_route('projects.show', $project)]) {{ __('Review project details') }} @endcomponent -{{ __('Once you’ve reviewed the project details, please:') }} +

        {{ __('Once you’ve reviewed the project details, please:') }}

        -{{ __('1. Send the estimate and agreement to [:contact](mailto::contact).', ['contact' => $project->contact_person_email]) }} -{{ __('2. Mark the estimate as "returned" by visiting the link below and searching for :projectable.', ['projectable' => $projectable->name]) }} +
          +
        1. {{ safe_inlineMarkdown('Send the estimate and agreement to <:contact>.', ['contact' => $project->contact_person_email]) }}
        2. +
        3. {{ __('Mark the estimate as "returned" by visiting the link below and searching for :projectable.', ['projectable' => $projectable->name]) }}
        4. +
        @component('mail::button', ['url' => localized_route('admin.estimates-and-agreements')]) {{ __('Update estimate status') }} diff --git a/resources/views/mail/estimate-returned.blade.php b/resources/views/mail/estimate-returned.blade.php index 255409162..bb8015419 100644 --- a/resources/views/mail/estimate-returned.blade.php +++ b/resources/views/mail/estimate-returned.blade.php @@ -1,5 +1,10 @@ @component('mail::message') -{{ __('Your estimate for **:project**, along with a project agreement for you to sign, has been sent to [:contact](mailto::contact).', ['project' => $project->name, 'contact' => $project->contact_person_email]) }} +{{ + safe_markdown( + 'Your estimate for **:project**, along with a project agreement for you to sign, has been sent to <:contact>.', + ['project' => $project->name, 'contact' => $project->contact_person_email] + ) +}} @component('mail::button', ['url' => localized_route('projects.manage-estimates-and-agreements', $project)]) {{ __('Manage project') }} diff --git a/resources/views/mail/individual-contractor-invitation.blade.php b/resources/views/mail/individual-contractor-invitation.blade.php index 20127bd6b..9211c1686 100644 --- a/resources/views/mail/individual-contractor-invitation.blade.php +++ b/resources/views/mail/individual-contractor-invitation.blade.php @@ -1,26 +1,32 @@ @component('mail::message') -{{ __('You have been invited to join the :invitationable_type “:invitationable” as a :role.', ['invitationable_type' => $invitation->invitationable->singular_name, 'invitationable' => $invitation->invitationable->name, 'role' => App\Enums\IndividualRole::labels()[$invitation->role]]) }} +

        {{ __('You have been invited to join the :invitationable_type “:invitationable” as a :role.', ['invitationable_type' => $invitation->invitationable->singular_name, 'invitationable' => $invitation->invitationable->name, 'role' => App\Enums\IndividualRole::labels()[$invitation->role]]) }}

        -{{ __('Please:') }} +

        {{ __('Please:') }}

        -{{ __('1. Create an account, if you don’t already have one.') }} -@component('mail::button', -[ - 'url' => localized_route('register', [ - 'invitation' => 1, - 'context' => 'individual', - 'role' => $invitation->role, - 'email' => $invitation->email, - ]), -]) -{{ __('Create Account') }} -@endcomponent +
          +
        1. + {{ __('Create an account, if you don’t already have one.') }} -{{ __('2. Accept your invitation by clicking the button below.') }} + @component('mail::button', + [ + 'url' => localized_route('register', [ + 'invitation' => 1, + 'context' => 'individual', + 'role' => $invitation->role, + 'email' => $invitation->email, + ]), + ]) + {{ __('Create Account') }} + @endcomponent +
        2. +
        3. + {{ __('Accept your invitation by clicking the button below.') }} -@component('mail::button', ['url' => $acceptUrl]) -{{ __('Accept Invitation') }} -@endcomponent + @component('mail::button', ['url' => $acceptUrl]) + {{ __('Accept Invitation') }} + @endcomponent +
        4. +
        -{{ __('If you did not expect to receive an invitation to this :invitationable_type, you may discard this email.', ['invitationable_type' => $invitation->invitationable->singular_name]) }} +

        {{ __('If you did not expect to receive an invitation to this :invitationable_type, you may discard this email.', ['invitationable_type' => $invitation->invitationable->singular_name]) }}

        @endcomponent diff --git a/resources/views/mail/invitation.blade.php b/resources/views/mail/invitation.blade.php index 4529e33da..5d59220eb 100644 --- a/resources/views/mail/invitation.blade.php +++ b/resources/views/mail/invitation.blade.php @@ -1,23 +1,31 @@ @component('mail::message') -{{ __('You have been invited to join the :invitationable team!', ['invitationable' => $invitation->invitationable->name]) }} +

        {{ __('You have been invited to join the :invitationable team!', ['invitationable' => $invitation->invitationable->name]) }}

        -{{ __('Please:') }} +

        {{ __('Please:') }}

        -{{ __('1. Create an account, if you don’t already have one.') }} - @component('mail::button', - [ - 'url' => localized_route('register', [ - 'invitation' => 1, - 'context' => context_from_model($invitation->invitationable), - 'email' => $invitation->email, - ]), - ]) - {{ __('Create Account') }} - @endcomponent -{{ __('2. Accept your invitation by clicking the button below.') }} - @component('mail::button', ['url' => $acceptUrl]) - {{ __('Accept Invitation') }} - @endcomponent +
          +
        1. + {{ __('Create an account, if you don’t already have one.') }} -{{ __('If you did not expect to receive an invitation to this :invitationable_type, you may discard this email.', ['invitationable_type' => $invitation->invitationable->singular_name]) }} + @component('mail::button', + [ + 'url' => localized_route('register', [ + 'invitation' => 1, + 'context' => context_from_model($invitation->invitationable), + 'email' => $invitation->email, + ]), + ]) + {{ __('Create Account') }} + @endcomponent +
        2. +
        3. + {{ __('Accept your invitation by clicking the button below.') }} + + @component('mail::button', ['url' => $acceptUrl]) + {{ __('Accept Invitation') }} + @endcomponent +
        4. +
        + +

        {{ __('If you did not expect to receive an invitation to this :invitationable_type, you may discard this email.', ['invitationable_type' => $invitation->invitationable->singular_name]) }}

        @endcomponent diff --git a/resources/views/mail/organizational-contractor-invitation.blade.php b/resources/views/mail/organizational-contractor-invitation.blade.php index dfb840a68..d1679600b 100644 --- a/resources/views/mail/organizational-contractor-invitation.blade.php +++ b/resources/views/mail/organizational-contractor-invitation.blade.php @@ -1,11 +1,11 @@ @component('mail::message') -{{ __('Your organization has been invited to join the :invitationable_type “:invitationable” as a :role.', ['invitationable_type' => $invitation->invitationable->singular_name, 'invitationable' => $invitation->invitationable->name, 'role' => App\Enums\OrganizationRole::labels()[$invitation->role]]) }} +

        {{ __('Your organization has been invited to join the :invitationable_type “:invitationable” as a :role.', ['invitationable_type' => $invitation->invitationable->singular_name, 'invitationable' => $invitation->invitationable->name, 'role' => App\Enums\OrganizationRole::labels()[$invitation->role]]) }}

        -{{ __('You may accept this invitation by clicking the button below:') }} +

        {{ __('You may accept this invitation by clicking the button below:') }}

        @component('mail::button', ['url' => $acceptUrl]) {{ __('Accept Invitation') }} @endcomponent -{{ __('If you did not expect to receive an invitation to this :invitationable_type, you may discard this email.', ['invitationable_type' => $invitation->invitationable->singular_name]) }} +

        {{ __('If you did not expect to receive an invitation to this :invitationable_type, you may discard this email.', ['invitationable_type' => $invitation->invitationable->singular_name]) }}

        @endcomponent diff --git a/resources/views/mail/participant-invitation.blade.php b/resources/views/mail/participant-invitation.blade.php index e79e21862..6e9db9917 100644 --- a/resources/views/mail/participant-invitation.blade.php +++ b/resources/views/mail/participant-invitation.blade.php @@ -1,26 +1,32 @@ @component('mail::message') -{{ __('You have been invited to join the :invitationable_type “:invitationable” as a participant.', ['invitationable_type' => $invitation->invitationable->singular_name, 'invitationable' => $invitation->invitationable->name]) }} +

        {{ __('You have been invited to join the :invitationable_type “:invitationable” as a participant.', ['invitationable_type' => $invitation->invitationable->singular_name, 'invitationable' => $invitation->invitationable->name]) }}

        -{{ __('Please:') }} +

        {{ __('Please:') }}

        -{{ __('1. Create an account, if you don’t already have one.') }} -@component('mail::button', -[ - 'url' => localized_route('register', [ - 'invitation' => 1, - 'context' => 'individual', - 'role' => 'participant', - 'email' => $invitation->email, - ]), -]) - {{ __('Create Account') }} -@endcomponent +
          +
        1. + {{ __('Create an account, if you don’t already have one.') }} -{{ __('2. Accept your invitation by clicking the button below.') }} + @component('mail::button', + [ + 'url' => localized_route('register', [ + 'invitation' => 1, + 'context' => 'individual', + 'role' => 'participant', + 'email' => $invitation->email, + ]), + ]) + {{ __('Create Account') }} + @endcomponent +
        2. +
        3. + {{ __('Accept your invitation by clicking the button below.') }} -@component('mail::button', ['url' => $acceptUrl]) - {{ __('Accept Invitation') }} -@endcomponent + @component('mail::button', ['url' => $acceptUrl]) + {{ __('Accept Invitation') }} + @endcomponent +
        4. +
        -{{ __('If you did not expect to receive an invitation to this :invitationable_type, you may discard this email.', ['invitationable_type' => $invitation->invitationable->singular_name]) }} +

        {{ __('If you did not expect to receive an invitation to this :invitationable_type, you may discard this email.', ['invitationable_type' => $invitation->invitationable->singular_name]) }}

        @endcomponent diff --git a/resources/views/organizations/edit/2.blade.php b/resources/views/organizations/edit/2.blade.php index 3a1c01398..68fa4042f 100644 --- a/resources/views/organizations/edit/2.blade.php +++ b/resources/views/organizations/edit/2.blade.php @@ -17,11 +17,7 @@ {{ __('Please tell us which community or communities your organization :represents_or_serves_and_supports.', ['represents_or_serves_and_supports' => $organization->type === 'representative' ? __('represents') : __('serves and supports')]) }}

        -

        {!! Str::inlineMarkdown( - __( - '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.', - ), - ) !!}

        + {{ safe_markdown('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.') }}

        {{ __('Please note that selecting some of these options may open up new follow-up questions below them. ') }}

        diff --git a/resources/views/organizations/partials/about.blade.php b/resources/views/organizations/partials/about.blade.php index c1b9979da..3b9397cb7 100644 --- a/resources/views/organizations/partials/about.blade.php +++ b/resources/views/organizations/partials/about.blade.php @@ -1,6 +1,6 @@

        {{ __('About the organization') }}

        -{!! Str::markdown($organization->getWrittenTranslation('about', $language)) !!} +{{ $organization->getWrittenTranslation('about', $language) }}

        {{ __('Type of organization') }}

        diff --git a/resources/views/organizations/partials/progress.blade.php b/resources/views/organizations/partials/progress.blade.php index 136755ee8..05d5dc01c 100644 --- a/resources/views/organizations/partials/progress.blade.php +++ b/resources/views/organizations/partials/progress.blade.php @@ -31,12 +31,10 @@ @cannot('publish', $organization) @ariaDisabled aria-describedby="cannot-publish-explanation" @endcannot>{{ __('Publish page') }} @cannot('publish', $organization)

        - {!! Str::markdown( - __( - 'You must attend an [orientation session](:url) and fill in all the required information before you can publish your page.', - ['url' => orientation_link(Auth::user()->context)], - ), - ) !!} + {{ safe_inlineMarkdown( + 'You must attend an [orientation session](:url) and fill in all the required information before you can publish your page.', + ['url' => orientation_link(Auth::user()->context)], + ) }}

        @endcannot

        diff --git a/resources/views/organizations/show.blade.php b/resources/views/organizations/show.blade.php index e5c85e469..f11524e10 100644 --- a/resources/views/organizations/show.blade.php +++ b/resources/views/organizations/show.blade.php @@ -124,38 +124,16 @@
        @if (request()->localizedRouteIs('organizations.show')) -

        {{ __('About') }} @can('update', $organization) - @svg('heroicon-o-pencil', 'mr-1') - {!! __('Edit :section', ['section' => '' . __('About') . '']) !!} - @endcan -

        + @include('organizations.partials.about') @elseif(request()->localizedRouteIs('organizations.show-constituencies')) -

        - {{ __('Communities we :represent_or_serve_and_support', ['represent_or_serve_and_support' => $organization->type === 'representative' ? __('represent') : __('serve and support')]) }} - @can('update', $organization) - @svg('heroicon-o-pencil', 'mr-1') - {!! __('Edit :section', [ - 'section' => - '' . - __('Communities we :represent_or_serve_and_support', [ - 'represent_or_serve_and_support' => - $organization->type === 'representative' ? __('represent') : __('serve and support'), - ]) . - '', - ]) !!} - @endcan -

        + @include('organizations.partials.constituencies') @elseif(request()->localizedRouteIs('organizations.show-interests')) -

        {{ __('Interests') }} @can('update', $organization) - @svg('heroicon-o-pencil', 'mr-1') - {!! __('Edit :section', ['section' => '' . __('Interests') . '']) !!} - @endcan -

        + @include('organizations.partials.interests') @elseif(request()->localizedRouteIs('organizations.show-projects'))

        {{ __('Projects') }} @can('update', $organization) @@ -165,12 +143,7 @@

        @include('organizations.partials.projects') @elseif(request()->localizedRouteIs('organizations.show-contact-information')) -

        {{ __('Contact information') }} @can('update', $organization) - @svg('heroicon-o-pencil', 'mr-1') - {!! __('Edit :section', ['section' => '' . __('Contact information') . '']) !!} - @endcan -

        + @include('organizations.partials.contact-information') @endif
        diff --git a/resources/views/partials/contact-information.blade.php b/resources/views/partials/contact-information.blade.php new file mode 100644 index 000000000..0b9fe9c2f --- /dev/null +++ b/resources/views/partials/contact-information.blade.php @@ -0,0 +1,11 @@ +

        + {{ __('Email') }}: {{ settings('email') }} +
        + {{ safe_inlineMarkdown('Call or :!vrs', [ + 'vrs' => + '' . + htmlentities(__('VRS')) . + '', + ]) }}: + {{ phone(settings('phone'), 'CA')->formatForCountry('CA') }} +

        diff --git a/resources/views/partials/flash-messages.blade.php b/resources/views/partials/flash-messages.blade.php index dc7eef008..ace9f4ac5 100644 --- a/resources/views/partials/flash-messages.blade.php +++ b/resources/views/partials/flash-messages.blade.php @@ -2,7 +2,7 @@ @if (flash()->message) - {!! Str::markdown(flash()->message) !!} +

        {{ flash()->message }}

        @endif diff --git a/resources/views/partials/help-bar.blade.php b/resources/views/partials/help-bar.blade.php index 41d114f76..31c85b471 100644 --- a/resources/views/partials/help-bar.blade.php +++ b/resources/views/partials/help-bar.blade.php @@ -9,12 +9,12 @@
        @svg('heroicon-o-phone') {!! __('Call or :vrs', [ + class="font-semibold">{{ safe_inlineMarkdown('Call or :!vrs', [ 'vrs' => '' . - __('VRS') . + htmlentities(__('VRS')) . '', - ]) !!}: {{ phone(settings('phone'), 'CA')->formatForCountry('CA') }} + ]) }}: {{ phone(settings('phone'), 'CA')->formatForCountry('CA') }}
        @svg('heroicon-o-mail') {{ __('Email') }}:  -

        +

        {{ session()->has('ancestor') ? __('Back') : __('Cancel') }} diff --git a/resources/views/projects/edit/1.blade.php b/resources/views/projects/edit/1.blade.php index 865b20d32..8f2bf6133 100644 --- a/resources/views/projects/edit/1.blade.php +++ b/resources/views/projects/edit/1.blade.php @@ -64,12 +64,9 @@

        - {{ __('Who will be going through the results from this project and writing a report?') . ' ' . __('(required)') }} + {{ __('Who will be going through the results and producing an outcome?') . ' ' . __('(required)') }} - +

        {{ __('Agreements') }}

        -

        {!! __('The agreement will be sent with your estimate. Please sign this agreement and send it to :email.', [ - 'email' => Str::inlineMarkdown('<' . settings('email') . '>'), - ]) !!}

        + {{ safe_markdown( + 'The agreement will be sent with your estimate. Please sign this agreement and send it to <:email>.', + ['email' => settings('email')], + ) }}

        {{ __('Status') }}

        diff --git a/resources/views/projects/partials/overview.blade.php b/resources/views/projects/partials/overview.blade.php index 33432e048..c9bd88d75 100644 --- a/resources/views/projects/partials/overview.blade.php +++ b/resources/views/projects/partials/overview.blade.php @@ -1,6 +1,6 @@

        {{ __('Project goals') }}

        -{!! Str::markdown($project->getWrittenTranslation('goals', $language)) !!} +{{ $project->getWrittenTranslation('goals', $language) }}

        {{ __('Engagements') }}

        @@ -19,7 +19,7 @@

        {{ __('How the disability and Deaf communities will be impacted by the outcomes of this project') }}

        -{!! Str::markdown($project->getWrittenTranslation('scope', $language)) !!} +{{ $project->getWrittenTranslation('scope', $language) }}

        {{ __('Geographical areas this project will impact') }}

        @@ -42,7 +42,7 @@ @if ($project->out_of_scope)

        {{ __('Not in this project') }}

        - {!! Str::markdown($project->getWrittenTranslation('out_of_scope', $language)) !!} + {{ $project->getWrittenTranslation('out_of_scope', $language) }} @endif

        {{ __('Project timeframe') }}

        @@ -59,12 +59,25 @@
        -@if ($project->outcomes) -

        {{ __('Project outcome') }}

        +

        {{ __('Project outcome') }}

        + +@if ($project->outcome_analysis || $project->outcome_analysis_other) +

        {{ __('Who’s responsible for going through results and producing an outcome') }}

        +
          + @foreach ($project->outcome_analysis ?? [] as $outcome_analysis) +
        • {{ \App\Enums\OutcomeAnalyzer::labels()[$outcome_analysis] }}
        • + @endforeach + @if ($project->outcome_analysis_other) +
        • {{ $project->outcome_analysis_other }}
        • + @endif +
        +@endif + +@if ($project->outcomes)

        {{ __('Tangible outcomes of this project') }}

        - {!! Str::markdown($project->getWrittenTranslation('outcomes', $language)) !!} + {{ $project->getWrittenTranslation('outcomes', $language) }} @endif

        {{ __('Project reports') }}

        diff --git a/resources/views/projects/partials/progress.blade.php b/resources/views/projects/partials/progress.blade.php index c5f49568b..293172efe 100644 --- a/resources/views/projects/partials/progress.blade.php +++ b/resources/views/projects/partials/progress.blade.php @@ -21,12 +21,10 @@ @cannot('publish', $project) @ariaDisabled aria-describedby="cannot-publish-explanation" @endcannot>{{ __('Publish page') }} @cannot('publish', $project)

        - {!! Str::markdown( - __( - 'You must attend an [orientation session](:url) and fill in all the required information before you can publish your project.', - ['url' => orientation_link(Auth::user()->context)], - ), - ) !!} + {{ safe_inlineMarkdown( + 'You must attend an [orientation session](:url) and fill in all the required information before you can publish your project.', + ['url' => orientation_link(Auth::user()->context)], + ) }}

        @endcannot
        diff --git a/resources/views/projects/partials/team.blade.php b/resources/views/projects/partials/team.blade.php index 8cdd430f3..feb22228a 100644 --- a/resources/views/projects/partials/team.blade.php +++ b/resources/views/projects/partials/team.blade.php @@ -25,7 +25,7 @@ @endif @if ($project->consultant_responsibilities) - {!! Str::markdown($project->getWrittenTranslation('consultant_responsibilities', $language)) !!} + {{ $project->getWrittenTranslation('consultant_responsibilities', $language) }} @endif @endif diff --git a/resources/views/projects/show-language-selection.blade.php b/resources/views/projects/show-language-selection.blade.php index bed624461..2d52c698c 100644 --- a/resources/views/projects/show-language-selection.blade.php +++ b/resources/views/projects/show-language-selection.blade.php @@ -24,7 +24,7 @@ -

        +

        {{ session()->has('ancestor') ? __('Back') : __('Cancel') }} diff --git a/resources/views/projects/show.blade.php b/resources/views/projects/show.blade.php index d74757cf1..800bfc13f 100644 --- a/resources/views/projects/show.blade.php +++ b/resources/views/projects/show.blade.php @@ -23,15 +23,15 @@

        {{ $project->name }}

        -

        {!! __('Accessibility project by :projectable', [ - 'projectable' => - '' . - $project->projectable->name . - '', - ]) !!}

        -

        {!! $project->timeframe() !!}

        +

        + {{ safe_inlineMarkdown('Accessibility project by [:projectable](:url)', [ + 'projectable' => $project->projectable->name, + 'url' => localized_route('regulated-organizations.show', $project->projectable), + ]) }} +

        + +

        +
        {{ $project->status }} @can('manage', $project) @@ -98,19 +98,10 @@
        @if (request()->localizedRouteIs('projects.show')) -

        {{ __('Project overview') }} @can('update', $project) - @svg('heroicon-o-pencil', 'mr-1') - {!! __('Edit :section', ['section' => '' . __('Project overview') . '']) !!} - @endcan -

        + @include('projects.partials.overview') @elseif(request()->localizedRouteIs('projects.show-team')) -

        {{ __('Project team') }} @can('update', $project) - @svg('heroicon-o-pencil', 'mr-1') - {!! __('Edit :section', ['section' => '' . __('Project team') . '']) !!} - @endcan -

        + @include('projects.partials.team') @elseif(request()->localizedRouteIs('projects.show-engagements'))

        {{ __('Engagements') }}

        diff --git a/resources/views/regulated-organizations/edit.blade.php b/resources/views/regulated-organizations/edit.blade.php index 9877ff14a..e16df5d9d 100644 --- a/resources/views/regulated-organizations/edit.blade.php +++ b/resources/views/regulated-organizations/edit.blade.php @@ -39,12 +39,10 @@ @cannot('publish', $regulatedOrganization) @ariaDisabled aria-describedby="cannot-publish-explanation" @endcannot>{{ __('Publish page') }} @cannot('publish', $regulatedOrganization)

        - {!! Str::markdown( - __( - 'You must attend an [orientation session](:url) and fill in all the required information before you can publish your page.', - ['url' => orientation_link(Auth::user()->context)], - ), - ) !!} + {{ safe_inlineMarkdown( + 'You must attend an [orientation session](:url) and fill in all the required information before you can publish your page.', + ['url' => orientation_link(Auth::user()->context)], + ) }}

        @endcannot diff --git a/resources/views/regulated-organizations/partials/about.blade.php b/resources/views/regulated-organizations/partials/about.blade.php index ffb216a64..3f9cf1368 100644 --- a/resources/views/regulated-organizations/partials/about.blade.php +++ b/resources/views/regulated-organizations/partials/about.blade.php @@ -1,6 +1,6 @@

        {{ __('About the organization') }}

        -{!! Str::markdown($regulatedOrganization->getWrittenTranslation('about', $language)) !!} +{{ $regulatedOrganization->getWrittenTranslation('about', $language) }}

        {{ __('Service areas') }}

        diff --git a/resources/views/regulated-organizations/show.blade.php b/resources/views/regulated-organizations/show.blade.php index ee77c3815..bdf87b58d 100644 --- a/resources/views/regulated-organizations/show.blade.php +++ b/resources/views/regulated-organizations/show.blade.php @@ -114,12 +114,7 @@
        @if (request()->localizedRouteIs('regulated-organizations.show')) -

        {{ __('About') }} @can('update', $regulatedOrganization) - @svg('heroicon-o-pencil', 'mr-1') - {!! __('Edit :section', ['section' => '' . __('About') . '']) !!} - @endcan -

        + @include('regulated-organizations.partials.about') @elseif(request()->localizedRouteIs('regulated-organizations.show-projects'))

        {{ __('Projects') }} @can('update', $regulatedOrganization) diff --git a/resources/views/resource-collections/index.blade.php b/resources/views/resource-collections/index.blade.php index 911610a68..a206d879b 100644 --- a/resources/views/resource-collections/index.blade.php +++ b/resources/views/resource-collections/index.blade.php @@ -12,7 +12,6 @@ - @csrf diff --git a/resources/views/resources/show.blade.php b/resources/views/resources/show.blade.php index 7184da0ca..a8ca11601 100644 --- a/resources/views/resources/show.blade.php +++ b/resources/views/resources/show.blade.php @@ -67,7 +67,7 @@ @if ($resource->summary)

        {{ __('Summary') }}

        - {!! Str::markdown($resource->summary) !!} + {!! Str::markdown($resource->summary, SAFE_MARKDOWN_OPTIONS) !!} @endif

        {{ __('Links to resource') }}

        diff --git a/resources/views/vendor/hearth/components/alert.blade.php b/resources/views/vendor/hearth/components/alert.blade.php index 22443a150..3ca7800b2 100644 --- a/resources/views/vendor/hearth/components/alert.blade.php +++ b/resources/views/vendor/hearth/components/alert.blade.php @@ -20,16 +20,18 @@ @default @svg('heroicon-o-information-circle') - @endswitch{{ $title }} -

        - {{ $slot }} + @endswitch + {{ $title }} +

        - @if ($actions ?? '' || $dismissable) -
        - {{ $actions ?? '' }} - @if (!in_array($type, ['error', 'warning']) && $dismissable !== false) - - @endif -
        + {{ $slot }} + + @if ($actions ?? '' || $dismissable) +
        + {{ $actions ?? '' }} + @if (!in_array($type, ['error', 'warning']) && $dismissable !== false) + @endif
        + @endif +

        diff --git a/resources/views/vendor/hearth/components/locale-select.blade.php b/resources/views/vendor/hearth/components/locale-select.blade.php index 543e8b94c..dcfe7d68d 100644 --- a/resources/views/vendor/hearth/components/locale-select.blade.php +++ b/resources/views/vendor/hearth/components/locale-select.blade.php @@ -1,8 +1,10 @@ -merge([ 'name' => $name, 'id' => $id, -]) !!} {{ $required ? 'required' : '' }} {{ $autofocus ? 'autofocus' : '' }} - @disabled($disabled) {!! $describedBy() ? 'aria-describedby="' . $describedBy() . '"' : '' !!} {!! $invalid ? 'aria-invalid="true"' : '' !!}> +]) }} @required($required) + {{ $autofocus ? 'autofocus' : '' }} @disabled($disabled) + @if ($describedBy()) aria-describedby="{{ $describedBy() }}" @endif + @if ($invalid) aria-invalid="true" @endif> @foreach ($locales as $key => $locale)