From a92ce7c05497443e248b247d2fa186323821028f Mon Sep 17 00:00:00 2001 From: Tom Date: Mon, 10 Feb 2014 16:38:54 -0500 Subject: [PATCH 1/6] include module metadata plugin --- scripts/configs/aloha.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/configs/aloha.coffee b/scripts/configs/aloha.coffee index 20e6a03..7f19d9a 100644 --- a/scripts/configs/aloha.coffee +++ b/scripts/configs/aloha.coffee @@ -67,6 +67,7 @@ define ['jquery'], ($) -> 'oer/multipart' 'oer/copy' 'oer/cleanup' + 'oer/metadata' ] # This whole thing is what's needed to: From 676a6f4bedd482853e81729e22097d327d482012 Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 20 Feb 2014 15:17:45 -0500 Subject: [PATCH 2/6] some module metadata editing integrations for bookish --- scripts/configs/aloha.coffee | 1 + .../workspace/content/content-edit.coffee | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/scripts/configs/aloha.coffee b/scripts/configs/aloha.coffee index bcb14ba..1262672 100644 --- a/scripts/configs/aloha.coffee +++ b/scripts/configs/aloha.coffee @@ -67,6 +67,7 @@ define ['jquery'], ($) -> 'oer/multipart' 'oer/copy' 'oer/cleanup' + 'oer/metadata' ] # This whole thing is what's needed to: diff --git a/scripts/views/workspace/content/content-edit.coffee b/scripts/views/workspace/content/content-edit.coffee index a26692a..dfec018 100644 --- a/scripts/views/workspace/content/content-edit.coffee +++ b/scripts/views/workspace/content/content-edit.coffee @@ -10,3 +10,22 @@ define [ # **NOTE:** This template is not wrapped in an element template: contentEditTemplate + + initialize: () -> + Aloha.settings.plugins.metadata = Aloha.settings.plugins.metadata || {} + Aloha.settings.plugins.metadata.supplement = '' + + Aloha.settings.plugins.metadata.setMetadata = (metadata) => + @model.set('title', metadata.title) + head = ''+metadata.title+'' + head += '' + @model.set('head', head) + + Aloha.settings.plugins.metadata.filterMetadata = (metadata) => + delete metadata.language if metadata.language + metadata + + @listenTo @model, "change:head", (model, value, options) => + Aloha.settings.plugins.metadata.supplement = @model.get('head') + + super() From 5b00e628b8349007c435f0cf3d2a6d754ac94d41 Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 27 Feb 2014 16:28:25 -0500 Subject: [PATCH 3/6] fix bug where title was not always injected into aloha --- scripts/views/workspace/content/content-edit.coffee | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/views/workspace/content/content-edit.coffee b/scripts/views/workspace/content/content-edit.coffee index dfec018..2d2c265 100644 --- a/scripts/views/workspace/content/content-edit.coffee +++ b/scripts/views/workspace/content/content-edit.coffee @@ -26,6 +26,10 @@ define [ metadata @listenTo @model, "change:head", (model, value, options) => - Aloha.settings.plugins.metadata.supplement = @model.get('head') + # sometimes there is no head. which is dumb. + if @model.get('head') + Aloha.settings.plugins.metadata.supplement = @model.get('head') + else + Aloha.settings.plugins.metadata.supplement = "" + @model.get("title") + "" super() From 5a55b8c8a6a4987e6f9ed0a679fcf9ccbbaa60e1 Mon Sep 17 00:00:00 2001 From: Tom Date: Mon, 3 Mar 2014 12:52:38 -0500 Subject: [PATCH 4/6] when editing the title of a module in the sidebar, actually set the title on the model not just the pointer node --- scripts/views/workspace/sidebar/toc-branch.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/views/workspace/sidebar/toc-branch.coffee b/scripts/views/workspace/sidebar/toc-branch.coffee index 0266dfe..95a75ba 100644 --- a/scripts/views/workspace/sidebar/toc-branch.coffee +++ b/scripts/views/workspace/sidebar/toc-branch.coffee @@ -277,6 +277,6 @@ define [ # TocPointerNodes which inherit their title if it is not overridden title = prompt('Edit Title:', @model.toJSON().title) if title and title != @model.toJSON().title - @model.set('title', title) + (@model.dereferencePointer?() or @model).set('title', title) @renderModelOnly() From 0bc65316f9c85c5633871776dd613b6ad23b0d31 Mon Sep 17 00:00:00 2001 From: Tom Date: Mon, 3 Mar 2014 12:53:05 -0500 Subject: [PATCH 5/6] update title in orange header when it changes --- scripts/views/workspace/content/layouts/editor.coffee | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/views/workspace/content/layouts/editor.coffee b/scripts/views/workspace/content/layouts/editor.coffee index f6bde14..fe4aec5 100644 --- a/scripts/views/workspace/content/layouts/editor.coffee +++ b/scripts/views/workspace/content/layouts/editor.coffee @@ -22,6 +22,10 @@ define [ @$el.parent().parent().parent().parent().find( '#module-title-indicator').text(@model.get('title')) + @listenTo @model, "change:title", => + @$el.parent().parent().parent().parent().find( + '#module-title-indicator').text(@model.get('title')) + # Focus the editor. This has to be done here, because @$el isn't attached # to the DOM before this. We also have to wait until the content is # loaded and the editor is actually activated. From 9f69f222f75d9e51b86ba11f3b31ae4764bc17b1 Mon Sep 17 00:00:00 2001 From: Tom Date: Mon, 3 Mar 2014 12:53:24 -0500 Subject: [PATCH 6/6] update current module when its title changes --- scripts/views/workspace/content/content-edit.coffee | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/views/workspace/content/content-edit.coffee b/scripts/views/workspace/content/content-edit.coffee index 2d2c265..e969197 100644 --- a/scripts/views/workspace/content/content-edit.coffee +++ b/scripts/views/workspace/content/content-edit.coffee @@ -16,7 +16,7 @@ define [ Aloha.settings.plugins.metadata.supplement = '' Aloha.settings.plugins.metadata.setMetadata = (metadata) => - @model.set('title', metadata.title) + @model.set('title', metadata.title, {triggeredByMetadata: true}) head = ''+metadata.title+'' head += '' @model.set('head', head) @@ -25,6 +25,9 @@ define [ delete metadata.language if metadata.language metadata + @listenTo @model, "change:title", (model, value, options) => + Aloha.settings.plugins.metadata.extendMetadata({title: value}) if not options.triggeredByMetadata + @listenTo @model, "change:head", (model, value, options) => # sometimes there is no head. which is dumb. if @model.get('head')