Merge branch 'refs/heads/support/3.2' into develop

This commit is contained in:
jf-cbd
2024-07-03 15:52:49 +02:00
15 changed files with 94 additions and 877 deletions

View File

@@ -17,7 +17,7 @@ $ibo-vendors-ckeditor--autocomplete-item-image--background-color: $ibo-color-blu
$ibo-vendors-ckeditor--autocomplete-item-image--border: 1px solid $ibo-color-grey-600 !default; $ibo-vendors-ckeditor--autocomplete-item-image--border: 1px solid $ibo-color-grey-600 !default;
$ibo-vendors-ckeditor--autocomplete-item-title--text-color: #3A3A3A !default; $ibo-vendors-ckeditor--autocomplete-item-title--text-color: #3A3A3A !default;
$ibo-vendors-ckeditor--ck-content--text-color: $ibo-color-grey-900 !default;
/* - Following SCSS variables are only there to overlaod the CSS3 variables of CKEditor (see `src/resources/styles/default-theme.css` in CKEditor) */ /* - Following SCSS variables are only there to overlaod the CSS3 variables of CKEditor (see `src/resources/styles/default-theme.css` in CKEditor) */
$ibo-vendors-ckeditor--ck-color-list-button-on-background: $ibo-color-grey-200 !default; $ibo-vendors-ckeditor--ck-color-list-button-on-background: $ibo-color-grey-200 !default;
$ibo-vendors-ckeditor--ck-color-list-button-on-background-focus: $ibo-color-grey-200 !default; $ibo-vendors-ckeditor--ck-color-list-button-on-background-focus: $ibo-color-grey-200 !default;
@@ -56,6 +56,10 @@ $ibo-vendors-ckeditor--ck-color-image-caption-text: $ibo-color-grey-900 !default
} }
} }
.ck.ck-content {
color: $ibo-vendors-ckeditor--ck-content--text-color;
}
.ck-editor__editable_inline:not(.ck-comment__input *) { .ck-editor__editable_inline:not(.ck-comment__input *) {
height: 200px; height: 200px;
} }
@@ -74,7 +78,7 @@ $ibo-vendors-ckeditor--ck-color-image-caption-text: $ibo-color-grey-900 !default
.ck-editor__main{ .ck-editor__main{
flex-grow: 1; flex-grow: 1;
} }
.ck-editor__editable_inline:not(.ck-comment__input *){ .ck-editor__editable_inline:not(.ck-comment__input *), .ck-source-editing-area{
height: 100% !important; /* !important to overload inline style from configuration.height */ height: 100% !important; /* !important to overload inline style from configuration.height */
width: 100% !important; /* !important to overload inline style from configuration.width */ width: 100% !important; /* !important to overload inline style from configuration.width */
} }

View File

@@ -1,829 +1,5 @@
.ck {
.cke_reset_all, --ck-color-toolbar-background: var(--ibo-color-grey-200);
.cke_reset_all *, --ck-color-base-border: var(--ibo-color-grey-400);
.cke_reset_all a, --ck-color-panel-background: var(--ibo-color-grey-200);
.cke_reset_all textarea {
color: $ibo-color-grey-950 !important;
}
.cke_reset_all fieldset {
border: 2px groove #e0dfe3 !important;
}
.cke_chrome {
border: 1px solid $ibo-color-grey-300 !important;
}
.cke_editable{
background: $ibo-color-grey-100;
}
.cke_inner {
background: $ibo-color-grey-300 !important;
}
.cke_top {
border-bottom: 1px solid $ibo-color-grey-500 !important;
background: $ibo-color-grey-200 !important;
white-space: normal !important;
}
.cke_float .cke_top {
border: 1px solid $ibo-color-grey-500 !important;
}
.cke_bottom {
border-top: 1px solid $ibo-color-grey-500 !important;
background: $ibo-color-grey-200 !important;
}
.cke_browser_ios .cke_contents {
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
.cke_resizer {
border-color: transparent #bcbcbc transparent transparent;
}
.cke_resizer_rtl {
border-color: transparent transparent transparent #bcbcbc;
}
.cke_panel {
background-color: $ibo-color-grey-200;
border: 1px solid #d1d1d1;
}
.cke_panel_listItem.cke_selected a,
.cke_panel_listItem a:hover,
.cke_panel_listItem a:focus,
.cke_panel_listItem a:active {
background-color: #e9e9e9;
}
.cke_panel_listItem a:focus {
outline: 1px dotted #000;
}
.cke_panel_grouptitle {
color: #484848;
border-bottom: 1px solid #d1d1d1;
background: #f8f8f8;
}
.cke_colorblock,
.cke_colorblock a {
text-decoration: none;
color: #000;
}
a:hover.cke_colorbox,
a:focus.cke_colorbox,
a:active.cke_colorbox {
outline: 0;
padding: 0;
border: 2px solid #139ff7;
}
a:hover.cke_colorbox {
border-color: #bcbcbc;
}
a.cke_colorauto,
a.cke_colormore {
border: #fff 1px solid;
padding: 3px;
display: block;
cursor: pointer;
}
a:hover.cke_colorauto,
a:hover.cke_colormore,
a:focus.cke_colorauto,
a:focus.cke_colormore,
a:active.cke_colorauto,
a:active.cke_colormore {
outline: 0;
border: #139ff7 1px solid;
background-color: #f8f8f8;
}
a:hover.cke_colorauto,
a:hover.cke_colormore {
border-color: #bcbcbc;
}
.cke_colorauto span.cke_colorbox {
width: 18px;
height: 18px;
border: 1px solid #808080;
margin-left: 1px;
margin-top: 3px;
}
.cke_rtl .cke_colorauto span.cke_colorbox {
margin-left: 0;
margin-right: 1px;
}
span.cke_colorbox[style*="#ffffff"],
span.cke_colorbox[style*="#FFFFFF"],
span.cke_colorbox[style="background-color:#fff"],
span.cke_colorbox[style="background-color:#FFF"],
span.cke_colorbox[style*="rgb(255,255,255)"],
span.cke_colorbox[style*="rgb(255, 255, 255)"] {
border: 1px solid #808080;
width: 18px;
height: 18px;
}
.cke_toolbar {
float: left;
}
.cke_rtl .cke_toolbar {
float: right;
}
.cke_toolgroup {
border: 0;
float: left;
margin: 1px 2px 6px 0;
padding-right: 3px;
}
.cke_rtl .cke_toolgroup {
float: right;
margin: 1px 0 6px 2px;
padding-left: 3px;
padding-right: 0;
}
.cke_hc .cke_toolgroup {
margin-right: 5px;
margin-bottom: 5px;
}
.cke_hc.cke_rtl .cke_toolgroup {
margin-right: 0;
margin-left: 5px;
}
a.cke_button {
display: inline-block;
height: 18px;
padding: 4px 6px;
outline: 0;
cursor: default;
float: left;
border: 0;
position: relative;
}
a.cke_button_expandable {
padding: 4px 5px;
}
.cke_rtl a.cke_button {
float: right;
}
.cke_hc a.cke_button {
border: 1px solid black;
padding: 3px 5px;
margin: 0 3px 5px 0;
}
.cke_hc.cke_rtl a.cke_button {
margin: 0 0 5px 3px;
}
a.cke_button_on {
background: #fff;
border: 1px #bcbcbc solid;
padding: 3px 5px;
}
a.cke_button_expandable.cke_button_on {
padding: 3px 4px;
}
a.cke_button_off:hover,
a.cke_button_off:focus,
a.cke_button_off:active {
background: #e5e5e5;
border: 1px #bcbcbc solid;
padding: 3px 5px;
}
a.cke_button_expandable.cke_button_off:hover,
a.cke_button_expandable.cke_button_off:focus,
a.cke_button_expandable.cke_button_off:active {
padding: 3px 4px;
}
.cke_hc a.cke_button_on,
.cke_hc a.cke_button_off:hover,
.cke_hc a.cke_button_off:focus,
.cke_hc a.cke_button_off:active {
background: #e5e5e5;
border: 3px solid #000;
padding: 1px 3px;
}
a.cke_button_disabled:hover,
a.cke_button_disabled:focus,
a.cke_button_disabled:active {
border: 0;
padding: 4px 6px;
background-color: transparent;
}
a.cke_button_expandable.cke_button_disabled:hover,
a.cke_button_expandable.cke_button_disabled:active {
padding: 4px 5px;
}
a.cke_button_disabled:focus {
border: 1px #bcbcbc solid;
padding: 3px 5px;
}
a.cke_button_expandable.cke_button_disabled:focus {
padding: 3px 4px;
}
.cke_hc a.cke_button_disabled:hover,
.cke_hc a.cke_button_disabled:focus,
.cke_hc a.cke_button_disabled:active {
border: 1px solid #acacac;
padding: 3px 5px;
margin: 0 3px 5px 0;
}
.cke_hc a.cke_button_disabled:focus {
border: 3px solid #000;
padding: 1px 3px;
}
.cke_hc.cke_rtl a.cke_button_disabled:hover,
.cke_hc.cke_rtl a.cke_button_disabled:focus,
.cke_hc.cke_rtl a.cke_button_disabled:active {
margin: 0 0 5px 3px;
}
a.cke_button_disabled .cke_button_icon,
a.cke_button_disabled .cke_button_arrow {
opacity: 0.3;
}
.cke_hc a.cke_button_disabled {
border-color: #acacac;
}
.cke_hc a.cke_button_disabled .cke_button_icon,
.cke_hc a.cke_button_disabled .cke_button_label {
opacity: 0.5;
}
.cke_toolgroup a.cke_button:last-child:after,
.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after {
content: "";
position: absolute;
height: 18px;
width: 0;
border-right: 1px solid #bcbcbc;
margin-top: 4px;
top: 0;
right: -3px;
}
.cke_rtl .cke_toolgroup a.cke_button:last-child:after,
.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after {
border-right: 0;
right: auto;
border-left: 1px solid #bcbcbc;
top: 0;
left: -3px;
}
.cke_hc .cke_toolgroup a.cke_button:last-child:after,
.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,
.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after {
border-color: #000;
top: 0;
right: -7px;
}
.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,
.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,
.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after {
top: 0;
right: auto;
left: -7px;
}
.cke_toolgroup a.cke_button:hover:last-child:after,
.cke_toolgroup a.cke_button:focus:last-child:after,
.cke_toolgroup a.cke_button.cke_button_on:last-child:after {
top: -1px;
right: -4px;
}
.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,
.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,
.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after {
top: -1px;
right: auto;
left: -4px;
}
.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,
.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after {
top: -2px;
right: -9px;
}
.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,
.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after {
top: -2px;
right: auto;
left: -9px;
}
.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after {
content: none;
border: 0;
width: 0;
height: 0;
}
.cke_button_icon {
cursor: inherit;
background-repeat: no-repeat;
margin-top: 1px;
width: 16px;
height: 16px;
float: left;
display: inline-block;
}
.cke_rtl .cke_button_icon {
float: right;
}
.cke_hc .cke_button_icon {
display: none;
}
.cke_button_label {
display: none;
padding-left: 3px;
margin-top: 1px;
line-height: 17px;
vertical-align: middle;
float: left;
cursor: default;
color: #484848;
}
.cke_rtl .cke_button_label {
padding-right: 3px;
padding-left: 0;
float: right;
}
.cke_hc .cke_button_label {
padding: 0;
display: inline-block;
font-size: 12px;
}
.cke_button_arrow {
display: inline-block;
margin: 8px 0 0 3px;
width: 0;
height: 0;
cursor: default;
vertical-align: top;
border-left: 3px solid transparent;
border-right: 3px solid transparent;
border-top: 3px solid #484848;
}
.cke_rtl .cke_button_arrow {
margin-right: 5px;
margin-left: 0;
}
.cke_hc .cke_button_arrow {
font-size: 10px;
margin: 3px 0 0 3px;
width: auto;
border: 0;
}
.cke_toolbar_separator {
float: left;
background-color: #bcbcbc;
margin: 4px 2px 0 2px;
height: 18px;
width: 1px;
}
.cke_rtl .cke_toolbar_separator {
float: right;
}
.cke_hc .cke_toolbar_separator {
background-color: #000;
margin-left: 2px;
margin-right: 5px;
margin-bottom: 9px;
}
.cke_hc.cke_rtl .cke_toolbar_separator {
margin-left: 5px;
margin-right: 2px;
}
.cke_toolbar_break {
display: block;
clear: left;
}
.cke_rtl .cke_toolbar_break {
clear: right;
}
a.cke_toolbox_collapser {
width: 12px;
height: 11px;
float: right;
margin: 11px 0 0;
font-size: 0;
cursor: default;
text-align: center;
border: 1px solid #bcbcbc;
}
.cke_rtl .cke_toolbox_collapser {
float: left;
}
.cke_toolbox_collapser:hover {
background: #e5e5e5;
}
.cke_toolbox_collapser.cke_toolbox_collapser_min {
margin: 0 2px 4px;
}
.cke_toolbox_collapser .cke_arrow {
display: inline-block;
height: 0;
width: 0;
font-size: 0;
margin-top: 1px;
border: 3px solid transparent;
border-bottom-color: #484848;
}
.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow {
margin-top: 4px;
border-bottom-color: transparent;
border-top-color: #484848;
}
.cke_hc .cke_toolbox_collapser .cke_arrow {
font-size: 8px;
width: auto;
border: 0;
margin-top: 0;
}
.cke_menuitem span {
cursor: default;
}
.cke_menubutton {
display: block;
}
.cke_hc .cke_menubutton {
padding: 2px;
}
.cke_menubutton:hover,
.cke_menubutton:focus,
.cke_menubutton:active {
background-color: #e9e9e9;
display: block;
outline: 1px dotted;
}
.cke_menubutton:hover {
outline: 0;
}
.cke_hc .cke_menubutton:hover,
.cke_hc .cke_menubutton:focus,
.cke_hc .cke_menubutton:active {
border: 2px solid;
padding: 0;
}
.cke_menubutton_disabled:hover,
.cke_menubutton_disabled:focus,
.cke_menubutton_disabled:active {
background-color: transparent;
outline: 0;
}
.cke_menubutton_inner {
display: table-row;
}
.cke_menubutton_icon,
.cke_menubutton_label,
.cke_menuarrow {
display: table-cell;
}
.cke_menubutton_icon {
background-color: #f8f8f8;
padding: 6px 4px;
}
.cke_hc .cke_menubutton_icon {
height: 16px;
width: 0;
padding: 4px 0;
}
.cke_menubutton:hover .cke_menubutton_icon,
.cke_menubutton:focus .cke_menubutton_icon,
.cke_menubutton:active .cke_menubutton_icon {
background-color: #e9e9e9;
}
.cke_menubutton_disabled:hover .cke_menubutton_icon,
.cke_menubutton_disabled:focus .cke_menubutton_icon,
.cke_menubutton_disabled:active .cke_menubutton_icon {
background-color: #f8f8f8;
outline: 0;
}
.cke_menuitem .cke_menubutton_on {
background-color: #e9e9e9;
border: 1px solid #dedede;
outline: 0;
}
.cke_menubutton_on .cke_menubutton_icon {
padding-right: 3px;
background-color: #e9e9e9;
}
.cke_menubutton_label {
padding: 0 5px;
background-color: transparent;
width: 100%;
vertical-align: middle;
}
.cke_menubutton_shortcut {
color: #979797;
}
.cke_menubutton_disabled .cke_menubutton_label {
opacity: 0.3;
filter: alpha(opacity=30);
}
.cke_panel_frame .cke_menubutton_label {
display: none;
}
.cke_menuseparator {
background-color: #d1d1d1;
height: 1px;
}
.cke_menuarrow {
background: transparent url(images/arrow.png) no-repeat 0 10px;
padding: 0 5px;
}
.cke_rtl .cke_menuarrow {
background-position: 5px -13px;
background-repeat: no-repeat;
}
.cke_hc .cke_menuarrow {
background-image: none;
}
.cke_menuarrow span {
display: none;
}
.cke_hc .cke_menuarrow span {
vertical-align: middle;
display: inline;
}
.cke_combo {
display: inline-block;
float: left;
position: relative;
margin-bottom: 5px;
}
.cke_rtl .cke_combo {
float: right;
}
.cke_hc .cke_combo {
margin-top: 1px;
margin-bottom: 10px;
}
.cke_combo:after {
content: "";
position: absolute;
height: 18px;
width: 0;
border-right: 1px solid #bcbcbc;
margin-top: 5px;
top: 0;
right: 0;
}
.cke_rtl .cke_combo:after {
border-right: 0;
border-left: 1px solid #bcbcbc;
right: auto;
left: 0;
}
.cke_hc .cke_combo:after {
border-color: #000;
}
a.cke_combo_button {
cursor: default;
display: inline-block;
float: left;
margin: 0;
padding: 1px;
}
.cke_rtl a.cke_combo_button {
float: right;
}
.cke_hc a.cke_combo_button {
padding: 4px;
}
.cke_combo_on a.cke_combo_button,
.cke_combo_off a.cke_combo_button:hover,
.cke_combo_off a.cke_combo_button:focus,
.cke_combo_off a.cke_combo_button:active {
background: #e5e5e5;
border: 1px solid #bcbcbc;
padding: 0 0 0 1px;
margin-left: -1px;
}
.cke_combo_off a.cke_combo_button:focus {
outline: 0;
}
.cke_combo_on a.cke_combo_button,
.cke_combo_off a.cke_combo_button:active {
background: #fff;
}
.cke_rtl .cke_combo_on a.cke_combo_button,
.cke_rtl .cke_combo_off a.cke_combo_button:hover,
.cke_rtl .cke_combo_off a.cke_combo_button:focus,
.cke_rtl .cke_combo_off a.cke_combo_button:active {
padding: 0 1px 0 0;
margin-left: 0;
margin-right: -1px;
}
.cke_hc .cke_combo_on a.cke_combo_button,
.cke_hc .cke_combo_off a.cke_combo_button:hover,
.cke_hc .cke_combo_off a.cke_combo_button:focus,
.cke_hc .cke_combo_off a.cke_combo_button:active {
border: 3px solid #000;
padding: 1px 1px 1px 2px;
}
.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,
.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,
.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,
.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active {
padding: 1px 2px 1px 1px;
}
.cke_toolbar_start + .cke_combo_on a.cke_combo_button,
.cke_toolbar_start + .cke_combo_off a.cke_combo_button:hover,
.cke_toolbar_start + .cke_combo_off a.cke_combo_button:focus,
.cke_toolbar_start + .cke_combo_off a.cke_combo_button:active {
padding: 0 0 0 3px;
margin-left: -3px;
}
.cke_rtl .cke_toolbar_start + .cke_combo_on a.cke_combo_button,
.cke_rtl .cke_toolbar_start + .cke_combo_off a.cke_combo_button:hover,
.cke_rtl .cke_toolbar_start + .cke_combo_off a.cke_combo_button:focus,
.cke_rtl .cke_toolbar_start + .cke_combo_off a.cke_combo_button:active {
padding: 0 3px 0 0;
margin-left: 0;
margin-right: -3px;
}
.cke_hc .cke_toolbar > .cke_toolbar_start + .cke_combo_on a.cke_combo_button,
.cke_hc .cke_toolbar > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:hover,
.cke_hc .cke_toolbar > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:focus,
.cke_hc .cke_toolbar > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:active {
padding: 1px 1px 1px 7px;
margin-left: -6px;
}
.cke_hc.cke_rtl .cke_toolbar > .cke_toolbar_start + .cke_combo_on a.cke_combo_button,
.cke_hc.cke_rtl .cke_toolbar > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:hover,
.cke_hc.cke_rtl .cke_toolbar > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:focus,
.cke_hc.cke_rtl .cke_toolbar > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:active {
padding: 1px 7px 1px 1px;
margin-left: 0;
margin-right: -6px;
}
.cke_toolbox .cke_toolbar:first-child > .cke_toolbar_start + .cke_combo_on a.cke_combo_button,
.cke_toolbox .cke_toolbar:first-child > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:hover,
.cke_toolbox .cke_toolbar:first-child > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:focus,
.cke_toolbox .cke_toolbar:first-child > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:active,
.cke_toolbar_break + .cke_toolbar > .cke_toolbar_start + .cke_combo_on a.cke_combo_button,
.cke_toolbar_break + .cke_toolbar > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:hover,
.cke_toolbar_break + .cke_toolbar > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:focus,
.cke_toolbar_break + .cke_toolbar > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:active {
padding: 0;
margin: 0;
}
.cke_hc .cke_toolbox .cke_toolbar:first-child > .cke_toolbar_start + .cke_combo_on a.cke_combo_button,
.cke_hc .cke_toolbox .cke_toolbar:first-child > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:hover,
.cke_hc .cke_toolbox .cke_toolbar:first-child > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:focus,
.cke_hc .cke_toolbox .cke_toolbar:first-child > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:active,
.cke_hc .cke_toolbar_break + .cke_toolbar > .cke_toolbar_start + .cke_combo_on a.cke_combo_button,
.cke_hc .cke_toolbar_break + .cke_toolbar > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:hover,
.cke_hc .cke_toolbar_break + .cke_toolbar > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:focus,
.cke_hc .cke_toolbar_break + .cke_toolbar > .cke_toolbar_start + .cke_combo_off a.cke_combo_button:active {
padding: 1px;
margin: 0;
}
.cke_toolbar .cke_combo + .cke_toolbar_end,
.cke_toolbar .cke_combo + .cke_toolgroup {
margin-right: 0;
margin-left: 2px;
}
.cke_rtl .cke_toolbar .cke_combo + .cke_toolbar_end,
.cke_rtl .cke_toolbar .cke_combo + .cke_toolgroup {
margin-left: 0;
margin-right: 2px;
}
.cke_hc .cke_toolbar .cke_combo + .cke_toolbar_end,
.cke_hc .cke_toolbar .cke_combo + .cke_toolgroup {
margin-left: 5px;
}
.cke_hc.cke_rtl .cke_toolbar .cke_combo + .cke_toolbar_end,
.cke_hc.cke_rtl .cke_toolbar .cke_combo + .cke_toolgroup {
margin-left: 0;
margin-right: 5px;
}
.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n + 2):after {
content: none;
border: 0;
width: 0;
height: 0;
}
.cke_combo_text {
line-height: 26px;
padding-left: 10px;
text-overflow: ellipsis;
overflow: hidden;
float: left;
cursor: default;
color: #484848;
width: 60px;
}
.cke_rtl .cke_combo_text {
float: right;
text-align: right;
padding-left: 0;
padding-right: 10px;
}
.cke_hc .cke_combo_text {
line-height: 18px;
font-size: 12px;
}
.cke_combo_open {
cursor: default;
display: inline-block;
font-size: 0;
height: 19px;
line-height: 17px;
margin: 1px 10px 1px;
width: 5px;
}
.cke_hc .cke_combo_open {
height: 12px;
}
.cke_combo_arrow {
cursor: default;
margin: 11px 0 0;
float: left;
height: 0;
width: 0;
font-size: 0;
border-left: 3px solid transparent;
border-right: 3px solid transparent;
border-top: 3px solid #484848;
}
.cke_hc .cke_combo_arrow {
font-size: 10px;
width: auto;
border: 0;
margin-top: 3px;
}
.cke_combo_label {
display: none;
float: left;
line-height: 26px;
vertical-align: top;
margin-right: 5px;
}
.cke_rtl .cke_combo_label {
float: right;
margin-left: 5px;
margin-right: 0;
}
.cke_combo_disabled .cke_combo_inlinelabel,
.cke_combo_disabled .cke_combo_open {
opacity: 0.3;
}
.cke_path {
float: left;
margin: -2px 0 2px;
}
a.cke_path_item,
span.cke_path_empty {
display: inline-block;
float: left;
padding: 3px 4px;
margin-right: 2px;
cursor: default;
text-decoration: none;
outline: 0;
border: 0;
color: #484848;
font-weight: bold;
font-size: 11px;
}
.cke_rtl .cke_path,
.cke_rtl .cke_path_item,
.cke_rtl .cke_path_empty {
float: right;
}
a.cke_path_item:hover,
a.cke_path_item:focus,
a.cke_path_item:active {
background-color: #e5e5e5;
}
.cke_hc a.cke_path_item:hover,
.cke_hc a.cke_path_item:focus,
.cke_hc a.cke_path_item:active {
border: 2px solid;
padding: 1px 2px;
}
.cke_button__source_label,
.cke_button__sourcedialog_label {
display: inline;
}
.cke_combopanel__fontsize {
width: 135px;
}
textarea.cke_source {
font-family: "Courier New", Monospace;
font-size: small;
background-color: #fff;
white-space: pre-wrap;
border: 0;
padding: 0;
margin: 0;
display: block;
}
.cke_wysiwyg_frame,
.cke_wysiwyg_div {
background-color: #fff;
}
.cke_notifications_area {
pointer-events: none;
}
.cke_notification {
pointer-events: auto;
position: relative;
margin: 10px;
width: 300px;
color: white;
text-align: center;
opacity: 0.95;
filter: alpha(opacity = 95);
-webkit-animation: fadeIn 0.7s;
animation: fadeIn 0.7s;
}
.cke_notification_message a {
color: #12306f;
} }

View File

@@ -282,3 +282,5 @@ $ibo-welcome-popup--messages-stack--background-color: $ibo-color-grey-700;
$ibo-welcome-popup--stack-item--background-color: $ibo-color-grey-600; $ibo-welcome-popup--stack-item--background-color: $ibo-color-grey-600;
$ibo-welcome-popup--stack-item--border-color: $ibo-color-grey-800; $ibo-welcome-popup--stack-item--border-color: $ibo-color-grey-800;
$ibo-welcome-popup--stack-item--is-active--border-color: $ibo-color-grey-900; $ibo-welcome-popup--stack-item--is-active--border-color: $ibo-color-grey-900;
$ibo-vendors-ckeditor--ck-content--text-color: $ibo-color-grey-900;

View File

@@ -1,6 +1,6 @@
/* /**
* @copyright Copyright (C) 2010-2024 Combodo SAS * @license Copyright (c) 2014-2024, CKSource Holding sp. z o.o. All rights reserved.
* @license http://opensource.org/licenses/AGPL-3.0 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/ */
import { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic'; import { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic';
import { Alignment } from '@ckeditor/ckeditor5-alignment'; import { Alignment } from '@ckeditor/ckeditor5-alignment';
@@ -20,11 +20,11 @@ import { List, ListProperties } from '@ckeditor/ckeditor5-list';
import { Mention } from '@ckeditor/ckeditor5-mention'; import { Mention } from '@ckeditor/ckeditor5-mention';
import { Table, TableCaption, TableCellProperties, TableColumnResize, TableProperties, TableToolbar } from '@ckeditor/ckeditor5-table'; import { Table, TableCaption, TableCellProperties, TableColumnResize, TableProperties, TableToolbar } from '@ckeditor/ckeditor5-table';
import { Undo } from '@ckeditor/ckeditor5-undo'; import { Undo } from '@ckeditor/ckeditor5-undo';
import InsertHtml from './plugins/insert-html/insert-html.plugin'; import { RemoveFormat } from '@ckeditor/ckeditor5-remove-format';
import ObjectShortcut from './plugins/object-shortcut/object-shortcut.plugin'; import InsertCarriageReturnAfterBlock from "./plugins/insert-carriage-return-after-block/insert-carriage-return-after-block.plugin";
import './resources/styles/console-theme.css'; import './resources/styles/default-theme.css';
declare class Editor extends ClassicEditor { declare class Editor extends ClassicEditor {
static builtinPlugins: (typeof InsertHtml | typeof Alignment | typeof Superscript | typeof Subscript | typeof Bold | typeof Italic | typeof Strikethrough | typeof Underline | typeof BlockQuote | typeof CodeBlock | typeof Undo | typeof Essentials | typeof FontBackgroundColor | typeof FontColor | typeof FontFamily | typeof FontSize | typeof Heading | typeof Highlight | typeof HorizontalLine | typeof Image | typeof ImageCaption | typeof ImageResize | typeof ImageStyle | typeof ImageToolbar | typeof ImageUpload | typeof Indent | typeof Link | typeof LinkImage | typeof List | typeof ListProperties | typeof Mention | typeof Table | typeof TableCaption | typeof TableCellProperties | typeof TableColumnResize | typeof TableProperties | typeof TableToolbar | typeof ObjectShortcut | typeof PictureEditing)[]; static builtinPlugins: (typeof Alignment | typeof Superscript | typeof Subscript | typeof Bold | typeof Italic | typeof Strikethrough | typeof Underline | typeof BlockQuote | typeof CodeBlock | typeof Undo | typeof Essentials | typeof FontBackgroundColor | typeof FontColor | typeof FontFamily | typeof FontSize | typeof Heading | typeof Highlight | typeof HorizontalLine | typeof Image | typeof ImageCaption | typeof ImageResize | typeof ImageStyle | typeof ImageToolbar | typeof ImageUpload | typeof Indent | typeof Link | typeof LinkImage | typeof List | typeof ListProperties | typeof Mention | typeof Table | typeof TableCaption | typeof TableCellProperties | typeof TableColumnResize | typeof TableProperties | typeof TableToolbar | typeof RemoveFormat | typeof InsertCarriageReturnAfterBlock | typeof PictureEditing)[];
static defaultConfig: EditorConfig; static defaultConfig: EditorConfig;
} }
export default Editor; export default Editor;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +1,3 @@
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
import Plugin from '@ckeditor/ckeditor5-core/src/plugin'; import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
/** /**
* AppendITopClasses Plugin. * AppendITopClasses Plugin.
@@ -10,7 +5,6 @@ import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
* Appends ibo-is-html-content class * Appends ibo-is-html-content class
*/ */
export default class AppendITopClasses extends Plugin { export default class AppendITopClasses extends Plugin {
constructor(editor: any);
static get pluginName(): string; static get pluginName(): string;
init(): void; init(): void;
} }

View File

@@ -1,9 +1,4 @@
/* import { Plugin, type Editor } from 'ckeditor5/src/core.js';
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
import { Plugin, type Editor } from '@ckeditor/ckeditor5-core';
/** /**
* DetectChanges Plugin. * DetectChanges Plugin.
* *

View File

@@ -1,8 +1,3 @@
/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
import { Plugin } from '@ckeditor/ckeditor5-core'; import { Plugin } from '@ckeditor/ckeditor5-core';
import { ContextualBalloon } from '@ckeditor/ckeditor5-ui'; import { ContextualBalloon } from '@ckeditor/ckeditor5-ui';
import FormView from './object-shortcut.form-view'; import FormView from './object-shortcut.form-view';

View File

@@ -60,6 +60,7 @@ import DetectChanges from "./plugins/detect-change/detect-change.plugin";
import UpdateInputOnChange from "./plugins/update-input-on-change/update-input-on-change.plugin"; import UpdateInputOnChange from "./plugins/update-input-on-change/update-input-on-change.plugin";
import Disabler from "./plugins/disabler/disabler.plugin"; import Disabler from "./plugins/disabler/disabler.plugin";
import InsertHtml from './plugins/insert-html/insert-html.plugin'; import InsertHtml from './plugins/insert-html/insert-html.plugin';
import InsertCarriageReturnAfterBlock from "./plugins/insert-carriage-return-after-block/insert-carriage-return-after-block.plugin";
// You can read more about extending the build with additional plugins in the "Installing plugins" guide. // You can read more about extending the build with additional plugins in the "Installing plugins" guide.
// See https://ckeditor.com/docs/ckeditor5/latest/installation/plugins/installing-plugins.html for details. // See https://ckeditor.com/docs/ckeditor5/latest/installation/plugins/installing-plugins.html for details.
@@ -128,7 +129,8 @@ class Editor extends ClassicEditor {
InsertHtml, InsertHtml,
DetectChanges, DetectChanges,
UpdateInputOnChange, UpdateInputOnChange,
Disabler Disabler,
InsertCarriageReturnAfterBlock
]; ];
// default configuration editor // default configuration editor

View File

@@ -0,0 +1,41 @@
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
import Node from '@ckeditor/ckeditor5-engine/src/model/node';
export default class InsertCarriageReturnAfterBlock extends Plugin {
init() {
const editor = this.editor;
// Array of block elements type to check for
const blockElements = ['codeBlock', 'div', 'pre'];
// This function checks if the inserted element is one of the block elements we want a newline after
const isBlockElement = (node: Node | null) => {
return node ? blockElements.some(element => node.is('element', element)) : false;
};
// Listen to changes in the model
editor.model.document.on('change:data', (evt, batch) => {
if (batch.isLocal) {
const changes = Array.from(editor.model.document.differ.getChanges());
const currentCursorPosition = editor.model.document.selection.getFirstPosition();
// Iterate over the changes and insert a newline after the block element when needed
changes.forEach(change => {
if (change.type === 'insert' && isBlockElement(change.position.nodeAfter)) {
editor.model.change(writer => {
const position = change.position.getShiftedBy(change.length);
// Insert a newline after the block element
editor.execute( 'insertParagraph', {
position: position,
} );
});
}
});
// Restore the cursor position (most likely in the created block)
editor.model.change(writer => {
writer.setSelection(currentCursorPosition);
});
}
});
}
}

View File

@@ -97,9 +97,15 @@ $(function()
} }
else if( $(oElem).is(':radio')) else if( $(oElem).is(':radio'))
{ {
if($(oElem).is(':checked')) let nameRadioButton= $(oElem).prop('name');
let radioCheckProp = $('[name='+nameRadioButton+']:checked');
if(radioCheckProp.length === 1)
{ {
value =$(oElem).val(); value = radioCheckProp.val();
}
else
{
value = "";
} }
} }
else if($(oElem).is(':checkbox')) else if($(oElem).is(':checkbox'))

View File

@@ -8,6 +8,7 @@
*/ */
$(document).ready(function () { $(document).ready(function () {
// AJAX calls handling
// - Error messages regarding the error code // - Error messages regarding the error code
$(document).ajaxError(function (event, jqxhr, options) { $(document).ajaxError(function (event, jqxhr, options) {
// User is not logged in // User is not logged in

View File

@@ -27,27 +27,20 @@ use Combodo\iTop\Service\TemporaryObjects\TemporaryObjectManager;
require_once('../approot.inc.php'); require_once('../approot.inc.php');
// check if header contains X-Combodo-Ajax for POST request (CSRF protection for ajax calls)
if (!isset($_SERVER['HTTP_X_COMBODO_AJAX']) && $_SERVER['REQUEST_METHOD'] === 'POST') {
$sReferer = utils::HtmlEntities($_SERVER['HTTP_REFERER']);
IssueLog::Error("Unprotected ajax call from: $sReferer", 'SECURITY');
header('HTTP/1.1 401 Unauthorized');
die('Unauthorized access. Please see https://www.itophub.io/wiki/page?id=3_2_0:release:developer#checking_for_the_presence_of_specific_header_in_the_post_to_enhance_protection_against_csrf_attacks');
}
function LogErrorMessage($sMsgPrefix, $aContextInfo) {
$sCurrentUserLogin = UserRights::GetUser();
$sContextInfo = urldecode(http_build_query($aContextInfo, '', ', '));
$sErrorMessage = "$sMsgPrefix - User='$sCurrentUserLogin', $sContextInfo";
IssueLog::Error($sErrorMessage);
}
try try
{ {
require_once(APPROOT.'/application/startup.inc.php'); require_once(APPROOT.'/application/startup.inc.php');
require_once(APPROOT.'/application/user.preferences.class.inc.php'); require_once(APPROOT.'/application/user.preferences.class.inc.php');
// check if header contains X-Combodo-Ajax for POST request (CSRF protection for ajax calls)
if (!isset($_SERVER['HTTP_X_COMBODO_AJAX']) && $_SERVER['REQUEST_METHOD'] !== 'GET') {
$sReferer = $_SERVER['HTTP_REFERER'];
$sErrorMsg = 'Unauthorized access. Please see https://www.itophub.io/wiki/page?id=3_2_0:release:developer#checking_for_the_presence_of_specific_header_in_the_post_to_enhance_protection_against_csrf_attacks';
IssueLog::Error("Unprotected ajax call from: $sReferer. $sErrorMsg");
header('HTTP/1.1 401 Unauthorized');
die($sErrorMsg);
}
IssueLog::Trace('----- Request: '.utils::GetRequestUri(), LogChannels::WEB_REQUEST); IssueLog::Trace('----- Request: '.utils::GetRequestUri(), LogChannels::WEB_REQUEST);
$oKPI = new ExecutionKPI(); $oKPI = new ExecutionKPI();
$oKPI->ComputeAndReport('Data model loaded'); $oKPI->ComputeAndReport('Data model loaded');
@@ -2609,3 +2602,11 @@ EOF
echo utils::EscapeHtml($e->GetMessage()); echo utils::EscapeHtml($e->GetMessage());
IssueLog::Error($e->getMessage()."\nDebug trace:\n".$e->getTraceAsString()); IssueLog::Error($e->getMessage()."\nDebug trace:\n".$e->getTraceAsString());
} }
function LogErrorMessage($sMsgPrefix, $aContextInfo) {
$sCurrentUserLogin = UserRights::GetUser();
$sContextInfo = urldecode(http_build_query($aContextInfo, '', ', '));
$sErrorMessage = "$sMsgPrefix - User='$sCurrentUserLogin', $sContextInfo";
IssueLog::Error($sErrorMessage);
}

View File

@@ -879,7 +879,7 @@ HTML;
// - API: Inline scripts // - API: Inline scripts
/** @var \iBackofficeScriptExtension $oExtensionInstance */ /** @var \iBackofficeScriptExtension $oExtensionInstance */
foreach (MetaModel::EnumPlugins('iBackofficeScriptExtension') as $oExtensionInstance) { foreach (MetaModel::EnumPlugins('iBackofficeScriptExtension') as $oExtensionInstance) {
$this->add_early_script($oExtensionInstance->GetScript()); $this->add_script($oExtensionInstance->GetScript());
} }
// - API: Init. scripts // - API: Init. scripts
/** @var \iBackofficeInitScriptExtension $oExtensionInstance */ /** @var \iBackofficeInitScriptExtension $oExtensionInstance */