Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Contains QuestionSet Editor library components powered by angular. These components are designed to be used in the sunbirdEd portal and coKreat reference web portal to drive reusability, maintainability hence reducing the redundant development effort significantly.

...

The demo app will launch at http://localhost:4200

Set the auth token and questionset identifier

From the root directory - go to server.js file

...

Property

Default Value

Required

Description

mode

true

Defines the mode in editor is to be loaded loaded.

editableFields

{

sourcingreview: [], orgreview: [], review: [],

}

false

Defines which fields is to be enabled when mode of questionset is

review / sourcingReview / orgReview

enableQuestionCreation

true

false

It enables or disables the creation of question in questionset

assetConfig

false

asset Config sets the max size limit for image and videos to be uploaded in question in questionset.

maxDepth

true

Defines the depth to which the questionset is to be created. If the depth is 1, hierarchy should have level1 described.

children

true

If maxdepth is 0 this children inside the root node defines the template of questions.

hierarchy

false

If maxdepth is > 0 then hierarchy should have definiton of the levels.

objectType

'QuestionSet'

true

Defines the object type

primaryCategory

'Practice Question Set'

true

Defines the primary category

isRoot

true

true

Defines the node is root node.

iconClass

'fa fa-book'

true

Defines the icon of root node

showAddCollaborator

false

false

This is to enable/disable the functionality of add collaborator in questionset. If it is true add collobrorator button will be enabled and created can add the collolaborator to collaborate in questionset.

questionSet. maxQuestionsLimit

false

It defines the limit of total number of question to be created inside questionset.

contentPolicyUrl

true

It defines where should the content policy link will be redirected.

  • mode:

mode: edit (all the fields will be enable to edit for questionset creator)

...

mode: sourcingReview (all those fields will be enabled whatever will be present in editableFields.sourcingreview)

...

  • enableQuestionCreation:

When enableQuestionCreation: false “Create New” button gets disabled

...

Code Block
{
           "code": "string",
           "dataType": "string", // text, list, number, boolean
           "description": "string",
           "editable": boolean, // true/ false
           "inputType": "", // text, richtext, textarea,keywords,nestedselect,select,topicselect,checkbox,timer,
           "label": "string",
           "name": "string",
           "placeholder": "string",
           "renderingHints": {
               "class": "sb-g-col-lg-2 required"
           }, //sb-g-col-lg-2 required, sb-g-col-lg-1 required
           "validations": [
               {
                   "type": "required",
                   "message": "string"
               } // required, maxLength,compare
           ]
       }

dataType

datatype is the format in which sb-form outputs the data of field in that data type:

  • text: “string”

  • list: array[]

  • number: number

  • boolean: true/false 

renderHints

renderHints defines whether the field should take space of two column(sb-g-col-lg-2) or one column(sb-g-col-lg-1) and to add asterisks(*) in the label of field(required)

validations

validations defines the different types of validations which can be done on fields

We are using required, maxLength,compare

  • required: for making the field to be required you need to add the required validations as:

...

Code Block
"validations": [
    {
        "type": "compare",
        "criteria": {
            "<=": [
                "maxTime"
            ]
        },
        "message": "warning time should be less than max timer"
    }
]

inputType

inputType defines the different types of field with which some kind of data can be sent to sb-form.

We are using text, richtext, textarea, keywords, nestedselect, select, topicselect, checkbox, timer

"inputType": "text"

Code Block
{
    "code": "name",
    "dataType": "text",
    "description": "Name of the Practice Question Set",
    "editable": true,
    "inputType": "text",
    "label": "Name",
    "name": "Name",
    "placeholder": "Enter name of the question set",
    "renderingHints": {
        "class": "sb-g-col-lg-1 required"
    },
    "required": true,
    "visible": true,
    "validations": [
        {
            "type": "maxLength",
            "value": "120",
            "message": "Input is Exceeded"
        },
        {
            "type": "required",
            "message": "Name is required"
        }
    ]
}

