Index: lams_build/lib/pedagogical_planner/1/1/1/LAMS_Pedagogical_Planner_Template.zip =================================================================== diff -u -r8d32e52903d230f8018ac609041934db7f180e73 -rda2924f4d15aa5587ed5e5dc7152b850994bdd87 Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java =================================================================== diff -u -r05db875c7974d705f89231416ff6dfe91a5e70f1 -rda2924f4d15aa5587ed5e5dc7152b850994bdd87 --- lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java (.../IndexAction.java) (revision 05db875c7974d705f89231416ff6dfe91a5e70f1) +++ lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java (.../IndexAction.java) (revision da2924f4d15aa5587ed5e5dc7152b850994bdd87) @@ -70,7 +70,6 @@ * @struts.action-forward name="passwordChanged" path=".passwordChangeOk" * @struts.action-forward name="portrait" path="/portrait.do" * @struts.action-forward name="lessons" path="/profile.do?method=lessons" - * @struts.action-forward name="planner" path="/pedagogicalPlanner.do" */ public class IndexAction extends Action { @@ -115,8 +114,6 @@ } else if (StringUtils.equals(tab, "community")) { request.setAttribute("tab", tab); return mapping.findForward("community"); - } else if (StringUtils.equals(tab, "planner")) { - return mapping.findForward("planner"); } if (request.isUserInRole(Role.SYSADMIN)) { @@ -138,7 +135,7 @@ private void setHeaderLinks(HttpServletRequest request) { List headerLinks = new ArrayList(); if (request.isUserInRole(Role.AUTHOR) || request.isUserInRole(Role.AUTHOR_ADMIN)) { - headerLinks.add(new IndexLinkBean("index.planner", "index.do?tab=planner")); + headerLinks.add(new IndexLinkBean("index.planner", "javascript:openPedagogicalPlanner()")); headerLinks.add(new IndexLinkBean("index.author", "javascript:openAuthor()")); } headerLinks.add(new IndexLinkBean("index.myprofile", "index.do?tab=profile")); Index: lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerAction.java =================================================================== diff -u -r838cf747c7496f975da3b85d8024f9c53eda9aee -rda2924f4d15aa5587ed5e5dc7152b850994bdd87 --- lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerAction.java (.../PedagogicalPlannerAction.java) (revision 838cf747c7496f975da3b85d8024f9c53eda9aee) +++ lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerAction.java (.../PedagogicalPlannerAction.java) (revision da2924f4d15aa5587ed5e5dc7152b850994bdd87) @@ -72,7 +72,7 @@ * @author Marcin Cieslak * * @struts:action path="/pedagogicalPlanner" scope="request" parameter="method" - * @struts:action-forward name="success" path=".planner" + * @struts:action-forward name="success" path="/pedagogical_planner/base.jsp" * * @struts:action path="/pedagogicalPlanner/grouping" scope="request" name="GroupingPedagogicalPlannerForm" * validate="false" parameter="method" @@ -194,7 +194,6 @@ planner.setLearningDesignID(learningDesignID); request.setAttribute(CentralConstants.ATTR_PLANNER, planner); - request.setAttribute("tab", "planner"); return mapping.findForward("success"); } Index: lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerForm.java =================================================================== diff -u -r05db875c7974d705f89231416ff6dfe91a5e70f1 -rda2924f4d15aa5587ed5e5dc7152b850994bdd87 --- lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerForm.java (.../PedagogicalPlannerForm.java) (revision 05db875c7974d705f89231416ff6dfe91a5e70f1) +++ lams_central/src/java/org/lamsfoundation/lams/web/planner/PedagogicalPlannerForm.java (.../PedagogicalPlannerForm.java) (revision da2924f4d15aa5587ed5e5dc7152b850994bdd87) @@ -50,6 +50,10 @@ * Set when submitting form in base.jsp page. */ private Integer callID; + /** + * Should the form contain tooltip with online instructions? + */ + private Boolean editingAdviceAvailable; public Long getToolContentID() { return toolContentID; @@ -99,4 +103,12 @@ public void setActivityOrderNumber(Integer activityOrderNumber) { this.activityOrderNumber = activityOrderNumber; } + + public Boolean getEditingAdviceAvailable() { + return editingAdviceAvailable; + } + + public void setEditingAdviceAvailable(Boolean editingAdviceAvailable) { + this.editingAdviceAvailable = editingAdviceAvailable; + } } \ No newline at end of file Index: lams_central/web/WEB-INF/struts/struts-config.xml =================================================================== diff -u -r05db875c7974d705f89231416ff6dfe91a5e70f1 -rda2924f4d15aa5587ed5e5dc7152b850994bdd87 --- lams_central/web/WEB-INF/struts/struts-config.xml (.../struts-config.xml) (revision 05db875c7974d705f89231416ff6dfe91a5e70f1) +++ lams_central/web/WEB-INF/struts/struts-config.xml (.../struts-config.xml) (revision da2924f4d15aa5587ed5e5dc7152b850994bdd87) @@ -151,11 +151,6 @@ path="/profile.do?method=lessons" redirect="false" /> - - - - - Index: lams_central/web/css/jTip.css =================================================================== diff -u --- lams_central/web/css/jTip.css (revision 0) +++ lams_central/web/css/jTip.css (revision da2924f4d15aa5587ed5e5dc7152b850994bdd87) @@ -0,0 +1,88 @@ +/* ----- add selectors here for font sizing ----- */ +#JT_close_left, #JT_close_right{font-size: 1.1em;} +#JT_copy p, #JT_copy ul{font-size: 1.1em;} + +/* ---------->>> jtip <<<---------------------------------------------------------------*/ + +#JT_arrow_left{ + background: url(../images/css/jtip_arrow_left.gif) no-repeat left top; + position: absolute; + z-index:101; + left:-12px; + height:23px; + width:10px; +} + +#JT_arrow_right{ + background: url(../images/css/jtip_arrow_right.gif) no-repeat left top; + position: absolute; + z-index:101; + height:23px; + width:11px; +} + +/* for consistency between firefox and IE */ +body > #JT_arrow_right { + margin-left: 3px; +} + +#JT { + position: absolute; + z-index:100; + border: 2px solid #ccc; + background-color: #fff; + overflow: hidden; +} + +#JT_copy{ + padding:10px; + color:#333; +} + +.JT_loader{ + background: url(../images/css/jtip_loader.gif) no-repeat center center; + width:100%; + height:12px; +} + +#JT_close_left{ + background-color: #ccc; + text-align: left; + padding-left: 8px; + padding-bottom: 5px; + padding-top: 2px; + font-weight:bold; +} + +#JT_close_right{ + background-color: #ccc; + text-align: left; + padding-left: 8px; + padding-bottom: 5px; + padding-top: 2px; + font-weight:bold; +} + +#JT_copy p{ +margin:3px 0; +} + +#JT_copy img{ + padding: 1px; + border: 1px solid #ccc; +} + +.jTip{ +cursor:help; +} + +#JT iframe{ + display:none; + display/**/:block; + position:absolute; + top:0; + left:0; + z-index:-1; + filter:mask(); + height:3000px; +} Index: lams_central/web/images/css/jtip_arrow_left.gif =================================================================== diff -u Binary files differ Index: lams_central/web/images/css/jtip_arrow_right.gif =================================================================== diff -u Binary files differ Index: lams_central/web/images/css/jtip_loader.gif =================================================================== diff -u Binary files differ Index: lams_central/web/includes/javascript/jtip.js =================================================================== diff -u --- lams_central/web/includes/javascript/jtip.js (revision 0) +++ lams_central/web/includes/javascript/jtip.js (revision da2924f4d15aa5587ed5e5dc7152b850994bdd87) @@ -0,0 +1,147 @@ +/* + * JTip + * By Cody Lindley (http://www.codylindley.com) + * Under an Attribution, Share Alike License + * JTip is built on top of the very light weight jquery library. + + * Modifications by Rey Bango and Karl Swedberg + * Modifications by Marcin Cieslak: hover in JT_init changed to mouseover and mouseout, + * works better with FF3. Removed wrap in JT_init, + * it made the link invisible for some reason. + */ + +//on page load (as soon as it is ready) call JT_init +$(document).ready(JT_init); + +function JT_init(){ + // 9/21/06 - Rey Bango added hide() method to correct an issue with FF + $("a.jTip") + .mouseover(function() { + JT_show(this.href,this.id,this.name) + }) + .mouseout(function(){$('#JT, #JT_arrow_left, #JT_arrow_right').hide().remove();}) + .click(function(){return false}); +} + +function JT_show(url,linkId,title){ + if(title == false)title=" "; + var de = document.documentElement; + var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; + var hasArea = w - getAbsoluteLeft(linkId); + var clickElementy = getAbsoluteTop(linkId) - 3; //set y position + + var queryString = url.replace(/^[^\?]+\??/,''); + var params = parseQuery( queryString ); + if(params['width'] === undefined){params['width'] = 250}; + if(params['link'] !== undefined){ + $('#' + linkId).bind('click',function(){window.location = params['link']}); + $('#' + linkId).css('cursor','pointer'); + } + + if(hasArea>((params['width']*1)+75)){ + $("body").append("
"+title+"
");//right side + $('body').append('
'); + var arrowOffset = getElementWidth(linkId) + 11; + var clickElementx = getAbsoluteLeft(linkId) + arrowOffset; //set x position + $('#JT_arrow_left').css({left: (clickElementx - 10) + "px", top: clickElementy +"px"}); + }else{ + $("body").append("
"+title+"
");//left side + $('body').append('
'); + var clickElementx = getAbsoluteLeft(linkId) - ((params['width']*1) + 20); //set x position + $('#JT_arrow_right').css({left: (getAbsoluteLeft(linkId) - 20) + "px", top: clickElementy + "px"}); + } + if ($.browser.msie) { + $('#JT').prepend(''); // iframe for IE select box z-index issue + $('#jTipiFrame').width((params['width']*1) + "px"); + } + $('#JT').css({left: clickElementx+"px", top: clickElementy +"px"}); + + $('#JT_copy').load(url, function() { + //if jtip goes to left side and is partially cut off at left of doc... + if ($('#JT_arrow_right') && clickElementx < 0) { + var JT_width = (getAbsoluteLeft(linkId) - 22); + $('#JT').css({left: 2, width: JT_width}); //adjust width to fit + } + //get the height of the jtip after loading it + var jtip_height = $('#JT').height(); + //adjust the top of jTip + move_jtip(); + if ( (scroll_position + window_height) - clickElementy < jtip_height ) { + var adjusted_top = (window_height - jtip_height) - 6 + scroll_position; + if ( adjusted_top - scroll_position < 0 ) { + $('#JT').css({top: scroll_position + 1}); + } else { + $('#JT').css({top: adjusted_top}); + } + } + }); // end .load() + $('#JT').show(); +} // end JT_show() + +function getElementWidth(objectId) { + x = document.getElementById(objectId); + return x.offsetWidth; +} + +function getAbsoluteLeft(objectId) { + // Get an object left position from the upper left viewport corner + o = document.getElementById(objectId) + oLeft = o.offsetLeft // Get left position from the parent object + while(o.offsetParent!=null) { // Parse the parent hierarchy up to the document element + oParent = o.offsetParent // Get parent object reference + oLeft += oParent.offsetLeft // Add parent left position + o = oParent + } + return oLeft +} + +function getAbsoluteTop(objectId) { + // Get an object top position from the upper left viewport corner + o = document.getElementById(objectId); + oTop = 0; + if(o.offsetParent) { + o = o.offsetParent; + } + while(o) { // Parse the parent hierarchy up to the document element + oTop += o.offsetTop; // Add parent top position + o = o.offsetParent; + } + return oTop +} + +function parseQuery ( query ) { + var Params = new Object (); + if ( ! query ) return Params; // return empty object + var Pairs = query.split(/[;&]/); + for ( var i = 0; i < Pairs.length; i++ ) { + var KeyVal = Pairs[i].split('='); + if ( ! KeyVal || KeyVal.length != 2 ) continue; + var key = unescape( KeyVal[0] ); + var val = unescape( KeyVal[1] ); + val = val.replace(/\+/g, ' '); + Params[key] = val; + } + return Params; +} +function move_jtip() { + if (window.innerHeight) { + scroll_position = window.pageYOffset; + window_height = window.innerHeight; + } + else if (document.documentElement && document.documentElement.scrollTop) { + scroll_position = document.documentElement.scrollTop; + window_height = document.documentElement.clientHeight; + } + else if (document.body) { + scroll_position = document.body.scrollTop; + window_height = document.body.clientHeight; + } +} + +function blockEvents(evt) { + if(evt.target){ + evt.preventDefault(); + }else{ + evt.returnValue = false; + } +} \ No newline at end of file Index: lams_central/web/includes/javascript/openUrls.js =================================================================== diff -u -ra301da49ef54944c21a4c78c60a2637959be30b5 -rda2924f4d15aa5587ed5e5dc7152b850994bdd87 --- lams_central/web/includes/javascript/openUrls.js (.../openUrls.js) (revision a301da49ef54944c21a4c78c60a2637959be30b5) +++ lams_central/web/includes/javascript/openUrls.js (.../openUrls.js) (revision da2924f4d15aa5587ed5e5dc7152b850994bdd87) @@ -74,7 +74,7 @@ function openPedagogicalPlanner(){ if(isMac) { - authorWin = window.open('pedagogicalPlanner.do','aWindow','width=' + authoring_width + ',height=' + screen.height + ',resizable,scrollbars'); + authorWin = window.open('pedagogicalPlanner.do','aWindow','width=' + authoring_width + ',height=' + authoring_height + ',resizable,scrollbars'); } else { @@ -84,7 +84,7 @@ } else { - authorWin = window.open('pedagogicalPlanner.do','aWindow','width=' + authoring_width + ',height=' + screen.height + ',resizable,scrollbars'); + authorWin = window.open('pedagogicalPlanner.do','aWindow','width=' + authoring_width + ',height=' + authoring_height + ',resizable,scrollbars'); authorWin.focus(); } } Index: lams_tool_notebook/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -rf804c6841917cb32b38fa39fc171101dd200184a -rda2924f4d15aa5587ed5e5dc7152b850994bdd87 --- lams_tool_notebook/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision f804c6841917cb32b38fa39fc171101dd200184a) +++ lams_tool_notebook/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision da2924f4d15aa5587ed5e5dc7152b850994bdd87) @@ -110,5 +110,5 @@ message.contentInUseSet =Modification of content is not allowed since one or more learners has attempted the activity. message.alertContentEdit =Warning: One of more learners have accessed this activity. Changing this content will result in learners getting different information. - +label.planner.editing.advice=Editing advice #======= End labels: Exported 103 labels for en AU ===== Index: lams_tool_notebook/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -rf804c6841917cb32b38fa39fc171101dd200184a -rda2924f4d15aa5587ed5e5dc7152b850994bdd87 --- lams_tool_notebook/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision f804c6841917cb32b38fa39fc171101dd200184a) +++ lams_tool_notebook/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision da2924f4d15aa5587ed5e5dc7152b850994bdd87) @@ -110,5 +110,5 @@ message.contentInUseSet =Modification of content is not allowed since one or more learners has attempted the activity. message.alertContentEdit =Warning: One of more learners have accessed this activity. Changing this content will result in learners getting different information. - +label.planner.editing.advice=Editing advice #======= End labels: Exported 103 labels for en AU ===== Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/AuthoringAction.java =================================================================== diff -u -ra74ae929e1b5f6e321e7251fb5bf5f93285c5b92 -rda2924f4d15aa5587ed5e5dc7152b850994bdd87 --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision a74ae929e1b5f6e321e7251fb5bf5f93285c5b92) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision da2924f4d15aa5587ed5e5dc7152b850994bdd87) @@ -375,8 +375,8 @@ notebook.setTitle(authForm.getTitle()); notebook.setInstructions(authForm.getInstructions()); if (mode.isAuthor()) { // Teacher cannot modify following - notebook.setOfflineInstructions(authForm.getOnlineInstruction()); - notebook.setOnlineInstructions(authForm.getOfflineInstruction()); + notebook.setOfflineInstructions(authForm.getOfflineInstruction()); + notebook.setOnlineInstructions(authForm.getOnlineInstruction()); notebook.setLockOnFinished(authForm.isLockOnFinished()); notebook.setAllowRichEditor(authForm.isAllowRichEditor()); Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/PedagogicalPlannerAction.java =================================================================== diff -u -r05db875c7974d705f89231416ff6dfe91a5e70f1 -rda2924f4d15aa5587ed5e5dc7152b850994bdd87 --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/PedagogicalPlannerAction.java (.../PedagogicalPlannerAction.java) (revision 05db875c7974d705f89231416ff6dfe91a5e70f1) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/PedagogicalPlannerAction.java (.../PedagogicalPlannerAction.java) (revision da2924f4d15aa5587ed5e5dc7152b850994bdd87) @@ -37,6 +37,7 @@ import org.lamsfoundation.lams.tool.notebook.model.Notebook; import org.lamsfoundation.lams.tool.notebook.service.INotebookService; import org.lamsfoundation.lams.tool.notebook.service.NotebookServiceProxy; +import org.lamsfoundation.lams.tool.notebook.util.NotebookConstants; import org.lamsfoundation.lams.tool.notebook.web.forms.NotebookPedagogicalPlannerForm; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; @@ -72,7 +73,7 @@ Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); Notebook notebook = getNotebookService().getNotebookByContentId(toolContentID); plannerForm.fillForm(notebook); - return mapping.findForward("success"); + return mapping.findForward(NotebookConstants.SUCCESS); } public ActionForward saveOrUpdatePedagogicalPlannerForm(ActionMapping mapping, ActionForm form, @@ -88,14 +89,22 @@ } else { saveErrors(request, errors); } - return mapping.findForward("success"); + return mapping.findForward(NotebookConstants.SUCCESS); } + public ActionForward getEditingAdvice(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws IOException { + Long toolContentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + Notebook notebook = getNotebookService().getNotebookByContentId(toolContentID); + String onlineInstructions = notebook.getOnlineInstructions(); + writeAJAXResponse(response, onlineInstructions); + return null; + } + private INotebookService getNotebookService() { if (notebookService == null) { notebookService = NotebookServiceProxy.getNotebookService(this.getServlet().getServletContext()); } return notebookService; } - } \ No newline at end of file Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/forms/NotebookPedagogicalPlannerForm.java =================================================================== diff -u -r05db875c7974d705f89231416ff6dfe91a5e70f1 -rda2924f4d15aa5587ed5e5dc7152b850994bdd87 --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/forms/NotebookPedagogicalPlannerForm.java (.../NotebookPedagogicalPlannerForm.java) (revision 05db875c7974d705f89231416ff6dfe91a5e70f1) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/forms/NotebookPedagogicalPlannerForm.java (.../NotebookPedagogicalPlannerForm.java) (revision da2924f4d15aa5587ed5e5dc7152b850994bdd87) @@ -23,7 +23,9 @@ /* $Id$ */ package org.lamsfoundation.lams.tool.notebook.web.forms; +import org.apache.commons.lang.StringUtils; import org.lamsfoundation.lams.tool.notebook.model.Notebook; +import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.planner.PedagogicalPlannerForm; /** @@ -42,8 +44,9 @@ public void fillForm(Notebook notebook) { if (notebook != null) { - setInstructions(notebook.getInstructions()); + setInstructions(WebUtil.removeHTMLtags(notebook.getInstructions())); setToolContentID(notebook.getToolContentId()); + setEditingAdviceAvailable(!StringUtils.isEmpty(notebook.getOnlineInstructions())); } } } \ No newline at end of file Index: lams_tool_notebook/web/pages/authoring/pedagogicalPlannerForm.jsp =================================================================== diff -u -r05db875c7974d705f89231416ff6dfe91a5e70f1 -rda2924f4d15aa5587ed5e5dc7152b850994bdd87 --- lams_tool_notebook/web/pages/authoring/pedagogicalPlannerForm.jsp (.../pedagogicalPlannerForm.jsp) (revision 05db875c7974d705f89231416ff6dfe91a5e70f1) +++ lams_tool_notebook/web/pages/authoring/pedagogicalPlannerForm.jsp (.../pedagogicalPlannerForm.jsp) (revision da2924f4d15aa5587ed5e5dc7152b850994bdd87) @@ -5,16 +5,29 @@ + + + + <%@ include file="/common/messages.jsp"%> -

+

+ + + + + + + " + href="${tipUrl}" id="editingAdvice"> + - +
\ No newline at end of file