From b39bad584bf5071a934d616cb27c6eac124a4a2c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Sep 2021 06:06:32 +0000 Subject: [PATCH 1/3] Bump bootstrap from 4.6.0 to 5.1.1 Bumps [bootstrap](https://github.com/twbs/bootstrap) from 4.6.0 to 5.1.1. - [Release notes](https://github.com/twbs/bootstrap/releases) - [Commits](https://github.com/twbs/bootstrap/compare/v4.6.0...v5.1.1) --- updated-dependencies: - dependency-name: bootstrap dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 33 ++++++++++++++++++++++++--------- package.json | 2 +- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5fa346c861..fbd04be518 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "@material/top-app-bar": "^12.0", "ajv": "^8.6.3", "animate.css": "^4.1.1", - "bootstrap": "^4.6.0", + "bootstrap": "^5.1.1", "clipboard": "^2.0.8", "external-svg-loader": "^1.3.4", "glob-all": "^3.2.1", @@ -2428,6 +2428,16 @@ "node": ">=4" } }, + "node_modules/@popperjs/core": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.10.1.tgz", + "integrity": "sha512-HnUhk1Sy9IuKrxEMdIRCxpIqPw6BFsbYSEUO9p/hNw5sMld/+3OLMWQP80F8/db9qsv3qUjs7ZR5bS/R+iinXw==", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@stylelint/postcss-css-in-js": { "version": "0.37.2", "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", @@ -3581,16 +3591,15 @@ "dev": true }, "node_modules/bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.1.tgz", + "integrity": "sha512-/jUa4sSuDZWlDLQ1gwQQR8uoYSvLJzDd8m5o6bPKh3asLAMYVZKdRCjb1joUd5WXf0WwCNzd2EjwQQhupou0dA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/bootstrap" }, "peerDependencies": { - "jquery": "1.9.1 - 3", - "popper.js": "^1.16.1" + "@popperjs/core": "^2.10.1" } }, "node_modules/brace-expansion": { @@ -20165,6 +20174,12 @@ } } }, + "@popperjs/core": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.10.1.tgz", + "integrity": "sha512-HnUhk1Sy9IuKrxEMdIRCxpIqPw6BFsbYSEUO9p/hNw5sMld/+3OLMWQP80F8/db9qsv3qUjs7ZR5bS/R+iinXw==", + "peer": true + }, "@stylelint/postcss-css-in-js": { "version": "0.37.2", "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", @@ -21120,9 +21135,9 @@ "dev": true }, "bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.1.tgz", + "integrity": "sha512-/jUa4sSuDZWlDLQ1gwQQR8uoYSvLJzDd8m5o6bPKh3asLAMYVZKdRCjb1joUd5WXf0WwCNzd2EjwQQhupou0dA==", "requires": {} }, "brace-expansion": { diff --git a/package.json b/package.json index 5c92aecb99..05c10c1a9a 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "@material/top-app-bar": "^12.0", "ajv": "^8.6.3", "animate.css": "^4.1.1", - "bootstrap": "^4.6.0", + "bootstrap": "^5.1.1", "clipboard": "^2.0.8", "external-svg-loader": "^1.3.4", "glob-all": "^3.2.1", From 26c0562af9235f580c21ae2884d6234a90ceba47 Mon Sep 17 00:00:00 2001 From: Daniel Metzner Date: Fri, 24 Sep 2021 17:50:24 +0200 Subject: [PATCH 2/3] migrate to v5 --- assets/js/base.js | 5 +- assets/js/components/project_list.js | 31 ++--------- assets/js/custom/Program.js | 13 +++-- assets/js/notifications_overview.js | 6 +-- assets/js/project.js | 1 - assets/styles/base/bootstrap_overwrite.scss | 20 ++++++- .../catblocks_code_view.scss} | 1 + assets/styles/components/code_statistics.scss | 12 +++++ assets/styles/components/featured_slider.scss | 4 +- assets/styles/components/project_list.scss | 6 ++- assets/styles/custom/medialib.scss | 6 +++ .../styles/custom/multi_column_article.scss | 2 +- assets/styles/custom/profile.scss | 2 +- assets/styles/custom/program.scss | 2 +- assets/styles/layout/header.scss | 12 ++--- assets/styles/layout/sidebar.scss | 2 +- .../Controller/Web/StudioController.php | 18 +++---- templates/Admin/logs.html.twig | 4 +- templates/Admin/standard_layout.html.twig | 6 +-- templates/Default/base.html.twig | 4 +- templates/Default/sidebar.html.twig | 9 ++-- templates/Header/header_options.html.twig | 2 +- .../Header/header_project_options.html.twig | 4 +- .../Header/header_studio_options.html.twig | 4 +- .../featured_programs_carousel.html.twig | 8 +-- .../media_library_overview.html.twig | 8 +-- .../broadcast_notification.html.twig | 4 +- .../catro_notification.html.twig | 4 +- .../comment_notification.html.twig | 4 +- .../follow_notification.html.twig | 4 +- .../like_notification.html.twig | 4 +- .../new_program_notification.html.twig | 4 +- .../notification_items.html.twig | 2 +- .../remix_notification.html.twig | 4 +- templates/PrivacyAndTerms/policy.html.twig | 8 +-- templates/Program/code_statistics.html.twig | 52 +++++++++---------- templates/Program/code_view.html.twig | 11 ++-- templates/Program/new_key_store.html.twig | 2 +- templates/Program/program.html.twig | 16 +++--- templates/Program/programComments.html.twig | 24 ++++----- .../program_apk_generation_buttons.html.twig | 6 +-- .../program_code_statistics_button.html.twig | 2 +- .../program_code_view_button.html.twig | 2 +- .../Program/program_description.html.twig | 12 ++--- templates/Program/program_details.html.twig | 8 +-- .../Program/program_download_button.html.twig | 2 +- templates/Program/program_reactions.html.twig | 8 +-- .../Program/program_reactions_modal.html.twig | 38 +++++++------- .../program_remix_graph_button.html.twig | 2 +- .../Program/program_sign_app_button.html.twig | 2 +- .../Program/program_sign_app_modal.html.twig | 10 ++-- templates/Program/program_tags.html.twig | 11 ++-- templates/Program/projectThumbnail.html.twig | 2 +- .../Studio/studio_admin_settings.html.twig | 2 +- .../studio_detail_comment_reply.html.twig | 2 +- .../studio_details_activity_list.html.twig | 2 +- .../studio_details_comment_list.html.twig | 8 +-- .../Studio/studio_details_header.html.twig | 12 ++--- .../studio_details_members_list.html.twig | 2 +- .../studio_details_project_list.html.twig | 4 +- .../Studio/studio_details_tabs.html.twig | 4 +- .../Followers/follower-item.html.twig | 8 +-- .../Profile/avatarEdit.html.twig | 2 +- .../Profile/myProfileData.html.twig | 20 +++---- .../UserManagement/Profile/profile.html.twig | 8 +-- .../oauth_registration.html.twig | 6 +-- .../Registration/register.html.twig | 2 +- .../FOSUserBundle/Resetting/reset.html.twig | 2 +- .../notifications_sidebar_badge.feature | 2 +- .../web/reactions/project_reactions.feature | 2 +- webpack.config.js | 5 +- 71 files changed, 278 insertions(+), 255 deletions(-) rename assets/styles/{custom/card.scss => components/catblocks_code_view.scss} (97%) create mode 100644 assets/styles/components/code_statistics.scss diff --git a/assets/js/base.js b/assets/js/base.js index 8d02867a82..560f59fd11 100644 --- a/assets/js/base.js +++ b/assets/js/base.js @@ -1,5 +1,4 @@ import $ from 'jquery' -import 'bootstrap' import textFillDefault from './components/text_fill_default' import './layout/header' import './layout/footer' @@ -41,7 +40,7 @@ const fnCloseSidebarInternal = function () { } const fnCloseSidebarDesktop = function () { sidebar.addClass('inactive') - $('body').removeClass('new-nav') + $('body').removeClass('body-with-sidebar') sidebarToggleBtn.attr('aria-expanded', false) } const fnOpenSidebar = function () { @@ -52,7 +51,7 @@ const fnOpenSidebar = function () { } const fnOpenSidebarDesktop = function () { sidebar.removeClass('inactive') - $('body').addClass('new-nav') + $('body').addClass('body-with-sidebar') sidebarToggleBtn.attr('aria-expanded', true) } diff --git a/assets/js/components/project_list.js b/assets/js/components/project_list.js index 479ef03936..cd100ce997 100644 --- a/assets/js/components/project_list.js +++ b/assets/js/components/project_list.js @@ -48,12 +48,10 @@ export class ProjectList { project = self._generate(project) self.projectsContainer.append(project) project.click(function () { + project.empty() + project.css('display', 'flex') + project.css('justify-content', 'center') project.append($('#project-opening-spinner').html()) - const href = $(this).attr('href') - const programID = ((href.indexOf('project') > 0) ? (href.split('project/')[1]).split('?')[0] : 0) - const type = self.getClickStatisticType(self.category) - const userSpecificRecommendation = type === 'user_who_downloaded_also_downloaded' - self.performClickStatisticRequest(href, type[0], type[1], userSpecificRecommendation, programID) }) }) self.container.classList.remove('loading') @@ -142,7 +140,7 @@ export class ProjectList { if (self.isFullView) { window.history.back() // to remove pushed state } else { - history.pushState( + window.history.pushState( { type: 'ProjectList', id: self.container.id, full: true }, $(this).text(), '#' + self.container.id ) @@ -186,25 +184,4 @@ export class ProjectList { this.$body.removeClass('overflow-hidden') return false } - - getClickStatisticType (type) { - switch (type) { - case 'recent': - return ['newest', false] - case 'most_downloaded': - return ['mostDownloaded', false] - case 'most_viewed': - return ['mostViewed', false] - case 'scratch': - return ['scratchRemixes', false] - case 'recommended': - return ['rec_homepage', true] - case 'similar': - return ['project', true] - case 'user_who_downloaded_also_downloaded': - return ['rec_specific_programs', true] - default: - return [type, false] - } - } } diff --git a/assets/js/custom/Program.js b/assets/js/custom/Program.js index 5a628a1af5..ff21c228c4 100644 --- a/assets/js/custom/Program.js +++ b/assets/js/custom/Program.js @@ -1,5 +1,5 @@ import $ from 'jquery' -import 'bootstrap' +import { Modal, Tab } from 'bootstrap' import Swal from 'sweetalert2' import { showSnackbar } from '../components/snackbar' @@ -28,7 +28,6 @@ export const Program = function (projectId, csrfToken, userRole, myProgram, stat getApkStatus() $('.btn-project-download').on('click', (e) => { - console.error($(e.currentTarget).data('is-supported')) download( $(e.currentTarget).data('path-url'), $(e.currentTarget).data('project-id'), @@ -121,7 +120,7 @@ export const Program = function (projectId, csrfToken, userRole, myProgram, stat apkDownloadTimeout = false }, 5000) - top.location.href = data.url + window.top.location.href = data.url } }) } else if (data.status === 'pending') { @@ -273,6 +272,10 @@ export const Program = function (projectId, csrfToken, userRole, myProgram, stat } const $modal = $('#project-like-modal') + const bootstrapModal = new Modal('#project-like-modal') + const firstTabEl = document.querySelector('#reaction-modal-tab li:first-child button') + const firstTab = new Tab(firstTabEl) + firstTab.show() const thumbsUpData = data.filter(x => x.types.indexOf('thumbs_up') !== -1) const smileData = data.filter(x => x.types.indexOf('smile') !== -1) @@ -284,7 +287,7 @@ export const Program = function (projectId, csrfToken, userRole, myProgram, stat * @param data {{user: {id: string, name: string}, types: string[]}[]} */ const fnUpdateContent = (type, data) => { - const $tab = /** @type jQuery */ $modal.find('a#' + type + '-tab') + const $tab = /** @type jQuery */ $modal.find('button#' + type + '-tab') const $content = $modal.find('#' + type + '-tab-content') $content.empty() @@ -343,7 +346,7 @@ export const Program = function (projectId, csrfToken, userRole, myProgram, stat $('#project-reactions-spinner').addClass('d-none') $('#project-reactions-spinner-small').addClass('d-none') - $modal.modal('show') + bootstrapModal.show() }).fail(function (jqXHR, textStatus, errorThrown) { $('#project-reactions-spinner').hide() $('#project-reactions-spinner-small').hide() diff --git a/assets/js/notifications_overview.js b/assets/js/notifications_overview.js index 3828ba9d21..0fb554625b 100644 --- a/assets/js/notifications_overview.js +++ b/assets/js/notifications_overview.js @@ -214,12 +214,12 @@ class UserNotifications { const notificationId = idPrefix + fetched.id let notificationDot = '' if (!fetched.seen) { - notificationDot = '
' + + notificationDot = '
' + '' + '' + '
' } const notificationBody = '
' + - '
' + imgLeft + '
' + - '
' + msg + '
' + notificationDot + '
' + '
' + imgLeft + '
' + + '
' + msg + '
' + notificationDot + '
' $container.append(notificationBody) } diff --git a/assets/js/project.js b/assets/js/project.js index 65600be982..4c4b9d92dc 100644 --- a/assets/js/project.js +++ b/assets/js/project.js @@ -8,7 +8,6 @@ import { shareProject } from './custom/ProgramShare' import { ProgramReport } from './custom/ProgramReport' require('../styles/custom/profile.scss') -require('../styles/custom/card.scss') require('../styles/custom/modal.scss') require('../styles/custom/program.scss') diff --git a/assets/styles/base/bootstrap_overwrite.scss b/assets/styles/base/bootstrap_overwrite.scss index 520f20d439..c8482e464d 100644 --- a/assets/styles/base/bootstrap_overwrite.scss +++ b/assets/styles/base/bootstrap_overwrite.scss @@ -59,8 +59,24 @@ } } +a { + text-decoration: none; +} + +.btn-block { + // removed in bootstrap 5 + --deprecated: "WARNING: deprecated, wrap your buttons with .d-grid and a .gap-* utility to space them as needed. Switch to responsive classes for even more control over them. Read the docs for some examples: https://getbootstrap.com/docs/5.0/components/buttons/#block-buttons"; + display: block; + width: 100%; +} +.btn-block + .btn-block { + // removed in bootstrap 5 + --deprecated: "WARNING: deprecated, wrap your buttons with .d-grid and a .gap-* utility to space them as needed. Switch to responsive classes for even more control over them. Read the docs for some examples: https://getbootstrap.com/docs/5.0/components/buttons/#block-buttons"; + margin-top: 0.5rem; +} + /* stylelint-disable */ -.badge-primary { +.bg-primary { background-color: var(--primary) !important; &:hover { background-color: custom-darken(--color-primary, 7.5) !important; @@ -77,4 +93,4 @@ background-color: var(--primary) !important; } } -/* stylelint-enable */ \ No newline at end of file +/* stylelint-enable */ diff --git a/assets/styles/custom/card.scss b/assets/styles/components/catblocks_code_view.scss similarity index 97% rename from assets/styles/custom/card.scss rename to assets/styles/components/catblocks_code_view.scss index a0ab0d8b67..3a10617465 100644 --- a/assets/styles/custom/card.scss +++ b/assets/styles/components/catblocks_code_view.scss @@ -1,4 +1,5 @@ @import "../base/variables"; +@import "../../catblocks/main.css"; // Bootstrap extending CSS diff --git a/assets/styles/components/code_statistics.scss b/assets/styles/components/code_statistics.scss new file mode 100644 index 0000000000..7bab977477 --- /dev/null +++ b/assets/styles/components/code_statistics.scss @@ -0,0 +1,12 @@ + +.accordion-button:not(.collapsed) { + color: var(--primary); + background-color: transparent; +} + +.accordion-body { + padding: 0; + .table { + margin: 0; + } +} diff --git a/assets/styles/components/featured_slider.scss b/assets/styles/components/featured_slider.scss index 9eb2199f63..1516e9438d 100644 --- a/assets/styles/components/featured_slider.scss +++ b/assets/styles/components/featured_slider.scss @@ -18,11 +18,11 @@ $carousel-indicator-margin: 0.2em; .carousel-control { font-size: $carousel-control-size; - @include media-breakpoint-between(sm, md) { + @include media-breakpoint-between(sm, lg) { font-size: math.div($carousel-control-size, 1.3); } - @include media-breakpoint-down(sm) { + @include media-breakpoint-down(md) { font-size: math.div($carousel-control-size, 1.6); } } diff --git a/assets/styles/components/project_list.scss b/assets/styles/components/project_list.scss index 2eeb38c7dc..928093effd 100644 --- a/assets/styles/components/project_list.scss +++ b/assets/styles/components/project_list.scss @@ -54,7 +54,7 @@ $container-padding: 1rem; &__text { padding-right: 0.5rem; font-size: 0.95rem; - @include media-breakpoint-down(xs) { + @include media-breakpoint-down(sm) { display: none; } } @@ -128,6 +128,7 @@ $container-padding: 1rem; width: 25vw; max-width: $max-project-thumb-size; margin-right: 1.5rem; + text-decoration: none; @include media-breakpoint-up(md) { width: 10vw; @@ -178,6 +179,7 @@ $container-padding: 1rem; grid-template-rows: max-content auto; gap: 0.3rem 1rem; grid-template-areas: "image name" "image property"; + text-decoration: none; &__image { grid-area: image; @@ -219,7 +221,7 @@ $container-padding: 1rem; $default-opacity: 0.3; - @include media-breakpoint-down(sm) { + @include media-breakpoint-down(md) { display: none; } diff --git a/assets/styles/custom/medialib.scss b/assets/styles/custom/medialib.scss index 87d29db5cd..b686920db6 100644 --- a/assets/styles/custom/medialib.scss +++ b/assets/styles/custom/medialib.scss @@ -47,6 +47,12 @@ $border-spacing: 8px; border-radius: 5px; transition: border 0.5s; + &:hover + { + background: rgba(200, 200, 200, 0.1); + box-shadow: 0 0 0 0.2rem custom-alpha(--color-primary, 0.1) !important; + } + .checkbox { position: absolute; diff --git a/assets/styles/custom/multi_column_article.scss b/assets/styles/custom/multi_column_article.scss index d33cd2d067..87990f9de0 100644 --- a/assets/styles/custom/multi_column_article.scss +++ b/assets/styles/custom/multi_column_article.scss @@ -5,7 +5,7 @@ .article-columns { column-count: 2; - @include media-breakpoint-down(md) { + @include media-breakpoint-down(lg) { column-count: 1; } } diff --git a/assets/styles/custom/profile.scss b/assets/styles/custom/profile.scss index 71559258c6..ca09c20ec2 100644 --- a/assets/styles/custom/profile.scss +++ b/assets/styles/custom/profile.scss @@ -212,7 +212,7 @@ .button-container button { min-width: 150px; - @include media-breakpoint-down(xs) { + @include media-breakpoint-down(sm) { display: block; width: 100%; } diff --git a/assets/styles/custom/program.scss b/assets/styles/custom/program.scss index 40e4518d0b..678c188319 100755 --- a/assets/styles/custom/program.scss +++ b/assets/styles/custom/program.scss @@ -367,7 +367,7 @@ input[type="number"] { align-items: baseline; margin-top: -0.15rem; - @include media-breakpoint-down(sm) { + @include media-breakpoint-down(md) { flex-direction: column; } diff --git a/assets/styles/layout/header.scss b/assets/styles/layout/header.scss index d5cbedc0ac..469a30176a 100644 --- a/assets/styles/layout/header.scss +++ b/assets/styles/layout/header.scss @@ -98,16 +98,16 @@ margin-top: 4rem; margin-bottom: 2rem; - @include media-breakpoint-up(sm) { - margin-top: 4.5rem; + @include media-breakpoint-up(xs) { + margin-top: 4.3rem; margin-bottom: 2.25rem; } - @include media-breakpoint-up(md) { - margin-top: 5rem; + @include media-breakpoint-up(sm) { + margin-top: 4.8rem; margin-bottom: 2.75rem; } - @include media-breakpoint-up(lg) { - margin-top: 6rem; + @include media-breakpoint-up(md) { + margin-top: 5.5rem; margin-bottom: 3.5rem; } } diff --git a/assets/styles/layout/sidebar.scss b/assets/styles/layout/sidebar.scss index 48437136cb..ea2d2d63a6 100644 --- a/assets/styles/layout/sidebar.scss +++ b/assets/styles/layout/sidebar.scss @@ -77,7 +77,7 @@ $sidebar-width: 250px; } @include media-breakpoint-up(md) { - .new-nav { + .body-with-sidebar { .body-content { padding-left: 15px + $sidebar-width; } diff --git a/src/Catrobat/Controller/Web/StudioController.php b/src/Catrobat/Controller/Web/StudioController.php index 0fdfdbd510..e38c011392 100644 --- a/src/Catrobat/Controller/Web/StudioController.php +++ b/src/Catrobat/Controller/Web/StudioController.php @@ -145,16 +145,16 @@ public function postComment(Request $request): JsonResponse $result .= 'Card image'; $result .= '
'; $result .= ''.$comment->getUsername().''; - $result .= '' : 'false, 0)">'; - $result .= 'delete'; + $result .= 'delete'; $result .= '

