From c8f59ea5472343f3f3d038b3f1ff57d090e38131 Mon Sep 17 00:00:00 2001 From: zadam Date: Thu, 29 Aug 2019 21:08:53 +0200 Subject: [PATCH] options UI for selecting support code note MIME types --- .../0141__add_code_note_mime_types.sql | 5 + src/public/javascripts/dialogs/options.js | 1 + .../javascripts/dialogs/options/code_notes.js | 44 +++++ src/public/javascripts/services/mime_types.js | 187 ++++++++++++++++++ src/public/javascripts/services/note_type.js | 67 +------ src/public/javascripts/widgets/link_map.js | 2 +- src/routes/api/custom_code_mime_types.js | 24 --- src/routes/api/options.js | 3 +- src/routes/routes.js | 2 - src/services/app_info.js | 2 +- src/views/dialogs/options.ejs | 4 + src/views/dialogs/options/code_notes.ejs | 5 + 12 files changed, 257 insertions(+), 89 deletions(-) create mode 100644 db/migrations/0141__add_code_note_mime_types.sql create mode 100644 src/public/javascripts/dialogs/options/code_notes.js create mode 100644 src/public/javascripts/services/mime_types.js delete mode 100644 src/routes/api/custom_code_mime_types.js create mode 100644 src/views/dialogs/options/code_notes.ejs diff --git a/db/migrations/0141__add_code_note_mime_types.sql b/db/migrations/0141__add_code_note_mime_types.sql new file mode 100644 index 000000000..55aac14b9 --- /dev/null +++ b/db/migrations/0141__add_code_note_mime_types.sql @@ -0,0 +1,5 @@ +INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) +VALUES ('codeNotesMimeTypes', '["text/x-csrc","text/x-c++src","text/x-csharp","text/css","text/x-go","text/x-groovy","text/x-haskell","text/html","message/http","text/x-java","application/javascript;env=frontend","application/javascript;env=backend","application/json","text/x-kotlin","text/x-markdown","text/x-perl","text/x-php","text/x-python","text/x-ruby",null,"text/x-sql","text/x-swift","text/xml","text/x-yaml"]', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 1); + +INSERT INTO sync (entityName, entityId, sourceId, utcSyncDate) +VALUES ('options' ,'codeNotesMimeTypes', 'SYNC_FILL', '2018-01-01T00:00:00.000Z'); \ No newline at end of file diff --git a/src/public/javascripts/dialogs/options.js b/src/public/javascripts/dialogs/options.js index 68b62cb90..2e5b991fc 100644 --- a/src/public/javascripts/dialogs/options.js +++ b/src/public/javascripts/dialogs/options.js @@ -17,6 +17,7 @@ export async function showDialog() { (await Promise.all([ import('./options/advanced.js'), import('./options/appearance.js'), + import('./options/code_notes.js'), import('./options/change_password.js'), import('./options/note_revisions.js'), import('./options/protected_session.js'), diff --git a/src/public/javascripts/dialogs/options/code_notes.js b/src/public/javascripts/dialogs/options/code_notes.js new file mode 100644 index 000000000..572e2b928 --- /dev/null +++ b/src/public/javascripts/dialogs/options/code_notes.js @@ -0,0 +1,44 @@ +import server from "../../services/server.js"; +import mimeTypesService from "../../services/mime_types.js"; +import optionsService from "../../services/options.js"; + +export default class CodeNotesOptions { + constructor() { + this.$mimeTypes = $("#options-mime-types"); + } + + async optionsLoaded(options) { + this.$mimeTypes.empty(); + + let idCtr = 1; + + for (const mimeType of await mimeTypesService.getMimeTypes()) { + const id = "code-mime-type-" + (idCtr++); + + this.$mimeTypes.append($("
  • ") + .append($('') + .attr("id", id) + .attr("data-mime-type", mimeType.mime) + .prop("checked", mimeType.enabled)) + .change(() => this.save()) + .append("   ") + .append($('
  • + @@ -36,6 +39,7 @@
    <% include options/appearance.ejs %> <% include options/sidebar.ejs %> + <% include options/code_notes.ejs %> <% include options/change_password.ejs %> <% include options/protected_session.ejs %> <% include options/note_revisions.ejs %> diff --git a/src/views/dialogs/options/code_notes.ejs b/src/views/dialogs/options/code_notes.ejs new file mode 100644 index 000000000..7067e2ad2 --- /dev/null +++ b/src/views/dialogs/options/code_notes.ejs @@ -0,0 +1,5 @@ +
    +

    Available MIME types in the dropdown

    + +
      +
      \ No newline at end of file