]> _ Git - hf-scorm-package.git/commitdiff
wip #4907 @0.75
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 15 Dec 2021 18:21:31 +0000 (19:21 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 15 Dec 2021 18:21:31 +0000 (19:21 +0100)
data.js
index.html
js/scormpackage.js
style/style.css
style/style.css.map
style/style.sass

diff --git a/data.js b/data.js
index 74425369ed2a0f3cad630fef260031cd1f74a3cc..3454a5af590d3331d9c2d43ada47efa27e85d4ae 100644 (file)
--- a/data.js
+++ b/data.js
@@ -40,10 +40,10 @@ const DATA = {
             "path": "packages/QZ/index.html",
             "mandatory": true,
             "lock": [
-                0,
-                1,
-                2,
-                3
+                "0",
+                "1",
+                "2",
+                "3"
             ],
             "scorm": true,
         }
index 0a6b68512ce5e05c13363ce5bac39db9ea95cfba..60d4ed44be88510d16a17625f89fb10aa8f2fb9d 100644 (file)
                        </g>
                </g>
        </symbol>
+       <symbol id="lock-locked" viewBox="0 0 30 30">
+               <g>
+                       <path fill="currentColor" d="M5.7,8.7c0-2.5,2.1-4.6,4.6-4.6s4.6,2.1,4.6,4.6v2.7h2.2V8.7c0-3.8-3.1-6.8-6.8-6.8S3.5,5,3.5,8.7v2.7h2.2
+                       V8.7z"/>
+                       <path fill="currentColor" d="M11.3,20.9l0.1,2.2c0,0.4-0.5,0.8-0.9,0.8h-0.4c-0.4,0-0.9-0.3-0.9-0.8l0.1-2.2c-0.6-0.3-1-1-1-1.7
+                       c0-1.1,0.9-2,2-2s2,0.9,2,2C12.3,19.9,11.9,20.6,11.3,20.9 M19.2,13.2c0-0.4-0.4-0.8-0.8-0.8H2.3c-0.5,0-0.8,0.4-0.8,0.8l-0.3,8.4
+                       c0,1.5,0.6,2.9,1.7,3.8c1.9,1.5,4.5,2.6,7.5,2.6c3.1,0,5.9-1.2,7.8-2.8c0.9-0.8,1.5-2,1.4-3.3L19.2,13.2z"/>
+               </g>
+       </symbol>
+       <symbol id="lock-unlocked" viewBox="0 0 30 30">
+               <g>
+                       <path fill="currentColor" d="M11.4,21l0.1,2.2c0,0.4-0.5,0.8-0.9,0.8h-0.4c-0.4,0-0.9-0.4-0.9-0.8L9.4,21c-0.6-0.3-1-1-1-1.7
+                       c0-1.1,0.9-2,2-2s2,0.9,2,2C12.5,20,12,20.7,11.4,21 M19.5,13.3c0-0.4-0.4-0.8-0.8-0.8H2.2c-0.5,0-0.8,0.4-0.9,0.8l-0.3,8.4
+                       c-0.1,1.5,0.6,2.9,1.8,3.8c1.9,1.5,4.6,2.6,7.6,2.6c3.2,0,6-1.2,7.9-2.8c1-0.8,1.5-2,1.4-3.3L19.5,13.3z"/>
+                       <path fill="currentColor" d="M22,2c-3.8,0-6.9,3.1-6.9,6.8v2.7h2.3V8.8c0-2.5,2.1-4.6,4.7-4.6s4.7,2.1,4.7,4.6v2.7h2.3V8.8
+                       C28.9,5.1,25.8,2,22,2"/>
+               </g>
+       </symbol>
 </svg>
 <div id="wrapper">
        <header>
                                <th class="c">Mandatory</th>
                                <th class="c">Validated</th>
                                <th class="c">Score</th>
+                               <th></th>
                        </tr>
                        </thead>
                        <tbody>
index 964f16089ee1761fe9761c88b71a3e49d9f4fed2..a9487f0f7b62c007a0a3322a1b308ca67c12c20e 100644 (file)
@@ -121,7 +121,13 @@ function initState() {
     var clone = $.extend(true, {}, window.savedState);
     $.each(DATA.modules, function (k, v) {
         var id = v.id.toString();
-        var defaultState = {completion_status: 'incomplete', success_status: 'unknown', score: 0, location: '', cmi: {}};
+        var defaultState = {
+            completion_status: 'incomplete',
+            success_status: 'unknown',
+            score: 0,
+            location: '',
+            cmi: {}
+        };
         if (clone[id] === undefined || clone[id] === null) {
             window.savedState[id] = defaultState;
         } else {
@@ -171,7 +177,7 @@ function scormClose() {
 }
 
 function initEvents() {
-    $(document).on('click', '[data-id]', function () {
+    $(document).on('click', '[data-id]:not([data-lock="locked"])', function () {
         openSubSCO($(this).data('id'));
         return false;
     });
@@ -279,14 +285,33 @@ function setContents() {
 
     $.each(DATA.modules, function (k, v) {
         var s = window.savedState[v.id];
+        var lock = '';
+        var lockstatus = 'none';
+        var lockCol = '';
+        if (v.lock) {
+            console.log(v.lock);
+            lock = 'data-lock="';
+            lockstatus = 'unlocked';
+            lockCol = getSpriteIcon('lock-unlocked');
+            for (var i = 0; i < v.lock.length; i++) {
+                var ss = window.savedState[v.lock[i].toString()];
+                if (ss.completion_status !== 'completed' && ss.completion_status !== 'passed') {
+                    lockstatus = 'locked';
+                    lockCol = getSpriteIcon('lock-locked');
+                    break;
+                }
+            }
+            lock += lockstatus + '"';
+        }
         var score = calcScore(s);
-        var tr = $('<tr data-type="' + v.type + '" data-id="' + v.id + '"><td class="i">' + getSpriteIcon('icon-' + v.type) + '</td></tr>');
+        var tr = $('<tr ' + lock + ' data-type="' + v.type + '" data-id="' + v.id + '"><td class="i">' + getSpriteIcon('icon-' + v.type) + '</td></tr>');
         $('tbody').append(tr);
         tr.append('<td class="t">' + v.title + '</td>');
         tr.append('<td class="y">' + types[v.type] + '</td>');
         tr.append('<td class="c">' + (v.mandatory ? vcheck : xcheck) + '</td>');
         tr.append('<td class="c">' + (s.completion_status === 'completed' ? vcheck : xcheck) + '</td>');
         tr.append('<td class="score c" data-score="' + score + '"><div>' + (score < 0 ? '-' : score + ' %') + '</div></td>');
+        tr.append('<td>' + lockCol + '</td>');
     });
 }
 
index 96cbb68572157798a27b0380a6e932ddb3a2ca79..95a74b31964d058195db6a1d208bb590cd8df1c3 100644 (file)
@@ -137,6 +137,13 @@ header h1 {
 #wrapper main table th.c, #wrapper main table td.c {
   text-align: center;
 }
+#wrapper main table tbody tr[data-lock=locked]:hover td.t {
+  background-color: #fff;
+}
+#wrapper main table tbody tr[data-lock=locked] td {
+  opacity: 0.25;
+  cursor: not-allowed;
+}
 #wrapper main table tbody tr[data-type=IN] td.t {
   border-left-color: #47484e;
 }
index 0dcea500ca65ca47adf96b7dc3dd260bcbc30507..5ef6ddaedf178db6d2e31d08bbc2c35977c336fb 100644 (file)
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["style.sass"],"names":[],"mappings":"AAEA;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAEF;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;;AACA;EACE;;AAEJ;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAEJ;EACE;EACA;EACA;;;AAEJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAII;EACE,kBAvDA;;AAsDF;EACE,kBAvDA;;AAsDF;EACE,kBAvDA;;AAsDF;EACE,kBAvDA;;AAsDF;EACE,kBAvDA;;AAsDF;EACE,kBAvDA;;AAyDN;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACE;EACA;;AAGE;EACE;EACA;;AAEA;EACE;EACA;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;;AAMI;EACE,mBAjIR;;AAmIQ;EACE,OApIV;;AAgIM;EACE,mBAjIR;;AAmIQ;EACE,OApIV;;AAgIM;EACE,mBAjIR;;AAmIQ;EACE,OApIV;;AAgIM;EACE,mBAjIR;;AAmIQ;EACE,OApIV;;AAgIM;EACE,mBAjIR;;AAmIQ;EACE,OApIV;;AAgIM;EACE,mBAjIR;;AAmIQ;EACE,OApIV;;AAuII;EACE;;AAGF;EACE;EACA;EACA;;AACJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE;;;AAEZ;AACA;EACE;EACA;EACA;EACA;;AAGF;AACA;EACE;EACA;EACA;EACA;;AAGF;AACA;EACE;EACA;EACA;EACA;;AAGF;AACA;EACE;EACA;EACA;EACA;;AAGF;AACA;EACE;EACA;EACA;EACA;;AAGF;AACA;EACE;EACA;EACA;EACA","file":"style.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["style.sass"],"names":[],"mappings":"AAEA;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAEF;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;;AACA;EACE;;AAEJ;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAEJ;EACE;EACA;EACA;;;AAEJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAII;EACE,kBAvDA;;AAsDF;EACE,kBAvDA;;AAsDF;EACE,kBAvDA;;AAsDF;EACE,kBAvDA;;AAsDF;EACE,kBAvDA;;AAsDF;EACE,kBAvDA;;AAyDN;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACE;EACA;;AAGE;EACE;EACA;;AAEA;EACE;EACA;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;;AAMI;EACE;;AACJ;EACE;EACA;;AAIA;EACE,mBAzIR;;AA2IQ;EACE,OA5IV;;AAwIM;EACE,mBAzIR;;AA2IQ;EACE,OA5IV;;AAwIM;EACE,mBAzIR;;AA2IQ;EACE,OA5IV;;AAwIM;EACE,mBAzIR;;AA2IQ;EACE,OA5IV;;AAwIM;EACE,mBAzIR;;AA2IQ;EACE,OA5IV;;AAwIM;EACE,mBAzIR;;AA2IQ;EACE,OA5IV;;AA+II;EACE;;AAGF;EACE;EACA;EACA;;AACJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE;;;AAEZ;AACA;EACE;EACA;EACA;EACA;;AAGF;AACA;EACE;EACA;EACA;EACA;;AAGF;AACA;EACE;EACA;EACA;EACA;;AAGF;AACA;EACE;EACA;EACA;EACA;;AAGF;AACA;EACE;EACA;EACA;EACA;;AAGF;AACA;EACE;EACA;EACA;EACA","file":"style.css"}
\ No newline at end of file
index cd7e52a9f64806bdb7bb954981298a9eeb5ae828..30b8a327a93a79033e8028deb9937654ee7869fb 100644 (file)
@@ -124,6 +124,14 @@ header
 
       tbody
         tr
+          &[data-lock="locked"]
+            &:hover
+              td.t
+                background-color: #fff
+            td
+              opacity: 0.25
+              cursor: not-allowed
+
           @each $type, $color in $colors
             &[data-type=#{$type}]
               td.t