mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-10-01 01:36:00 -04:00
Merge branch 'development' into release
This commit is contained in:
commit
0f895668a4
@ -3,6 +3,10 @@
|
||||
# Each option is shown with it's default value.
|
||||
# Do not copy this whole file to use as your '.env' file.
|
||||
|
||||
# The details here only serve as a quick reference.
|
||||
# Please refer to the BookStack documentation for full details:
|
||||
# https://www.bookstackapp.com/docs/
|
||||
|
||||
# Application environment
|
||||
# Can be 'production', 'development', 'testing' or 'demo'
|
||||
APP_ENV=production
|
||||
@ -79,6 +83,7 @@ MAIL_PORT=1025
|
||||
MAIL_USERNAME=null
|
||||
MAIL_PASSWORD=null
|
||||
MAIL_ENCRYPTION=null
|
||||
MAIL_VERIFY_SSL=true
|
||||
|
||||
# Command to use when email is sent via sendmail
|
||||
MAIL_SENDMAIL_COMMAND="/usr/sbin/sendmail -bs"
|
||||
@ -322,6 +327,13 @@ FILE_UPLOAD_SIZE_LIMIT=50
|
||||
# Can be 'a4' or 'letter'.
|
||||
EXPORT_PAGE_SIZE=a4
|
||||
|
||||
# Set path to wkhtmltopdf binary for PDF generation.
|
||||
# Can be 'false' or a path path like: '/home/bins/wkhtmltopdf'
|
||||
# When false, BookStack will attempt to find a wkhtmltopdf in the application
|
||||
# root folder then fall back to the default dompdf renderer if no binary exists.
|
||||
# Only used if 'ALLOW_UNTRUSTED_SERVER_FETCHING=true' which disables security protections.
|
||||
WKHTMLTOPDF=false
|
||||
|
||||
# Allow <script> tags in page content
|
||||
# Note, if set to 'true' the page editor may still escape scripts.
|
||||
ALLOW_CONTENT_SCRIPTS=false
|
||||
@ -372,4 +384,4 @@ LOG_FAILED_LOGIN_CHANNEL=errorlog_plain_webserver
|
||||
# IP address '146.191.42.4' would result in '146.191.x.x' being logged.
|
||||
# For the IPv6 address '2001:db8:85a3:8d3:1319:8a2e:370:7348' this would result as:
|
||||
# '2001:db8:85a3:8d3:x:x:x:x'
|
||||
IP_ADDRESS_PRECISION=4
|
||||
IP_ADDRESS_PRECISION=4
|
||||
|
7
.github/translators.txt
vendored
7
.github/translators.txt
vendored
@ -320,3 +320,10 @@ kostasdizas :: Greek
|
||||
Ricardo Schroeder (brownstone666) :: Portuguese, Brazilian
|
||||
Eitan MG (EitanMG) :: Hebrew
|
||||
Robin Flikkema (RobinFlikkema) :: Dutch
|
||||
Michal Gurcik (mgurcik) :: Slovak
|
||||
Pooyan Arab (pooyanarab) :: Persian
|
||||
Ochi Darma Putra (troke12) :: Indonesian
|
||||
H.-H. Peng (Hsins) :: Chinese Traditional
|
||||
Mosi Wang (mosiwang) :: Chinese Traditional
|
||||
骆言 (LawssssCat) :: Chinese Simplified
|
||||
Stickers Gaming Shøw (StickerSGSHOW) :: French
|
||||
|
16
.github/workflows/lint-js.yml
vendored
Normal file
16
.github/workflows/lint-js.yml
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
name: lint-js
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: ${{ github.ref != 'refs/heads/l10n_development' }}
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
- name: Install NPM deps
|
||||
run: npm ci
|
||||
|
||||
- name: Run formatting check
|
||||
run: npm run lint
|
6
.gitignore
vendored
6
.gitignore
vendored
@ -1,5 +1,7 @@
|
||||
/vendor
|
||||
/node_modules
|
||||
/.vscode
|
||||
/composer
|
||||
Homestead.yaml
|
||||
.env
|
||||
.idea
|
||||
@ -21,8 +23,10 @@ yarn.lock
|
||||
nbproject
|
||||
.buildpath
|
||||
.project
|
||||
.nvmrc
|
||||
.settings/
|
||||
webpack-stats.json
|
||||
.phpunit.result.cache
|
||||
.DS_Store
|
||||
phpstan.neon
|
||||
phpstan.neon
|
||||
esbuild-meta.json
|
@ -8,8 +8,8 @@ use BookStack\Notifications\ConfirmEmail;
|
||||
|
||||
class EmailConfirmationService extends UserTokenService
|
||||
{
|
||||
protected $tokenTable = 'email_confirmations';
|
||||
protected $expiryTime = 24;
|
||||
protected string $tokenTable = 'email_confirmations';
|
||||
protected int $expiryTime = 24;
|
||||
|
||||
/**
|
||||
* Create new confirmation for a user,
|
||||
|
@ -4,35 +4,16 @@ namespace BookStack\Auth\Access\Oidc;
|
||||
|
||||
class OidcIdToken
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $header;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $payload;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $signature;
|
||||
protected array $header;
|
||||
protected array $payload;
|
||||
protected string $signature;
|
||||
protected string $issuer;
|
||||
protected array $tokenParts = [];
|
||||
|
||||
/**
|
||||
* @var array[]|string[]
|
||||
*/
|
||||
protected $keys;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $issuer;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $tokenParts = [];
|
||||
protected array $keys;
|
||||
|
||||
public function __construct(string $token, string $issuer, array $keys)
|
||||
{
|
||||
@ -106,6 +87,14 @@ class OidcIdToken
|
||||
return $this->payload;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace the existing claim data of this token with that provided.
|
||||
*/
|
||||
public function replaceClaims(array $claims): void
|
||||
{
|
||||
$this->payload = $claims;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate the structure of the given token and ensure we have the required pieces.
|
||||
* As per https://datatracker.ietf.org/doc/html/rfc7519#section-7.2.
|
||||
|
@ -9,6 +9,8 @@ use BookStack\Auth\User;
|
||||
use BookStack\Exceptions\JsonDebugException;
|
||||
use BookStack\Exceptions\StoppedAuthenticationException;
|
||||
use BookStack\Exceptions\UserRegistrationException;
|
||||
use BookStack\Facades\Theme;
|
||||
use BookStack\Theming\ThemeEvents;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use League\OAuth2\Client\OptionProvider\HttpBasicAuthOptionProvider;
|
||||
@ -21,24 +23,12 @@ use Psr\Http\Client\ClientInterface as HttpClient;
|
||||
*/
|
||||
class OidcService
|
||||
{
|
||||
protected RegistrationService $registrationService;
|
||||
protected LoginService $loginService;
|
||||
protected HttpClient $httpClient;
|
||||
protected GroupSyncService $groupService;
|
||||
|
||||
/**
|
||||
* OpenIdService constructor.
|
||||
*/
|
||||
public function __construct(
|
||||
RegistrationService $registrationService,
|
||||
LoginService $loginService,
|
||||
HttpClient $httpClient,
|
||||
GroupSyncService $groupService
|
||||
protected RegistrationService $registrationService,
|
||||
protected LoginService $loginService,
|
||||
protected HttpClient $httpClient,
|
||||
protected GroupSyncService $groupService
|
||||
) {
|
||||
$this->registrationService = $registrationService;
|
||||
$this->loginService = $loginService;
|
||||
$this->httpClient = $httpClient;
|
||||
$this->groupService = $groupService;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -226,6 +216,16 @@ class OidcService
|
||||
$settings->keys,
|
||||
);
|
||||
|
||||
$returnClaims = Theme::dispatch(ThemeEvents::OIDC_ID_TOKEN_PRE_VALIDATE, $idToken->getAllClaims(), [
|
||||
'access_token' => $accessToken->getToken(),
|
||||
'expires_in' => $accessToken->getExpires(),
|
||||
'refresh_token' => $accessToken->getRefreshToken(),
|
||||
]);
|
||||
|
||||
if (!is_null($returnClaims)) {
|
||||
$idToken->replaceClaims($returnClaims);
|
||||
}
|
||||
|
||||
if ($this->config()['dump_user_details']) {
|
||||
throw new JsonDebugException($idToken->getAllClaims());
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ class Saml2Service
|
||||
$returnRoute,
|
||||
[],
|
||||
$user->email,
|
||||
null,
|
||||
session()->get('saml2_session_index'),
|
||||
true,
|
||||
Constants::NAMEID_EMAIL_ADDRESS
|
||||
);
|
||||
@ -118,6 +118,7 @@ class Saml2Service
|
||||
|
||||
$attrs = $toolkit->getAttributes();
|
||||
$id = $toolkit->getNameId();
|
||||
session()->put('saml2_session_index', $toolkit->getSessionIndex());
|
||||
|
||||
return $this->processLoginCallback($id, $attrs);
|
||||
}
|
||||
|
@ -7,14 +7,12 @@ use BookStack\Notifications\UserInvite;
|
||||
|
||||
class UserInviteService extends UserTokenService
|
||||
{
|
||||
protected $tokenTable = 'user_invites';
|
||||
protected $expiryTime = 336; // Two weeks
|
||||
protected string $tokenTable = 'user_invites';
|
||||
protected int $expiryTime = 336; // Two weeks
|
||||
|
||||
/**
|
||||
* Send an invitation to a user to sign into BookStack
|
||||
* Removes existing invitation tokens.
|
||||
*
|
||||
* @param User $user
|
||||
*/
|
||||
public function sendInvitation(User $user)
|
||||
{
|
||||
|
@ -14,41 +14,29 @@ class UserTokenService
|
||||
{
|
||||
/**
|
||||
* Name of table where user tokens are stored.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $tokenTable = 'user_tokens';
|
||||
protected string $tokenTable = 'user_tokens';
|
||||
|
||||
/**
|
||||
* Token expiry time in hours.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $expiryTime = 24;
|
||||
protected int $expiryTime = 24;
|
||||
|
||||
/**
|
||||
* Delete all email confirmations that belong to a user.
|
||||
*
|
||||
* @param User $user
|
||||
*
|
||||
* @return mixed
|
||||
* Delete all tokens that belong to a user.
|
||||
*/
|
||||
public function deleteByUser(User $user)
|
||||
public function deleteByUser(User $user): void
|
||||
{
|
||||
return DB::table($this->tokenTable)
|
||||
DB::table($this->tokenTable)
|
||||
->where('user_id', '=', $user->id)
|
||||
->delete();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the user id from a token, while check the token exists and has not expired.
|
||||
*
|
||||
* @param string $token
|
||||
* Get the user id from a token, while checking the token exists and has not expired.
|
||||
*
|
||||
* @throws UserTokenNotFoundException
|
||||
* @throws UserTokenExpiredException
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function checkTokenAndGetUserId(string $token): int
|
||||
{
|
||||
@ -67,8 +55,6 @@ class UserTokenService
|
||||
|
||||
/**
|
||||
* Creates a unique token within the email confirmation database.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function generateToken(): string
|
||||
{
|
||||
@ -82,10 +68,6 @@ class UserTokenService
|
||||
|
||||
/**
|
||||
* Generate and store a token for the given user.
|
||||
*
|
||||
* @param User $user
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function createTokenForUser(User $user): string
|
||||
{
|
||||
@ -102,10 +84,6 @@ class UserTokenService
|
||||
|
||||
/**
|
||||
* Check if the given token exists.
|
||||
*
|
||||
* @param string $token
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function tokenExists(string $token): bool
|
||||
{
|
||||
@ -115,12 +93,8 @@ class UserTokenService
|
||||
|
||||
/**
|
||||
* Get a token entry for the given token.
|
||||
*
|
||||
* @param string $token
|
||||
*
|
||||
* @return object|null
|
||||
*/
|
||||
protected function getEntryByToken(string $token)
|
||||
protected function getEntryByToken(string $token): ?stdClass
|
||||
{
|
||||
return DB::table($this->tokenTable)
|
||||
->where('token', '=', $token)
|
||||
@ -129,10 +103,6 @@ class UserTokenService
|
||||
|
||||
/**
|
||||
* Check if the given token entry has expired.
|
||||
*
|
||||
* @param stdClass $tokenEntry
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function entryExpired(stdClass $tokenEntry): bool
|
||||
{
|
||||
|
@ -5,7 +5,6 @@ namespace BookStack\Auth\Permissions;
|
||||
use BookStack\Auth\Role;
|
||||
use BookStack\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
||||
|
||||
/**
|
||||
* @property int $id
|
||||
@ -23,14 +22,14 @@ class EntityPermission extends Model
|
||||
|
||||
protected $fillable = ['role_id', 'view', 'create', 'update', 'delete'];
|
||||
public $timestamps = false;
|
||||
|
||||
/**
|
||||
* Get this restriction's attached entity.
|
||||
*/
|
||||
public function restrictable(): MorphTo
|
||||
{
|
||||
return $this->morphTo('restrictable');
|
||||
}
|
||||
protected $hidden = ['entity_id', 'entity_type', 'id'];
|
||||
protected $casts = [
|
||||
'view' => 'boolean',
|
||||
'create' => 'boolean',
|
||||
'read' => 'boolean',
|
||||
'update' => 'boolean',
|
||||
'delete' => 'boolean',
|
||||
];
|
||||
|
||||
/**
|
||||
* Get the role assigned to this entity permission.
|
||||
|
@ -32,6 +32,7 @@ return [
|
||||
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
|
||||
'username' => env('MAIL_USERNAME'),
|
||||
'password' => env('MAIL_PASSWORD'),
|
||||
'verify_peer' => env('MAIL_VERIFY_SSL', true),
|
||||
'timeout' => null,
|
||||
'local_domain' => env('MAIL_EHLO_DOMAIN'),
|
||||
],
|
||||
|
@ -18,30 +18,11 @@ use BookStack\Entities\Models\PageRevision;
|
||||
*/
|
||||
class EntityProvider
|
||||
{
|
||||
/**
|
||||
* @var Bookshelf
|
||||
*/
|
||||
public $bookshelf;
|
||||
|
||||
/**
|
||||
* @var Book
|
||||
*/
|
||||
public $book;
|
||||
|
||||
/**
|
||||
* @var Chapter
|
||||
*/
|
||||
public $chapter;
|
||||
|
||||
/**
|
||||
* @var Page
|
||||
*/
|
||||
public $page;
|
||||
|
||||
/**
|
||||
* @var PageRevision
|
||||
*/
|
||||
public $pageRevision;
|
||||
public Bookshelf $bookshelf;
|
||||
public Book $book;
|
||||
public Chapter $chapter;
|
||||
public Page $page;
|
||||
public PageRevision $pageRevision;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
@ -69,13 +50,18 @@ class EntityProvider
|
||||
}
|
||||
|
||||
/**
|
||||
* Get an entity instance by it's basic name.
|
||||
* Get an entity instance by its basic name.
|
||||
*/
|
||||
public function get(string $type): Entity
|
||||
{
|
||||
$type = strtolower($type);
|
||||
$instance = $this->all()[$type] ?? null;
|
||||
|
||||
return $this->all()[$type];
|
||||
if (is_null($instance)) {
|
||||
throw new \InvalidArgumentException("Provided type \"{$type}\" is not a valid entity type");
|
||||
}
|
||||
|
||||
return $instance;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -304,7 +304,9 @@ class PageContent
|
||||
if ($blankIncludes) {
|
||||
$content = $this->blankPageIncludes($content);
|
||||
} else {
|
||||
$content = $this->parsePageIncludes($content);
|
||||
for ($includeDepth = 0; $includeDepth < 3; $includeDepth++) {
|
||||
$content = $this->parsePageIncludes($content);
|
||||
}
|
||||
}
|
||||
|
||||
return $content;
|
||||
|
@ -4,20 +4,20 @@ namespace BookStack\Entities\Tools;
|
||||
|
||||
use BookStack\Actions\ActivityType;
|
||||
use BookStack\Auth\Permissions\EntityPermission;
|
||||
use BookStack\Auth\Role;
|
||||
use BookStack\Auth\User;
|
||||
use BookStack\Entities\Models\Book;
|
||||
use BookStack\Entities\Models\Bookshelf;
|
||||
use BookStack\Entities\Models\Entity;
|
||||
use BookStack\Facades\Activity;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
class PermissionsUpdater
|
||||
{
|
||||
/**
|
||||
* Update an entities permissions from a permission form submit request.
|
||||
*/
|
||||
public function updateFromPermissionsForm(Entity $entity, Request $request)
|
||||
public function updateFromPermissionsForm(Entity $entity, Request $request): void
|
||||
{
|
||||
$permissions = $request->get('permissions', null);
|
||||
$ownerId = $request->get('owned_by', null);
|
||||
@ -39,12 +39,44 @@ class PermissionsUpdater
|
||||
Activity::add(ActivityType::PERMISSIONS_UPDATE, $entity);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update permissions from API request data.
|
||||
*/
|
||||
public function updateFromApiRequestData(Entity $entity, array $data): void
|
||||
{
|
||||
if (isset($data['role_permissions'])) {
|
||||
$entity->permissions()->where('role_id', '!=', 0)->delete();
|
||||
$rolePermissionData = $this->formatPermissionsFromApiRequestToEntityPermissions($data['role_permissions'] ?? [], false);
|
||||
$entity->permissions()->createMany($rolePermissionData);
|
||||
}
|
||||
|
||||
if (array_key_exists('fallback_permissions', $data)) {
|
||||
$entity->permissions()->where('role_id', '=', 0)->delete();
|
||||
}
|
||||
|
||||
if (isset($data['fallback_permissions']['inheriting']) && $data['fallback_permissions']['inheriting'] !== true) {
|
||||
$data = $data['fallback_permissions'];
|
||||
$data['role_id'] = 0;
|
||||
$rolePermissionData = $this->formatPermissionsFromApiRequestToEntityPermissions([$data], true);
|
||||
$entity->permissions()->createMany($rolePermissionData);
|
||||
}
|
||||
|
||||
if (isset($data['owner_id'])) {
|
||||
$this->updateOwnerFromId($entity, intval($data['owner_id']));
|
||||
}
|
||||
|
||||
$entity->save();
|
||||
$entity->rebuildPermissions();
|
||||
|
||||
Activity::add(ActivityType::PERMISSIONS_UPDATE, $entity);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the owner of the given entity.
|
||||
* Checks the user exists in the system first.
|
||||
* Does not save the model, just updates it.
|
||||
*/
|
||||
protected function updateOwnerFromId(Entity $entity, int $newOwnerId)
|
||||
protected function updateOwnerFromId(Entity $entity, int $newOwnerId): void
|
||||
{
|
||||
$newOwner = User::query()->find($newOwnerId);
|
||||
if (!is_null($newOwner)) {
|
||||
@ -67,7 +99,41 @@ class PermissionsUpdater
|
||||
$formatted[] = $entityPermissionData;
|
||||
}
|
||||
|
||||
return $formatted;
|
||||
return $this->filterEntityPermissionDataUponRole($formatted, true);
|
||||
}
|
||||
|
||||
protected function formatPermissionsFromApiRequestToEntityPermissions(array $permissions, bool $allowFallback): array
|
||||
{
|
||||
$formatted = [];
|
||||
|
||||
foreach ($permissions as $requestPermissionData) {
|
||||
$entityPermissionData = ['role_id' => $requestPermissionData['role_id']];
|
||||
foreach (EntityPermission::PERMISSIONS as $permission) {
|
||||
$entityPermissionData[$permission] = boolval($requestPermissionData[$permission] ?? false);
|
||||
}
|
||||
$formatted[] = $entityPermissionData;
|
||||
}
|
||||
|
||||
return $this->filterEntityPermissionDataUponRole($formatted, $allowFallback);
|
||||
}
|
||||
|
||||
protected function filterEntityPermissionDataUponRole(array $entityPermissionData, bool $allowFallback): array
|
||||
{
|
||||
$roleIds = [];
|
||||
foreach ($entityPermissionData as $permissionEntry) {
|
||||
$roleIds[] = intval($permissionEntry['role_id']);
|
||||
}
|
||||
|
||||
$actualRoleIds = array_unique(array_values(array_filter($roleIds)));
|
||||
$rolesById = Role::query()->whereIn('id', $actualRoleIds)->get('id')->keyBy('id');
|
||||
|
||||
return array_values(array_filter($entityPermissionData, function ($data) use ($rolesById, $allowFallback) {
|
||||
if (intval($data['role_id']) === 0) {
|
||||
return $allowFallback;
|
||||
}
|
||||
|
||||
return $rolesById->has($data['role_id']);
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
|
100
app/Http/Controllers/Api/ContentPermissionApiController.php
Normal file
100
app/Http/Controllers/Api/ContentPermissionApiController.php
Normal file
@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
namespace BookStack\Http\Controllers\Api;
|
||||
|
||||
use BookStack\Entities\EntityProvider;
|
||||
use BookStack\Entities\Models\Entity;
|
||||
use BookStack\Entities\Tools\PermissionsUpdater;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ContentPermissionApiController extends ApiController
|
||||
{
|
||||
public function __construct(
|
||||
protected PermissionsUpdater $permissionsUpdater,
|
||||
protected EntityProvider $entities
|
||||
) {
|
||||
}
|
||||
|
||||
protected $rules = [
|
||||
'update' => [
|
||||
'owner_id' => ['int'],
|
||||
|
||||
'role_permissions' => ['array'],
|
||||
'role_permissions.*.role_id' => ['required', 'int', 'exists:roles,id'],
|
||||
'role_permissions.*.view' => ['required', 'boolean'],
|
||||
'role_permissions.*.create' => ['required', 'boolean'],
|
||||
'role_permissions.*.update' => ['required', 'boolean'],
|
||||
'role_permissions.*.delete' => ['required', 'boolean'],
|
||||
|
||||
'fallback_permissions' => ['nullable'],
|
||||
'fallback_permissions.inheriting' => ['required_with:fallback_permissions', 'boolean'],
|
||||
'fallback_permissions.view' => ['required_if:fallback_permissions.inheriting,false', 'boolean'],
|
||||
'fallback_permissions.create' => ['required_if:fallback_permissions.inheriting,false', 'boolean'],
|
||||
'fallback_permissions.update' => ['required_if:fallback_permissions.inheriting,false', 'boolean'],
|
||||
'fallback_permissions.delete' => ['required_if:fallback_permissions.inheriting,false', 'boolean'],
|
||||
]
|
||||
];
|
||||
|
||||
/**
|
||||
* Read the configured content-level permissions for the item of the given type and ID.
|
||||
* 'contentType' should be one of: page, book, chapter, bookshelf.
|
||||
* 'contentId' should be the relevant ID of that item type you'd like to handle permissions for.
|
||||
* The permissions shown are those that override the default for just the specified item, they do not show the
|
||||
* full evaluated permission for a role, nor do they reflect permissions inherited from other items in the hierarchy.
|
||||
* Fallback permission values may be `null` when inheriting is active.
|
||||
*/
|
||||
public function read(string $contentType, string $contentId)
|
||||
{
|
||||
$entity = $this->entities->get($contentType)
|
||||
->newQuery()->scopes(['visible'])->findOrFail($contentId);
|
||||
|
||||
$this->checkOwnablePermission('restrictions-manage', $entity);
|
||||
|
||||
return response()->json($this->formattedPermissionDataForEntity($entity));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the configured content-level permission overrides for the item of the given type and ID.
|
||||
* 'contentType' should be one of: page, book, chapter, bookshelf.
|
||||
* 'contentId' should be the relevant ID of that item type you'd like to handle permissions for.
|
||||
* Providing an empty `role_permissions` array will remove any existing configured role permissions,
|
||||
* so you may want to fetch existing permissions beforehand if just adding/removing a single item.
|
||||
* You should completely omit the `owner_id`, `role_permissions` and/or the `fallback_permissions` properties
|
||||
* from your request data if you don't wish to update details within those categories.
|
||||
*/
|
||||
public function update(Request $request, string $contentType, string $contentId)
|
||||
{
|
||||
$entity = $this->entities->get($contentType)
|
||||
->newQuery()->scopes(['visible'])->findOrFail($contentId);
|
||||
|
||||
$this->checkOwnablePermission('restrictions-manage', $entity);
|
||||
|
||||
$data = $this->validate($request, $this->rules()['update']);
|
||||
$this->permissionsUpdater->updateFromApiRequestData($entity, $data);
|
||||
|
||||
return response()->json($this->formattedPermissionDataForEntity($entity));
|
||||
}
|
||||
|
||||
protected function formattedPermissionDataForEntity(Entity $entity): array
|
||||
{
|
||||
$rolePermissions = $entity->permissions()
|
||||
->where('role_id', '!=', 0)
|
||||
->with(['role:id,display_name'])
|
||||
->get();
|
||||
|
||||
$fallback = $entity->permissions()->where('role_id', '=', 0)->first();
|
||||
$fallbackData = [
|
||||
'inheriting' => is_null($fallback),
|
||||
'view' => $fallback->view ?? null,
|
||||
'create' => $fallback->create ?? null,
|
||||
'update' => $fallback->update ?? null,
|
||||
'delete' => $fallback->delete ?? null,
|
||||
];
|
||||
|
||||
return [
|
||||
'owner' => $entity->ownedBy()->first(),
|
||||
'role_permissions' => $rolePermissions,
|
||||
'fallback_permissions' => $fallbackData,
|
||||
];
|
||||
}
|
||||
}
|
146
app/Http/Controllers/Api/ImageGalleryApiController.php
Normal file
146
app/Http/Controllers/Api/ImageGalleryApiController.php
Normal file
@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
namespace BookStack\Http\Controllers\Api;
|
||||
|
||||
use BookStack\Entities\Models\Page;
|
||||
use BookStack\Uploads\Image;
|
||||
use BookStack\Uploads\ImageRepo;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ImageGalleryApiController extends ApiController
|
||||
{
|
||||
protected array $fieldsToExpose = [
|
||||
'id', 'name', 'url', 'path', 'type', 'uploaded_to', 'created_by', 'updated_by', 'created_at', 'updated_at',
|
||||
];
|
||||
|
||||
public function __construct(
|
||||
protected ImageRepo $imageRepo
|
||||
) {
|
||||
}
|
||||
|
||||
protected function rules(): array
|
||||
{
|
||||
return [
|
||||
'create' => [
|
||||
'type' => ['required', 'string', 'in:gallery,drawio'],
|
||||
'uploaded_to' => ['required', 'integer'],
|
||||
'image' => ['required', 'file', ...$this->getImageValidationRules()],
|
||||
'name' => ['string', 'max:180'],
|
||||
],
|
||||
'update' => [
|
||||
'name' => ['string', 'max:180'],
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a listing of images in the system. Includes gallery (page content) images and drawings.
|
||||
* Requires visibility of the page they're originally uploaded to.
|
||||
*/
|
||||
public function list()
|
||||
{
|
||||
$images = Image::query()->scopes(['visible'])
|
||||
->select($this->fieldsToExpose)
|
||||
->whereIn('type', ['gallery', 'drawio']);
|
||||
|
||||
return $this->apiListingResponse($images, [
|
||||
...$this->fieldsToExpose
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new image in the system.
|
||||
* Since "image" is expected to be a file, this needs to be a 'multipart/form-data' type request.
|
||||
* The provided "uploaded_to" should be an existing page ID in the system.
|
||||
* If the "name" parameter is omitted, the filename of the provided image file will be used instead.
|
||||
* The "type" parameter should be 'gallery' for page content images, and 'drawio' should only be used
|
||||
* when the file is a PNG file with diagrams.net image data embedded within.
|
||||
*/
|
||||
public function create(Request $request)
|
||||
{
|
||||
$this->checkPermission('image-create-all');
|
||||
$data = $this->validate($request, $this->rules()['create']);
|
||||
Page::visible()->findOrFail($data['uploaded_to']);
|
||||
|
||||
$image = $this->imageRepo->saveNew($data['image'], $data['type'], $data['uploaded_to']);
|
||||
|
||||
if (isset($data['name'])) {
|
||||
$image->refresh();
|
||||
$image->update(['name' => $data['name']]);
|
||||
}
|
||||
|
||||
return response()->json($this->formatForSingleResponse($image));
|
||||
}
|
||||
|
||||
/**
|
||||
* View the details of a single image.
|
||||
* The "thumbs" response property contains links to scaled variants that BookStack may use in its UI.
|
||||
* The "content" response property provides HTML and Markdown content, in the format that BookStack
|
||||
* would typically use by default to add the image in page content, as a convenience.
|
||||
* Actual image file data is not provided but can be fetched via the "url" response property.
|
||||
*/
|
||||
public function read(string $id)
|
||||
{
|
||||
$image = Image::query()->scopes(['visible'])->findOrFail($id);
|
||||
|
||||
return response()->json($this->formatForSingleResponse($image));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the details of an existing image in the system.
|
||||
* Only allows updating of the image name at this time.
|
||||
*/
|
||||
public function update(Request $request, string $id)
|
||||
{
|
||||
$data = $this->validate($request, $this->rules()['update']);
|
||||
$image = $this->imageRepo->getById($id);
|
||||
$this->checkOwnablePermission('page-view', $image->getPage());
|
||||
$this->checkOwnablePermission('image-update', $image);
|
||||
|
||||
$this->imageRepo->updateImageDetails($image, $data);
|
||||
|
||||
return response()->json($this->formatForSingleResponse($image));
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete an image from the system.
|
||||
* Will also delete thumbnails for the image.
|
||||
* Does not check or handle image usage so this could leave pages with broken image references.
|
||||
*/
|
||||
public function delete(string $id)
|
||||
{
|
||||
$image = $this->imageRepo->getById($id);
|
||||
$this->checkOwnablePermission('page-view', $image->getPage());
|
||||
$this->checkOwnablePermission('image-delete', $image);
|
||||
$this->imageRepo->destroyImage($image);
|
||||
|
||||
return response('', 204);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format the given image model for single-result display.
|
||||
*/
|
||||
protected function formatForSingleResponse(Image $image): array
|
||||
{
|
||||
$this->imageRepo->loadThumbs($image);
|
||||
$data = $image->getAttributes();
|
||||
$data['created_by'] = $image->createdBy;
|
||||
$data['updated_by'] = $image->updatedBy;
|
||||
$data['content'] = [];
|
||||
|
||||
$escapedUrl = htmlentities($image->url);
|
||||
$escapedName = htmlentities($image->name);
|
||||
if ($image->type === 'drawio') {
|
||||
$data['content']['html'] = "<div drawio-diagram=\"{$image->id}\"><img src=\"{$escapedUrl}\"></div>";
|
||||
$data['content']['markdown'] = $data['content']['html'];
|
||||
} else {
|
||||
$escapedDisplayThumb = htmlentities($image->thumbs['display']);
|
||||
$data['content']['html'] = "<a href=\"{$escapedUrl}\" target=\"_blank\"><img src=\"{$escapedDisplayThumb}\" alt=\"{$escapedName}\"></a>";
|
||||
$mdEscapedName = str_replace(']', '', str_replace('[', '', $image->name));
|
||||
$mdEscapedThumb = str_replace(']', '', str_replace('[', '', $image->thumbs['display']));
|
||||
$data['content']['markdown'] = "![{$mdEscapedName}]({$mdEscapedThumb})";
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
@ -88,10 +88,10 @@ class RoleApiController extends ApiController
|
||||
*/
|
||||
public function read(string $id)
|
||||
{
|
||||
$user = $this->permissionsRepo->getRoleById($id);
|
||||
$this->singleFormatter($user);
|
||||
$role = $this->permissionsRepo->getRoleById($id);
|
||||
$this->singleFormatter($role);
|
||||
|
||||
return response()->json($user);
|
||||
return response()->json($role);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -14,21 +14,11 @@ use Illuminate\Http\Request;
|
||||
|
||||
class ConfirmEmailController extends Controller
|
||||
{
|
||||
protected EmailConfirmationService $emailConfirmationService;
|
||||
protected LoginService $loginService;
|
||||
protected UserRepo $userRepo;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*/
|
||||
public function __construct(
|
||||
EmailConfirmationService $emailConfirmationService,
|
||||
LoginService $loginService,
|
||||
UserRepo $userRepo
|
||||
protected EmailConfirmationService $emailConfirmationService,
|
||||
protected LoginService $loginService,
|
||||
protected UserRepo $userRepo
|
||||
) {
|
||||
$this->emailConfirmationService = $emailConfirmationService;
|
||||
$this->loginService = $loginService;
|
||||
$this->userRepo = $userRepo;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10,14 +10,9 @@ use Illuminate\Validation\ValidationException;
|
||||
|
||||
class GalleryImageController extends Controller
|
||||
{
|
||||
protected $imageRepo;
|
||||
|
||||
/**
|
||||
* GalleryImageController constructor.
|
||||
*/
|
||||
public function __construct(ImageRepo $imageRepo)
|
||||
{
|
||||
$this->imageRepo = $imageRepo;
|
||||
public function __construct(
|
||||
protected ImageRepo $imageRepo
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
@ -47,9 +42,14 @@ class GalleryImageController extends Controller
|
||||
public function create(Request $request)
|
||||
{
|
||||
$this->checkPermission('image-create-all');
|
||||
$this->validate($request, [
|
||||
'file' => $this->getImageValidationRules(),
|
||||
]);
|
||||
|
||||
try {
|
||||
$this->validate($request, [
|
||||
'file' => $this->getImageValidationRules(),
|
||||
]);
|
||||
} catch (ValidationException $exception) {
|
||||
return $this->jsonError(implode("\n", $exception->errors()['file']));
|
||||
}
|
||||
|
||||
try {
|
||||
$imageUpload = $request->file('file');
|
||||
|
@ -173,6 +173,7 @@ class SearchRunner
|
||||
// Handle exact term matching
|
||||
foreach ($searchOpts->exacts as $inputTerm) {
|
||||
$entityQuery->where(function (EloquentBuilder $query) use ($inputTerm, $entityModelInstance) {
|
||||
$inputTerm = str_replace('\\', '\\\\', $inputTerm);
|
||||
$query->where('name', 'like', '%' . $inputTerm . '%')
|
||||
->orWhere($entityModelInstance->textField, 'like', '%' . $inputTerm . '%');
|
||||
});
|
||||
@ -218,6 +219,7 @@ class SearchRunner
|
||||
$subQuery->where('entity_type', '=', $entity->getMorphClass());
|
||||
$subQuery->where(function (Builder $query) use ($terms) {
|
||||
foreach ($terms as $inputTerm) {
|
||||
$inputTerm = str_replace('\\', '\\\\', $inputTerm);
|
||||
$query->orWhere('term', 'like', $inputTerm . '%');
|
||||
}
|
||||
});
|
||||
@ -354,6 +356,9 @@ class SearchRunner
|
||||
$tagValue = (float) trim($connection->getPdo()->quote($tagValue), "'");
|
||||
$query->whereRaw("value {$tagOperator} {$tagValue}");
|
||||
} else {
|
||||
if ($tagOperator === 'like') {
|
||||
$tagValue = str_replace('\\', '\\\\', $tagValue);
|
||||
}
|
||||
$query->where('value', $tagOperator, $tagValue);
|
||||
}
|
||||
} else {
|
||||
|
@ -70,6 +70,19 @@ class ThemeEvents
|
||||
*/
|
||||
const COMMONMARK_ENVIRONMENT_CONFIGURE = 'commonmark_environment_configure';
|
||||
|
||||
/**
|
||||
* OIDC ID token pre-validate event.
|
||||
* Runs just before BookStack validates the user ID token data upon login.
|
||||
* Provides the existing found set of claims for the user as a key-value array,
|
||||
* along with an array of the proceeding access token data provided by the identity platform.
|
||||
* If the listener returns a non-null value, that will replace the existing ID token claim data.
|
||||
*
|
||||
* @param array $idTokenData
|
||||
* @param array $accessTokenData
|
||||
* @returns array|null
|
||||
*/
|
||||
const OIDC_ID_TOKEN_PRE_VALIDATE = 'oidc_id_token_pre_validate';
|
||||
|
||||
/**
|
||||
* Page include parse event.
|
||||
* Runs when a page include tag is being parsed, typically when page content is being processed for viewing.
|
||||
|
@ -3,9 +3,11 @@
|
||||
namespace BookStack\Uploads;
|
||||
|
||||
use BookStack\Auth\Permissions\JointPermission;
|
||||
use BookStack\Auth\Permissions\PermissionApplicator;
|
||||
use BookStack\Entities\Models\Page;
|
||||
use BookStack\Model;
|
||||
use BookStack\Traits\HasCreatorAndUpdater;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
|
||||
@ -33,12 +35,21 @@ class Image extends Model
|
||||
->where('joint_permissions.entity_type', '=', 'page');
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope the query to just the images visible to the user based upon the
|
||||
* user visibility of the uploaded_to page.
|
||||
*/
|
||||
public function scopeVisible(Builder $query): Builder
|
||||
{
|
||||
return app()->make(PermissionApplicator::class)->restrictPageRelationQuery($query, 'images', 'uploaded_to');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a thumbnail for this image.
|
||||
*
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function getThumb(int $width, int $height, bool $keepRatio = false): string
|
||||
public function getThumb(?int $width, ?int $height, bool $keepRatio = false): string
|
||||
{
|
||||
return app()->make(ImageService::class)->getThumbnail($this, $width, $height, $keepRatio);
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ function icon(string $name, array $attrs = []): string
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a url with multiple parameters for sorting purposes.
|
||||
* Generate a URL with multiple parameters for sorting purposes.
|
||||
* Works out the logic to set the correct sorting direction
|
||||
* Discards empty parameters and allows overriding.
|
||||
*/
|
||||
@ -172,7 +172,7 @@ function sortUrl(string $path, array $data, array $overrideData = []): string
|
||||
}
|
||||
|
||||
if (count($queryStringSections) === 0) {
|
||||
return $path;
|
||||
return url($path);
|
||||
}
|
||||
|
||||
return url($path . '?' . implode('&', $queryStringSections));
|
||||
|
BIN
bookstack-system-cli
Executable file
BIN
bookstack-system-cli
Executable file
Binary file not shown.
308
composer.lock
generated
308
composer.lock
generated
@ -8,23 +8,27 @@
|
||||
"packages": [
|
||||
{
|
||||
"name": "aws/aws-crt-php",
|
||||
"version": "v1.0.4",
|
||||
"version": "v1.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/awslabs/aws-crt-php.git",
|
||||
"reference": "f5c64ee7c5fce196e2519b3d9b7138649efe032d"
|
||||
"reference": "1926277fc71d253dfa820271ac5987bdb193ccf5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/f5c64ee7c5fce196e2519b3d9b7138649efe032d",
|
||||
"reference": "f5c64ee7c5fce196e2519b3d9b7138649efe032d",
|
||||
"url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/1926277fc71d253dfa820271ac5987bdb193ccf5",
|
||||
"reference": "1926277fc71d253dfa820271ac5987bdb193ccf5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35|^5.6.3"
|
||||
"phpunit/phpunit": "^4.8.35||^5.6.3||^9.5",
|
||||
"yoast/phpunit-polyfills": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality."
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -43,7 +47,7 @@
|
||||
}
|
||||
],
|
||||
"description": "AWS Common Runtime for PHP",
|
||||
"homepage": "http://aws.amazon.com/sdkforphp",
|
||||
"homepage": "https://github.com/awslabs/aws-crt-php",
|
||||
"keywords": [
|
||||
"amazon",
|
||||
"aws",
|
||||
@ -52,22 +56,22 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/awslabs/aws-crt-php/issues",
|
||||
"source": "https://github.com/awslabs/aws-crt-php/tree/v1.0.4"
|
||||
"source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.1"
|
||||
},
|
||||
"time": "2023-01-31T23:08:25+00:00"
|
||||
"time": "2023-03-24T20:22:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "aws/aws-sdk-php",
|
||||
"version": "3.262.0",
|
||||
"version": "3.269.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||
"reference": "f45eefe4735d5a16ecc44cfd9a6c29421ae1e802"
|
||||
"reference": "6d759ef9f24f0c7f271baf8014f41fc0cfdfbf78"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/f45eefe4735d5a16ecc44cfd9a6c29421ae1e802",
|
||||
"reference": "f45eefe4735d5a16ecc44cfd9a6c29421ae1e802",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/6d759ef9f24f0c7f271baf8014f41fc0cfdfbf78",
|
||||
"reference": "6d759ef9f24f0c7f271baf8014f41fc0cfdfbf78",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -77,7 +81,7 @@
|
||||
"ext-simplexml": "*",
|
||||
"guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
|
||||
"guzzlehttp/promises": "^1.4.0",
|
||||
"guzzlehttp/psr7": "^1.8.5 || ^2.3",
|
||||
"guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
|
||||
"mtdowling/jmespath.php": "^2.6",
|
||||
"php": ">=5.5"
|
||||
},
|
||||
@ -96,6 +100,7 @@
|
||||
"paragonie/random_compat": ">= 2",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.6.3 || ^9.5",
|
||||
"psr/cache": "^1.0",
|
||||
"psr/http-message": "^1.0",
|
||||
"psr/simple-cache": "^1.0",
|
||||
"sebastian/comparator": "^1.2.3 || ^4.0",
|
||||
"yoast/phpunit-polyfills": "^1.0"
|
||||
@ -146,9 +151,9 @@
|
||||
"support": {
|
||||
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
|
||||
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.262.0"
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.269.0"
|
||||
},
|
||||
"time": "2023-03-23T18:21:18+00:00"
|
||||
"time": "2023-04-26T18:21:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "bacon/bacon-qr-code",
|
||||
@ -361,26 +366,25 @@
|
||||
},
|
||||
{
|
||||
"name": "brick/math",
|
||||
"version": "0.10.2",
|
||||
"version": "0.11.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/brick/math.git",
|
||||
"reference": "459f2781e1a08d52ee56b0b1444086e038561e3f"
|
||||
"reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f",
|
||||
"reference": "459f2781e1a08d52ee56b0b1444086e038561e3f",
|
||||
"url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478",
|
||||
"reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"php": "^7.4 || ^8.0"
|
||||
"php": "^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"php-coveralls/php-coveralls": "^2.2",
|
||||
"phpunit/phpunit": "^9.0",
|
||||
"vimeo/psalm": "4.25.0"
|
||||
"vimeo/psalm": "5.0.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -405,7 +409,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/brick/math/issues",
|
||||
"source": "https://github.com/brick/math/tree/0.10.2"
|
||||
"source": "https://github.com/brick/math/tree/0.11.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -413,7 +417,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-08-10T22:54:19+00:00"
|
||||
"time": "2023-01-15T23:15:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "dasprid/enum",
|
||||
@ -635,16 +639,16 @@
|
||||
},
|
||||
{
|
||||
"name": "doctrine/dbal",
|
||||
"version": "3.6.1",
|
||||
"version": "3.6.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/dbal.git",
|
||||
"reference": "57815c7bbcda3cd18871d253c1dd8cbe56f8526e"
|
||||
"reference": "b4bd1cfbd2b916951696d82e57d054394d84864c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/57815c7bbcda3cd18871d253c1dd8cbe56f8526e",
|
||||
"reference": "57815c7bbcda3cd18871d253c1dd8cbe56f8526e",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/b4bd1cfbd2b916951696d82e57d054394d84864c",
|
||||
"reference": "b4bd1cfbd2b916951696d82e57d054394d84864c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -660,9 +664,9 @@
|
||||
"doctrine/coding-standard": "11.1.0",
|
||||
"fig/log-test": "^1",
|
||||
"jetbrains/phpstorm-stubs": "2022.3",
|
||||
"phpstan/phpstan": "1.10.3",
|
||||
"phpstan/phpstan": "1.10.9",
|
||||
"phpstan/phpstan-strict-rules": "^1.5",
|
||||
"phpunit/phpunit": "9.6.4",
|
||||
"phpunit/phpunit": "9.6.6",
|
||||
"psalm/plugin-phpunit": "0.18.4",
|
||||
"squizlabs/php_codesniffer": "3.7.2",
|
||||
"symfony/cache": "^5.4|^6.0",
|
||||
@ -727,7 +731,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/dbal/issues",
|
||||
"source": "https://github.com/doctrine/dbal/tree/3.6.1"
|
||||
"source": "https://github.com/doctrine/dbal/tree/3.6.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -743,7 +747,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-02T19:26:24+00:00"
|
||||
"time": "2023-04-14T07:25:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/deprecations",
|
||||
@ -1374,22 +1378,22 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "7.5.0",
|
||||
"version": "7.5.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba"
|
||||
"reference": "b964ca597e86b752cd994f27293e9fa6b6a95ed9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba",
|
||||
"reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/b964ca597e86b752cd994f27293e9fa6b6a95ed9",
|
||||
"reference": "b964ca597e86b752cd994f27293e9fa6b6a95ed9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"guzzlehttp/promises": "^1.5",
|
||||
"guzzlehttp/psr7": "^1.9 || ^2.4",
|
||||
"guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
|
||||
"php": "^7.2.5 || ^8.0",
|
||||
"psr/http-client": "^1.0",
|
||||
"symfony/deprecation-contracts": "^2.2 || ^3.0"
|
||||
@ -1482,7 +1486,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/guzzle/issues",
|
||||
"source": "https://github.com/guzzle/guzzle/tree/7.5.0"
|
||||
"source": "https://github.com/guzzle/guzzle/tree/7.5.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -1498,7 +1502,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-08-28T15:39:27+00:00"
|
||||
"time": "2023-04-17T16:30:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
@ -1586,22 +1590,22 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "2.4.4",
|
||||
"version": "2.5.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf"
|
||||
"reference": "b635f279edd83fc275f822a1188157ffea568ff6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf",
|
||||
"reference": "3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/b635f279edd83fc275f822a1188157ffea568ff6",
|
||||
"reference": "b635f279edd83fc275f822a1188157ffea568ff6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2.5 || ^8.0",
|
||||
"psr/http-factory": "^1.0",
|
||||
"psr/http-message": "^1.0",
|
||||
"psr/http-message": "^1.1 || ^2.0",
|
||||
"ralouphie/getallheaders": "^3.0"
|
||||
},
|
||||
"provide": {
|
||||
@ -1621,9 +1625,6 @@
|
||||
"bamarni-bin": {
|
||||
"bin-links": true,
|
||||
"forward-command": false
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-master": "2.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -1685,7 +1686,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/psr7/issues",
|
||||
"source": "https://github.com/guzzle/psr7/tree/2.4.4"
|
||||
"source": "https://github.com/guzzle/psr7/tree/2.5.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -1701,7 +1702,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-09T13:19:02+00:00"
|
||||
"time": "2023-04-17T16:11:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/uri-template",
|
||||
@ -1947,16 +1948,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
"version": "v9.52.4",
|
||||
"version": "v9.52.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/framework.git",
|
||||
"reference": "9239128cfb4d22afefb64060dfecf53e82987267"
|
||||
"reference": "675ea868fe36b18c8303e954aac540e6b1caa677"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/9239128cfb4d22afefb64060dfecf53e82987267",
|
||||
"reference": "9239128cfb4d22afefb64060dfecf53e82987267",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/675ea868fe36b18c8303e954aac540e6b1caa677",
|
||||
"reference": "675ea868fe36b18c8303e954aac540e6b1caa677",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2053,7 +2054,7 @@
|
||||
"league/flysystem-read-only": "^3.3",
|
||||
"league/flysystem-sftp-v3": "^3.0",
|
||||
"mockery/mockery": "^1.5.1",
|
||||
"orchestra/testbench-core": "^7.16",
|
||||
"orchestra/testbench-core": "^7.24",
|
||||
"pda/pheanstalk": "^4.0",
|
||||
"phpstan/phpdoc-parser": "^1.15",
|
||||
"phpstan/phpstan": "^1.4.7",
|
||||
@ -2141,7 +2142,7 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2023-02-22T14:38:06+00:00"
|
||||
"time": "2023-04-25T13:44:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/serializable-closure",
|
||||
@ -2342,16 +2343,16 @@
|
||||
},
|
||||
{
|
||||
"name": "league/commonmark",
|
||||
"version": "2.3.9",
|
||||
"version": "2.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/commonmark.git",
|
||||
"reference": "c1e114f74e518daca2729ea8c4bf1167038fa4b5"
|
||||
"reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/c1e114f74e518daca2729ea8c4bf1167038fa4b5",
|
||||
"reference": "c1e114f74e518daca2729ea8c4bf1167038fa4b5",
|
||||
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d44a24690f16b8c1808bf13b1bd54ae4c63ea048",
|
||||
"reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2387,7 +2388,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "2.4-dev"
|
||||
"dev-main": "2.5-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -2444,7 +2445,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-02-15T14:07:24+00:00"
|
||||
"time": "2023-03-24T15:16:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/config",
|
||||
@ -2530,16 +2531,16 @@
|
||||
},
|
||||
{
|
||||
"name": "league/flysystem",
|
||||
"version": "3.12.3",
|
||||
"version": "3.14.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/flysystem.git",
|
||||
"reference": "81e87e74dd5213795c7846d65089712d2dda90ce"
|
||||
"reference": "e2a279d7f47d9098e479e8b21f7fb8b8de230158"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/81e87e74dd5213795c7846d65089712d2dda90ce",
|
||||
"reference": "81e87e74dd5213795c7846d65089712d2dda90ce",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/e2a279d7f47d9098e479e8b21f7fb8b8de230158",
|
||||
"reference": "e2a279d7f47d9098e479e8b21f7fb8b8de230158",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2601,7 +2602,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/flysystem/issues",
|
||||
"source": "https://github.com/thephpleague/flysystem/tree/3.12.3"
|
||||
"source": "https://github.com/thephpleague/flysystem/tree/3.14.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -2611,26 +2612,22 @@
|
||||
{
|
||||
"url": "https://github.com/frankdejonge",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/league/flysystem",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-02-18T15:32:41+00:00"
|
||||
"time": "2023-04-11T18:11:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/flysystem-aws-s3-v3",
|
||||
"version": "3.12.2",
|
||||
"version": "3.13.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
|
||||
"reference": "645e14e4a80bd2da8b01e57388e7296a695a80c2"
|
||||
"reference": "8e04cbb403d4dfd5b73a2f8685f1df395bd177eb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/645e14e4a80bd2da8b01e57388e7296a695a80c2",
|
||||
"reference": "645e14e4a80bd2da8b01e57388e7296a695a80c2",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/8e04cbb403d4dfd5b73a2f8685f1df395bd177eb",
|
||||
"reference": "8e04cbb403d4dfd5b73a2f8685f1df395bd177eb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2671,7 +2668,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues",
|
||||
"source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.12.2"
|
||||
"source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.13.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -2681,13 +2678,9 @@
|
||||
{
|
||||
"url": "https://github.com/frankdejonge",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/league/flysystem",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-01-17T14:15:08+00:00"
|
||||
"time": "2023-03-16T14:29:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/html-to-markdown",
|
||||
@ -2912,16 +2905,16 @@
|
||||
},
|
||||
{
|
||||
"name": "league/oauth2-client",
|
||||
"version": "2.6.1",
|
||||
"version": "2.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/oauth2-client.git",
|
||||
"reference": "2334c249907190c132364f5dae0287ab8666aa19"
|
||||
"reference": "160d6274b03562ebeb55ed18399281d8118b76c8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/2334c249907190c132364f5dae0287ab8666aa19",
|
||||
"reference": "2334c249907190c132364f5dae0287ab8666aa19",
|
||||
"url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/160d6274b03562ebeb55ed18399281d8118b76c8",
|
||||
"reference": "160d6274b03562ebeb55ed18399281d8118b76c8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2976,32 +2969,30 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/oauth2-client/issues",
|
||||
"source": "https://github.com/thephpleague/oauth2-client/tree/2.6.1"
|
||||
"source": "https://github.com/thephpleague/oauth2-client/tree/2.7.0"
|
||||
},
|
||||
"time": "2021-12-22T16:42:49+00:00"
|
||||
"time": "2023-04-16T18:19:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "masterminds/html5",
|
||||
"version": "2.7.6",
|
||||
"version": "2.8.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Masterminds/html5-php.git",
|
||||
"reference": "897eb517a343a2281f11bc5556d6548db7d93947"
|
||||
"reference": "3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Masterminds/html5-php/zipball/897eb517a343a2281f11bc5556d6548db7d93947",
|
||||
"reference": "897eb517a343a2281f11bc5556d6548db7d93947",
|
||||
"url": "https://api.github.com/repos/Masterminds/html5-php/zipball/3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3",
|
||||
"reference": "3c5d5a56d56f48a1ca08a0670f0f80c1dad368f3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-ctype": "*",
|
||||
"ext-dom": "*",
|
||||
"ext-libxml": "*",
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7"
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@ -3045,9 +3036,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/Masterminds/html5-php/issues",
|
||||
"source": "https://github.com/Masterminds/html5-php/tree/2.7.6"
|
||||
"source": "https://github.com/Masterminds/html5-php/tree/2.8.0"
|
||||
},
|
||||
"time": "2022-08-18T16:18:26+00:00"
|
||||
"time": "2023-04-26T07:27:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "monolog/monolog",
|
||||
@ -4317,21 +4308,21 @@
|
||||
},
|
||||
{
|
||||
"name": "psr/http-client",
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-client.git",
|
||||
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621"
|
||||
"reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
|
||||
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
|
||||
"url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31",
|
||||
"reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.0 || ^8.0",
|
||||
"psr/http-message": "^1.0"
|
||||
"psr/http-message": "^1.0 || ^2.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@ -4351,7 +4342,7 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
"homepage": "https://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for HTTP clients",
|
||||
@ -4363,27 +4354,27 @@
|
||||
"psr-18"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/http-client/tree/master"
|
||||
"source": "https://github.com/php-fig/http-client/tree/1.0.2"
|
||||
},
|
||||
"time": "2020-06-29T06:28:15+00:00"
|
||||
"time": "2023-04-10T20:12:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-factory",
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-factory.git",
|
||||
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
|
||||
"reference": "e616d01114759c4c489f93b099585439f795fe35"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
|
||||
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
|
||||
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
|
||||
"reference": "e616d01114759c4c489f93b099585439f795fe35",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.0.0",
|
||||
"psr/http-message": "^1.0"
|
||||
"psr/http-message": "^1.0 || ^2.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@ -4403,7 +4394,7 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
"homepage": "https://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interfaces for PSR-7 HTTP message factories",
|
||||
@ -4418,31 +4409,31 @@
|
||||
"response"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/http-factory/tree/master"
|
||||
"source": "https://github.com/php-fig/http-factory/tree/1.0.2"
|
||||
},
|
||||
"time": "2019-04-30T12:38:16+00:00"
|
||||
"time": "2023-04-10T20:10:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-message",
|
||||
"version": "1.0.1",
|
||||
"version": "2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-message.git",
|
||||
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
|
||||
"reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||
"url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
|
||||
"reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
"php": "^7.2 || ^8.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -4457,7 +4448,7 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
"homepage": "https://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for HTTP messages",
|
||||
@ -4471,9 +4462,9 @@
|
||||
"response"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/http-message/tree/master"
|
||||
"source": "https://github.com/php-fig/http-message/tree/2.0"
|
||||
},
|
||||
"time": "2016-08-06T14:39:51+00:00"
|
||||
"time": "2023-04-04T09:54:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
@ -4578,16 +4569,16 @@
|
||||
},
|
||||
{
|
||||
"name": "psy/psysh",
|
||||
"version": "v0.11.13",
|
||||
"version": "v0.11.16",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/bobthecow/psysh.git",
|
||||
"reference": "722317c9f5627e588788e340f29b923e58f92f54"
|
||||
"reference": "151b145906804eea8e5d71fea23bfb470c904bfb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/722317c9f5627e588788e340f29b923e58f92f54",
|
||||
"reference": "722317c9f5627e588788e340f29b923e58f92f54",
|
||||
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/151b145906804eea8e5d71fea23bfb470c904bfb",
|
||||
"reference": "151b145906804eea8e5d71fea23bfb470c904bfb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -4648,9 +4639,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/bobthecow/psysh/issues",
|
||||
"source": "https://github.com/bobthecow/psysh/tree/v0.11.13"
|
||||
"source": "https://github.com/bobthecow/psysh/tree/v0.11.16"
|
||||
},
|
||||
"time": "2023-03-21T14:22:44+00:00"
|
||||
"time": "2023-04-26T12:53:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ralouphie/getallheaders",
|
||||
@ -4788,20 +4779,20 @@
|
||||
},
|
||||
{
|
||||
"name": "ramsey/uuid",
|
||||
"version": "4.7.3",
|
||||
"version": "4.7.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ramsey/uuid.git",
|
||||
"reference": "433b2014e3979047db08a17a205f410ba3869cf2"
|
||||
"reference": "60a4c63ab724854332900504274f6150ff26d286"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ramsey/uuid/zipball/433b2014e3979047db08a17a205f410ba3869cf2",
|
||||
"reference": "433b2014e3979047db08a17a205f410ba3869cf2",
|
||||
"url": "https://api.github.com/repos/ramsey/uuid/zipball/60a4c63ab724854332900504274f6150ff26d286",
|
||||
"reference": "60a4c63ab724854332900504274f6150ff26d286",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"brick/math": "^0.8.8 || ^0.9 || ^0.10",
|
||||
"brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11",
|
||||
"ext-json": "*",
|
||||
"php": "^8.0",
|
||||
"ramsey/collection": "^1.2 || ^2.0"
|
||||
@ -4864,7 +4855,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/ramsey/uuid/issues",
|
||||
"source": "https://github.com/ramsey/uuid/tree/4.7.3"
|
||||
"source": "https://github.com/ramsey/uuid/tree/4.7.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -4876,7 +4867,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-01-12T18:13:24+00:00"
|
||||
"time": "2023-04-15T23:01:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "robrichards/xmlseclibs",
|
||||
@ -8034,16 +8025,16 @@
|
||||
},
|
||||
{
|
||||
"name": "filp/whoops",
|
||||
"version": "2.15.1",
|
||||
"version": "2.15.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/filp/whoops.git",
|
||||
"reference": "e864ac957acd66e1565f25efda61e37791a5db0b"
|
||||
"reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/filp/whoops/zipball/e864ac957acd66e1565f25efda61e37791a5db0b",
|
||||
"reference": "e864ac957acd66e1565f25efda61e37791a5db0b",
|
||||
"url": "https://api.github.com/repos/filp/whoops/zipball/aac9304c5ed61bf7b1b7a6064bf9806ab842ce73",
|
||||
"reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -8093,7 +8084,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/filp/whoops/issues",
|
||||
"source": "https://github.com/filp/whoops/tree/2.15.1"
|
||||
"source": "https://github.com/filp/whoops/tree/2.15.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -8101,7 +8092,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-06T18:09:13+00:00"
|
||||
"time": "2023-04-12T12:00:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "hamcrest/hamcrest-php",
|
||||
@ -8443,16 +8434,16 @@
|
||||
},
|
||||
{
|
||||
"name": "nunomaduro/larastan",
|
||||
"version": "2.5.1",
|
||||
"version": "v2.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nunomaduro/larastan.git",
|
||||
"reference": "072e2c9566ae000bf66c92384fc933b81885244b"
|
||||
"reference": "ccac5b25949576807862cf32ba1fce1769c06c42"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nunomaduro/larastan/zipball/072e2c9566ae000bf66c92384fc933b81885244b",
|
||||
"reference": "072e2c9566ae000bf66c92384fc933b81885244b",
|
||||
"url": "https://api.github.com/repos/nunomaduro/larastan/zipball/ccac5b25949576807862cf32ba1fce1769c06c42",
|
||||
"reference": "ccac5b25949576807862cf32ba1fce1769c06c42",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -8466,7 +8457,7 @@
|
||||
"illuminate/support": "^9.47.0 || ^10.0.0",
|
||||
"php": "^8.0.2",
|
||||
"phpmyadmin/sql-parser": "^5.6.0",
|
||||
"phpstan/phpstan": "~1.10.3"
|
||||
"phpstan/phpstan": "~1.10.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"nikic/php-parser": "^4.15.2",
|
||||
@ -8515,7 +8506,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/nunomaduro/larastan/issues",
|
||||
"source": "https://github.com/nunomaduro/larastan/tree/2.5.1"
|
||||
"source": "https://github.com/nunomaduro/larastan/tree/v2.6.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -8535,7 +8526,7 @@
|
||||
"type": "patreon"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-04T23:46:40+00:00"
|
||||
"time": "2023-04-20T12:40:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phar-io/manifest",
|
||||
@ -8737,16 +8728,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpstan",
|
||||
"version": "1.10.8",
|
||||
"version": "1.10.14",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpstan.git",
|
||||
"reference": "0166aef76e066f0dd2adc2799bdadfa1635711e9"
|
||||
"reference": "d232901b09e67538e5c86a724be841bea5768a7c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/0166aef76e066f0dd2adc2799bdadfa1635711e9",
|
||||
"reference": "0166aef76e066f0dd2adc2799bdadfa1635711e9",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/d232901b09e67538e5c86a724be841bea5768a7c",
|
||||
"reference": "d232901b09e67538e5c86a724be841bea5768a7c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -8795,7 +8786,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-24T10:28:16+00:00"
|
||||
"time": "2023-04-19T13:47:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-code-coverage",
|
||||
@ -9117,16 +9108,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "9.6.5",
|
||||
"version": "9.6.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "86e761949019ae83f49240b2f2123fb5ab3b2fc5"
|
||||
"reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/86e761949019ae83f49240b2f2123fb5ab3b2fc5",
|
||||
"reference": "86e761949019ae83f49240b2f2123fb5ab3b2fc5",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c993f0d3b0489ffc42ee2fe0bd645af1538a63b2",
|
||||
"reference": "c993f0d3b0489ffc42ee2fe0bd645af1538a63b2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -9199,7 +9190,8 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.5"
|
||||
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.7"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -9215,7 +9207,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-09T06:34:10+00:00"
|
||||
"time": "2023-04-14T08:58:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/cli-parser",
|
||||
|
26
dev/api/requests/content-permissions-update.json
Normal file
26
dev/api/requests/content-permissions-update.json
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"owner_id": 1,
|
||||
"role_permissions": [
|
||||
{
|
||||
"role_id": 2,
|
||||
"view": true,
|
||||
"create": true,
|
||||
"update": true,
|
||||
"delete": false
|
||||
},
|
||||
{
|
||||
"role_id": 3,
|
||||
"view": false,
|
||||
"create": false,
|
||||
"update": false,
|
||||
"delete": false
|
||||
}
|
||||
],
|
||||
"fallback_permissions": {
|
||||
"inheriting": false,
|
||||
"view": true,
|
||||
"create": true,
|
||||
"update": false,
|
||||
"delete": false
|
||||
}
|
||||
}
|
3
dev/api/requests/image-gallery-update.json
Normal file
3
dev/api/requests/image-gallery-update.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"name": "My updated image name"
|
||||
}
|
@ -7,7 +7,7 @@
|
||||
"slug": "content-creation",
|
||||
"description": "How to create documentation on whatever subject you need to write about.",
|
||||
"priority": 3,
|
||||
"created_at": "2019-05-05:",
|
||||
"created_at": "2019-05-05T21:49:56.000000Z",
|
||||
"updated_at": "2019-09-28T11:24:23.000000Z",
|
||||
"created_by": 1,
|
||||
"updated_by": 1,
|
||||
|
38
dev/api/responses/content-permissions-read.json
Normal file
38
dev/api/responses/content-permissions-read.json
Normal file
@ -0,0 +1,38 @@
|
||||
{
|
||||
"owner": {
|
||||
"id": 1,
|
||||
"name": "Admin",
|
||||
"slug": "admin"
|
||||
},
|
||||
"role_permissions": [
|
||||
{
|
||||
"role_id": 2,
|
||||
"view": true,
|
||||
"create": false,
|
||||
"update": true,
|
||||
"delete": false,
|
||||
"role": {
|
||||
"id": 2,
|
||||
"display_name": "Editor"
|
||||
}
|
||||
},
|
||||
{
|
||||
"role_id": 10,
|
||||
"view": true,
|
||||
"create": true,
|
||||
"update": false,
|
||||
"delete": false,
|
||||
"role": {
|
||||
"id": 10,
|
||||
"display_name": "Wizards of the west"
|
||||
}
|
||||
}
|
||||
],
|
||||
"fallback_permissions": {
|
||||
"inheriting": false,
|
||||
"view": true,
|
||||
"create": false,
|
||||
"update": false,
|
||||
"delete": false
|
||||
}
|
||||
}
|
38
dev/api/responses/content-permissions-update.json
Normal file
38
dev/api/responses/content-permissions-update.json
Normal file
@ -0,0 +1,38 @@
|
||||
{
|
||||
"owner": {
|
||||
"id": 1,
|
||||
"name": "Admin",
|
||||
"slug": "admin"
|
||||
},
|
||||
"role_permissions": [
|
||||
{
|
||||
"role_id": 2,
|
||||
"view": true,
|
||||
"create": true,
|
||||
"update": true,
|
||||
"delete": false,
|
||||
"role": {
|
||||
"id": 2,
|
||||
"display_name": "Editor"
|
||||
}
|
||||
},
|
||||
{
|
||||
"role_id": 3,
|
||||
"view": false,
|
||||
"create": false,
|
||||
"update": false,
|
||||
"delete": false,
|
||||
"role": {
|
||||
"id": 3,
|
||||
"display_name": "Viewer"
|
||||
}
|
||||
}
|
||||
],
|
||||
"fallback_permissions": {
|
||||
"inheriting": false,
|
||||
"view": true,
|
||||
"create": true,
|
||||
"update": false,
|
||||
"delete": false
|
||||
}
|
||||
}
|
28
dev/api/responses/image-gallery-create.json
Normal file
28
dev/api/responses/image-gallery-create.json
Normal file
@ -0,0 +1,28 @@
|
||||
{
|
||||
"name": "cute-cat-image.png",
|
||||
"path": "\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png",
|
||||
"url": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png",
|
||||
"type": "gallery",
|
||||
"uploaded_to": 1,
|
||||
"created_by": {
|
||||
"id": 1,
|
||||
"name": "Admin",
|
||||
"slug": "admin"
|
||||
},
|
||||
"updated_by": {
|
||||
"id": 1,
|
||||
"name": "Admin",
|
||||
"slug": "admin"
|
||||
},
|
||||
"updated_at": "2023-03-15 08:17:37",
|
||||
"created_at": "2023-03-15 08:17:37",
|
||||
"id": 618,
|
||||
"thumbs": {
|
||||
"gallery": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/thumbs-150-150\/cute-cat-image.png",
|
||||
"display": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png"
|
||||
},
|
||||
"content": {
|
||||
"html": "<a href=\"https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png\" target=\"_blank\"><img src=\"https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png\" alt=\"cute-cat-image.png\"><\/a>",
|
||||
"markdown": "![cute-cat-image.png](https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png)"
|
||||
}
|
||||
}
|
41
dev/api/responses/image-gallery-list.json
Normal file
41
dev/api/responses/image-gallery-list.json
Normal file
@ -0,0 +1,41 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "My cat scribbles",
|
||||
"url": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-02\/scribbles.jpg",
|
||||
"path": "\/uploads\/images\/gallery\/2023-02\/scribbles.jpg",
|
||||
"type": "gallery",
|
||||
"uploaded_to": 1,
|
||||
"created_by": 1,
|
||||
"updated_by": 1,
|
||||
"created_at": "2023-02-12T16:34:57.000000Z",
|
||||
"updated_at": "2023-02-12T16:34:57.000000Z"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "Drawing-1.png",
|
||||
"url": "https:\/\/bookstack.example.com\/uploads\/images\/drawio\/2023-02\/drawing-1.png",
|
||||
"path": "\/uploads\/images\/drawio\/2023-02\/drawing-1.png",
|
||||
"type": "drawio",
|
||||
"uploaded_to": 2,
|
||||
"created_by": 2,
|
||||
"updated_by": 2,
|
||||
"created_at": "2023-02-12T16:39:19.000000Z",
|
||||
"updated_at": "2023-02-12T16:39:19.000000Z"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"name": "beans.jpg",
|
||||
"url": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-02\/beans.jpg",
|
||||
"path": "\/uploads\/images\/gallery\/2023-02\/beans.jpg",
|
||||
"type": "gallery",
|
||||
"uploaded_to": 6,
|
||||
"created_by": 1,
|
||||
"updated_by": 1,
|
||||
"created_at": "2023-02-15T19:37:44.000000Z",
|
||||
"updated_at": "2023-02-15T19:37:44.000000Z"
|
||||
}
|
||||
],
|
||||
"total": 3
|
||||
}
|
28
dev/api/responses/image-gallery-read.json
Normal file
28
dev/api/responses/image-gallery-read.json
Normal file
@ -0,0 +1,28 @@
|
||||
{
|
||||
"id": 618,
|
||||
"name": "cute-cat-image.png",
|
||||
"url": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png",
|
||||
"created_at": "2023-03-15 08:17:37",
|
||||
"updated_at": "2023-03-15 08:17:37",
|
||||
"created_by": {
|
||||
"id": 1,
|
||||
"name": "Admin",
|
||||
"slug": "admin"
|
||||
},
|
||||
"updated_by": {
|
||||
"id": 1,
|
||||
"name": "Admin",
|
||||
"slug": "admin"
|
||||
},
|
||||
"path": "\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png",
|
||||
"type": "gallery",
|
||||
"uploaded_to": 1,
|
||||
"thumbs": {
|
||||
"gallery": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/thumbs-150-150\/cute-cat-image.png",
|
||||
"display": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png"
|
||||
},
|
||||
"content": {
|
||||
"html": "<a href=\"https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png\" target=\"_blank\"><img src=\"https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png\" alt=\"cute-cat-image.png\"><\/a>",
|
||||
"markdown": "![cute-cat-image.png](https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png)"
|
||||
}
|
||||
}
|
28
dev/api/responses/image-gallery-update.json
Normal file
28
dev/api/responses/image-gallery-update.json
Normal file
@ -0,0 +1,28 @@
|
||||
{
|
||||
"id": 618,
|
||||
"name": "My updated image name",
|
||||
"url": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png",
|
||||
"created_at": "2023-03-15 08:17:37",
|
||||
"updated_at": "2023-03-15 08:24:50",
|
||||
"created_by": {
|
||||
"id": 1,
|
||||
"name": "Admin",
|
||||
"slug": "admin"
|
||||
},
|
||||
"updated_by": {
|
||||
"id": 1,
|
||||
"name": "Admin",
|
||||
"slug": "admin"
|
||||
},
|
||||
"path": "\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png",
|
||||
"type": "gallery",
|
||||
"uploaded_to": 1,
|
||||
"thumbs": {
|
||||
"gallery": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/thumbs-150-150\/cute-cat-image.png",
|
||||
"display": "https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png"
|
||||
},
|
||||
"content": {
|
||||
"html": "<a href=\"https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/cute-cat-image.png\" target=\"_blank\"><img src=\"https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png\" alt=\"My updated image name\"><\/a>",
|
||||
"markdown": "![My updated image name](https:\/\/bookstack.example.com\/uploads\/images\/gallery\/2023-03\/scaled-1680-\/cute-cat-image.png)"
|
||||
}
|
||||
}
|
@ -1,32 +1,35 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const esbuild = require('esbuild');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
// Check if we're building for production
|
||||
// (Set via passing `production` as first argument)
|
||||
const isProd = process.argv[2] === 'production';
|
||||
|
||||
// Gather our input files
|
||||
const jsInDir = path.join(__dirname, '../../resources/js');
|
||||
const jsInDirFiles = fs.readdirSync(jsInDir, 'utf8');
|
||||
const entryFiles = jsInDirFiles
|
||||
.filter(f => f.endsWith('.js') || f.endsWith('.mjs'))
|
||||
.map(f => path.join(jsInDir, f));
|
||||
const entryPoints = {
|
||||
app: path.join(__dirname, '../../resources/js/app.js'),
|
||||
code: path.join(__dirname, '../../resources/js/code/index.mjs'),
|
||||
'legacy-modes': path.join(__dirname, '../../resources/js/code/legacy-modes.mjs'),
|
||||
};
|
||||
|
||||
// Locate our output directory
|
||||
const outDir = path.join(__dirname, '../../public/dist');
|
||||
const outdir = path.join(__dirname, '../../public/dist');
|
||||
|
||||
// Build via esbuild
|
||||
esbuild.build({
|
||||
bundle: true,
|
||||
entryPoints: entryFiles,
|
||||
outdir: outDir,
|
||||
metafile: true,
|
||||
entryPoints,
|
||||
outdir,
|
||||
sourcemap: true,
|
||||
target: 'es2020',
|
||||
mainFields: ['module', 'main'],
|
||||
format: 'esm',
|
||||
minify: isProd,
|
||||
logLevel: "info",
|
||||
}).then(result => {
|
||||
fs.writeFileSync('esbuild-meta.json', JSON.stringify(result.metafile));
|
||||
}).catch(() => process.exit(1));
|
@ -33,6 +33,10 @@ If the codebase needs to be tested with deprecations, this can be done via uncom
|
||||
|
||||
## Code Standards
|
||||
|
||||
We use tools to manage code standards and formatting within the project. If submitting a PR, formatting as per our project standards would help for clarity but don't worry too much about using/understanding these tools as we can always address issues at a later stage when they're picked up by our automated tools.
|
||||
|
||||
### PHP
|
||||
|
||||
PHP code standards are managed by [using PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer).
|
||||
Static analysis is in place using [PHPStan](https://phpstan.org/) & [Larastan](https://github.com/nunomaduro/larastan).
|
||||
The below commands can be used to utilise these tools:
|
||||
@ -51,7 +55,19 @@ composer format
|
||||
composer check-static
|
||||
```
|
||||
|
||||
If submitting a PR, formatting as per our project standards would help for clarity but don't worry too much about using/understanding these tools as we can always address issues at a later stage when they're picked up by our automated tools.
|
||||
### JavaScript
|
||||
|
||||
JavaScript code standards use managed using [ESLint](https://eslint.org/).
|
||||
The ESLint rule configuration is managed within the `package.json` file.
|
||||
The below commands can be used to lint and format:
|
||||
|
||||
```bash
|
||||
# Run code linting using ESLint
|
||||
npm run lint
|
||||
|
||||
# Fix code where possible using ESLint
|
||||
npm run fix
|
||||
```
|
||||
|
||||
## Development using Docker
|
||||
|
||||
|
@ -115,6 +115,7 @@ There are various global helper libraries in BookStack which can be accessed via
|
||||
|
||||
```js
|
||||
// HTTP service
|
||||
// Relative URLs will be resolved against the instance BASE_URL
|
||||
window.$http.get(url, params);
|
||||
window.$http.post(url, data);
|
||||
window.$http.put(url, data);
|
||||
@ -153,4 +154,10 @@ window.$components.get(name);
|
||||
// Get the first active component of the given name that's been
|
||||
// created on the given element.
|
||||
window.$components.firstOnElement(element, name);
|
||||
```
|
||||
```
|
||||
|
||||
## Public Events
|
||||
|
||||
There are a range of available events that are emitted as part of a public & supported API for accessing or extending JavaScript libraries & components used in the system.
|
||||
|
||||
Details on these events can be found in the [JavaScript Public Events file](javascript-public-events.md).
|
255
dev/docs/javascript-public-events.md
Normal file
255
dev/docs/javascript-public-events.md
Normal file
@ -0,0 +1,255 @@
|
||||
# JavaScript Public Events
|
||||
|
||||
There are a range of available events emitted as part of a public & [supported](#support) API for accessing or extending JavaScript libraries and components used in the system.
|
||||
These are emitted via standard DOM events so can be consumed using standard DOM APIs like so:
|
||||
|
||||
```javascript
|
||||
window.addEventListener('event-name', event => {
|
||||
const eventData = event.detail;
|
||||
});
|
||||
```
|
||||
|
||||
Such events are typically emitted from a DOM element relevant to event, which then bubbles up.
|
||||
For most use-cases you can probably just listen on the `window` as shown above.
|
||||
|
||||
## Support
|
||||
|
||||
This event system, and the events emitted, are considered semi-supported.
|
||||
Breaking changes of the event API, event names, or event properties, are possible but will be documented in update notes.
|
||||
The detail provided within the events, and the libraries made accessible, are not considered supported nor stable, and changes to these won't be clearly documented changelogs.
|
||||
|
||||
## Event Naming Scheme
|
||||
|
||||
Events are typically named in the following format:
|
||||
|
||||
```text
|
||||
<context>::<action/lifecycle>
|
||||
|
||||
# Examples:
|
||||
editor-tinymce::setup
|
||||
library-cm6::configure-theme
|
||||
```
|
||||
|
||||
If the event is generic in use but specific to a library, the `<context>` will start with `library-` followed by the library name. Otherwise `<context>` may reflect the UI context/component.
|
||||
|
||||
The `<action/lifecycle>` reflects the lifecycle stage of the context, or a specific action to perform if the event is specific to a certain use-case.
|
||||
|
||||
## Event Listing
|
||||
|
||||
### `editor-markdown-cm6::pre-init`
|
||||
|
||||
This event is called before the markdown input editor CodeMirror instance is created or loaded.
|
||||
|
||||
#### Event Data
|
||||
|
||||
- `editorViewConfig` - An [EditorViewConfig](https://codemirror.net/docs/ref/#view.EditorViewConfig) object that will eventially be passed when creating the CodeMirror EditorView instance.
|
||||
|
||||
##### Example
|
||||
|
||||
```javascript
|
||||
// Always load the editor with specific pre-defined content if empty
|
||||
window.addEventListener('editor-markdown-cm6::pre-init', event => {
|
||||
const config = event.detail.editorViewConfig;
|
||||
config.doc = config.doc || "Start this page with a nice story";
|
||||
});
|
||||
```
|
||||
|
||||
### `editor-markdown::setup`
|
||||
|
||||
This event is called when the markdown editor loads, post configuration but before the editor is ready to use.
|
||||
|
||||
#### Event Data
|
||||
|
||||
- `markdownIt` - A references to the [MarkdownIt](https://markdown-it.github.io/markdown-it/#MarkdownIt) instance used to render markdown to HTML (Just for the preview).
|
||||
- `displayEl` - The IFrame Element that wraps the HTML preview display.
|
||||
- `cmEditorView` - The CodeMirror [EditorView](https://codemirror.net/docs/ref/#view.EditorView) instance used for the markdown input editor.
|
||||
|
||||
##### Example
|
||||
|
||||
```javascript
|
||||
// Set all text in the display to be red by default.
|
||||
window.addEventListener('editor-markdown::setup', event => {
|
||||
const display = event.detail.displayEl;
|
||||
display.contentDocument.body.style.color = 'red';
|
||||
});
|
||||
```
|
||||
|
||||
### `editor-drawio::configure`
|
||||
|
||||
This event is called as the embedded diagrams.net drawing editor loads, to allow configuration of the diagrams.net interface.
|
||||
See [this diagrams.net page](https://www.diagrams.net/doc/faq/configure-diagram-editor) for details on the available options for the configure event.
|
||||
|
||||
If using a custom diagrams.net instance, via the `DRAWIO` option, you will need to ensure your DRAWIO option URL has the `configure=1` query parameter.
|
||||
|
||||
#### Event Data
|
||||
|
||||
- `config` - The configuration object that will be passed to diagrams.net.
|
||||
- This will likely be empty by default, but modify this object in-place as needed with your desired options.
|
||||
|
||||
##### Example
|
||||
|
||||
```javascript
|
||||
// Set only the "general" and "android" libraries to show by default
|
||||
window.addEventListener('editor-drawio::configure', event => {
|
||||
const config = event.detail.config;
|
||||
config.enabledLibraries = ["general", "android"];
|
||||
});
|
||||
```
|
||||
|
||||
### `editor-tinymce::pre-init`
|
||||
|
||||
This event is called before the TinyMCE editor, used as the BookStack WYSIWYG page editor, is initialised.
|
||||
|
||||
#### Event Data
|
||||
|
||||
- `config` - Object containing the configuration that's going to be passed to [tinymce.init](https://www.tiny.cloud/docs/api/tinymce/root_tinymce/#init).
|
||||
|
||||
##### Example
|
||||
|
||||
```javascript
|
||||
// Removed "bold" from the editor toolbar
|
||||
window.addEventListener('editor-tinymce::pre-init', event => {
|
||||
const tinyConfig = event.detail.config;
|
||||
tinyConfig.toolbar = tinyConfig.toolbar.replace('bold ', '');
|
||||
});
|
||||
```
|
||||
|
||||
### `editor-tinymce::setup`
|
||||
|
||||
This event is called during the `setup` lifecycle stage of the TinyMCE editor used as the BookStack WYSIWYG editor. This is after configuration, but before the editor is fully loaded and ready to use.
|
||||
|
||||
##### Event Data
|
||||
|
||||
- `editor` - The [tinymce.Editor](https://www.tiny.cloud/docs/api/tinymce/tinymce.editor/) instance used for the WYSIWYG editor.
|
||||
|
||||
##### Example
|
||||
|
||||
```javascript
|
||||
// Replaces the editor content with redacted message 3 seconds after load.
|
||||
window.addEventListener('editor-tinymce::setup', event => {
|
||||
const editor = event.detail.editor;
|
||||
setTimeout(() => {
|
||||
editor.setContent('REDACTED!');
|
||||
}, 3000);
|
||||
});
|
||||
```
|
||||
|
||||
### `library-cm6::configure-theme`
|
||||
|
||||
This event is called whenever a CodeMirror instance is loaded, as a method to configure the theme used by CodeMirror. This applies to all CodeMirror instances including in-page code blocks, editors using in BookStack settings, and the Page markdown editor.
|
||||
|
||||
#### Event Data
|
||||
|
||||
- `darkModeActive` - A boolean to indicate if the current view/page is being loaded with dark mode active.
|
||||
- `registerViewTheme(builder)` - A method that can be called to register a new view (CodeMirror UI) theme.
|
||||
- `builder` - A function that will return an object that will be passed into the CodeMirror [EditorView.theme()](https://codemirror.net/docs/ref/#view.EditorView^theme) function as a StyleSpec.
|
||||
- `registerHighlightStyle(builder)` - A method that can be called to register a new HighlightStyle (code highlighting) theme.
|
||||
- `builder` - A function, that receives a reference to [Tag.tags](https://lezer.codemirror.net/docs/ref/#highlight.tags) and returns an array of [TagStyle](https://codemirror.net/docs/ref/#language.TagStyle) objects.
|
||||
|
||||
##### Example
|
||||
|
||||
The below shows registering a custom "Solarized dark" editor and syntax theme:
|
||||
|
||||
<details>
|
||||
<summary>Show Example</summary>
|
||||
|
||||
```javascript
|
||||
// Theme data taken from:
|
||||
// https://github.com/craftzdog/cm6-themes/blob/main/packages/solarized-dark/src/index.ts
|
||||
// (MIT License) - Copyright (C) 2022 by Takuya Matsuyama and others
|
||||
const base00 = '#002b36',
|
||||
base01 = '#073642',
|
||||
base02 = '#586e75',
|
||||
base03 = '#657b83',
|
||||
base04 = '#839496',
|
||||
base05 = '#93a1a1',
|
||||
base06 = '#eee8d5',
|
||||
base07 = '#fdf6e3',
|
||||
base_red = '#dc322f',
|
||||
base_orange = '#cb4b16',
|
||||
base_yellow = '#b58900',
|
||||
base_green = '#859900',
|
||||
base_cyan = '#2aa198',
|
||||
base_blue = '#268bd2',
|
||||
base_violet = '#6c71c4',
|
||||
base_magenta = '#d33682'
|
||||
|
||||
const invalid = '#d30102',
|
||||
stone = base04,
|
||||
darkBackground = '#00252f',
|
||||
highlightBackground = '#173541',
|
||||
background = base00,
|
||||
tooltipBackground = base01,
|
||||
selection = '#173541',
|
||||
cursor = base04
|
||||
|
||||
function viewThemeBuilder() {
|
||||
return {
|
||||
'&':{color:base05,backgroundColor:background},
|
||||
'.cm-content':{caretColor:cursor},
|
||||
'.cm-cursor, .cm-dropCursor':{borderLeftColor:cursor},
|
||||
'&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection':{backgroundColor:selection},
|
||||
'.cm-panels':{backgroundColor:darkBackground,color:base03},
|
||||
'.cm-panels.cm-panels-top':{borderBottom:'2px solid black'},
|
||||
'.cm-panels.cm-panels-bottom':{borderTop:'2px solid black'},
|
||||
'.cm-searchMatch':{backgroundColor:'#72a1ff59',outline:'1px solid #457dff'},
|
||||
'.cm-searchMatch.cm-searchMatch-selected':{backgroundColor:'#6199ff2f'},
|
||||
'.cm-activeLine':{backgroundColor:highlightBackground},
|
||||
'.cm-selectionMatch':{backgroundColor:'#aafe661a'},
|
||||
'&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket':{outline:`1px solid ${base06}`},
|
||||
'.cm-gutters':{backgroundColor:darkBackground,color:stone,border:'none'},
|
||||
'.cm-activeLineGutter':{backgroundColor:highlightBackground},
|
||||
'.cm-foldPlaceholder':{backgroundColor:'transparent',border:'none',color:'#ddd'},
|
||||
'.cm-tooltip':{border:'none',backgroundColor:tooltipBackground},
|
||||
'.cm-tooltip .cm-tooltip-arrow:before':{borderTopColor:'transparent',borderBottomColor:'transparent'},
|
||||
'.cm-tooltip .cm-tooltip-arrow:after':{borderTopColor:tooltipBackground,borderBottomColor:tooltipBackground},
|
||||
'.cm-tooltip-autocomplete':{
|
||||
'& > ul > li[aria-selected]':{backgroundColor:highlightBackground,color:base03}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function highlightStyleBuilder(t) {
|
||||
return [{tag:t.keyword,color:base_green},
|
||||
{tag:[t.name,t.deleted,t.character,t.propertyName,t.macroName],color:base_cyan},
|
||||
{tag:[t.variableName],color:base05},
|
||||
{tag:[t.function(t.variableName)],color:base_blue},
|
||||
{tag:[t.labelName],color:base_magenta},
|
||||
{tag:[t.color,t.constant(t.name),t.standard(t.name)],color:base_yellow},
|
||||
{tag:[t.definition(t.name),t.separator],color:base_cyan},
|
||||
{tag:[t.brace],color:base_magenta},
|
||||
{tag:[t.annotation],color:invalid},
|
||||
{tag:[t.number,t.changed,t.annotation,t.modifier,t.self,t.namespace],color:base_magenta},
|
||||
{tag:[t.typeName,t.className],color:base_orange},
|
||||
{tag:[t.operator,t.operatorKeyword],color:base_violet},
|
||||
{tag:[t.tagName],color:base_blue},
|
||||
{tag:[t.squareBracket],color:base_red},
|
||||
{tag:[t.angleBracket],color:base02},
|
||||
{tag:[t.attributeName],color:base05},
|
||||
{tag:[t.regexp],color:invalid},
|
||||
{tag:[t.quote],color:base_green},
|
||||
{tag:[t.string],color:base_yellow},
|
||||
{tag:t.link,color:base_cyan,textDecoration:'underline',textUnderlinePosition:'under'},
|
||||
{tag:[t.url,t.escape,t.special(t.string)],color:base_yellow},
|
||||
{tag:[t.meta],color:base_red},
|
||||
{tag:[t.comment],color:base02,fontStyle:'italic'},
|
||||
{tag:t.strong,fontWeight:'bold',color:base06},
|
||||
{tag:t.emphasis,fontStyle:'italic',color:base_green},
|
||||
{tag:t.strikethrough,textDecoration:'line-through'},
|
||||
{tag:t.heading,fontWeight:'bold',color:base_yellow},
|
||||
{tag:t.heading1,fontWeight:'bold',color:base07},
|
||||
{tag:[t.heading2,t.heading3,t.heading4],fontWeight:'bold',color:base06},
|
||||
{tag:[t.heading5,t.heading6],color:base06},
|
||||
{tag:[t.atom,t.bool,t.special(t.variableName)],color:base_magenta},
|
||||
{tag:[t.processingInstruction,t.inserted,t.contentSeparator],color:base_red},
|
||||
{tag:[t.contentSeparator],color:base_yellow},
|
||||
{tag:t.invalid,color:base02,borderBottom:`1px dotted ${base_red}`}];
|
||||
}
|
||||
|
||||
window.addEventListener('library-cm6::configure-theme', event => {
|
||||
const detail = event.detail;
|
||||
detail.registerViewTheme(viewThemeBuilder);
|
||||
detail.registerHighlightStyle(highlightStyleBuilder);
|
||||
});
|
||||
```
|
||||
</details>
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'تحديد صورة',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'الكل',
|
||||
'image_all_title' => 'عرض جميع الصور',
|
||||
'image_book_title' => 'عرض الصور المرفوعة لهذا الكتاب',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'هل أنت متأكد من أنك تريد حذف هذه الصورة؟',
|
||||
'image_select_image' => 'تحديد الصورة',
|
||||
'image_dropzone' => 'قم بإسقاط الصورة أو اضغط هنا للرفع',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'تم حذف الصور',
|
||||
'image_preview' => 'معاينة الصور',
|
||||
'image_upload_success' => 'تم رفع الصورة بنجاح',
|
||||
'image_update_success' => 'تم تحديث تفاصيل الصورة بنجاح',
|
||||
'image_delete_success' => 'تم حذف الصورة بنجاح',
|
||||
'image_upload_remove' => 'إزالة',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'تعديل الشفرة',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'المرفقات',
|
||||
'attachments_explain' => 'ارفع بعض الملفات أو أرفق بعض الروابط لعرضها بصفحتك. ستكون الملفات والروابط معروضة في الشريط الجانبي للصفحة.',
|
||||
'attachments_explain_instant_save' => 'سيتم حفظ التغييرات هنا آنيا.',
|
||||
'attachments_items' => 'العناصر المرفقة',
|
||||
'attachments_upload' => 'رفع ملف',
|
||||
'attachments_link' => 'إرفاق رابط',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'تحديد الرابط',
|
||||
'attachments_delete' => 'هل أنت متأكد من أنك تريد حذف هذا المرفق؟',
|
||||
'attachments_dropzone' => 'أسقط الملفات أو اضغط هنا لإرفاق ملف',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'لم تُرفع أي ملفات',
|
||||
'attachments_explain_link' => 'بالإمكان إرفاق رابط في حال عدم تفضيل رفع ملف. قد يكون الرابط لصفحة أخرى أو لملف في أحد خدمات التخزين السحابي.',
|
||||
'attachments_link_name' => 'اسم الرابط',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'لا يمكن للخادم إنشاء صور مصغرة. الرجاء التأكد من تثبيت إضافة GD PHP.',
|
||||
'server_upload_limit' => 'الخادم لا يسمح برفع ملفات بهذا الحجم. الرجاء محاولة الرفع بحجم أصغر.',
|
||||
'uploaded' => 'الخادم لا يسمح برفع ملفات بهذا الحجم. الرجاء محاولة الرفع بحجم أصغر.',
|
||||
'file_upload_timeout' => 'انتهت عملية تحميل الملف.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'حدث خطأ خلال رفع الصورة',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'لم يتم العثور على المرفق',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'فشل حفظ المسودة. الرجاء التأكد من وجود اتصال بالإنترنت قبل حفظ الصفحة',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Избор на изображение',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'Всички',
|
||||
'image_all_title' => 'Преглед на всички изображения',
|
||||
'image_book_title' => 'Виж изображенията прикачени към тази книга',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Сигурни ли сте, че искате да изтриете това изображение?',
|
||||
'image_select_image' => 'Изберете изображение',
|
||||
'image_dropzone' => 'Поставете тук изображение или кликнете тук за да качите',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'Изображението е изтрито',
|
||||
'image_preview' => 'Преглед на изображенията',
|
||||
'image_upload_success' => 'Изображението бе качено успешно',
|
||||
'image_update_success' => 'Данните за изобтажението са обновенни успешно',
|
||||
'image_delete_success' => 'Изображението е успешно изтрито',
|
||||
'image_upload_remove' => 'Премахване',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Редактиране на кода',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Прикачени файлове',
|
||||
'attachments_explain' => 'Прикачете файлове или линкове, които да са видими на вашата страница. Същите ще бъдат видими във вашето странично поле.',
|
||||
'attachments_explain_instant_save' => 'Промените тук се запазват веднага.',
|
||||
'attachments_items' => 'Прикачен файл',
|
||||
'attachments_upload' => 'Прикачен файл',
|
||||
'attachments_link' => 'Прикачване на линк',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'Поставяне на линк',
|
||||
'attachments_delete' => 'Сигурни ли сте, че искате да изтриете прикачения файл?',
|
||||
'attachments_dropzone' => 'Поставете файлове или цъкнете тук за да прикачите файл',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'Няма прикачени фалове',
|
||||
'attachments_explain_link' => 'Може да прикачите линк, ако не искате да качвате файл. Този линк може да бъде към друга страница или към файл в облакова пространство.',
|
||||
'attachments_link_name' => 'Има на линка',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'Сървърът не може да създаде малки изображения. Моля, увери се, че разширението GD PHP е инсталирано.',
|
||||
'server_upload_limit' => 'Сървърът не позволява качвания с такъв размер. Моля, пробвайте файл с по-малък размер.',
|
||||
'uploaded' => 'Сървърът не позволява качвания с такъв размер. Моля, пробвайте файл с по-малък размер.',
|
||||
'file_upload_timeout' => 'Качването на файла изтече.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Възникна грешка при качването на изображението',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Прикачения файл не е намерен',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Неуспешно запазване на черновата. Увери се, че имаш свързаност с интернет преди да запазиш страницата',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Biraj sliku',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'Sve',
|
||||
'image_all_title' => 'Pogledaj sve slike',
|
||||
'image_book_title' => 'Pogledaj slike prenesene u ovu knjigu',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Jeste li sigurni da želite obrisati ovu sliku?',
|
||||
'image_select_image' => 'Odaberi sliku',
|
||||
'image_dropzone' => 'Ostavi slike ili pritisnite ovdje da ih prenesete',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'Slike su izbrisane',
|
||||
'image_preview' => 'Pregled Slike',
|
||||
'image_upload_success' => 'Slika uspješno učitana',
|
||||
'image_update_success' => 'Detalji slike uspješno ažurirani',
|
||||
'image_delete_success' => 'Slika uspješno izbrisana',
|
||||
'image_upload_remove' => 'Ukloni',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Uredi Kod',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Prilozi',
|
||||
'attachments_explain' => 'Učitajte fajlove ili priložite poveznice da bi ih prikazali na stranici. Oni su onda vidljivi u navigaciji sa strane.',
|
||||
'attachments_explain_instant_save' => 'Sve promjene se snimaju odmah.',
|
||||
'attachments_items' => 'Priložene stavke',
|
||||
'attachments_upload' => 'Učitaj fajl',
|
||||
'attachments_link' => 'Zakači link',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'Postavi link',
|
||||
'attachments_delete' => 'Jeste li sigurni da želite obrisati ovaj prilog?',
|
||||
'attachments_dropzone' => 'Spustite fajlove ili pritisnite ovdje da priložite fajl',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'Niti jedan fajl nije prenesen',
|
||||
'attachments_explain_link' => 'Možete zakačiti link ako ne želite učitati fajl. To može biti link druge stranice ili link za fajl u oblaku.',
|
||||
'attachments_link_name' => 'Naziv linka',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'Server ne može kreirati sličice. Provjerite da imate instaliranu GD PHP ekstenziju.',
|
||||
'server_upload_limit' => 'Server ne dopušta učitavanja ove veličine. Pokušajte sa manjom veličinom fajla.',
|
||||
'uploaded' => 'Server ne dopušta učitavanja ove veličine. Pokušajte sa manjom veličinom fajla.',
|
||||
'file_upload_timeout' => 'Vrijeme učitavanja fajla je isteklo.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Desila se greška prilikom učitavanja slike',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Prilog nije pronađen',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Snimanje skice nije uspjelo. Provjerite da ste povezani na internet prije snimanja ove stranice',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Selecciona una imatge',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'Totes',
|
||||
'image_all_title' => 'Mostra totes les imatges',
|
||||
'image_book_title' => 'Mostra les imatges pujades a aquest llibre',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Segur que voleu suprimir aquesta imatge?',
|
||||
'image_select_image' => 'Selecciona una imatge',
|
||||
'image_dropzone' => 'Arrossegueu imatges o feu clic aquí per a pujar-les',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'Imatges suprimides',
|
||||
'image_preview' => 'Previsualització de la imatge',
|
||||
'image_upload_success' => 'Imatge pujada correctament',
|
||||
'image_update_success' => 'Detalls de la imatge actualitzats correctament',
|
||||
'image_delete_success' => 'Imatge suprimida correctament',
|
||||
'image_upload_remove' => 'Suprimeix',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Edita el codi',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Adjuncions',
|
||||
'attachments_explain' => 'Pugeu fitxers o adjunteu enllaços per a mostrar-los a la pàgina. Són visibles a la barra lateral de la pàgina.',
|
||||
'attachments_explain_instant_save' => 'Els canvis fets aquí es desen instantàniament.',
|
||||
'attachments_items' => 'Elements adjunts',
|
||||
'attachments_upload' => 'Puja un fitxer',
|
||||
'attachments_link' => 'Adjunta un enllaç',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'Defineix l\'enllaç',
|
||||
'attachments_delete' => 'Seguir que voleu suprimir aquesta adjunció?',
|
||||
'attachments_dropzone' => 'Arrossegueu fitxers o feu clic aquí per a adjuntar un fitxer',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'No s\'ha pujat cap fitxer',
|
||||
'attachments_explain_link' => 'Podeu adjuntar un enllaç si preferiu no pujar un fitxer. Pot ser un enllaç a una altra pàgina o un enllaç a un fitxer al núvol.',
|
||||
'attachments_link_name' => 'Nom de l\'enllaç',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'El servidor no pot crear miniatures. Reviseu que tingueu instal·lada l\'extensió GD del PHP.',
|
||||
'server_upload_limit' => 'El servidor no permet pujades d\'aquesta mida. Proveu-ho amb una mida de fitxer més petita.',
|
||||
'uploaded' => 'El servidor no permet pujades d\'aquesta mida. Proveu-ho amb una mida de fitxer més petita.',
|
||||
'file_upload_timeout' => 'La pujada del fitxer ha superat el temps màxim d\'espera.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'S\'ha produït un error en pujar la imatge',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'No s\'ha trobat l\'adjunció',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'No s\'ha pogut desar l\'esborrany. Assegureu-vos que tingueu connexió a Internet abans de desar la pàgina',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Výběr obrázku',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'Vše',
|
||||
'image_all_title' => 'Zobrazit všechny obrázky',
|
||||
'image_book_title' => 'Zobrazit obrázky nahrané do této knihy',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Opravdu chcete odstranit tento obrázek?',
|
||||
'image_select_image' => 'Zvolte obrázek',
|
||||
'image_dropzone' => 'Přetáhněte obrázky nebo klikněte sem pro nahrání',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'Obrázky odstraněny',
|
||||
'image_preview' => 'Náhled obrázku',
|
||||
'image_upload_success' => 'Obrázek byl nahrán',
|
||||
'image_update_success' => 'Podrobnosti o obrázku byly aktualizovány',
|
||||
'image_delete_success' => 'Obrázek byl odstraněn',
|
||||
'image_upload_remove' => 'Odebrat',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Upravit kód',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Přílohy',
|
||||
'attachments_explain' => 'Nahrajte soubory nebo připojte odkazy, které se zobrazí na stránce. Budou k nalezení v postranní liště.',
|
||||
'attachments_explain_instant_save' => 'Změny zde provedené se okamžitě ukládají.',
|
||||
'attachments_items' => 'Připojené položky',
|
||||
'attachments_upload' => 'Nahrát soubor',
|
||||
'attachments_link' => 'Připojit odkaz',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'Nastavit odkaz',
|
||||
'attachments_delete' => 'Jste si jisti, že chcete odstranit tuto přílohu?',
|
||||
'attachments_dropzone' => 'Přetáhněte sem soubory myší nebo sem klikněte pro vybrání souboru',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'Žádné soubory nebyly nahrány',
|
||||
'attachments_explain_link' => 'Můžete pouze připojit odkaz pokud nechcete nahrávat soubor přímo. Může to být odkaz na jinou stránku nebo na soubor v cloudu.',
|
||||
'attachments_link_name' => 'Název odkazu',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'Server nedokáže udělat náhledy. Zkontrolujte, že rozšíření GD pro PHP je nainstalováno.',
|
||||
'server_upload_limit' => 'Server nepovoluje nahrávat tak veliké soubory. Zkuste prosím menší soubor.',
|
||||
'uploaded' => 'Server nepovoluje nahrávat tak veliké soubory. Zkuste prosím menší soubor.',
|
||||
'file_upload_timeout' => 'Nahrávání souboru trvalo příliš dlouho a tak bylo ukončeno.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Nastala chyba během nahrávání souboru',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Příloha nenalezena',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Nepovedlo se uložit koncept. Než stránku uložíte, ujistěte se, že jste připojeni k internetu.',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Image Select',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'All',
|
||||
'image_all_title' => 'View all images',
|
||||
'image_book_title' => 'View images uploaded to this book',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Are you sure you want to delete this image?',
|
||||
'image_select_image' => 'Select Image',
|
||||
'image_dropzone' => 'Drop images or click here to upload',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'Images Deleted',
|
||||
'image_preview' => 'Image Preview',
|
||||
'image_upload_success' => 'Image uploaded successfully',
|
||||
'image_update_success' => 'Image details successfully updated',
|
||||
'image_delete_success' => 'Image successfully deleted',
|
||||
'image_upload_remove' => 'Remove',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Edit Code',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Attachments',
|
||||
'attachments_explain' => 'Upload some files or attach some links to display on your page. These are visible in the page sidebar.',
|
||||
'attachments_explain_instant_save' => 'Changes here are saved instantly.',
|
||||
'attachments_items' => 'Attached Items',
|
||||
'attachments_upload' => 'Upload File',
|
||||
'attachments_link' => 'Attach Link',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'Set Link',
|
||||
'attachments_delete' => 'Are you sure you want to delete this attachment?',
|
||||
'attachments_dropzone' => 'Drop files or click here to attach a file',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'No files have been uploaded',
|
||||
'attachments_explain_link' => 'You can attach a link if you\'d prefer not to upload a file. This can be a link to another page or a link to a file in the cloud.',
|
||||
'attachments_link_name' => 'Link Name',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'Ni all y gweinydd greu mân-luniau. Gwiriwch fod gennych yr estyniad GD PHP wedi\'i osod.',
|
||||
'server_upload_limit' => 'Nid yw\'r gweinydd yn caniatáu uwchlwythiadau o\'r maint hwn. Rhowch gynnig ar faint ffeil llai.',
|
||||
'uploaded' => 'Nid yw\'r gweinydd yn caniatáu uwchlwythiadau o\'r maint hwn. Rhowch gynnig ar faint ffeil llai.',
|
||||
'file_upload_timeout' => 'Mae\'r amser uwchlwytho ffeil wedi dod i ben.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Bu gwall wrth uwchlwytho\'r ddelwedd',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Ni chanfuwyd yr atodiad',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Wedi methu cadw\'r drafft. Sicrhewch fod gennych gysylltiad rhyngrwyd cyn cadw\'r dudalen hon',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Billedselektion',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'Alt',
|
||||
'image_all_title' => 'Se alle billeder',
|
||||
'image_book_title' => 'Vis billeder uploadet til denne bog',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Er du sikker på at du vil slette dette billede?',
|
||||
'image_select_image' => 'Vælg billede',
|
||||
'image_dropzone' => 'Træk-og-slip billede eller klik her for at uploade',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'Billede slettet',
|
||||
'image_preview' => 'Billedeksempel',
|
||||
'image_upload_success' => 'Foto uploadet',
|
||||
'image_update_success' => 'Billeddetaljer succesfuldt opdateret',
|
||||
'image_delete_success' => 'Billede slettet',
|
||||
'image_upload_remove' => 'Fjern',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Rediger kode',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Vedhæftninger',
|
||||
'attachments_explain' => 'Upload nogle filer, eller vedhæft nogle links, der skal vises på siden. Disse er synlige i sidepanelet.',
|
||||
'attachments_explain_instant_save' => 'Ændringer her gemmes med det samme.',
|
||||
'attachments_items' => 'Vedhæftede emner',
|
||||
'attachments_upload' => 'Upload fil',
|
||||
'attachments_link' => 'Vedhæft link',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'Sæt link',
|
||||
'attachments_delete' => 'Er du sikker på at du vil slette denne vedhæftning?',
|
||||
'attachments_dropzone' => 'Slip filer eller klik her for at vedhæfte en fil',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'Ingen filer er blevet overført',
|
||||
'attachments_explain_link' => 'Du kan vedhæfte et link, hvis du foretrækker ikke at uploade en fil. Dette kan være et link til en anden side eller et link til en fil i skyen.',
|
||||
'attachments_link_name' => 'Linknavn',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'Serveren kan ikke oprette miniaturer. Kontroller, at GD PHP-udvidelsen er installeret.',
|
||||
'server_upload_limit' => 'Serveren tillader ikke uploads af denne størrelse. Prøv en mindre filstørrelse.',
|
||||
'uploaded' => 'Serveren tillader ikke uploads af denne størrelse. Prøv en mindre filstørrelse.',
|
||||
'file_upload_timeout' => 'Filuploaden udløb.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Der opstod en fejl ved upload af billedet',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Vedhæftning ikke fundet',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Kunne ikke gemme kladde. Tjek at du har internetforbindelse før du gemmer siden',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Bild auswählen',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'Alle',
|
||||
'image_all_title' => 'Alle Bilder anzeigen',
|
||||
'image_book_title' => 'Zeige alle Bilder, die in dieses Buch hochgeladen wurden',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Möchten Sie dieses Bild wirklich löschen?',
|
||||
'image_select_image' => 'Bild auswählen',
|
||||
'image_dropzone' => 'Ziehen Sie Bilder hierher oder klicken Sie hier, um ein Bild auszuwählen',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'Bilder gelöscht',
|
||||
'image_preview' => 'Bildvorschau',
|
||||
'image_upload_success' => 'Bild erfolgreich hochgeladen',
|
||||
'image_update_success' => 'Bilddetails erfolgreich aktualisiert',
|
||||
'image_delete_success' => 'Bild erfolgreich gelöscht',
|
||||
'image_upload_remove' => 'Entfernen',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Code editieren',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Anhänge',
|
||||
'attachments_explain' => 'Sie können auf Ihrer Seite Dateien hochladen oder Links hinzufügen. Diese werden in der Seitenleiste angezeigt.',
|
||||
'attachments_explain_instant_save' => 'Änderungen werden direkt gespeichert.',
|
||||
'attachments_items' => 'Angefügte Elemente',
|
||||
'attachments_upload' => 'Datei hochladen',
|
||||
'attachments_link' => 'Link hinzufügen',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'Link setzen',
|
||||
'attachments_delete' => 'Sind Sie sicher, dass Sie diesen Anhang löschen möchten?',
|
||||
'attachments_dropzone' => 'Ziehen Sie Dateien hierher oder klicken Sie, um eine Datei auszuwählen',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'Es wurden bisher keine Dateien hochgeladen.',
|
||||
'attachments_explain_link' => 'Wenn Sie keine Datei hochladen möchten, können Sie stattdessen einen Link hinzufügen. Dieser Link kann auf eine andere Seite oder eine Datei im Internet weisen.',
|
||||
'attachments_link_name' => 'Link-Name',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'Der Server kann keine Vorschau-Bilder erzeugen. Bitte prüfen Sie, ob die GD PHP-Erweiterung installiert ist.',
|
||||
'server_upload_limit' => 'Der Server verbietet das Hochladen von Dateien mit dieser Dateigröße. Bitte versuchen Sie es mit einer kleineren Datei.',
|
||||
'uploaded' => 'Der Server verbietet das Hochladen von Dateien mit dieser Dateigröße. Bitte versuchen Sie es mit einer kleineren Datei.',
|
||||
'file_upload_timeout' => 'Der Datei-Upload hat das Zeitlimit überschritten.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Beim Hochladen des Bildes trat ein Fehler auf.',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Anhang konnte nicht gefunden werden.',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Fehler beim Speichern des Entwurfs. Stellen Sie sicher, dass Sie mit dem Internet verbunden sind, bevor Sie den Entwurf dieser Seite speichern.',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Bild auswählen',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'Alle',
|
||||
'image_all_title' => 'Alle Bilder anzeigen',
|
||||
'image_book_title' => 'Zeige alle Bilder, die in dieses Buch hochgeladen wurden',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Bist Du sicher, dass Du diese Seite löschen möchtest?',
|
||||
'image_select_image' => 'Bild auswählen',
|
||||
'image_dropzone' => 'Ziehe Bilder hierher oder klicke hier, um ein Bild auszuwählen',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'Bilder gelöscht',
|
||||
'image_preview' => 'Bildvorschau',
|
||||
'image_upload_success' => 'Bild erfolgreich hochgeladen',
|
||||
'image_update_success' => 'Bilddetails erfolgreich aktualisiert',
|
||||
'image_delete_success' => 'Bild erfolgreich gelöscht',
|
||||
'image_upload_remove' => 'Entfernen',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Code editieren',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Anhänge',
|
||||
'attachments_explain' => 'Du kannst auf deiner Seite Dateien hochladen oder Links hinzufügen. Diese werden in der Seitenleiste angezeigt.',
|
||||
'attachments_explain_instant_save' => 'Änderungen werden direkt gespeichert.',
|
||||
'attachments_items' => 'Angefügte Elemente',
|
||||
'attachments_upload' => 'Datei hochladen',
|
||||
'attachments_link' => 'Link hinzufügen',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'Link setzen',
|
||||
'attachments_delete' => 'Bist du sicher, dass du diesen Anhang löschen möchtest?',
|
||||
'attachments_dropzone' => 'Ziehe Dateien hierher oder klicke hier, um eine Datei auszuwählen',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'Es wurden bisher keine Dateien hochgeladen.',
|
||||
'attachments_explain_link' => 'Wenn du keine Datei hochladen möchtest, kannst du stattdessen einen Link hinzufügen. Dieser Link kann auf eine andere Seite oder eine Datei im Internet verweisen.',
|
||||
'attachments_link_name' => 'Link-Name',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'Der Server kann keine Vorschau-Bilder erzeugen. Bitte prüfe, ob die GD PHP-Erweiterung installiert ist.',
|
||||
'server_upload_limit' => 'Der Server verbietet das Hochladen von Dateien mit dieser Dateigröße. Bitte versuche es mit einer kleineren Datei.',
|
||||
'uploaded' => 'Der Server verbietet das Hochladen von Dateien mit dieser Dateigröße. Bitte versuche es mit einer kleineren Datei.',
|
||||
'file_upload_timeout' => 'Der Upload der Datei ist abgelaufen.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Beim Hochladen des Bildes trat ein Fehler auf.',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Anhang konnte nicht gefunden werden.',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Fehler beim Speichern des Entwurfs. Stelle sicher, dass du mit dem Internet verbunden bist, bevor du den Entwurf dieser Seite speicherst.',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Επιλογή εικόνας',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'Όλες',
|
||||
'image_all_title' => 'Δείτε όλες τις εικόνες που υπάρχουν στο Server',
|
||||
'image_book_title' => 'Προβολή εικόνων που έχουν μεταφορτωθεί σε αυτό το βιβλίο',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την εικόνα;',
|
||||
'image_select_image' => 'Επιλέξτε Εικόνα',
|
||||
'image_dropzone' => 'Σύρτε ή κάντε κλικ εδώ για μεταφόρτωση εικόνων',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'Οι εικόνες διαγράφηκαν',
|
||||
'image_preview' => 'Προεπισκόπηση εικόνας',
|
||||
'image_upload_success' => 'Η εικόνα μεταφορτώθηκε με επιτυχία',
|
||||
'image_update_success' => 'Τα στοιχεία της εικόνας ενημερώθηκαν με επιτυχία',
|
||||
'image_delete_success' => 'Η εικόνα διαγράφηκε επιτυχώς',
|
||||
'image_upload_remove' => 'Αφαίρεση',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Επεξεργασία κώδικα',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Συνημμένα',
|
||||
'attachments_explain' => 'Ανεβάστε μερικά αρχεία ή επισυνάψτε μερικούς συνδέσμους για να εμφανίσετε στη σελίδα σας. Αυτά είναι ορατά στην πλαϊνή μπάρα σελίδας.',
|
||||
'attachments_explain_instant_save' => 'Οι αλλαγές εδώ αποθηκεύονται αμέσως.',
|
||||
'attachments_items' => 'Συνημμένα Στοιχεία',
|
||||
'attachments_upload' => 'Μεταφόρτωση Αρχείου',
|
||||
'attachments_link' => 'Επισύναψη Δεσμού',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'Ορισμός Συνδέσμου',
|
||||
'attachments_delete' => 'Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το συνημμένο;',
|
||||
'attachments_dropzone' => 'Αποθέστε αρχεία ή κάντε κλικ εδώ για να επισυνάψετε ένα αρχείο',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'Δεν έχουν μεταφορτωθεί αρχεία',
|
||||
'attachments_explain_link' => 'Μπορείτε να επισυνάψετε έναν σύνδεσμο αν προτιμάτε να μην ανεβάσετε ένα αρχείο. Αυτό μπορεί να είναι ένας σύνδεσμος σε άλλη σελίδα ή ένας σύνδεσμος σε ένα αρχείο στο σύννεφο.',
|
||||
'attachments_link_name' => 'Όνομα Συνδέσμου',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'Ο διακομιστής δεν μπορεί να δημιουργήσει μικρογραφίες. Παρακαλώ ελέγξτε ότι έχετε την επέκταση GD PHP εγκατεστημένη.',
|
||||
'server_upload_limit' => 'Ο διακομιστής δεν επιτρέπει τη μεταφόρτωση αυτού του μεγέθους. Παρακαλώ δοκιμάστε ένα μικρότερο μέγεθος αρχείου.',
|
||||
'uploaded' => 'Ο διακομιστής δεν επιτρέπει τη μεταφόρτωση αυτού του μεγέθους. Παρακαλώ δοκιμάστε ένα μικρότερο μέγεθος αρχείου.',
|
||||
'file_upload_timeout' => 'Το χρονικό όριο μεταφόρτωσης αρχείου έληξε.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Παρουσιάστηκε σφάλμα κατά το ανέβασμα της εικόνας.',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Το συνημμένο δεν βρέθηκε',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Αποτυχία αποθήκευσης προσχέδιου. Βεβαιωθείτε ότι έχετε σύνδεση στο διαδίκτυο πριν την αποθήκευση αυτής της σελίδας',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Image Select',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'All',
|
||||
'image_all_title' => 'View all images',
|
||||
'image_book_title' => 'View images uploaded to this book',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Are you sure you want to delete this image?',
|
||||
'image_select_image' => 'Select Image',
|
||||
'image_dropzone' => 'Drop images or click here to upload',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'Images Deleted',
|
||||
'image_preview' => 'Image Preview',
|
||||
'image_upload_success' => 'Image uploaded successfully',
|
||||
'image_update_success' => 'Image details successfully updated',
|
||||
'image_delete_success' => 'Image successfully deleted',
|
||||
'image_upload_remove' => 'Remove',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Edit Code',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Attachments',
|
||||
'attachments_explain' => 'Upload some files or attach some links to display on your page. These are visible in the page sidebar.',
|
||||
'attachments_explain_instant_save' => 'Changes here are saved instantly.',
|
||||
'attachments_items' => 'Attached Items',
|
||||
'attachments_upload' => 'Upload File',
|
||||
'attachments_link' => 'Attach Link',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'Set Link',
|
||||
'attachments_delete' => 'Are you sure you want to delete this attachment?',
|
||||
'attachments_dropzone' => 'Drop files or click here to attach a file',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'No files have been uploaded',
|
||||
'attachments_explain_link' => 'You can attach a link if you\'d prefer not to upload a file. This can be a link to another page or a link to a file in the cloud.',
|
||||
'attachments_link_name' => 'Link Name',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'The server cannot create thumbnails. Please check you have the GD PHP extension installed.',
|
||||
'server_upload_limit' => 'The server does not allow uploads of this size. Please try a smaller file size.',
|
||||
'uploaded' => 'The server does not allow uploads of this size. Please try a smaller file size.',
|
||||
'file_upload_timeout' => 'The file upload has timed out.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'An error occurred uploading the image',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Attachment not found',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Failed to save draft. Ensure you have internet connection before saving this page',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Seleccionar Imagen',
|
||||
'image_upload' => 'Subir imagen',
|
||||
'image_intro' => 'Aquí puede seleccionar y administrar las imágenes que se han subido previamente al sistema.',
|
||||
'image_intro_upload' => 'Suba una nueva imagen arrastrando un archivo de imagen en esta ventana, o usando el botón "Subir imagen" de arriba.',
|
||||
'image_all' => 'Todas',
|
||||
'image_all_title' => 'Ver todas las imágenes',
|
||||
'image_book_title' => 'Ver las imágenes subidas a este libro',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => '¿Estás seguro de que quieres eliminar esta imagen?',
|
||||
'image_select_image' => 'Seleccionar Imagen',
|
||||
'image_dropzone' => 'Arrastre las imágenes o hacer click aquí para Subir',
|
||||
'image_dropzone_drop' => 'Arrastre las imágenes aquí para subirlas',
|
||||
'images_deleted' => 'Imágenes borradas',
|
||||
'image_preview' => 'Previsualización de la imagen',
|
||||
'image_upload_success' => 'Imagen subida éxitosamente',
|
||||
'image_update_success' => 'Detalles de la imagen actualizados exitosamente',
|
||||
'image_delete_success' => 'Imagen borrada exitosamente',
|
||||
'image_upload_remove' => 'Borrar',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Editar Código',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Adjuntos',
|
||||
'attachments_explain' => 'Subir ficheros o agregar enlaces para mostrar en la página. Estos son visibles en la barra lateral de la página.',
|
||||
'attachments_explain_instant_save' => 'Los cambios son guardados de manera instantánea .',
|
||||
'attachments_items' => 'Elementos adjuntados',
|
||||
'attachments_upload' => 'Subir Archivo',
|
||||
'attachments_link' => 'Adjuntar Enlace',
|
||||
'attachments_upload_drop' => 'También puedes arrastrar y soltar un archivo aquí para subirlo como un archivo adjunto.',
|
||||
'attachments_set_link' => 'Ajustar Enlace',
|
||||
'attachments_delete' => '¿Está seguro de que quiere eliminar este archivo adjunto?',
|
||||
'attachments_dropzone' => 'Arrastre ficheros aquí o haga click aquí para adjuntar un fichero',
|
||||
'attachments_dropzone' => 'Arrastre aquí archivos para subirlos',
|
||||
'attachments_no_files' => 'No se han subido ficheros',
|
||||
'attachments_explain_link' => 'Puede agregar un enlace si prefiere no subir un archivo. Puede ser un enlace a otra página o un enlace a un fichero en la nube.',
|
||||
'attachments_link_name' => 'Nombre del Enlace',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'El servidor no puede crear la miniatura de la imagen. Compruebe que tiene la extensión PHP GD instalada.',
|
||||
'server_upload_limit' => 'El servidor no permite la subida de ficheros de este tamaño. Intente subir un fichero de menor tamaño.',
|
||||
'uploaded' => 'El servidor no permite la subida de ficheros de este tamaño. Intente subir un fichero de menor tamaño.',
|
||||
'file_upload_timeout' => 'La carga del archivo ha caducado.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Ha ocurrido un error al subir la imagen',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'No se encontró el adjunto',
|
||||
'attachment_upload_error' => 'Ha ocurrido un error al subir el archivo adjunto',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Fallo al guardar borrador. Asegúrese de que tiene conexión a Internet antes de guardar este borrador',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Seleccionar Imagen',
|
||||
'image_upload' => 'Subir imagen',
|
||||
'image_intro' => 'Aquí puede seleccionar y administrar las imágenes que se han subido previamente al sistema.',
|
||||
'image_intro_upload' => 'Suba una nueva imagen arrastrando un archivo de imagen en esta ventana, o usando el botón "Subir imagen" de arriba.',
|
||||
'image_all' => 'Todo',
|
||||
'image_all_title' => 'Ver todas las imágenes',
|
||||
'image_book_title' => 'Ver las imágenes subidas a este libro',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => '¿Está seguro que quiere eliminar esta imagen?',
|
||||
'image_select_image' => 'Seleccionar Imagen',
|
||||
'image_dropzone' => 'Arrastre las imágenes o hacer click aquí para Subir',
|
||||
'image_dropzone_drop' => 'Arrastre las imágenes aquí para subirlas',
|
||||
'images_deleted' => 'Imágenes borradas',
|
||||
'image_preview' => 'Preview de la imagen',
|
||||
'image_upload_success' => 'Imagen subida éxitosamente',
|
||||
'image_update_success' => 'Detalles de la imagen actualizados exitosamente',
|
||||
'image_delete_success' => 'Imagen borrada exitosamente',
|
||||
'image_upload_remove' => 'Quitar',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Editar Código',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Adjuntos',
|
||||
'attachments_explain' => 'Subir archivos o agregar enlaces para mostrar en la página. Estos son visibles en la barra lateral de la página.',
|
||||
'attachments_explain_instant_save' => 'Los cambios se guardan de manera instantánea.',
|
||||
'attachments_items' => 'Elementos adjuntados',
|
||||
'attachments_upload' => 'Archivo adjuntado',
|
||||
'attachments_link' => 'Adjuntar enlace',
|
||||
'attachments_upload_drop' => 'También puedes arrastrar y soltar un archivo aquí para subirlo como un archivo adjunto.',
|
||||
'attachments_set_link' => 'Establecer enlace',
|
||||
'attachments_delete' => '¿Está seguro que desea eliminar el archivo adjunto?',
|
||||
'attachments_dropzone' => 'Arrastre archivos aquí o presione aquí para adjuntar un archivo',
|
||||
'attachments_dropzone' => 'Arrastre aquí archivos para subirlos',
|
||||
'attachments_no_files' => 'No se adjuntó ningún archivo',
|
||||
'attachments_explain_link' => 'Usted puede agregar un enlace o si lo prefiere puede agregar un archivo. Esto puede ser un enlace a otra página o un enlace a un archivo en la nube.',
|
||||
'attachments_link_name' => 'Nombre del enlace',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'El servidor no puede crear la imagen miniatura. Por favor chequee que tiene la extensión GD instalada.',
|
||||
'server_upload_limit' => 'El servidor no permite la subida de ficheros de este tamañ. Por favor intente con un fichero de menor tamañ.',
|
||||
'uploaded' => 'El servidor no permite subir archivos de este tamaño. Por favor intente un tamaño menor.',
|
||||
'file_upload_timeout' => 'La carga del archivo ha caducado.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Ha ocurrido un error al subir la imagen',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'No se encuentra el objeto adjunto',
|
||||
'attachment_upload_error' => 'Ha ocurrido un error al subir el archivo adjunto',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Fallo al guardar borrador. Asegurese de que tiene conexión a Internet antes de guardar este borrador',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Pildifaili valik',
|
||||
'image_upload' => 'Laadi pilt üles',
|
||||
'image_intro' => 'Siin saad valida ja hallata pilte, mis on eelnevalt süsteemi üles laaditud.',
|
||||
'image_intro_upload' => 'Laadi uus pilt üles pildifaili sellesse aknasse lohistades või ülal "Laadi pilt üles" nupu abil.',
|
||||
'image_all' => 'Kõik',
|
||||
'image_all_title' => 'Vaata kõiki pildifaile',
|
||||
'image_book_title' => 'Vaata sellesse raamatusse laaditud pildifaile',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Kas oled kindel, et soovid selle pildifaili kustutada?',
|
||||
'image_select_image' => 'Vali pildifail',
|
||||
'image_dropzone' => 'Üleslaadimiseks lohista pildid või klõpsa siin',
|
||||
'image_dropzone_drop' => 'Üleslaadimiseks lohista pildid siia',
|
||||
'images_deleted' => 'Pildifailid kustutatud',
|
||||
'image_preview' => 'Pildi eelvaade',
|
||||
'image_upload_success' => 'Pildifail üles laaditud',
|
||||
'image_update_success' => 'Pildifaili andmed muudetud',
|
||||
'image_delete_success' => 'Pildifail kustutatud',
|
||||
'image_upload_remove' => 'Eemalda',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Muuda koodi',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Manused',
|
||||
'attachments_explain' => 'Laadi üles faile või lisa linke, mida lehel kuvada. Need on nähtavad külgmenüüs.',
|
||||
'attachments_explain_instant_save' => 'Muudatused salvestatakse koheselt.',
|
||||
'attachments_items' => 'Lisatud objektid',
|
||||
'attachments_upload' => 'Laadi fail üles',
|
||||
'attachments_link' => 'Lisa link',
|
||||
'attachments_upload_drop' => 'Saad ka faile siia lohistada, et neid manusena üles laadida.',
|
||||
'attachments_set_link' => 'Määra link',
|
||||
'attachments_delete' => 'Kas oled kindel, et soovid selle manuse kustutada?',
|
||||
'attachments_dropzone' => 'Manuse lisamiseks lohista failid või klõpsa siin',
|
||||
'attachments_dropzone' => 'Lohista failid üleslaadimiseks siia',
|
||||
'attachments_no_files' => 'Üleslaaditud faile ei ole',
|
||||
'attachments_explain_link' => 'Faili üleslaadimise asemel saad lingi lisada. See võib viidata teisele lehele või failile kuskil pilves.',
|
||||
'attachments_link_name' => 'Lingi nimi',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'Server ei saa piltide eelvaateid tekitada. Veendu, et PHP GD laiendus on paigaldatud.',
|
||||
'server_upload_limit' => 'Server ei luba nii suurte failide üleslaadimist. Proovi väiksema failiga.',
|
||||
'uploaded' => 'Server ei luba nii suurte failide üleslaadimist. Proovi väiksema failiga.',
|
||||
'file_upload_timeout' => 'Faili üleslaadimine aegus.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Pildi üleslaadimisel tekkis viga',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Manust ei leitud',
|
||||
'attachment_upload_error' => 'Manuse faili üleslaadimisel tekkis viga',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Mustandi salvestamine ebaõnnestus. Kontrolli oma internetiühendust',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Irudia aukeratu',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'Guztiak',
|
||||
'image_all_title' => 'Irudi guztiak ikusi',
|
||||
'image_book_title' => 'Liburu honetan igotako irudiak ikusi',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Ziur irudi hau ezabatu nahi duzula?',
|
||||
'image_select_image' => 'Irudia aukeratu',
|
||||
'image_dropzone' => 'Irudiak bota edo klikatu hemen igotzeko',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'Ezabatutako irudiak',
|
||||
'image_preview' => 'Irudiaren aurrebista',
|
||||
'image_upload_success' => 'Irudia zuzen eguneratu da',
|
||||
'image_update_success' => 'Irudiaren xehetasunak egioki eguneratu dira',
|
||||
'image_delete_success' => 'Irudia ondo ezabatu da',
|
||||
'image_upload_remove' => 'Ezabatu',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Kodea editatu',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Eranskinak',
|
||||
'attachments_explain' => 'Upload some files or attach some links to display on your page. These are visible in the page sidebar.',
|
||||
'attachments_explain_instant_save' => 'Changes here are saved instantly.',
|
||||
'attachments_items' => 'Atxikiak',
|
||||
'attachments_upload' => 'Kargatu artxiboak',
|
||||
'attachments_link' => 'Attach Link',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'Set Link',
|
||||
'attachments_delete' => 'Are you sure you want to delete this attachment?',
|
||||
'attachments_dropzone' => 'Drop files or click here to attach a file',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'Ez da igo fitxategirik',
|
||||
'attachments_explain_link' => 'You can attach a link if you\'d prefer not to upload a file. This can be a link to another page or a link to a file in the cloud.',
|
||||
'attachments_link_name' => 'Loturaren izena',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'The server cannot create thumbnails. Please check you have the GD PHP extension installed.',
|
||||
'server_upload_limit' => 'The server does not allow uploads of this size. Please try a smaller file size.',
|
||||
'uploaded' => 'The server does not allow uploads of this size. Please try a smaller file size.',
|
||||
'file_upload_timeout' => 'The file upload has timed out.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Errorea gertatu da irudia igotzerakoan',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Atxikia ez da aurkitu',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Failed to save draft. Ensure you have internet connection before saving this page',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'انتخاب تصویر',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'همه',
|
||||
'image_all_title' => 'نمایش تمام تصاویر',
|
||||
'image_book_title' => 'تصاویر بارگذاری شده در این کتاب را مشاهده کنید',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'آیا مطمئن هستید که میخواهید این عکس را پاک کنید؟',
|
||||
'image_select_image' => 'انتخاب تصویر',
|
||||
'image_dropzone' => 'تصاویر را رها کنید یا برای بارگذاری اینجا را کلیک کنید',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'تصاویر حذف شده',
|
||||
'image_preview' => 'پیش نمایش تصویر',
|
||||
'image_upload_success' => 'تصویر با موفقیت بارگذاری شد',
|
||||
'image_update_success' => 'جزئیات تصویر با موفقیت به روز شد',
|
||||
'image_delete_success' => 'تصویر با موفقیت حذف شد',
|
||||
'image_upload_remove' => 'حذف',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'ویرایش کد',
|
||||
|
@ -23,7 +23,7 @@ return [
|
||||
'meta_updated' => 'به روزرسانی شده :timeLength',
|
||||
'meta_updated_name' => 'به روزرسانی شده :timeLength توسط :user',
|
||||
'meta_owned_name' => 'متعلق به :user',
|
||||
'meta_reference_page_count' => 'Referenced on :count page|Referenced on :count pages',
|
||||
'meta_reference_page_count' => 'در 1 صفحه به آن ارجاع داده شده|در :count صفحه به آن ارجاع داده شده',
|
||||
'entity_select' => 'انتخاب موجودیت',
|
||||
'entity_select_lack_permission' => 'شما مجوزهای لازم برای انتخاب این مورد را ندارید',
|
||||
'images' => 'عکسها',
|
||||
@ -49,7 +49,7 @@ return [
|
||||
'permissions_owner' => 'مالک',
|
||||
'permissions_role_everyone_else' => 'سایر کاربران',
|
||||
'permissions_role_everyone_else_desc' => 'مجوزها را برای نقشهایی تنظیم کنید که به طور خاص لغو نشدهاند.',
|
||||
'permissions_role_override' => 'لغو مجوز برای نقش',
|
||||
'permissions_role_override' => 'تنظیم مجدد مجوز برای نقش',
|
||||
'permissions_inherit_defaults' => 'ارث بردن از مجوزهای پیشفرض',
|
||||
|
||||
// Search
|
||||
@ -236,8 +236,8 @@ return [
|
||||
'pages_md_insert_image' => 'درج تصویر',
|
||||
'pages_md_insert_link' => 'پیوند نهاد را درج کنید',
|
||||
'pages_md_insert_drawing' => 'درج طرح',
|
||||
'pages_md_show_preview' => 'Show preview',
|
||||
'pages_md_sync_scroll' => 'Sync preview scroll',
|
||||
'pages_md_show_preview' => 'دیدن پیش نمایش',
|
||||
'pages_md_sync_scroll' => 'هماهنگ سازی اسکرول پیش نمایش',
|
||||
'pages_not_in_chapter' => 'صفحه در یک فصل نیست',
|
||||
'pages_move' => 'انتقال صفحه',
|
||||
'pages_move_success' => 'صفحه به ":parentName" منتقل شد',
|
||||
@ -292,7 +292,7 @@ return [
|
||||
'shelf_tags' => 'برچسب های قفسه',
|
||||
'tag' => 'برچسب',
|
||||
'tags' => 'برچسب ها',
|
||||
'tags_index_desc' => 'Tags can be applied to content within the system to apply a flexible form of categorization. Tags can have both a key and value, with the value being optional. Once applied, content can then be queried using the tag name and value.',
|
||||
'tags_index_desc' => 'تگ ها را میتوان به محتوای داخل سیستم اعمال کرد تا فرم هماهنگی از طبقهبندی ایجاد شود. تگ ها می توانند شامل یک کلید و یک مقدار باشند، که مقدار آن انتخابی یا قابل خذف است. بعد از ایجاد تگ، محتوا را می توان توسط کلید یا مقدار هر تگ جستجو نمود.',
|
||||
'tag_name' => 'نام برچسب',
|
||||
'tag_value' => 'مقدار برچسب (اختیاری)',
|
||||
'tags_explain' => "برای دسته بندی بهتر مطالب خود چند برچسب اضافه کنید.\nمی توانید برای سازماندهی عمیقتر، یک مقدار به یک برچسب اختصاص دهید.",
|
||||
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'پیوست ها',
|
||||
'attachments_explain' => 'چند فایل را آپلود کنید یا چند پیوند را برای نمایش در صفحه خود ضمیمه کنید. اینها در نوار کناری صفحه قابل مشاهده هستند.',
|
||||
'attachments_explain_instant_save' => 'تغییرات در اینجا فورا ذخیره می شوند.',
|
||||
'attachments_items' => 'موارد پیوست شده',
|
||||
'attachments_upload' => 'آپلود فایل',
|
||||
'attachments_link' => 'پیوند را ضمیمه کنید',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'پیوند را تنظیم کنید',
|
||||
'attachments_delete' => 'آیا مطمئن هستید که می خواهید این پیوست را حذف کنید؟',
|
||||
'attachments_dropzone' => 'فایل ها را رها کنید یا برای پیوست کردن یک فایل اینجا را کلیک کنید',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'هیچ فایلی آپلود نشده است',
|
||||
'attachments_explain_link' => 'اگر ترجیح می دهید فایلی را آپلود نکنید، می توانید پیوندی را پیوست کنید. این می تواند پیوندی به صفحه دیگر یا پیوندی به فایلی در فضای ابری باشد.',
|
||||
'attachments_link_name' => 'نام پیوند',
|
||||
@ -395,6 +395,6 @@ return [
|
||||
|
||||
// References
|
||||
'references' => 'مراجع',
|
||||
'references_none' => 'There are no tracked references to this item.',
|
||||
'references_none' => 'هیچ رفرنسی برای این قلم یافت نشد.',
|
||||
'references_to_desc' => 'در زیر تمام صفحات شناخته شده در سیستم که به این مورد پیوند دارند، نشان داده شده است.',
|
||||
];
|
||||
|
@ -45,15 +45,15 @@ return [
|
||||
'cannot_create_thumbs' => 'سرور نمی تواند تصاویر کوچک ایجاد کند. لطفاً بررسی کنید که پسوند GD PHP را نصب کرده اید.',
|
||||
'server_upload_limit' => 'سرور اجازه آپلود در این اندازه را نمی دهد. لطفا اندازه فایل کوچکتر را امتحان کنید.',
|
||||
'uploaded' => 'سرور اجازه آپلود در این اندازه را نمی دهد. لطفا اندازه فایل کوچکتر را امتحان کنید.',
|
||||
'file_upload_timeout' => 'زمان بارگذاری فایل به پایان رسیده است.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'هنگام آپلود تصویر خطایی روی داد',
|
||||
'image_upload_type_error' => 'نوع تصویر در حال آپلود نامعتبر است',
|
||||
'drawing_data_not_found' => 'Drawing data could not be loaded. The drawing file might no longer exist or you may not have permission to access it.',
|
||||
'drawing_data_not_found' => 'داده های طرح قابل بارگذاری نیستند. ممکن است فایل طرح دیگر وجود نداشته باشد یا شما به آن دسترسی نداشته باشید.',
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'پیوست یافت نشد',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'پیش نویس ذخیره نشد. قبل از ذخیره این صفحه مطمئن شوید که به اینترنت متصل هستید',
|
||||
|
@ -50,11 +50,11 @@ return [
|
||||
|
||||
// Color settings
|
||||
'color_scheme' => 'ترکیب رنگی برنامه',
|
||||
'color_scheme_desc' => 'Set the colors to use in the application user interface. Colors can be configured separately for dark and light modes to best fit the theme and ensure legibility.',
|
||||
'ui_colors_desc' => 'Set the application primary color and default link color. The primary color is mainly used for the header banner, buttons and interface decorations. The default link color is used for text-based links and actions, both within written content and in the application interface.',
|
||||
'app_color' => 'Primary Color',
|
||||
'link_color' => 'Default Link Color',
|
||||
'content_colors_desc' => 'Set colors for all elements in the page organisation hierarchy. Choosing colors with a similar brightness to the default colors is recommended for readability.',
|
||||
'color_scheme_desc' => 'رنگهایی که در رابط کاربری نرمافزار استفاده می شوند را انتخاب کنید. رنگها را میتوان برای حالت روشن یا تیره به صورت جداگانه تنظیم کرد تا هم با تم مورد استفاده سازگار بوده و هم خوانا باشند.',
|
||||
'ui_colors_desc' => 'رنگ اصلی نرمافزار و رنگ پیش فرض پیوندها را انتخاب کنید. رنگ اصلی بیشتر برای بنر، کلیدها و عناصر تزیینی رابط کاربری استفاده می شوند. رنگ پیش فرض پیوند برای پیوندهای متنی و اکشن ها بکار میرود، هم در محتوای متنی و هم در رابط کاربری.',
|
||||
'app_color' => 'رنگ اصلی',
|
||||
'link_color' => 'رنگ پیش فرض پیوند',
|
||||
'content_colors_desc' => 'رنگهای عناصر سلسه مراتب صفحه را انتخاب کنید. پیشنهاد می شود رنگهایی انتخاب گردند که با رنگ پیش فرض دارای روشنی مشابه باشند، تا به خوانایی کمک شود.',
|
||||
'bookshelf_color' => 'رنگ قفسه',
|
||||
'book_color' => 'رنگ کتاب',
|
||||
'chapter_color' => 'رنگ فصل',
|
||||
@ -93,10 +93,10 @@ return [
|
||||
'maint_send_test_email_mail_text' => 'تبریک می گویم! با دریافت این اعلان ایمیل، به نظر می رسد تنظیمات ایمیل شما به درستی پیکربندی شده است.',
|
||||
'maint_recycle_bin_desc' => 'قفسهها، کتابها، فصلها و صفحات حذفشده به سطل بازیافت فرستاده میشوند تا بتوان آنها را بازیابی کرد یا برای همیشه حذف کرد. بسته به پیکربندی سیستم، اقلام قدیمی در سطل بازیافت ممکن است پس از مدتی به طور خودکار حذف شوند.',
|
||||
'maint_recycle_bin_open' => 'سطل بازیافت را باز کنید',
|
||||
'maint_regen_references' => 'Regenerate References',
|
||||
'maint_regen_references_desc' => 'This action will rebuild the cross-item reference index within the database. This is usually handled automatically but this action can be useful to index old content or content added via unofficial methods.',
|
||||
'maint_regen_references_success' => 'Reference index has been regenerated!',
|
||||
'maint_timeout_command_note' => 'Note: This action can take time to run, which can lead to timeout issues in some web environments. As an alternative, this action be performed using a terminal command.',
|
||||
'maint_regen_references' => 'تولید مجدد رفرنس ها',
|
||||
'maint_regen_references_desc' => 'این عمل اندیس رفرنس های میان اقلامی موجود در دیتابیس را بازسازی خواهد کرد. چنین کاری معمولا به صورت خودکار انجام میشود، ولی این عمل برای اندیس گذاری محتویات قدیمی یا محتویایی که از طرق غیرمعمول اضافه شده اند مفید است.',
|
||||
'maint_regen_references_success' => 'اندیس رفرنس ها بازسازی شدند!',
|
||||
'maint_timeout_command_note' => 'توجه: این عملیات زمان بر خواهد بود، که ممکن در برخی محیطهای وب باعث از دسترس خارج شدن شوند. به عنوان گزینه جایگزین، این عمل را میتوان با استفاده از یک دستور ترمینال انجام داد.',
|
||||
|
||||
// Recycle Bin
|
||||
'recycle_bin' => 'سطل زباله',
|
||||
@ -141,7 +141,7 @@ return [
|
||||
'roles_x_users_assigned' => ':count کاربر اختصاص داده شده|:count کاربر اختصاص داده شده',
|
||||
'roles_x_permissions_provided' => ':count مجوز|:count مجوز',
|
||||
'roles_assigned_users' => 'کاربران اختصاص داده شده',
|
||||
'roles_permissions_provided' => 'Provided Permissions',
|
||||
'roles_permissions_provided' => 'دسترسی های موجود',
|
||||
'role_create' => 'نقش جدید ایجاد کنید',
|
||||
'role_delete' => 'حذف نقش',
|
||||
'role_delete_confirm' => 'با این کار نقش با نام \':roleName\' حذف می شود.',
|
||||
@ -168,7 +168,7 @@ return [
|
||||
'roles_system_warning' => 'توجه داشته باشید که دسترسی به هر یک از سه مجوز فوق میتواند به کاربر اجازه دهد تا امتیازات خود یا امتیازات دیگران را در سیستم تغییر دهد. فقط نقش هایی را با این مجوزها به کاربران مورد اعتماد اختصاص دهید.',
|
||||
'role_asset_desc' => 'این مجوزها دسترسی پیشفرض به داراییهای درون سیستم را کنترل میکنند. مجوزهای مربوط به کتابها، فصلها و صفحات این مجوزها را لغو میکنند.',
|
||||
'role_asset_admins' => 'به ادمینها بهطور خودکار به همه محتوا دسترسی داده میشود، اما این گزینهها ممکن است گزینههای UI را نشان داده یا پنهان کنند.',
|
||||
'role_asset_image_view_note' => 'This relates to visibility within the image manager. Actual access of uploaded image files will be dependant upon system image storage option.',
|
||||
'role_asset_image_view_note' => 'این مربوط به مرئی بودن در بخش مدیر تصاویر است. دسترسی عملی به تصاویر آپلود شده بستگی به گزینه ذخیرهسازی تصویر سیستم دارد.',
|
||||
'role_all' => 'همه',
|
||||
'role_own' => 'صاحب',
|
||||
'role_controlled_by_asset' => 'توسط دارایی که در آن آپلود می شود کنترل می شود',
|
||||
@ -178,7 +178,7 @@ return [
|
||||
|
||||
// Users
|
||||
'users' => 'کاربران',
|
||||
'users_index_desc' => 'Create & manage individual user accounts within the system. User accounts are used for login and attribution of content & activity. Access permissions are primarily role-based but user content ownership, among other factors, may also affect permissions & access.',
|
||||
'users_index_desc' => 'ساخت و مدیریت حساب های کاربری درون سیستم. حساب های کاربری برای ورود به سیستم و تخصیص محتوا و فعالیت ها به کار می روند. اجازه های دسترسی عموما بر مبنای نقش کاربر هستند، ولی مالکیت محتوای کاربر (در کنار سایر عوامل) روی اجازه و دسترسی تاثیر گذارند.',
|
||||
'user_profile' => 'پرونده کاربر',
|
||||
'users_add_new' => 'افزودن کاربر جدید',
|
||||
'users_search' => 'جستجوی کاربران',
|
||||
@ -248,7 +248,7 @@ return [
|
||||
|
||||
// Webhooks
|
||||
'webhooks' => 'وبهوکها',
|
||||
'webhooks_index_desc' => 'Webhooks are a way to send data to external URLs when certain actions and events occur within the system which allows event-based integration with external platforms such as messaging or notification systems.',
|
||||
'webhooks_index_desc' => 'وب هوک ها روشی برای ارسال داده به آدرس های اینترنتی خارج از سیستم، بر اساس اتفاقات خاصی درون سیستم هستند که امکان یکپارچه سازی مبتنی بر وقایع را با سایر سیستم ها، مثل سیستم پیام رسانی یا اطلاع رسانی، فراهم می کنند.',
|
||||
'webhooks_x_trigger_events' => ':count trigger event|:count trigger events',
|
||||
'webhooks_create' => 'ایجاد وب هوک جدید',
|
||||
'webhooks_none_created' => 'هنوز هیچ وب هوکی ایجاد نشده است.',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Sélectionner une image',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'Toutes',
|
||||
'image_all_title' => 'Voir toutes les images',
|
||||
'image_book_title' => 'Voir les images ajoutées à ce livre',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Êtes-vous sûr de vouloir supprimer cette image ?',
|
||||
'image_select_image' => 'Sélectionner l\'image',
|
||||
'image_dropzone' => 'Glissez les images ici ou cliquez pour les ajouter',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'Images supprimées',
|
||||
'image_preview' => 'Prévisualiser l\'image',
|
||||
'image_upload_success' => 'Image ajoutée avec succès',
|
||||
'image_update_success' => 'Détails de l\'image mis à jour',
|
||||
'image_delete_success' => 'Image supprimée avec succès',
|
||||
'image_upload_remove' => 'Supprimer',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Éditer le code',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Fichiers joints',
|
||||
'attachments_explain' => 'Ajouter des fichiers ou des liens pour les afficher sur votre page. Ils seront affichés dans la barre latérale',
|
||||
'attachments_explain_instant_save' => 'Ces changements sont enregistrés immédiatement.',
|
||||
'attachments_items' => 'Fichiers joints',
|
||||
'attachments_upload' => 'Uploader un fichier',
|
||||
'attachments_link' => 'Attacher un lien',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'Définir un lien',
|
||||
'attachments_delete' => 'Êtes-vous sûr de vouloir supprimer la pièce jointe ?',
|
||||
'attachments_dropzone' => 'Glissez des fichiers ou cliquez ici pour attacher des fichiers',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'Aucun fichier ajouté',
|
||||
'attachments_explain_link' => 'Vous pouvez ajouter un lien si vous ne souhaitez pas uploader un fichier.',
|
||||
'attachments_link_name' => 'Nom du lien',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'Le serveur ne peut pas créer de miniature, vérifier que l\'extension PHP GD est installée.',
|
||||
'server_upload_limit' => 'La taille du fichier est trop grande.',
|
||||
'uploaded' => 'Le serveur n\'autorise pas l\'envoi d\'un fichier de cette taille. Veuillez essayer avec une taille de fichier réduite.',
|
||||
'file_upload_timeout' => 'Le téléchargement du fichier a expiré.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Une erreur est survenue pendant l\'envoi de l\'image',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Fichier joint non trouvé',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Le brouillon n\'a pas pu être enregistré. Vérifiez votre connexion internet',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'בחירת תמונה',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'הכל',
|
||||
'image_all_title' => 'הצג את כל התמונות',
|
||||
'image_book_title' => 'הצג תמונות שהועלו לספר זה',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'האם את/ה בטוח/ה שברצונך למחוק את התמונה הזו?',
|
||||
'image_select_image' => 'בחר תמונה',
|
||||
'image_dropzone' => 'גרור תמונות או לחץ כאן להעלאה',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'התמונות נמחקו',
|
||||
'image_preview' => 'תצוגה מקדימה',
|
||||
'image_upload_success' => 'התמונה עלתה בהצלחה',
|
||||
'image_update_success' => 'פרטי התמונה עודכנו בהצלחה',
|
||||
'image_delete_success' => 'התמונה נמחקה בהצלחה',
|
||||
'image_upload_remove' => 'מחק',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'ערוך קוד',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'קבצים מצורפים',
|
||||
'attachments_explain' => 'צרף קבצים או קישורים על מנת להציגם בדף שלך. צירופים אלו יהיו זמינים בתפריט הצדדי של הדף',
|
||||
'attachments_explain_instant_save' => 'שינויים נשמרים באופן מיידי',
|
||||
'attachments_items' => 'פריטים שצורפו',
|
||||
'attachments_upload' => 'העלה קובץ',
|
||||
'attachments_link' => 'צרף קישור',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'הגדר קישור',
|
||||
'attachments_delete' => 'Are you sure you want to delete this attachment?',
|
||||
'attachments_dropzone' => 'גרור לכאן קבצים או לחץ על מנת לצרף קבצים',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'לא הועלו קבצים',
|
||||
'attachments_explain_link' => 'ניתן לצרף קישור במקום העלאת קובץ, קישור זה יכול להוביל לדף אחר או לכל קובץ באינטרנט',
|
||||
'attachments_link_name' => 'שם הקישור',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'The server cannot create thumbnails. Please check you have the GD PHP extension installed.',
|
||||
'server_upload_limit' => 'השרת אינו מרשה העלאת קבצים במשקל זה. אנא נסה להעלות קובץ קטן יותר.',
|
||||
'uploaded' => 'השרת אינו מרשה העלאת קבצים במשקל זה. אנא נסה להעלות קובץ קטן יותר.',
|
||||
'file_upload_timeout' => 'The file upload has timed out.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'התרחשה שגיאה במהלך העלאת התמונה',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'קובץ מצורף לא נמצא',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'שגיאה בשמירת הטיוטה. אנא ודא כי חיבור האינטרנט תקין לפני שמירת דף זה.',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Odabir slike',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'Sve',
|
||||
'image_all_title' => 'Vidi sve slike',
|
||||
'image_book_title' => 'Vidi slike dodane ovoj knjizi',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Jeste li sigurni da želite obrisati sliku?',
|
||||
'image_select_image' => 'Odaberi sliku',
|
||||
'image_dropzone' => 'Prebacite sliku ili kliknite ovdje za prijenos',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'Obrisane slike',
|
||||
'image_preview' => 'Pregled slike',
|
||||
'image_upload_success' => 'Slika je uspješno dodana',
|
||||
'image_update_success' => 'Detalji slike su uspješno ažurirani',
|
||||
'image_delete_success' => 'Slika je obrisana',
|
||||
'image_upload_remove' => 'Ukloni',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Uredi kod',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Prilozi',
|
||||
'attachments_explain' => 'Dodajte datoteke ili poveznice za prikaz na vašoj stranici. Vidljive su na rubnoj oznaci stranice.',
|
||||
'attachments_explain_instant_save' => 'Promjene se automatski spremaju.',
|
||||
'attachments_items' => 'Dodane stavke',
|
||||
'attachments_upload' => 'Dodaj datoteku',
|
||||
'attachments_link' => 'Dodaj poveznicu',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'Postavi poveznicu',
|
||||
'attachments_delete' => 'Jeste li sigurni da želite izbrisati ovu stavku?',
|
||||
'attachments_dropzone' => 'Dodajte datoteke ili kliknite ovdje',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'Nijedna datoteka nije prenesena',
|
||||
'attachments_explain_link' => 'Možete dodati poveznicu ako ne želite prenijeti datoteku. Poveznica može voditi na drugu stranicu ili datoteku.',
|
||||
'attachments_link_name' => 'Ime poveznice',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'Provjerite imate li instaliranu GD PHP ekstenziju.',
|
||||
'server_upload_limit' => 'Prevelika količina za server. Pokušajte prenijeti manju veličinu.',
|
||||
'uploaded' => 'Prevelika količina za server. Pokušajte prenijeti manju veličinu.',
|
||||
'file_upload_timeout' => 'Isteklo vrijeme za prijenos datoteke.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Problem s prenosom slike',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Prilozi nisu pronađeni',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Problem sa spremanjem nacrta. Osigurajte stabilnu internetsku vezu.',
|
||||
|
@ -6,6 +6,9 @@ return [
|
||||
|
||||
// Image Manager
|
||||
'image_select' => 'Kép kiválasztása',
|
||||
'image_upload' => 'Upload Image',
|
||||
'image_intro' => 'Here you can select and manage images that have been previously uploaded to the system.',
|
||||
'image_intro_upload' => 'Upload a new image by dragging an image file into this window, or by using the "Upload Image" button above.',
|
||||
'image_all' => 'Összes',
|
||||
'image_all_title' => 'Összes kép megtekintése',
|
||||
'image_book_title' => 'A könyv feltöltött képek megtekintése',
|
||||
@ -18,12 +21,12 @@ return [
|
||||
'image_delete_confirm_text' => 'Biztosan törölhető ez a kép?',
|
||||
'image_select_image' => 'Kép kiválasztása',
|
||||
'image_dropzone' => 'Képek feltöltése ejtéssel vagy kattintással',
|
||||
'image_dropzone_drop' => 'Drop images here to upload',
|
||||
'images_deleted' => 'Képek törölve',
|
||||
'image_preview' => 'Kép előnézete',
|
||||
'image_upload_success' => 'Kép sikeresen feltöltve',
|
||||
'image_update_success' => 'Kép részletei sikeresen frissítve',
|
||||
'image_delete_success' => 'Kép sikeresen törölve',
|
||||
'image_upload_remove' => 'Eltávolítás',
|
||||
|
||||
// Code Editor
|
||||
'code_editor' => 'Kód szerkesztése',
|
||||
|
@ -311,12 +311,12 @@ return [
|
||||
'attachments' => 'Csatolmányok',
|
||||
'attachments_explain' => 'Az oldalon megjelenő fájlok feltöltése vagy hivatkozások csatolása. Az oldal oldalsávjában fognak megjelenni.',
|
||||
'attachments_explain_instant_save' => 'Az itt történt módosítások azonnal el lesznek mentve.',
|
||||
'attachments_items' => 'Csatolt elemek',
|
||||
'attachments_upload' => 'Fájlfeltöltés',
|
||||
'attachments_link' => 'Hivatkozás csatolása',
|
||||
'attachments_upload_drop' => 'Alternatively you can drag and drop a file here to upload it as an attachment.',
|
||||
'attachments_set_link' => 'Hivatkozás beállítása',
|
||||
'attachments_delete' => 'Biztosan törölhető ez a melléklet?',
|
||||
'attachments_dropzone' => 'Fájlok csatolása ejtéssel vagy kattintással',
|
||||
'attachments_dropzone' => 'Drop files here to upload',
|
||||
'attachments_no_files' => 'Nincsenek fájlok feltöltve',
|
||||
'attachments_explain_link' => 'Fájl feltöltése helyett hozzá lehet kapcsolni egy hivatkozást. Ez egy hivatkozás lesz egy másik oldalra vagy egy fájlra a felhőben.',
|
||||
'attachments_link_name' => 'Hivatkozás neve',
|
||||
|
@ -45,7 +45,6 @@ return [
|
||||
'cannot_create_thumbs' => 'A kiszolgáló nem tud létrehozni bélyegképeket. Ellenőrizni kell, hogy telepítve van-a a GD PHP kiterjesztés.',
|
||||
'server_upload_limit' => 'A kiszolgáló nem engedélyez ilyen méretű feltöltéseket. Kisebb fájlmérettel kell próbálkozni.',
|
||||
'uploaded' => 'A kiszolgáló nem engedélyez ilyen méretű feltöltéseket. Kisebb fájlmérettel kell próbálkozni.',
|
||||
'file_upload_timeout' => 'A fáj feltöltése időtúllépést okozott.',
|
||||
|
||||
// Drawing & Images
|
||||
'image_upload_error' => 'Hiba történt a kép feltöltése közben',
|
||||
@ -54,6 +53,7 @@ return [
|
||||
|
||||
// Attachments
|
||||
'attachment_not_found' => 'Csatolmány nem található',
|
||||
'attachment_upload_error' => 'An error occurred uploading the attachment file',
|
||||
|
||||
// Pages
|
||||
'page_draft_autosave_fail' => 'Nem sikerült a vázlat mentése. Mentés előtt meg kell róla győződni, hogy van internetkapcsolat',
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user