Index: lams_tool_imscc/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r7f68f72a3d80b8e24ba596d34ccea104ca285d05 -rf2b535f5f5e5134c69b47e2f813e05009afdbe4d --- lams_tool_imscc/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 7f68f72a3d80b8e24ba596d34ccea104ca285d05) +++ lams_tool_imscc/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision f2b535f5f5e5134c69b47e2f813e05009afdbe4d) @@ -8,6 +8,7 @@ label.authoring.basic.resource.common.cartridge =Common Cartridge label.authoring.basic.add.common.cartridge =Add Common Cartridge +label.authoring.basic.upload.common.cartridge =Upload Common Cartridge label.authoring.basic.add.basiclti.tool =Add Basic LTI Tool admin.button.save =Save @@ -23,6 +24,10 @@ label.authoring.basic.bascilti.button.text =Button Text label.authoring.basic.bascilti.iframe.height =Frame Height label.authoring.basic.bascilti.custom.parameters =Custom Parameters (*each starts new line) +label.authoring.select.available.resources =Select Available resources +label.authoring.advanced.settings =Advanced Settings +label.authoring.done =Done +warning.msg.authoring.do.you.want.to.delete =Do you really want to delete this resource? export.label.no.basic.lti =No offline basic LTI tools available Index: lams_tool_imscc/conf/xdoclet/struts-actions.xml =================================================================== diff -u -r7f68f72a3d80b8e24ba596d34ccea104ca285d05 -rf2b535f5f5e5134c69b47e2f813e05009afdbe4d --- lams_tool_imscc/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 7f68f72a3d80b8e24ba596d34ccea104ca285d05) +++ lams_tool_imscc/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision f2b535f5f5e5134c69b47e2f813e05009afdbe4d) @@ -98,20 +98,26 @@ validate="false"> + + + + + + + - - - uploadedCartridgeResources = getUploadedCartridgeResources(sessionMap); + int countUploadedResources = uploadedCartridgeResources.size(); + + SortedSet items = getCommonCartridgeItemList(sessionMap); + + for (int i = 0; i < countUploadedResources; i++) { + String itemStr = request.getParameter(CommonCartridgeConstants.ATTR_ITEM + i); + if (StringUtils.isBlank(itemStr)) { + continue; + } + + CommonCartridgeItem resource = uploadedCartridgeResources.get(i); + + String launchUrl = request.getParameter(CommonCartridgeConstants.ATTR_REMOTE_TOOL_URL + i); + resource.setLaunchUrl(launchUrl); + String toolKey = request.getParameter(CommonCartridgeConstants.ATTR_REMOTE_TOOL_KEY + i); + resource.setKey(toolKey); + String toolSecret = request.getParameter(CommonCartridgeConstants.ATTR_REMOTE_TOOL_SECRET + i); + resource.setSecret(toolSecret); + String buttonText = request.getParameter(CommonCartridgeConstants.ATTR_BUTTON_TEXT + i); + resource.setButtonText(buttonText); + String isOpenUrlNewWindow = request.getParameter(CommonCartridgeConstants.ATTR_OPEN_URL_NEW_WINDOW + i); + resource.setOpenUrlNewWindow(isOpenUrlNewWindow != null); + int frameHeight = WebUtil.readIntParam(request, CommonCartridgeConstants.ATTR_FRAME_HEIGHT + i, true); + resource.setFrameHeight(frameHeight); + + //add selected resource to item list + items.add(resource); + } + + + // set session map ID so that itemlist.jsp can get sessionMAP + request.setAttribute(CommonCartridgeConstants.ATTR_SESSION_MAP_ID, sessionMapID); + // return null to close this window + + return mapping.findForward(CommonCartridgeConstants.SUCCESS); + } /** @@ -771,6 +818,16 @@ } /** + * List items from fresh uploaded cartridge. + * + * @param request + * @return + */ + private List getUploadedCartridgeResources(SessionMap sessionMap) { + return getListFromSession(sessionMap, "uploadedCartridgeResources"); + } + + /** * List save current commonCartridge items. * * @param request @@ -921,8 +978,9 @@ } SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(itemForm.getSessionMapID()); - SortedSet commonCartridgeList = getCommonCartridgeItemList(sessionMap); - commonCartridgeList.addAll(items); + List uploadedCartridgeResources = getUploadedCartridgeResources(sessionMap); + uploadedCartridgeResources.clear(); + uploadedCartridgeResources.addAll(items); } /** @@ -992,7 +1050,7 @@ private ActionErrors validateCommonCartridgeItem(CommonCartridgeItemForm itemForm) { ActionErrors errors = new ActionErrors(); if (StringUtils.isBlank(itemForm.getTitle())) { - errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(CommonCartridgeConstants.ERROR_MSG_TITLE_BLANK)); +// errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(CommonCartridgeConstants.ERROR_MSG_TITLE_BLANK)); } if (itemForm.getItemType() == CommonCartridgeConstants.RESOURCE_TYPE_BASIC_LTI) { Index: lams_tool_imscc/web/common/tabbedheader.jsp =================================================================== diff -u -r7f68f72a3d80b8e24ba596d34ccea104ca285d05 -rf2b535f5f5e5134c69b47e2f813e05009afdbe4d --- lams_tool_imscc/web/common/tabbedheader.jsp (.../tabbedheader.jsp) (revision 7f68f72a3d80b8e24ba596d34ccea104ca285d05) +++ lams_tool_imscc/web/common/tabbedheader.jsp (.../tabbedheader.jsp) (revision f2b535f5f5e5134c69b47e2f813e05009afdbe4d) @@ -10,7 +10,6 @@ - Index: lams_tool_imscc/web/includes/css/thickbox.css =================================================================== diff -u --- lams_tool_imscc/web/includes/css/thickbox.css (revision 0) +++ lams_tool_imscc/web/includes/css/thickbox.css (revision f2b535f5f5e5134c69b47e2f813e05009afdbe4d) @@ -0,0 +1,163 @@ +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +*{padding: 0; margin: 0;} + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_window { + font: 12px Arial, Helvetica, sans-serif; + color: #333333; +} + +#TB_secondLine { + font: 10px Arial, Helvetica, sans-serif; + color:#666666; +} + +#TB_window a:link {color: #666666;} +#TB_window a:visited {color: #666666;} +#TB_window a:hover {color: #000;} +#TB_window a:active {color: #666666;} +#TB_window a:focus{color: #666666;} + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_overlay { + position: fixed; + z-index:100; + top: 0px; + left: 0px; + height:100%; + width:100%; +} + +.TB_overlayMacFFBGHack {background: url(../images/macFFBgHack.png) repeat;} +.TB_overlayBG { + background-color:#000; + filter:alpha(opacity=75); + -moz-opacity: 0.75; + opacity: 0.75; +} + +* html #TB_overlay { /* ie6 hack */ + position: absolute; + height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); +} + +#TB_window { + position: fixed; + background: #ffffff; + z-index: 102; + color:#000000; + display:none; + border: 4px solid #525252; + text-align:left; + top:50%; + left:50%; +} + +* html #TB_window { /* ie6 hack */ +position: absolute; +margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); +} + +#TB_window img#TB_Image { + display:block; + margin: 15px 0 0 15px; + border-right: 1px solid #ccc; + border-bottom: 1px solid #ccc; + border-top: 1px solid #666; + border-left: 1px solid #666; +} + +#TB_caption{ + height:25px; + padding:7px 30px 10px 25px; + float:left; +} + +#TB_closeWindow{ + height:25px; + padding:11px 25px 10px 0; + float:right; +} + +#TB_closeAjaxWindow{ + padding:7px 10px 5px 0; + margin-bottom:1px; + text-align:right; + float:right; +} + +#TB_ajaxWindowTitle{ + float:left; + padding:7px 0 5px 10px; + margin-bottom:1px; +} + +#TB_title{ + background-color:#e8e8e8; + height:27px; +} + +#TB_ajaxContent{ + clear:both; + padding:2px 15px 15px 15px; + overflow:auto; + text-align:left; + line-height:1.4em; +} + +#TB_ajaxContent.TB_modal{ + padding:15px; +} + +#TB_ajaxContent p{ + padding:5px 0px 5px 0px; +} + +#TB_load{ + position: fixed; + display:none; + height:13px; + width:208px; + z-index:103; + top: 50%; + left: 50%; + margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */ +} + +* html #TB_load { /* ie6 hack */ +position: absolute; +margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); +} + +#TB_HideSelect{ + z-index:99; + position:fixed; + top: 0; + left: 0; + background-color:#fff; + border:none; + filter:alpha(opacity=0); + -moz-opacity: 0; + opacity: 0; + height:100%; + width:100%; +} + +* html #TB_HideSelect { /* ie6 hack */ + position: absolute; + height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); +} + +#TB_iframeContent{ + clear:both; + border:none; + margin-bottom:-1px; + margin-top:1px; + _margin-bottom:1px; +} Index: lams_tool_imscc/web/includes/images/loadingAnimation.gif =================================================================== diff -u Binary files differ Index: lams_tool_imscc/web/includes/javascript/jquery.form.js =================================================================== diff -u --- lams_tool_imscc/web/includes/javascript/jquery.form.js (revision 0) +++ lams_tool_imscc/web/includes/javascript/jquery.form.js (revision f2b535f5f5e5134c69b47e2f813e05009afdbe4d) @@ -0,0 +1,632 @@ +/* + * jQuery Form Plugin + * version: 2.17 (06-NOV-2008) + * @requires jQuery v1.2.2 or later + * + * Examples and documentation at: http://malsup.com/jquery/form/ + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Revision: $Id$ + */ +;(function($) { + +/* + Usage Note: + ----------- + Do not use both ajaxSubmit and ajaxForm on the same form. These + functions are intended to be exclusive. Use ajaxSubmit if you want + to bind your own submit handler to the form. For example, + + $(document).ready(function() { + $('#myForm').bind('submit', function() { + $(this).ajaxSubmit({ + target: '#output' + }); + return false; // <-- important! + }); + }); + + Use ajaxForm when you want the plugin to manage all the event binding + for you. For example, + + $(document).ready(function() { + $('#myForm').ajaxForm({ + target: '#output' + }); + }); + + When using ajaxForm, the ajaxSubmit function will be invoked for you + at the appropriate time. +*/ + +/** + * ajaxSubmit() provides a mechanism for immediately submitting + * an HTML form using AJAX. + */ +$.fn.ajaxSubmit = function(options) { + // fast fail if nothing selected (http://dev.jquery.com/ticket/2752) + if (!this.length) { + log('ajaxSubmit: skipping submit process - no element selected'); + return this; + } + + if (typeof options == 'function') + options = { success: options }; + + options = $.extend({ + url: this.attr('action') || window.location.toString(), + type: this.attr('method') || 'GET' + }, options || {}); + + // hook for manipulating the form data before it is extracted; + // convenient for use with rich editors like tinyMCE or FCKEditor + var veto = {}; + this.trigger('form-pre-serialize', [this, options, veto]); + if (veto.veto) { + log('ajaxSubmit: submit vetoed via form-pre-serialize trigger'); + return this; + } + + // provide opportunity to alter form data before it is serialized + if (options.beforeSerialize && options.beforeSerialize(this, options) === false) { + log('ajaxSubmit: submit aborted via beforeSerialize callback'); + return this; + } + + var a = this.formToArray(options.semantic); + if (options.data) { + options.extraData = options.data; + for (var n in options.data) { + if(options.data[n] instanceof Array) { + for (var k in options.data[n]) + a.push( { name: n, value: options.data[n][k] } ) + } + else + a.push( { name: n, value: options.data[n] } ); + } + } + + // give pre-submit callback an opportunity to abort the submit + if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) { + log('ajaxSubmit: submit aborted via beforeSubmit callback'); + return this; + } + + // fire vetoable 'validate' event + this.trigger('form-submit-validate', [a, this, options, veto]); + if (veto.veto) { + log('ajaxSubmit: submit vetoed via form-submit-validate trigger'); + return this; + } + + var q = $.param(a); + + if (options.type.toUpperCase() == 'GET') { + options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; + options.data = null; // data is null for 'get' + } + else + options.data = q; // data is the query string for 'post' + + var $form = this, callbacks = []; + if (options.resetForm) callbacks.push(function() { $form.resetForm(); }); + if (options.clearForm) callbacks.push(function() { $form.clearForm(); }); + + // perform a load on the target only if dataType is not provided + if (!options.dataType && options.target) { + var oldSuccess = options.success || function(){}; + callbacks.push(function(data) { + $(options.target).html(data).each(oldSuccess, arguments); + }); + } + else if (options.success) + callbacks.push(options.success); + + options.success = function(data, status) { + for (var i=0, max=callbacks.length; i < max; i++) + callbacks[i].apply(options, [data, status, $form]); + }; + + // are there files to upload? + var files = $('input:file', this).fieldValue(); + var found = false; + for (var j=0; j < files.length; j++) + if (files[j]) + found = true; + + // options.iframe allows user to force iframe mode + if (options.iframe || found) { + // hack to fix Safari hang (thanks to Tim Molendijk for this) + // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d + if ($.browser.safari && options.closeKeepAlive) + $.get(options.closeKeepAlive, fileUpload); + else + fileUpload(); + } + else + $.ajax(options); + + // fire 'notify' event + this.trigger('form-submit-notify', [this, options]); + return this; + + + // private function for handling file uploads (hat tip to YAHOO!) + function fileUpload() { + var form = $form[0]; + + if ($(':input[@name=submit]', form).length) { + alert('Error: Form elements must not be named "submit".'); + return; + } + + var opts = $.extend({}, $.ajaxSettings, options); + var s = jQuery.extend(true, {}, $.extend(true, {}, $.ajaxSettings), opts); + + var id = 'jqFormIO' + (new Date().getTime()); + var $io = $('
"); + $("#TB_overlay").click(tb_remove); + } + }else{//all others + if(document.getElementById("TB_overlay") === null){ + $("body").append("
"); + $("#TB_overlay").click(tb_remove); + } + } + + if(tb_detectMacXFF()){ + $("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash + }else{ + $("#TB_overlay").addClass("TB_overlayBG");//use background and opacity + } + + if(caption===null){caption="";} + $("body").append("
");//add loader to the page + $('#TB_load').show();//show loader + + var baseURL; + if(url.indexOf("?")!==-1){ //ff there is a query string involved + baseURL = url.substr(0, url.indexOf("?")); + }else{ + baseURL = url; + } + + var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/; + var urlType = baseURL.toLowerCase().match(urlString); + + var queryString = url.replace(/^[^\?]+\??/,''); + var params = tb_parseQuery( queryString ); + + + if((!params['TB_iframe'])){//code to show images + + TB_PrevCaption = ""; + TB_PrevURL = ""; + TB_PrevHTML = ""; + TB_NextCaption = ""; + TB_NextURL = ""; + TB_NextHTML = ""; + TB_imageCount = ""; + TB_FoundURL = false; + if(imageGroup){ + TB_TempArray = $("a[@rel="+imageGroup+"]").get(); + for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) { + var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString); + if (!(TB_TempArray[TB_Counter].href == url)) { + if (TB_FoundURL) { + TB_NextCaption = TB_TempArray[TB_Counter].title; + TB_NextURL = TB_TempArray[TB_Counter].href; + TB_NextHTML = "  Next >"; + } else { + TB_PrevCaption = TB_TempArray[TB_Counter].title; + TB_PrevURL = TB_TempArray[TB_Counter].href; + TB_PrevHTML = "  < Prev"; + } + } else { + TB_FoundURL = true; + TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length); + } + } + } + + imgPreloader = new Image(); + imgPreloader.onload = function(){ + imgPreloader.onload = null; + + // Resizing large images - orginal by Christian Montoya edited by me. + var pagesize = tb_getPageSize(); + var x = pagesize[0] - 150; + var y = pagesize[1] - 150; + var imageWidth = (jQuery.browser.msie) ? parseInt(params['dbWidth']) : imgPreloader.width; + var initialImageWidth = imageWidth; + var imageHeight = (jQuery.browser.msie) ? parseInt(params['dbHeight']) : imgPreloader.height; + var initialImageHeight = imageHeight; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + } + } else if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + } + } + // End Resizing + + TB_WIDTH = imageWidth + 30; + TB_HEIGHT = imageHeight + 60; + + if ((initialImageWidth > x) ||(initialImageHeight > y)) { + $("#TB_window").append("" + "
"+caption+"
" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "
close or Esc Key
"); + } else { + $("#TB_window").append(""+caption+"" + "
"+caption+"
" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "
close or Esc Key
"); + } + + $("#TB_closeWindowButton").click(tb_remove); + + if (!(TB_PrevHTML === "")) { + function goPrev(){ + if($(document).unbind("click",goPrev)){$(document).unbind("click",goPrev);} + $("#TB_window").remove(); + $("body").append("
"); + tb_show(TB_PrevCaption, TB_PrevURL, imageGroup); + return false; + } + $("#TB_prev").click(goPrev); + } + + if (!(TB_NextHTML === "")) { + function goNext(){ + $("#TB_window").remove(); + $("body").append("
"); + tb_show(TB_NextCaption, TB_NextURL, imageGroup); + return false; + } + $("#TB_next").click(goNext); + + } + + document.onkeydown = function(e){ + if (e == null) { // ie + keycode = event.keyCode; + } else { // mozilla + keycode = e.which; + } + if(keycode == 27){ // close + tb_remove(); + } else if(keycode == 190){ // display previous image + if(!(TB_NextHTML == "")){ + document.onkeydown = ""; + goNext(); + } + } else if(keycode == 188){ // display next image + if(!(TB_PrevHTML == "")){ + document.onkeydown = ""; + goPrev(); + } + } + }; + + tb_position(); + $("#TB_load").remove(); + $("#TB_ImageOff").click(tb_remove); + $("#TB_window").css({display:"block"}); //for safari using css instead of show + }; + + imgPreloader.src = url; + }else{//code to show html + + TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL + TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL + ajaxContentW = TB_WIDTH - 30; + ajaxContentH = TB_HEIGHT - 45; + + if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window + urlNoQuery = url.split('TB_'); + $("#TB_iframeContent").remove(); + + var resize = ""; + if(params['resizeIframe']){ + resize = "resizeIframe();" + } + if(params['modal'] != "true"){//iframe no modal + $("#TB_window").append("
"+caption+"
close or Esc Key
"); + }else{//iframe modal + $("#TB_overlay").unbind(); + $("#TB_window").append(""); + } + }else{// not an iframe, ajax + if($("#TB_window").css("display") != "block"){ + if(params['modal'] != "true"){//ajax no modal + $("#TB_window").append("
"+caption+"
close or Esc Key
"); + }else{//ajax modal + $("#TB_overlay").unbind(); + $("#TB_window").append("
"); + } + }else{//this means the window is already up, we are just loading new content via ajax + $("#TB_ajaxContent")[0].style.width = ajaxContentW +"px"; + $("#TB_ajaxContent")[0].style.height = ajaxContentH +"px"; + $("#TB_ajaxContent")[0].scrollTop = 0; + $("#TB_ajaxWindowTitle").html(caption); + } + } + + $("#TB_closeWindowButton").click(tb_remove); + + if(url.indexOf('TB_inline') != -1){ + $("#TB_ajaxContent").append($('#' + params['inlineId']).children()); + $("#TB_window").unload(function () { + $('#' + params['inlineId']).append( $("#TB_ajaxContent").children() ); // move elements back when you're finished + }); + tb_position(); + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); + }else if(url.indexOf('TB_iframe') != -1){ + tb_position(); + if($.browser.safari){//safari needs help because it will not fire iframe onload + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); + } + }else{ + $("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method + tb_position(); + $("#TB_load").remove(); + tb_init("#TB_ajaxContent a.thickbox"); + $("#TB_window").css({display:"block"}); + }); + } + + } + + if(!params['modal']){ + document.onkeyup = function(e){ + if (e == null) { // ie + keycode = event.keyCode; + } else { // mozilla + keycode = e.which; + } + if(keycode == 27){ // close + tb_remove(); + } + }; + } + + } catch(e) { + //nothing here + } +} + +//helper functions below +function tb_showIframe(){ + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); +} + +function tb_remove() { + $("#TB_imageOff").unbind("click"); + $("#TB_closeWindowButton").unbind("click"); + $("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();}); + $("#TB_load").remove(); + if (typeof document.body.style.maxHeight == "undefined") {//if IE 6 + $("body","html").css({height: "auto", width: "auto"}); + $("html").css("overflow",""); + } + document.onkeydown = ""; + document.onkeyup = ""; + return false; +} + +function tb_position() { + $("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'}); + if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6 + $("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'}); + } +} + +function tb_parseQuery ( query ) { + var Params = {}; + 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 tb_getPageSize(){ + var de = document.documentElement; + var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; + var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight; + arrayPageSize = [w,h]; + return arrayPageSize; +} + +function tb_detectMacXFF() { + var userAgent = navigator.userAgent.toLowerCase(); + if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) { + return true; + } +} + + Index: lams_tool_imscc/web/pages/authoring/authoring.jsp =================================================================== diff -u -r7f68f72a3d80b8e24ba596d34ccea104ca285d05 -rf2b535f5f5e5134c69b47e2f813e05009afdbe4d --- lams_tool_imscc/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision 7f68f72a3d80b8e24ba596d34ccea104ca285d05) +++ lams_tool_imscc/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision f2b535f5f5e5134c69b47e2f813e05009afdbe4d) @@ -8,9 +8,17 @@ <fmt:message key="label.author.title" /> - + <%@ include file="/common/tabbedheader.jsp"%> - <%@ include file="/common/fckeditorheader.jsp"%> + <%@ include file="/common/fckeditorheader.jsp"%> + + + + + + @@ -102,12 +129,14 @@

- ');"> - - ');" class="space-left"> - + + &KeepThis=true&TB_iframe=true&height=540&width=850&modal=true" class="space-left thickbox"> + +