...

 "inputType": "textarea"

Code Block
{
    "code": "description",
    "dataType": "text",
    "description": "Description of the content",
    "editable": true,
    "inputType": "textarea",
    "label": "Description",
    "name": "Description",
    "placeholder": "Description",
    "renderingHints": {
        "class": "sb-g-col-lg-1 required"
    },
    "required": true,
    "visible": true,
    "validations": [
        {
            "type": "required",
            "message": "description is required"
        }
    ]
}

...

"inputType": "richtext"

Code Block
{
    "code": "instructions",
    "dataType": "text",
    "description": "Instructions for the question set",
    "editable": true,
    "inputType": "richtext",
    "label": "Instructions",
    "name": "Instruction",
    "placeholder": "Enter Instructions",
    "renderingHints": {
        "class": "sb-g-col-lg-2 required"
    },
    "validations": [
        {
            "type": "required",
            "message": "Instruction is required"
        }
    ],
    "required": true,
    "visible": true
}

...

“inputType”: “keywords”

Code Block
{
    "code": "keywords",
    "visible": true,
    "editable": true,
    "dataType": "list",
    "name": "Keywords",
    "renderingHints": {
        "class": "sb-g-col-lg-1"
    },
    "description": "Keywords for the content",
    "inputType": "keywords",
    "label": "keywords",
    "placeholder": "Enter Keywords",
    "required": false,
    "validations": []
}

...

"inputType": "nestedselect"

Code Block
{
    "code": "additionalCategories",
    "dataType": "list",
    "description": "Additonal Category of the Content",
    "editable": true,
    "inputType": "nestedselect",
    "label": "Additional Category",
    "name": "Additional Category",
    "placeholder": "Select Additional Category",
    "renderingHints": {
        "class": "sb-g-col-lg-1"
    },
    "default": "",
    "required": false,
    "visible": true
}

...

"inputType": "select"

Code Block
{
    "code": "board",
    "default": "",
    "visible": true,
    "depends": [],
    "editable": true,
    "dataType": "text",
    "renderingHints": {
        "class": "sb-g-col-lg-1"
    },
    "description": "Board",
    "label": "Board/Syllabus",
    "required": false,
    "name": "Board/Syllabus",
    "inputType": "select",
    "placeholder": "Select Board/Syllabus"
}

...

"inputType": "topicselector"

Code Block
{
    "code": "topic",
    "visible": true,
    "editable": true,
    "dataType": "list",
    "depends": [
        "board",
        "medium",
        "gradeLevel",
        "subject"
    ],
    "default": "",
    "renderingHints": {
        "class": "sb-g-col-lg-1"
    },
    "name": "Topic",
    "description": "Choose a Topics",
    "inputType": "topicselector",
    "label": "Topics",
    "placeholder": "Choose Topics",
    "required": false
}

...

"inputType": "checkbox"

Code Block
{
    "code": "showSolutions",
    "dataType": "text",
    "description": "Show Solution",
    "editable": true,
    "inputType": "checkbox",
    "label": "Show Solution",
    "name": "Show Solution",
    "placeholder": "Show Solution",
    "renderingHints": {
        "class": "sb-g-col-lg-1"
    },
    "required": false,
    "visible": true
}

...

“inputType”: “timer”

Code Block
{
    "code": "maxTime",
    "visible": true,
    "editable": true,
    "dataType": "text",
    "name": "MaxTimer",
    "renderingHints": {
        "class": "sb-g-col-lg-1 required"
    },
    "description": "MaxTime for the content",
    "inputType": "timer",
    "label": "Max Time",
    "placeholder": "HH:mm:ss",
    "required": true,
    "validations": [
        {
            "type": "required",
            "message": "Maxtime is required"
        },
        {
            "type": "maxTime",
            "value": "05:30",
            "message": "Maxtime should be less than or equal to 05:30"
        },
        {
            "type": "minTime",
            "value": "00:01",
            "message": "Maxtime should be greater than 00:00"
        }
    ]
}

...