Difference between revisions of "Widget:MerlinProficiencyProgress"

From Coder Merlin
(Replaced content with "<noinclude> Runs the JavaScript for the progress HTML table. </noinclude> <includeonly> <script> var username = "<!--{$userName}-->".toLowerCase(); var sessionID = "<!--...")
Tag: Replaced
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
<noinclude>
<script type="module">
Runs the JavaScript for the progress HTML table.
import * as merlinapi from "/wiki/merlin_extensions/merlin-api.mjs";
</noinclude>


<includeonly>
const userName = "<!--{$userName}-->".toLowerCase();
<script>
const sessionID =  "<!--{$sessionID}-->";
var username = "<!--{$userName}-->".toLowerCase();
 
var sessionID =  "<!--{$sessionID}-->";
function MasteryProgressModel(data) {
window.addEventListener('load', (event) => {
    this.masteryProgresses = ko.observableArray(data);
    merlinProficiencyProgress(username, sessionID);
}
 
// Activates knockout.js
function init(event) {
    let successHandler = function (data) {
        data.sort((left, right) => {
return left.masteryProgramTopicSequence > right.masteryProgramTopicSequence ? 1 :
      (left.masteryProgramTopicSequence < right.masteryProgramTopicSequence ? -1 :
      0)
    });
    let model = new MasteryProgressModel(data);
    ko.applyBindings(model);
  }
  let errorHandler = function(error) {
      console.error(error.message);
  }
  merlinapi.MasteryProgressModel.load(successHandler, errorHandler, userName, sessionID);
}
     
window.addEventListener("load", (event) => {
  init(event)
});
});
</script>
</script>
</includeonly>
 
<table class="merlin-proficiency-progress-table" style="display: none" data-bind="visible: true">
    <thead>
    <tr>
        <th>Program Level Name</th>
        <th>Emerging</th>
        <th>Developing</th>
        <th>Proficient</th>
        <th>Exemplary</th>
      </tr>
    </thead>
    <tbody data-bind="foreach: masteryProgresses">
        <tr>
        <td data-bind="style: {'background-color': color()}, click: toggleMissionDisplay" class="merlin-proficiency-progress-program-level-name">
            <span data-bind="text: arrowInnerText()"></span>
            <span data-bind="text: standardName()"></span>
                <ul data-bind="style: {'display': (shouldShowMissions()) ? 'block' : 'none'},foreach: missions">
                <li data-bind="text: standardName()"></li>
                </ul>
        </td>
            <td><span data-bind="class: emergingClassName()"></span></td>
            <td><span data-bind="class: developingClassName()"></span></td>
            <td><span data-bind="class: proficientClassName()"></span></td>
            <td><span data-bind="class: exemplaryClassName()"></span></td>
        </tr>
    </tbody>
</table>

Latest revision as of 20:11, 5 April 2023

<script type="module"> import * as merlinapi from "/wiki/merlin_extensions/merlin-api.mjs";

const userName = "".toLowerCase(); const sessionID = "";

function MasteryProgressModel(data) {

   this.masteryProgresses = ko.observableArray(data);

}

// Activates knockout.js function init(event) {

   let successHandler = function (data) {
       data.sort((left, right) => {

return left.masteryProgramTopicSequence > right.masteryProgramTopicSequence ? 1 : (left.masteryProgramTopicSequence < right.masteryProgramTopicSequence ? -1 : 0) }); let model = new MasteryProgressModel(data); ko.applyBindings(model); } let errorHandler = function(error) { console.error(error.message); } merlinapi.MasteryProgressModel.load(successHandler, errorHandler, userName, sessionID); }

window.addEventListener("load", (event) => { init(event) }); </script>

<thead> </thead> <tbody data-bind="foreach: masteryProgresses"> </tbody>