Skip to content

Commit a94488b

Browse files
author
Pablo Gamito
committed
Added popup dialog for additional options
1 parent 94eac00 commit a94488b

File tree

1 file changed

+71
-2
lines changed

1 file changed

+71
-2
lines changed

js/menu.js

Lines changed: 71 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,66 @@ function generateVerticalMenu() {
192192
return $('<div class="goog-menu goog-menu-vertical docs-material goog-menu-noaccel docs-menu-hide-mnemonics" style="user-select: none; display: none;" role="menu" aria-haspopup="true"></div>');
193193
}
194194

195+
function generateDialogBackground() {
196+
return $('<div class="modal-dialog-bg" style="opacity: 0.75; width: 100vw; height: 100vh;" aria-hidden="true"></div>');
197+
}
198+
199+
/**
200+
* @function
201+
* @param {string} title the title of the dialog
202+
* @param {DOMElement} dialogBackground background to apply to body (such as a
203+
* blur background)
204+
* @param {function} applyCallback the function will run when apply button is
205+
* clicked
206+
*/
207+
function generateDialog(title, $dialogBackground, applyCallback) {
208+
const $dialog = $(
209+
'<div class="modal-dialog docs-dialog" tabindex="0" role="dialog" style="position: fixed; top: 50%; left: 50%;transform: translate(-50%, -50%); opacity: 1;">' +
210+
'<div class="modal-dialog-title modal-dialog-title-draggable">' +
211+
'<span class="modal-dialog-title-text" id=":703" role="heading">' + title + '</span>' +
212+
'<span class="modal-dialog-title-close" role="button" tabindex="0" aria-label="Close"></span>' +
213+
'</div>' +
214+
'<div class="modal-dialog-content">' +
215+
'<div class="kix-columnoptionsdialog-content">' +
216+
'<div class="kix-columnoptionsdialog-content-left-side goog-inline-block">' +
217+
'<div class="kix-columnoptionsdialog-section">' +
218+
'<div class="kix-columnoptionsdialog-title goog-inline-block">' +
219+
// Options labels will be inserted here +
220+
'</div>' +
221+
'<div class="kix-columnoptionsdialog-control goog-inline-block">' +
222+
// Options control items will be inserted here
223+
'</div>' +
224+
'</div>' +
225+
'</div>' +
226+
'</div>' +
227+
'</div>' +
228+
'<div class="modal-dialog-buttons">' +
229+
'<button name="apply" class="goog-buttonset-default goog-buttonset-action">Apply</button>' +
230+
'<button name="cancel">Cancel</button>' +
231+
'</div>' +
232+
'</div>'
233+
);
234+
235+
$dialog.find(".modal-dialog-title-close").click(function() {
236+
closeDialog($dialog, $dialogBackground);
237+
});
238+
239+
$dialog.find("button[name='apply']").click(function() {
240+
closeDialog($dialog, $dialogBackground);
241+
applyCallback();
242+
});
243+
244+
$dialog.find("button[name='cancel']").click(function() {
245+
closeDialog($dialog, $dialogBackground);
246+
})
247+
248+
return $dialog;
249+
}
250+
251+
function closeDialog($dialog, $dialogBackground) {
252+
$dialog.remove();
253+
$dialogBackground.remove();
254+
}
195255

196256
/**
197257
* Line Numbering Menu Generation Functions
@@ -204,11 +264,20 @@ function generateLineNumberingVerticalMenu() {
204264
$verticalMenu.append(generateMenuItem("Number selection"));
205265

206266
$verticalMenu.append(generateMenuSeparator());
207-
267+
208268
$verticalMenu.append(generateCheckboxMenuItem("Number blank lines", false));
209269
$verticalMenu.append(generateCheckboxMenuItem("Restart line numbering on each page", false));
210270
$verticalMenu.append(generateMenuItem("Add number/content divider"));
211-
$verticalMenu.append(generateMenuItem("More options..."));
271+
272+
const $moreOptionsMenuItem = generateMenuItem("More options...");
273+
$moreOptionsMenuItem.click(function() {
274+
const $dialogBackground = generateDialogBackground()
275+
$('body').append(generateDialog("Line numbering options", $dialogBackground, function() {
276+
277+
}));
278+
$('body').append($dialogBackground);
279+
});
280+
$verticalMenu.append($moreOptionsMenuItem);
212281

213282
return $verticalMenu;
214283
}

0 commit comments

Comments
 (0)