Index: lams_tool_imscc/web/pages/authoring/definelater.jsp =================================================================== diff -u -r7f68f72a3d80b8e24ba596d34ccea104ca285d05 -rf2b535f5f5e5134c69b47e2f813e05009afdbe4d --- lams_tool_imscc/web/pages/authoring/definelater.jsp (.../definelater.jsp) (revision 7f68f72a3d80b8e24ba596d34ccea104ca285d05) +++ lams_tool_imscc/web/pages/authoring/definelater.jsp (.../definelater.jsp) (revision f2b535f5f5e5134c69b47e2f813e05009afdbe4d) @@ -16,6 +16,7 @@ <%@ include file="/common/tabbedheader.jsp"%> <%@ include file="/common/fckeditorheader.jsp"%> +

Index: lams_tool_imscc/web/pages/authoring/parts/addcommoncartridge.jsp =================================================================== diff -u -r7f68f72a3d80b8e24ba596d34ccea104ca285d05 -rf2b535f5f5e5134c69b47e2f813e05009afdbe4d --- lams_tool_imscc/web/pages/authoring/parts/addcommoncartridge.jsp (.../addcommoncartridge.jsp) (revision 7f68f72a3d80b8e24ba596d34ccea104ca285d05) +++ lams_tool_imscc/web/pages/authoring/parts/addcommoncartridge.jsp (.../addcommoncartridge.jsp) (revision f2b535f5f5e5134c69b47e2f813e05009afdbe4d) @@ -7,61 +7,33 @@ <%@ include file="/common/header.jsp"%> - - - - - + + +
<%@ include file="/common/messages.jsp"%> -

