mirror of
https://github.com/wallabag/wallabag.git
synced 2025-06-27 16:36:00 +00:00
Extract Config controller
This commit is contained in:
parent
9da9e6b004
commit
a06da68e72
5 changed files with 24 additions and 58 deletions
16
assets/controllers/config_controller.js
Normal file
16
assets/controllers/config_controller.js
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
import { Controller } from '@hotwired/stimulus';
|
||||||
|
|
||||||
|
export default class extends Controller {
|
||||||
|
static targets = ['previewArticle', 'previewContent', 'font', 'fontSize', 'lineHeight', 'maxWidth'];
|
||||||
|
|
||||||
|
connect() {
|
||||||
|
this.updatePreview();
|
||||||
|
}
|
||||||
|
|
||||||
|
updatePreview() {
|
||||||
|
this.previewArticleTarget.style.maxWidth = `${this.maxWidthTarget.value}em`;
|
||||||
|
this.previewContentTarget.style.fontFamily = this.fontTarget.value;
|
||||||
|
this.previewContentTarget.style.fontSize = `${this.fontSizeTarget.value}em`;
|
||||||
|
this.previewContentTarget.style.lineHeight = `${this.lineHeightTarget.value}em`;
|
||||||
|
}
|
||||||
|
}
|
|
@ -17,11 +17,6 @@ import '@fontsource/eb-garamond';
|
||||||
import '@fontsource/montserrat';
|
import '@fontsource/montserrat';
|
||||||
import '@fontsource/oswald';
|
import '@fontsource/oswald';
|
||||||
|
|
||||||
/* Tools */
|
|
||||||
import {
|
|
||||||
initPreviewText,
|
|
||||||
} from './js/tools';
|
|
||||||
|
|
||||||
/* Import shortcuts */
|
/* Import shortcuts */
|
||||||
import './js/shortcuts/main';
|
import './js/shortcuts/main';
|
||||||
import './js/shortcuts/entry';
|
import './js/shortcuts/entry';
|
||||||
|
@ -182,7 +177,6 @@ const stickyNav = () => {
|
||||||
|
|
||||||
$(document).ready(() => {
|
$(document).ready(() => {
|
||||||
stickyNav();
|
stickyNav();
|
||||||
initPreviewText();
|
|
||||||
|
|
||||||
const toggleNav = (toShow, toFocus) => {
|
const toggleNav = (toShow, toFocus) => {
|
||||||
$('.nav-panel-actions').hide();
|
$('.nav-panel-actions').hide();
|
||||||
|
@ -202,29 +196,6 @@ $(document).ready(() => {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#config_fontsize').on('input', () => {
|
|
||||||
const value = $('#config_fontsize').val();
|
|
||||||
const css = `${value}em`;
|
|
||||||
$('#preview-content').css('font-size', css);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#config_font').on('change', () => {
|
|
||||||
const value = $('#config_font').val();
|
|
||||||
$('#preview-content').css('font-family', value);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#config_lineHeight').on('input', () => {
|
|
||||||
const value = $('#config_lineHeight').val();
|
|
||||||
const css = `${value}em`;
|
|
||||||
$('#preview-content').css('line-height', css);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#config_maxWidth').on('input', () => {
|
|
||||||
const value = $('#config_maxWidth').val();
|
|
||||||
const css = `${value}em`;
|
|
||||||
$('#preview-article').css('max-width', css);
|
|
||||||
});
|
|
||||||
|
|
||||||
const materialAddForm = $('.nav-panel-add');
|
const materialAddForm = $('.nav-panel-add');
|
||||||
materialAddForm.on('submit', () => {
|
materialAddForm.on('submit', () => {
|
||||||
materialAddForm.addClass('disabled');
|
materialAddForm.addClass('disabled');
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
import $ from 'jquery';
|
|
||||||
|
|
||||||
function initPreviewText() {
|
|
||||||
// no display if preview_text not available
|
|
||||||
if ($('div').is('#preview-article')) {
|
|
||||||
const defaultFontFamily = $('#config_font').val();
|
|
||||||
const defaultFontSize = $('#config_fontsize').val();
|
|
||||||
const defaultLineHeight = $('#config_lineHeight').val();
|
|
||||||
const defaultMaxWidth = $('#config_maxWidth').val();
|
|
||||||
const previewContent = $('#preview-content');
|
|
||||||
|
|
||||||
previewContent.css('font-family', defaultFontFamily);
|
|
||||||
previewContent.css('font-size', `${defaultFontSize}em`);
|
|
||||||
previewContent.css('line-height', `${defaultLineHeight}em`);
|
|
||||||
$('#preview-article').css('max-width', `${defaultMaxWidth}em`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export {
|
|
||||||
initPreviewText,
|
|
||||||
};
|
|
|
@ -102,7 +102,7 @@
|
||||||
"build:dev": "encore dev",
|
"build:dev": "encore dev",
|
||||||
"watch": "encore dev --watch",
|
"watch": "encore dev --watch",
|
||||||
"build:prod": "encore production --progress",
|
"build:prod": "encore production --progress",
|
||||||
"lint:js": "eslint assets/*.js assets/js/*.js assets/js/**/*.js assets/controllers/*.js",
|
"lint:js": "eslint assets/*.js assets/js/**/*.js assets/controllers/*.js",
|
||||||
"lint:scss": "stylelint assets/scss/*.scss assets/scss/**/*.scss"
|
"lint:scss": "stylelint assets/scss/*.scss assets/scss/**/*.scss"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="set1" class="col s12">
|
<div id="set1" class="col s12" data-controller="config">
|
||||||
{{ form_start(form.config) }}
|
{{ form_start(form.config) }}
|
||||||
{{ form_errors(form.config) }}
|
{{ form_errors(form.config) }}
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="input-field col s5" data-controller="materialize--form-select">
|
<div class="input-field col s5" data-controller="materialize--form-select">
|
||||||
{{ form_errors(form.config.font) }}
|
{{ form_errors(form.config.font) }}
|
||||||
{{ form_widget(form.config.font) }}
|
{{ form_widget(form.config.font, {attr: {'data-config-target': 'font', 'data-action': 'config#updatePreview'}}) }}
|
||||||
{{ form_label(form.config.font) }}
|
{{ form_label(form.config.font) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="input-field col s1">
|
<div class="input-field col s1">
|
||||||
|
@ -132,7 +132,7 @@
|
||||||
|
|
||||||
<div class="input-field col s5">
|
<div class="input-field col s5">
|
||||||
{{ form_errors(form.config.lineHeight) }}
|
{{ form_errors(form.config.lineHeight) }}
|
||||||
{{ form_widget(form.config.lineHeight) }}
|
{{ form_widget(form.config.lineHeight, {attr: {'data-config-target': 'lineHeight', 'data-action': 'config#updatePreview'}}) }}
|
||||||
{{ form_label(form.config.lineHeight, null, {'label_attr': {'class': 'settings-range-label'}}) }}
|
{{ form_label(form.config.lineHeight, null, {'label_attr': {'class': 'settings-range-label'}}) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="input-field col s1">
|
<div class="input-field col s1">
|
||||||
|
@ -145,7 +145,7 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="input-field col s5">
|
<div class="input-field col s5">
|
||||||
{{ form_errors(form.config.fontsize) }}
|
{{ form_errors(form.config.fontsize) }}
|
||||||
{{ form_widget(form.config.fontsize) }}
|
{{ form_widget(form.config.fontsize, {attr: {'data-config-target': 'fontSize', 'data-action': 'config#updatePreview'}}) }}
|
||||||
{{ form_label(form.config.fontsize, null, {'label_attr': {'class': 'settings-range-label'}}) }}
|
{{ form_label(form.config.fontsize, null, {'label_attr': {'class': 'settings-range-label'}}) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="input-field col s1">
|
<div class="input-field col s1">
|
||||||
|
@ -156,7 +156,7 @@
|
||||||
|
|
||||||
<div class="input-field col s5">
|
<div class="input-field col s5">
|
||||||
{{ form_errors(form.config.maxWidth) }}
|
{{ form_errors(form.config.maxWidth) }}
|
||||||
{{ form_widget(form.config.maxWidth) }}
|
{{ form_widget(form.config.maxWidth, {attr: {'data-config-target': 'maxWidth', 'data-action': 'config#updatePreview'}}) }}
|
||||||
{{ form_label(form.config.maxWidth, null, {'label_attr': {'class': 'settings-range-label'}}) }}
|
{{ form_label(form.config.maxWidth, null, {'label_attr': {'class': 'settings-range-label'}}) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="input-field col s1">
|
<div class="input-field col s1">
|
||||||
|
@ -168,8 +168,8 @@
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="input-field col s12">
|
<div class="input-field col s12">
|
||||||
<div id="preview-article">
|
<div id="preview-article" data-config-target="previewArticle">
|
||||||
<article id="preview-content">
|
<article id="preview-content" data-config-target="previewContent">
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||||
</article>
|
</article>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue