Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion src/BloomBrowserUI/bookEdit/css/origamiEditing.less
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,10 @@
top: @ToggleVerticalOffset;
width: 100%;
display: flex;
justify-content: end;
justify-content: space-between;
box-sizing: border-box;
}

.origami-toggle {
cursor: pointer;
margin-right: 19px;
Expand All @@ -160,6 +161,28 @@
display: inline;
}
}
.page-settings-button {
display: flex;
align-items: center;
justify-content: center;
width: 24px;
height: 24px;
padding: 0;
margin-right: 8px;
border: none;
background-color: transparent;
cursor: pointer;
color: @bloom-purple;

&:hover {
opacity: 0.8;
}

svg {
width: 20px;
height: 20px;
}
}

// here follows the inner workings of the toggle
.onoffswitch {
Expand Down
7 changes: 7 additions & 0 deletions src/BloomBrowserUI/bookEdit/editViewFrame.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ export { showPageChooserDialog };
import "../lib/errorHandler";
import { showBookSettingsDialog } from "./bookSettings/BookSettingsDialog";
export { showBookSettingsDialog };
import { showPageSettingsDialog } from "./pageSettings/PageSettingsDialog";
import { showRegistrationDialogForEditTab } from "../react_components/registration/registrationDialog";
export { showRegistrationDialogForEditTab as showRegistrationDialog };
import { showAboutDialog } from "../react_components/aboutDialog";
Expand Down Expand Up @@ -261,6 +262,10 @@ export function showEditViewBookSettingsDialog(
showBookSettingsDialog(initiallySelectedGroupIndex);
}

export function showEditViewPageSettingsDialog() {
showPageSettingsDialog();
}

export function showAboutDialogInEditTab() {
showAboutDialog();
}
Expand Down Expand Up @@ -319,6 +324,7 @@ interface EditTabBundleApi {
showCopyrightAndLicenseDialog: typeof showCopyrightAndLicenseDialog;
showEditViewTopicChooserDialog: typeof showEditViewTopicChooserDialog;
showEditViewBookSettingsDialog: typeof showEditViewBookSettingsDialog;
showEditViewPageSettingsDialog: typeof showEditViewPageSettingsDialog;
showAboutDialogInEditTab: typeof showAboutDialogInEditTab;
showRequiresSubscriptionDialog: typeof showRequiresSubscriptionDialog;
showRegistrationDialogInEditTab: typeof showRegistrationDialogInEditTab;
Expand Down Expand Up @@ -356,6 +362,7 @@ window.editTabBundle = {
showCopyrightAndLicenseDialog,
showEditViewTopicChooserDialog,
showEditViewBookSettingsDialog,
showEditViewPageSettingsDialog,
showAboutDialogInEditTab,
showRequiresSubscriptionDialog,
showRegistrationDialogInEditTab,
Expand Down
28 changes: 23 additions & 5 deletions src/BloomBrowserUI/bookEdit/js/origami.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// not yet: neither bloomEditing nor this is yet a module import {SetupImage} from './bloomEditing';
///<reference path="../../lib/split-pane/split-pane.d.ts" />
import { SetupImage } from "./bloomImages";
import { kBloomCanvasClass } from "../toolbox/canvas/canvasElementUtils";
import "../../lib/split-pane/split-pane.js";
Expand Down Expand Up @@ -52,6 +50,7 @@ export function setupOrigami() {
// the two results, but none of the controls shows up if we leave it all
// outside the bloomApi functions.
$(".origami-toggle .onoffswitch").change(layoutToggleClickHandler);
$(".page-settings-button").click(pageSettingsButtonClickHandler);

if ($(".customPage .marginBox.origami-layout-mode").length) {
setupLayoutMode();
Expand Down Expand Up @@ -354,11 +353,16 @@ function getAbovePageControlContainer(): JQuery {
.getElementsByClassName("bloom-page")[0]
?.getAttribute("data-tool-id") === "game"
) {
return $("<div class='above-page-control-container bloom-ui'></div>");
return $(
`<div class='above-page-control-container bloom-ui'>\
${getPageSettingsButtonHtml()}\
</div>`,
);
}
return $(
"\
`\
<div class='above-page-control-container bloom-ui'> \
${getPageSettingsButtonHtml()}\
<div class='origami-toggle bloom-ui'> \
<div data-i18n='EditTab.CustomPage.ChangeLayout'>Change Layout</div> \
<div class='onoffswitch'> \
Expand All @@ -369,10 +373,24 @@ function getAbovePageControlContainer(): JQuery {
</label> \
</div> \
</div> \
</div>",
</div>`,
);
}

function getPageSettingsButtonHtml(): string {
// SVG path matches MUI Settings icon
return `<button class='page-settings-button' data-i18n='[title]PageSettings.OpenTooltip' title='Open Page Settings...'>\
<svg viewBox="0 0 24 24" fill="currentColor">\
<path d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"/>\
</svg>\
</button>`;
}

function pageSettingsButtonClickHandler(e: Event) {
e.preventDefault();
post("editView/showPageSettingsDialog");
}

function getButtons() {
const buttons = $(
"<div class='origami-controls bloom-ui origami-ui'></div>",
Expand Down
Loading