'.$comment->getText().'

'; $result .= '
'; $result .= ''; $result .= 'watch_later'.$comment->getUploadDate()->format('Y-m-d').''; if (!$isReply) { - $result .= ''; + $result .= ''; $result .= 'forum'; $result .= '0 '.$this->translator->trans('studio.details.replies', [], 'catroweb').''; $result .= '

'; @@ -310,9 +310,9 @@ protected function getCommentsAndRepliesForAjax(UserComment $comment, bool $isRe $rs .= ''.$comment->getUsername().''; if ((StudioUser::ROLE_ADMIN === $this->studio_manager->getStudioUserRole($this->getUser(), $comment->getStudio()) || (!is_null($this->getUser()) && $this->getUser()->getUsername() === $comment->getUsername())) && $isReply) { - $rs .= 'getId().', true, '.$comment->getParentId().')"'; $rs .= ' title="'.$this->translator->trans('studio.details.remove_comment', [], 'catroweb').'">'; - $rs .= 'delete'; + $rs .= 'delete'; $rs .= ''; } $rs .= '

'.$comment->getText().'

'; @@ -447,7 +447,7 @@ protected function getRenderedAMembersForAjax(array $members, bool $forAdmin): s $rs .= ''; $rs .= ''; $rs .= '
'; - $rs .= '
'; + $rs .= '
'; $rs .= ''.$member->getUser()->getUsername().''; $rs .= '
'; $count = $this->studio_manager->countStudioUserProjects($member->getStudio(), $member->getUser()); @@ -455,11 +455,11 @@ protected function getRenderedAMembersForAjax(array $members, bool $forAdmin): s $rs .= '
'; $rs .= '
'; $rs .= '
'; - $rs .= '
'; + $rs .= ''; diff --git a/templates/Admin/logs.html.twig b/templates/Admin/logs.html.twig index 2b78fa4915..b789a3f120 100644 --- a/templates/Admin/logs.html.twig +++ b/templates/Admin/logs.html.twig @@ -49,7 +49,7 @@ - +
@@ -95,7 +95,7 @@ {% for line in content %}
- + {{ line.getDate }} {{ line.getDebugCode }} diff --git a/templates/Admin/standard_layout.html.twig b/templates/Admin/standard_layout.html.twig index 5a16bba9d9..3c0b2acc82 100644 --- a/templates/Admin/standard_layout.html.twig +++ b/templates/Admin/standard_layout.html.twig @@ -17,13 +17,13 @@