1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-08-07 23:03:00 +03:00

Merge branch 'master' into update_japanese_translation

This commit is contained in:
msaus
2018-03-28 11:58:14 +09:00
committed by GitHub
47 changed files with 374 additions and 144 deletions

View File

@@ -12,7 +12,9 @@ const props = ['placeholder', 'uploadUrl', 'uploadedTo'];
function mounted() {
let container = this.$el;
let _this = this;
new DropZone(container, {
this._dz = new DropZone(container, {
addRemoveLinks: true,
dictRemoveFile: trans('components.image_upload_remove'),
url: function() {
return _this.uploadUrl;
},
@@ -35,26 +37,33 @@ function mounted() {
dz.on('error', function (file, errorMessage, xhr) {
_this.$emit('error', {file, errorMessage, xhr});
console.log(errorMessage);
console.log(xhr);
function setMessage(message) {
$(file.previewElement).find('[data-dz-errormessage]').text(message);
}
if (xhr.status === 413) setMessage(trans('errors.server_upload_limit'));
if (errorMessage.file) setMessage(errorMessage.file[0]);
if (xhr && xhr.status === 413) setMessage(trans('errors.server_upload_limit'));
else if (errorMessage.file) setMessage(errorMessage.file);
});
}
});
}
function data() {
return {}
return {};
}
const methods = {
onClose: function () {
this._dz.removeAllFiles(true);
}
};
module.exports = {
template,
props,
mounted,
data,
};
methods
};

View File

@@ -43,6 +43,8 @@ const methods = {
hide() {
this.showing = false;
this.selectedImage = false;
this.$refs.dropzone.onClose();
this.$el.children[0].components.overlay.hide();
},
@@ -175,4 +177,4 @@ module.exports = {
data,
computed,
components: {dropzone},
};
};

View File

@@ -224,15 +224,15 @@
padding: 0;
align-items: center;
text-align: center;
justify-content: center;
width: 28px;
padding-left: $-xs;
padding-right: $-xs;
&:hover {
background-color: #EEE;
}
i {
flex: 1;
padding: 0;
.svg-icon {
margin-right: 0px;
}
}
> div .outline input {
@@ -258,4 +258,4 @@
background-color: #F8F8F8;
padding: $-m;
border: 1px solid #DDD;
}
}

View File

@@ -158,6 +158,7 @@ $button-border-radius: 2px;
left: $-m;
top: $-s - 2px;
width: 24px;
height: 24px;
}
padding: $-s $-m;
padding-bottom: $-s - 2px;

View File

