]> BookStack Code Mirror - bookstack/blob - resources/views/settings/customization.blade.php
Added ability to control app icon (favicon) via settings
[bookstack] / resources / views / settings / customization.blade.php
1 @extends('settings.layout')
2
3 @section('card')
4     <h1 id="customization" class="list-heading">{{ trans('settings.app_customization') }}</h1>
5     <form action="{{ url("/settings/customization") }}" method="POST" enctype="multipart/form-data">
6         {!! csrf_field() !!}
7         <input type="hidden" name="section" value="customization">
8
9         <div class="setting-list">
10
11             <div class="grid half gap-xl">
12                 <div>
13                     <label for="setting-app-name" class="setting-list-label">{{ trans('settings.app_name') }}</label>
14                     <p class="small">{{ trans('settings.app_name_desc') }}</p>
15                 </div>
16                 <div class="pt-xs">
17                     <input type="text" value="{{ setting('app-name', 'BookStack') }}" name="setting-app-name" id="setting-app-name">
18                     @include('form.toggle-switch', [
19                         'name' => 'setting-app-name-header',
20                         'value' => setting('app-name-header'),
21                         'label' => trans('settings.app_name_header'),
22                     ])
23                 </div>
24             </div>
25
26             <div class="grid half gap-xl items-center">
27                 <div>
28                     <label class="setting-list-label" for="setting-app-editor">{{ trans('settings.app_default_editor') }}</label>
29                     <p class="small">{{ trans('settings.app_default_editor_desc') }}</p>
30                 </div>
31                 <div>
32                     <select name="setting-app-editor" id="setting-app-editor">
33                         <option @if(setting('app-editor') === 'wysiwyg') selected @endif value="wysiwyg">WYSIWYG</option>
34                         <option @if(setting('app-editor') === 'markdown') selected @endif value="markdown">Markdown</option>
35                     </select>
36                 </div>
37             </div>
38
39             <div class="grid half gap-xl">
40                 <div>
41                     <label class="setting-list-label">{{ trans('settings.app_logo') }}</label>
42                     <p class="small">{!! trans('settings.app_logo_desc') !!}</p>
43                 </div>
44                 <div class="pt-xs">
45                     @include('form.image-picker', [
46                              'removeName' => 'setting-app-logo',
47                              'removeValue' => 'none',
48                              'defaultImage' => url('/logo.png'),
49                              'currentImage' => setting('app-logo'),
50                              'name' => 'app_logo',
51                              'imageClass' => 'logo-image',
52                          ])
53                 </div>
54             </div>
55
56             <div class="grid half gap-xl">
57                 <div>
58                     <label class="setting-list-label">{{ 'Application Icon' }}</label>
59                     <p class="small">
60                         This icon is used for browser tabs and shortcut icons.
61                         This should be a 256px square PNG image.
62                     </p>
63                 </div>
64                 <div class="pt-xs">
65                     @include('form.image-picker', [
66                              'removeValue' => 'none',
67                              'defaultImage' => url('/icon.png'),
68                              'currentImage' => setting('app-icon'),
69                              'name' => 'app_icon',
70                              'imageClass' => 'logo-image',
71                          ])
72                 </div>
73             </div>
74
75             <!-- Primary Color -->
76             <div class="grid half gap-xl">
77                 <div>
78                     <label class="setting-list-label">{{ trans('settings.app_primary_color') }}</label>
79                     <p class="small">{!! trans('settings.app_primary_color_desc') !!}</p>
80                 </div>
81                 <div component="setting-app-color-picker setting-color-picker"
82                      option:setting-color-picker:default="#206ea7"
83                      option:setting-color-picker:current="{{ setting('app-color') }}"
84                      class="text-m-right pt-xs">
85                     <input refs="setting-color-picker@input setting-app-color-picker@input" type="color" value="{{ setting('app-color') }}" name="setting-app-color" id="setting-app-color" placeholder="#206ea7">
86                     <input refs="setting-app-color-picker@light-input" type="hidden" value="{{ setting('app-color-light') }}" name="setting-app-color-light" id="setting-app-color-light">
87                     <div class="pr-s">
88                         <button refs="setting-color-picker@default-button" type="button" class="text-button text-muted mt-s">{{ trans('common.default') }}</button>
89                         <span class="sep">|</span>
90                         <button refs="setting-color-picker@reset-button" type="button" class="text-button text-muted mt-s">{{ trans('common.reset') }}</button>
91                     </div>
92
93                 </div>
94             </div>
95
96             <!-- Entity Color -->
97             <div class="pb-l">
98                 <div>
99                     <label class="setting-list-label">{{ trans('settings.content_colors') }}</label>
100                     <p class="small">{!! trans('settings.content_colors_desc') !!}</p>
101                 </div>
102                 <div class="grid half pt-m">
103                     <div>
104                         @include('settings.parts.setting-entity-color-picker', ['type' => 'bookshelf'])
105                         @include('settings.parts.setting-entity-color-picker', ['type' => 'book'])
106                         @include('settings.parts.setting-entity-color-picker', ['type' => 'chapter'])
107                     </div>
108                     <div>
109                         @include('settings.parts.setting-entity-color-picker', ['type' => 'page'])
110                         @include('settings.parts.setting-entity-color-picker', ['type' => 'page-draft'])
111                     </div>
112                 </div>
113             </div>
114
115             <div component="setting-homepage-control" id="homepage-control" class="grid half gap-xl items-center">
116                 <div>
117                     <label for="setting-app-homepage-type" class="setting-list-label">{{ trans('settings.app_homepage') }}</label>
118                     <p class="small">{{ trans('settings.app_homepage_desc') }}</p>
119                 </div>
120                 <div>
121                     <select refs="setting-homepage-control@type-control"
122                             name="setting-app-homepage-type"
123                             id="setting-app-homepage-type">
124                         <option @if(setting('app-homepage-type') === 'default') selected @endif value="default">{{ trans('common.default') }}</option>
125                         <option @if(setting('app-homepage-type') === 'books') selected @endif value="books">{{ trans('entities.books') }}</option>
126                         <option @if(setting('app-homepage-type') === 'bookshelves') selected @endif value="bookshelves">{{ trans('entities.shelves') }}</option>
127                         <option @if(setting('app-homepage-type') === 'page') selected @endif value="page">{{ trans('entities.pages_specific') }}</option>
128                     </select>
129
130                     <div refs="setting-homepage-control@page-picker-container" style="display: none;" class="mt-m">
131                         @include('settings.parts.page-picker', ['name' => 'setting-app-homepage', 'placeholder' => trans('settings.app_homepage_select'), 'value' => setting('app-homepage')])
132                     </div>
133                 </div>
134             </div>
135
136             <div>
137                 <label for="setting-app-privacy-link" class="setting-list-label">{{ trans('settings.app_footer_links') }}</label>
138                 <p class="small mb-m">{{ trans('settings.app_footer_links_desc') }}</p>
139                 @include('settings.parts.footer-links', ['name' => 'setting-app-footer-links', 'value' => setting('app-footer-links', [])])
140             </div>
141
142
143             <div>
144                 <label for="setting-app-custom-head" class="setting-list-label">{{ trans('settings.app_custom_html') }}</label>
145                 <p class="small">{{ trans('settings.app_custom_html_desc') }}</p>
146                 <div class="mt-m">
147                     <textarea component="code-textarea"
148                               option:code-textarea:mode="html"
149                               name="setting-app-custom-head"
150                               id="setting-app-custom-head"
151                               class="simple-code-input">{{ setting('app-custom-head', '') }}</textarea>
152                 </div>
153                 <p class="small text-right">{{ trans('settings.app_custom_html_disabled_notice') }}</p>
154             </div>
155
156
157         </div>
158
159         <div class="form-group text-right">
160             <button type="submit" class="button">{{ trans('settings.settings_save') }}</button>
161         </div>
162     </form>
163 @endsection
164
165 @section('after-content')
166     @include('entities.selector-popup', ['entityTypes' => 'page'])
167 @endsection