|
@@ -125,7 +125,7 @@ var configuratorApp = (function(){
|
125
|
125
|
complete: function() {
|
126
|
126
|
ajax_count++;
|
127
|
127
|
if (ajax_count >= 3) {
|
128
|
|
- $.each(config_files, function(i,fname){ if (typeof loaded_items[fname] != 'undefined') loaded_items[fname](); });
|
|
128
|
+ $.each(config_files, function(i,fname){ if (loaded_items[fname] !== undefined) loaded_items[fname](); });
|
129
|
129
|
self.refreshConfigForm();
|
130
|
130
|
if (success_count < ajax_count)
|
131
|
131
|
self.setMessage('Unable to load configurations. Use the upload field instead.', 'error');
|
|
@@ -137,7 +137,7 @@ var configuratorApp = (function(){
|
137
|
137
|
|
138
|
138
|
setMessage: function(msg,type) {
|
139
|
139
|
if (msg) {
|
140
|
|
- if (typeof type == 'undefined') type = 'message';
|
|
140
|
+ if (type === undefined) type = 'message';
|
141
|
141
|
var $err = $('<p class="'+type+'">'+msg+'</p>'), err = $err[0];
|
142
|
142
|
$('#message').prepend($err);
|
143
|
143
|
var baseColor = $err.css('color').replace(/rgba?\(([^),]+,[^),]+,[^),]+).*/, 'rgba($1,');
|
|
@@ -155,7 +155,7 @@ var configuratorApp = (function(){
|
155
|
155
|
}
|
156
|
156
|
else {
|
157
|
157
|
$('#message p.error, #message p.warning').each(function() {
|
158
|
|
- if (typeof this.pulser != 'undefined' && this.pulser)
|
|
158
|
+ if (this.pulser !== undefined && this.pulser)
|
159
|
159
|
clearInterval(this.pulser);
|
160
|
160
|
$(this).remove();
|
161
|
161
|
});
|
|
@@ -440,30 +440,16 @@ var configuratorApp = (function(){
|
440
|
440
|
switch(inf.type) {
|
441
|
441
|
case 'switch':
|
442
|
442
|
var slash = val ? '' : '//';
|
443
|
|
- newline = (inf.pre + slash + inf.define + inf.post);
|
|
443
|
+ newline = inf.line.replace(inf.repl, '$1'+slash+'$3');
|
444
|
444
|
break;
|
445
|
445
|
case 'quoted':
|
446
|
|
- if (isCheck) {
|
447
|
|
- this.log(name + ' should not be a checkbox', 1);
|
448
|
|
- var slash = val ? '' : '//';
|
449
|
|
- newline = (inf.pre + slash + inf.define + '"'+val+'"' + inf.post);
|
450
|
|
- }
|
451
|
|
- else {
|
452
|
|
- newline = inf.pre + inf.define + '"'+val+'"' + inf.post;
|
453
|
|
- }
|
454
|
|
- break;
|
455
|
446
|
case 'plain':
|
456
|
|
- if (isCheck) {
|
457
|
|
- this.log(name + ' should not be a checkbox', 1);
|
458
|
|
- var slash = val ? '' : '//';
|
459
|
|
- newline = (inf.pre + slash + inf.define + val + inf.post);
|
460
|
|
- }
|
461
|
|
- else {
|
462
|
|
- newline = inf.pre + inf.define + val + inf.post;
|
463
|
|
- }
|
|
447
|
+ if (isCheck)
|
|
448
|
+ this.setMessage(name + ' should not be a checkbox!', 'error');
|
|
449
|
+ else
|
|
450
|
+ newline = inf.line.replace(inf.repl, '$1'+val.replace('$','\\$')+'$3');
|
464
|
451
|
break;
|
465
|
452
|
}
|
466
|
|
-
|
467
|
453
|
this.setDefineLine(name, newline);
|
468
|
454
|
},
|
469
|
455
|
|
|
@@ -536,7 +522,7 @@ var configuratorApp = (function(){
|
536
|
522
|
* Purge #define information for one of the config files
|
537
|
523
|
*/
|
538
|
524
|
purgeDefineInfo: function(adv) {
|
539
|
|
- if (typeof adv == 'undefined') adv = false;
|
|
525
|
+ if (adv === undefined) adv = false;
|
540
|
526
|
$('[defineInfo]').each(function() {
|
541
|
527
|
if (adv === this.defineInfo.adv) $(this).removeProp('defineInfo');
|
542
|
528
|
});
|
|
@@ -546,7 +532,7 @@ var configuratorApp = (function(){
|
546
|
532
|
* Update #define information for one of the config files
|
547
|
533
|
*/
|
548
|
534
|
refreshDefineInfo: function(adv) {
|
549
|
|
- if (typeof adv == 'undefined') adv = false;
|
|
535
|
+ if (adv === undefined) adv = false;
|
550
|
536
|
$('[defineInfo]').each(function() {
|
551
|
537
|
if (adv == this.defineInfo.adv) this.defineInfo = self.getDefineInfo(this.id, adv);
|
552
|
538
|
});
|
|
@@ -561,7 +547,7 @@ var configuratorApp = (function(){
|
561
|
547
|
* Determine the line number of the #define so it can be scrolled to.
|
562
|
548
|
*/
|
563
|
549
|
getDefineInfo: function(name, adv) {
|
564
|
|
- if (typeof adv == 'undefined') adv = false;
|
|
550
|
+ if (adv === undefined) adv = false;
|
565
|
551
|
this.log('getDefineInfo:'+name,4);
|
566
|
552
|
var $elm = $('#'+name), elm = $elm[0];
|
567
|
553
|
var $c = adv ? $config_adv : $config;
|
|
@@ -569,63 +555,66 @@ var configuratorApp = (function(){
|
569
|
555
|
// a switch line with no value
|
570
|
556
|
var findDef = new RegExp('^(.*//)?(.*#define[ \\t]+' + elm.id + ')([ \\t]*/[*/].*)?$', 'm');
|
571
|
557
|
var result = findDef.exec($c.text());
|
|
558
|
+ var info = { type:0, adv:adv, field:$c[0], val_i: 2 };
|
572
|
559
|
if (result !== null) {
|
573
|
|
- var info = {
|
574
|
|
- type:'switch', adv:adv, field:$c[0], val_i: 1,
|
575
|
|
- line: result[0], // whole line
|
576
|
|
- pre: result[1] === undefined ? '' : result[1].replace('//',''),
|
|
560
|
+ $.extend(info, {
|
|
561
|
+ val_i: 1,
|
|
562
|
+ type: 'switch',
|
|
563
|
+ line: result[0], // whole line
|
|
564
|
+ pre: result[1] === undefined ? '' : result[1].replace('//',''),
|
577
|
565
|
define: result[2],
|
578
|
|
- post: result[3] === undefined ? '' : result[3]
|
579
|
|
- };
|
580
|
|
- info.repl = info.regex = new RegExp('(.*//)?(.*' + info.define.regEsc() + info.post.regEsc() + ')', 'm');
|
581
|
|
- info.lineNum = this.getLineInText(info.line, $c.text());
|
582
|
|
- this.log(info,2);
|
583
|
|
- return info;
|
|
566
|
+ post: result[3] === undefined ? '' : result[3]
|
|
567
|
+ });
|
|
568
|
+ info.regex = new RegExp('( *//)?( *' + info.define.regEsc() + info.post.regEsc() + ')', 'm');
|
|
569
|
+ info.repl = new RegExp('( *)(\/\/)?( *' + info.define.regEsc() + info.post.regEsc() + ')', 'm');
|
584
|
570
|
}
|
585
|
|
-
|
586
|
|
- // a define with quotes
|
587
|
|
- findDef = new RegExp('^(.*//)?(.*#define[ \\t]+' + elm.id + '[ \\t]+)("[^"]*")([ \\t]*/[*/].*)?$', 'm');
|
588
|
|
- result = findDef.exec($c.text());
|
589
|
|
- if (result !== null) {
|
590
|
|
- var info = {
|
591
|
|
- type:'quoted', adv:adv, field:$c[0], val_i: 2,
|
592
|
|
- line: result[0],
|
593
|
|
- pre: result[1] === undefined ? '' : result[1].replace('//',''),
|
594
|
|
- define: result[2],
|
595
|
|
- post: result[4] === undefined ? '' : result[4]
|
596
|
|
- };
|
597
|
|
- info.regex = new RegExp('(.*//)?.*' + info.define.regEsc() + '"([^"]*)"' + info.post.regEsc(), 'm');
|
598
|
|
- info.repl = new RegExp('((.*//)?.*' + info.define.regEsc() + '")[^"]*("' + info.post.regEsc() + ')', 'm');
|
599
|
|
- info.lineNum = this.getLineInText(info.line, $c.text());
|
600
|
|
- this.log(info,2);
|
601
|
|
- return info;
|
|
571
|
+ else {
|
|
572
|
+ // a define with quotes
|
|
573
|
+ findDef = new RegExp('^(.*//)?(.*#define[ \\t]+' + elm.id + '[ \\t]+)("[^"]*")([ \\t]*/[*/].*)?$', 'm');
|
|
574
|
+ result = findDef.exec($c.text());
|
|
575
|
+ if (result !== null) {
|
|
576
|
+ $.extend(info, {
|
|
577
|
+ type: 'quoted',
|
|
578
|
+ line: result[0],
|
|
579
|
+ pre: result[1] === undefined ? '' : result[1].replace('//',''),
|
|
580
|
+ define: result[2],
|
|
581
|
+ post: result[4] === undefined ? '' : result[4]
|
|
582
|
+ });
|
|
583
|
+ info.regex = new RegExp('( *//)? *' + info.define.regEsc() + '"([^"]*)"' + info.post.regEsc(), 'm');
|
|
584
|
+ info.repl = new RegExp('(( *//)? *' + info.define.regEsc() + '")[^"]*("' + info.post.regEsc() + ')', 'm');
|
|
585
|
+ }
|
|
586
|
+ else {
|
|
587
|
+ // a define with no quotes
|
|
588
|
+ findDef = new RegExp('^( *//)?( *#define[ \\t]+' + elm.id + '[ \\t]+)(\\S*)([ \\t]*/[*/].*)?$', 'm');
|
|
589
|
+ result = findDef.exec($c.text());
|
|
590
|
+ if (result !== null) {
|
|
591
|
+ $.extend(info, {
|
|
592
|
+ type: 'plain',
|
|
593
|
+ line: result[0],
|
|
594
|
+ pre: result[1] === undefined ? '' : result[1].replace('//',''),
|
|
595
|
+ define: result[2],
|
|
596
|
+ post: result[4] === undefined ? '' : result[4]
|
|
597
|
+ });
|
|
598
|
+ info.regex = new RegExp('( *//)? *' + info.define.regEsc() + '(\\S*)' + info.post.regEsc(), 'm');
|
|
599
|
+ info.repl = new RegExp('(( *//)? *' + info.define.regEsc() + ')\\S*(' + info.post.regEsc() + ')', 'm');
|
|
600
|
+ }
|
|
601
|
+ }
|
602
|
602
|
}
|
603
|
603
|
|
604
|
|
- // a define with no quotes
|
605
|
|
- findDef = new RegExp('^(.*//)?(.*#define[ \\t]+' + elm.id + '[ \\t]+)(\\S*)([ \\t]*/[*/].*)?$', 'm');
|
606
|
|
- result = findDef.exec($c.text());
|
607
|
|
- if (result !== null) {
|
608
|
|
- var info = {
|
609
|
|
- type:'plain', adv:adv, field:$c[0], val_i: 2,
|
610
|
|
- line: result[0],
|
611
|
|
- pre: result[1] === undefined ? '' : result[1].replace('//',''),
|
612
|
|
- define: result[2],
|
613
|
|
- post: result[4] === undefined ? '' : result[4]
|
614
|
|
- };
|
615
|
|
- info.regex = new RegExp('(.*//)?.*' + info.define.regEsc() + '(\\S*)' + info.post.regEsc(), 'm');
|
616
|
|
- info.repl = new RegExp('((.*//)?.*' + info.define.regEsc() + ')\\S*(' + info.post.regEsc() + ')', 'm');
|
617
|
|
- info.lineNum = this.getLineInText(info.line, $c.text());
|
|
604
|
+ if (info.type) {
|
|
605
|
+ info.lineNum = this.getLineNumberOfText(info.line, $c.text());
|
618
|
606
|
this.log(info,2);
|
619
|
|
- return info;
|
620
|
607
|
}
|
|
608
|
+ else
|
|
609
|
+ info = null;
|
621
|
610
|
|
622
|
|
- return null;
|
|
611
|
+ return info;
|
623
|
612
|
},
|
624
|
613
|
|
625
|
614
|
/**
|
626
|
615
|
* Count the number of lines before a match, return -1 on fail
|
627
|
616
|
*/
|
628
|
|
- getLineInText: function(line, txt) {
|
|
617
|
+ getLineNumberOfText: function(line, txt) {
|
629
|
618
|
var pos = txt.indexOf(line);
|
630
|
619
|
return (pos < 0) ? pos : txt.substr(0, pos).lineCount();
|
631
|
620
|
},
|
|
@@ -636,7 +625,7 @@ var configuratorApp = (function(){
|
636
|
625
|
},
|
637
|
626
|
|
638
|
627
|
logOnce: function(o) {
|
639
|
|
- if (typeof o.didLogThisObject === 'undefined') {
|
|
628
|
+ if (o.didLogThisObject === undefined) {
|
640
|
629
|
this.log(o);
|
641
|
630
|
o.didLogThisObject = true;
|
642
|
631
|
}
|