Index: lams_admin/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r7cf4da03e4f448f3dd5d5abf8de533c56263e74c -r9091ed8c9bae9a48f88622c0c5031af2a39772dc --- lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 7cf4da03e4f448f3dd5d5abf8de533c56263e74c) +++ lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 9091ed8c9bae9a48f88622c0c5031af2a39772dc) @@ -231,8 +231,6 @@ config.header.features =Features config.header.look.feel =Look and feel config.header.versions =Versions -config.header.antivirus =Antivirus -config.header.qb =Question bank config.server.url =Server URL config.server.url.context.path =Server URL context path config.version =Version @@ -634,23 +632,36 @@ outcome.authoring.input =Search and select by outcome name or code outcome.authoring.existing =Added outcomes outcome.authoring.existing.none =none -outcome.authoring.remove.confirm =Are you sure you want to remove this learning outcome? sysadmin.maintain.session.name =Name -congfig.header.antivirus =Antivirus -config.av.enable =Enable antivirus scanning on file upload -config.av.host =ClamAV server host -config.av.port =ClamAV server port +config.header.antivirus =Antivirus +config.av.enable =Enable antivirus scanning on files upload +config.av.host =ClamAV server host +config.av.port =ClamAV server port label.type.login =User login label.type.logout =User logout label.type.config.change =Configuration change +outcome.authoring.remove.confirm =Are you sure you want to remove this learning outcome? +sysadmin.alternative.user.id.name =Use alternative parameter name "lis_person_sourcedid" to get user id +config.header.privacy.settings =Privacy settings +config.restricted.displaying.user.names.in.groupings =Groupings: only display names for learners within own group +sysadmin.maintain.session.count =logged in users +config.qb.qti.enable =Enable QTI question import/export +config.qb.word.enable =Enable Word question import +config.qb.collections.create.enable =Allow creating custom collections +config.qb.collections.transfer.enable =Allow question transfer between collections +config.qb.monitors.read.only =Force read-only access for monitors +config.qb.stats.min.participants =Minimum test participant number to calculate question indexes +config.qb.stats.group.size =Percent of participants in top/bottom performers group (default: 27) +config.qb.merge.enable =Allow question manual merging +config.header.qb =Question bank +sysadmin.logoutUrl =Redirect user after logout to the following URL +sysadmin.maintain.session.access =Last access +sysadmin.maintain.session.created =Started on: +config.enable.collapsing.subcourses =Enable collapsing of subcourses config.learning.outcome.add.enable =Enable quick add of learning outcomes in authoring -config.qb.qti.enable =Enable QTI question import/export -config.qb.word.enable =Enable Word question import -config.qb.collections.create.enable =Allow creating custom collections -config.qb.collections.transfer.enable =Allow question transfer between collections -config.qb.monitors.read.only =Force read-only access for monitors -config.qb.stats.min.participants =Minimum test participant number to calculate question indexes -config.qb.stats.group.size =Percent of participants in top/bottom performers group (default: 27) +label.type.questions.merged =Questions merged +label.area.question.bank =Question bank + admin.workflow.automation.module.management =Module and blueprint management workflow.automation.title =Workflow Automation Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/SysAdminStartController.java =================================================================== diff -u -r7cf4da03e4f448f3dd5d5abf8de533c56263e74c -r9091ed8c9bae9a48f88622c0c5031af2a39772dc --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/SysAdminStartController.java (.../SysAdminStartController.java) (revision 7cf4da03e4f448f3dd5d5abf8de533c56263e74c) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/SysAdminStartController.java (.../SysAdminStartController.java) (revision 9091ed8c9bae9a48f88622c0c5031af2a39772dc) @@ -61,7 +61,7 @@ links.add(new LinkBean("timezonemanagement/start.do", "admin.timezone.title")); links.add(new LinkBean("loginmaintain.do", "sysadmin.maintain.loginpage")); links.add(new LinkBean("signupManagement/start.do", "admin.signup.title")); - links.add(new LinkBean("serverlist.do", "sysadmin.maintain.external.servers")); + links.add(new LinkBean("extserver/serverlist.do", "sysadmin.maintain.external.servers")); links.add(new LinkBean("ltiConsumerManagement/start.do", "label.manage.tool.consumers")); links.add(new LinkBean("policyManagement/list.do", "admin.policies.title")); links.add(new LinkBean("toolcontentlist/start.do", "sysadmin.tool.management")); Index: lams_central/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -rcd5ddc911caba244df9c20ce12ac528c664f58af -r9091ed8c9bae9a48f88622c0c5031af2a39772dc --- lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision cd5ddc911caba244df9c20ce12ac528c664f58af) +++ lams_central/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 9091ed8c9bae9a48f88622c0c5031af2a39772dc) @@ -70,6 +70,7 @@ title.error.window =LAMS :: Error authoring.msg.save.success =Congratulations, your content saved successfully! label.authoring.close =Close +label.authoring.re.edit =Re-edit index.welcome =Welcome index.logout =Logout index.refresh =Refresh @@ -81,11 +82,9 @@ index.addlesson =Add Lesson index.monitor =Monitor index.dummymonitor =Dummy Monitor -index.qb.collections =Question collections title.import.result =Import tool content result title.import =Import tool content title.import.instruction =Please choose LAMS sequence to import. -title.import.instruction.antivirus =An antivirus scan will be performed. It can take a while. title.export.loading =Export tool content loading label.ld.zip.file =Learning design import file msg.import.success =Learning design and activities imported successfully. @@ -403,16 +402,15 @@ authoring.fla.course.groups.to.branches.match.dialog.title =Match Course Groups to Branching Groups authoring.fla.branch.mapping.course.groups.header =Course groups authoring.fla.branch.mapping.branching.groups.header =Branching groups -authoring.fla.branch.mapping.ordered.asc =Start with branches mapped to highest ordered answers label.tab.advanced.field.force.restart =Learners always start from the first activity label.tab.advanced.field.allow.restart =Learners can restart the lesson label.verification.code =Verification code error.verification.code =Sorry, entered verification code is incorrect. Please try again. label.your.new.shared.secret =Your new shared secret: {0} label.2FA.shared.secret =Two-factor authentication shared secret label.2FA.login.panel =Two-factor authentication required -label.remove.org.favorite =Remove organisation from favorite ones -label.mark.org.favorite =Mark organisation as favorite +label.remove.org.favorite =Remove course from favourite list +label.mark.org.favorite =Mark course as favourite label.email.send.me.a.copy =Send me a copy label.password.max.length =must be less than 25 characters label.password.min.length =must be at least {0} characters long @@ -490,7 +488,7 @@ authoring.fla.sequence.load.error =Error while loading the sequence authoring.fla.transition.from.exists.error =Transition from this activity already exists authoring.fla.export.sequence.dialog.title =Sequence export -authoring.fla.activity.copy.title.prefix =Copy [0] of +authoring.fla.activity.copy.title.prefix =Copy [0]of authoring.fla.preview.lesson.default.title =Preview authoring.fla.save.dialog.title =Save sequence authoring.fla.open.dialog.title =Open sequence @@ -683,7 +681,7 @@ tour.lesson.conditions.content =Set up conditions for starting or ending the lesson. tour.lesson.remove.title =Remove Lesson tour.lesson.remove.content =Remove the lesson completely. This is permanent - it cannot be undone. -tour.end.title =End Of Tour +tour.end.title =End tour.end.content =Thank you for taking the tour. To restart the tour, click the Tour button again. errors.maxfilesize =Uploaded file exceeded maximum size: {0} error.attachment.executable =Uploaded file is executable @@ -696,7 +694,7 @@ authoring.fla.activity.branching.description =branching tour.prev =Prev tour.next =Next -tour.end.tour =End of tour +tour.end.tour =End label.search.for.courses =Search for courses label.save.as.course.grouping =Save as a Course Grouping label.enter.course.grouping.name =Please enter name for the new course grouping @@ -793,6 +791,7 @@ label.view =View index.outcome.manage =Outcomes index.outcome.manage.tooltip =Manage learning outcomes and scales +outcome.manage.title =Course outcomes outcome.manage.remove =Remove outcome outcome.manage.remove.confirm =Are you sure you want to remove this outcome? outcome.manage.add =Add outcome @@ -801,21 +800,24 @@ outcome.manage.add.name =Name outcome.manage.add.code =Code outcome.manage.add.description =Description +outcome.manage.add.global =Global outcome.manage.add.scale =Scale outcome.manage.add.save =Save +outcome.manage.scope =Scope +outcome.manage.scope.global =global +outcome.manage.scope.course =course outcome.manage.add.error =Error while saving an outcome outcome.manage.add.error.name.blank =Name can not be blank outcome.manage.add.error.code.blank =Code can not be blank outcome.manage.add.error.scale.choose =You have to choose a scale -outcome.manage.remove.error.in.use =The outcome is mapped to some items. It can not be removed. scale.title =Scales scale.manage =Manage scales scale.manage.add =Add scale scale.manage.edit =Edit scale scale.manage.view =View scale +scale.manage.title =Course scales scale.manage.remove =Remove scale scale.manage.remove.scale =Error while removing a scale. -scale.manage.remove.error.in.use =The scale is used in some outcomes. It can not be removed. scale.manage.remove.confirm =Are you sure you want to remove this scale? scale.manage.add.value =Values scale.manage.add.value.info =Enter comma separated values in increasing order of value. For example, an A,B,C,D scale must be entered as D,C,B,A. @@ -825,8 +827,6 @@ outcome.authoring.input =Search and select by outcome name or code outcome.authoring.existing =Added outcomes outcome.authoring.existing.none =none -outcome.authoring.remove.confirm =Are you sure you want to remove this learning outcome? -outcome.authoring.create.new = [create new] outcome.export.date =Exported on: outcome.export =Export outcome.import =Import @@ -842,15 +842,14 @@ authoring.error.question.correct.num =RAT Questions: One of the answers for Question {0} needs to be correct. authoring.description.application.exercise =Application Exercise (These question(s) will be shown during the analysis phase in the sequence.) authoring.label.grouping =Teams -authoring.label.group.name =Team_{0} authoring.label.grouping.learners.choice =Learner's Choice authoring.label.grouping.teachers.choice =Teacher's Choice authoring.label.grouping.random.allocation =Random Allocation authoring.label.numgroups =Number of teams: authoring.error.numgroups =Number of teams must be 1 to 99. authoring.label.numlearners =Number of learners: authoring.error.numlearners =Number of learners must be 1 to 99. -authoring.error.group.data =Teams settings are not correct. +authoring.error.group.data =Team settings are not correct. authoring.section.lessondetails =Lesson Details authoring.section.questions =RAT Questions authoring.section.applicationexercise =Application Exercises @@ -870,30 +869,49 @@ button.return.to.template.list =Back to Templates authoring.error.content.id =Content ID is missing authoring.error.question.must.have.answer.num =RAT Questions: Question {0} must have at least one answer. -authoring.error.application.exercise.question.must.not.be.blank.num =Application Exercises: {0} Question {1} may not be blank. authoring.error.application.exercise.must.have.answer.num =Application Exercises: {0} Question {1} must have at least one answer. authoring.error.application.exercise.must.have.100.percent =Application Exercises: {0} Question {1} must have at least one answer worth 100%. authoring.error.application.exercise.not.blank.and.grade =Application Exercises: {0} Question {1} may not be blank and must have a grade. -authoring.error.application.exercise.needs.noticeboard.text =Application Exercises: {0} is missing the text for the noticeboard. -authoring.error.rat.not.blank=RAT Questions: There must be at least one question. authoring.label.grade =Grade authoring.label.none =None authoring.tbl.template.title =Team Based Learning authoring.tbl.template.description =Individual and Team Readiness Assessments followed by Application Exercises. authoring.tbl.desc.question =Adding RAT questions. -authoring.tbl.enable.confidence.tooltip =Asks students in the iRAT how confident they are with their choosen answer. Then the confidence level for each student is displayed in the tRAT to all members of their team. authoring.tbl.desc.ae =Adding Application Exercises (AEs). You can create multiple AEs if needed. +outcome.manage.remove.error.in.use =The outcome is mapped to some items. It can not be removed. +scale.manage.remove.error.in.use =The scale is used in some outcomes. It can not be removed. +outcome.authoring.remove.confirm =Are you sure you want to remove this learning outcome? +signup.email.welcome.subject =LAMS: account details +authoring.error.application.exercise.question.must.not.be.blank.num =Application Exercise {0} Question {1} may not be blank. +authoring.error.application.exercise.needs.noticeboard.text =Application Exercises: {0} is missing the text for the noticeboard. +authoring.error.rat.not.blank =RAT Questions: There must be at least one question. authoring.template.basic.import.qti =Import IMS QTI -authoring.tbl.use.noticeboard=Add Noticeboard after AE -authoring.tbl.use.noticeboard.tooltip=After the AE, displays content to students as additional information or as a reflection on the AE topic -authoring.create.application.exercise=Add New Application Exercise -label.marks=Marks -authoring.tbl.delete.appex.prompt=Do you want to delete the Application Exercise {0}? -authoring.tbl.delete.mcq.prompt=Do you want to delete the RAT Question {0}? -authoring.application.exercise.allow.multiple.responses =Allow Multiple Responses +authoring.tbl.use.noticeboard =Add Noticeboard after AE +authoring.create.application.exercise =Add new Application Exercise +authoring.tbl.enable.confidence.tooltip =Asks students in the iRAT how confident they are with their chosen answer. Then the confidence level for each student is displayed in the tRAT to all members of their team. +authoring.tbl.use.noticeboard.tooltip =After the AE, displays content to students as additional information or as a reflection on the AE topic. +authoring.tbl.delete.appex.prompt =Do you want to delete the Application Exercise {0}? +authoring.tbl.delete.mcq.prompt =Do you want to delete the RAT Question {0}? +authoring.application.exercise.allow.multiple.responses =Allow multiple responses authoring.application.exercise.allow.multiple.responses.tooltip =When learners are allowed to select multiple answers the grade is the sum of the grade for all correct responses selected. - -#QB questions# +message.teacher.role.not.recognized =Please wait for a teacher to start the lesson. (You were logged in as a learner, as your current role does not conform LTI specification). +label.multiple.lessons =Multiple lessons +label.add.lessons.to.subgroups =Add lesson to all selected subcourses +label.marks =Marks +authoring.fla.grouping.detached.error =Activity "{0}" was grouped with a grouping activity that is missing or is not one of previous activities. Grouping was cleared. +authoring.fla.input.detached.error =Activity "{0}" had an input activity that is missing or is not one of previous activities. Input was cleared. +label.question.not.added =This question has already been added +label.questions.choice.collection =Choose a collection: +authoring.fla.branch.mapping.ordered.asc =Start with branches mapped to highest ordered answers +title.import.instruction.antivirus =An antivirus scan will be performed. It can take a while. +outcome.authoring.create.new =[create new] +index.qb.collections =Question collections +label.answer.queue =Answer queue +label.drag.and.drop =drag and drop answer to tick or cross +label.correct =Correct +label.incorrect =Incorrect +label.answer.alternatives =Answer alternatives +label.close =Close label.create.question =Create question label.question.type.multiple.choice =Multiple choice label.question.type.matching.pairs =Matching pairs @@ -912,70 +930,137 @@ label.export.xml =Export questions in XML format msg.import.file.format =The import file must be .xml file exported from assessment tool and not exceed size of {0} error.import.file.format =The import file is not an .xml file. -label.qb.stats.title =Question statistics -error.qb.permanent.remove =The question is in one collection only, so it would be permanently removed.\\nIt is not possible as the question is used in sequences. -label.qb.permanent.remove.confirm =The question is in one collection only. Are you sure that you want to remove it permanently? -label.qb.stats.question =Question -label.qb.stats.question.version =Version -label.qb.stats.question.title =Title -label.qb.stats.question.description =Description -label.qb.stats.question.feedback =Feedback -label.qb.stats.question.mark =Mark -label.qb.stats.option.title =Title -label.qb.stats.option.correct =Correct? -label.qb.stats.option.average =Average selection
(as first choice) -label.qb.stats.chart =Average selection chart -label.qb.stats.burning.questions =Burning questions -label.qb.stats.burning.questions.none =This question does not have any burning questions -label.qb.stats.burning.questions.likes =Likes -label.qb.stats.usage =Usage in active lessons -label.qb.stats.usage.none =This question is not used in any lesson -label.qb.stats.usage.course =Course -label.qb.stats.usage.lesson =Lesson -label.qb.stats.usage.activity =Activity -label.qb.stats.usage.type =Tool type -label.qb.stats.usage.participant.count =Test participant count -label.qb.stats.usage.difficulty =Difficulty index -label.qb.stats.usage.discrimination =Discrimination index -label.qb.stats.usage.biserial =Point biserial -label.qb.stats.versions =Previous versions -label.qb.stats.versions.none =This question does not have any previous versions -label.qb.stats.versions.created =Created date -label.qb.stats.versions.created.ago =Created ago -label.qb.stats.collections =Collections -label.qb.stats.collections.transfer =Transfer questions to -label.qb.stats.collections.transfer.add =Add -label.qb.stats.collections.transfer.copy =Copy -label.qb.stats.collections.existing =Existing collections -label.qb.stats.collections.remove =Remove -label.qb.stats.outcomes =Learning outcomes -label.qb.stats.outcomes.none =This question does not have any learning outcomes -label.qb.stats.outcomes.existing =Existing outcomes -label.qb.collection =Collection -label.qb.collection.grid.title =Questions -label.qb.collection.grid.id =ID -label.qb.collection.grid.name =Name -label.qb.collection.grid.outcomes =Learning Outcomes -label.qb.collection.grid.usage =Used in
lessons -label.qb.collection.grid.actions =Actions -label.qb.collection.grid.stats =Stats -label.qb.collection.grid.error =Error while loading grid with question collections -label.qb.collection.name.blank.error =Name must not be blank -label.qb.collection.name.duplicate.error =Collection with such name already exists -label.qb.collection.action.stats =Show stats -label.qb.collection.remove.confirm =Are you sure you want to remove "{0}" collection? -label.qb.collection.management =Collection management -label.qb.collection.private =Private collection -label.qb.collection.remove =Remove collection -label.qb.collection.xml =XML -label.qb.collection.qti =QTI -label.qb.collection.questions.none =There are no questions in this collection -label.qb.collection.share.title =Share collection with courses -label.qb.collection.shared =Shared -label.qb.collection.unshare =Unshare -label.qb.collection.share =Share -label.qb.collection.grid.stats =Stats -label.qb.collection.edit =Edit +label.qb.stats.title =Question statistics +error.qb.permanent.remove =The question is in one collection only, so it would be permanently removed.\\nIt is not possible as the question is used in sequences. +label.qb.permanent.remove.confirm =The question is in one collection only. Are you sure that you want to remove it permanently? +label.qb.stats.question =Question +label.qb.stats.question.version =Version +label.qb.stats.question.title =Title +label.qb.stats.question.description =Description +label.qb.stats.question.feedback =Feedback +label.qb.stats.question.mark =Mark +label.qb.stats.option.title =Title +label.qb.stats.option.correct =Correct? +label.qb.stats.option.average =Average selection
(as first choice) +label.qb.stats.chart =Average selection chart +label.qb.stats.burning.questions =Burning questions +label.qb.stats.burning.questions.none =This question does not have any burning questions +label.qb.stats.burning.questions.likes =Likes +label.qb.stats.usage =Usage in active lessons +label.qb.stats.usage.none =This question is not used in any lesson +label.qb.stats.usage.course =Course +label.qb.stats.usage.lesson =Lesson +label.qb.stats.usage.activity =Activity +label.qb.stats.usage.type =Tool type +label.qb.stats.usage.participant.count =Test participant count +label.qb.stats.usage.difficulty =Difficulty index +label.qb.stats.usage.discrimination =Discrimination index +label.qb.stats.usage.biserial =Point biserial +label.qb.stats.versions =Previous versions +label.qb.stats.versions.none =This question does not have any previous versions +label.qb.stats.versions.created =Created date +label.qb.stats.versions.created.ago =Created ago +label.qb.stats.collections =Collections +label.qb.stats.collections.transfer =Transfer questions to +label.qb.stats.collections.transfer.add =Add +label.qb.stats.collections.transfer.copy =Copy +label.qb.stats.collections.existing =Existing collections +label.qb.stats.collections.remove =Remove +label.qb.stats.outcomes =Learning outcomes +label.qb.stats.outcomes.none =This question does not have any learning outcomes +label.qb.stats.outcomes.existing =Existing outcomes +label.qb.collection =Collection +label.qb.collection.grid.title =Questions +label.qb.collection.grid.id =ID +label.qb.collection.grid.name =Name +label.qb.collection.grid.outcomes =Learning Outcomes +label.qb.collection.grid.usage =Used in
lessons +label.qb.collection.grid.actions =Actions +label.qb.collection.grid.stats =Stats +label.qb.collection.grid.error =Error while loading grid with question collections +label.qb.collection.name.blank.error =Name must not be blank +label.qb.collection.name.duplicate.error =Collection with such name already exists +label.qb.collection.action.stats =Show stats +label.qb.collection.remove.confirm =Are you sure you want to remove "{0}" collection? +label.qb.collection.management =Collection management +label.qb.collection.private =Private collection +label.qb.collection.remove =Remove collection +label.qb.collection.xml =XML +label.qb.collection.qti =QTI +label.qb.collection.questions.none =There are no questions in this collection +label.qb.collection.share.title =Share collection with courses +label.qb.collection.shared =Shared +label.qb.collection.unshare =Unshare +label.qb.collection.share =Share +label.qb.collection.edit =Edit +error.form.validation.error =You have 1 error in a form. It has been highlighted +error.form.validation.errors =You have {0} errors in a form. They have been highlighted +label.authoring.choice.add.multiple.choice =Add multiple choice +label.authoring.choice.field.required =This field is required. +label.authoring.choice.enter.integer =Please enter an integer. +label.authoring.choice.enter.float =Please enter a floating point number. +label.authoring.choice.one.multiple.answers =One or multiple answers? +label.authoring.choice.one.answer =One answer only +label.authoring.choice.multiple.answers =Multiple answers allowed +label.authoring.choice.overall.feedback =Overall feedback +label.authoring.choice.feedback.on.correct =Feedback shown on any correct response +label.authoring.choice.feedback.on.partially.correct =Feedback shown on any partially correct response +label.authoring.choice.feedback.on.incorrect =Feedback shown on any incorrect response +label.authoring.choice.add.option =Add another answer +label.authoring.matching.pairs.matching.pairs =Matching pairs +label.authoring.matching.pairs.error.one.matching.pair =You should provide at least 1 matching pair. +label.authoring.matching.pairs.add.matching.pair =Add another +label.authoring.short.answer.no.case.unimportant =No, case is unimportant +label.authoring.short.answer.yes.case.must.match =Yes, case must match +label.authoring.short.answer.case.sensitivity =Case sensitivity +label.authoring.short.answer.add.answer =Add another answer +label.authoring.true.false.question =True/False question +label.authoring.true.false.correct.answer =Correct answer +label.authoring.true.false.feedback.on.true =Feedback for the response 'True'. +label.authoring.true.false.feedback.on.false =Feedback for the response 'False'. +label.authoring.numerical.question =Numerical question +label.authoring.numerical.units =Units +label.authoring.numerical.error.answer =You should provide at least one possible answer. +label.authoring.numerical.add.answer =Add another answer +label.authoring.numerical.add.unit =Add another unit +label.settings =Settings +label.enter.question.title =Question's title +label.enter.question.description =Question's description +label.authoring.answer.required =Answer required? +label.authoring.basic.default.question.grade =Default question grade +label.required.field =Required field +label.authoring.basic.allow.learners.rich.editor =Allow learners to use rich text editor +label.maximum.number.words =Maximum number of words +label.minimum.number.words =Minimum number of words +label.authoring.basic.general.feedback =General feedback +label.authoring.basic.shuffle.the.choices =Shuffle answers? +label.ask.for.hedging.justification =Ask for hedging justification? +label.autocomplete.as.student =Autocomplete (as student types answer autocomplete with stemming from answers) +label.authoring.basic.penalty.factor =Penalty factor +error.form.validation.hundred.score =One of the answers should have a grade of 100% so it is possible to get full marks for this question. +error.form.validation.positive.accepted.errors =All the accepted errors should be positive. +label.prefix.sequential.letters.for.each.answer =Prefix sequential letters for each answer +label.authoring.basic.option.question =Question +label.authoring.basic.option.grade =Grade +label.authoring.basic.option.feedback =Feedback +label.authoring.basic.option.accepted.error =Accepted error +label.authoring.basic.unit.unit =Unit +label.authoring.basic.unit.multiplier =Multiplier +label.authoring.true.false.false =False +label.authoring.true.false.true =True +label.authoring.basic.type.multiple.choice =Multiple choice +label.authoring.basic.type.matching.pairs =Matching pairs +label.authoring.basic.type.short.answer =Very short answers +label.authoring.basic.type.numerical =Numerical +label.authoring.basic.type.true.false =True/False +label.authoring.basic.type.essay =Essay +label.authoring.basic.type.ordering =Ordering +label.authoring.basic.type.mark.hedging =Mark hedging +label.incorrect.answer.nullifies.mark =Assigns full mark only when the correct answers are selected. +label.authoring.basic.option.answer =Answer +label.authoring.basic.delete =Delete +label.authoring.basic.none =None +error.positive.grade.required =One of the answers should have a positive grade # WA labels used in waStatsFragment.jsp for lkc_workflow_automation project label.wa.question.reject =Reject Index: lams_central/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r9f4d4f19dc70ef350ebab8e6aa89cb05e1c78c04 -r9091ed8c9bae9a48f88622c0c5031af2a39772dc --- lams_central/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 9f4d4f19dc70ef350ebab8e6aa89cb05e1c78c04) +++ lams_central/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 9091ed8c9bae9a48f88622c0c5031af2a39772dc) @@ -70,6 +70,7 @@ title.error.window =LAMS :: Error authoring.msg.save.success =Congratulations, your content saved successfully! label.authoring.close =Close +label.authoring.re.edit =Re-edit index.welcome =Welcome index.logout =Logout index.refresh =Refresh @@ -81,11 +82,9 @@ index.addlesson =Add Lesson index.monitor =Monitor index.dummymonitor =Dummy Monitor -index.qb.collections =Question collections title.import.result =Import tool content result title.import =Import tool content title.import.instruction =Please choose LAMS sequence to import. -title.import.instruction.antivirus =An antivirus scan will be performed. It can take a while. title.export.loading =Export tool content loading label.ld.zip.file =Learning design import file msg.import.success =Learning design and activities imported successfully. @@ -403,16 +402,15 @@ authoring.fla.course.groups.to.branches.match.dialog.title =Match Course Groups to Branching Groups authoring.fla.branch.mapping.course.groups.header =Course groups authoring.fla.branch.mapping.branching.groups.header =Branching groups -authoring.fla.branch.mapping.ordered.asc =Start with branches mapped to highest ordered answers label.tab.advanced.field.force.restart =Learners always start from the first activity label.tab.advanced.field.allow.restart =Learners can restart the lesson label.verification.code =Verification code error.verification.code =Sorry, entered verification code is incorrect. Please try again. label.your.new.shared.secret =Your new shared secret: {0} label.2FA.shared.secret =Two-factor authentication shared secret label.2FA.login.panel =Two-factor authentication required -label.remove.org.favorite =Remove organisation from favorite ones -label.mark.org.favorite =Mark organisation as favorite +label.remove.org.favorite =Remove course from favourite list +label.mark.org.favorite =Mark course as favourite label.email.send.me.a.copy =Send me a copy label.password.max.length =must be less than 25 characters label.password.min.length =must be at least {0} characters long @@ -490,7 +488,7 @@ authoring.fla.sequence.load.error =Error while loading the sequence authoring.fla.transition.from.exists.error =Transition from this activity already exists authoring.fla.export.sequence.dialog.title =Sequence export -authoring.fla.activity.copy.title.prefix =Copy [0] of +authoring.fla.activity.copy.title.prefix =Copy [0]of authoring.fla.preview.lesson.default.title =Preview authoring.fla.save.dialog.title =Save sequence authoring.fla.open.dialog.title =Open sequence @@ -683,7 +681,7 @@ tour.lesson.conditions.content =Set up conditions for starting or ending the lesson. tour.lesson.remove.title =Remove Lesson tour.lesson.remove.content =Remove the lesson completely. This is permanent - it cannot be undone. -tour.end.title =End Of Tour +tour.end.title =End tour.end.content =Thank you for taking the tour. To restart the tour, click the Tour button again. errors.maxfilesize =Uploaded file exceeded maximum size: {0} error.attachment.executable =Uploaded file is executable @@ -696,7 +694,7 @@ authoring.fla.activity.branching.description =branching tour.prev =Prev tour.next =Next -tour.end.tour =End of tour +tour.end.tour =End label.search.for.courses =Search for courses label.save.as.course.grouping =Save as a Course Grouping label.enter.course.grouping.name =Please enter name for the new course grouping @@ -793,6 +791,7 @@ label.view =View index.outcome.manage =Outcomes index.outcome.manage.tooltip =Manage learning outcomes and scales +outcome.manage.title =Course outcomes outcome.manage.remove =Remove outcome outcome.manage.remove.confirm =Are you sure you want to remove this outcome? outcome.manage.add =Add outcome @@ -801,21 +800,24 @@ outcome.manage.add.name =Name outcome.manage.add.code =Code outcome.manage.add.description =Description +outcome.manage.add.global =Global outcome.manage.add.scale =Scale outcome.manage.add.save =Save +outcome.manage.scope =Scope +outcome.manage.scope.global =global +outcome.manage.scope.course =course outcome.manage.add.error =Error while saving an outcome outcome.manage.add.error.name.blank =Name can not be blank outcome.manage.add.error.code.blank =Code can not be blank outcome.manage.add.error.scale.choose =You have to choose a scale -outcome.manage.remove.error.in.use =The outcome is mapped to some items. It can not be removed. scale.title =Scales scale.manage =Manage scales scale.manage.add =Add scale scale.manage.edit =Edit scale scale.manage.view =View scale +scale.manage.title =Course scales scale.manage.remove =Remove scale scale.manage.remove.scale =Error while removing a scale. -scale.manage.remove.error.in.use =The scale is used in some outcomes. It can not be removed. scale.manage.remove.confirm =Are you sure you want to remove this scale? scale.manage.add.value =Values scale.manage.add.value.info =Enter comma separated values in increasing order of value. For example, an A,B,C,D scale must be entered as D,C,B,A. @@ -825,7 +827,6 @@ outcome.authoring.input =Search and select by outcome name or code outcome.authoring.existing =Added outcomes outcome.authoring.existing.none =none -outcome.authoring.remove.confirm =Are you sure you want to remove this learning outcome? outcome.export.date =Exported on: outcome.export =Export outcome.import =Import @@ -841,15 +842,14 @@ authoring.error.question.correct.num =RAT Questions: One of the answers for Question {0} needs to be correct. authoring.description.application.exercise =Application Exercise (These question(s) will be shown during the analysis phase in the sequence.) authoring.label.grouping =Teams -authoring.label.group.name =Team_{0} authoring.label.grouping.learners.choice =Learner's Choice authoring.label.grouping.teachers.choice =Teacher's Choice authoring.label.grouping.random.allocation =Random Allocation authoring.label.numgroups =Number of teams: authoring.error.numgroups =Number of teams must be 1 to 99. authoring.label.numlearners =Number of learners: authoring.error.numlearners =Number of learners must be 1 to 99. -authoring.error.group.data =Teams settings are not correct. +authoring.error.group.data =Team settings are not correct. authoring.section.lessondetails =Lesson Details authoring.section.questions =RAT Questions authoring.section.applicationexercise =Application Exercises @@ -869,35 +869,53 @@ button.return.to.template.list =Back to Templates authoring.error.content.id =Content ID is missing authoring.error.question.must.have.answer.num =RAT Questions: Question {0} must have at least one answer. -authoring.error.application.exercise.question.must.not.be.blank.num =Application Exercises: {0} Question {1} may not be blank. authoring.error.application.exercise.must.have.answer.num =Application Exercises: {0} Question {1} must have at least one answer. authoring.error.application.exercise.must.have.100.percent =Application Exercises: {0} Question {1} must have at least one answer worth 100%. authoring.error.application.exercise.not.blank.and.grade =Application Exercises: {0} Question {1} may not be blank and must have a grade. -authoring.error.application.exercise.needs.noticeboard.text =Application Exercises: {0} is missing the text for the noticeboard. -authoring.error.rat.not.blank=RAT Questions: There must be at least one question. authoring.label.grade =Grade authoring.label.none =None authoring.tbl.template.title =Team Based Learning authoring.tbl.template.description =Individual and Team Readiness Assessments followed by Application Exercises. authoring.tbl.desc.question =Adding RAT questions. -authoring.tbl.enable.confidence.tooltip =Asks students in the iRAT how confident they are with their choosen answer. Then the confidence level for each student is displayed in the tRAT to all members of their team. authoring.tbl.desc.ae =Adding Application Exercises (AEs). You can create multiple AEs if needed. +outcome.manage.remove.error.in.use =The outcome is mapped to some items. It can not be removed. +scale.manage.remove.error.in.use =The scale is used in some outcomes. It can not be removed. +outcome.authoring.remove.confirm =Are you sure you want to remove this learning outcome? +signup.email.welcome.subject =LAMS: account details +authoring.error.application.exercise.question.must.not.be.blank.num =Application Exercise {0} Question {1} may not be blank. +authoring.error.application.exercise.needs.noticeboard.text =Application Exercises: {0} is missing the text for the noticeboard. +authoring.error.rat.not.blank =RAT Questions: There must be at least one question. authoring.template.basic.import.qti =Import IMS QTI -authoring.tbl.use.noticeboard=Add Noticeboard after AE -authoring.tbl.use.noticeboard.tooltip=After the AE, displays content to students as additional information or as a reflection on the AE topic -authoring.create.application.exercise=Add New Application Exercise -label.marks=Marks -authoring.tbl.delete.appex.prompt=Do you want to delete the Application Exercise {0}? -authoring.tbl.delete.mcq.prompt=Do you want to delete the RAT Question {0}? -authoring.application.exercise.allow.multiple.responses =Allow Multiple Responses +authoring.tbl.use.noticeboard =Add Noticeboard after AE +authoring.create.application.exercise =Add new Application Exercise +authoring.tbl.enable.confidence.tooltip =Asks students in the iRAT how confident they are with their chosen answer. Then the confidence level for each student is displayed in the tRAT to all members of their team. +authoring.tbl.use.noticeboard.tooltip =After the AE, displays content to students as additional information or as a reflection on the AE topic. +authoring.tbl.delete.appex.prompt =Do you want to delete the Application Exercise {0}? +authoring.tbl.delete.mcq.prompt =Do you want to delete the RAT Question {0}? +authoring.application.exercise.allow.multiple.responses =Allow multiple responses authoring.application.exercise.allow.multiple.responses.tooltip =When learners are allowed to select multiple answers the grade is the sum of the grade for all correct responses selected. message.teacher.role.not.recognized =Please wait for a teacher to start the lesson. (You were logged in as a learner, as your current role does not conform LTI specification). - -#QB questions# +label.multiple.lessons =Multiple lessons +label.add.lessons.to.subgroups =Add lesson to all selected subcourses +label.marks =Marks +authoring.fla.grouping.detached.error =Activity "{0}" was grouped with a grouping activity that is missing or is not one of previous activities. Grouping was cleared. +authoring.fla.input.detached.error =Activity "{0}" had an input activity that is missing or is not one of previous activities. Input was cleared. +label.question.not.added =This question has already been added +label.questions.choice.collection =Choose a collection: +authoring.fla.branch.mapping.ordered.asc =Start with branches mapped to highest ordered answers +title.import.instruction.antivirus =An antivirus scan will be performed. It can take a while. +outcome.authoring.create.new =[create new] +index.qb.collections =Question collections +label.answer.queue =Answer queue +label.drag.and.drop =drag and drop answer to tick or cross +label.correct =Correct +label.incorrect =Incorrect +label.answer.alternatives =Answer alternatives +label.close =Close label.create.question =Create question label.question.type.multiple.choice =Multiple choice label.question.type.matching.pairs =Matching pairs -label.question.type.short.answer =Very short answers +label.question.type.short.answer =Short answer label.question.type.numerical =Numerical label.question.type.true.false =True/False label.question.type.essay =Essay @@ -912,7 +930,69 @@ label.export.xml =Export questions in XML format msg.import.file.format =The import file must be .xml file exported from assessment tool and not exceed size of {0} error.import.file.format =The import file is not an .xml file. - +label.qb.stats.title =Question statistics +error.qb.permanent.remove =The question is in one collection only, so it would be permanently removed.\\nIt is not possible as the question is used in sequences. +label.qb.permanent.remove.confirm =The question is in one collection only. Are you sure that you want to remove it permanently? +label.qb.stats.question =Question +label.qb.stats.question.version =Version +label.qb.stats.question.title =Title +label.qb.stats.question.description =Description +label.qb.stats.question.feedback =Feedback +label.qb.stats.question.mark =Mark +label.qb.stats.option.title =Title +label.qb.stats.option.correct =Correct? +label.qb.stats.option.average =Average selection
(as first choice) +label.qb.stats.chart =Average selection chart +label.qb.stats.burning.questions =Burning questions +label.qb.stats.burning.questions.none =This question does not have any burning questions +label.qb.stats.burning.questions.likes =Likes +label.qb.stats.usage =Usage in active lessons +label.qb.stats.usage.none =This question is not used in any lesson +label.qb.stats.usage.course =Course +label.qb.stats.usage.lesson =Lesson +label.qb.stats.usage.activity =Activity +label.qb.stats.usage.type =Tool type +label.qb.stats.usage.participant.count =Test participant count +label.qb.stats.usage.difficulty =Difficulty index +label.qb.stats.usage.discrimination =Discrimination index +label.qb.stats.usage.biserial =Point biserial +label.qb.stats.versions =Previous versions +label.qb.stats.versions.none =This question does not have any previous versions +label.qb.stats.versions.created =Created date +label.qb.stats.versions.created.ago =Created ago +label.qb.stats.collections =Collections +label.qb.stats.collections.transfer =Transfer questions to +label.qb.stats.collections.transfer.add =Add +label.qb.stats.collections.transfer.copy =Copy +label.qb.stats.collections.existing =Existing collections +label.qb.stats.collections.remove =Remove +label.qb.stats.outcomes =Learning outcomes +label.qb.stats.outcomes.none =This question does not have any learning outcomes +label.qb.stats.outcomes.existing =Existing outcomes +label.qb.collection =Collection +label.qb.collection.grid.title =Questions +label.qb.collection.grid.id =ID +label.qb.collection.grid.name =Name +label.qb.collection.grid.outcomes =Learning Outcomes +label.qb.collection.grid.usage =Used in
lessons +label.qb.collection.grid.actions =Actions +label.qb.collection.grid.stats =Stats +label.qb.collection.grid.error =Error while loading grid with question collections +label.qb.collection.name.blank.error =Name must not be blank +label.qb.collection.name.duplicate.error =Collection with such name already exists +label.qb.collection.action.stats =Show stats +label.qb.collection.remove.confirm =Are you sure you want to remove "{0}" collection? +label.qb.collection.management =Collection management +label.qb.collection.private =Private collection +label.qb.collection.remove =Remove collection +label.qb.collection.xml =XML +label.qb.collection.qti =QTI +label.qb.collection.questions.none =There are no questions in this collection +label.qb.collection.share.title =Share collection with courses +label.qb.collection.shared =Shared +label.qb.collection.unshare =Unshare +label.qb.collection.share =Share +label.qb.collection.edit =Edit error.form.validation.error =You have 1 error in a form. It has been highlighted error.form.validation.errors =You have {0} errors in a form. They have been highlighted label.authoring.choice.add.multiple.choice =Add multiple choice @@ -948,7 +1028,7 @@ label.enter.question.description =Question's description label.authoring.answer.required =Answer required? label.authoring.basic.default.question.grade =Default question grade -label.required.field =Required field +label.required.field =Required field label.authoring.basic.allow.learners.rich.editor =Allow learners to use rich text editor label.maximum.number.words =Maximum number of words label.minimum.number.words =Minimum number of words @@ -982,4 +1062,5 @@ label.authoring.basic.none =None error.positive.grade.required =One of the answers should have a positive grade -#======= End labels: Exported 872 labels for en AU ===== + +#======= End labels: Exported 1055 labels for en AU ===== Index: lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringController.java =================================================================== diff -u -r658453b9f8bdfbf78bc9151b2cc711796081abc2 -r9091ed8c9bae9a48f88622c0c5031af2a39772dc --- lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringController.java (.../AuthoringController.java) (revision 658453b9f8bdfbf78bc9151b2cc711796081abc2) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringController.java (.../AuthoringController.java) (revision 9091ed8c9bae9a48f88622c0c5031af2a39772dc) @@ -46,7 +46,7 @@ import org.lamsfoundation.lams.integration.ExtCourseClassMap; import org.lamsfoundation.lams.integration.ExtServer; import org.lamsfoundation.lams.integration.service.IIntegrationService; -import org.lamsfoundation.lams.integration.util.LoginRequestDispatcher; +import org.lamsfoundation.lams.integration.util.IntegrationConstants; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.BranchingActivity; import org.lamsfoundation.lams.learningdesign.LearningDesign; @@ -316,8 +316,8 @@ Integer organisationID = WebUtil.readIntParam(request, AttributeNames.PARAM_ORGANISATION_ID, true); if (organisationID == null) { // if organisation ID is not set explicitly, derived it from external course - String serverID = request.getParameter(LoginRequestDispatcher.PARAM_SERVER_ID); - String courseID = request.getParameter(LoginRequestDispatcher.PARAM_COURSE_ID); + String serverID = request.getParameter(IntegrationConstants.PARAM_SERVER_ID); + String courseID = request.getParameter(IntegrationConstants.PARAM_COURSE_ID); ExtServer extServer = integrationService.getExtServer(serverID); ExtCourseClassMap orgMap = integrationService.getExtCourseClassMap(extServer.getSid(), courseID); organisationID = orgMap.getOrganisation().getOrganisationId(); Index: lams_central/src/java/org/lamsfoundation/lams/web/HomeController.java =================================================================== diff -u -re1d9ed4b09a58b1da0f50a56642926a00f9673e6 -r9091ed8c9bae9a48f88622c0c5031af2a39772dc --- lams_central/src/java/org/lamsfoundation/lams/web/HomeController.java (.../HomeController.java) (revision e1d9ed4b09a58b1da0f50a56642926a00f9673e6) +++ lams_central/src/java/org/lamsfoundation/lams/web/HomeController.java (.../HomeController.java) (revision 9091ed8c9bae9a48f88622c0c5031af2a39772dc) @@ -38,6 +38,7 @@ import javax.servlet.http.HttpSession; import org.apache.commons.io.IOUtils; +import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.lamsfoundation.lams.contentrepository.exception.RepositoryCheckedException; import org.lamsfoundation.lams.learningdesign.GroupUser; @@ -68,6 +69,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.context.WebApplicationContext; @@ -249,9 +251,8 @@ @RequestMapping("/addLesson") @SuppressWarnings("unchecked") - public String addLesson(HttpServletRequest req, HttpServletResponse res) + public String addLesson(HttpServletRequest req, HttpServletResponse res, @RequestParam Integer organisationID) throws IOException, UserAccessDeniedException, RepositoryCheckedException { - Integer organisationID = new Integer(WebUtil.readIntParam(req, "organisationID")); UserDTO userDTO = getUser(); if (!securityService.isGroupMonitor(organisationID, userDTO.getUserID(), "add lesson", false)) { res.sendError(HttpServletResponse.SC_FORBIDDEN, "User is not a monitor in the organisation"); @@ -287,7 +288,6 @@ users.withArray("unselectedMonitors").add(userJSON); } } - req.setAttribute("users", users.toString()); // find lessons which can be set as preceding ones for newly created lesson @@ -302,6 +302,9 @@ } req.setAttribute("availablePrecedingLessons", availableLessons); + // find subgroups which can be set as multiple lessons start + req.setAttribute("subgroups", organisation.getChildOrganisations()); + return "addLesson"; } @@ -356,8 +359,10 @@ @RequestMapping("/logout") public String logout(HttpServletRequest req) throws IOException, ServletException { UserDTO userDTO = getUser(); + HttpSession session = req.getSession(); + String logoutURL = (String) session.getAttribute("integratedLogoutURL"); - req.getSession().invalidate(); + session.invalidate(); if (userDTO != null) { String message = new StringBuilder("User ").append(userDTO.getLogin()).append(" (") @@ -366,7 +371,7 @@ message); } - return "redirect:/index.do"; + return "redirect:" + (StringUtils.isBlank(logoutURL) ? "/index.do" : logoutURL); } private String displayMessage(HttpServletRequest req, String messageKey) { Index: lams_central/web/addLesson.jsp =================================================================== diff -u -re1d9ed4b09a58b1da0f50a56642926a00f9673e6 -r9091ed8c9bae9a48f88622c0c5031af2a39772dc --- lams_central/web/addLesson.jsp (.../addLesson.jsp) (revision e1d9ed4b09a58b1da0f50a56642926a00f9673e6) +++ lams_central/web/addLesson.jsp (.../addLesson.jsp) (revision 9091ed8c9bae9a48f88622c0c5031af2a39772dc) @@ -99,6 +99,7 @@ +
@@ -154,43 +155,43 @@
+ - +
-
-
- -
-
-
-
- -
- - - -
- -
+
+
+
+
+
+
+ +
+ +
+ +
+
@@ -201,67 +202,101 @@
+ +
-
+
+ +
- - + +
- - + +
+ + + +
+
+
+ +
+ + +
+ +
+
+
+
+
-
+
+ +
-
-
+
+ +
+
+ +
Index: lams_central/web/authoring/authoring.jsp =================================================================== diff -u -r658453b9f8bdfbf78bc9151b2cc711796081abc2 -r9091ed8c9bae9a48f88622c0c5031af2a39772dc --- lams_central/web/authoring/authoring.jsp (.../authoring.jsp) (revision 658453b9f8bdfbf78bc9151b2cc711796081abc2) +++ lams_central/web/authoring/authoring.jsp (.../authoring.jsp) (revision 9091ed8c9bae9a48f88622c0c5031af2a39772dc) @@ -137,6 +137,10 @@ WEIGHTS_SUM_ERROR : decoderDiv.html('').text(), WEIGHTS_NONE_FOUND_ERROR : decoderDiv.html('').text(), + + GROUPING_DETACHED_ERROR : decoderDiv.html('').text(), + + INPUT_DETACHED_ERROR : decoderDiv.html('').text(), TEMPLATES : decoderDiv.html('').text(), @@ -300,7 +304,7 @@ - Index: lams_central/web/includes/javascript/addLesson.js =================================================================== diff -u -r2708837c1330f2c5fd30195d17115eadc1264dca -r9091ed8c9bae9a48f88622c0c5031af2a39772dc --- lams_central/web/includes/javascript/addLesson.js (.../addLesson.js) (revision 2708837c1330f2c5fd30195d17115eadc1264dca) +++ lams_central/web/includes/javascript/addLesson.js (.../addLesson.js) (revision 9091ed8c9bae9a48f88622c0c5031af2a39772dc) @@ -360,12 +360,19 @@ // copy CKEditor contents to textarea for submit $('#introDescription').val(CKEDITOR.instances['introDescription'].getData()); + + //handle multiple lessons feature + if ($(".multiple-lessons:checked").length) { + //don't send main organisation's id to the server in case other multiple lessons are chosen + $("#organisation-id").prop("disabled", true); + } submitInProgress = true; $('#lessonForm').ajaxSubmit({ 'success' : function(){ window.parent.closeDialog('dialogAddLesson', true); - }}); + } + }); } function previewLesson(){ @@ -457,21 +464,29 @@ } generatingLearningDesign = true; + // iframe just to load Authoring for a single purpose, generate the SVG - $('