diff --git a/config/configuration/bundles/src/bundle/org/sakaiproject/config/bundle/default.sakai.properties b/config/configuration/bundles/src/bundle/org/sakaiproject/config/bundle/default.sakai.properties index e8a9814fe453..26c68775df05 100644 --- a/config/configuration/bundles/src/bundle/org/sakaiproject/config/bundle/default.sakai.properties +++ b/config/configuration/bundles/src/bundle/org/sakaiproject/config/bundle/default.sakai.properties @@ -4607,6 +4607,11 @@ # DEFAULT: false # lessonbuilder.personalize.text=true +# Allows the user to print all the lesson pages using a button next to the "Print" option +# Turning on this property can cause performance issues. Enable it at your own risk +# DEFAULT: false +# lessonbuilder.printAll=true + ## END LESSONBUILDER # If you don't want to use ui.service as the Production name, use: diff --git a/lessonbuilder/api/src/resources/lessons.properties b/lessonbuilder/api/src/resources/lessons.properties index 925eba27096d..51302c42b747 100644 --- a/lessonbuilder/api/src/resources/lessons.properties +++ b/lessonbuilder/api/src/resources/lessons.properties @@ -462,6 +462,7 @@ simplepage.edit_youtube=Edit YouTube Link Below simplepage.edit_movie=Edit Item Below simplepage.open_new_window=Open in new window simplepage.print_view=Print +simplepage.print_all=Print All simplepage.edititems=Edit Items simplepage.itemstatus=Item Status simplepage.items=Items diff --git a/lessonbuilder/api/src/resources/lessons_es.properties b/lessonbuilder/api/src/resources/lessons_es.properties index d2b8fe681bcf..bfa3ab9d0737 100644 --- a/lessonbuilder/api/src/resources/lessons_es.properties +++ b/lessonbuilder/api/src/resources/lessons_es.properties @@ -460,7 +460,8 @@ simplepage.edit_youtubelink=Editar en el enlace de Youtube simplepage.edit_youtube=Editar el siguiente enlace de Youtube simplepage.edit_movie=Editar el siguiente \u00edtem simplepage.open_new_window=Abrir en una ventana nueva -simplepage.print_view=Vista de impresi\u00f3n +simplepage.print_view=Imprimir +simplepage.print_all=Imprimir todo simplepage.edititems=Editar \u00edtems simplepage.itemstatus=Estado del \u00edtem simplepage.items=\u00cdtems diff --git a/lessonbuilder/tool/src/java/org/sakaiproject/lessonbuildertool/tool/producers/ShowPageProducer.java b/lessonbuilder/tool/src/java/org/sakaiproject/lessonbuildertool/tool/producers/ShowPageProducer.java index 68712338d2e8..047f1e50e8da 100644 --- a/lessonbuilder/tool/src/java/org/sakaiproject/lessonbuildertool/tool/producers/ShowPageProducer.java +++ b/lessonbuilder/tool/src/java/org/sakaiproject/lessonbuildertool/tool/producers/ShowPageProducer.java @@ -174,6 +174,8 @@ public void setImageToMimeMap(Map map) { public boolean allowCcExport = ServerConfigurationService.getBoolean("lessonbuilder.cc-export", true); public boolean allowDeleteOrphans = ServerConfigurationService.getBoolean("lessonbuilder.delete-orphans", false); + public boolean isLessonPrintAllEnabled = ServerConfigurationService.getBoolean("lessonbuilder.printAll", false); + // I don't much like the static, because it opens us to a possible race // condition, but I don't see much option // see the setter. It has to be static because it's used in makeLink, which @@ -690,6 +692,13 @@ public void fillComponents(UIContainer tofill, ViewParameters viewParams, Compon showAll.setSource("summary"); UIInternalLink.make(tofill, "print-view", showAll) .decorate(new UITooltipDecorator(messageLocator.getMessage("simplepage.print_view"))); + + if (isLessonPrintAllEnabled) { + UIOutput.make(tofill, "show-print-all"); + } + + UIInternalLink.make(tofill, "print-all", showAll) + .decorate(new UITooltipDecorator(messageLocator.getMessage("simplepage.print_all"))); UIInternalLink.make(tofill, "show-pages", showAll) .decorate(new UITooltipDecorator(messageLocator.getMessage("simplepage.showallpages"))); diff --git a/lessonbuilder/tool/src/webapp/js/show-page.js b/lessonbuilder/tool/src/webapp/js/show-page.js index b4fa3edefc6c..0b885b9afd58 100644 --- a/lessonbuilder/tool/src/webapp/js/show-page.js +++ b/lessonbuilder/tool/src/webapp/js/show-page.js @@ -39,6 +39,15 @@ $(window).load(function () { window.print(); }); + // Print all pages + document.getElementById('print-all').addEventListener('click', function() { + const url = printViewWithParameter(window.location.href); + const win = window.open(url, '_blank'); + win.focus(); + win.print(); + return false; + }); + }); function fixAddBefore(href) { diff --git a/lessonbuilder/tool/src/webapp/templates/ShowPage.html b/lessonbuilder/tool/src/webapp/templates/ShowPage.html index 0a6520ef6bc3..13c9a627f12a 100644 --- a/lessonbuilder/tool/src/webapp/templates/ShowPage.html +++ b/lessonbuilder/tool/src/webapp/templates/ShowPage.html @@ -146,6 +146,12 @@

+ + + + + +