Merge branch 'master' into release
This commit is contained in:
commit
616c62703e
|
@ -119,4 +119,6 @@ Simsimpicpic :: French
|
||||||
Zenahr Barzani (Zenahr) :: German; Japanese; Dutch; German Informal
|
Zenahr Barzani (Zenahr) :: German; Japanese; Dutch; German Informal
|
||||||
tatsuya.info :: Japanese
|
tatsuya.info :: Japanese
|
||||||
fadiapp :: Arabic
|
fadiapp :: Arabic
|
||||||
Jakub “Jéžiš” Bouček (jakubboucek) :: Czech
|
Jakub Bouček (jakubboucek) :: Czech
|
||||||
|
Marco (cdrfun) :: German
|
||||||
|
10935336 :: Chinese Simplified
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
name: test-migrations
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- release
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- '*'
|
||||||
|
- '*/*'
|
||||||
|
- '!l10n_master'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
php: [7.2, 7.4]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
|
||||||
|
- name: Get Composer Cache Directory
|
||||||
|
id: composer-cache
|
||||||
|
run: |
|
||||||
|
echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||||
|
|
||||||
|
- name: Cache composer packages
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: ${{ steps.composer-cache.outputs.dir }}
|
||||||
|
key: ${{ runner.os }}-composer-${{ matrix.php }}
|
||||||
|
|
||||||
|
- name: Start MySQL
|
||||||
|
run: |
|
||||||
|
sudo /etc/init.d/mysql start
|
||||||
|
|
||||||
|
- name: Create database & user
|
||||||
|
run: |
|
||||||
|
mysql -uroot -proot -e 'CREATE DATABASE IF NOT EXISTS `bookstack-test`;'
|
||||||
|
mysql -uroot -proot -e "CREATE USER 'bookstack-test'@'localhost' IDENTIFIED BY 'bookstack-test';"
|
||||||
|
mysql -uroot -proot -e "GRANT ALL ON \`bookstack-test\`.* TO 'bookstack-test'@'localhost';"
|
||||||
|
mysql -uroot -proot -e 'FLUSH PRIVILEGES;'
|
||||||
|
|
||||||
|
- name: Install composer dependencies
|
||||||
|
run: composer install --prefer-dist --no-interaction --ansi
|
||||||
|
|
||||||
|
- name: Start migration test
|
||||||
|
run: |
|
||||||
|
php${{ matrix.php }} artisan migrate --force -n --database=mysql_testing
|
||||||
|
|
||||||
|
- name: Start migration:rollback test
|
||||||
|
run: |
|
||||||
|
php${{ matrix.php }} artisan migrate:rollback --force -n --database=mysql_testing
|
||||||
|
|
||||||
|
- name: Start migration rerun test
|
||||||
|
run: |
|
||||||
|
php${{ matrix.php }} artisan migrate --force -n --database=mysql_testing
|
|
@ -57,7 +57,7 @@ class RegistrationService
|
||||||
// Ensure user does not already exist
|
// Ensure user does not already exist
|
||||||
$alreadyUser = !is_null($this->userRepo->getByEmail($userEmail));
|
$alreadyUser = !is_null($this->userRepo->getByEmail($userEmail));
|
||||||
if ($alreadyUser) {
|
if ($alreadyUser) {
|
||||||
throw new UserRegistrationException(trans('errors.error_user_exists_different_creds', ['email' => $userEmail]));
|
throw new UserRegistrationException(trans('errors.error_user_exists_different_creds', ['email' => $userEmail]), '/login');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the user
|
// Create the user
|
||||||
|
|
|
@ -201,12 +201,10 @@ class Entity extends Ownable
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows checking of the exact class, Used to check entity type.
|
* Check if this instance or class is a certain type of entity.
|
||||||
* Cleaner method for is_a.
|
* Examples of $type are 'page', 'book', 'chapter'
|
||||||
* @param $type
|
|
||||||
* @return bool
|
|
||||||
*/
|
*/
|
||||||
public static function isA($type)
|
public static function isA(string $type): bool
|
||||||
{
|
{
|
||||||
return static::getType() === strtolower($type);
|
return static::getType() === strtolower($type);
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,6 @@ class BookContents
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the contents as a sorted collection tree.
|
* Get the contents as a sorted collection tree.
|
||||||
* TODO - Support $renderPages option
|
|
||||||
*/
|
*/
|
||||||
public function getTree(bool $showDrafts = false, bool $renderPages = false): Collection
|
public function getTree(bool $showDrafts = false, bool $renderPages = false): Collection
|
||||||
{
|
{
|
||||||
|
@ -60,8 +59,12 @@ class BookContents
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$all->each(function (Entity $entity) {
|
$all->each(function (Entity $entity) use ($renderPages) {
|
||||||
$entity->setRelation('book', $this->book);
|
$entity->setRelation('book', $this->book);
|
||||||
|
|
||||||
|
if ($renderPages && $entity->isA('page')) {
|
||||||
|
$entity->html = (new PageContent($entity))->render();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return collect($chapters)->concat($lonePages)->sortBy($this->bookChildSortFunc());
|
return collect($chapters)->concat($lonePages)->sortBy($this->bookChildSortFunc());
|
||||||
|
|
|
@ -27,8 +27,8 @@ class AddActivityIndexes extends Migration
|
||||||
public function down()
|
public function down()
|
||||||
{
|
{
|
||||||
Schema::table('activities', function(Blueprint $table) {
|
Schema::table('activities', function(Blueprint $table) {
|
||||||
$table->dropIndex('key');
|
$table->dropIndex('activities_key_index');
|
||||||
$table->dropIndex('created_at');
|
$table->dropIndex('activities_created_at_index');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,9 +139,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"codemirror": {
|
"codemirror": {
|
||||||
"version": "5.57.0",
|
"version": "5.58.1",
|
||||||
"resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.57.0.tgz",
|
"resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.58.1.tgz",
|
||||||
"integrity": "sha512-WGc6UL7Hqt+8a6ZAsj/f1ApQl3NPvHY/UQSzG6fB6l4BjExgVdhFaxd7mRTw1UCiYe/6q86zHP+kfvBQcZGvUg=="
|
"integrity": "sha512-UGb/ueu20U4xqWk8hZB3xIfV2/SFqnSLYONiM3wTMDqko0bsYrsAkGGhqUzbRkYm89aBKPyHtuNEbVWF9FTFzw=="
|
||||||
},
|
},
|
||||||
"color-convert": {
|
"color-convert": {
|
||||||
"version": "1.9.3",
|
"version": "1.9.3",
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"clipboard": "^2.0.6",
|
"clipboard": "^2.0.6",
|
||||||
"codemirror": "^5.57.0",
|
"codemirror": "^5.58.1",
|
||||||
"dropzone": "^5.7.2",
|
"dropzone": "^5.7.2",
|
||||||
"markdown-it": "^11.0.0",
|
"markdown-it": "^11.0.0",
|
||||||
"markdown-it-task-lists": "^2.1.1",
|
"markdown-it-task-lists": "^2.1.1",
|
||||||
|
|
|
@ -20,7 +20,7 @@ return [
|
||||||
'username' => 'Uživatelské jméno',
|
'username' => 'Uživatelské jméno',
|
||||||
'email' => 'E-mail',
|
'email' => 'E-mail',
|
||||||
'password' => 'Heslo',
|
'password' => 'Heslo',
|
||||||
'password_confirm' => 'Oveření hesla',
|
'password_confirm' => 'Potvrdit heslo',
|
||||||
'password_hint' => 'Musí mít více než 7 znaků',
|
'password_hint' => 'Musí mít více než 7 znaků',
|
||||||
'forgot_password' => 'Zapomněli jste heslo?',
|
'forgot_password' => 'Zapomněli jste heslo?',
|
||||||
'remember_me' => 'Zapamatovat si mě',
|
'remember_me' => 'Zapamatovat si mě',
|
||||||
|
|
|
@ -33,7 +33,7 @@ return [
|
||||||
'copy' => 'Kopírovat',
|
'copy' => 'Kopírovat',
|
||||||
'reply' => 'Odpovědět',
|
'reply' => 'Odpovědět',
|
||||||
'delete' => 'Odstranit',
|
'delete' => 'Odstranit',
|
||||||
'delete_confirm' => 'Confirm Deletion',
|
'delete_confirm' => 'Potvrdit odstranění',
|
||||||
'search' => 'Hledat',
|
'search' => 'Hledat',
|
||||||
'search_clear' => 'Vymazat hledání',
|
'search_clear' => 'Vymazat hledání',
|
||||||
'reset' => 'Obnovit',
|
'reset' => 'Obnovit',
|
||||||
|
|
|
@ -15,7 +15,7 @@ return [
|
||||||
'image_load_more' => 'Načíst další',
|
'image_load_more' => 'Načíst další',
|
||||||
'image_image_name' => 'Název obrázku',
|
'image_image_name' => 'Název obrázku',
|
||||||
'image_delete_used' => 'Tento obrázek je použit na níže uvedených stránkách.',
|
'image_delete_used' => 'Tento obrázek je použit na níže uvedených stránkách.',
|
||||||
'image_delete_confirm_text' => 'Are you sure you want to delete this image?',
|
'image_delete_confirm_text' => 'Opravdu chcete odstranit tento obrázek?',
|
||||||
'image_select_image' => 'Vyberte obrázek',
|
'image_select_image' => 'Vyberte obrázek',
|
||||||
'image_dropzone' => 'Přetáhněte obrázky nebo klikněte sem pro nahrání',
|
'image_dropzone' => 'Přetáhněte obrázky nebo klikněte sem pro nahrání',
|
||||||
'images_deleted' => 'Obrázky odstraněny',
|
'images_deleted' => 'Obrázky odstraněny',
|
||||||
|
|
|
@ -146,7 +146,7 @@ return [
|
||||||
'chapters_create' => 'Vytvořit novou kapitolu',
|
'chapters_create' => 'Vytvořit novou kapitolu',
|
||||||
'chapters_delete' => 'Smazat kapitolu',
|
'chapters_delete' => 'Smazat kapitolu',
|
||||||
'chapters_delete_named' => 'Smazat kapitolu :chapterName',
|
'chapters_delete_named' => 'Smazat kapitolu :chapterName',
|
||||||
'chapters_delete_explain' => "Kapitola ':chapterName' bude smazána. Všechny stránky v ní obsažené budou přesunuty přímo pod samotnou knihu.",
|
'chapters_delete_explain' => 'Kapitola \':chapterName\' bude smazána. Všechny stránky v ní obsažené budou přesunuty přímo pod samotnou knihu.',
|
||||||
'chapters_delete_confirm' => 'Opravdu chcete tuto kapitolu smazat?',
|
'chapters_delete_confirm' => 'Opravdu chcete tuto kapitolu smazat?',
|
||||||
'chapters_edit' => 'Upravit kapitolu',
|
'chapters_edit' => 'Upravit kapitolu',
|
||||||
'chapters_edit_named' => 'Upravit kapitolu :chapterName',
|
'chapters_edit_named' => 'Upravit kapitolu :chapterName',
|
||||||
|
@ -233,7 +233,7 @@ return [
|
||||||
'time_b' => 'v posledních minutách (:minCount min.)',
|
'time_b' => 'v posledních minutách (:minCount min.)',
|
||||||
'message' => ':start :time. Dávejte pozor abyste nepřepsali změny ostatním!',
|
'message' => ':start :time. Dávejte pozor abyste nepřepsali změny ostatním!',
|
||||||
],
|
],
|
||||||
'pages_draft_discarded' => 'Koncept byl zahozen. Editor nyní obsahuje aktuální verzi stránky.',
|
'pages_draft_discarded' => 'Koncept zahozen. Editor nyní obsahuje aktuální verzi stránky.',
|
||||||
'pages_specific' => 'Konkrétní stránka',
|
'pages_specific' => 'Konkrétní stránka',
|
||||||
'pages_is_template' => 'Šablona stránky',
|
'pages_is_template' => 'Šablona stránky',
|
||||||
|
|
||||||
|
@ -256,16 +256,16 @@ return [
|
||||||
'attachments_upload' => 'Nahrát soubor',
|
'attachments_upload' => 'Nahrát soubor',
|
||||||
'attachments_link' => 'Připojit odkaz',
|
'attachments_link' => 'Připojit odkaz',
|
||||||
'attachments_set_link' => 'Nastavit odkaz',
|
'attachments_set_link' => 'Nastavit odkaz',
|
||||||
'attachments_delete' => 'Are you sure you want to delete this attachment?',
|
'attachments_delete' => 'Jste si jisti, že chcete odstranit tuto přílohu?',
|
||||||
'attachments_dropzone' => 'Přetáhněte sem soubory myší nebo sem kliknětě pro vybrání souboru.',
|
'attachments_dropzone' => 'Přetáhněte sem soubory myší nebo sem kliknětě pro vybrání souboru.',
|
||||||
'attachments_no_files' => 'Žádné soubory nebyli nahrány',
|
'attachments_no_files' => 'Žádné soubory nebyli 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_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',
|
'attachments_link_name' => 'Název odkazu',
|
||||||
'attachment_link' => 'Odkaz na přílohu',
|
'attachment_link' => 'Odkaz na přílohu',
|
||||||
'attachments_link_url' => 'Odkaz na soubor',
|
'attachments_link_url' => 'Odkaz na soubor',
|
||||||
'attachments_link_url_hint' => 'URL stránky nebo souboru',
|
'attachments_link_url_hint' => 'URL stránky nebo souboru',
|
||||||
'attach' => 'Připojit',
|
'attach' => 'Připojit',
|
||||||
'attachments_insert_link' => 'Add Attachment Link to Page',
|
'attachments_insert_link' => 'Přidat odkaz na přílohu do stránky',
|
||||||
'attachments_edit_file' => 'Upravit soubor',
|
'attachments_edit_file' => 'Upravit soubor',
|
||||||
'attachments_edit_file_name' => 'Název souboru',
|
'attachments_edit_file_name' => 'Název souboru',
|
||||||
'attachments_edit_drop_upload' => 'Přetáhněte sem soubor myší nebo klikněte pro nahrání nového a následné přepsání starého.',
|
'attachments_edit_drop_upload' => 'Přetáhněte sem soubor myší nebo klikněte pro nahrání nového a následné přepsání starého.',
|
||||||
|
@ -294,7 +294,7 @@ return [
|
||||||
'comment' => 'Komentář',
|
'comment' => 'Komentář',
|
||||||
'comments' => 'Komentáře',
|
'comments' => 'Komentáře',
|
||||||
'comment_add' => 'Přidat komentář',
|
'comment_add' => 'Přidat komentář',
|
||||||
'comment_placeholder' => 'Zanechte komentář zde',
|
'comment_placeholder' => 'Zanechat komentář zde',
|
||||||
'comment_count' => '{0} Bez komentářů|{1} 1 komentář|[2,4] :count komentáře|[5,*] :count komentářů',
|
'comment_count' => '{0} Bez komentářů|{1} 1 komentář|[2,4] :count komentáře|[5,*] :count komentářů',
|
||||||
'comment_save' => 'Uložit komentář',
|
'comment_save' => 'Uložit komentář',
|
||||||
'comment_saving' => 'Ukládání komentáře...',
|
'comment_saving' => 'Ukládání komentáře...',
|
||||||
|
|
|
@ -9,8 +9,8 @@ return [
|
||||||
'permissionJson' => 'Nemáte povolení k provedení požadované akce.',
|
'permissionJson' => 'Nemáte povolení k provedení požadované akce.',
|
||||||
|
|
||||||
// Auth
|
// Auth
|
||||||
'error_user_exists_different_creds' => 'Uživatel s e-mailem :email již existuje ale s jinými přihlašovacími údaji.',
|
'error_user_exists_different_creds' => 'Uživatel s emailem :email již existuje ale s jinými přihlašovacími údaji.',
|
||||||
'email_already_confirmed' => 'E-mailová adresa již byla potvrzena. Zkuste se přihlásit.',
|
'email_already_confirmed' => 'Emailová adresa již byla potvrzena. Zkuste se přihlásit.',
|
||||||
'email_confirmation_invalid' => 'Tento potvrzovací odkaz již neplatí nebo už byl použit. Zkuste prosím registraci znovu.',
|
'email_confirmation_invalid' => 'Tento potvrzovací odkaz již neplatí nebo už byl použit. Zkuste prosím registraci znovu.',
|
||||||
'email_confirmation_expired' => 'Potvrzovací odkaz už neplatí, email s novým odkazem už byl poslán.',
|
'email_confirmation_expired' => 'Potvrzovací odkaz už neplatí, email s novým odkazem už byl poslán.',
|
||||||
'email_confirmation_awaiting' => 'E-mailová adresa pro používaný účet musí být potvrzena',
|
'email_confirmation_awaiting' => 'E-mailová adresa pro používaný účet musí být potvrzena',
|
||||||
|
@ -20,20 +20,20 @@ return [
|
||||||
'ldap_cannot_connect' => 'Nelze se připojit k adresáři LDAP. Prvotní připojení selhalo.',
|
'ldap_cannot_connect' => 'Nelze se připojit k adresáři LDAP. Prvotní připojení selhalo.',
|
||||||
'saml_already_logged_in' => 'Již jste přihlášeni',
|
'saml_already_logged_in' => 'Již jste přihlášeni',
|
||||||
'saml_user_not_registered' => 'Uživatel :name není registrován a automatická registrace je zakázána',
|
'saml_user_not_registered' => 'Uživatel :name není registrován a automatická registrace je zakázána',
|
||||||
'saml_no_email_address' => 'Could not find an email address, for this user, in the data provided by the external authentication system',
|
'saml_no_email_address' => 'Nelze najít e-mailovou adresu pro tohoto uživatele v datech poskytnutých externím přihlašovacím systémem',
|
||||||
'saml_invalid_response_id' => 'The request from the external authentication system is not recognised by a process started by this application. Navigating back after a login could cause this issue.',
|
'saml_invalid_response_id' => 'Požadavek z externího ověřovacího systému nebyl rozpoznám procesem, který tato aplikace spustila. Tento problém může způsobit stisknutí tlačítka Zpět po přihlášení.',
|
||||||
'saml_fail_authed' => 'Přihlášení pomocí :system selhalo, systém neposkytl úspěšnou autorizaci',
|
'saml_fail_authed' => 'Přihlášení pomocí :system selhalo, systém neposkytl úspěšnou autorizaci',
|
||||||
'social_no_action_defined' => 'Nebyla zvolena žádá akce',
|
'social_no_action_defined' => 'Nebyla zvolena žádá akce',
|
||||||
'social_login_bad_response' => "Nastala chyba během přihlašování přes :socialAccount \n:error",
|
'social_login_bad_response' => "Nastala chyba během přihlašování přes :socialAccount \n:error",
|
||||||
'social_account_in_use' => 'Tento účet na :socialAccount se již používá. Pokuste se s ním přihlásit volbou Přihlásit přes :socialAccount.',
|
'social_account_in_use' => 'Tento účet na :socialAccount se již používá. Pokuste se s ním přihlásit volbou Přihlásit přes :socialAccount.',
|
||||||
'social_account_email_in_use' => 'E-mailová adresa :email se již používá. Pokud máte již máte náš účet, můžete si jej propojit se svým účtem na :socialAccount v nastavení vašeho profilu.',
|
'social_account_email_in_use' => 'Emailová adresa :email se již používá. Pokud máte již máte náš účet, můžete si jej propojit se svým účtem na :socialAccount v nastavení vašeho profilu.',
|
||||||
'social_account_existing' => 'Tento účet na :socialAccount je již propojen s vaším profilem zde.',
|
'social_account_existing' => 'Tento účet na :socialAccount je již propojen s vaším profilem zde.',
|
||||||
'social_account_already_used_existing' => 'Tento účet na :socialAccount je již používán jiným uživatelem.',
|
'social_account_already_used_existing' => 'Tento účet na :socialAccount je již používán jiným uživatelem.',
|
||||||
'social_account_not_used' => 'Tento účet na :socialAccount není spřažen s žádným uživatelem. Prosím přiřaďtě si jej v nastavení svého profilu.',
|
'social_account_not_used' => 'Tento účet na :socialAccount není spřažen s žádným uživatelem. Prosím přiřaďtě si jej v nastavení svého profilu.',
|
||||||
'social_account_register_instructions' => 'Pokud ještě nemáte náš účet, můžete se zaregistrovat pomocí vašeho účtu na :socialAccount.',
|
'social_account_register_instructions' => 'Pokud ještě nemáte náš účet, můžete se zaregistrovat pomocí vašeho účtu na :socialAccount.',
|
||||||
'social_driver_not_found' => 'Doplněk pro tohoto správce identity nebyl nalezen.',
|
'social_driver_not_found' => 'Doplněk pro tohoto správce identity nebyl nalezen.',
|
||||||
'social_driver_not_configured' => 'Nastavení vašeho účtu na :socialAccount není správné. :socialAccount musí mít vaše svolení pro naší aplikaci vás přihlásit.',
|
'social_driver_not_configured' => 'Nastavení vašeho účtu na :socialAccount není správné. :socialAccount musí mít vaše svolení pro naší aplikaci vás přihlásit.',
|
||||||
'invite_token_expired' => 'Odkaz v pozvánce již bohužel expiroval. Namísto toho ale můžete zkusit resetovat heslo do Vašeho účtu.',
|
'invite_token_expired' => 'Odkaz v pozvánce již bohužel vypršel. Namísto toho ale můžete zkusit resetovat heslo do Vašeho účtu.',
|
||||||
|
|
||||||
// System
|
// System
|
||||||
'path_not_writable' => 'Nelze zapisovat na cestu k souboru :filePath. Zajistěte aby se dalo nahrávat na server.',
|
'path_not_writable' => 'Nelze zapisovat na cestu k souboru :filePath. Zajistěte aby se dalo nahrávat na server.',
|
||||||
|
@ -60,11 +60,11 @@ return [
|
||||||
'chapter_not_found' => 'Kapitola nenalezena',
|
'chapter_not_found' => 'Kapitola nenalezena',
|
||||||
'selected_book_not_found' => 'Vybraná kniha nebyla nalezena',
|
'selected_book_not_found' => 'Vybraná kniha nebyla nalezena',
|
||||||
'selected_book_chapter_not_found' => 'Zvolená kniha nebo kapitola nebyla nalezena',
|
'selected_book_chapter_not_found' => 'Zvolená kniha nebo kapitola nebyla nalezena',
|
||||||
'guests_cannot_save_drafts' => 'Nepřihlášení návštěvníci nemohou ukládat koncepty.',
|
'guests_cannot_save_drafts' => 'Návštěvníci z řad veřejnosti nemohou ukládat koncepty.',
|
||||||
|
|
||||||
// Users
|
// Users
|
||||||
'users_cannot_delete_only_admin' => 'Nemůžete smazat posledního administrátora',
|
'users_cannot_delete_only_admin' => 'Nemůžete smazat posledního administrátora',
|
||||||
'users_cannot_delete_guest' => 'Uživatele Guest není možno smazat',
|
'users_cannot_delete_guest' => 'Uživatele host není možno smazat',
|
||||||
|
|
||||||
// Roles
|
// Roles
|
||||||
'role_cannot_be_edited' => 'Tuto roli nelze editovat',
|
'role_cannot_be_edited' => 'Tuto roli nelze editovat',
|
||||||
|
@ -73,16 +73,16 @@ return [
|
||||||
'role_cannot_remove_only_admin' => 'Tento uživatel má roli administrátora. Přiřaďte roli administrátora někomu jinému než jí odeberete zde.',
|
'role_cannot_remove_only_admin' => 'Tento uživatel má roli administrátora. Přiřaďte roli administrátora někomu jinému než jí odeberete zde.',
|
||||||
|
|
||||||
// Comments
|
// Comments
|
||||||
'comment_list' => 'Při načítání komentářů nastala chyba.',
|
'comment_list' => 'Při dotahování komentářů nastala chyba.',
|
||||||
'cannot_add_comment_to_draft' => 'Nemůžete přidávat komentáře ke konceptu.',
|
'cannot_add_comment_to_draft' => 'Nemůžete přidávat komentáře ke konceptu.',
|
||||||
'comment_add' => 'Při přidávání / úpravě komentáře nastala chyba.',
|
'comment_add' => 'Při přidávání / aktualizaci komentáře nastala chyba.',
|
||||||
'comment_delete' => 'Při mazání komentáře nastala chyba.',
|
'comment_delete' => 'Při mazání komentáře nastala chyba.',
|
||||||
'empty_comment' => 'Nemůžete přidat prázdný komentář.',
|
'empty_comment' => 'Nemůžete přidat prázdný komentář.',
|
||||||
|
|
||||||
// Error pages
|
// Error pages
|
||||||
'404_page_not_found' => 'Stránka nenalezena',
|
'404_page_not_found' => 'Stránka nenalezena',
|
||||||
'sorry_page_not_found' => 'Omlouváme se, ale stránka, kterou hledáte, nebyla nalezena.',
|
'sorry_page_not_found' => 'Omlouváme se, ale stránka, kterou hledáte nebyla nalezena.',
|
||||||
'sorry_page_not_found_permission_warning' => 'Pokud myslíte, že by stránka měla existovat, možná jen nemáte oprávnění pro její zobrazení.',
|
'sorry_page_not_found_permission_warning' => 'Pokud očekáváte, že by stránka měla existovat, možná jen nemáte oprávnění pro její zobrazení.',
|
||||||
'return_home' => 'Návrat domů',
|
'return_home' => 'Návrat domů',
|
||||||
'error_occurred' => 'Nastala chyba',
|
'error_occurred' => 'Nastala chyba',
|
||||||
'app_down' => ':appName je momentálně vypnutá',
|
'app_down' => ':appName je momentálně vypnutá',
|
||||||
|
@ -91,7 +91,7 @@ return [
|
||||||
// API errors
|
// API errors
|
||||||
'api_no_authorization_found' => 'V požadavku nebyla nalezen žádný autorizační token',
|
'api_no_authorization_found' => 'V požadavku nebyla nalezen žádný autorizační token',
|
||||||
'api_bad_authorization_format' => 'V požadavku byl nalezen autorizační token, ale jeho formát se zdá být chybný',
|
'api_bad_authorization_format' => 'V požadavku byl nalezen autorizační token, ale jeho formát se zdá být chybný',
|
||||||
'api_user_token_not_found' => 'Pro poskytnutý autorizační token nebyl nalezen žádný odpovídající API token',
|
'api_user_token_not_found' => 'Pro zadaný autorizační token nebyl nalezen žádný odpovídající API token',
|
||||||
'api_incorrect_token_secret' => 'Poskytnutý Token Secret neodpovídá použitému API tokenu',
|
'api_incorrect_token_secret' => 'Poskytnutý Token Secret neodpovídá použitému API tokenu',
|
||||||
'api_user_no_api_permission' => 'Vlastník použitého API tokenu nemá oprávnění provádět API volání',
|
'api_user_no_api_permission' => 'Vlastník použitého API tokenu nemá oprávnění provádět API volání',
|
||||||
'api_user_token_expired' => 'Platnost autorizačního tokenu vypršela',
|
'api_user_token_expired' => 'Platnost autorizačního tokenu vypršela',
|
||||||
|
|
|
@ -9,67 +9,67 @@ return [
|
||||||
// Common Messages
|
// Common Messages
|
||||||
'settings' => 'Nastavení',
|
'settings' => 'Nastavení',
|
||||||
'settings_save' => 'Uložit nastavení',
|
'settings_save' => 'Uložit nastavení',
|
||||||
'settings_save_success' => 'Nastavení bylo uloženo',
|
'settings_save_success' => 'Nastavení uloženo',
|
||||||
|
|
||||||
// App Settings
|
// App Settings
|
||||||
'app_customization' => 'Přizpůsobení',
|
'app_customization' => 'Přizpůsobení',
|
||||||
'app_features_security' => 'Funkce a zabezpečení',
|
'app_features_security' => 'Funkce a zabezpečení',
|
||||||
'app_name' => 'Název aplikace',
|
'app_name' => 'Název aplikace',
|
||||||
'app_name_desc' => 'Název se bude zobrazovat v záhlaví této aplikace a v odesílaných e-mailech.',
|
'app_name_desc' => 'Název se bude zobrazovat v záhlaví této aplikace a v e-mailech odesílaných systémem.',
|
||||||
'app_name_header' => 'Zobrazovát název aplikace v záhlaví?',
|
'app_name_header' => 'Zobrazovat název aplikace v záhlaví',
|
||||||
'app_public_access' => 'Veřejný přístup',
|
'app_public_access' => 'Veřejný přístup',
|
||||||
'app_public_access_desc' => 'Povolení této volby umožní návštěvníkům, kteří nejsou přihlášeni, přístup k obsahu v instanci BookStack.',
|
'app_public_access_desc' => 'Zapnutím této volby umožníte nepřihlášeným návštěvníkům přístup k Vašemu obsahu v BookStack aplikaci.',
|
||||||
'app_public_access_desc_guest' => 'Přístup veřejnosti je možné kontrolovat prostřednictvím uživatele "Guest".',
|
'app_public_access_desc_guest' => 'Přístup pro nepřihlášené návštěvníky je možné nastavit přes uživatele "Guest".',
|
||||||
'app_public_access_toggle' => 'Povolit veřejný přístup',
|
'app_public_access_toggle' => 'Povolit veřejný přístup',
|
||||||
'app_public_viewing' => 'Povolit prohlížení veřejností?',
|
'app_public_viewing' => 'Povolit prohlížení veřejností?',
|
||||||
'app_secure_images' => 'Povolit vyšší zabezpečení obrázků ?',
|
'app_secure_images' => 'Nahrávat obrázky neveřejně a zabezpečeně',
|
||||||
'app_secure_images_toggle' => 'Povolit vyšší zabezpečení obrázků',
|
'app_secure_images_toggle' => 'Zapnout bezpečnější nahrávání obrázků',
|
||||||
'app_secure_images_desc' => 'Z výkonnostních důvodů jsou všechny obrázky veřejné. Tato volba přidá do adresy obrázku náhodný řetězec, aby nikdo neodhadnul adresu obrázku. Ujistěte se, že není povoleno indexování adresářů, abyste zamezili snadnému přístupu.',
|
'app_secure_images_desc' => 'Z výkonnostních důvodů jsou všechny obrázky veřejně dostupné. Tato volba přidá do adresy obrázku náhodný řetězec, aby nikdo neodhadnul adresu obrázku. Ujistěte se, že server nezobrazuje v adresáři seznam souborů, což by přístup k přístup opět otevřelo.',
|
||||||
'app_editor' => 'Editor stránek',
|
'app_editor' => 'Editor stránek',
|
||||||
'app_editor_desc' => 'Zvolte který editor budou užívat všichni uživatelé k úpravě stránek.',
|
'app_editor_desc' => 'Zvolte který editor budou užívat všichni uživatelé k úpravě stránek.',
|
||||||
'app_custom_html' => 'Vlastní HTML kód pro sekci hlavičky (<head>).',
|
'app_custom_html' => 'Vlastní obsah hlavičky HTML',
|
||||||
'app_custom_html_desc' => 'Cokoliv sem napíšete bude přidáno na konec sekce <head> v každém místě této aplikace. To se hodí pro přidávání nebo změnu CSS stylů nebo přidání kódu pro analýzu používání (např.: google analytics.).',
|
'app_custom_html_desc' => 'Cokoliv sem napíšete bude přidáno na konec sekce <head> v každém místě této aplikace. To se hodí pro přidávání nebo změnu CSS stylů nebo přidání kódu pro analýzu používání (např.: google analytics.).',
|
||||||
'app_custom_html_disabled_notice' => 'Vlastní HTML hlavička je na této stránce nastavení zakázána, aby bylo možné vrátit změny zpět.',
|
'app_custom_html_disabled_notice' => 'Na této stránce nastavení je zakázán vlastní obsah HTML hlavičky, aby bylo zajištěno, že bude možné vrátit případnou problematickou úpravu.',
|
||||||
'app_logo' => 'Logo aplikace',
|
'app_logo' => 'Logo aplikace',
|
||||||
'app_logo_desc' => 'Obrázek by měl mít 43 pixelů na výšku. <br>Větší obrázky zmenšíme na tuto velikost.',
|
'app_logo_desc' => 'Tento obrázek by měl mít výšku 43px. <br>Větší obrázky zmenšíme na tuto velikost.',
|
||||||
'app_primary_color' => 'Hlavní barva aplikace',
|
'app_primary_color' => 'Hlavní barva aplikace',
|
||||||
'app_primary_color_desc' => 'Zápis by měl být hexa (#aabbcc). <br>Pro základní barvu nechte pole prázdné.',
|
'app_primary_color_desc' => 'Nastaví hlavní barvu aplikace včetně panelů, tlačítek a odkazů.',
|
||||||
'app_homepage' => 'Úvodní stránka aplikace',
|
'app_homepage' => 'Úvodní stránka aplikace',
|
||||||
'app_homepage_desc' => 'Zvolte pohled, který se použije jako úvodní stránka. U zvolených stránek bude ignorováno jejich oprávnění.',
|
'app_homepage_desc' => 'Vyberte si zobrazení, které se použije jako úvodní stránka. U zvolených stránek bude ignorováno jejich oprávnění.',
|
||||||
'app_homepage_select' => 'Zvolte stránku',
|
'app_homepage_select' => 'Zvolte stránku',
|
||||||
'app_disable_comments' => 'Zakázání komentářů',
|
'app_disable_comments' => 'Vypnutí komentářů',
|
||||||
'app_disable_comments_toggle' => 'Zakázat komentáře',
|
'app_disable_comments_toggle' => 'Vypnout komentáře',
|
||||||
'app_disable_comments_desc' => 'Zakáže komentáře napříč všemi stránkami. <br> Existující komentáře se přestanou zobrazovat.',
|
'app_disable_comments_desc' => 'Vypne komentáře napříč všemi stránkami. <br> Existující komentáře se přestanou zobrazovat.',
|
||||||
|
|
||||||
// Color settings
|
// Color settings
|
||||||
'content_colors' => 'Barvy obsahu',
|
'content_colors' => 'Barvy obsahu',
|
||||||
'content_colors_desc' => 'Nastaví barvy pro všechny prvky v hierarchii organizace stránek. Pro čitelnost je doporučeno zvolit barvy s podobným jasem jako výchozí barvy.',
|
'content_colors_desc' => 'Nastaví barvy pro všechny prvky v organizační struktuře stránky. Pro lepší čitelnost doporučujeme zvolit barvy s podobným jasem, jakou mají výchozí barvy.',
|
||||||
'bookshelf_color' => 'Barva Knihovny',
|
'bookshelf_color' => 'Barva knihovny',
|
||||||
'book_color' => 'Barva Knihy',
|
'book_color' => 'Barva knihy',
|
||||||
'chapter_color' => 'Barva Kapitoly',
|
'chapter_color' => 'Barva kapitoly',
|
||||||
'page_color' => 'Barva Stránky',
|
'page_color' => 'Barva stránky',
|
||||||
'page_draft_color' => 'Page Draft Color',
|
'page_draft_color' => 'Barva návrhu stránky',
|
||||||
|
|
||||||
// Registration Settings
|
// Registration Settings
|
||||||
'reg_settings' => 'Nastavení registrace',
|
'reg_settings' => 'Nastavení registrace',
|
||||||
'reg_enable' => 'Povolit Registrace',
|
'reg_enable' => 'Povolení registrace',
|
||||||
'reg_enable_toggle' => 'Povolit registrace',
|
'reg_enable_toggle' => 'Povolit registrace',
|
||||||
'reg_enable_desc' => 'Při povolení registrace se budou moct tito uživatelé přihlásit a obdrží výchozí uživatelskou roli.',
|
'reg_enable_desc' => 'Pokud jsou povoleny registrace, bude se uživatel moci sám registrovat jako uživatel aplikace. Po registraci dostane jednu výchozí uživatelskou roli.',
|
||||||
'reg_default_role' => 'Role přiřazená po registraci',
|
'reg_default_role' => 'Role přiřazená po registraci',
|
||||||
'reg_enable_external_warning' => 'Výše uvedená volba je ignorována, pokud je aktivní externí LDAP nebo SAML ověření. Uživatelské účty pro neexistující členy budou automaticky vytvořeny po přihlášení přes externí autentifikační systém.',
|
'reg_enable_external_warning' => 'Pokud je povolené externí ověřování přes LDAP nebo SAML, je výše uvedená možnost ignorována. Uživatelský účet budou automaticky vytvořen i neexistujícímu uživateli, jakmile se úspěšně přihlásí přes použitý externí přihlašovací systém.',
|
||||||
'reg_email_confirmation' => 'Potvrzení e-mailem',
|
'reg_email_confirmation' => 'Ověření e-mailu',
|
||||||
'reg_email_confirmation_toggle' => 'Vyžadovat potvrzení e-mailem',
|
'reg_email_confirmation_toggle' => 'Vyžadovat ověření e-mailu',
|
||||||
'reg_confirm_email_desc' => 'Pokud zapnete omezení emailové domény, tak bude ověřování emailové adresy vyžadováno vždy.',
|
'reg_confirm_email_desc' => 'Pokud je zapnuté Omezení registrace podle domény, bude e-mail ověřován vždy a tato volba bude ignorována.',
|
||||||
'reg_confirm_restrict_domain' => 'Omezit registraci podle domény',
|
'reg_confirm_restrict_domain' => 'Omezit registraci podle domény',
|
||||||
'reg_confirm_restrict_domain_desc' => 'Zadejte emailové domény, kterým bude povolena registrace uživatelů. Oddělujete čárkou. Uživatelům bude odeslán email s odkazem pro potvrzení vlastnictví emailové adresy. Bez potvrzení nebudou moci aplikaci používat. <br> Pozn.: Uživatelé si mohou emailovou adresu změnit po úspěšné registraci.',
|
'reg_confirm_restrict_domain_desc' => 'Zadejte seznam e-mailových domén oddělených čárkami, na které chcete registraci omezit. Registrujícímu se uživateli bude zaslán e-mail, aby ověřil svoji e-mailovou adresu před tím, než mu bude přístup do aplikace povolen. <br> Upozorňujeme, že po úspěšné registraci může uživatel svoji e-mailovou adresu změnit.',
|
||||||
'reg_confirm_restrict_domain_placeholder' => 'Žádná omezení nebyla nastavena',
|
'reg_confirm_restrict_domain_placeholder' => 'Žádná omezení nebyla nastavena',
|
||||||
|
|
||||||
// Maintenance settings
|
// Maintenance settings
|
||||||
'maint' => 'Údržba',
|
'maint' => 'Údržba',
|
||||||
'maint_image_cleanup' => 'Promazání obrázků',
|
'maint_image_cleanup' => 'Pročistění obrázků',
|
||||||
'maint_image_cleanup_desc' => 'Prohledá stránky a jejich revize, aby zjistil, které obrázky a kresby jsou momentálně používány a které jsou zbytečné. Zajistěte plnou zálohu databáze a obrázků než se do toho pustíte.',
|
'maint_image_cleanup_desc' => "Prohledá stránky a jejich revize, aby zjistil, které obrázky a kresby jsou momentálně používány a které jsou zbytečné. Zajistěte plnou zálohu databáze a obrázků než se do toho pustíte.",
|
||||||
'maint_image_cleanup_ignore_revisions' => 'Ignorovat obrázky v revizích',
|
'maint_image_cleanup_ignore_revisions' => 'Ignorovat obrázky v revizích',
|
||||||
'maint_image_cleanup_run' => 'Spustit Promazání',
|
'maint_image_cleanup_run' => 'Spustit pročištění',
|
||||||
'maint_image_cleanup_warning' => 'Nalezeno :count potenciálně nepoužitých obrázků. Jste si jistí, že je chcete smazat?',
|
'maint_image_cleanup_warning' => 'Nalezeno :count potenciálně nepoužitých obrázků. Jste si jistí, že je chcete smazat?',
|
||||||
'maint_image_cleanup_success' => 'Potenciálně nepoužité obrázky byly smazány. Celkem :count.',
|
'maint_image_cleanup_success' => 'Potenciálně nepoužité obrázky byly smazány. Celkem :count.',
|
||||||
'maint_image_cleanup_nothing_found' => 'Žádné potenciálně nepoužité obrázky nebyly nalezeny. Nic nebylo smazáno.',
|
'maint_image_cleanup_nothing_found' => 'Žádné potenciálně nepoužité obrázky nebyly nalezeny. Nic nebylo smazáno.',
|
||||||
|
@ -77,23 +77,23 @@ return [
|
||||||
'maint_send_test_email_desc' => 'Toto pošle zkušební e-mail na vaši e-mailovou adresu uvedenou ve vašem profilu.',
|
'maint_send_test_email_desc' => 'Toto pošle zkušební e-mail na vaši e-mailovou adresu uvedenou ve vašem profilu.',
|
||||||
'maint_send_test_email_run' => 'Odeslat zkušební e-mail',
|
'maint_send_test_email_run' => 'Odeslat zkušební e-mail',
|
||||||
'maint_send_test_email_success' => 'E-mail odeslán na :address',
|
'maint_send_test_email_success' => 'E-mail odeslán na :address',
|
||||||
'maint_send_test_email_mail_subject' => 'Test Email',
|
'maint_send_test_email_mail_subject' => 'Testovací e-mail',
|
||||||
'maint_send_test_email_mail_greeting' => 'Email delivery seems to work!',
|
'maint_send_test_email_mail_greeting' => 'Zdá se, že posílání e-mailů funguje!',
|
||||||
'maint_send_test_email_mail_text' => 'Congratulations! As you received this email notification, your email settings seem to be configured properly.',
|
'maint_send_test_email_mail_text' => 'Gratulujeme! Protože jste dostali tento e-mail, zdá se, že nastavení e-mailů je v pořádku.',
|
||||||
|
|
||||||
// Audit Log
|
// Audit Log
|
||||||
'audit' => 'Audit Log',
|
'audit' => 'Protokol auditu',
|
||||||
'audit_desc' => 'This audit log displays a list of activities tracked in the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
|
'audit_desc' => 'Tento protokol auditu zobrazuje seznam činností zaznamenaných v systému. Tento seznam není filtrován na rozdíl od podobných seznamů aktivit v systému, kde jsou použity filtry podle oprávnění.',
|
||||||
'audit_event_filter' => 'Event Filter',
|
'audit_event_filter' => 'Filtr událostí',
|
||||||
'audit_event_filter_no_filter' => 'No Filter',
|
'audit_event_filter_no_filter' => 'Bez filtru',
|
||||||
'audit_deleted_item' => 'Deleted Item',
|
'audit_deleted_item' => 'Odstraněná položka',
|
||||||
'audit_deleted_item_name' => 'Name: :name',
|
'audit_deleted_item_name' => 'Jméno: :name',
|
||||||
'audit_table_user' => 'User',
|
'audit_table_user' => 'Uživatel',
|
||||||
'audit_table_event' => 'Event',
|
'audit_table_event' => 'Událost',
|
||||||
'audit_table_item' => 'Related Item',
|
'audit_table_item' => 'Související položka',
|
||||||
'audit_table_date' => 'Activity Date',
|
'audit_table_date' => 'Datum aktivity',
|
||||||
'audit_date_from' => 'Date Range From',
|
'audit_date_from' => 'Časový rozsah od',
|
||||||
'audit_date_to' => 'Date Range To',
|
'audit_date_to' => 'Časový rozsah do',
|
||||||
|
|
||||||
// Role Settings
|
// Role Settings
|
||||||
'roles' => 'Role',
|
'roles' => 'Role',
|
||||||
|
@ -101,9 +101,9 @@ return [
|
||||||
'role_create' => 'Vytvořit novou roli',
|
'role_create' => 'Vytvořit novou roli',
|
||||||
'role_create_success' => 'Role byla úspěšně vytvořena',
|
'role_create_success' => 'Role byla úspěšně vytvořena',
|
||||||
'role_delete' => 'Smazat roli',
|
'role_delete' => 'Smazat roli',
|
||||||
'role_delete_confirm' => "Role ':roleName' bude smazána.",
|
'role_delete_confirm' => 'Role \':roleName\' bude smazána.',
|
||||||
'role_delete_users_assigned' => 'Role je přiřazena :userCount uživatelům. Pokud je chcete přesunout do jiné role, zvolte jednu z následujících.',
|
'role_delete_users_assigned' => 'Role je přiřazena :userCount uživatelům. Pokud jim chcete náhradou přidělit jinou roli, zvolte jednu z následujících.',
|
||||||
'role_delete_no_migration' => 'Nepřiřazovat uživatelům novou roli',
|
'role_delete_no_migration' => "Nepřiřazovat uživatelům náhradní roli",
|
||||||
'role_delete_sure' => 'Opravdu chcete tuto roli smazat?',
|
'role_delete_sure' => 'Opravdu chcete tuto roli smazat?',
|
||||||
'role_delete_success' => 'Role byla úspěšně smazána',
|
'role_delete_success' => 'Role byla úspěšně smazána',
|
||||||
'role_edit' => 'Upravit roli',
|
'role_edit' => 'Upravit roli',
|
||||||
|
@ -112,24 +112,24 @@ return [
|
||||||
'role_desc' => 'Stručný popis role',
|
'role_desc' => 'Stručný popis role',
|
||||||
'role_external_auth_id' => 'Přihlašovací identifikátory třetích stran',
|
'role_external_auth_id' => 'Přihlašovací identifikátory třetích stran',
|
||||||
'role_system' => 'Systémová oprávnění',
|
'role_system' => 'Systémová oprávnění',
|
||||||
'role_manage_users' => 'Správa úživatelů',
|
'role_manage_users' => 'Správa uživatelů',
|
||||||
'role_manage_roles' => 'Správa rolí a jejich práv',
|
'role_manage_roles' => 'Správa rolí a jejich práv',
|
||||||
'role_manage_entity_permissions' => 'Správa práv všech knih, kapitol a stránek',
|
'role_manage_entity_permissions' => 'Správa práv všech knih, kapitol a stránek',
|
||||||
'role_manage_own_entity_permissions' => 'Správa práv vlastních knih, kapitol a stránek',
|
'role_manage_own_entity_permissions' => 'Správa práv vlastních knih, kapitol a stránek',
|
||||||
'role_manage_page_templates' => 'Spravovat šablony stránek',
|
'role_manage_page_templates' => 'Správa šablon stránek',
|
||||||
'role_access_api' => 'Přístup k API systému',
|
'role_access_api' => 'Přístup k systémovému API',
|
||||||
'role_manage_settings' => 'Správa nastavení aplikace',
|
'role_manage_settings' => 'Správa nastavení aplikace',
|
||||||
'role_asset' => 'Práva děl',
|
'role_asset' => 'Obsahová oprávnění',
|
||||||
'roles_system_warning' => 'Be aware that access to any of the above three permissions can allow a user to alter their own privileges or the privileges of others in the system. Only assign roles with these permissions to trusted users.',
|
'roles_system_warning' => 'Berte na vědomí, že přístup k některému ze tří výše uvedených oprávnění může uživateli umožnit změnit svá vlastní oprávnění nebo oprávnění ostatních uživatelů v systému. Přiřazujte role s těmito oprávněními pouze důvěryhodným uživatelům.',
|
||||||
'role_asset_desc' => 'Tato práva řídí přístup k dílům v rámci systému. Specifická práva na knihách, kapitolách a stránkách překryjí tato nastavení.',
|
'role_asset_desc' => 'Tato práva řídí přístup k obsahu napříč systémem. Specifická práva na knihách, kapitolách a stránkách převáží tato nastavení.',
|
||||||
'role_asset_admins' => 'Administrátoři automaticky dostávají přístup k veškerému obsahu, ale tyto volby mohou ukázat nebo skrýt volby v uživatelském rozhraní.',
|
'role_asset_admins' => 'Administrátoři automaticky dostávají přístup k veškerému obsahu, ale tyto volby mohou ukázat nebo skrýt volby v uživatelském rozhraní.',
|
||||||
'role_all' => 'Vše',
|
'role_all' => 'Vše',
|
||||||
'role_own' => 'Vlastní',
|
'role_own' => 'Vlastní',
|
||||||
'role_controlled_by_asset' => 'Řídí se obsahem do kterého jsou nahrávány',
|
'role_controlled_by_asset' => 'Řídí se obsahem, do kterého jsou nahrávány',
|
||||||
'role_save' => 'Uloži roli',
|
'role_save' => 'Uložit roli',
|
||||||
'role_update_success' => 'Role úspěšně upravena',
|
'role_update_success' => 'Role úspěšně aktualizována',
|
||||||
'role_users' => 'Uživatelé, kteří mají tuto roli',
|
'role_users' => 'Uživatelé mající tuto roli',
|
||||||
'role_users_none' => 'Žádný uživatel tuto roli nemá.',
|
'role_users_none' => 'Žádný uživatel nemá tuto roli',
|
||||||
|
|
||||||
// Users
|
// Users
|
||||||
'users' => 'Uživatelé',
|
'users' => 'Uživatelé',
|
||||||
|
@ -137,38 +137,38 @@ return [
|
||||||
'users_add_new' => 'Přidat nového uživatele',
|
'users_add_new' => 'Přidat nového uživatele',
|
||||||
'users_search' => 'Vyhledávání uživatelů',
|
'users_search' => 'Vyhledávání uživatelů',
|
||||||
'users_details' => 'Údaje o uživateli',
|
'users_details' => 'Údaje o uživateli',
|
||||||
'users_details_desc' => 'Set a display name and an email address for this user. The email address will be used for logging into the application.',
|
'users_details_desc' => 'Nastavte zobrazované jméno a e-mailovou adresu pro tohoto uživatele. E-mailová adresa bude použita pro přihlášení do aplikace.',
|
||||||
'users_details_desc_no_email' => 'Set a display name for this user so others can recognise them.',
|
'users_details_desc_no_email' => 'Nastavte zobrazované jméno pro tohoto uživatele, aby jej ostatní uživatele poznali.',
|
||||||
'users_role' => 'Uživatelské role',
|
'users_role' => 'Uživatelské role',
|
||||||
'users_role_desc' => 'Vyberte, do kterých rolí bude uživatel přiřazen. Pokud je uživatel přiřazen k více rolím, oprávnění z těchto rolí se budou skládat a budou dostávat všechny schopnosti přiřazených rolí.',
|
'users_role_desc' => 'Zvolte role, do kterých chcete uživatele zařadit. Pokud bude uživatel zařazen do více rolí, oprávnění z těchto rolí se sloučí a uživateli bude dovoleno vše, k čemu mají jednotlivé role oprávnění.',
|
||||||
'users_password' => 'Uživatelské heslo',
|
'users_password' => 'Heslo uživatele',
|
||||||
'users_password_desc' => 'Set a password used to log-in to the application. This must be at least 6 characters long.',
|
'users_password_desc' => 'Zadejte heslo pro přihlášení do aplikace. Heslo musí být nejméně 6 znaků dlouhé.',
|
||||||
'users_send_invite_text' => 'You can choose to send this user an invitation email which allows them to set their own password otherwise you can set their password yourself.',
|
'users_send_invite_text' => 'Uživateli můžete poslat pozvánku e-mailem, která umožní uživateli, aby si zvolil sám svoje heslo do aplikace a nebo můžete zadat heslo sami.',
|
||||||
'users_send_invite_option' => 'Send user invite email',
|
'users_send_invite_option' => 'Poslat uživateli pozvánku e-mailem',
|
||||||
'users_external_auth_id' => 'Přihlašovací identifikátory třetích stran',
|
'users_external_auth_id' => 'Přihlašovací identifikátor třetích stran',
|
||||||
'users_external_auth_id_desc' => 'This is the ID used to match this user when communicating with your external authentication system.',
|
'users_external_auth_id_desc' => 'ID použité pro rozpoznání tohoto uživatele když komunikuje s externím přihlašovacím systémem.',
|
||||||
'users_password_warning' => 'Vyplňujte pouze v případě, že chcete heslo změnit:',
|
'users_password_warning' => 'Vyplňujte pouze v případě, že chcete heslo změnit.',
|
||||||
'users_system_public' => 'Symbolizuje každého nepřihlášeného návštěvníka, který navštívil vaší aplikaci. Nelze ho použít k přihlášení ale je přiřazen automaticky nepřihlášeným.',
|
'users_system_public' => 'Symbolizuje každého nepřihlášeného návštěvníka, který navštívil aplikaci. Nelze ho použít k přihlášení ale je přiřazen automaticky nepřihlášeným.',
|
||||||
'users_delete' => 'Smazat uživatele',
|
'users_delete' => 'Smazat uživatele',
|
||||||
'users_delete_named' => 'Odstranit uživatele :userName',
|
'users_delete_named' => 'Odstranit uživatele :userName',
|
||||||
'users_delete_warning' => 'Uživatel \':userName\' bude úplně smazán ze systému.',
|
'users_delete_warning' => 'Uživatel \':userName\' bude zcela smazán ze systému.',
|
||||||
'users_delete_confirm' => 'Opravdu chcete tohoto uživatele smazat?',
|
'users_delete_confirm' => 'Opravdu chcete tohoto uživatele smazat?',
|
||||||
'users_delete_success' => 'Uživatel byl úspěšně smazán',
|
'users_delete_success' => 'Uživatel byl úspěšně smazán',
|
||||||
'users_edit' => 'Upravit uživatele',
|
'users_edit' => 'Upravit uživatele',
|
||||||
'users_edit_profile' => 'Upravit profil',
|
'users_edit_profile' => 'Upravit profil',
|
||||||
'users_edit_success' => 'Uživatel byl úspěšně aktualizován',
|
'users_edit_success' => 'Uživatel byl úspěšně aktualizován',
|
||||||
'users_avatar' => 'Obrázek uživatele',
|
'users_avatar' => 'Obrázek uživatele',
|
||||||
'users_avatar_desc' => 'Obrázek by měl být čtverec 256 pixelů široký. Bude oříznut do kruhu.',
|
'users_avatar_desc' => 'Vyberte obrázek, který bude reprezentovat tohoto uživatele. Měl by být přibližně 256px velký ve tvaru čtverce.',
|
||||||
'users_preferred_language' => 'Preferovaný jazyk',
|
'users_preferred_language' => 'Preferovaný jazyk',
|
||||||
'users_preferred_language_desc' => 'tato volba ovlivní pouze jazyk používaný v uživatelském rozhraní aplikace. Vobla nemá vliv na žádný uživateli vytvářený obsah.',
|
'users_preferred_language_desc' => 'Tato volba ovlivní pouze jazyk používaný v uživatelském rozhraní aplikace. Volba nemá vliv na žádný uživateli vytvářený obsah.',
|
||||||
'users_social_accounts' => 'Přidružené účty ze sociálních sítí',
|
'users_social_accounts' => 'Sociální účty',
|
||||||
'users_social_accounts_info' => 'Zde můžete přidat vaše účty ze sociálních sítí pro pohodlnější přihlašování. Zrušení přidružení účtů neznamená, že tato aplikace ztratí práva číst detaily z vašeho účtu. Zakázat této aplikaci přístup k detailům vašeho účtu musíte přímo ve svém profilu na dané sociální síti.',
|
'users_social_accounts_info' => 'Zde můžete přidat vaše účty ze sociálních sítí pro pohodlnější přihlašování. Odpojení účtů neznamená, že tato aplikace ztratí práva číst detaily z vašeho účtu. Zakázat této aplikaci přístup k detailům vašeho účtu musíte přímo ve svém profilu na dané sociální síti.',
|
||||||
'users_social_connect' => 'Přidružit účet',
|
'users_social_connect' => 'Připojit účet',
|
||||||
'users_social_disconnect' => 'Zrušit přidružení',
|
'users_social_disconnect' => 'Odpojit účet',
|
||||||
'users_social_connected' => 'Účet :socialAccount byl úspěšně přidružen k vašemu profilu.',
|
'users_social_connected' => 'Účet :socialAccount byl úspěšně připojen k vašemu profilu.',
|
||||||
'users_social_disconnected' => 'Přidružení účtu :socialAccount k vašemu profilu bylo úspěšně zrušeno.',
|
'users_social_disconnected' => 'Účet :socialAccount byl úspěšně odpojen od vašeho profilu.',
|
||||||
'users_api_tokens' => 'API Klíče',
|
'users_api_tokens' => 'API Tokeny',
|
||||||
'users_api_tokens_none' => 'Pro tohoto uživatele nebyly vytvořeny žádné API klíče',
|
'users_api_tokens_none' => 'Tento uživatel nemá vytvořené žádné API Tokeny',
|
||||||
'users_api_tokens_create' => 'Vytvořit Token',
|
'users_api_tokens_create' => 'Vytvořit Token',
|
||||||
'users_api_tokens_expires' => 'Vyprší',
|
'users_api_tokens_expires' => 'Vyprší',
|
||||||
'users_api_tokens_docs' => 'API Dokumentace',
|
'users_api_tokens_docs' => 'API Dokumentace',
|
||||||
|
@ -176,13 +176,13 @@ return [
|
||||||
// API Tokens
|
// API Tokens
|
||||||
'user_api_token_create' => 'Vytvořit API Klíč',
|
'user_api_token_create' => 'Vytvořit API Klíč',
|
||||||
'user_api_token_name' => 'Název',
|
'user_api_token_name' => 'Název',
|
||||||
'user_api_token_name_desc' => 'Zadejte srozumitelný název tokenu, který vám později může pomoci připomenout účet, za jakým jste token vytvářeli.',
|
'user_api_token_name_desc' => 'Zadejte srozumitelný název tokenu, který vám později může pomoci připomenout účel, za jakým jste token vytvářeli.',
|
||||||
'user_api_token_expiry' => 'Datum expirace',
|
'user_api_token_expiry' => 'Platný do',
|
||||||
'user_api_token_expiry_desc' => 'Zadejte datum, kdy platnost tokenu vyprší. Po tomto datu nebudou požadavky, které používají tento token, fungovat. Pokud ponecháte pole prázdné, bude tokenu nastavena platnost na dalších 100 let.',
|
'user_api_token_expiry_desc' => 'Zadejte datum, kdy platnost tokenu vyprší. Po tomto datu nebudou požadavky, které používají tento token, fungovat. Pokud ponecháte pole prázdné, bude tokenu nastavena platnost na dalších 100 let.',
|
||||||
'user_api_token_create_secret_message' => 'Ihned po vytvoření tokenu Vám bude vygenerován a zobrazen "Token ID" a "Token Secret". Upozorňujeme, že "Token Secret" bude možné zobrazit pouze jednou, ujistěte se, že si jej poznamenáte a uložíte na bezpečné místo před tím, než budete pokračovat dále.',
|
'user_api_token_create_secret_message' => 'Ihned po vytvoření tokenu Vám bude vygenerován a zobrazen "Token ID" a "Token Secret". Upozorňujeme, že "Token Secret" bude možné zobrazit pouze jednou, ujistěte se, že si jej poznamenáte a uložíte na bezpečné místo před tím, než budete pokračovat dále.',
|
||||||
'user_api_token_create_success' => 'API token úspěšně vytvořen',
|
'user_api_token_create_success' => 'API klíč úspěšně vytvořen',
|
||||||
'user_api_token_update_success' => 'API token úspěšně updaten',
|
'user_api_token_update_success' => 'API klíč úspěšně aktualizován',
|
||||||
'user_api_token' => 'API Token',
|
'user_api_token' => 'API Klíč',
|
||||||
'user_api_token_id' => 'Token ID',
|
'user_api_token_id' => 'Token ID',
|
||||||
'user_api_token_id_desc' => 'Toto je neupravitelný systémový identifikátor generovaný pro tento klíč, který musí být uveden v API requestu.',
|
'user_api_token_id_desc' => 'Toto je neupravitelný systémový identifikátor generovaný pro tento klíč, který musí být uveden v API requestu.',
|
||||||
'user_api_token_secret' => 'Token Secret',
|
'user_api_token_secret' => 'Token Secret',
|
||||||
|
|
|
@ -105,7 +105,7 @@ return [
|
||||||
// Custom validation lines
|
// Custom validation lines
|
||||||
'custom' => [
|
'custom' => [
|
||||||
'password-confirm' => [
|
'password-confirm' => [
|
||||||
'required_with' => 'Ověření hesla je vyžadováno',
|
'required_with' => 'Je nutné potvrdit heslo',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
|
@ -265,7 +265,7 @@ return [
|
||||||
'attachments_link_url' => 'Link zu einer Datei',
|
'attachments_link_url' => 'Link zu einer Datei',
|
||||||
'attachments_link_url_hint' => 'URL einer Seite oder Datei',
|
'attachments_link_url_hint' => 'URL einer Seite oder Datei',
|
||||||
'attach' => 'Hinzufügen',
|
'attach' => 'Hinzufügen',
|
||||||
'attachments_insert_link' => 'Add Attachment Link to Page',
|
'attachments_insert_link' => 'Link zum Anhang auf Seite einfügen',
|
||||||
'attachments_edit_file' => 'Datei bearbeiten',
|
'attachments_edit_file' => 'Datei bearbeiten',
|
||||||
'attachments_edit_file_name' => 'Dateiname',
|
'attachments_edit_file_name' => 'Dateiname',
|
||||||
'attachments_edit_drop_upload' => 'Ziehen Sie Dateien hierher, um diese hochzuladen und zu überschreiben',
|
'attachments_edit_drop_upload' => 'Ziehen Sie Dateien hierher, um diese hochzuladen und zu überschreiben',
|
||||||
|
|
|
@ -85,18 +85,18 @@ Hinweis: Benutzer können ihre E-Mail Adresse nach erfolgreicher Registrierung
|
||||||
'maint_send_test_email_mail_text' => 'Glückwunsch! Da Sie diese E-Mail Benachrichtigung erhalten haben, scheinen Ihre E-Mail-Einstellungen korrekt konfiguriert zu sein.',
|
'maint_send_test_email_mail_text' => 'Glückwunsch! Da Sie diese E-Mail Benachrichtigung erhalten haben, scheinen Ihre E-Mail-Einstellungen korrekt konfiguriert zu sein.',
|
||||||
|
|
||||||
// Audit Log
|
// Audit Log
|
||||||
'audit' => 'Audit Log',
|
'audit' => 'Audit-Protokoll',
|
||||||
'audit_desc' => 'This audit log displays a list of activities tracked in the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
|
'audit_desc' => 'Dieses Audit-Protokoll zeigt eine Liste der Aktivitäten an, welche vom System protokolliert werden. Im Gegensatz zu den anderen Aktivitätslisten im System, bei denen Berechtigungen angewendet werden, ist diese Liste ungefiltert.',
|
||||||
'audit_event_filter' => 'Event Filter',
|
'audit_event_filter' => 'Ereignisfilter',
|
||||||
'audit_event_filter_no_filter' => 'No Filter',
|
'audit_event_filter_no_filter' => 'Kein Filter',
|
||||||
'audit_deleted_item' => 'Deleted Item',
|
'audit_deleted_item' => 'Gelöschtes Objekt',
|
||||||
'audit_deleted_item_name' => 'Name: :name',
|
'audit_deleted_item_name' => 'Name: :name',
|
||||||
'audit_table_user' => 'User',
|
'audit_table_user' => 'Benutzer',
|
||||||
'audit_table_event' => 'Event',
|
'audit_table_event' => 'Ereignis',
|
||||||
'audit_table_item' => 'Related Item',
|
'audit_table_item' => 'Verwendetes Objekt',
|
||||||
'audit_table_date' => 'Activity Date',
|
'audit_table_date' => 'Aktivitätsdatum',
|
||||||
'audit_date_from' => 'Date Range From',
|
'audit_date_from' => 'Zeitraum von',
|
||||||
'audit_date_to' => 'Date Range To',
|
'audit_date_to' => 'Zeitraum bis',
|
||||||
|
|
||||||
// Role Settings
|
// Role Settings
|
||||||
'roles' => 'Rollen',
|
'roles' => 'Rollen',
|
||||||
|
@ -203,7 +203,7 @@ Hinweis: Benutzer können ihre E-Mail Adresse nach erfolgreicher Registrierung
|
||||||
'language_select' => [
|
'language_select' => [
|
||||||
'en' => 'English',
|
'en' => 'English',
|
||||||
'ar' => 'العربية',
|
'ar' => 'العربية',
|
||||||
'bg' => 'Bǎlgarski',
|
'bg' => 'Bulgarisch',
|
||||||
'cs' => 'Česky',
|
'cs' => 'Česky',
|
||||||
'da' => 'Dänisch',
|
'da' => 'Dänisch',
|
||||||
'de' => 'Deutsch (Sie)',
|
'de' => 'Deutsch (Sie)',
|
||||||
|
|
|
@ -265,7 +265,7 @@ return [
|
||||||
'attachments_link_url' => 'Link zu einer Datei',
|
'attachments_link_url' => 'Link zu einer Datei',
|
||||||
'attachments_link_url_hint' => 'URL einer Seite oder Datei',
|
'attachments_link_url_hint' => 'URL einer Seite oder Datei',
|
||||||
'attach' => 'Hinzufügen',
|
'attach' => 'Hinzufügen',
|
||||||
'attachments_insert_link' => 'Add Attachment Link to Page',
|
'attachments_insert_link' => 'Link zum Anhang auf Seite einfügen',
|
||||||
'attachments_edit_file' => 'Datei bearbeiten',
|
'attachments_edit_file' => 'Datei bearbeiten',
|
||||||
'attachments_edit_file_name' => 'Dateiname',
|
'attachments_edit_file_name' => 'Dateiname',
|
||||||
'attachments_edit_drop_upload' => 'Ziehe Dateien hierher, um diese hochzuladen und zu überschreiben',
|
'attachments_edit_drop_upload' => 'Ziehe Dateien hierher, um diese hochzuladen und zu überschreiben',
|
||||||
|
|
|
@ -85,18 +85,18 @@ Hinweis: Benutzer können ihre E-Mail Adresse nach erfolgreicher Registrierung
|
||||||
'maint_send_test_email_mail_text' => 'Glückwunsch! Da du diese E-Mail Benachrichtigung erhalten hast, scheinen deine E-Mail-Einstellungen korrekt konfiguriert zu sein.',
|
'maint_send_test_email_mail_text' => 'Glückwunsch! Da du diese E-Mail Benachrichtigung erhalten hast, scheinen deine E-Mail-Einstellungen korrekt konfiguriert zu sein.',
|
||||||
|
|
||||||
// Audit Log
|
// Audit Log
|
||||||
'audit' => 'Audit Log',
|
'audit' => 'Audit-Protokoll',
|
||||||
'audit_desc' => 'This audit log displays a list of activities tracked in the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
|
'audit_desc' => 'Dieses Audit-Protokoll zeigt eine Liste der Aktivitäten an, welche vom System protokolliert werden. Im Gegensatz zu den anderen Aktivitätslisten im System, bei denen Berechtigungen angewendet werden, ist diese Liste ungefiltert.',
|
||||||
'audit_event_filter' => 'Event Filter',
|
'audit_event_filter' => 'Ereignisfilter',
|
||||||
'audit_event_filter_no_filter' => 'No Filter',
|
'audit_event_filter_no_filter' => 'Kein Filter',
|
||||||
'audit_deleted_item' => 'Deleted Item',
|
'audit_deleted_item' => 'Gelöschtes Objekt',
|
||||||
'audit_deleted_item_name' => 'Name: :name',
|
'audit_deleted_item_name' => 'Name: :name',
|
||||||
'audit_table_user' => 'User',
|
'audit_table_user' => 'Benutzer',
|
||||||
'audit_table_event' => 'Event',
|
'audit_table_event' => 'Ereignis',
|
||||||
'audit_table_item' => 'Related Item',
|
'audit_table_item' => 'Verwendetes Objekt',
|
||||||
'audit_table_date' => 'Activity Date',
|
'audit_table_date' => 'Aktivitätsdatum',
|
||||||
'audit_date_from' => 'Date Range From',
|
'audit_date_from' => 'Zeitraum von',
|
||||||
'audit_date_to' => 'Date Range To',
|
'audit_date_to' => 'Zeitraum bis',
|
||||||
|
|
||||||
// Role Settings
|
// Role Settings
|
||||||
'roles' => 'Rollen',
|
'roles' => 'Rollen',
|
||||||
|
@ -203,7 +203,7 @@ Hinweis: Benutzer können ihre E-Mail Adresse nach erfolgreicher Registrierung
|
||||||
'language_select' => [
|
'language_select' => [
|
||||||
'en' => 'English',
|
'en' => 'English',
|
||||||
'ar' => 'العربية',
|
'ar' => 'العربية',
|
||||||
'bg' => 'Bǎlgarski',
|
'bg' => 'Bulgarisch',
|
||||||
'cs' => 'Česky',
|
'cs' => 'Česky',
|
||||||
'da' => 'Dänisch',
|
'da' => 'Dänisch',
|
||||||
'de' => 'Deutsch (Sie)',
|
'de' => 'Deutsch (Sie)',
|
||||||
|
|
|
@ -265,7 +265,7 @@ return [
|
||||||
'attachments_link_url' => 'Enlace a archivo',
|
'attachments_link_url' => 'Enlace a archivo',
|
||||||
'attachments_link_url_hint' => 'URL del sitio o archivo',
|
'attachments_link_url_hint' => 'URL del sitio o archivo',
|
||||||
'attach' => 'Adjuntar',
|
'attach' => 'Adjuntar',
|
||||||
'attachments_insert_link' => 'Add Attachment Link to Page',
|
'attachments_insert_link' => 'Añadir enlace al adjunto en la página',
|
||||||
'attachments_edit_file' => 'Editar archivo',
|
'attachments_edit_file' => 'Editar archivo',
|
||||||
'attachments_edit_file_name' => 'Nombre del archivo',
|
'attachments_edit_file_name' => 'Nombre del archivo',
|
||||||
'attachments_edit_drop_upload' => 'Arrastre los archivos o presione aquí para subir o sobreescribir',
|
'attachments_edit_drop_upload' => 'Arrastre los archivos o presione aquí para subir o sobreescribir',
|
||||||
|
|
|
@ -265,7 +265,7 @@ return [
|
||||||
'attachments_link_url' => 'Ссылка на файл',
|
'attachments_link_url' => 'Ссылка на файл',
|
||||||
'attachments_link_url_hint' => 'URL-адрес сайта или файла',
|
'attachments_link_url_hint' => 'URL-адрес сайта или файла',
|
||||||
'attach' => 'Прикрепить',
|
'attach' => 'Прикрепить',
|
||||||
'attachments_insert_link' => 'Add Attachment Link to Page',
|
'attachments_insert_link' => 'Добавить ссылку на вложение',
|
||||||
'attachments_edit_file' => 'Редактировать файл',
|
'attachments_edit_file' => 'Редактировать файл',
|
||||||
'attachments_edit_file_name' => 'Название файла',
|
'attachments_edit_file_name' => 'Название файла',
|
||||||
'attachments_edit_drop_upload' => 'Перетащите файлы или нажмите здесь, чтобы загрузить и перезаписать',
|
'attachments_edit_drop_upload' => 'Перетащите файлы или нажмите здесь, чтобы загрузить и перезаписать',
|
||||||
|
|
|
@ -82,18 +82,18 @@ return [
|
||||||
'maint_send_test_email_mail_text' => 'Поздравляем! Поскольку вы получили это письмо, электронная почта настроена правильно.',
|
'maint_send_test_email_mail_text' => 'Поздравляем! Поскольку вы получили это письмо, электронная почта настроена правильно.',
|
||||||
|
|
||||||
// Audit Log
|
// Audit Log
|
||||||
'audit' => 'Audit Log',
|
'audit' => 'Журнал аудита',
|
||||||
'audit_desc' => 'This audit log displays a list of activities tracked in the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
|
'audit_desc' => 'Этот журнал аудита отображает список действий, отслеживаемых в системе. Этот список не отфильтрован в отличие от аналогичных списков действий в системе, где применяются фильтры разрешений.',
|
||||||
'audit_event_filter' => 'Event Filter',
|
'audit_event_filter' => 'Фильтр событий',
|
||||||
'audit_event_filter_no_filter' => 'No Filter',
|
'audit_event_filter_no_filter' => 'Без фильтра',
|
||||||
'audit_deleted_item' => 'Deleted Item',
|
'audit_deleted_item' => 'Удаленный элемент',
|
||||||
'audit_deleted_item_name' => 'Name: :name',
|
'audit_deleted_item_name' => 'Имя: :name',
|
||||||
'audit_table_user' => 'User',
|
'audit_table_user' => 'Пользователь',
|
||||||
'audit_table_event' => 'Event',
|
'audit_table_event' => 'Событие',
|
||||||
'audit_table_item' => 'Related Item',
|
'audit_table_item' => 'Связанный элемент',
|
||||||
'audit_table_date' => 'Activity Date',
|
'audit_table_date' => 'Дата действия',
|
||||||
'audit_date_from' => 'Date Range From',
|
'audit_date_from' => 'Диапазон даты от',
|
||||||
'audit_date_to' => 'Date Range To',
|
'audit_date_to' => 'Диапазон даты до',
|
||||||
|
|
||||||
// Role Settings
|
// Role Settings
|
||||||
'roles' => 'Роли',
|
'roles' => 'Роли',
|
||||||
|
|
|
@ -265,7 +265,7 @@ return [
|
||||||
'attachments_link_url' => '链接到文件',
|
'attachments_link_url' => '链接到文件',
|
||||||
'attachments_link_url_hint' => '网站或文件的网址',
|
'attachments_link_url_hint' => '网站或文件的网址',
|
||||||
'attach' => '附加',
|
'attach' => '附加',
|
||||||
'attachments_insert_link' => 'Add Attachment Link to Page',
|
'attachments_insert_link' => '将附加链接添加到页面',
|
||||||
'attachments_edit_file' => '编辑文件',
|
'attachments_edit_file' => '编辑文件',
|
||||||
'attachments_edit_file_name' => '文件名',
|
'attachments_edit_file_name' => '文件名',
|
||||||
'attachments_edit_drop_upload' => '删除文件或点击这里上传并覆盖',
|
'attachments_edit_drop_upload' => '删除文件或点击这里上传并覆盖',
|
||||||
|
|
|
@ -82,16 +82,16 @@ return [
|
||||||
'maint_send_test_email_mail_text' => '恭喜!您收到了此邮件通知,你的电子邮件设置看起来配置正确。',
|
'maint_send_test_email_mail_text' => '恭喜!您收到了此邮件通知,你的电子邮件设置看起来配置正确。',
|
||||||
|
|
||||||
// Audit Log
|
// Audit Log
|
||||||
'audit' => 'Audit Log',
|
'audit' => '审核日志',
|
||||||
'audit_desc' => 'This audit log displays a list of activities tracked in the system. This list is unfiltered unlike similar activity lists in the system where permission filters are applied.',
|
'audit_desc' => '该审核日志显示系统中跟踪的活动列表。与系统中应用了权限过滤器的类似活动列表不同,这个表是未经过滤的。',
|
||||||
'audit_event_filter' => 'Event Filter',
|
'audit_event_filter' => '事件过滤器',
|
||||||
'audit_event_filter_no_filter' => 'No Filter',
|
'audit_event_filter_no_filter' => '无过滤器',
|
||||||
'audit_deleted_item' => 'Deleted Item',
|
'audit_deleted_item' => '被删除的项目',
|
||||||
'audit_deleted_item_name' => 'Name: :name',
|
'audit_deleted_item_name' => '姓名: :name',
|
||||||
'audit_table_user' => 'User',
|
'audit_table_user' => '用户',
|
||||||
'audit_table_event' => 'Event',
|
'audit_table_event' => '事件',
|
||||||
'audit_table_item' => 'Related Item',
|
'audit_table_item' => '相关项目',
|
||||||
'audit_table_date' => 'Activity Date',
|
'audit_table_date' => '活动日期',
|
||||||
'audit_date_from' => 'Date Range From',
|
'audit_date_from' => 'Date Range From',
|
||||||
'audit_date_to' => 'Date Range To',
|
'audit_date_to' => 'Date Range To',
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ return [
|
||||||
'language_select' => [
|
'language_select' => [
|
||||||
'en' => 'English',
|
'en' => 'English',
|
||||||
'ar' => 'العربية',
|
'ar' => 'العربية',
|
||||||
'bg' => 'Bǎlgarski',
|
'bg' => '保加利亚语',
|
||||||
'cs' => 'Česky',
|
'cs' => 'Česky',
|
||||||
'da' => '丹麦',
|
'da' => '丹麦',
|
||||||
'de' => 'Deutsch (Sie)',
|
'de' => 'Deutsch (Sie)',
|
||||||
|
|
|
@ -52,6 +52,10 @@
|
||||||
&.warning:before {
|
&.warning:before {
|
||||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiNiNjUzMWMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4gICAgPHBhdGggZD0iTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHoiLz48L3N2Zz4=");
|
background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiNiNjUzMWMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4gICAgPHBhdGggZD0iTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHoiLz48L3N2Zz4=");
|
||||||
}
|
}
|
||||||
|
a {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2,8 +2,10 @@
|
||||||
|
|
||||||
.CodeMirror {
|
.CodeMirror {
|
||||||
/* Set height, width, borders, and global font properties here */
|
/* Set height, width, borders, and global font properties here */
|
||||||
|
font-family: monospace;
|
||||||
height: 300px;
|
height: 300px;
|
||||||
color: black;
|
color: black;
|
||||||
|
direction: ltr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* PADDING */
|
/* PADDING */
|
||||||
|
@ -11,7 +13,8 @@
|
||||||
.CodeMirror-lines {
|
.CodeMirror-lines {
|
||||||
padding: 4px 0; /* Vertical padding around content */
|
padding: 4px 0; /* Vertical padding around content */
|
||||||
}
|
}
|
||||||
.CodeMirror pre {
|
.CodeMirror pre.CodeMirror-line,
|
||||||
|
.CodeMirror pre.CodeMirror-line-like {
|
||||||
padding: 0 4px; /* Horizontal padding of content */
|
padding: 0 4px; /* Horizontal padding of content */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,7 +60,12 @@
|
||||||
.cm-fat-cursor div.CodeMirror-cursors {
|
.cm-fat-cursor div.CodeMirror-cursors {
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
.cm-fat-cursor-mark {
|
||||||
|
background-color: rgba(20, 255, 20, 0.5);
|
||||||
|
-webkit-animation: blink 1.06s steps(1) infinite;
|
||||||
|
-moz-animation: blink 1.06s steps(1) infinite;
|
||||||
|
animation: blink 1.06s steps(1) infinite;
|
||||||
|
}
|
||||||
.cm-animate-fat-cursor {
|
.cm-animate-fat-cursor {
|
||||||
width: auto;
|
width: auto;
|
||||||
border: 0;
|
border: 0;
|
||||||
|
@ -89,7 +97,7 @@
|
||||||
|
|
||||||
.CodeMirror-rulers {
|
.CodeMirror-rulers {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0; right: 0; top: -50px; bottom: -20px;
|
left: 0; right: 0; top: -50px; bottom: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
.CodeMirror-ruler {
|
.CodeMirror-ruler {
|
||||||
|
@ -118,7 +126,7 @@
|
||||||
.cm-s-default .cm-property,
|
.cm-s-default .cm-property,
|
||||||
.cm-s-default .cm-operator {}
|
.cm-s-default .cm-operator {}
|
||||||
.cm-s-default .cm-variable-2 {color: #05a;}
|
.cm-s-default .cm-variable-2 {color: #05a;}
|
||||||
.cm-s-default .cm-variable-3 {color: #085;}
|
.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}
|
||||||
.cm-s-default .cm-comment {color: #a50;}
|
.cm-s-default .cm-comment {color: #a50;}
|
||||||
.cm-s-default .cm-string {color: #a11;}
|
.cm-s-default .cm-string {color: #a11;}
|
||||||
.cm-s-default .cm-string-2 {color: #f50;}
|
.cm-s-default .cm-string-2 {color: #f50;}
|
||||||
|
@ -138,8 +146,8 @@
|
||||||
|
|
||||||
/* Default styles for common addons */
|
/* Default styles for common addons */
|
||||||
|
|
||||||
div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
|
div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}
|
||||||
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
|
||||||
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
|
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
|
||||||
.CodeMirror-activeline-background {background: #e8f2ff;}
|
.CodeMirror-activeline-background {background: #e8f2ff;}
|
||||||
|
|
||||||
|
@ -156,17 +164,17 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||||
|
|
||||||
.CodeMirror-scroll {
|
.CodeMirror-scroll {
|
||||||
overflow: scroll !important; /* Things will break if this is overridden */
|
overflow: scroll !important; /* Things will break if this is overridden */
|
||||||
/* 30px is the magic margin used to hide the element's real scrollbars */
|
/* 50px is the magic margin used to hide the element's real scrollbars */
|
||||||
/* See overflow: hidden in .CodeMirror */
|
/* See overflow: hidden in .CodeMirror */
|
||||||
margin-bottom: -30px; margin-right: -30px;
|
margin-bottom: -50px; margin-right: -50px;
|
||||||
padding-bottom: 30px;
|
padding-bottom: 50px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
outline: none; /* Prevent dragging from highlighting the element */
|
outline: none; /* Prevent dragging from highlighting the element */
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
.CodeMirror-sizer {
|
.CodeMirror-sizer {
|
||||||
position: relative;
|
position: relative;
|
||||||
border-right: 30px solid transparent;
|
border-right: 50px solid transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The fake, visible scrollbars. Used to force redraw during scrolling
|
/* The fake, visible scrollbars. Used to force redraw during scrolling
|
||||||
|
@ -176,6 +184,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 6;
|
z-index: 6;
|
||||||
display: none;
|
display: none;
|
||||||
|
outline: none;
|
||||||
}
|
}
|
||||||
.CodeMirror-vscrollbar {
|
.CodeMirror-vscrollbar {
|
||||||
right: 0; top: 0;
|
right: 0; top: 0;
|
||||||
|
@ -204,7 +213,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
margin-bottom: -30px;
|
margin-bottom: -50px;
|
||||||
}
|
}
|
||||||
.CodeMirror-gutter-wrapper {
|
.CodeMirror-gutter-wrapper {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -229,11 +238,13 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||||
cursor: text;
|
cursor: text;
|
||||||
min-height: 1px; /* prevents collapsing before first draw */
|
min-height: 1px; /* prevents collapsing before first draw */
|
||||||
}
|
}
|
||||||
.CodeMirror pre {
|
.CodeMirror pre.CodeMirror-line,
|
||||||
|
.CodeMirror pre.CodeMirror-line-like {
|
||||||
/* Reset some styles that the rest of the page might have set */
|
/* Reset some styles that the rest of the page might have set */
|
||||||
-moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
|
-moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
|
||||||
border-width: 0;
|
border-width: 0;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
|
font-family: inherit;
|
||||||
font-size: inherit;
|
font-size: inherit;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
white-space: pre;
|
white-space: pre;
|
||||||
|
@ -246,12 +257,9 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||||
-webkit-tap-highlight-color: transparent;
|
-webkit-tap-highlight-color: transparent;
|
||||||
-webkit-font-variant-ligatures: contextual;
|
-webkit-font-variant-ligatures: contextual;
|
||||||
font-variant-ligatures: contextual;
|
font-variant-ligatures: contextual;
|
||||||
&:after {
|
|
||||||
content: none;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.CodeMirror-wrap pre {
|
.CodeMirror-wrap pre.CodeMirror-line,
|
||||||
|
.CodeMirror-wrap pre.CodeMirror-line-like {
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
word-break: normal;
|
word-break: normal;
|
||||||
|
@ -266,7 +274,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||||
.CodeMirror-linewidget {
|
.CodeMirror-linewidget {
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
overflow: auto;
|
padding: 0.1px; /* Force widget margins to stay inside of the container */
|
||||||
}
|
}
|
||||||
|
|
||||||
.CodeMirror-widget {}
|
.CodeMirror-widget {}
|
||||||
|
@ -321,8 +329,8 @@ div.CodeMirror-dragcursors {
|
||||||
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
|
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
|
||||||
|
|
||||||
.cm-searching {
|
.cm-searching {
|
||||||
background: #ffa;
|
background-color: #ffa;
|
||||||
background: rgba(255, 255, 0, .4);
|
background-color: rgba(255, 255, 0, .4);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Used to force a border model for a node */
|
/* Used to force a border model for a node */
|
||||||
|
@ -341,53 +349,6 @@ div.CodeMirror-dragcursors {
|
||||||
/* Help users use markselection to safely style text background */
|
/* Help users use markselection to safely style text background */
|
||||||
span.CodeMirror-selectedtext { background: none; }
|
span.CodeMirror-selectedtext { background: none; }
|
||||||
|
|
||||||
/**
|
|
||||||
* Codemirror Default theme
|
|
||||||
*/
|
|
||||||
|
|
||||||
.cm-s-default .cm-header {color: blue;}
|
|
||||||
.cm-s-default .cm-quote {color: #090;}
|
|
||||||
.cm-negative {color: #d44;}
|
|
||||||
.cm-positive {color: #292;}
|
|
||||||
.cm-header, .cm-strong {font-weight: bold;}
|
|
||||||
.cm-em {font-style: italic;}
|
|
||||||
.cm-link {text-decoration: underline;}
|
|
||||||
.cm-strikethrough {text-decoration: line-through;}
|
|
||||||
|
|
||||||
.cm-s-default .cm-keyword {color: #708;}
|
|
||||||
.cm-s-default .cm-atom {color: #219;}
|
|
||||||
.cm-s-default .cm-number {color: #164;}
|
|
||||||
.cm-s-default .cm-def {color: #00f;}
|
|
||||||
.cm-s-default .cm-variable,
|
|
||||||
.cm-s-default .cm-punctuation,
|
|
||||||
.cm-s-default .cm-property,
|
|
||||||
.cm-s-default .cm-operator {}
|
|
||||||
.cm-s-default .cm-variable-2 {color: #05a;}
|
|
||||||
.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}
|
|
||||||
.cm-s-default .cm-comment {color: #a50;}
|
|
||||||
.cm-s-default .cm-string {color: #a11;}
|
|
||||||
.cm-s-default .cm-string-2 {color: #f50;}
|
|
||||||
.cm-s-default .cm-meta {color: #555;}
|
|
||||||
.cm-s-default .cm-qualifier {color: #555;}
|
|
||||||
.cm-s-default .cm-builtin {color: #30a;}
|
|
||||||
.cm-s-default .cm-bracket {color: #997;}
|
|
||||||
.cm-s-default .cm-tag {color: #170;}
|
|
||||||
.cm-s-default .cm-attribute {color: #00c;}
|
|
||||||
.cm-s-default .cm-hr {color: #999;}
|
|
||||||
.cm-s-default .cm-link {color: #00c;}
|
|
||||||
|
|
||||||
.cm-s-default .cm-error {color: #f00;}
|
|
||||||
.cm-invalidchar {color: #f00;}
|
|
||||||
|
|
||||||
.CodeMirror-composing { border-bottom: 2px solid; }
|
|
||||||
|
|
||||||
/* Default styles for common addons */
|
|
||||||
|
|
||||||
div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}
|
|
||||||
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
|
|
||||||
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
|
|
||||||
.CodeMirror-activeline-background {background: #e8f2ff;}
|
|
||||||
|
|
||||||
/* STOP */
|
/* STOP */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -461,6 +422,9 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
|
||||||
border: 1px solid;
|
border: 1px solid;
|
||||||
@include lightDark(border-color, #DDD, #111);
|
@include lightDark(border-color, #DDD, #111);
|
||||||
}
|
}
|
||||||
|
.CodeMirror pre::after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
html.dark-mode .CodeMirror pre {
|
html.dark-mode .CodeMirror pre {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,7 +117,7 @@
|
||||||
body {
|
body {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
padding-inline-start: 16px;
|
padding-inline-start: 16px;
|
||||||
margin-inline-end: 16px;
|
padding-inline-end: 16px;
|
||||||
}
|
}
|
||||||
[drawio-diagram]:hover {
|
[drawio-diagram]:hover {
|
||||||
outline: 2px solid var(--color-primary);
|
outline: 2px solid var(--color-primary);
|
||||||
|
|
|
@ -124,6 +124,9 @@ body.flexbox {
|
||||||
.flex-container-row {
|
.flex-container-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
&.v-center {
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.flex-container-column {
|
.flex-container-column {
|
||||||
|
@ -131,9 +134,17 @@ body.flexbox {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.flex-container-column.wrap, .flex-container-row.wrap {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
.flex {
|
.flex {
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
&.fit-content {
|
||||||
|
flex-basis: auto;
|
||||||
|
flex-grow: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.justify-flex-end {
|
.justify-flex-end {
|
||||||
|
|
|
@ -35,7 +35,7 @@ $text: -apple-system, BlinkMacSystemFont,
|
||||||
"Segoe UI", "Oxygen", "Ubuntu", "Roboto", "Cantarell",
|
"Segoe UI", "Oxygen", "Ubuntu", "Roboto", "Cantarell",
|
||||||
"Fira Sans", "Droid Sans", "Helvetica Neue",
|
"Fira Sans", "Droid Sans", "Helvetica Neue",
|
||||||
sans-serif;
|
sans-serif;
|
||||||
$mono: "Lucida Console", "DejaVu Sans Mono", "Ubunto Mono", Monaco, monospace;
|
$mono: "Lucida Console", "DejaVu Sans Mono", "Ubuntu Mono", Monaco, monospace;
|
||||||
$heading: $text;
|
$heading: $text;
|
||||||
$fs-m: 14px;
|
$fs-m: 14px;
|
||||||
$fs-s: 12px;
|
$fs-s: 12px;
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
<div class="editor-toolbar">
|
<div class="editor-toolbar">
|
||||||
<div class="editor-toolbar-label">{{ trans('entities.pages_md_preview') }}</div>
|
<div class="editor-toolbar-label">{{ trans('entities.pages_md_preview') }}</div>
|
||||||
</div>
|
</div>
|
||||||
<iframe srcdoc="" class="markdown-display" sandbox="allow-same-origin"></iframe>
|
<iframe src="about:blank" class="markdown-display" sandbox="allow-same-origin"></iframe>
|
||||||
</div>
|
</div>
|
||||||
<input type="hidden" name="html"/>
|
<input type="hidden" name="html"/>
|
||||||
|
|
||||||
|
|
|
@ -3,16 +3,7 @@
|
||||||
@section('body')
|
@section('body')
|
||||||
<div class="container small">
|
<div class="container small">
|
||||||
|
|
||||||
<div class="grid left-focus v-center no-row-gap">
|
@include('settings.navbar-with-version', ['selected' => 'settings'])
|
||||||
<div class="py-m">
|
|
||||||
@include('settings.navbar', ['selected' => 'settings'])
|
|
||||||
</div>
|
|
||||||
<div class="text-right p-m">
|
|
||||||
<a target="_blank" rel="noopener noreferrer" href="https://github.com/BookStackApp/BookStack/releases">
|
|
||||||
BookStack @if(strpos($version, 'v') !== 0) version @endif {{ $version }}
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="card content-wrap auto-height">
|
<div class="card content-wrap auto-height">
|
||||||
<h2 id="features" class="list-heading">{{ trans('settings.app_features_security') }}</h2>
|
<h2 id="features" class="list-heading">{{ trans('settings.app_features_security') }}</h2>
|
||||||
|
|
|
@ -3,16 +3,7 @@
|
||||||
@section('body')
|
@section('body')
|
||||||
<div class="container small">
|
<div class="container small">
|
||||||
|
|
||||||
<div class="grid left-focus v-center no-row-gap">
|
@include('settings.navbar-with-version', ['selected' => 'maintenance'])
|
||||||
<div class="py-m">
|
|
||||||
@include('settings.navbar', ['selected' => 'maintenance'])
|
|
||||||
</div>
|
|
||||||
<div class="text-right p-m">
|
|
||||||
<a target="_blank" rel="noopener noreferrer" href="https://github.com/BookStackApp/BookStack/releases">
|
|
||||||
BookStack @if(strpos($version, 'v') !== 0) version @endif {{ $version }}
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="image-cleanup" class="card content-wrap auto-height">
|
<div id="image-cleanup" class="card content-wrap auto-height">
|
||||||
<h2 class="list-heading">{{ trans('settings.maint_image_cleanup') }}</h2>
|
<h2 class="list-heading">{{ trans('settings.maint_image_cleanup') }}</h2>
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
{{--
|
||||||
|
$selected - String name of the selected tab
|
||||||
|
$version - Version of bookstack to display
|
||||||
|
--}}
|
||||||
|
<div class="flex-container-row v-center wrap">
|
||||||
|
<div class="py-m flex fit-content">
|
||||||
|
@include('settings.navbar', ['selected' => $selected])
|
||||||
|
</div>
|
||||||
|
<div class="flex"></div>
|
||||||
|
<div class="text-right p-m flex fit-content">
|
||||||
|
<a target="_blank" rel="noopener noreferrer" href="https://github.com/BookStackApp/BookStack/releases">
|
||||||
|
BookStack @if(strpos($version, 'v') !== 0) version @endif {{ $version }}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -319,6 +319,33 @@ class Saml2Test extends TestCase
|
||||||
$homeGet->assertRedirect('/register/confirm/awaiting');
|
$homeGet->assertRedirect('/register/confirm/awaiting');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_login_where_existing_non_saml_user_shows_warning()
|
||||||
|
{
|
||||||
|
$this->post('/saml2/login');
|
||||||
|
config()->set(['saml2.onelogin.strict' => false]);
|
||||||
|
|
||||||
|
// Make the user pre-existing in DB with different auth_id
|
||||||
|
User::query()->forceCreate([
|
||||||
|
'email' => 'user@example.com',
|
||||||
|
'external_auth_id' => 'old_system_user_id',
|
||||||
|
'email_confirmed' => false,
|
||||||
|
'name' => 'Barry Scott'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->withPost(['SAMLResponse' => $this->acsPostData], function () {
|
||||||
|
$acsPost = $this->post('/saml2/acs');
|
||||||
|
$acsPost->assertRedirect('/login');
|
||||||
|
$this->assertFalse($this->isAuthenticated());
|
||||||
|
$this->assertDatabaseHas('users', [
|
||||||
|
'email' => 'user@example.com',
|
||||||
|
'external_auth_id' => 'old_system_user_id',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$loginGet = $this->get('/login');
|
||||||
|
$loginGet->assertSee("A user with the email user@example.com already exists but with different credentials");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
protected function withGet(array $options, callable $callback)
|
protected function withGet(array $options, callable $callback)
|
||||||
{
|
{
|
||||||
return $this->withGlobal($_GET, $options, $callback);
|
return $this->withGlobal($_GET, $options, $callback);
|
||||||
|
|
|
@ -71,6 +71,25 @@ class PageContentTest extends TestCase
|
||||||
$pageResp->assertSee($content);
|
$pageResp->assertSee($content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_page_includes_rendered_on_book_export()
|
||||||
|
{
|
||||||
|
$page = Page::query()->first();
|
||||||
|
$secondPage = Page::query()
|
||||||
|
->where('book_id', '!=', $page->book_id)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
$content = '<p id="bkmrk-meow">my cat is awesome and scratchy</p>';
|
||||||
|
$secondPage->html = $content;
|
||||||
|
$secondPage->save();
|
||||||
|
|
||||||
|
$page->html = "{{@{$secondPage->id}#bkmrk-meow}}";
|
||||||
|
$page->save();
|
||||||
|
|
||||||
|
$this->asEditor();
|
||||||
|
$htmlContent = $this->get($page->book->getUrl('/export/html'));
|
||||||
|
$htmlContent->assertSee('my cat is awesome and scratchy');
|
||||||
|
}
|
||||||
|
|
||||||
public function test_page_content_scripts_removed_by_default()
|
public function test_page_content_scripts_removed_by_default()
|
||||||
{
|
{
|
||||||
$this->asEditor();
|
$this->asEditor();
|
||||||
|
|
Loading…
Reference in New Issue