- +

- -
- -
- - - - <%-- Remove description in as LDEV-617 -
- - - - --%> - -
- -
- +
+ +
<%@ include file="/pages/authoring/parts/itemattachment.jsp"%> +
+

+ - - - - -
+ Index: lams_tool_imscc/web/pages/authoring/parts/selectResources.jsp =================================================================== diff -u --- lams_tool_imscc/web/pages/authoring/parts/selectResources.jsp (revision 0) +++ lams_tool_imscc/web/pages/authoring/parts/selectResources.jsp (revision f2b535f5f5e5134c69b47e2f813e05009afdbe4d) @@ -0,0 +1,119 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + + + + <%@ include file="/common/header.jsp"%> + + + + + + + + + + + +
+ <%@ include file="/common/messages.jsp"%> + +
+ +
+

+ +

+ +
- - - -
+ + + + <%-- resource Type:1=URL,2=File,3=Website,4=Learning Object --%> + + + +
+ +    + + : + + ${resource.title} +
+ + + + + + + + + + +
+ + + +
+ + + + + + + + + + + +
\ No newline at end of file Index: lams_tool_imscc/web/pages/monitoring/monitoring.jsp =================================================================== diff -u -r7f68f72a3d80b8e24ba596d34ccea104ca285d05 -rf2b535f5f5e5134c69b47e2f813e05009afdbe4d --- lams_tool_imscc/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 7f68f72a3d80b8e24ba596d34ccea104ca285d05) +++ lams_tool_imscc/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision f2b535f5f5e5134c69b47e2f813e05009afdbe4d) @@ -6,7 +6,9 @@ - <%@ include file="/common/tabbedheader.jsp" %> + <%@ include file="/common/tabbedheader.jsp" %> + +