From ac8fde3f59538a855242476aad0e8a0eba35192f Mon Sep 17 00:00:00 2001 From: shivashanmugam Date: Fri, 22 Jun 2018 13:12:44 +0530 Subject: [PATCH 1/3] added layout support configuration for MTF --- editor/question.html | 9 +++++++++ editor/style.css | 6 +++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/editor/question.html b/editor/question.html index 36a02fd..bed9218 100644 --- a/editor/question.html +++ b/editor/question.html @@ -102,6 +102,15 @@

Configuration

Configuration

+
+ + +
Partial Scoring
diff --git a/editor/style.css b/editor/style.css index 65d1c86..72a0911 100644 --- a/editor/style.css +++ b/editor/style.css @@ -265,4 +265,8 @@ color: white; .formDiv{ overflow: auto; -} \ No newline at end of file +} + +.pull-left{ + float: left; +} From 8f5449e5d310362360c81429d46f5db7f1edd351 Mon Sep 17 00:00:00 2001 From: shivashanmugam Date: Sat, 23 Jun 2018 11:29:06 +0530 Subject: [PATCH 2/3] created question services added telemetry services and invokeAssetBrowser --- editor/question.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/editor/question.js b/editor/question.js index c3bfe33..029c614 100644 --- a/editor/question.js +++ b/editor/question.js @@ -502,4 +502,26 @@ angular.module('org.ekstep.question', ['org.ekstep.metadataform']) ctrl.init(); }]); + angular.module('org.ekstep.question').service('questionServices', ['$http', function ($http) { + + this.invokeAssetBrowser = function(callbackObj) { + ecEditor.dispatchEvent('org.ekstep.assetbrowser:show', callbackObj); + } + + this.generateTelemetry = function(data, plugin){ + if (data) ecEditor.getService('telemetry').interact({ + "type": data.type, + "id": data.id, + "pageid": data.form, + "target": { + "id": data.target.id, + "ver": data.target.ver, + "type": data.target.type + }, + "plugin": plugin + }) + } + + }]); + //# sourceURL=question.js \ No newline at end of file From 8b88daf0a2d7a3cd560392b9cd0f85df21b73b1c Mon Sep 17 00:00:00 2001 From: sivashanmugam-kannan Date: Thu, 26 Jul 2018 14:35:47 +0530 Subject: [PATCH 3/3] fixing conflicts in question --- editor/question-ctrl.js | 163 +++++++++++++--------------------------- 1 file changed, 53 insertions(+), 110 deletions(-) diff --git a/editor/question-ctrl.js b/editor/question-ctrl.js index f477274..fa7986b 100644 --- a/editor/question-ctrl.js +++ b/editor/question-ctrl.js @@ -1,42 +1,39 @@ angular.module('org.ekstep.question', ['org.ekstep.metadataform']) - .controller('QuestionCreationFormController', ['$scope', 'instance', 'questionData', function ($scope, instance, questionData) { - $scope.templatesScreen = true; - $scope.questionMetadataScreen = false; - $scope.Totalconcepts = 0; - $scope.Totaltopics = 0; - $scope.category = ''; - $scope.editState = false; - $scope.questionUnitTemplateURL = ''; - $scope.questionTemplates = []; - $scope.templatesNotFound = ''; - $scope.selectedTemplatePluginData = {}; - $scope.templatesType = ['Horizontal', 'Vertical', 'Grid']; - $scope._constants = { - previewPlugin: 'org.ekstep.questionset.preview', - questionPlugin: 'org.ekstep.question', - questionsetPlugin: 'org.ekstep.questionset', - questionbankPlugin: 'org.ekstep.questionbank' - }; - $scope.questionData = { 'questionMaxScore': 1 }; - $scope.questionData.isShuffleOption = false; - $scope.questionData.isPartialScore = true; - $scope.questionData.templateType = $scope.templatesType[0]; - $scope.questionMetaData = {}; +.controller('QuestionCreationFormController', ['$scope', 'instance', 'questionData', function ($scope, instance, questionData) { + $scope.templatesScreen = true; + $scope.questionMetadataScreen = false; + $scope.Totalconcepts = 0; + $scope.Totaltopics = 0; + $scope.category = ''; + $scope.editState = false; + $scope.questionUnitTemplateURL = ''; + $scope.questionTemplates = []; + $scope.templatesNotFound = ''; + $scope.selectedTemplatePluginData = {}; + $scope.templatesType = ['Horizontal', 'Vertical', 'Grid']; + $scope._constants = { + previewPlugin: 'org.ekstep.questionset.preview', + questionPlugin: 'org.ekstep.question', + questionsetPlugin: 'org.ekstep.questionset', + questionbankPlugin: 'org.ekstep.questionbank' + }; + $scope.questionData = {'questionMaxScore': 1}; + $scope.questionData.isShuffleOption = false; + $scope.questionData.isPartialScore = true; + $scope.questionData.templateType = $scope.templatesType[0]; + $scope.questionMetaData = {}; - $scope.init = function () { - ecEditor.addEventListener('editor:template:loaded', function (event, object) { - if (object.formAction == 'question-meta-save') { - ecEditor.dispatchEvent('metadata:controller:init'); - $scope.metadataform = object.templatePath; - } - }); - if (!ecEditor._.isEmpty(questionData)) { - $scope.showQuestionForm(questionData); - } else { - $scope.showTemplates(); + $scope.init = function () { + ecEditor.addEventListener('editor:template:loaded', function (event, object) { + if(object.formAction == 'question-meta-save') { + ecEditor.dispatchEvent('metadata:controller:init'); + $scope.metadataform = object.templatePath; } - EventBus.listeners['editor:form:data'] = undefined; - ecEditor.addEventListener('editor:form:success', $scope.saveMetaData); + }); + if (!ecEditor._.isEmpty(questionData)) { + $scope.showQuestionForm(questionData); + } else { + $scope.showTemplates(); } EventBus.listeners['editor:form:success'] = undefined; ecEditor.addEventListener('editor:form:success', $scope.saveMetaData); @@ -79,79 +76,25 @@ angular.module('org.ekstep.question', ['org.ekstep.metadataform']) "version": obj.ver, "templateId": obj.editor.template }; - $scope.cancel = function () { - $scope.closeThisDialog(); - } - $scope.back = function () { - if (!$scope.questionMetadataScreen) { - $scope.questionMetadataScreen = true; - $scope.templatesScreen = true; - $scope.showTemplates(); - } else { - var metaFormScope = $('#question-meta-form #content-meta-form').scope(); - metaFormScope.isSubmit = false; - $scope.questionData.questionTitle = metaFormScope.contentMeta.name; - $scope.questionData.qcMedium = metaFormScope.contentMeta.medium; - $scope.questionData.qcLevel = metaFormScope.contentMeta.qlevel; - $scope.questionData.questionDesc = metaFormScope.contentMeta.description; - $scope.questionData.questionMaxScore = metaFormScope.contentMeta.max_score; - $scope.questionData.qcGrade = metaFormScope.contentMeta.gradeLevel; - $scope.questionData.concepts = metaFormScope.contentMeta.concepts; - $scope.questionData.topic = metaFormScope.contentMeta.topic; - $scope.questionMetadataScreen = false; - } - } - $scope.formIsValid = function () { - $scope.questionMetadataScreen = true; - //comment because in edit question the question and question title are not - if ($scope.category == 'FTB') { - $scope.questionData.questionTitle = _.isUndefined($scope.questionData.questionTitle) ? $scope.questionCreationFormData.question.text.replace(/\[\[.*?\]\]/g, '____') : $scope.questionData.questionTitle; - } else { - $scope.questionData.questionTitle = _.isUndefined($scope.questionData.questionTitle) ? $scope.questionCreationFormData.question.text : $scope.questionData.questionTitle; - } - $scope.questionData.questionTitle = $scope.extractHTML($scope.questionData.questionTitle); - $scope.questionMetaData.name = $scope.questionData.questionTitle; - $scope.questionMetaData.medium = $scope.questionData.qcMedium; - $scope.questionMetaData.qlevel = $scope.questionData.qcLevel; - $scope.questionMetaData.description = $scope.questionData.questionDesc; - $scope.questionMetaData.max_score = $scope.questionData.questionMaxScore; - $scope.questionMetaData.gradeLevel = $scope.questionData.qcGrade; - $scope.questionMetaData.concepts = $scope.questionData.concepts; - $scope.questionMetaData.topic = $scope.questionData.topic; - $scope.questionMetaData.subject = $scope.questionData.subject; - $scope.questionMetaData.board = $scope.questionData.board; - if ($scope.questionMetaData.concepts) { - $scope.questionMetaData.conceptData = "(" + $scope.questionData.concepts.length + ") concepts selected"; - } - if ($scope.questionMetaData.topic) { - $scope.questionMetaData.topicData = "(" + $scope.questionData.topic.length + ") topics selected"; - } - ecEditor.dispatchEvent('org.ekstep.editcontentmeta:showpopup', { - action: 'question-meta-save', - subType: 'questions', - framework: ecEditor.getContext('framework'), - rootOrgId: ecEditor.getContext('channel'), - type: 'content', - popup: false, - metadata: $scope.questionMetaData - }); - } - $scope.sendMetaData = function () { - var formElement = $("#questionMetaDataTemplate").find("#content-meta-form"); - var frmScope = formElement.scope(); - ecEditor.dispatchEvent("metadata:form:onsuccess", { target: '#questionMetaDataTemplate', form: frmScope.metaForm }); - }; - $scope.saveMetaData = function (event, object) { - var metaDataObject = object.formData.metaData; - for (var property in object.formData.metaData) { - if (metaDataObject[property]) { - $scope.questionMetaData[property] = metaDataObject[property]; - } - } - var questionFormData = {}; - var data = {}; // TODO: You have to get this from Q.Unit plugin(getData()) - data.plugin = $scope.selectedTemplatePluginData.plugin; - data.data = $scope.questionCreationFormData; + var pluginInstance = $scope.createPluginInstance(obj.pluginID); + pluginInstance._data = {}; + $scope.unitPlugin = obj.pluginID; + $scope.pluginVer = obj.ver; + $scope.templateId = obj.editor.template; + var templatePath = ecEditor.resolvePluginResource(obj.pluginID, obj.ver, obj.editor.templateURL); + $scope.questionUnitTemplateURL = templatePath + '?BUILDNUMBER'; + } + $scope.showMetaform = function () { + $scope.refreshPreview = false; + $scope.validateQuestionCreationForm(); + } + $scope.createPluginInstance = function(pluginId){ + return ecEditor.instantiatePlugin(pluginId); + } + $scope.validateQuestionCreationForm = function(){ + var pluginInstance = $scope.createPluginInstance($scope.selectedTemplatePluginData.plugin.id); // Plugin id is based on template choosen + pluginInstance.validateForm($scope.validatedForm); + } $scope.validatedForm = function(isFormValid,data){ if(isFormValid){ @@ -455,4 +398,4 @@ angular.module('org.ekstep.question', ['org.ekstep.metadataform']) $scope.init(); }]); -//# sourceURL=question-ctrl.js \ No newline at end of file +//# sourceURL=questionCtrl.js \ No newline at end of file