@@ -17,7 +17,6 @@ var TAB_KEY = 9;
17
17
var ENTER_KEY = 13 ;
18
18
var SPACE_KEY = 32 ;
19
19
20
-
21
20
/**
22
21
* The feature tour highlights some signature features of MongoDB Compass.
23
22
* When Compass is started for the first time, it shows all the features in
@@ -42,7 +41,15 @@ var FEATURES = require('./features');
42
41
var TourView = View . extend ( {
43
42
session : {
44
43
body : 'any' ,
45
- features : 'array' ,
44
+ features : {
45
+ type : 'array' ,
46
+ required : false ,
47
+ default : undefined
48
+ } ,
49
+ force : {
50
+ type : 'boolean' ,
51
+ default : false
52
+ } ,
46
53
tourCount : {
47
54
type : 'number' ,
48
55
default : 0
@@ -58,9 +65,9 @@ var TourView = View.extend({
58
65
template : indexTemplate ,
59
66
derived : {
60
67
previousVersion : {
61
- deps : [ 'app.preferences.lastKnownVersion ' ] ,
68
+ deps : [ 'app.preferences.showFeatureTour ' ] ,
62
69
fn : function ( ) {
63
- return app . preferences . lastKnownVersion ;
70
+ return app . preferences . showFeatureTour ;
64
71
}
65
72
} ,
66
73
title : {
@@ -95,13 +102,21 @@ var TourView = View.extend({
95
102
this . showPreviousFeature ( ) ;
96
103
}
97
104
} ,
98
- initialize : function ( options ) {
105
+ initialize : function ( ) {
99
106
this . onKeyPress = this . onKeyPress . bind ( this ) ;
100
- this . features = _ . filter ( FEATURES , function ( feature ) {
101
- return ( options . force && feature . initial )
102
- || ( this . previousVersion === '0.0.0' && feature . initial )
103
- || ( this . previousVersion !== '0.0.0' && semver . gt ( feature . version , this . previousVersion ) ) ;
104
- } . bind ( this ) ) ;
107
+ this . _getFeatures ( ) ;
108
+ } ,
109
+ _getFeatures : function ( ) {
110
+ var model = this ;
111
+ if ( _ . isArray ( model . features ) ) {
112
+ return model . features ;
113
+ }
114
+ model . features = _ . filter ( FEATURES , function ( feature ) {
115
+ return ( model . force && feature . initial )
116
+ || ( model . previousVersion === '0.0.0' && feature . initial )
117
+ || ( model . previousVersion !== '0.0.0' && semver . gt ( feature . version , model . previousVersion ) ) ;
118
+ } ) ;
119
+ return model . features ;
105
120
} ,
106
121
render : function ( ) {
107
122
this . renderWithTemplate ( this ) ;
0 commit comments