@@ -695,7 +695,7 @@ var ctl_newRandRoot = function(){
695
695
}
696
696
697
697
// check boxes according to Pref model
698
- var ctl_updateRRQprefView = function ( ) {
698
+ var ctl_updateRRQnotegroupsToPrefModel = function ( ) {
699
699
for ( var ng in mPref . aPrefs . rrq_Notegroups ) {
700
700
//0: scale name, 1: t/f checked in prefs
701
701
if ( mPref . aPrefs . rrq_Notegroups [ ng ] [ 1 ] ) {
@@ -707,6 +707,21 @@ var ctl_updateRRQprefView = function(){
707
707
}
708
708
} ;
709
709
710
+ var ctl_setPrefFormToPrefModel = function ( ) {
711
+
712
+ $ ( "#spRIQ_LoFret" ) . spinner ( "value" , mPref . aPrefs . riq_LoFret ) ;
713
+ $ ( "#spRIQ_HiFret" ) . spinner ( "value" , mPref . aPrefs . riq_HiFret ) ;
714
+ $ ( "#spRIQ_StrDepth" ) . spinner ( "value" , mPref . aPrefs . riq_StrDepth ) ;
715
+ $ ( "#spRIQ_FretDepth" ) . spinner ( "value" , mPref . aPrefs . riq_FretDepth ) ;
716
+
717
+ $ ( "#spRR_LoFret" ) . spinner ( "value" , mPref . aPrefs . rrq_LoFret ) ;
718
+ $ ( "#spRR_HiFret" ) . spinner ( "value" , mPref . aPrefs . rrq_HiFret ) ;
719
+ $ ( "#spRR_LoStr" ) . spinner ( "value" , mPref . aPrefs . rrq_LoStr ) ;
720
+ $ ( "#spRR_HiStr" ) . spinner ( "value" , mPref . aPrefs . rrq_HiStr ) ;
721
+ ctl_updateRRQnotegroupsToPrefModel ( ) ;
722
+
723
+
724
+ }
710
725
//when dialog is closed, update the Pref model with data in popup form controls
711
726
var ctl_updatePrefs = function ( ) {
712
727
//RandomRootQuiz
@@ -715,6 +730,17 @@ var ctl_updatePrefs = function(){
715
730
mPref . writePrefCookie ( ) ;
716
731
717
732
} ;
733
+ // returns preferences to defaults and rewrites cookie
734
+ var ctl_resetDefaultPrefs = function ( ) {
735
+ mPref . removePrefCookie ( ) ;
736
+ var testRemoveCookie = fs_userPrefs = ( this . is_chrome ) ?$ . localStorage ( 'fs_userPrefs' ) :$ . cookie ( 'fs_userPrefs' ) ;
737
+ mPref . init ( dictScales , GUITAR_STRINGS [ 0 ] . length , GUITAR_STRINGS . length ) ;
738
+ mPref . checkAllNotegroups ( ) ;
739
+ ctl_setPrefFormToPrefModel ( ) ;
740
+ //ctl_updateRRQprefView();
741
+ mPref . writePrefCookie ( ) ;
742
+
743
+ }
718
744
719
745
// more utilities
720
746
//
@@ -975,10 +1001,34 @@ var populateNotegroupsRandRootTab = function(){
975
1001
ng = dictScales [ mPref . aPrefs . rrq_Notegroups [ ng ] [ 0 ] ] ; // 0 is name, 1 is t/f for checked box
976
1002
html += '<input type="checkbox" id="prefRRQ_' + ng . ngtype + '_' + ng . varname + '" name="' + ng . ngtype + '_' + ng . varname + '" value="' + ng . ngtype + '_' + ng . varname + '"> ' + ng . name + '<br>' ;
977
1003
}
978
- html += '<span class="RR_scaleOptionsCol">' ;
1004
+ //html+='<span class="RR_scaleOptionsCol">';
1005
+ html += '</span>' ;
979
1006
$ ( "#RR_scaleOptionsDiv" ) . append ( html ) ;
1007
+ // attach function that makes sure at least one ng selection is checked.
1008
+ for ( var ng in mPref . aPrefs . rrq_Notegroups ) {
1009
+ $ ( '#prefRRQ_' + mPref . aPrefs . rrq_Notegroups [ ng ] [ 0 ] ) . click ( function ( ) {
1010
+ oneRRQalwaysChecked ( this ) ;
1011
+ } ) ;
1012
+ // if($('#prefRRQ_'+mPref.aPrefs.rrq_Notegroups[ng][0]).is(':checked')){
1013
+ // mPref.aPrefs.rrq_Notegroups[ng][1] = true;
1014
+ // } else{
1015
+ // mPref.aPrefs.rrq_Notegroups[ng][1] = false;
1016
+ // }
1017
+ }
980
1018
} ;
981
1019
1020
+ var oneRRQalwaysChecked = function ( lastClicked ) {
1021
+ var checkedNGs = 0 ;
1022
+ for ( var ng in mPref . aPrefs . rrq_Notegroups ) {
1023
+ if ( $ ( '#prefRRQ_' + mPref . aPrefs . rrq_Notegroups [ ng ] [ 0 ] ) . is ( ':checked' ) ) {
1024
+ checkedNGs ++ ;
1025
+ }
1026
+ }
1027
+ if ( checkedNGs == 0 ) {
1028
+ $ ( lastClicked ) . prop ( 'checked' , true ) ;
1029
+ }
1030
+ }
1031
+
982
1032
983
1033
// Unabridged divs are the notegroup div objects in the left hand div under the fretboard
984
1034
// with all the tabs for each key. These are all the scales and arpeggios, unabridged.
@@ -1087,40 +1137,89 @@ jQuery(document).ready(function() {
1087
1137
// make tabs in popup
1088
1138
$ ( "#prefTabs" ) . tabs ( ) ;
1089
1139
1090
- // set up RandomRoot quiz prefs
1140
+ // set up Random Interval quiz prefs
1141
+ var spRI_LoFret = $ ( "#spRIQ_LoFret" ) . spinner ( {
1142
+ min : mPref . aPrefs . riq_LoFret ,
1143
+ max : mPref . aPrefs . riq_HiFret ,
1144
+ value : mPref . aPrefs . riq_LoFret ,
1145
+ change : function ( event , ui ) {
1146
+ if ( this . value > $ ( "#spRIQ_HiFret" ) . spinner ( "value" ) ) {
1147
+ $ ( "#spRIQ_HiFret" ) . spinner ( "value" , this . value ) ;
1148
+ }
1149
+ } ,
1150
+ } ) ;
1151
+ var spRI_HiFret = $ ( "#spRIQ_HiFret" ) . spinner ( {
1152
+ min : mPref . aPrefs . riq_LoFret ,
1153
+ max : mPref . aPrefs . riq_HiFret ,
1154
+ value : mPref . aPrefs . riq_HiFret ,
1155
+ change : function ( event , ui ) {
1156
+ if ( this . value < $ ( "#spRIQ_LoFret" ) . spinner ( "value" ) ) {
1157
+ $ ( "#spRIQ_LoFret" ) . spinner ( "value" , this . value ) ;
1158
+ }
1159
+ } ,
1160
+ } ) ;
1161
+
1162
+ var spRI_StrDepth = $ ( "#spRIQ_StrDepth" ) . spinner ( {
1163
+ min : mPref . aPrefs . riq_LoStr ,
1164
+ max : mPref . aPrefs . riq_HiStr - 1 ,
1165
+ value : mPref . aPrefs . riq_StrDepth
1166
+ } ) ;
1167
+ var spRI_FretDepth = $ ( "#spRIQ_FretDepth" ) . spinner ( {
1168
+ min : 1 ,
1169
+ max : mPref . aPrefs . riq_HiFret - 1 ,
1170
+ value : mPref . aPrefs . riq_FretDepth
1171
+ } ) ;
1172
+ // set up Random Root quiz prefs
1091
1173
var spRR_LoFret = $ ( "#spRR_LoFret" ) . spinner ( {
1092
1174
min : mPref . aPrefs . rrq_LoFret ,
1093
1175
max : mPref . aPrefs . rrq_HiFret ,
1094
- value : mPref . aPrefs . rrq_LoFret
1176
+ value : mPref . aPrefs . rrq_LoFret ,
1177
+ change : function ( event , ui ) {
1178
+ if ( this . value > $ ( "#spRR_HiFret" ) . spinner ( "value" ) ) {
1179
+ $ ( "#spRR_HiFret" ) . spinner ( "value" , this . value ) ;
1180
+ }
1181
+ } ,
1095
1182
} ) ;
1096
1183
var spRR_HiFret = $ ( "#spRR_HiFret" ) . spinner ( {
1097
1184
min : mPref . aPrefs . rrq_LoFret ,
1098
1185
max : mPref . aPrefs . rrq_HiFret ,
1099
- value : mPref . aPrefs . rrq_HiFret
1186
+ value : mPref . aPrefs . rrq_HiFret ,
1187
+ change : function ( event , ui ) {
1188
+ if ( this . value < $ ( "#spRR_LoFret" ) . spinner ( "value" ) ) {
1189
+ $ ( "#spRR_LoFret" ) . spinner ( "value" , this . value ) ;
1190
+ }
1191
+ } ,
1100
1192
} ) ;
1101
1193
var spRR_LoStr = $ ( "#spRR_LoStr" ) . spinner ( {
1102
1194
min : mPref . aPrefs . rrq_LoStr ,
1103
1195
max : mPref . aPrefs . rrq_HiStr ,
1104
- value : mPref . aPrefs . rrq_LoStr
1196
+ value : mPref . aPrefs . rrq_LoStr ,
1197
+ change : function ( event , ui ) {
1198
+ if ( this . value > $ ( "#spRR_HiStr" ) . spinner ( "value" ) ) {
1199
+ $ ( "#spRR_HiStr" ) . spinner ( "value" , this . value ) ;
1200
+ }
1201
+ } ,
1105
1202
} ) ;
1106
1203
var spRR_HiStr = $ ( "#spRR_HiStr" ) . spinner ( {
1107
1204
min : mPref . aPrefs . rrq_LoStr ,
1108
1205
max : mPref . aPrefs . rrq_HiStr ,
1109
1206
value : mPref . aPrefs . rrq_HiStr ,
1207
+ change : function ( event , ui ) {
1208
+ if ( this . value < $ ( "#spRR_LoStr" ) . spinner ( "value" ) ) {
1209
+ $ ( "#spRR_LoStr" ) . spinner ( "value" , this . value ) ;
1210
+ }
1211
+ } ,
1110
1212
} ) ;
1111
1213
1112
1214
// set up prefs per user cookie or default
1113
1215
mPref . retrieveUserPrefs ( ) ;
1114
1216
1115
- spRR_LoFret . spinner ( "value" , mPref . aPrefs . rrq_LoFret ) ;
1116
- spRR_HiFret . spinner ( "value" , mPref . aPrefs . rrq_HiFret ) ;
1117
- spRR_LoStr . spinner ( "value" , mPref . aPrefs . rrq_LoStr ) ;
1118
- spRR_HiStr . spinner ( "value" , mPref . aPrefs . rrq_HiStr ) ;
1119
1217
1120
1218
// dynamically insert notegroup checkboxes
1121
1219
populateNotegroupsRandRootTab ( ) ;
1122
1220
// check boxes according to Pref model
1123
- ctl_updateRRQprefView ( ) ;
1221
+ ctl_setPrefFormToPrefModel ( ) ;
1222
+ //ctl_updateRRQprefView();
1124
1223
1125
1224
1126
1225
// get any url parameters and adjust model(s) appropriately
@@ -1367,6 +1466,7 @@ jQuery(document).ready(function() {
1367
1466
1368
1467
} ) ;
1369
1468
1469
+
1370
1470
// Bind set root button -- when on, next fret note clicked will be new Key in Fretboard Model, then button reverts to off
1371
1471
//
1372
1472
$ ( '#setRoot' ) . click ( function ( ) {
@@ -1435,6 +1535,10 @@ jQuery(document).ready(function() {
1435
1535
loadFromUrl ( ) ;
1436
1536
} ) ;
1437
1537
1538
+ // reset defaults in preferences/general
1539
+ $ ( '#btnResetDefaults' ) . click ( function ( ) {
1540
+ ctl_resetDefaultPrefs ( ) ;
1541
+ } ) ;
1438
1542
1439
1543
1440
1544
0 commit comments