Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions src/Constants.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,16 @@ class Constants
*/
const MODULE_SLUG = 'nails/module-cdn';

const MEDIA_MANAGER_V1 = 1;
const MEDIA_MANAGER_V2 = 2;
const MEDIA_MANAGER_V1 = 1;
const MEDIA_MANAGER_V1_URL = 'admin/cdn/mediaManagerV1';

const MEDIA_MANAGER_V2 = 2;
const MEDIA_MANAGER_V2_URL = 'admin/cdn/mediaManagerV2';

/**
* Validation rules provided by this module (see src/Validation/Rule)
*/
const RULE_OBJECT_PICKER_MULTI_ALL_REQUIRED = 'cdnObjectPickerMultiAllRequired';
const RULE_OBJECT_PICKER_MULTI_LABEL_REQUIRED = 'cdnObjectPickerMultiLabelRequired';
const RULE_OBJECT_PICKER_MULTI_OBJECT_REQUIRED = 'cdnObjectPickerMultiObjectRequired';
}
35 changes: 35 additions & 0 deletions src/Validation/Rule/CdnObjectPickerMultiAllRequired.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php

namespace Nails\Cdn\Validation\Rule;

use Nails\Common\Validation\AbstractRule;
use Nails\Common\Validation\Context;

/**
* Rule: `cdnObjectPickerMultiAllRequired` — every item in a CDN Object Multi Picker must have both an object and a label set
*/
class CdnObjectPickerMultiAllRequired extends AbstractRule
{
public const NAME = 'cdnObjectPickerMultiAllRequired';
public const DEFAULT_MESSAGE = 'All items must have a file and a label set.';

public function acceptsArrays(): bool
{
return true;
}

public function apply(mixed $mValue, Context $oContext): bool
{
if (!is_array($mValue)) {
return false;
}

foreach ($mValue as $aValue) {
if (!is_array($aValue) || empty($aValue['object_id']) || empty($aValue['label'])) {
return false;
}
}

return true;
}
}
35 changes: 35 additions & 0 deletions src/Validation/Rule/CdnObjectPickerMultiLabelRequired.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php

namespace Nails\Cdn\Validation\Rule;

use Nails\Common\Validation\AbstractRule;
use Nails\Common\Validation\Context;

/**
* Rule: `cdnObjectPickerMultiLabelRequired` — every item in a CDN Object Multi Picker must have a label set
*/
class CdnObjectPickerMultiLabelRequired extends AbstractRule
{
public const NAME = 'cdnObjectPickerMultiLabelRequired';
public const DEFAULT_MESSAGE = 'All items must have a label set.';

public function acceptsArrays(): bool
{
return true;
}

public function apply(mixed $mValue, Context $oContext): bool
{
if (!is_array($mValue)) {
return false;
}

foreach ($mValue as $aValue) {
if (!is_array($aValue) || empty($aValue['label'])) {
return false;
}
}

return true;
}
}
35 changes: 35 additions & 0 deletions src/Validation/Rule/CdnObjectPickerMultiObjectRequired.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?php

namespace Nails\Cdn\Validation\Rule;

use Nails\Common\Validation\AbstractRule;
use Nails\Common\Validation\Context;

/**
* Rule: `cdnObjectPickerMultiObjectRequired` — every item in a CDN Object Multi Picker must have an object set
*/
class CdnObjectPickerMultiObjectRequired extends AbstractRule
{
public const NAME = 'cdnObjectPickerMultiObjectRequired';
public const DEFAULT_MESSAGE = 'All items must have a file set.';

public function acceptsArrays(): bool
{
return true;
}

public function apply(mixed $mValue, Context $oContext): bool
{
if (!is_array($mValue)) {
return false;
}

foreach ($mValue as $aValue) {
if (!is_array($aValue) || empty($aValue['object_id'])) {
return false;
}
}

return true;
}
}
Loading