Moved grunt to root. Added bower and bower.json to manage external scripts. reconfigured gruntfile, package.json.
This commit is contained in:
Родитель
f0fe60b876
Коммит
13fca4997b
10
Default.aspx
10
Default.aspx
|
@ -15,7 +15,7 @@
|
|||
<link rel="icon" href="favicon.ico"/>
|
||||
<% if (Client == Clients.Html5 || Client == Clients.Mobile)
|
||||
{ %>
|
||||
<link href=css/webclient.css?v=<%= ResourcesVersion%> rel="stylesheet" />
|
||||
<link href=css/webclient.min.css?v=<%= ResourcesVersion%> rel="stylesheet" />
|
||||
<link href=css/angular-motion.css?v=<%= ResourcesVersion%> rel="stylesheet" />
|
||||
<link href=//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css rel="stylesheet"/>
|
||||
<link href=ext/introjs.css?v=<%= ResourcesVersion%> rel="stylesheet" />
|
||||
|
@ -31,13 +31,13 @@
|
|||
background: url(Images/finder-scope.png?v=<%= ResourcesVersion %>) no-repeat;
|
||||
}
|
||||
</style>
|
||||
<%--<script data-main="sdk/sdkwrapper" src="sdk/require.js"></script>
|
||||
<script type="text/javascript" src="<%=Debug?"":".min" %>.js"></script>--%>
|
||||
|
||||
<script type="text/javascript" src="<%=SDKLocation %>"></script>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js" type="text/javascript"></script>
|
||||
<script src="ext/bootstrap<%= Debug ? "" : ".min"%>.js"></script>
|
||||
|
||||
<% if (Debug || DebugChrome)
|
||||
{ %>
|
||||
<script src="<%= ResourcesLocation %>/ext/jquery.js?v=<%= ResourcesVersion%>""></script>
|
||||
<script src="<%= ResourcesLocation %>/ext/bootstrap.js?v=<%= ResourcesVersion%>""></script>
|
||||
<script src="<%= ResourcesLocation %>/ext/angular.js?v=<%= ResourcesVersion%>"></script>
|
||||
<script src="<%= ResourcesLocation %>/ext/angular-touch.js?v=<%= ResourcesVersion%>"></script>
|
||||
<script src="<%= ResourcesLocation %>/ext/angular-route.js?v=<%= ResourcesVersion%>"></script>
|
||||
|
|
|
@ -0,0 +1,388 @@
|
|||
/**!
|
||||
Gruntfile to perform wwt webclient pre-deploy tasks.
|
||||
We compile webclient.less with bootstrap.less and
|
||||
concat/minify all scripts together here.
|
||||
|
||||
Bootstrap upgrade note:
|
||||
To upgrade bootstrap, copy the 4-color gradient out of the
|
||||
mixins/gradients.less into the latest version.
|
||||
webclient.less depends on that file.
|
||||
**/
|
||||
|
||||
module.exports = function(grunt) {
|
||||
'use strict';
|
||||
|
||||
// Force use of Unix newlines
|
||||
grunt.util.linefeed = '\n';
|
||||
|
||||
RegExp.quote = function(string) {
|
||||
return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&');
|
||||
};
|
||||
|
||||
// Project configuration.
|
||||
grunt.initConfig({
|
||||
deployLoc: '../../wwtmvc5/WWTMVC5/webclient/',
|
||||
pkg: grunt.file.readJSON('package.json'),
|
||||
banner: '/**\n' +
|
||||
'* WorldWide Telescope Web Client\n' +
|
||||
'* Copyright 2014-2015 Microsoft Research\n' +
|
||||
'* Developed by Jonathan Fay and Ron Gilchrist\n' +
|
||||
'**/\n',
|
||||
|
||||
// Task configuration.
|
||||
clean: {
|
||||
deployLoc: '<%=deployLoc%>'
|
||||
},
|
||||
concat: {
|
||||
options: {
|
||||
banner: '<%= banner %>'
|
||||
},
|
||||
webclient: {
|
||||
src: [
|
||||
'ext/jquery.js',
|
||||
'ext/bootstrap.js',
|
||||
'ext/angular.js',
|
||||
'ext/angular-touch.js',
|
||||
'ext/angular-route.js',
|
||||
'ext/angular-animate.js',
|
||||
'ext/angular-cookies.js',
|
||||
'ext/angular-strap.js',
|
||||
'ext/angular-strap.tpl.js',
|
||||
'ext/intro.js',
|
||||
'ext/angular-intro.js',
|
||||
'app.js',
|
||||
'directives/Scroll.js',
|
||||
'directives/Localize.js',
|
||||
'directives/ContextMenu.js',
|
||||
'factories/appstate.js',
|
||||
'factories/localization.js',
|
||||
'factories/FinderScope.js',
|
||||
'factories/ThumbList.js',
|
||||
'factories/Util.js',
|
||||
'factories/UILibrary.js',
|
||||
'factories/SearchUtil.js',
|
||||
'factories/Skyball.js',
|
||||
'factories/HashManager.js',
|
||||
'dataproxy/Places.js',
|
||||
'dataproxy/Tours.js',
|
||||
'dataproxy/SearchData.js',
|
||||
'dataproxy/Astrometry.js',
|
||||
'controllers/ContextPanelController.js',
|
||||
'controllers/MainController.js',
|
||||
'controllers/IntroController.js',
|
||||
'controllers/MobileNavController.js',
|
||||
'controllers/LayerManagerController.js',
|
||||
'controllers/tabs/AdsController.js',
|
||||
'controllers/tabs/ExploreController.js',
|
||||
'controllers/tabs/SearchController.js',
|
||||
'controllers/tabs/SettingsController.js',
|
||||
'controllers/tabs/ViewController.js',
|
||||
'controllers/tabs/ToursController.js',
|
||||
'controllers/modals/ShareController.js',
|
||||
'controllers/modals/OpenItemController.js',
|
||||
'controllers/modals/ObservingTimeController.js',
|
||||
'controls/move.js',
|
||||
'controls/util.js'
|
||||
],
|
||||
dest: 'wwtwebclient.js'
|
||||
},
|
||||
sdk: {
|
||||
src: [
|
||||
'sdk/ss.js',
|
||||
'sdk/wwtlib.js'
|
||||
],
|
||||
dest: 'sdk/wwtsdk.js'
|
||||
},
|
||||
oldsdk: {
|
||||
src: [
|
||||
'sdk/old/mscorlib.debug.js',
|
||||
'sdk/old/wwtlib.debug.js'
|
||||
],
|
||||
dest: 'sdk/old/wwtlib_full.js'
|
||||
}
|
||||
},
|
||||
//remove the AMD dependancy from scriptsharp output
|
||||
replace: {
|
||||
wwtlib: {
|
||||
src: ['sdk/wwtlib.js'],
|
||||
dest: 'sdk/wwtlib.js',
|
||||
replacements: [
|
||||
{
|
||||
from: "define('wwtlib', ['ss'], function(ss) {",
|
||||
to: 'window.wwtlib = function(){'
|
||||
}, {
|
||||
from: 'return $exports;\n});',
|
||||
to: 'return $exports;\n}();'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
uglify: {
|
||||
options: {
|
||||
preserveComments: 'some',
|
||||
banner: '<%= banner %>'
|
||||
},
|
||||
webclient: {
|
||||
src: '<%= concat.webclient.dest %>',
|
||||
dest: 'wwtwebclient.min.js'
|
||||
},
|
||||
searchData: {
|
||||
src: 'searchdataraw.js',
|
||||
dest: 'searchdata.min.js'
|
||||
},
|
||||
sdk: {
|
||||
src: '<%= concat.sdk.dest %>',
|
||||
dest: 'sdk/wwtsdk.min.js'
|
||||
},
|
||||
oldsdk: {
|
||||
src: '<%= concat.oldsdk.dest %>',
|
||||
dest: 'sdk/old/wwtlib_full.min.js'
|
||||
}
|
||||
},
|
||||
less: {
|
||||
compileCore: {
|
||||
options: {
|
||||
strictMath: true,
|
||||
sourceMap: true,
|
||||
outputSourceFiles: true,
|
||||
sourceMapURL: 'webclient.css.map',
|
||||
sourceMapFilename: 'css/webclient.css.map'
|
||||
},
|
||||
src: 'css/bootstrap.less',
|
||||
dest: 'css/webclient.css'
|
||||
}
|
||||
},
|
||||
autoprefixer: {
|
||||
options: {
|
||||
browsers: [
|
||||
"Android 2.3",
|
||||
"Android >= 4",
|
||||
"Chrome >= 20",
|
||||
"Firefox >= 24",
|
||||
"Explorer >= 10",
|
||||
"iOS >= 6",
|
||||
"Opera >= 12",
|
||||
"Safari >= 6"
|
||||
]
|
||||
},
|
||||
core: {
|
||||
options: {
|
||||
map: true
|
||||
},
|
||||
src: 'css/webclient.css'
|
||||
}
|
||||
},
|
||||
cssmin: {
|
||||
options: {
|
||||
compatibility: 'ie10',
|
||||
keepSpecialComments: '*',
|
||||
noAdvanced: true
|
||||
},
|
||||
minifyCore: {
|
||||
src: 'css/webclient.css',
|
||||
dest: 'css/webclient.min.css'
|
||||
}
|
||||
},
|
||||
copy: {
|
||||
vendor: {
|
||||
files: [
|
||||
{
|
||||
expand: true,
|
||||
flatten: true,
|
||||
src: 'bower_components/jquery/dist/jquery.js',
|
||||
dest: 'ext/'
|
||||
}, {
|
||||
dest: 'ext/',
|
||||
expand: true,
|
||||
flatten: true,
|
||||
src: 'bower_components/bootstrap/dist/js/bootstrap.js'
|
||||
}, {
|
||||
dest: 'ext/',
|
||||
expand: true,
|
||||
flatten: true,
|
||||
src: 'bower_components/angular/angular.js'
|
||||
},
|
||||
{
|
||||
dest: 'ext/',
|
||||
expand: true,
|
||||
flatten: true,
|
||||
src: 'bower_components/angular-touch/angular-touch.js'
|
||||
},
|
||||
{
|
||||
dest: 'ext/',
|
||||
expand: true,
|
||||
flatten: true,
|
||||
src: 'bower_components/angular-route/angular-route.js'
|
||||
},
|
||||
{
|
||||
dest: 'ext/',
|
||||
expand: true,
|
||||
flatten: true,
|
||||
src: 'bower_components/angular-animate/angular-animate.js',
|
||||
},{
|
||||
dest: 'ext/',
|
||||
expand: true,
|
||||
flatten: true,
|
||||
src: 'bower_components/angular-cookies/angular-cookies.js',
|
||||
}, {
|
||||
dest: 'ext/',
|
||||
expand: true,
|
||||
flatten: true,
|
||||
src: 'bower_components/angular-strap/dist/angular-strap.js',
|
||||
}, {
|
||||
dest: 'ext/',
|
||||
expand: true,
|
||||
flatten: true,
|
||||
src: 'bower_components/angular-strap/dist/angular-strap.tpl.js'
|
||||
}
|
||||
]
|
||||
},
|
||||
webclient: {
|
||||
files: [
|
||||
{
|
||||
cwd: 'App_Data/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>App_Data/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: 'Bin/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>Bin/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: 'clientbin/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>clientbin/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: 'controllers/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>controllers/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: 'controls/',
|
||||
src: '**',
|
||||
dest: '<%= deployLoc %>controls/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: 'css/',
|
||||
src: '*.css',
|
||||
dest: '<%= deployLoc %>css/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: 'css/',
|
||||
src: '*.map',
|
||||
dest: '<%= deployLoc %>css/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: 'dataproxy/',
|
||||
src: '**',
|
||||
dest: '<%= deployLoc %>dataproxy/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: 'directives/',
|
||||
src: '**',
|
||||
dest: '<%= deployLoc %>directives/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: 'ext/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>ext/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: 'factories/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>factories/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: 'images/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>images/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: 'sdk/',
|
||||
src: '*.js',
|
||||
dest: '<%= deployLoc %>sdk/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: 'sdk/',
|
||||
src: '*.aspx',
|
||||
dest: '<%= deployLoc %>sdk/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: 'views/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>views/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '',
|
||||
src: ['*.jpg', '*.png', '*.asax', '*.cs', '*.aspx', '*.ico', '*.js', '*.xap', '*.xml', '*.wtml'],
|
||||
dest: '<%= deployLoc %>',
|
||||
expand: true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
sdk: {
|
||||
files: 'sdk/wwtlib.js',
|
||||
tasks: ['sdk', 'deploy']
|
||||
},
|
||||
|
||||
// call out only the directories to watch prevents
|
||||
// watch from watching recursive node_modules folders e.g.: '../**/*.js'
|
||||
scripts: {
|
||||
files: [
|
||||
'controllers/**/*.js',
|
||||
'controllers/*.js',
|
||||
'controls/*.js',
|
||||
'directives/*.js',
|
||||
'dataproxy/*.js',
|
||||
'factories/*.js',
|
||||
'app.js'],
|
||||
tasks: ['dist-js', 'deploy']
|
||||
},
|
||||
html: {
|
||||
files: [
|
||||
'views/**/*.html',
|
||||
'Default.aspx'
|
||||
],
|
||||
tasks: ['deploy']
|
||||
},
|
||||
less: {
|
||||
files: 'css/*.less',
|
||||
tasks: ['dist-css', 'deploy']
|
||||
}
|
||||
},
|
||||
exec: {
|
||||
npmUpdate: {
|
||||
command: 'npm update'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Dependencies
|
||||
require('load-grunt-tasks')(grunt, { scope: 'devDependencies' });
|
||||
|
||||
// JS concatenation and minification
|
||||
grunt.registerTask('dist-js', ['concat:webclient', 'uglify:webclient']);
|
||||
|
||||
// Takes HTML5SDK generated script and packages into single usable lib. (scriptsharp v0.8).
|
||||
grunt.registerTask('sdk', ['replace:wwtlib', 'concat:sdk', 'uglify:sdk']);
|
||||
|
||||
// Minify the generated search data (rare - internal only)
|
||||
grunt.registerTask('dist-searchdata', ['uglify:searchData']);
|
||||
|
||||
// CSS
|
||||
grunt.registerTask('dist-css', ['less:compileCore', 'autoprefixer:core', 'cssmin:minifyCore']);
|
||||
|
||||
grunt.registerTask('vendor', ['copy:vendor']);
|
||||
|
||||
// Deploy to wwt web site (internal only)
|
||||
grunt.registerTask('deploy', ['copy:webclient']);
|
||||
|
||||
// uncomment out the below task and comment out the above task to run locally
|
||||
//grunt.registerTask('deploy', []);
|
||||
};
|
|
@ -1,350 +0,0 @@
|
|||
/*!
|
||||
|
||||
Gruntfile to perform wwt webclient pre-deploy tasks.
|
||||
We compile webclient.less with bootstrap.less and
|
||||
concat/minify all scripts together here.
|
||||
|
||||
Bootstrap upgrade note:
|
||||
To upgrade bootstrap, copy the 4-color gradient out of the
|
||||
mixins/gradients.less into the latest version.
|
||||
webclient.less depends on that file.
|
||||
|
||||
*/
|
||||
|
||||
module.exports = function(grunt) {
|
||||
'use strict';
|
||||
|
||||
// Force use of Unix newlines
|
||||
grunt.util.linefeed = '\n';
|
||||
|
||||
RegExp.quote = function(string) {
|
||||
return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&');
|
||||
};
|
||||
|
||||
|
||||
// Project configuration.
|
||||
grunt.initConfig({
|
||||
deployLoc: '../../../wwtmvc5/WWTMVC5/webclient/',
|
||||
// Metadata.
|
||||
pkg: grunt.file.readJSON('package.json'),
|
||||
banner: '/**\n' +
|
||||
'* WorldWide Telescope Web Client\n' +
|
||||
'* Copyright 2014 Microsoft Research\n' +
|
||||
'* Developed by Jonathan Fay and Ron Gilchrist\n' +
|
||||
'**/\n',
|
||||
|
||||
|
||||
// Task configuration.
|
||||
clean: {
|
||||
deployLoc: '<%=deployLoc%>'
|
||||
},
|
||||
concat: {
|
||||
options: {
|
||||
banner: '<%= banner %>'
|
||||
},
|
||||
webclient: {
|
||||
src: [
|
||||
'../ext/angular.js',
|
||||
'../ext/angular-touch.js',
|
||||
'../ext/angular-route.js',
|
||||
'../ext/angular-animate.js',
|
||||
'../ext/angular-cookies.js',
|
||||
'../ext/angular-strap.js',
|
||||
'../ext/angular-strap.tpl.js',
|
||||
'../ext/intro.js',
|
||||
'../ext/angular-intro.js',
|
||||
'../app.js',
|
||||
'../directives/Scroll.js',
|
||||
'../directives/Localize.js',
|
||||
'../directives/ContextMenu.js',
|
||||
'../factories/appstate.js',
|
||||
'../factories/localization.js',
|
||||
'../factories/FinderScope.js',
|
||||
'../factories/ThumbList.js',
|
||||
'../factories/Util.js',
|
||||
'../factories/UILibrary.js',
|
||||
'../factories/SearchUtil.js',
|
||||
'../factories/Skyball.js',
|
||||
'../factories/HashManager.js',
|
||||
'../dataproxy/Places.js',
|
||||
'../dataproxy/Tours.js',
|
||||
'../dataproxy/SearchData.js',
|
||||
'../dataproxy/Astrometry.js',
|
||||
'../controllers/ContextPanelController.js',
|
||||
'../controllers/MainController.js',
|
||||
'../controllers/IntroController.js',
|
||||
'../controllers/MobileNavController.js',
|
||||
'../controllers/LayerManagerController.js',
|
||||
'../controllers/tabs/AdsController.js',
|
||||
'../controllers/tabs/ExploreController.js',
|
||||
'../controllers/tabs/SearchController.js',
|
||||
'../controllers/tabs/SettingsController.js',
|
||||
'../controllers/tabs/ViewController.js',
|
||||
'../controllers/tabs/ToursController.js',
|
||||
'../controllers/modals/ShareController.js',
|
||||
'../controllers/modals/OpenItemController.js',
|
||||
'../controllers/modals/ObservingTimeController.js',
|
||||
'../controls/move.js',
|
||||
'../controls/util.js'
|
||||
],
|
||||
dest: '../wwtwebclient.js'
|
||||
},
|
||||
sdk: {
|
||||
src: [
|
||||
'../sdk/ss.js',
|
||||
'../sdk/wwtlib.js'
|
||||
],
|
||||
dest: '../sdk/wwtsdk.js'
|
||||
},
|
||||
oldsdk: {
|
||||
src: [
|
||||
'../sdk/old/mscorlib.debug.js',
|
||||
'../sdk/old/wwtlib.debug.js'
|
||||
],
|
||||
dest: '../sdk/old/wwtlib_full.js'
|
||||
}
|
||||
},
|
||||
//remove the AMD dependancy from scriptsharp output
|
||||
replace: {
|
||||
wwtlib: {
|
||||
src: ['../sdk/wwtlib.js'],
|
||||
dest: '../sdk/wwtlib.js',
|
||||
replacements: [ {
|
||||
from: "define('wwtlib', ['ss'], function(ss) {",
|
||||
to: 'window.wwtlib = function(){'
|
||||
}, {
|
||||
from: 'return $exports;\n});',
|
||||
to: 'return $exports;\n}();'
|
||||
}]
|
||||
}
|
||||
},
|
||||
|
||||
uglify: {
|
||||
options: {
|
||||
preserveComments: 'some',
|
||||
banner: '<%= banner %>'
|
||||
},
|
||||
webclient: {
|
||||
src: '<%= concat.webclient.dest %>',
|
||||
dest: '../wwtwebclient.min.js'
|
||||
},
|
||||
searchData: {
|
||||
src: '../searchdataraw.js',
|
||||
dest:'../searchdata.min.js'
|
||||
},
|
||||
sdk: {
|
||||
src: '<%= concat.sdk.dest %>',
|
||||
dest:'../sdk/wwtsdk.min.js'
|
||||
},
|
||||
oldsdk: {
|
||||
src: '<%= concat.oldsdk.dest %>',
|
||||
dest: '../sdk/old/wwtlib_full.min.js'
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
less: {
|
||||
compileCore: {
|
||||
options: {
|
||||
strictMath: true,
|
||||
sourceMap: true,
|
||||
outputSourceFiles: true,
|
||||
sourceMapURL: 'webclient.css.map',
|
||||
sourceMapFilename: '../css/webclient.css.map'
|
||||
},
|
||||
src: '../css/bootstrap.less',
|
||||
dest: '../css/webclient.css'
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
autoprefixer: {
|
||||
options: {
|
||||
browsers: [
|
||||
"Android 2.3",
|
||||
"Android >= 4",
|
||||
"Chrome >= 20",
|
||||
"Firefox >= 24",
|
||||
"Explorer >= 10",
|
||||
"iOS >= 6",
|
||||
"Opera >= 12",
|
||||
"Safari >= 6"
|
||||
]
|
||||
},
|
||||
core: {
|
||||
options: {
|
||||
map: true
|
||||
},
|
||||
src: '../css/webclient.css'
|
||||
}
|
||||
},
|
||||
|
||||
cssmin: {
|
||||
options: {
|
||||
compatibility: 'ie10',
|
||||
keepSpecialComments: '*',
|
||||
noAdvanced: true
|
||||
},
|
||||
minifyCore: {
|
||||
src: '../css/webclient.css',
|
||||
dest: '../css/webclient.min.css'
|
||||
}
|
||||
},
|
||||
copy: {
|
||||
webclient: {
|
||||
files: [
|
||||
{
|
||||
cwd: '../App_Data/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>App_Data/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../Bin/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>Bin/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../clientbin/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>clientbin/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../controllers/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>controllers/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../controls/',
|
||||
src: '**',
|
||||
dest: '<%= deployLoc %>controls/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../css/',
|
||||
src: '*.css',
|
||||
dest: '<%= deployLoc %>css/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../css/',
|
||||
src: '*.map',
|
||||
dest: '<%= deployLoc %>css/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../dataproxy/',
|
||||
src: '**',
|
||||
dest: '<%= deployLoc %>dataproxy/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../directives/',
|
||||
src: '**',
|
||||
dest: '<%= deployLoc %>directives/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../ext/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>ext/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../factories/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>factories/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../images/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>images/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../sdk/',
|
||||
src: '*.js',
|
||||
dest: '<%= deployLoc %>sdk/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../sdk/',
|
||||
src: '*.aspx',
|
||||
dest: '<%= deployLoc %>sdk/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../views/',
|
||||
src: '**/*',
|
||||
dest: '<%= deployLoc %>views/',
|
||||
expand: true
|
||||
}, {
|
||||
cwd: '../',
|
||||
src: ['*.jpg', '*.png', '*.asax', '*.cs', '*.aspx', '*.ico', '*.js', '*.xap', '*.xml', '*.wtml'],
|
||||
dest: '<%= deployLoc %>',
|
||||
expand: true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
watch: {
|
||||
sdk: {
|
||||
files: '../sdk/wwtlib.js',
|
||||
tasks: ['replace:wwtlib', 'concat:sdk', 'uglify:sdk']
|
||||
},
|
||||
|
||||
// call out only the directories to watch prevents
|
||||
// watch from watching recursive node_modules folders e.g.: '../**/*.js'
|
||||
scripts: {
|
||||
files: [
|
||||
'../controllers/**/*.js',
|
||||
'../controllers/*.js',
|
||||
'../controls/*.js',
|
||||
'../directives/*.js',
|
||||
'../dataproxy/*.js',
|
||||
'../factories/*.js',
|
||||
'../app.js'],
|
||||
tasks: ['concat:webclient', 'uglify:webclient', 'copy:webclient']
|
||||
},
|
||||
html: {
|
||||
files: [
|
||||
'../views/**/*.html',
|
||||
'../Default.aspx'
|
||||
],
|
||||
tasks: ['copy:webclient']
|
||||
},
|
||||
less: {
|
||||
files: '../css/*.less',
|
||||
tasks: ['less', 'copy:webclient']
|
||||
}
|
||||
},
|
||||
exec: {
|
||||
npmUpdate: {
|
||||
command: 'npm update'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// These plugins provide necessary tasks.
|
||||
require('load-grunt-tasks')(grunt, { scope: 'devDependencies' });
|
||||
require('time-grunt')(grunt);
|
||||
|
||||
|
||||
|
||||
// JS distribution task.
|
||||
grunt.registerTask('dist-js', ['concat:webclient', 'uglify:webclient']);
|
||||
|
||||
// Older SDK distribution task (scriptsharp v0.74).
|
||||
grunt.registerTask('oldsdk', ['concat:oldsdk', 'uglify:oldsdk']);
|
||||
// SDK distribution task. (scriptsharp v0.8).
|
||||
grunt.registerTask('sdk', ['replace:wwtlib', 'concat:sdk', 'uglify:sdk']);
|
||||
|
||||
// Minify the generated search data
|
||||
grunt.registerTask('dist-searchdata', ['uglify:searchData']);
|
||||
|
||||
// CSS distribution task.
|
||||
grunt.registerTask('less-compile', ['less:compileCore']);
|
||||
grunt.registerTask('dist-css', ['less-compile', 'autoprefixer:core', 'cssmin:minifyCore']);
|
||||
|
||||
// Full distribution task.
|
||||
grunt.registerTask('dist', ['dist-css', 'dist-js']);
|
||||
//deploy to wwt web site
|
||||
grunt.registerTask('deploy', ['copy:webclient']);
|
||||
//compile js/less and deploy to wwt web site
|
||||
grunt.registerTask('deploy-full', ['dist', 'copy:webclient']);
|
||||
|
||||
|
||||
};
|
|
@ -1 +0,0 @@
|
|||
path=%PATH%;%APPDATA%\npm
|
|
@ -1,48 +0,0 @@
|
|||
{
|
||||
"name": "webclient",
|
||||
"description": "WorldWide Telescope Web Client.",
|
||||
"version": "5.2.4",
|
||||
"keywords": [
|
||||
"WorldWide Telescope",
|
||||
"client",
|
||||
"web"
|
||||
],
|
||||
"homepage": "http://worldwidetelescope.org",
|
||||
"author": "Jonathan Fay (jfay@microsoft.com) and Ron Gilchrist (kid@thewebkid.com)",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/MSRConnections/OpenWWT-Web.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/MSRConnections/OpenWWT-Web/Issues"
|
||||
},
|
||||
"license": {
|
||||
"type": "MIT",
|
||||
"url": "http://opensource.org/licenses/MIT"
|
||||
},
|
||||
"devDependencies": {
|
||||
"grunt": "~0.4.5",
|
||||
"grunt-autoprefixer": "~1.0.1",
|
||||
"grunt-banner": "~0.2.3",
|
||||
"grunt-contrib-clean": "~0.6.0",
|
||||
"grunt-contrib-concat": "~0.5.0",
|
||||
"grunt-contrib-connect": "~0.9.0",
|
||||
"grunt-contrib-copy": "~0.7.0",
|
||||
"grunt-contrib-cssmin": "~0.10.0",
|
||||
"grunt-contrib-less": "~0.12.0",
|
||||
"grunt-contrib-uglify": "~0.6.0",
|
||||
"grunt-contrib-watch": "~0.6.1",
|
||||
"grunt-csscomb": "~3.0.0",
|
||||
"grunt-exec": "~0.4.6",
|
||||
"grunt-text-replace": "^0.4.0",
|
||||
"load-grunt-tasks": "~1.0.0",
|
||||
"npm-shrinkwrap": "~5.1.0",
|
||||
"time-grunt": "~1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "~0.10.1"
|
||||
},
|
||||
"buildConfig": {
|
||||
"uglify": true
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"name": "WWTWebClient",
|
||||
"description": "WorldWide Telescope Web Client",
|
||||
"version": "5.2.4",
|
||||
"private": "true",
|
||||
"dependencies": {
|
||||
"jquery": "~2.1.3",
|
||||
"angular": "~1.3.10",
|
||||
"angular-animate": "~1.3.10",
|
||||
"angular-cookies": "~1.3.10",
|
||||
"angular-route": "~1.3.10",
|
||||
"angular-touch": "~1.3.10",
|
||||
"angular-strap": "~2.1.6",
|
||||
"bootstrap": "~3.3.2"
|
||||
}
|
||||
}
|
|
@ -1,373 +0,0 @@
|
|||
/**
|
||||
1/22/2015
|
||||
This file is no longer used in the webclient. Keeping around to track regressions for a month or two.
|
||||
**/
|
||||
|
||||
wwt.controllers.controller('ThumbnailController',
|
||||
['$scope',
|
||||
'$rootScope',
|
||||
'AppState',
|
||||
'Places',
|
||||
'$timeout',
|
||||
'Util',
|
||||
'SearchUtil',
|
||||
'HashManager',
|
||||
function ($scope, $rootScope, appState, places, $timeout, util, searchUtil, hashManager) {
|
||||
var exploreRoot;
|
||||
var depth = 1;
|
||||
var bc;
|
||||
var cache = [];
|
||||
$scope.pageCount = 1;
|
||||
$scope.pageSize = 1;
|
||||
$scope.currentPage = 0;
|
||||
var explore,
|
||||
nearby,
|
||||
search,
|
||||
openCollection,
|
||||
collectionPlace,
|
||||
collectionPlaceIndex,
|
||||
hashObj;
|
||||
|
||||
$scope.initExploreView = function (hashChange) {
|
||||
if (!explore) {
|
||||
$rootScope.$on('hashChange', function (event, obj) {
|
||||
if (obj['place'] && isNaN(parseInt(obj['place'].charAt(0)))) {
|
||||
hashObj = obj;
|
||||
collectionPlace = obj['place'];
|
||||
collectionPlaceIndex = 1;
|
||||
$scope.loadingUrlPlace = true;
|
||||
$('#loadingModal').modal('show');
|
||||
places.getRoot().then(function(result) {
|
||||
//$scope.initExploreView(true);
|
||||
$scope.breadCrumb = bc = [$scope.getFromEn('Collections')];
|
||||
$scope.exploreList = exploreRoot;
|
||||
findCollectionChild();
|
||||
});
|
||||
}
|
||||
});
|
||||
explore = true;
|
||||
}
|
||||
|
||||
if (!hashChange) {
|
||||
places.getRoot().then(function(result) {
|
||||
$scope.exploreList = exploreRoot = result;
|
||||
|
||||
var collectionsString = $scope.getFromEn('Collections');
|
||||
if (collectionsString.then) {
|
||||
collectionsString.then(function(s) {
|
||||
$scope.breadCrumb = bc = [s];
|
||||
});
|
||||
} else {
|
||||
$scope.breadCrumb = bc = [collectionsString];
|
||||
}
|
||||
|
||||
cache = [result];
|
||||
calcPageSize($scope.exploreList);
|
||||
$.each(result, function(i, item) {
|
||||
if (item.get_name() === 'Open Collections') {
|
||||
result.splice(0, 0, item);
|
||||
result.pop();
|
||||
openCollection = true;
|
||||
$scope.clickThumb(item);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
var findCollectionChild = function() {
|
||||
var guidParts = collectionPlace.split('.');
|
||||
var relevantPart = guidParts.slice(0, collectionPlaceIndex).join('.');
|
||||
var child = places.findChildById(relevantPart, $scope.exploreList);
|
||||
if (collectionPlaceIndex < guidParts.length) {
|
||||
collectionPlaceIndex++;
|
||||
$scope.clickThumb(child, findCollectionChild);
|
||||
} else {
|
||||
$timeout(function () {
|
||||
$scope.loadingUrlPlace = false;
|
||||
$scope.clickThumb(child);
|
||||
$('#loadingModal').modal('hide');
|
||||
|
||||
if (hashObj['ra']) {
|
||||
var timer = hashObj['place'].toLowerCase().indexOf('hirise') != -1 ? 6666 : 3333;
|
||||
setTimeout(function() {
|
||||
$rootScope.ctl.gotoRaDecZoom(
|
||||
parseFloat(hashObj['ra']) * 15,
|
||||
parseFloat(hashObj['dec']),
|
||||
parseFloat(hashObj['fov']),
|
||||
false
|
||||
);
|
||||
|
||||
}, timer);
|
||||
}
|
||||
location.hash = '/';
|
||||
}, 2222);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var handledInitBroadcast = false,
|
||||
newCollectionUrl;
|
||||
$scope.$on('initExplorer', function (event,collectionUrl) {
|
||||
if (!handledInitBroadcast && explore) {
|
||||
newCollectionUrl = collectionUrl;
|
||||
$scope.initExploreView();
|
||||
handledInitBroadcast = true;
|
||||
setTimeout(function() { handledInitBroadcast = false; }, 2000);
|
||||
}
|
||||
});
|
||||
|
||||
$scope.clickThumb = function (item, folderCallback) {
|
||||
|
||||
wwt.wc.clearAnnotations();
|
||||
$scope.activeItem = item.get_thumbnailUrl() + item.get_name();
|
||||
if (item.get_name() === 'Up Level') {
|
||||
$scope.currentPage = 0;
|
||||
depth--;
|
||||
bc.pop();
|
||||
$scope.breadCrumb = bc;//.join(' > ') + ' >';
|
||||
cache.pop();
|
||||
$scope.exploreList = cache[cache.length - 1];
|
||||
calcPageSize($scope.exploreList);
|
||||
return;
|
||||
}
|
||||
if (item.get_isFolder()) {
|
||||
$scope.currentPage = 0;
|
||||
depth++;
|
||||
bc.push(item.get_name());
|
||||
$scope.breadCrumb = bc;//.join(' > ') + ' >';
|
||||
|
||||
places.getChildren(item).then(function (result) {
|
||||
if ($.isArray(result[0]))
|
||||
result = result[0];
|
||||
var unique = [];
|
||||
$.each(result, function (index, el) {
|
||||
if ($.inArray(el, unique) === -1) unique.push(el);
|
||||
});
|
||||
$scope.exploreList = unique;
|
||||
|
||||
cache.push(result);
|
||||
if (openCollection) {
|
||||
if (newCollectionUrl) {
|
||||
var i = 0;
|
||||
while (result[i].url && result[i].url.indexOf(newCollectionUrl) == -1) i++;
|
||||
|
||||
$scope.clickThumb(result[i]);
|
||||
newCollectionUrl = null;
|
||||
} else if (result.length) {
|
||||
$scope.clickThumb(result[0]);
|
||||
}
|
||||
}
|
||||
calcPageSize($scope.exploreList);
|
||||
if (folderCallback) {
|
||||
folderCallback();
|
||||
}
|
||||
});
|
||||
}else if (openCollection) {
|
||||
openCollection = false;
|
||||
} else if ($scope.$hide) {
|
||||
$scope.$hide();
|
||||
$rootScope.searchModal = false;
|
||||
|
||||
} else if (util.isMobile) {
|
||||
$('#explorerModal').modal('hide');
|
||||
}
|
||||
//$('.cross-fader').parent().hide();
|
||||
|
||||
$scope.setActiveItem(item);
|
||||
|
||||
|
||||
if ((item.isFGImage && item.imageSet && $scope.lookAt !== 'Sky') || item.isSurvey){
|
||||
$scope.setLookAt('Sky', item.get_name(), true, item.isSurvey);
|
||||
if (item.isSurvey) {
|
||||
$scope.setSurveyBg(item.get_name());
|
||||
|
||||
} else {
|
||||
$scope.setForegroundImage(item);
|
||||
}
|
||||
if ($scope.$hide) {
|
||||
$scope.$hide();
|
||||
$rootScope.searchModal = false;
|
||||
}
|
||||
return;
|
||||
}
|
||||
else if (item.isPanorama) {
|
||||
$scope.setLookAt('Panorama', item.get_name());
|
||||
} else if (item.isEarth) {
|
||||
$scope.setLookAt('Earth', item.get_name());
|
||||
} else if (util.getIsPlanet(item) && $scope.lookAt !== 'SolarSystem') {
|
||||
$scope.setLookAt('Planet', item.get_name());
|
||||
} else if (item.isPlanet && $scope.lookAt !== 'SolarSystem') {
|
||||
$scope.setLookAt('Planet', '');
|
||||
}
|
||||
if ((ss.canCast(item, wwtlib.Place)||item.isEarth) && !item.isSurvey) {
|
||||
$scope.setForegroundImage(item);
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$scope.expanded = false;
|
||||
$scope.expandThumbnails = function(flag) {
|
||||
$scope.expanded = flag != undefined ? flag : !$scope.expanded;
|
||||
$scope.expandTop($scope.expanded);
|
||||
calcPageSize($scope.exploreList);
|
||||
}
|
||||
|
||||
$scope.hoverThumb = function(item) {
|
||||
if (nearby) {
|
||||
$scope.drawCircleOverPlace(item);
|
||||
}
|
||||
};
|
||||
|
||||
$scope.breadCrumbClick = function(index) {
|
||||
$scope.exploreList = cache[index];
|
||||
while (bc.length - 1 > index) {
|
||||
bc.pop();
|
||||
cache.pop();
|
||||
}
|
||||
$scope.currentPage = 0;
|
||||
calcPageSize();
|
||||
};
|
||||
|
||||
|
||||
var pagedList;
|
||||
var calcPageSize = function (list) {
|
||||
if (list) {
|
||||
pagedList = list;
|
||||
} else {
|
||||
list = pagedList;
|
||||
}
|
||||
$timeout(function() {
|
||||
var tnWid = 116;
|
||||
var winWid = $(window).width();
|
||||
|
||||
if (nearby && ($scope.lookAt == 'Sky' || $scope.lookAt == 'SolarSystem')) {
|
||||
winWid = winWid - 216; //angular.element('body.desktop .fov-panel').width();
|
||||
}
|
||||
$scope.pageSize = util.isMobile?9999:Math.floor(winWid / tnWid);
|
||||
|
||||
if ($scope.expanded) {
|
||||
$scope.pageSize *= 4;
|
||||
}
|
||||
var listLength = list ? list.length : 2;
|
||||
$scope.pageCount = Math.ceil(listLength / $scope.pageSize);
|
||||
spliceOnePage();
|
||||
},1);
|
||||
|
||||
};
|
||||
|
||||
$(window).on('resize', function () {
|
||||
$scope.currentPage = 0;
|
||||
var offset = nearby ? angular.element('body.desktop .fov-panel').width() : 0;
|
||||
calcPageSize(null, offset);
|
||||
//util.log('calc',offset);
|
||||
});
|
||||
|
||||
$scope.moveMenu = function (i) {
|
||||
$('#menuContainer' + i).append($('#researchMenu'));
|
||||
};
|
||||
$scope.moveNboMenu = function (i) {
|
||||
$('#nboMenuContainer' + i).append($('#researchMenu'));
|
||||
};
|
||||
$scope.showMenu = function (item, i) {
|
||||
$('.popover-content .close-btn').click();
|
||||
setTimeout(function() {
|
||||
$('.popover-content .close-btn').click();
|
||||
$('#menuContainer' + i).find('.dropdown').addClass('open');
|
||||
}, 10);
|
||||
$scope.setMenuContextItem(item,true);
|
||||
};
|
||||
$scope.preventClickBubble = function(event) {
|
||||
event.stopImmediatePropagation();
|
||||
};
|
||||
|
||||
$scope.goBack = function () {
|
||||
//$(document.body).append($('#researchMenu'));
|
||||
$scope.currentPage = $scope.currentPage == 0 ? $scope.currentPage : $scope.currentPage - 1;
|
||||
spliceOnePage();
|
||||
};
|
||||
$scope.goFwd = function () {
|
||||
//$(document.body).append($('#researchMenu'));
|
||||
$scope.currentPage = $scope.currentPage == $scope.pageCount - 1 ? $scope.currentPage : $scope.currentPage + 1;
|
||||
spliceOnePage();
|
||||
};
|
||||
|
||||
var spliceOnePage = function () {
|
||||
if (nearby || search) {
|
||||
var start = $scope.currentPage * $scope.pageSize;
|
||||
var masterCollection = nearby ? $scope.placesInCone : $scope.searchResults;
|
||||
if (masterCollection) {
|
||||
if (nearby) {
|
||||
|
||||
$scope.nearbyPlaces = masterCollection.slice(start, start + $scope.pageSize);
|
||||
} else {
|
||||
$scope.searchResultSet = masterCollection.slice(start, start + $scope.pageSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var lastUpdate = new Date();
|
||||
$scope.initNearbyObjects = function() {
|
||||
nearby = true;
|
||||
$scope.placesInCone = [];
|
||||
$scope.scrollDepth = 40;
|
||||
$rootScope.$on('viewportchange', function (event, viewport) {
|
||||
if ((!viewport.isDirty && !viewport.init) || new Date().valueOf() - lastUpdate.valueOf() > 2000) {
|
||||
findNearbyObjects();
|
||||
lastUpdate = new Date();
|
||||
}
|
||||
});
|
||||
|
||||
$scope.$watch('lookAt', findNearbyObjects);
|
||||
|
||||
};
|
||||
|
||||
function findNearbyObjects() {
|
||||
searchUtil.findNearbyObjects({
|
||||
lookAt: $scope.lookAt,
|
||||
singleton: $rootScope.singleton
|
||||
}).then(function(result) {
|
||||
$scope.currentPage = 0;
|
||||
$scope.placesInCone = result;
|
||||
if (util.isMobile) {
|
||||
$scope.setNBO($scope.placesInCone);
|
||||
}
|
||||
calcPageSize($scope.placesInCone);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
$scope.gotoCoord = function () {
|
||||
var tempPlace = wwtlib.Place.create('tmp', util.parseHms($scope.goto.Dec), util.parseHms($scope.goto.RA), null, null, wwtlib.ImageSetType[$scope.lookAt.toLowerCase()], 60);
|
||||
$rootScope.singleton.gotoTarget(tempPlace, false, false, true);
|
||||
};
|
||||
|
||||
|
||||
$scope.initSearch = function () {
|
||||
$scope.goto = {RA:'',Dec:''};
|
||||
if (util.isMobile) {
|
||||
$scope.scrollDepth = 40;
|
||||
}
|
||||
|
||||
search = true;
|
||||
$timeout(function() {
|
||||
$scope.SearchType = 'J2000';
|
||||
$('#txtSearch').focus();
|
||||
},123);
|
||||
}
|
||||
|
||||
$scope.searchKeyPress = function () {
|
||||
$timeout(function() {
|
||||
var q = $scope.q = $('#txtSearch').val();
|
||||
searchUtil.runSearch(q).then(function(result) {
|
||||
$scope.searchResults = result;
|
||||
calcPageSize($scope.searchResults);
|
||||
});
|
||||
}, 10);
|
||||
}
|
||||
}]);
|
||||
|
|
@ -1,4 +1,14 @@
|
|||
|
||||
#gradient{
|
||||
|
||||
.vertical-four-colors(@start-color: #00b3ee; @second-color: #7a43b6; @color-stop2: 33%; @third-color: #7a43b6; @color-stop3: 66.6%; @end-color: #c3325f) {
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start-color), color-stop(@color-stop2, @second-color),color-stop(@color-stop3, @third-color), to(@end-color));
|
||||
background-image: -webkit-linear-gradient(@start-color, @second-color @color-stop2, @third-color @color-stop3, @end-color);
|
||||
background-image: -moz-linear-gradient(top, @start-color, @second-color @color-stop2, @third-color @color-stop3, @end-color);
|
||||
background-image: linear-gradient(@start-color, @second-color @color-stop2, @third-color @color-stop3, @end-color);
|
||||
background-repeat: no-repeat;
|
||||
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@second-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
|
||||
}
|
||||
}
|
||||
@wc-text-color:fade(white,80%);
|
||||
@wc-bg-color: rgba(25,30,43,.7);
|
||||
.iblock {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
var data,
|
||||
searchIndex = {},
|
||||
initPromise,
|
||||
constellations = [];
|
||||
constellations = [];
|
||||
|
||||
function getData() {
|
||||
var deferred = $q.defer();
|
||||
|
@ -122,7 +122,7 @@
|
|||
var firstChar = s.charAt(0).toLowerCase();
|
||||
if (firstChar === "'") firstChar = s.charAt(1).toLowerCase();
|
||||
if (searchIndex[firstChar]) {
|
||||
if (searchIndex[firstChar][searchIndex[firstChar].length - 1] != place) {
|
||||
if (searchIndex[firstChar][searchIndex[firstChar].length - 1] !== place) {
|
||||
searchIndex[firstChar].push(place);
|
||||
wwt.searchDataIndexed = searchIndex;
|
||||
}
|
||||
|
|
|
@ -4471,12 +4471,9 @@ angular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.helpers.dimensions'])
|
|||
function bindTriggerEvents() {
|
||||
var triggers = options.trigger.split(' ');
|
||||
angular.forEach(triggers, function(trigger) {
|
||||
if (trigger === 'click') {
|
||||
element.on('click', $tooltip.toggle);
|
||||
}
|
||||
else if (trigger === 'contextmenu') {
|
||||
element.on('contextmenu', $tooltip.toggle);
|
||||
} else if (trigger !== 'manual') {
|
||||
if(trigger === 'click') {
|
||||
element.on('click', $tooltip.toggle);
|
||||
} else if(trigger !== 'manual') {
|
||||
element.on(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);
|
||||
element.on(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);
|
||||
nodeName === 'button' && trigger !== 'hover' && element.on(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*!
|
||||
* Bootstrap v3.3.1 (http://getbootstrap.com)
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Bootstrap v3.3.2 (http://getbootstrap.com)
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
|
@ -9,6 +9,7 @@ if (typeof jQuery === 'undefined') {
|
|||
}
|
||||
|
||||
+function ($) {
|
||||
'use strict';
|
||||
var version = $.fn.jquery.split(' ')[0].split('.')
|
||||
if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {
|
||||
throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher')
|
||||
|
@ -16,10 +17,10 @@ if (typeof jQuery === 'undefined') {
|
|||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: transition.js v3.3.1
|
||||
* Bootstrap: transition.js v3.3.2
|
||||
* http://getbootstrap.com/javascript/#transitions
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
@ -76,10 +77,10 @@ if (typeof jQuery === 'undefined') {
|
|||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: alert.js v3.3.1
|
||||
* Bootstrap: alert.js v3.3.2
|
||||
* http://getbootstrap.com/javascript/#alerts
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
@ -95,7 +96,7 @@ if (typeof jQuery === 'undefined') {
|
|||
$(el).on('click', dismiss, this.close)
|
||||
}
|
||||
|
||||
Alert.VERSION = '3.3.1'
|
||||
Alert.VERSION = '3.3.2'
|
||||
|
||||
Alert.TRANSITION_DURATION = 150
|
||||
|
||||
|
@ -171,10 +172,10 @@ if (typeof jQuery === 'undefined') {
|
|||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: button.js v3.3.1
|
||||
* Bootstrap: button.js v3.3.2
|
||||
* http://getbootstrap.com/javascript/#buttons
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
@ -191,7 +192,7 @@ if (typeof jQuery === 'undefined') {
|
|||
this.isLoading = false
|
||||
}
|
||||
|
||||
Button.VERSION = '3.3.1'
|
||||
Button.VERSION = '3.3.2'
|
||||
|
||||
Button.DEFAULTS = {
|
||||
loadingText: 'loading...'
|
||||
|
@ -288,10 +289,10 @@ if (typeof jQuery === 'undefined') {
|
|||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: carousel.js v3.3.1
|
||||
* Bootstrap: carousel.js v3.3.2
|
||||
* http://getbootstrap.com/javascript/#carousel
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
@ -319,7 +320,7 @@ if (typeof jQuery === 'undefined') {
|
|||
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
|
||||
}
|
||||
|
||||
Carousel.VERSION = '3.3.1'
|
||||
Carousel.VERSION = '3.3.2'
|
||||
|
||||
Carousel.TRANSITION_DURATION = 600
|
||||
|
||||
|
@ -359,8 +360,11 @@ if (typeof jQuery === 'undefined') {
|
|||
}
|
||||
|
||||
Carousel.prototype.getItemForDirection = function (direction, active) {
|
||||
var delta = direction == 'prev' ? -1 : 1
|
||||
var activeIndex = this.getItemIndex(active)
|
||||
var willWrap = (direction == 'prev' && activeIndex === 0)
|
||||
|| (direction == 'next' && activeIndex == (this.$items.length - 1))
|
||||
if (willWrap && !this.options.wrap) return active
|
||||
var delta = direction == 'prev' ? -1 : 1
|
||||
var itemIndex = (activeIndex + delta) % this.$items.length
|
||||
return this.$items.eq(itemIndex)
|
||||
}
|
||||
|
@ -405,14 +409,8 @@ if (typeof jQuery === 'undefined') {
|
|||
var $next = next || this.getItemForDirection(type, $active)
|
||||
var isCycling = this.interval
|
||||
var direction = type == 'next' ? 'left' : 'right'
|
||||
var fallback = type == 'next' ? 'first' : 'last'
|
||||
var that = this
|
||||
|
||||
if (!$next.length) {
|
||||
if (!this.options.wrap) return
|
||||
$next = this.$element.find('.item')[fallback]()
|
||||
}
|
||||
|
||||
if ($next.hasClass('active')) return (this.sliding = false)
|
||||
|
||||
var relatedTarget = $next[0]
|
||||
|
@ -529,10 +527,10 @@ if (typeof jQuery === 'undefined') {
|
|||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: collapse.js v3.3.1
|
||||
* Bootstrap: collapse.js v3.3.2
|
||||
* http://getbootstrap.com/javascript/#collapse
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
@ -558,7 +556,7 @@ if (typeof jQuery === 'undefined') {
|
|||
if (this.options.toggle) this.toggle()
|
||||
}
|
||||
|
||||
Collapse.VERSION = '3.3.1'
|
||||
Collapse.VERSION = '3.3.2'
|
||||
|
||||
Collapse.TRANSITION_DURATION = 350
|
||||
|
||||
|
@ -576,7 +574,7 @@ if (typeof jQuery === 'undefined') {
|
|||
if (this.transitioning || this.$element.hasClass('in')) return
|
||||
|
||||
var activesData
|
||||
var actives = this.$parent && this.$parent.find('> .panel').children('.in, .collapsing')
|
||||
var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
|
||||
|
||||
if (actives && actives.length) {
|
||||
activesData = actives.data('bs.collapse')
|
||||
|
@ -741,10 +739,10 @@ if (typeof jQuery === 'undefined') {
|
|||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: dropdown.js v3.3.1
|
||||
* Bootstrap: dropdown.js v3.3.2
|
||||
* http://getbootstrap.com/javascript/#dropdowns
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
@ -761,7 +759,7 @@ if (typeof jQuery === 'undefined') {
|
|||
$(element).on('click.bs.dropdown', this.toggle)
|
||||
}
|
||||
|
||||
Dropdown.VERSION = '3.3.1'
|
||||
Dropdown.VERSION = '3.3.2'
|
||||
|
||||
Dropdown.prototype.toggle = function (e) {
|
||||
var $this = $(this)
|
||||
|
@ -903,10 +901,10 @@ if (typeof jQuery === 'undefined') {
|
|||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: modal.js v3.3.1
|
||||
* Bootstrap: modal.js v3.3.2
|
||||
* http://getbootstrap.com/javascript/#modals
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
@ -934,7 +932,7 @@ if (typeof jQuery === 'undefined') {
|
|||
}
|
||||
}
|
||||
|
||||
Modal.VERSION = '3.3.1'
|
||||
Modal.VERSION = '3.3.2'
|
||||
|
||||
Modal.TRANSITION_DURATION = 300
|
||||
Modal.BACKDROP_TRANSITION_DURATION = 150
|
||||
|
@ -1228,11 +1226,11 @@ if (typeof jQuery === 'undefined') {
|
|||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: tooltip.js v3.3.1
|
||||
* Bootstrap: tooltip.js v3.3.2
|
||||
* http://getbootstrap.com/javascript/#tooltip
|
||||
* Inspired by the original jQuery.tipsy by Jason Frame
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
@ -1254,7 +1252,7 @@ if (typeof jQuery === 'undefined') {
|
|||
this.init('tooltip', element, options)
|
||||
}
|
||||
|
||||
Tooltip.VERSION = '3.3.1'
|
||||
Tooltip.VERSION = '3.3.2'
|
||||
|
||||
Tooltip.TRANSITION_DURATION = 150
|
||||
|
||||
|
@ -1575,10 +1573,10 @@ if (typeof jQuery === 'undefined') {
|
|||
}
|
||||
|
||||
Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
|
||||
return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
|
||||
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
|
||||
return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
|
||||
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
|
||||
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
|
||||
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
|
||||
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
|
||||
|
||||
}
|
||||
|
||||
|
@ -1674,18 +1672,12 @@ if (typeof jQuery === 'undefined') {
|
|||
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.tooltip')
|
||||
var options = typeof option == 'object' && option
|
||||
var selector = options && options.selector
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.tooltip')
|
||||
var options = typeof option == 'object' && option
|
||||
|
||||
if (!data && option == 'destroy') return
|
||||
if (selector) {
|
||||
if (!data) $this.data('bs.tooltip', (data = {}))
|
||||
if (!data[selector]) data[selector] = new Tooltip(this, options)
|
||||
} else {
|
||||
if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
|
||||
}
|
||||
if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
|
||||
if (typeof option == 'string') data[option]()
|
||||
})
|
||||
}
|
||||
|
@ -1707,10 +1699,10 @@ if (typeof jQuery === 'undefined') {
|
|||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: popover.js v3.3.1
|
||||
* Bootstrap: popover.js v3.3.2
|
||||
* http://getbootstrap.com/javascript/#popovers
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
@ -1727,7 +1719,7 @@ if (typeof jQuery === 'undefined') {
|
|||
|
||||
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
||||
|
||||
Popover.VERSION = '3.3.1'
|
||||
Popover.VERSION = '3.3.2'
|
||||
|
||||
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
||||
placement: 'right',
|
||||
|
@ -1794,18 +1786,12 @@ if (typeof jQuery === 'undefined') {
|
|||
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.popover')
|
||||
var options = typeof option == 'object' && option
|
||||
var selector = options && options.selector
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.popover')
|
||||
var options = typeof option == 'object' && option
|
||||
|
||||
if (!data && option == 'destroy') return
|
||||
if (selector) {
|
||||
if (!data) $this.data('bs.popover', (data = {}))
|
||||
if (!data[selector]) data[selector] = new Popover(this, options)
|
||||
} else {
|
||||
if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
|
||||
}
|
||||
if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
|
||||
if (typeof option == 'string') data[option]()
|
||||
})
|
||||
}
|
||||
|
@ -1827,10 +1813,10 @@ if (typeof jQuery === 'undefined') {
|
|||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: scrollspy.js v3.3.1
|
||||
* Bootstrap: scrollspy.js v3.3.2
|
||||
* http://getbootstrap.com/javascript/#scrollspy
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
@ -1858,7 +1844,7 @@ if (typeof jQuery === 'undefined') {
|
|||
this.process()
|
||||
}
|
||||
|
||||
ScrollSpy.VERSION = '3.3.1'
|
||||
ScrollSpy.VERSION = '3.3.2'
|
||||
|
||||
ScrollSpy.DEFAULTS = {
|
||||
offset: 10
|
||||
|
@ -2003,10 +1989,10 @@ if (typeof jQuery === 'undefined') {
|
|||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: tab.js v3.3.1
|
||||
* Bootstrap: tab.js v3.3.2
|
||||
* http://getbootstrap.com/javascript/#tabs
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
@ -2021,7 +2007,7 @@ if (typeof jQuery === 'undefined') {
|
|||
this.element = $(element)
|
||||
}
|
||||
|
||||
Tab.VERSION = '3.3.1'
|
||||
Tab.VERSION = '3.3.2'
|
||||
|
||||
Tab.TRANSITION_DURATION = 150
|
||||
|
||||
|
@ -2157,10 +2143,10 @@ if (typeof jQuery === 'undefined') {
|
|||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: affix.js v3.3.1
|
||||
* Bootstrap: affix.js v3.3.2
|
||||
* http://getbootstrap.com/javascript/#affix
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
@ -2186,7 +2172,7 @@ if (typeof jQuery === 'undefined') {
|
|||
this.checkPosition()
|
||||
}
|
||||
|
||||
Affix.VERSION = '3.3.1'
|
||||
Affix.VERSION = '3.3.2'
|
||||
|
||||
Affix.RESET = 'affix affix-top affix-bottom'
|
||||
|
||||
|
@ -2211,7 +2197,7 @@ if (typeof jQuery === 'undefined') {
|
|||
var colliderTop = initializing ? scrollTop : position.top
|
||||
var colliderHeight = initializing ? targetHeight : height
|
||||
|
||||
if (offsetTop != null && colliderTop <= offsetTop) return 'top'
|
||||
if (offsetTop != null && scrollTop <= offsetTop) return 'top'
|
||||
if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
|
||||
|
||||
return false
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -7,14 +7,12 @@
|
|||
goFwd: goFwd,
|
||||
goBack: goBack
|
||||
};
|
||||
|
||||
var scopes = {};
|
||||
|
||||
|
||||
function init(scope, name) {
|
||||
scope.pageCount = 1;
|
||||
scope.pageCount = 1;
|
||||
scope.pageSize = 1;
|
||||
scope.currentPage = 0;
|
||||
scopes[name] = scope;
|
||||
|
||||
scope.preventClickBubble = function (event) {
|
||||
event.stopImmediatePropagation();
|
||||
};
|
||||
|
@ -33,7 +31,7 @@
|
|||
if (util.isMobile) {
|
||||
menuContainer = $('#' + name + 'Container #menuContainer' + i);
|
||||
}
|
||||
menuContainer.append($('#researchMenu'));
|
||||
menuContainer.append($('#researchMenu'));
|
||||
setTimeout(function () {
|
||||
$('.popover-content .close-btn').click();
|
||||
menuContainer.find('#researchMenu')
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"name": "webclient",
|
||||
"description": "WorldWide Telescope Web Client.",
|
||||
"version": "5.2.4",
|
||||
"keywords": [
|
||||
"WorldWide Telescope",
|
||||
"client",
|
||||
"web"
|
||||
],
|
||||
"homepage": "http://worldwidetelescope.org",
|
||||
"author": "Jonathan Fay (jfay@microsoft.com) and Ron Gilchrist (kid@thewebkid.com)",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/MSRConnections/OpenWWT-Web.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/MSRConnections/OpenWWT-Web/Issues"
|
||||
},
|
||||
"license": {
|
||||
"type": "MIT",
|
||||
"url": "http://opensource.org/licenses/MIT"
|
||||
},
|
||||
|
||||
"devDependencies": {
|
||||
"grunt": "~0.4.5",
|
||||
"grunt-autoprefixer": "~1.0.1",
|
||||
"grunt-banner": "~0.2.3",
|
||||
"grunt-contrib-clean": "~0.6.0",
|
||||
"grunt-contrib-concat": "~0.5.0",
|
||||
"grunt-contrib-connect": "~0.9.0",
|
||||
"grunt-contrib-copy": "~0.7.0",
|
||||
"grunt-contrib-cssmin": "~0.10.0",
|
||||
"grunt-contrib-less": "~0.12.0",
|
||||
"grunt-contrib-uglify": "~0.6.0",
|
||||
"grunt-contrib-watch": "~0.6.1",
|
||||
"grunt-csscomb": "~3.0.0",
|
||||
"grunt-exec": "~0.4.6",
|
||||
"grunt-text-replace": "^0.4.0",
|
||||
"load-grunt-tasks": "~1.0.0",
|
||||
"npm-shrinkwrap": "~5.1.0",
|
||||
"time-grunt": "~1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "~0.10.1"
|
||||
},
|
||||
"buildConfig": {
|
||||
"uglify": true
|
||||
}
|
||||
}
|
|
@ -73,9 +73,10 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="app.js" />
|
||||
<Content Include="bootstrap\.gitattributes" />
|
||||
<Content Include="bootstrap\.gitignore" />
|
||||
<Content Include="bootstrap\Gruntfile.js" />
|
||||
<Content Include=".gitattributes" />
|
||||
<Content Include=".gitignore" />
|
||||
<Content Include="ext\jquery.js" />
|
||||
<Content Include="Gruntfile.js" />
|
||||
<Content Include="bootstrap\less\.csscomb.json" />
|
||||
<Content Include="bootstrap\less\.csslintrc" />
|
||||
<Content Include="bootstrap\less\alerts.less" />
|
||||
|
@ -146,8 +147,7 @@
|
|||
<Content Include="bootstrap\less\type.less" />
|
||||
<Content Include="bootstrap\less\utilities.less" />
|
||||
<Content Include="bootstrap\less\wells.less" />
|
||||
<Content Include="bootstrap\.editorconfig" />
|
||||
<Content Include="bootstrap\package.json" />
|
||||
<Content Include=".editorconfig" />
|
||||
<Content Include="clientbin\WWTSL.xap" />
|
||||
<Content Include="controllers\tabs\AdsController.js" />
|
||||
<Content Include="controllers\IntroController.js" />
|
||||
|
@ -161,7 +161,6 @@
|
|||
<Content Include="controllers\tabs\SearchController.js" />
|
||||
<Content Include="controllers\tabs\SettingsController.js" />
|
||||
<Content Include="controllers\modals\ShareController.js" />
|
||||
<Content Include="controllers\ThumbnailController.js" />
|
||||
<Content Include="controllers\tabs\ToursController.js" />
|
||||
<Content Include="controllers\tabs\ViewController.js" />
|
||||
<Content Include="controls\move.js" />
|
||||
|
@ -196,7 +195,6 @@
|
|||
<Content Include="ext\angular-touch.js" />
|
||||
<Content Include="ext\angular.js" />
|
||||
<Content Include="ext\bootstrap.js" />
|
||||
<Content Include="ext\bootstrap.min.js" />
|
||||
<Content Include="ext\intro.js" />
|
||||
<Content Include="ext\intro.min.js" />
|
||||
<Content Include="ext\introjs-rtl.css" />
|
||||
|
@ -277,6 +275,7 @@
|
|||
<Content Include="Images\venus.jpg" />
|
||||
<Content Include="Images\wwtlogo.png" />
|
||||
<Content Include="login.aspx" />
|
||||
<Content Include="package.json" />
|
||||
<Content Include="sdk\mscorlib.dll" />
|
||||
<Content Include="sdk\mscorlib.xml" />
|
||||
<Content Include="sdk\Script.Web.dll" />
|
||||
|
@ -338,7 +337,8 @@
|
|||
<Content Include="App_Readme\WURFL Quick Guide_v1_5.pdf" />
|
||||
<Content Include="App_Data\wurfl-latest.zip" />
|
||||
<Content Include="packages.config" />
|
||||
<Content Include="bootstrap\ensurenpm.cmd" />
|
||||
<Content Include="ensurenpm.cmd" />
|
||||
<Content Include="bower.json" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
|
|
Загрузка…
Ссылка в новой задаче