@@ -23,6 +23,7 @@
svg {
fill: #EEEEEE;
width: 4em;
height: 4em;
padding-right: $-m;
}
span {
@@ -211,6 +212,7 @@ body.flexbox-support #entity-selector-wrap .popup-body .form-group {
margin-left: 1px;
padding: $-m $-l;
overflow-y: auto;
overflow-x: hidden;
border-left: 1px solid #DDD;
.dropzone-container {
margin-top: $-m;
@@ -315,8 +317,7 @@ body.flexbox-support #entity-selector-wrap .popup-body .form-group {
.dz-preview.dz-file-preview .dz-image {
border-radius: 4px;
background: #999;
background: linear-gradient(to bottom, #eee, #ddd);
background: #e9e9e9;
}
.dz-preview.dz-file-preview .dz-details {
@@ -332,11 +333,12 @@ body.flexbox-support #entity-selector-wrap .popup-body .form-group {
}
.dz-preview .dz-remove {
font-size: 14px;
font-size: 13px;
text-align: center;
display: block;
cursor: pointer;
border: none;
margin-top: 3px;
}
.dz-preview .dz-remove:hover {
@@ -385,7 +387,7 @@ body.flexbox-support #entity-selector-wrap .popup-body .form-group {
border: 1px solid transparent;
}
.dz-preview .dz-details .dz-filename span, .dz-preview .dz-details .dz-size span {
.dz-preview .dz-details .dz-filename span {
background-color: rgba(255, 255, 255, 0.4);
padding: 0 0.4em;
border-radius: 3px;
@@ -421,13 +423,13 @@ body.flexbox-support #entity-selector-wrap .popup-body .form-group {
.dz-preview .dz-success-mark, .dz-preview .dz-error-mark {
pointer-events: none;
opacity: 0;
z-index: 500;
z-index: 1001;
position: absolute;
display: block;
top: 50%;
left: 50%;
margin-left: -27px;
margin-top: -27px;
margin-top: -35px;
}
.dz-preview .dz-success-mark svg, .dz-preview .dz-error-mark svg {
@@ -482,9 +484,13 @@ body.flexbox-support #entity-selector-wrap .popup-body .form-group {
display: block;
}
.dz-preview.dz-error:hover .dz-error-message {
opacity: 1;
pointer-events: auto;
.dz-preview.dz-error {
.dz-image, .dz-details {
&:hover ~ .dz-error-message {
opacity: 1;
pointer-events: auto;
}
}
}
.dz-preview .dz-error-message {
@@ -496,7 +502,7 @@ body.flexbox-support #entity-selector-wrap .popup-body .form-group {
opacity: 0;
transition: opacity 0.3s ease;
border-radius: 4px;
font-size: 11.5px;
font-size: 12px;
line-height: 1.2;
top: 88px;
left: -26px;
@@ -597,4 +603,4 @@ body.flexbox-support #entity-selector-wrap .popup-body .form-group {
.text-muted {
color: #999;
}
}
}

View File

@@ -210,6 +210,9 @@
flex: 1;
padding-top: 0;
}
div[toolbox-tab-content] .padded.files {
overflow-x: hidden;
}
h4 {
font-size: 24px;
margin: $-m 0 0 0;

View File

@@ -424,6 +424,7 @@ i {
.svg-icon {
width: 1em;
height: 1em;
display: inline-block;
position: relative;
bottom: -0.105em;

View File

@@ -118,6 +118,7 @@ $btt-size: 40px;
fill: #FFF;
svg {
width: $btt-size / 1.5;
height: $btt-size / 1.5;
margin-right: 4px;
}
width: $btt-size;

View File

@@ -21,6 +21,7 @@ return [
'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
@@ -29,4 +30,4 @@ return [
'code_language' => 'Code Language',
'code_content' => 'Code Content',
'code_save' => 'Save Code',
];
];

View File

@@ -35,6 +35,7 @@ return [
'cannot_get_image_from_url' => 'Cannot get image from :url',
'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.',
'image_upload_error' => 'An error occurred uploading the image',
'image_upload_type_error' => 'The image type being uploaded is invalid',
@@ -78,4 +79,4 @@ return [
'error_occurred' => 'An Error Occurred',
'app_down' => ':appName is down right now',
'back_soon' => 'It will be back up soon.',
];
];

View File

@@ -37,4 +37,7 @@ return [
'book_sort' => 'a réordonné le livre',
'book_sort_notification' => 'Livre réordonné avec succès',
// Other
'commented_on' => 'a commenté'
];

View File

@@ -18,6 +18,8 @@ return [
*/
'sign_up' => "S'inscrire",
'log_in' => 'Se connecter',
'log_in_with' => 'Se connecter avec :socialDriver',
'sign_up_with' => 'S\'inscrire avec :socialDriver',
'logout' => 'Se déconnecter',
'name' => 'Nom',

View File

@@ -10,6 +10,7 @@ return [
'save' => 'Enregistrer',
'continue' => 'Continuer',
'select' => 'Sélectionner',
'more' => 'Montrer plus',
/**
* Form Labels
@@ -29,11 +30,13 @@ return [
'edit' => 'Editer',
'sort' => 'Trier',
'move' => 'Déplacer',
'reply' => 'Répondre',
'delete' => 'Supprimer',
'search' => 'Chercher',
'search_clear' => 'Réinitialiser la recherche',
'reset' => 'Réinitialiser',
'remove' => 'Enlever',
'add' => 'Ajouter',
/**
@@ -45,6 +48,9 @@ return [
'back_to_top' => 'Retour en haut',
'toggle_details' => 'Afficher les détails',
'toggle_thumbnails' => 'Afficher les vignettes',
'details' => 'Détails',
'grid_view' => 'Vue en grille',
'list_view' => 'Vue en liste',
/**
* Header

View File

@@ -20,5 +20,13 @@ return [
'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_delete_success' => 'Image supprimée avec succès',
/**
* Code editor
*/
'code_editor' => 'Editer le code',
'code_language' => 'Language du code',
'code_content' => 'Contenu du code',
'code_save' => 'Enregistrer le code',
];

View File

@@ -14,6 +14,7 @@ return [
'recent_activity' => 'Activité récente',
'create_now' => 'En créer un maintenant',
'revisions' => 'Révisions',
'meta_revision' => 'Révision #:revisionCount',
'meta_created' => 'Créé :timeLength',
'meta_created_name' => 'Créé :timeLength par :user',
'meta_updated' => 'Mis à jour :timeLength',
@@ -43,19 +44,39 @@ return [
* Search
*/
'search_results' => 'Résultats de recherche',
'search_total_results_found' => ':count résultats trouvés|:count résultats trouvés au total',
'search_clear' => 'Réinitialiser la recherche',
'search_no_pages' => 'Aucune page correspondant à cette recherche',
'search_for_term' => 'recherche pour :term',
'search_more' => 'Plus de résultats',
'search_filters' => 'Filtres de recherche',
'search_content_type' => 'Type de contenu',
'search_exact_matches' => 'Correspondances exactes',
'search_tags' => 'Recherche par tags',
'search_viewed_by_me' => 'Vu par moi',
'search_not_viewed_by_me' => 'Non vu par moi',
'search_permissions_set' => 'Ensemble d\'autorisations',
'search_created_by_me' => 'Créé par moi',
'search_updated_by_me' => 'Mis à jour par moi',
'search_updated_before' => 'Mis à jour avant',
'search_updated_after' => 'Mis à jour après',
'search_created_before' => 'Créé avant',
'search_created_after' => 'Créé après',
'search_set_date' => 'Choisir la date',
'search_update' => 'Actualiser la recherche',
/**
* Books
*/
'book' => 'Livre',
'books' => 'Livres',
'x_books' => ':count livre|:count livres',
'books_empty' => 'Aucun livre n\'a été créé',
'books_popular' => 'Livres populaires',
'books_recent' => 'Livres récents',
'books_new' => 'Nouveaux livres',
'books_popular_empty' => 'Les livres les plus populaires apparaîtront ici.',
'books_new_empty' => 'Les livres les plus récents apparaitront ici.',
'books_create' => 'Créer un nouveau livre',
'books_delete' => 'Supprimer un livre',
'books_delete_named' => 'Supprimer le livre :bookName',
@@ -85,6 +106,7 @@ return [
*/
'chapter' => 'Chapitre',
'chapters' => 'Chapitres',
'x_chapters' => ':count chapitre|:count chapitres',
'chapters_popular' => 'Chapitres populaires',
'chapters_new' => 'Nouveau chapitre',
'chapters_create' => 'Créer un nouveau chapitre',
@@ -102,6 +124,7 @@ return [
'chapters_empty' => 'Il n\'y a pas de page dans ce chapitre actuellement.',
'chapters_permissions_active' => 'Permissions du chapitre activées',
'chapters_permissions_success' => 'Permissions du chapitre mises à jour',
'chapters_search_this' => 'Rechercher dans ce chapitre',
/**
* Pages
@@ -139,16 +162,19 @@ return [
'pages_md_preview' => 'Prévisualisation',
'pages_md_insert_image' => 'Insérer une image',
'pages_md_insert_link' => 'Insérer un lien',
'pages_md_insert_drawing' => 'Insérer un dessin',
'pages_not_in_chapter' => 'La page n\'est pas dans un chapitre',
'pages_move' => 'Déplacer la page',
'pages_move_success' => 'Page déplacée à ":parentName"',
'pages_permissions' => 'Permissions de la page',
'pages_permissions_success' => 'Permissions de la page mises à jour',
'pages_revision' => 'Révision',
'pages_revisions' => 'Révisions de la page',
'pages_revisions_named' => 'Révisions pour :pageName',
'pages_revision_named' => 'Révision pour :pageName',
'pages_revisions_created_by' => 'Créé par',
'pages_revisions_date' => 'Date de révision',
'pages_revisions_number' => '#',
'pages_revisions_changelog' => 'Journal des changements',
'pages_revisions_changes' => 'Changements',
'pages_revisions_current' => 'Version courante',
@@ -219,6 +245,18 @@ return [
*/
'comment' => 'Commentaire',
'comments' => 'Commentaires',
'comment_add' => 'Ajouter un commentaire',
'comment_placeholder' => 'Entrez vos commentaires ici',
'comment_count' => '{0} Pas de commentaires|{1} 1 Commentaire|[2,*] :count Commentaires',
'comment_save' => 'Enregistrer le commentaire',
'comment_saving' => 'Enregistrement du commentaire...',
'comment_deleting' => 'Suppression du commentaire...',
'comment_new' => 'Nouveau commentaire',
'comment_created' => 'commenté :createDiff',
'comment_updated' => 'Mis à jour :updateDiff par :username',
'comment_deleted_success' => 'Commentaire supprimé',
'comment_created_success' => 'Commentaire ajouté',
'comment_updated_success' => 'Commentaire mis à jour',
'comment_delete_confirm' => 'Etes-vous sûr de vouloir supprimer ce commentaire?',
'comment_in_reply_to' => 'En réponse à :commentId',
];

View File

@@ -31,6 +31,9 @@ return [
'app_logo_desc' => 'Cette image doit faire 43px de hauteur. <br>Les images plus larges seront réduites.',
'app_primary_color' => 'Couleur principale de l\'application',
'app_primary_color_desc' => 'Cela devrait être une valeur hexadécimale. <br>Laisser vide pour rétablir la couleur par défaut.',
'app_homepage' => 'Page d\'accueil de l\'application',
'app_homepage_desc' => 'Choisissez une page à afficher sur la page d\'accueil au lieu de la vue par défaut. Les permissions sont ignorées pour les pages sélectionnées.',
'app_homepage_default' => 'Page d\'accueil par défaut sélectionnée',
'app_disable_comments' => 'Désactiver les commentaires',
'app_disable_comments_desc' => 'Désactive les commentaires sur toutes les pages de l\'application. Les commentaires existants ne sont pas affichés.',
/**

View File

@@ -5,7 +5,7 @@
<div class="breadcrumbs">
<a href="{{ baseUrl('/books') }}" class="text-button">@icon('book'){{ trans('entities.books') }}</a>
<span class="sep">&raquo;</span>
<a href="{{ baseUrl('/books/create') }}" class="text-button">@icon('add'){{ trans('entities.books_create') }}</a>
<a href="{{ baseUrl('/create-book') }}" class="text-button">@icon('add'){{ trans('entities.books_create') }}</a>
</div>
</div>
@stop

View File

@@ -18,7 +18,7 @@
<div class="col-xs-6 faded">
<div class="action-buttons">
@if($currentUser->can('book-create-all'))
<a href="{{ baseUrl("/books/create") }}" class="text-pos text-button">@icon('add'){{ trans('entities.books_create') }}</a>
<a href="{{ baseUrl("/create-book") }}" class="text-pos text-button">@icon('add'){{ trans('entities.books_create') }}</a>
@endif
</div>
</div>
@@ -78,7 +78,7 @@
@else
<p class="text-muted">{{ trans('entities.books_empty') }}</p>
@if(userCan('books-create-all'))
<a href="{{ baseUrl("/books/create") }}" class="text-pos">@icon('edit'){{ trans('entities.create_one_now') }}</a>
<a href="{{ baseUrl("/create-book") }}" class="text-pos">@icon('edit'){{ trans('entities.create_one_now') }}</a>
@endif
@endif
</div>

View File

@@ -11,7 +11,7 @@
<div class="container" ng-non-bindable>
<p>&nbsp;</p>
<div class="card">
<h3><@icon('lock') {{ trans('entities.books_permissions') }}</h3>
<h3>@icon('lock') {{ trans('entities.books_permissions') }}</h3>
<div class="body">
@include('form/restriction-form', ['model' => $book])
</div>

View File

@@ -15,10 +15,10 @@
</ul>
</span>
@if(userCan('page-create', $book))
<a href="{{ $book->getUrl('/page/create') }}" class="text-pos text-button">@icon('add'){{ trans('entities.pages_new') }}</a>
<a href="{{ $book->getUrl('/create-page') }}" class="text-pos text-button">@icon('add'){{ trans('entities.pages_new') }}</a>
@endif
@if(userCan('chapter-create', $book))
<a href="{{ $book->getUrl('/chapter/create') }}" class="text-pos text-button">@icon('add'){{ trans('entities.chapters_new') }}</a>
<a href="{{ $book->getUrl('/create-chapter') }}" class="text-pos text-button">@icon('add'){{ trans('entities.chapters_new') }}</a>
@endif
@if(userCan('book-update', $book) || userCan('restrictions-manage', $book) || userCan('book-delete', $book))
<div dropdown class="dropdown-container">
@@ -111,13 +111,13 @@
<div class="well">
<p class="text-muted italic">{{ trans('entities.books_empty_contents') }}</p>
@if(userCan('page-create', $book))
<a href="{{ $book->getUrl('/page/create') }}" class="button outline page">@icon('page'){{ trans('entities.books_empty_create_page') }}</a>
<a href="{{ $book->getUrl('/create-page') }}" class="button outline page">@icon('page'){{ trans('entities.books_empty_create_page') }}</a>
@endif
@if(userCan('page-create', $book) && userCan('chapter-create', $book))
&nbsp;&nbsp;<em class="text-muted">-{{ trans('entities.books_empty_or') }}-</em>&nbsp;&nbsp;&nbsp;
@endif
@if(userCan('chapter-create', $book))
<a href="{{ $book->getUrl('/chapter/create') }}" class="button outline chapter">@icon('chapter'){{ trans('entities.books_empty_add_chapter') }}</a>
<a href="{{ $book->getUrl('/create-chapter') }}" class="button outline chapter">@icon('chapter'){{ trans('entities.books_empty_add_chapter') }}</a>
@endif
</div>
@endif

View File

@@ -3,9 +3,9 @@
@section('toolbar')
<div class="col-sm-12 faded">
<div class="breadcrumbs">
<a href="{{$book->getUrl()}}" class="text-book text-button">@icon('book'){{ $book->getShortName() }}</a>
<a href="{{ $book->getUrl() }}" class="text-book text-button">@icon('book'){{ $book->getShortName() }}</a>
<span class="sep">&raquo;</span>
<a href="{{ baseUrl('/books/chapter/create') }}" class="text-button">@icon('add'){{ trans('entities.chapters_create') }}</a>
<a href="{{ $book->getUrl('/create-chapter')}}" class="text-button">@icon('add'){{ trans('entities.chapters_create') }}</a>
</div>
</div>
@stop
@@ -16,7 +16,7 @@
<div class="card">
<h3>@icon('add') {{ trans('entities.chapters_create') }}</h3>
<div class="body">
<form action="{{ $book->getUrl('/chapter/create') }}" method="POST">
<form action="{{ $book->getUrl('/create-chapter') }}" method="POST">
@include('chapters/form')
</form>
</div>

View File

@@ -12,6 +12,6 @@
</div>
<div class="form-group text-right">
<a href="{{ back()->getTargetUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
<a href="{{ isset($chapter) ? $chapter->getUrl() : $book->getUrl() }}" class="button outline">{{ trans('common.cancel') }}</a>
<button type="submit" class="button pos">{{ trans('entities.chapters_save') }}</button>
</div>

View File

@@ -1,10 +1,10 @@
<div id="image-manager" image-type="{{ $imageType }}" uploaded-to="{{ $uploaded_to or 0 }}">
<div overlay v-cloak>
<div overlay v-cloak @click="hide()">
<div class="popup-body" @click.stop="">
<div class="popup-header primary-background">
<div class="popup-title">{{ trans('components.image_select') }}</div>
<button class="overlay-close neg corner-button button">x</button>
<button class="overlay-close neg corner-button button" @click="hide()">x</button>
</div>
<div class="flex-fill image-manager-body">
@@ -79,7 +79,7 @@
</div>
<dropzone placeholder="{{ trans('components.image_dropzone') }}" :upload-url="uploadUrl" :uploaded-to="uploadedTo" @success="uploadSuccess"></dropzone>
<dropzone ref="dropzone" placeholder="{{ trans('components.image_dropzone') }}" :upload-url="uploadUrl" :uploaded-to="uploadedTo" @success="uploadSuccess"></dropzone>
</div>
</div>

View File

@@ -4,7 +4,7 @@
<div class="container small" ng-non-bindable>
<h1>{{ trans('entities.pages_new') }}</h1>
<form action="{{ $parent->getUrl('/page/create/guest') }}" method="POST">
<form action="{{ $parent->getUrl('/create-guest-page') }}" method="POST">
{!! csrf_field() !!}

View File

@@ -14,7 +14,6 @@
<link rel="stylesheet" media="print" href="{{ versioned_asset('dist/print-styles.css') }}">
<!-- Scripts -->
<script src="{{ baseUrl("/libs/jquery/jquery.min.js?version=2.1.4") }}"></script>
@include('partials/custom-styles')
<!-- Custom user content -->

View File

@@ -193,7 +193,7 @@
@section('body')
<div class="container small">
<div class="container small" v-pre>
<input type="hidden" name="searchTerm" value="{{$searchTerm}}">
<h1>{{ trans('entities.search_results') }}</h1>

View File

@@ -65,7 +65,7 @@
<div class="row">
@foreach($activeSocialDrivers as $driver => $enabled)
<div class="col-sm-4 col-xs-6 text-center">
<div>@icon('auth/'. $driver, ['style' => 'width: 56px;'])</div>
<div>@icon('auth/'. $driver, ['style' => 'width: 56px;height: 56px;'])</div>
<div>
@if($user->hasSocialAccount($driver))
<a href="{{ baseUrl("/login/service/{$driver}/detach") }}" class="button neg">{{ trans('settings.users_social_disconnect') }}</a>