added type and mime classes on body as well #383

This commit is contained in:
zadam 2019-01-28 21:42:37 +01:00
parent 90895f1288
commit 707df18b93
6 changed files with 43 additions and 27 deletions

View File

@ -87,7 +87,7 @@ addTabHandler((function() {
$themeSelect.change(function() { $themeSelect.change(function() {
const newTheme = $(this).val(); const newTheme = $(this).val();
for (const clazz of $body[0].classList) { for (const clazz of Array.from($body[0].classList)) { // create copy to safely iterate over while removing classes
if (clazz.startsWith("theme-")) { if (clazz.startsWith("theme-")) {
$body.removeClass(clazz); $body.removeClass(clazz);
} }

View File

@ -30,6 +30,7 @@ const $noteIdDisplay = $("#note-id-display");
const $childrenOverview = $("#children-overview"); const $childrenOverview = $("#children-overview");
const $scriptArea = $("#note-detail-script-area"); const $scriptArea = $("#note-detail-script-area");
const $savedIndicator = $("#saved-indicator"); const $savedIndicator = $("#saved-indicator");
const $body = $("body");
let currentNote = null; let currentNote = null;
@ -145,12 +146,21 @@ async function saveNoteIfChanged() {
$savedIndicator.fadeIn(); $savedIndicator.fadeIn();
} }
function setNoteBackgroundIfProtected(note) { function updateNoteView() {
$noteDetailWrapper.toggleClass("protected", note.isProtected); $noteDetailWrapper.toggleClass("protected", currentNote.isProtected);
$protectButton.toggleClass("active", note.isProtected); $protectButton.toggleClass("active", currentNote.isProtected);
$protectButton.prop("disabled", note.isProtected); $protectButton.prop("disabled", currentNote.isProtected);
$unprotectButton.toggleClass("active", !note.isProtected); $unprotectButton.toggleClass("active", !currentNote.isProtected);
$unprotectButton.prop("disabled", !note.isProtected || !protectedSessionHolder.isProtectedSessionAvailable()); $unprotectButton.prop("disabled", !currentNote.isProtected || !protectedSessionHolder.isProtectedSessionAvailable());
for (const clazz of Array.from($body[0].classList)) { // create copy to safely iterate over while removing classes
if (clazz.startsWith("type-") || clazz.startsWith("mime-")) {
$body.removeClass(clazz);
}
}
$body.addClass(utils.getNoteTypeClass(currentNote.type));
$body.addClass(utils.getMimeTypeClass(currentNote.mime));
} }
async function handleProtectedSession() { async function handleProtectedSession() {
@ -193,7 +203,7 @@ async function loadNoteDetail(noteId) {
$noteIdDisplay.html(noteId); $noteIdDisplay.html(noteId);
setNoteBackgroundIfProtected(currentNote); updateNoteView();
$noteDetailWrapper.show(); $noteDetailWrapper.show();
@ -344,7 +354,7 @@ setInterval(saveNoteIfChanged, 3000);
export default { export default {
reload, reload,
switchToNote, switchToNote,
setNoteBackgroundIfProtected, updateNoteView,
loadNote, loadNote,
getCurrentNote, getCurrentNote,
getCurrentNoteType, getCurrentNoteType,

View File

@ -125,7 +125,7 @@ function NoteTypeModel() {
} }
self.type('text'); self.type('text');
self.mime(''); self.mime('text/html');
save(); save();
}; };
@ -158,7 +158,7 @@ function NoteTypeModel() {
} }
self.type('code'); self.type('code');
self.mime(''); self.mime('text/plain');
save(); save();
}; };

View File

@ -125,7 +125,7 @@ async function protectNoteAndSendToServer() {
treeService.setProtected(note.noteId, note.isProtected); treeService.setProtected(note.noteId, note.isProtected);
noteDetailService.setNoteBackgroundIfProtected(note); noteDetailService.updateNoteView();
} }
async function unprotectNoteAndSendToServer() { async function unprotectNoteAndSendToServer() {
@ -152,7 +152,7 @@ async function unprotectNoteAndSendToServer() {
treeService.setProtected(currentNote.noteId, currentNote.isProtected); treeService.setProtected(currentNote.noteId, currentNote.isProtected);
noteDetailService.setNoteBackgroundIfProtected(currentNote); noteDetailService.updateNoteView();
} }
async function protectSubtree(noteId, protect) { async function protectSubtree(noteId, protect) {

View File

@ -166,26 +166,15 @@ async function getExtraClasses(note) {
extraClasses.push(note.cssClass); extraClasses.push(note.cssClass);
} }
extraClasses.push(note.type); extraClasses.push(utils.getNoteTypeClass(note.type));
if (note.mime) { // some notes should not have mime type (e.g. render) if (note.mime) { // some notes should not have mime type (e.g. render)
extraClasses.push(getMimeTypeClass(note.mime)); extraClasses.push(utils.getMimeTypeClass(note.mime));
} }
return extraClasses.join(" "); return extraClasses.join(" ");
} }
function getMimeTypeClass(mime) {
const semicolonIdx = mime.indexOf(';');
if (semicolonIdx !== -1) {
// stripping everything following the semicolon
mime = mime.substr(0, semicolonIdx);
}
return 'mime-' + mime.toLowerCase().replace(/[\W_]+/g,"-");
}
export default { export default {
prepareTree, prepareTree,
prepareBranch, prepareBranch,

View File

@ -172,6 +172,21 @@ function setCookie(name, value) {
document.cookie = name + "=" + (value || "") + expires + "; path=/"; document.cookie = name + "=" + (value || "") + expires + "; path=/";
} }
function getNoteTypeClass(type) {
return "type-" + type;
}
function getMimeTypeClass(mime) {
const semicolonIdx = mime.indexOf(';');
if (semicolonIdx !== -1) {
// stripping everything following the semicolon
mime = mime.substr(0, semicolonIdx);
}
return 'mime-' + mime.toLowerCase().replace(/[\W_]+/g,"-");
}
export default { export default {
reloadApp, reloadApp,
parseDate, parseDate,
@ -198,5 +213,7 @@ export default {
bindShortcut, bindShortcut,
isMobile, isMobile,
isDesktop, isDesktop,
setCookie setCookie,
getNoteTypeClass,
getMimeTypeClass
}; };