├── .gitignore ├── ConfigUtil.sln ├── LICENSE ├── README.md ├── build_release.cmd ├── build_release.sh ├── devtools ├── OSVR-Config.cmd ├── README.md ├── win-config-nodejs-choco-ver.cmd ├── win-install-coreclr.cmd ├── win-install-nodejs-via-choco.cmd ├── win-npm-globals.cmd └── win-upgrade-nodejs-via-choco.cmd ├── global.json └── src ├── ConfigUtil ├── .bowerrc ├── ConfigUtil.xproj ├── Program.cs ├── Properties │ ├── PublishProfiles │ │ └── filesystem-publish.ps1 │ └── launchSettings.json ├── Startup.cs ├── appsettings.json ├── bower.json ├── gulpfile.js ├── hosting.json ├── package.json ├── project.json ├── project.lock.json ├── tsd.json └── wwwroot │ ├── app │ ├── common │ │ ├── ConfigService.ts │ │ └── navigationService.ts │ ├── devices │ │ ├── devices.html │ │ └── devicesController.ts │ ├── landingPage │ │ ├── landingPage.html │ │ └── landingPageController.ts │ ├── main │ │ └── mainController.ts │ ├── modules.ts │ ├── plugins │ │ ├── plugins.html │ │ └── pluginsController.ts │ ├── renderManager │ │ ├── renderManager.html │ │ └── renderManagerController.ts │ ├── samples │ │ ├── samples.html │ │ └── samplesController.ts │ ├── serverRootNotDefined │ │ ├── serverRootNotDefined.html │ │ └── serverRootNotDefinedController.ts │ └── tools │ │ ├── tools.html │ │ └── toolsController.ts │ ├── favicon.ico │ ├── index.html │ ├── lib │ ├── angular-animate │ │ ├── .bower.json │ │ ├── README.md │ │ ├── angular-animate.js │ │ ├── angular-animate.min.js │ │ ├── angular-animate.min.js.map │ │ ├── bower.json │ │ ├── index.js │ │ └── package.json │ ├── angular-bootstrap │ │ ├── .bower.json │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── README.md │ │ ├── bower.json │ │ ├── index.js │ │ ├── package.json │ │ ├── ui-bootstrap-csp.css │ │ ├── ui-bootstrap-tpls.js │ │ ├── ui-bootstrap-tpls.min.js │ │ ├── ui-bootstrap.js │ │ └── ui-bootstrap.min.js │ ├── angular-translate-loader-static-files │ │ ├── .bower.json │ │ ├── README.md │ │ ├── angular-translate-loader-static-files.js │ │ ├── angular-translate-loader-static-files.min.js │ │ ├── bower.json │ │ └── package.json │ ├── angular-translate │ │ ├── .bower.json │ │ ├── README.md │ │ ├── angular-translate.js │ │ ├── angular-translate.min.js │ │ └── bower.json │ ├── angular │ │ ├── .bower.json │ │ ├── README.md │ │ ├── angular-csp.css │ │ ├── angular.js │ │ ├── angular.min.js │ │ ├── angular.min.js.gzip │ │ ├── angular.min.js.map │ │ ├── bower.json │ │ ├── index.js │ │ └── package.json │ ├── bootstrap │ │ ├── .bower.json │ │ ├── LICENSE │ │ └── dist │ │ │ ├── css │ │ │ ├── bootstrap-theme.css │ │ │ ├── bootstrap-theme.css.map │ │ │ ├── bootstrap-theme.min.css │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ └── bootstrap.min.css │ │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ └── js │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.min.js │ │ │ └── npm.js │ ├── jquery │ │ ├── .bower.json │ │ ├── AUTHORS.txt │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── bower.json │ │ ├── dist │ │ │ ├── jquery.js │ │ │ ├── jquery.min.js │ │ │ ├── jquery.min.map │ │ │ ├── jquery.slim.js │ │ │ ├── jquery.slim.min.js │ │ │ └── jquery.slim.min.map │ │ └── src │ │ │ ├── .jshintrc │ │ │ ├── ajax.js │ │ │ ├── ajax │ │ │ ├── jsonp.js │ │ │ ├── load.js │ │ │ ├── parseJSON.js │ │ │ ├── parseXML.js │ │ │ ├── script.js │ │ │ ├── var │ │ │ │ ├── location.js │ │ │ │ ├── nonce.js │ │ │ │ └── rquery.js │ │ │ └── xhr.js │ │ │ ├── attributes.js │ │ │ ├── attributes │ │ │ ├── attr.js │ │ │ ├── classes.js │ │ │ ├── prop.js │ │ │ ├── support.js │ │ │ └── val.js │ │ │ ├── callbacks.js │ │ │ ├── core.js │ │ │ ├── core │ │ │ ├── DOMEval.js │ │ │ ├── access.js │ │ │ ├── init.js │ │ │ ├── parseHTML.js │ │ │ ├── ready.js │ │ │ ├── support.js │ │ │ └── var │ │ │ │ └── rsingleTag.js │ │ │ ├── css.js │ │ │ ├── css │ │ │ ├── addGetHookIf.js │ │ │ ├── adjustCSS.js │ │ │ ├── curCSS.js │ │ │ ├── defaultDisplay.js │ │ │ ├── hiddenVisibleSelectors.js │ │ │ ├── showHide.js │ │ │ ├── support.js │ │ │ └── var │ │ │ │ ├── cssExpand.js │ │ │ │ ├── getStyles.js │ │ │ │ ├── isHidden.js │ │ │ │ ├── rmargin.js │ │ │ │ ├── rnumnonpx.js │ │ │ │ └── swap.js │ │ │ ├── data.js │ │ │ ├── data │ │ │ ├── Data.js │ │ │ ├── accepts.js │ │ │ ├── support.js │ │ │ └── var │ │ │ │ ├── acceptData.js │ │ │ │ ├── dataPriv.js │ │ │ │ └── dataUser.js │ │ │ ├── deferred.js │ │ │ ├── deferred │ │ │ └── exceptionHook.js │ │ │ ├── deprecated.js │ │ │ ├── dimensions.js │ │ │ ├── effects.js │ │ │ ├── effects │ │ │ ├── Tween.js │ │ │ ├── animatedSelector.js │ │ │ └── support.js │ │ │ ├── event.js │ │ │ ├── event │ │ │ ├── ajax.js │ │ │ ├── alias.js │ │ │ ├── focusin.js │ │ │ ├── support.js │ │ │ └── trigger.js │ │ │ ├── exports │ │ │ ├── amd.js │ │ │ └── global.js │ │ │ ├── intro.js │ │ │ ├── jquery.js │ │ │ ├── manipulation.js │ │ │ ├── manipulation │ │ │ ├── _evalUrl.js │ │ │ ├── buildFragment.js │ │ │ ├── createSafeFragment.js │ │ │ ├── getAll.js │ │ │ ├── setGlobalEval.js │ │ │ ├── support.js │ │ │ ├── var │ │ │ │ ├── nodeNames.js │ │ │ │ ├── rcheckableType.js │ │ │ │ ├── rleadingWhitespace.js │ │ │ │ ├── rscriptType.js │ │ │ │ └── rtagName.js │ │ │ └── wrapMap.js │ │ │ ├── offset.js │ │ │ ├── outro.js │ │ │ ├── queue.js │ │ │ ├── queue │ │ │ └── delay.js │ │ │ ├── selector-native.js │ │ │ ├── selector-sizzle.js │ │ │ ├── selector.js │ │ │ ├── serialize.js │ │ │ ├── support.js │ │ │ ├── traversing.js │ │ │ ├── traversing │ │ │ ├── findFilter.js │ │ │ └── var │ │ │ │ ├── dir.js │ │ │ │ ├── rneedsContext.js │ │ │ │ └── siblings.js │ │ │ ├── var │ │ │ ├── arr.js │ │ │ ├── class2type.js │ │ │ ├── concat.js │ │ │ ├── deletedIds.js │ │ │ ├── document.js │ │ │ ├── documentElement.js │ │ │ ├── hasOwn.js │ │ │ ├── indexOf.js │ │ │ ├── pnum.js │ │ │ ├── push.js │ │ │ ├── rcssNum.js │ │ │ ├── rnotwhite.js │ │ │ ├── slice.js │ │ │ ├── support.js │ │ │ └── toString.js │ │ │ └── wrap.js │ └── ui-router │ │ ├── .bower.json │ │ ├── CHANGELOG.md │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── release │ │ ├── angular-ui-router.js │ │ └── angular-ui-router.min.js │ │ └── src │ │ ├── common.js │ │ ├── resolve.js │ │ ├── state.js │ │ ├── stateDirectives.js │ │ ├── stateFilters.js │ │ ├── templateFactory.js │ │ ├── urlMatcherFactory.js │ │ ├── urlRouter.js │ │ ├── view.js │ │ ├── viewDirective.js │ │ └── viewScroll.js │ ├── localization │ └── locale-en.json │ ├── tsconfig.json │ ├── typings │ ├── angular-translate │ │ └── angular-translate.d.ts │ ├── angular-ui-router │ │ └── angular-ui-router.d.ts │ ├── angularjs │ │ └── angular.d.ts │ ├── jquery │ │ └── jquery.d.ts │ └── tsd.d.ts │ └── web.config ├── Launcher ├── App.config ├── Launcher.csproj ├── Launcher.exe.manifest ├── Program.cs ├── Properties │ └── AssemblyInfo.cs └── assets │ └── osvrconfig.ico ├── OSVR.Config.Controllers ├── Controllers │ ├── AvailableDisplaysController.cs │ ├── AvailableManualLoadPluginsController.cs │ ├── AvailableUserProfiles.cs │ ├── CurrentConfigController.cs │ ├── DisableDirectModeController.cs │ ├── EnableDirectModeController.cs │ ├── KeepAliveController.cs │ ├── ResetYawController.cs │ ├── RestartServerController.cs │ ├── RunSampleAppController.cs │ ├── RunningServerPathsController.cs │ ├── SampleAppsController.cs │ ├── SampleConfigsController.cs │ ├── ServerRootController.cs │ ├── StartServerController.cs │ ├── StartTrackerViewerController.cs │ └── StopServerController.cs ├── OSVR.Config.Controllers.xproj ├── Properties │ └── AssemblyInfo.cs ├── project.json └── project.lock.json └── OSVR.Config ├── Common ├── ConfigExtensions.cs ├── KeepAlive.cs ├── OSExeUtil.cs └── OSVRDirectories.cs ├── Models ├── DirectMode.cs ├── ManualLoadPlugin.cs ├── OSVRConfig.cs ├── OSVRDisplay.cs ├── OSVRInclude.cs ├── OSVRServer.cs ├── ResetYaw.cs ├── SampleApps.cs ├── ServerConfigSample.cs ├── TrackerViewer.cs └── UserProfiles.cs ├── OSVR.Config.xproj ├── Properties └── AssemblyInfo.cs ├── project.json └── project.lock.json /build_release.cmd: -------------------------------------------------------------------------------- 1 | setlocal 2 | set DOTNET_CLI_TELEMETRY_OPTOUT=1 3 | pushd "%~dp0" 4 | 5 | call dotnet restore 6 | if %errorlevel% neq 0 exit /b %errorlevel% 7 | 8 | cd src\ConfigUtil 9 | 10 | call dotnet publish -r win7-x64 -o artifacts\bin --configuration Release 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | 13 | xcopy artifacts\bin ..\..\artifacts\bin\ /Y /E 14 | if %errorlevel% neq 0 exit /b %errorlevel% 15 | 16 | call "%VS140COMNTOOLS%vsvars32.bat" 17 | 18 | msbuild ..\Launcher\Launcher.csproj /p:Configuration=Release 19 | if %errorlevel% neq 0 exit /b %errorlevel% 20 | 21 | xcopy ..\Launcher\bin\Release\OSVR-Config.exe ..\..\artifacts\ /y 22 | if %errorlevel% neq 0 exit /b %errorlevel% 23 | popd 24 | endlocal 25 | -------------------------------------------------------------------------------- /build_release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ( 3 | export DOTNET_CLI_TELEMETRY_OPTOUT=1 4 | echo Setting DOTNET_CLI_TELEMETRY_OPTOUT=${DOTNET_CLI_TELEMETRY_OPTOUT} 5 | cd $(dirname $0) 6 | cd src/ConfigUtil 7 | dotnet restore 8 | dotnet publish -o artifacts/bin --configuration Release 9 | ) 10 | -------------------------------------------------------------------------------- /devtools/OSVR-Config.cmd: -------------------------------------------------------------------------------- 1 | start http://localhost:5000 2 | call approot\web.cmd 3 | exit 0 4 | -------------------------------------------------------------------------------- /devtools/README.md: -------------------------------------------------------------------------------- 1 | # Dev Tools 2 | 3 | ## One-time build environment setup scripts 4 | 5 | ### `win-install-coreclr.cmd` 6 | Does what it says on the tin: follows the instructions to install ASP.NET 5/CoreCLR from the command line on Windows. 7 | 8 | ### `win-install-nodejs-via-choco.cmd` 9 | If you want to use Chocolatey to install/manage an LTS version of NodeJS, it takes some extra effort (since by default it will install the latest version). 10 | This script and its relatives handle that for you: installing the latest (the last time we checked) LTS NodeJS available through Choco, and pinning it so your `choco upgrade all -y` doesn't accidentally upgrade you out of that branch. 11 | 12 | **Must be run as admin** (if your choco install is as admin, which is the standard case) 13 | 14 | ### `win-upgrade-nodejs-via-choco.cmd` 15 | When we become aware of a newer LTS version, you can use this script to upgrade just to that version safely. 16 | 17 | **Must be run as admin** (if your choco install is as admin, which is the standard case) 18 | 19 | ### `win-config-nodejs-choco-ver.cmd` 20 | **Do not run** this script on its own - it's the common file storing the version number of the "latest NodeJS LTS in Choco", used by `win-upgrade-nodejs-via-choco.cmd` and `win-install-nodejs-via-choco.cmd`. 21 | When a new one is available, only this script needs to be updated, then both the new installs and upgrades will use it right away. (and if you spot one before anyone else, you can pull request this file :D ) 22 | 23 | ### `win-npm-globals.cmd` 24 | Run **after** installing NodeJS (no matter how you install it) - updates NPM itself, then installs the global NPM packages required to build OSVR-Config. 25 | -------------------------------------------------------------------------------- /devtools/win-config-nodejs-choco-ver.cmd: -------------------------------------------------------------------------------- 1 | rem Don't run this file on its own. It exists solely to centralize the latest NodeJS LTS version in Choco 2 | 3 | rem As of March 24, 2016, nodejs 4.4.1 existed, but the corresponding nodejs.install version package was missing 4 | set CHOCO_NODEJS_VER=4.4.0 5 | -------------------------------------------------------------------------------- /devtools/win-install-coreclr.cmd: -------------------------------------------------------------------------------- 1 | rem from https://docs.asp.net/en/latest/getting-started/installing-on-windows.html#install-asp-net-5-from-the-command-line 2 | 3 | rem install .NET version manager (DNVM) 4 | @powershell -NoProfile -ExecutionPolicy unrestricted -Command "&{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}" 5 | 6 | rem install .NET execution environment (DNX) for coreclr 7 | dnvm upgrade -r coreclr 8 | 9 | pause 10 | -------------------------------------------------------------------------------- /devtools/win-install-nodejs-via-choco.cmd: -------------------------------------------------------------------------------- 1 | rem By default Choco will give you the latest NodeJS, not the LTS version, 2 | rem so we keep track of the latest LTS version manually, then pin it to avoid 3 | rem upgrades that aren't intentionally invoked from the script here or naming 4 | rem the involved packages by name. 5 | 6 | rem Load the common "Latest LTS version" config 7 | call "%~dp0win-config-nodejs-choco-ver.cmd" 8 | 9 | rem Install the specific version 10 | choco install nodejs -version %CHOCO_NODEJS_VER% -y 11 | 12 | rem Now we must keep choco from upgrading nodejs on you. 13 | choco pin add -name nodejs 14 | choco pin add -name nodejs.install 15 | -------------------------------------------------------------------------------- /devtools/win-npm-globals.cmd: -------------------------------------------------------------------------------- 1 | rem Make sure you have NodeJS installed first. If you're using Chocolatey, 2 | rem might I suggest win-install-nodejs-via-choco.cmd first... 3 | 4 | rem Update NPM itself first. 5 | npm update -g npm 6 | 7 | rem Install bower for front-end dependency fetching 8 | npm install -g bower 9 | 10 | rem Install gulp for prepublish script for front end build tasks 11 | npm install -g gulp 12 | 13 | pause 14 | -------------------------------------------------------------------------------- /devtools/win-upgrade-nodejs-via-choco.cmd: -------------------------------------------------------------------------------- 1 | rem By default Choco will give you the latest NodeJS, not the LTS version 2 | rem so we can't just freely let it upgrade. This will let it upgrade just 3 | rem to the latest version that is mentioned in this repo, and assumes you 4 | rem have nodejs and nodejs.install pinned 5 | 6 | rem Load the common "Latest LTS version" config 7 | call "%~dp0win-config-nodejs-choco-ver.cmd" 8 | 9 | choco upgrade nodejs -version %CHOCO_NODEJS_VER% -y 10 | -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "projects": [ 3 | "src", 4 | "test" 5 | ], 6 | "sdk": { 7 | "version": "1.0.0-preview2-1-003177", 8 | "runtime": "coreclr", 9 | "architecture": "x86" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/ConfigUtil/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "wwwroot/lib" 3 | } 4 | -------------------------------------------------------------------------------- /src/ConfigUtil/ConfigUtil.xproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 14.0 5 | $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) 6 | 7 | 8 | 9 | b2d61055-0bb3-46de-80f2-17ef716b8746 10 | ConfigUtil 11 | ..\..\artifacts\obj\$(MSBuildProjectName) 12 | .\bin\ 13 | v4.5.2 14 | 15 | 16 | 2.0 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/ConfigUtil/Program.cs: -------------------------------------------------------------------------------- 1 | /// OSVR-Config 2 | /// 3 | /// 4 | /// Copyright 2016 Sensics, Inc. 5 | /// 6 | /// Licensed under the Apache License, Version 2.0 (the "License"); 7 | /// you may not use this file except in compliance with the License. 8 | /// You may obtain a copy of the License at 9 | /// 10 | /// http://www.apache.org/licenses/LICENSE-2.0 11 | /// 12 | /// Unless required by applicable law or agreed to in writing, software 13 | /// distributed under the License is distributed on an "AS IS" BASIS, 14 | /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | /// See the License for the specific language governing permissions and 16 | /// limitations under the License. 17 | /// 18 | /// 19 | using System; 20 | using System.Collections.Generic; 21 | using System.IO; 22 | using System.Linq; 23 | using System.Threading.Tasks; 24 | using Microsoft.AspNetCore.Hosting; 25 | using Microsoft.AspNetCore.Builder; 26 | 27 | namespace ConfigUtil 28 | { 29 | public class Program 30 | { 31 | public static void Main(string[] args) 32 | { 33 | var host = new WebHostBuilder() 34 | .UseKestrel() 35 | .UseContentRoot(Directory.GetCurrentDirectory()) 36 | .UseStartup() 37 | .Build(); 38 | 39 | host.Run(); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/ConfigUtil/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:65290/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "OSVRConfig": { 19 | "commandName": "Project", 20 | "launchBrowser": true, 21 | "launchUrl": "http://localhost:5000", 22 | "environmentVariables": { 23 | "ASPNETCORE_ENVIRONMENT": "Development" 24 | } 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /src/ConfigUtil/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | }, 10 | "Filtering": { 11 | "LocalHostOnly": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/ConfigUtil/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "OSVR-Config", 3 | "private": true, 4 | "dependencies": { 5 | "bootstrap": "3.3.5", 6 | "angular": "1.4.6", 7 | "ui-router": "~0.2.18", 8 | "angular-bootstrap": "0.13.4", 9 | "angular-animate": "1.4.6", 10 | "angular-translate": "2.8.0", 11 | "angular-translate-loader-static-files": "2.8.0" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/ConfigUtil/gulpfile.js: -------------------------------------------------------------------------------- 1 | /// 2 | "use strict"; 3 | 4 | var gulp = require("gulp"), 5 | sourcemaps = require("gulp-sourcemaps"), 6 | rimraf = require("rimraf"), 7 | ts = require("gulp-typescript"); 8 | 9 | var paths = { 10 | webroot: "./wwwroot/" 11 | }; 12 | 13 | paths.generated = paths.webroot + "generated"; 14 | 15 | var tsProject = ts.createProject(paths.webroot + "tsconfig.json"); 16 | 17 | gulp.task('tsc', function () { 18 | var tsResult = tsProject.src({ cwd: paths.webroot }) 19 | .pipe(sourcemaps.init()) 20 | .pipe(tsProject()); 21 | return tsResult.js 22 | .pipe(sourcemaps.write()) 23 | .pipe(gulp.dest(paths.webroot)) 24 | }); 25 | 26 | gulp.task("clean:generated", function (cb) { 27 | rimraf(paths.generated, cb); 28 | }); 29 | 30 | gulp.task("clean", ["clean:generated"]); 31 | 32 | gulp.task("build", ["tsc"]); 33 | 34 | gulp.task("default", ["build"]); 35 | -------------------------------------------------------------------------------- /src/ConfigUtil/hosting.json: -------------------------------------------------------------------------------- 1 | { 2 | "webroot": "wwwroot" 3 | } 4 | -------------------------------------------------------------------------------- /src/ConfigUtil/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "OSVRConfig", 3 | "version": "0.0.0", 4 | "description": "Frontend for the OSVR-Config utility", 5 | "private": true, 6 | "repository": { 7 | "type" : "git", 8 | "url" : "https://github.com/osvr/osvr-config.git" 9 | }, 10 | "license": "Apache-2.0", 11 | "devDependencies": { 12 | "gulp": "3.9.1", 13 | "gulp-sourcemaps": "2.4.0", 14 | "gulp-typescript": "3.1.4", 15 | "rimraf": "2.5.4", 16 | "typescript": "^2.1.5" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/ConfigUtil/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "Microsoft.NETCore.App": "1.1.0", 4 | "OSVR.Config": "1.0.0-*", 5 | "OSVR.Config.Controllers": "1.0.0-*", 6 | "Microsoft.AspNetCore.Mvc": "1.1.1", 7 | "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", 8 | "Microsoft.AspNetCore.StaticFiles": "1.1.0", 9 | "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", 10 | "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", 11 | "Microsoft.Extensions.Configuration.Json": "1.1.0", 12 | "Microsoft.Extensions.Logging": "1.1.0", 13 | "Microsoft.Extensions.Logging.Console": "1.1.0", 14 | "Microsoft.Extensions.Logging.Debug": "1.1.0", 15 | "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0" 16 | }, 17 | 18 | "frameworks": { 19 | "netcoreapp1.0": {} 20 | }, 21 | "runtimes": { 22 | "win7-x64": {}, 23 | "win8-x64": {}, 24 | "win81-x64": {}, 25 | "win10-x64": {}, 26 | "ubuntu.14.04-x64": {} 27 | }, 28 | "buildOptions": { 29 | "emitEntryPoint": true, 30 | "preserveCompilationContext": true 31 | }, 32 | 33 | "runtimeOptions": { 34 | "configProperties": { 35 | "System.GC.Server": true 36 | } 37 | }, 38 | 39 | "publishOptions": { 40 | "include": [ 41 | "wwwroot", 42 | "Views", 43 | "Areas/**/Views", 44 | "appsettings.json", 45 | "web.config" 46 | ] 47 | }, 48 | 49 | "scripts": { 50 | "prepublish": [ "npm install", "bower install", "gulp clean", "gulp build" ] 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/ConfigUtil/tsd.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "v4", 3 | "repo": "borisyankov/DefinitelyTyped", 4 | "ref": "master", 5 | "path": "wwwroot/typings", 6 | "bundle": "wwwroot/typings/tsd.d.ts", 7 | "installed": { 8 | "angularjs/angular.d.ts": { 9 | "commit": "6766ed1d0faf02ede9e2edf2e66bbb2388c825ec" 10 | }, 11 | "jquery/jquery.d.ts": { 12 | "commit": "6766ed1d0faf02ede9e2edf2e66bbb2388c825ec" 13 | }, 14 | "angular-ui-router/angular-ui-router.d.ts": { 15 | "commit": "0d622d857f97d44ea7dcad2b3edec1f23c48fe9e" 16 | }, 17 | "angular-translate/angular-translate.d.ts": { 18 | "commit": "6766ed1d0faf02ede9e2edf2e66bbb2388c825ec" 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/common/ConfigService.ts: -------------------------------------------------------------------------------- 1 | /// OSVR-Config 2 | /// 3 | /// 4 | /// Copyright 2016 Sensics, Inc. 5 | /// 6 | /// Licensed under the Apache License, Version 2.0 (the "License"); 7 | /// you may not use this file except in compliance with the License. 8 | /// You may obtain a copy of the License at 9 | /// 10 | /// http://www.apache.org/licenses/LICENSE-2.0 11 | /// 12 | /// Unless required by applicable law or agreed to in writing, software 13 | /// distributed under the License is distributed on an "AS IS" BASIS, 14 | /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | /// See the License for the specific language governing permissions and 16 | /// limitations under the License. 17 | /// 18 | /// 19 | 20 | module app.common { 21 | export interface IOSVRInclude { 22 | relativePath: string; 23 | body: any; 24 | } 25 | 26 | export interface IOSVRConfig { 27 | body: any; 28 | includes: IOSVRInclude[]; 29 | } 30 | 31 | export interface IOSVRPlugin { 32 | name: string; 33 | enabled?: boolean; 34 | } 35 | 36 | export interface IOSVRDisplay { 37 | fileName: string; 38 | relativePath: string; 39 | body: any; 40 | showDetail?: boolean; 41 | } 42 | 43 | export interface ISetCurrentConfigResponse { } 44 | 45 | export interface IConfigService { 46 | getCurrent(): ng.IPromise; 47 | setCurrent(newConfig: IOSVRConfig): ng.IPromise; 48 | getAvailableManualLoadPlugins(): ng.IPromise 49 | getAvailableDisplays(): ng.IPromise; 50 | getCurrentServerRoot(): ng.IPromise; 51 | keepAlive(): ng.IPromise; 52 | } 53 | 54 | class ConfigService implements IConfigService { 55 | static $inject = ["$http"]; 56 | constructor(private $http: ng.IHttpService) { } 57 | 58 | getCurrent(): ng.IPromise { 59 | return this.$http.get("/api/currentconfig").then(result => { return result.data }); 60 | } 61 | 62 | setCurrent(newConfig: IOSVRConfig): ng.IPromise { 63 | return this.$http.post("/api/currentconfig", newConfig); 64 | } 65 | 66 | getAvailableManualLoadPlugins(): ng.IPromise { 67 | return this.$http.get("/api/availablemanualloadplugins").then(result => { return result.data }); 68 | } 69 | 70 | getAvailableDisplays(): ng.IPromise { 71 | return this.$http.get("/api/availabledisplays").then(result => { return result.data; }); 72 | } 73 | 74 | getCurrentServerRoot(): ng.IPromise { 75 | return this.$http.get("/api/serverroot").then(result => { return result.data; }); 76 | } 77 | 78 | keepAlive(): ng.IPromise { 79 | return this.$http.post("/api/keepAlive", {}); 80 | } 81 | } 82 | 83 | angular.module("app.common.ConfigService", []).service("app.common.ConfigService", ConfigService); 84 | } 85 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/common/navigationService.ts: -------------------------------------------------------------------------------- 1 | /// OSVR-Config 2 | /// 3 | /// 4 | /// Copyright 2016 Sensics, Inc. 5 | /// 6 | /// Licensed under the Apache License, Version 2.0 (the "License"); 7 | /// you may not use this file except in compliance with the License. 8 | /// You may obtain a copy of the License at 9 | /// 10 | /// http://www.apache.org/licenses/LICENSE-2.0 11 | /// 12 | /// Unless required by applicable law or agreed to in writing, software 13 | /// distributed under the License is distributed on an "AS IS" BASIS, 14 | /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | /// See the License for the specific language governing permissions and 16 | /// limitations under the License. 17 | /// 18 | /// 19 | 20 | module app.common { 21 | 22 | export interface INavbarItem { 23 | labelTranslateKey: string; 24 | descriptionTranslateKey: string; 25 | state: string; 26 | } 27 | export interface INavigationService { 28 | getNavbarItems(): INavbarItem[]; 29 | } 30 | 31 | class NavigationService implements INavigationService { 32 | constructor() { } 33 | 34 | getNavbarItems(): INavbarItem[] { 35 | return [ 36 | { 37 | labelTranslateKey: "index.navBarItems.devices", 38 | descriptionTranslateKey: "index.navBarItems.devicesDescription", 39 | state: "devices" 40 | }, 41 | { 42 | labelTranslateKey: "index.navBarItems.renderManager", 43 | descriptionTranslateKey: "index.navBarItems.renderManagerDescription", 44 | state: "renderManager" 45 | }, 46 | { 47 | labelTranslateKey: "index.navBarItems.plugins", 48 | descriptionTranslateKey: "index.navBarItems.pluginsDescription", 49 | state: "plugins" 50 | }, 51 | { 52 | labelTranslateKey: "index.navBarItems.samples", 53 | descriptionTranslateKey: "index.navBarItems.samplesDescription", 54 | state: "samples" 55 | }, 56 | { 57 | labelTranslateKey: "index.navBarItems.tools", 58 | descriptionTranslateKey: "index.navBarItems.toolsDescription", 59 | state: "tools" 60 | } 61 | ]; 62 | } 63 | } 64 | 65 | angular.module("app.common.NavigationService", []).service("app.common.NavigationService", NavigationService); 66 | } 67 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/devices/devices.html: -------------------------------------------------------------------------------- 1 | 
2 |
3 |

4 |
5 |
6 |
{{vm.configRoot.body.display | json}}
7 |
8 |
9 |
10 |
11 |

12 |
13 |
14 | {{'devices.panelDescription' | translate}} 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 44 | 45 | 46 | 49 | 50 | 51 |
{{display.fileName}}{{display.body.hmd.device.Note}}{{display.body.hmd.device.model}}{{display.body.hmd.device.vendor}}{{display.body.hmd.device.Version}} 38 | 43 |
47 |
{{display.body | json}}
48 |
52 |
53 |
54 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/devices/devicesController.ts: -------------------------------------------------------------------------------- 1 | /// OSVR-Config 2 | /// 3 | /// 4 | /// Copyright 2016 Sensics, Inc. 5 | /// 6 | /// Licensed under the Apache License, Version 2.0 (the "License"); 7 | /// you may not use this file except in compliance with the License. 8 | /// You may obtain a copy of the License at 9 | /// 10 | /// http://www.apache.org/licenses/LICENSE-2.0 11 | /// 12 | /// Unless required by applicable law or agreed to in writing, software 13 | /// distributed under the License is distributed on an "AS IS" BASIS, 14 | /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | /// See the License for the specific language governing permissions and 16 | /// limitations under the License. 17 | /// 18 | /// 19 | module app.devices { 20 | 21 | class DevicesController { 22 | configRoot: app.common.IOSVRConfig; 23 | config: any; 24 | displays: common.IOSVRDisplay[]; 25 | 26 | static $inject = ["app.common.ConfigService"]; 27 | constructor(private configService: app.common.IConfigService) { 28 | configService.getAvailableDisplays().then(displays => this.displays = displays); 29 | configService.getCurrent().then(config => { this.configRoot = config; }); 30 | } 31 | 32 | clickDisplay(display: common.IOSVRDisplay) { 33 | this.configRoot.body.display = display.relativePath; 34 | this.configService.setCurrent(this.configRoot); 35 | } 36 | 37 | viewDisplay(display: common.IOSVRDisplay) { 38 | var temp = display.showDetail; 39 | var i = 0; 40 | for (i = 0; i < this.displays.length; i++) { 41 | this.displays[i].showDetail = false; 42 | } 43 | 44 | display.showDetail = !temp; 45 | } 46 | 47 | showHideDisplayLabelKey(display: common.IOSVRDisplay) { 48 | return display.showDetail ? "devices.hideDisplay" : "devices.showDisplay"; 49 | } 50 | 51 | isCurrentDisplay(display: common.IOSVRDisplay) { 52 | return angular.isString(this.configRoot.body.display) && display.relativePath == this.configRoot.body.display; 53 | } 54 | 55 | getUseButtonTextKey(display: common.IOSVRDisplay) { 56 | return this.isCurrentDisplay(display) ? "devices.isCurrentDisplay" : "devices.useDisplay"; 57 | } 58 | } 59 | 60 | angular.module("app.devices", ["app.common.ConfigService", "ui.router"]) 61 | .config(["$stateProvider", ($stateProvider: angular.ui.IStateProvider) => { 62 | $stateProvider.state("devices", { 63 | url: "/devices", 64 | templateUrl: "app/devices/devices.html", 65 | controller: "app.devices.DevicesController as vm" 66 | }); 67 | }]) 68 | .controller("app.devices.DevicesController", DevicesController); 69 | } 70 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/landingPage/landingPage.html: -------------------------------------------------------------------------------- 1 | 
2 |

3 |

4 |

6 |

8 |
9 |
11 | 14 |
15 |
16 |
17 |

18 |
19 |
20 |
21 |
22 | 23 |

-------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/landingPage/landingPageController.ts: -------------------------------------------------------------------------------- 1 | /// OSVR-Config 2 | /// 3 | /// 4 | /// Copyright 2016 Sensics, Inc. 5 | /// 6 | /// Licensed under the Apache License, Version 2.0 (the "License"); 7 | /// you may not use this file except in compliance with the License. 8 | /// You may obtain a copy of the License at 9 | /// 10 | /// http://www.apache.org/licenses/LICENSE-2.0 11 | /// 12 | /// Unless required by applicable law or agreed to in writing, software 13 | /// distributed under the License is distributed on an "AS IS" BASIS, 14 | /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | /// See the License for the specific language governing permissions and 16 | /// limitations under the License. 17 | /// 18 | /// 19 | module app.landingPage { 20 | class LandingPageController { 21 | currentConfig: any = {}; 22 | navbarItems: app.common.INavbarItem[]; 23 | 24 | static $inject = ["$http", "$log", "app.common.ConfigService", "app.common.NavigationService"]; 25 | constructor( 26 | private $http: ng.IHttpService, 27 | private $log: ng.ILogService, 28 | private configService: app.common.IConfigService, 29 | private navigationService: app.common.INavigationService) { 30 | this.navbarItems = navigationService.getNavbarItems(); 31 | configService.getCurrent().then(currentConfig => this.currentConfig = currentConfig); 32 | } 33 | } 34 | 35 | angular.module("app.landingPage", ["app.common.ConfigService", "app.common.NavigationService", "ui.router"]) 36 | .config(["$stateProvider", ($stateProvider: angular.ui.IStateProvider) => { 37 | $stateProvider.state("landingPage", { 38 | url: "/", 39 | templateUrl: "app/landingPage/landingPage.html", 40 | controller: "app.landingPage.LandingPageController as vm" 41 | }); 42 | }]) 43 | .controller("app.landingPage.LandingPageController", LandingPageController); 44 | } 45 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/main/mainController.ts: -------------------------------------------------------------------------------- 1 | /// OSVR-Config 2 | /// 3 | /// 4 | /// Copyright 2016 Sensics, Inc. 5 | /// 6 | /// Licensed under the Apache License, Version 2.0 (the "License"); 7 | /// you may not use this file except in compliance with the License. 8 | /// You may obtain a copy of the License at 9 | /// 10 | /// http://www.apache.org/licenses/LICENSE-2.0 11 | /// 12 | /// Unless required by applicable law or agreed to in writing, software 13 | /// distributed under the License is distributed on an "AS IS" BASIS, 14 | /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | /// See the License for the specific language governing permissions and 16 | /// limitations under the License. 17 | /// 18 | /// 19 | module app.main { 20 | 21 | class MainController { 22 | navbarItems: app.common.INavbarItem[]; 23 | 24 | serverRoot: string; 25 | 26 | configSaveAsURL: string; 27 | configSaveAsBlob: Blob; 28 | 29 | isActive(navBarItem: app.common.INavbarItem): boolean { 30 | return this.$state.current.name == navBarItem.state; 31 | } 32 | 33 | serverRootDefined(): boolean { 34 | return angular.isDefined(this.serverRoot) && 35 | angular.isString(this.serverRoot) && 36 | this.serverRoot.length > 0; 37 | } 38 | 39 | static $inject = ["$timeout", "$state", "app.common.ConfigService", "app.common.NavigationService"]; 40 | constructor( 41 | private $timeout: ng.ITimeoutService, 42 | private $state: ng.ui.IStateService, 43 | private configService: app.common.IConfigService, 44 | private navigationService: app.common.INavigationService) { 45 | 46 | this.navbarItems = navigationService.getNavbarItems(); 47 | 48 | configService.getCurrentServerRoot().then(serverRoot => { 49 | this.serverRoot = serverRoot; 50 | if (!this.serverRootDefined()) { 51 | this.$state.go("serverRootNotDefined"); 52 | } 53 | }); 54 | 55 | configService.getCurrent().then(config => { 56 | var json = JSON.stringify(config.body, null, 4); 57 | this.configSaveAsBlob = new Blob([json], { type: "application/json" }); 58 | this.configSaveAsURL = URL.createObjectURL(this.configSaveAsBlob); 59 | }); 60 | 61 | var timeoutFunc = () => { 62 | configService.keepAlive(); 63 | $timeout(timeoutFunc, 3000); 64 | }; 65 | 66 | $timeout(timeoutFunc, 1000); 67 | } 68 | } 69 | angular.module("app.main", ["app.common.ConfigService", "app.common.NavigationService", "ui.router"]) 70 | .controller("app.main.MainController", MainController); 71 | } 72 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/modules.ts: -------------------------------------------------------------------------------- 1 | /// OSVR-Config 2 | /// 3 | /// 4 | /// Copyright 2016 Sensics, Inc. 5 | /// 6 | /// Licensed under the Apache License, Version 2.0 (the "License"); 7 | /// you may not use this file except in compliance with the License. 8 | /// You may obtain a copy of the License at 9 | /// 10 | /// http://www.apache.org/licenses/LICENSE-2.0 11 | /// 12 | /// Unless required by applicable law or agreed to in writing, software 13 | /// distributed under the License is distributed on an "AS IS" BASIS, 14 | /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | /// See the License for the specific language governing permissions and 16 | /// limitations under the License. 17 | /// 18 | /// 19 | module modules { 20 | angular.module("app", 21 | [ 22 | "ui.router", 23 | "app.main", 24 | "app.landingPage", 25 | "app.tools", 26 | "app.samples", 27 | "app.renderManager", 28 | "app.plugins", 29 | "app.devices", 30 | "app.serverRootNotDefined", 31 | "pascalprecht.translate" 32 | ]) 33 | .config(["$stateProvider", "$urlRouterProvider", "$translateProvider", "$compileProvider", 34 | ( 35 | $stateProvider: ng.ui.IStateProvider, 36 | $urlRouterProvider: ng.ui.IUrlRouterProvider, 37 | $translateProvider: ng.translate.ITranslateProvider, 38 | $compileProvider: ng.ICompileProvider) => { 39 | 40 | $urlRouterProvider.otherwise("/"); 41 | $translateProvider.useStaticFilesLoader({ 42 | prefix: "localization/locale-", 43 | suffix: ".json" 44 | }); 45 | $translateProvider.useSanitizeValueStrategy('escape'); 46 | $translateProvider.preferredLanguage("en"); 47 | 48 | $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|blob):/); 49 | }]); 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/plugins/plugins.html: -------------------------------------------------------------------------------- 1 | 
2 |
3 |
4 |

5 |
6 | 7 |
8 |

9 |
10 |
11 |
12 |
13 |
14 | 15 | 16 | 17 | 18 |
19 |
20 |
21 |
22 |
23 | 24 | 40 |
41 |
42 |
43 | 44 | 45 |
46 |
47 | 51 |
52 |
53 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/samples/samples.html: -------------------------------------------------------------------------------- 1 | 
2 |
3 |

4 |
5 |
6 | {{'samples.panelDescription' | translate}} 7 | 8 |
    9 |
  • 10 |
    11 |
    12 |

    {{sampleConfig.fileName}}

    13 |

    {{sampleConfig.body.body.description}}

    14 |
    15 |
    16 | 17 |
    18 |
    19 |
    {{sampleConfig.body | json}}
    20 |
    21 |
    22 |
    23 |
    24 | 25 | 26 |
    27 |
    28 | 29 |
  • 30 |
31 |
32 |
33 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/samples/samplesController.ts: -------------------------------------------------------------------------------- 1 | /// OSVR-Config 2 | /// 3 | /// 4 | /// Copyright 2016 Sensics, Inc. 5 | /// 6 | /// Licensed under the Apache License, Version 2.0 (the "License"); 7 | /// you may not use this file except in compliance with the License. 8 | /// You may obtain a copy of the License at 9 | /// 10 | /// http://www.apache.org/licenses/LICENSE-2.0 11 | /// 12 | /// Unless required by applicable law or agreed to in writing, software 13 | /// distributed under the License is distributed on an "AS IS" BASIS, 14 | /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | /// See the License for the specific language governing permissions and 16 | /// limitations under the License. 17 | /// 18 | /// 19 | module app.samples { 20 | interface ISampleConfig { 21 | fileName: string; 22 | body: common.IOSVRConfig; 23 | showDetail?: boolean; 24 | } 25 | 26 | class SamplesController { 27 | sampleConfigs: ISampleConfig[] = []; 28 | static $inject = ["$http", "$log", "app.common.ConfigService"]; 29 | constructor(private $http: ng.IHttpService, private $log: ng.ILogService, private configService: app.common.IConfigService) { 30 | $http.get("/api/sampleConfigs").then(result => { 31 | this.sampleConfigs = result.data; 32 | }); 33 | } 34 | 35 | clickSampleConfig(sampleConfig: ISampleConfig) { 36 | this.configService.setCurrent(sampleConfig.body); 37 | } 38 | 39 | viewSampleConfig(sampleConfig: ISampleConfig) { 40 | var i = 0; 41 | for (i = 0; i < this.sampleConfigs.length; i++) { 42 | this.sampleConfigs[i].showDetail = false; 43 | } 44 | sampleConfig.showDetail = true; 45 | } 46 | } 47 | 48 | angular.module("app.samples", ["ui.router"]) 49 | .config(["$stateProvider", ($stateProvider: angular.ui.IStateProvider) => { 50 | $stateProvider.state("samples", { 51 | url: "/samples", 52 | templateUrl: "app/samples/samples.html", 53 | controller: "app.samples.SamplesController as vm" 54 | }); 55 | }]) 56 | .controller("app.samples.SamplesController", SamplesController); 57 | } 58 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/serverRootNotDefined/serverRootNotDefined.html: -------------------------------------------------------------------------------- 1 | 
2 |
3 |
4 |
5 |

6 |
7 |
8 |

9 | 12 | 15 |
16 |
17 |
18 |
-------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/serverRootNotDefined/serverRootNotDefinedController.ts: -------------------------------------------------------------------------------- 1 | /// OSVR-Config 2 | /// 3 | /// 4 | /// Copyright 2016 Sensics, Inc. 5 | /// 6 | /// Licensed under the Apache License, Version 2.0 (the "License"); 7 | /// you may not use this file except in compliance with the License. 8 | /// You may obtain a copy of the License at 9 | /// 10 | /// http://www.apache.org/licenses/LICENSE-2.0 11 | /// 12 | /// Unless required by applicable law or agreed to in writing, software 13 | /// distributed under the License is distributed on an "AS IS" BASIS, 14 | /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | /// See the License for the specific language governing permissions and 16 | /// limitations under the License. 17 | /// 18 | /// 19 | module app.samples { 20 | 21 | class ServerRootNotDefinedController { 22 | static $inject: string[] = []; 23 | constructor() { } 24 | } 25 | 26 | angular.module("app.serverRootNotDefined", ["ui.router"]) 27 | .config(["$stateProvider", ($stateProvider: angular.ui.IStateProvider) => { 28 | $stateProvider.state("serverRootNotDefined", { 29 | url: "/serverRootNotDefined", 30 | templateUrl: "app/serverRootNotDefined/serverRootNotDefined.html", 31 | controller: "app.serverRootNotDefined.ServerRootNotDefinedController as vm" 32 | }); 33 | }]) 34 | .controller("app.serverRootNotDefined.ServerRootNotDefinedController", ServerRootNotDefinedController); 35 | } 36 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/tools/tools.html: -------------------------------------------------------------------------------- 1 |  2 |
3 |
4 |
5 |
6 |

7 |
8 |
9 |
10 |
11 |

12 |
13 |
14 |
15 |
16 | 20 |
21 |
22 |
23 |
24 |
25 |
26 | 27 | 28 |
29 |
30 |
31 |
32 |

33 |
34 |
35 |
36 |
37 |

38 |
39 |
40 |
41 |
42 |
43 | 46 | 47 | 51 | 52 |
53 |
54 |
55 |
56 |
57 |
58 |
-------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/app/tools/toolsController.ts: -------------------------------------------------------------------------------- 1 | /// OSVR-Config 2 | /// 3 | /// 4 | /// Copyright 2016 Sensics, Inc. 5 | /// 6 | /// Licensed under the Apache License, Version 2.0 (the "License"); 7 | /// you may not use this file except in compliance with the License. 8 | /// You may obtain a copy of the License at 9 | /// 10 | /// http://www.apache.org/licenses/LICENSE-2.0 11 | /// 12 | /// Unless required by applicable law or agreed to in writing, software 13 | /// distributed under the License is distributed on an "AS IS" BASIS, 14 | /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | /// See the License for the specific language governing permissions and 16 | /// limitations under the License. 17 | /// 18 | /// 19 | module app.tools { 20 | class ToolsController { 21 | trackerViewerPath = ""; 22 | 23 | startTrackerViewer() { 24 | var paths = (typeof this.trackerViewerPath !== "undefined" && this.trackerViewerPath !== null) ? 25 | this.trackerViewerPath.split(" ") : []; 26 | this.$http.post("/api/starttrackerviewer", {}, { 27 | params: { 28 | paths: paths 29 | } 30 | }).then( 31 | success => { 32 | console.log("starttrackerviewer call succeeded."); 33 | }, 34 | failure => { 35 | console.log("starttrackerviewer call failed."); 36 | }); 37 | 38 | } 39 | 40 | startServer() { 41 | this.$http.post("/api/startserver", {}).then( 42 | success => { 43 | console.log("startserver call succeeded."); 44 | }, 45 | failure => { 46 | console.log("startserver call failed."); 47 | }); 48 | } 49 | 50 | static $inject = ["$http"]; 51 | constructor(private $http: ng.IHttpService) { } 52 | } 53 | 54 | angular.module("app.tools", ["ui.router"]) 55 | .config(["$stateProvider", ($stateProvider: angular.ui.IStateProvider) => { 56 | $stateProvider.state("tools", { 57 | url: "/tools", 58 | templateUrl: "app/tools/tools.html", 59 | controller: "app.tools.ToolsController as vm" 60 | }); 61 | }]) 62 | .controller("app.tools.ToolsController", ToolsController); 63 | } -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSVR/OSVR-Config/aafb2096cdf55a7848e79b8f5d3d29904a4d223f/src/ConfigUtil/wwwroot/favicon.ico -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 37 |
38 |
39 |
40 | 42 |
43 |

{{vm.serverRoot}}

44 |
45 |
46 |
47 |
48 |
49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-animate/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.4.6", 4 | "main": "./angular-animate.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.6" 8 | }, 9 | "homepage": "https://github.com/angular/bower-angular-animate", 10 | "_release": "1.4.6", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "v1.4.6", 14 | "commit": "b22a9a4535a2495353128884775057fb07a3b7f6" 15 | }, 16 | "_source": "git://github.com/angular/bower-angular-animate.git", 17 | "_target": "1.4.6", 18 | "_originalSource": "angular-animate", 19 | "_direct": true 20 | } -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-animate/README.md: -------------------------------------------------------------------------------- 1 | # packaged angular-animate 2 | 3 | This repo is for distribution on `npm` and `bower`. The source for this module is in the 4 | [main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngAnimate). 5 | Please file issues and pull requests against that repo. 6 | 7 | ## Install 8 | 9 | You can install this package either with `npm` or with `bower`. 10 | 11 | ### npm 12 | 13 | ```shell 14 | npm install angular-animate 15 | ``` 16 | 17 | Then add `ngAnimate` as a dependency for your app: 18 | 19 | ```javascript 20 | angular.module('myApp', [require('angular-animate')]); 21 | ``` 22 | 23 | ### bower 24 | 25 | ```shell 26 | bower install angular-animate 27 | ``` 28 | 29 | Then add a ` 33 | ``` 34 | 35 | Then add `ngAnimate` as a dependency for your app: 36 | 37 | ```javascript 38 | angular.module('myApp', ['ngAnimate']); 39 | ``` 40 | 41 | ## Documentation 42 | 43 | Documentation is available on the 44 | [AngularJS docs site](http://docs.angularjs.org/api/ngAnimate). 45 | 46 | ## License 47 | 48 | The MIT License 49 | 50 | Copyright (c) 2010-2015 Google, Inc. http://angularjs.org 51 | 52 | Permission is hereby granted, free of charge, to any person obtaining a copy 53 | of this software and associated documentation files (the "Software"), to deal 54 | in the Software without restriction, including without limitation the rights 55 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 56 | copies of the Software, and to permit persons to whom the Software is 57 | furnished to do so, subject to the following conditions: 58 | 59 | The above copyright notice and this permission notice shall be included in 60 | all copies or substantial portions of the Software. 61 | 62 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 63 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 64 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 65 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 66 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 67 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 68 | THE SOFTWARE. 69 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-animate/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.4.6", 4 | "main": "./angular-animate.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.6" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-animate/index.js: -------------------------------------------------------------------------------- 1 | require('./angular-animate'); 2 | module.exports = 'ngAnimate'; 3 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-animate/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.4.6", 4 | "description": "AngularJS module for animations", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "animation", 18 | "client-side" 19 | ], 20 | "author": "Angular Core Team ", 21 | "license": "MIT", 22 | "bugs": { 23 | "url": "https://github.com/angular/angular.js/issues" 24 | }, 25 | "homepage": "http://angularjs.org" 26 | } 27 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-bootstrap/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": { 3 | "name": "https://github.com/angular-ui/bootstrap/graphs/contributors" 4 | }, 5 | "name": "angular-bootstrap", 6 | "keywords": [ 7 | "angular", 8 | "angular-ui", 9 | "bootstrap" 10 | ], 11 | "license": "MIT", 12 | "ignore": [], 13 | "description": "Native AngularJS (Angular) directives for Bootstrap.", 14 | "version": "0.13.4", 15 | "main": [ 16 | "./ui-bootstrap-tpls.js" 17 | ], 18 | "dependencies": { 19 | "angular": ">=1.3.0" 20 | }, 21 | "homepage": "https://github.com/angular-ui/bootstrap-bower", 22 | "_release": "0.13.4", 23 | "_resolution": { 24 | "type": "version", 25 | "tag": "0.13.4", 26 | "commit": "a5f2d4bdcbbbae9cc6bd34a0a79f24e9aacc8ab9" 27 | }, 28 | "_source": "git://github.com/angular-ui/bootstrap-bower.git", 29 | "_target": "0.13.4", 30 | "_originalSource": "angular-bootstrap", 31 | "_direct": true 32 | } -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-bootstrap/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-bootstrap/.npmignore: -------------------------------------------------------------------------------- 1 | bower.json -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-bootstrap/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": { 3 | "name": "https://github.com/angular-ui/bootstrap/graphs/contributors" 4 | }, 5 | "name": "angular-bootstrap", 6 | "keywords": [ 7 | "angular", 8 | "angular-ui", 9 | "bootstrap" 10 | ], 11 | "license": "MIT", 12 | "ignore": [], 13 | "description": "Native AngularJS (Angular) directives for Bootstrap.", 14 | "version": "0.13.4", 15 | "main": ["./ui-bootstrap-tpls.js"], 16 | "dependencies": { 17 | "angular": ">=1.3.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-bootstrap/index.js: -------------------------------------------------------------------------------- 1 | require('./ui-bootstrap-tpls'); 2 | module.exports = 'ui.bootstrap'; 3 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-bootstrap/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-ui-bootstrap", 3 | "version": "0.13.4", 4 | "description": "Bootstrap widgets for Angular", 5 | "main": "index.js", 6 | "homepage": "http://angular-ui.github.io/bootstrap/", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/angular-ui/bootstrap.git" 10 | }, 11 | "keywords": [ 12 | "angular", 13 | "bootstrap", 14 | "angular-ui", 15 | "components", 16 | "client-side" 17 | ], 18 | "author": "https://github.com/angular-ui/bootstrap/graphs/contributors", 19 | "peerDependencies": { 20 | "angular": "^1.3.x || >= 1.4.0-beta.0 || >= 1.5.0-beta.0", 21 | "bootstrap": "^3.x" 22 | }, 23 | "license": "MIT" 24 | } 25 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-bootstrap/ui-bootstrap-csp.css: -------------------------------------------------------------------------------- 1 | /* Include this file in your html if you are using the CSP mode. */ 2 | 3 | .ng-animate.item:not(.left):not(.right) { 4 | -webkit-transition: 0s ease-in-out left; 5 | transition: 0s ease-in-out left 6 | } -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-translate-loader-static-files/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-translate-loader-static-files", 3 | "description": "A plugin for Angular Translate", 4 | "version": "2.8.0", 5 | "main": "./angular-translate-loader-static-files.js", 6 | "ignore": [], 7 | "author": "Pascal Precht", 8 | "license": "MIT", 9 | "dependencies": { 10 | "angular-translate": "~2.8.0" 11 | }, 12 | "homepage": "https://github.com/PascalPrecht/bower-angular-translate-loader-static-files", 13 | "_release": "2.8.0", 14 | "_resolution": { 15 | "type": "version", 16 | "tag": "2.8.0", 17 | "commit": "a0b91ce9a3a9ea681d92122c6ef17ac338319c2a" 18 | }, 19 | "_source": "git://github.com/PascalPrecht/bower-angular-translate-loader-static-files.git", 20 | "_target": "2.8.0", 21 | "_originalSource": "angular-translate-loader-static-files", 22 | "_direct": true 23 | } -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-translate-loader-static-files/README.md: -------------------------------------------------------------------------------- 1 | # angular-translate-loader-static-files (bower shadow repository) 2 | 3 | This is the _Bower shadow_ repository for *angular-translate-loader-static-files*. 4 | 5 | ## Bugs and issues 6 | 7 | Please file any issues and bugs in our main repository at [angular-translate/angular-translate](https://github.com/angular-translate/angular-translate/issues). 8 | 9 | ## Usage 10 | 11 | ### via Bower 12 | 13 | ```bash 14 | $ bower install angular-translate-loader-static-files 15 | ``` 16 | 17 | ### via NPM 18 | 19 | ```bash 20 | $ npm install angular-translate-loader-static-files 21 | ``` 22 | 23 | ### via cdnjs 24 | 25 | Please have a look at https://cdnjs.com/libraries/angular-translate-loader-static-files for specific versions. 26 | 27 | ## License 28 | 29 | Licensed under MIT. See more details at [angular-translate/angular-translate](https://github.com/angular-translate/angular-translate). 30 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * angular-translate - v2.8.0 - 2015-09-18 3 | * 4 | * Copyright (c) 2015 The angular-translate team, Pascal Precht; Licensed MIT 5 | */ 6 | !function(a,b){"function"==typeof define&&define.amd?define([],function(){return b()}):"object"==typeof exports?module.exports=b():b()}(this,function(){function a(a,b){"use strict";return function(c){if(!(c&&(angular.isArray(c.files)||angular.isString(c.prefix)&&angular.isString(c.suffix))))throw new Error("Couldn't load static files, no files and prefix or suffix specified!");c.files||(c.files=[{prefix:c.prefix,suffix:c.suffix}]);for(var d=function(d){if(!d||!angular.isString(d.prefix)||!angular.isString(d.suffix))throw new Error("Couldn't load static file, no prefix or suffix specified!");return b(angular.extend({url:[d.prefix,c.key,d.suffix].join(""),method:"GET",params:""},c.$http)).then(function(a){return a.data},function(){return a.reject(c.key)})},e=a.defer(),f=[],g=c.files.length,h=0;g>h;h++)f.push(d({prefix:c.files[h].prefix,key:c.key,suffix:c.files[h].suffix}));return a.all(f).then(function(a){for(var b=a.length,c={},d=0;b>d;d++)for(var f in a[d])c[f]=a[d][f];e.resolve(c)},function(a){e.reject(a)}),e.promise}}return angular.module("pascalprecht.translate").factory("$translateStaticFilesLoader",a),a.$inject=["$q","$http"],a.displayName="$translateStaticFilesLoader","pascalprecht.translate"}); -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-translate-loader-static-files/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-translate-loader-static-files", 3 | "description": "A plugin for Angular Translate", 4 | "version": "2.8.0", 5 | "main": "./angular-translate-loader-static-files.js", 6 | "ignore": [], 7 | "author": "Pascal Precht", 8 | "license": "MIT", 9 | "dependencies": { 10 | "angular-translate": "~2.8.0" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-translate-loader-static-files/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-translate-loader-static-files", 3 | "version": "2.8.0", 4 | "description": "Creates a loading function for a typical static file url pattern: \"lang-en_US.json\", \"lang-de_DE.json\", etc. Using this builder, the response of these urls must be an object of key-value pairs.", 5 | "main": "angular-translate-loader-static-files.js", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/angular-translate/bower-angular-translate-loader-static-files.git" 9 | }, 10 | "keywords": [ 11 | "angular", 12 | "translate", 13 | "loader" 14 | ], 15 | "author": "Pascal Precht", 16 | "license": "MIT", 17 | "bugs": { 18 | "url": "https://github.com/angular-translate/angular-translate/issues" 19 | }, 20 | "homepage": "https://angular-translate.github.io", 21 | "dependencies": { 22 | "angular-translate": "~2.8.0" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-translate/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-translate", 3 | "description": "A translation module for AngularJS", 4 | "version": "2.8.0", 5 | "main": "./angular-translate.js", 6 | "ignore": [], 7 | "author": "Pascal Precht", 8 | "license": "MIT", 9 | "dependencies": { 10 | "angular": ">=1.2.26 <=1.5" 11 | }, 12 | "homepage": "https://github.com/PascalPrecht/bower-angular-translate", 13 | "_release": "2.8.0", 14 | "_resolution": { 15 | "type": "version", 16 | "tag": "2.8.0", 17 | "commit": "8e94a1bfeb50581c4be8f2814ba95a50d82cf280" 18 | }, 19 | "_source": "git://github.com/PascalPrecht/bower-angular-translate.git", 20 | "_target": "2.8.0", 21 | "_originalSource": "angular-translate", 22 | "_direct": true 23 | } -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-translate/README.md: -------------------------------------------------------------------------------- 1 | # angular-translate (bower shadow repository) 2 | 3 | This is the _Bower shadow_ repository for *angular-translate*. 4 | 5 | ## Bugs and issues 6 | 7 | Please file any issues and bugs in our main repository at [angular-translate/angular-translate](https://github.com/angular-translate/angular-translate/issues). 8 | 9 | ## Usage 10 | 11 | ### via Bower 12 | 13 | ```bash 14 | $ bower install angular-translate 15 | ``` 16 | 17 | ### via cdnjs 18 | 19 | Please have a look at https://cdnjs.com/libraries/angular-translate for specific versions. 20 | 21 | ## License 22 | 23 | Licensed under MIT. See more details at [angular-translate/angular-translate](https://github.com/angular-translate/angular-translate). 24 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular-translate/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-translate", 3 | "description": "A translation module for AngularJS", 4 | "version": "2.8.0", 5 | "main": "./angular-translate.js", 6 | "ignore": [], 7 | "author": "Pascal Precht", 8 | "license": "MIT", 9 | "dependencies": { 10 | "angular": ">=1.2.26 <=1.5" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.4.6", 4 | "main": "./angular.js", 5 | "ignore": [], 6 | "dependencies": {}, 7 | "homepage": "https://github.com/angular/bower-angular", 8 | "_release": "1.4.6", 9 | "_resolution": { 10 | "type": "version", 11 | "tag": "v1.4.6", 12 | "commit": "0e8a4e9b36704cacad159b99dd06bbcacef94975" 13 | }, 14 | "_source": "git://github.com/angular/bower-angular.git", 15 | "_target": "1.4.6", 16 | "_originalSource": "angular", 17 | "_direct": true 18 | } -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular/README.md: -------------------------------------------------------------------------------- 1 | # packaged angular 2 | 3 | This repo is for distribution on `npm` and `bower`. The source for this module is in the 4 | [main AngularJS repo](https://github.com/angular/angular.js). 5 | Please file issues and pull requests against that repo. 6 | 7 | ## Install 8 | 9 | You can install this package either with `npm` or with `bower`. 10 | 11 | ### npm 12 | 13 | ```shell 14 | npm install angular 15 | ``` 16 | 17 | Then add a ` 21 | ``` 22 | 23 | Or `require('angular')` from your code. 24 | 25 | ### bower 26 | 27 | ```shell 28 | bower install angular 29 | ``` 30 | 31 | Then add a ` 35 | ``` 36 | 37 | ## Documentation 38 | 39 | Documentation is available on the 40 | [AngularJS docs site](http://docs.angularjs.org/). 41 | 42 | ## License 43 | 44 | The MIT License 45 | 46 | Copyright (c) 2010-2015 Google, Inc. http://angularjs.org 47 | 48 | Permission is hereby granted, free of charge, to any person obtaining a copy 49 | of this software and associated documentation files (the "Software"), to deal 50 | in the Software without restriction, including without limitation the rights 51 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 52 | copies of the Software, and to permit persons to whom the Software is 53 | furnished to do so, subject to the following conditions: 54 | 55 | The above copyright notice and this permission notice shall be included in 56 | all copies or substantial portions of the Software. 57 | 58 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 59 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 60 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 61 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 62 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 63 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 64 | THE SOFTWARE. 65 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular/angular-csp.css: -------------------------------------------------------------------------------- 1 | /* Include this file in your html if you are using the CSP mode. */ 2 | 3 | @charset "UTF-8"; 4 | 5 | [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], 6 | .ng-cloak, .x-ng-cloak, 7 | .ng-hide:not(.ng-hide-animate) { 8 | display: none !important; 9 | } 10 | 11 | ng\:form { 12 | display: block; 13 | } 14 | 15 | .ng-animate-shim { 16 | visibility:hidden; 17 | } 18 | 19 | .ng-anchor { 20 | position:absolute; 21 | } 22 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular/angular.min.js.gzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSVR/OSVR-Config/aafb2096cdf55a7848e79b8f5d3d29904a4d223f/src/ConfigUtil/wwwroot/lib/angular/angular.min.js.gzip -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.4.6", 4 | "main": "./angular.js", 5 | "ignore": [], 6 | "dependencies": { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular/index.js: -------------------------------------------------------------------------------- 1 | require('./angular'); 2 | module.exports = angular; 3 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/angular/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.4.6", 4 | "description": "HTML enhanced for web apps", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "client-side" 18 | ], 19 | "author": "Angular Core Team ", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/angular/angular.js/issues" 23 | }, 24 | "homepage": "http://angularjs.org" 25 | } 26 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/bootstrap/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap", 3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", 4 | "keywords": [ 5 | "css", 6 | "js", 7 | "less", 8 | "mobile-first", 9 | "responsive", 10 | "front-end", 11 | "framework", 12 | "web" 13 | ], 14 | "homepage": "http://getbootstrap.com", 15 | "license": "MIT", 16 | "moduleType": "globals", 17 | "main": [ 18 | "less/bootstrap.less", 19 | "dist/js/bootstrap.js" 20 | ], 21 | "ignore": [ 22 | "/.*", 23 | "_config.yml", 24 | "CNAME", 25 | "composer.json", 26 | "CONTRIBUTING.md", 27 | "docs", 28 | "js/tests", 29 | "test-infra" 30 | ], 31 | "dependencies": { 32 | "jquery": ">= 1.9.1" 33 | }, 34 | "version": "3.3.5", 35 | "_release": "3.3.5", 36 | "_resolution": { 37 | "type": "version", 38 | "tag": "v3.3.5", 39 | "commit": "16b48259a62f576e52c903c476bd42b90ab22482" 40 | }, 41 | "_source": "git://github.com/twbs/bootstrap.git", 42 | "_target": "3.3.5", 43 | "_originalSource": "bootstrap" 44 | } -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/bootstrap/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-2015 Twitter, Inc 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSVR/OSVR-Config/aafb2096cdf55a7848e79b8f5d3d29904a4d223f/src/ConfigUtil/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSVR/OSVR-Config/aafb2096cdf55a7848e79b8f5d3d29904a4d223f/src/ConfigUtil/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSVR/OSVR-Config/aafb2096cdf55a7848e79b8f5d3d29904a4d223f/src/ConfigUtil/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OSVR/OSVR-Config/aafb2096cdf55a7848e79b8f5d3d29904a4d223f/src/ConfigUtil/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/bootstrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ], 14 | "homepage": "https://github.com/jquery/jquery-dist", 15 | "version": "2.2.1", 16 | "_release": "2.2.1", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "2.2.1", 20 | "commit": "788eaba2f83e7b7445c7a83a50c81c0704423874" 21 | }, 22 | "_source": "git://github.com/jquery/jquery-dist.git", 23 | "_target": ">= 1.9.1", 24 | "_originalSource": "jquery" 25 | } -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/jquery/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright jQuery Foundation and other contributors, https://jquery.org/ 2 | 3 | This software consists of voluntary contributions made by many 4 | individuals. For exact contribution history, see the revision history 5 | available at https://github.com/jquery/jquery 6 | 7 | The following license applies to all parts of this software except as 8 | documented below: 9 | 10 | ==== 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining 13 | a copy of this software and associated documentation files (the 14 | "Software"), to deal in the Software without restriction, including 15 | without limitation the rights to use, copy, modify, merge, publish, 16 | distribute, sublicense, and/or sell copies of the Software, and to 17 | permit persons to whom the Software is furnished to do so, subject to 18 | the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be 21 | included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30 | 31 | ==== 32 | 33 | All files located in the node_modules and external directories are 34 | externally maintained libraries used by this software which have their 35 | own licenses; we recommend you read them, as their terms may differ from 36 | the terms above. 37 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/jquery/README.md: -------------------------------------------------------------------------------- 1 | # jQuery 2 | 3 | > jQuery is a fast, small, and feature-rich JavaScript library. 4 | 5 | For information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/). 6 | For source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery). 7 | 8 | ## Including jQuery 9 | 10 | Below are some of the most common ways to include jQuery. 11 | 12 | ### Browser 13 | 14 | #### Script tag 15 | 16 | ```html 17 | 18 | ``` 19 | 20 | #### Babel 21 | 22 | [Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively. 23 | 24 | ```js 25 | import $ from "jquery"; 26 | ``` 27 | 28 | #### Browserify/Webpack 29 | 30 | There are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this... 31 | 32 | ```js 33 | var $ = require("jquery"); 34 | ``` 35 | 36 | #### AMD (Asynchronous Module Definition) 37 | 38 | AMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html). 39 | 40 | ```js 41 | define(["jquery"], function($) { 42 | 43 | }); 44 | ``` 45 | 46 | ### Node 47 | 48 | To include jQuery in [Node](nodejs.org), first install with npm. 49 | 50 | ```sh 51 | npm install jquery 52 | ``` 53 | 54 | For jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes. 55 | 56 | ```js 57 | require("jsdom").env("", function(err, window) { 58 | if (err) { 59 | console.error(err); 60 | return; 61 | } 62 | 63 | var $ = require("jquery")(window); 64 | }); 65 | ``` 66 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/jquery/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ] 14 | } -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/jquery/src/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "boss": true, 3 | "curly": true, 4 | "eqeqeq": true, 5 | "eqnull": true, 6 | "expr": true, 7 | "immed": true, 8 | "noarg": true, 9 | "quotmark": "double", 10 | "undef": true, 11 | "unused": true, 12 | 13 | "sub": true, 14 | 15 | // Support: IE < 10, Android < 4.1 16 | // The above browsers are failing a lot of tests in the ES5 17 | // test suite at http://test262.ecmascript.org. 18 | "es3": true, 19 | 20 | "globals": { 21 | "window": true, 22 | "JSON": false, 23 | 24 | "jQuery": true, 25 | "define": true, 26 | "module": true, 27 | "noGlobal": true 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/jquery/src/ajax/load.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../core/parseHTML", 4 | "../ajax", 5 | "../traversing", 6 | "../manipulation", 7 | "../selector", 8 | 9 | // Optional event/alias dependency 10 | "../event/alias" 11 | ], function( jQuery ) { 12 | 13 | // Keep a copy of the old load method 14 | var _load = jQuery.fn.load; 15 | 16 | /** 17 | * Load a url into a page 18 | */ 19 | jQuery.fn.load = function( url, params, callback ) { 20 | if ( typeof url !== "string" && _load ) { 21 | return _load.apply( this, arguments ); 22 | } 23 | 24 | var selector, type, response, 25 | self = this, 26 | off = url.indexOf( " " ); 27 | 28 | if ( off > -1 ) { 29 | selector = jQuery.trim( url.slice( off ) ); 30 | url = url.slice( 0, off ); 31 | } 32 | 33 | // If it's a function 34 | if ( jQuery.isFunction( params ) ) { 35 | 36 | // We assume that it's the callback 37 | callback = params; 38 | params = undefined; 39 | 40 | // Otherwise, build a param string 41 | } else if ( params && typeof params === "object" ) { 42 | type = "POST"; 43 | } 44 | 45 | // If we have elements to modify, make the request 46 | if ( self.length > 0 ) { 47 | jQuery.ajax( { 48 | url: url, 49 | 50 | // If "type" variable is undefined, then "GET" method will be used. 51 | // Make value of this field explicit since 52 | // user can override it through ajaxSetup method 53 | type: type || "GET", 54 | dataType: "html", 55 | data: params 56 | } ).done( function( responseText ) { 57 | 58 | // Save response for use in complete callback 59 | response = arguments; 60 | 61 | self.html( selector ? 62 | 63 | // If a selector was specified, locate the right elements in a dummy div 64 | // Exclude scripts to avoid IE 'Permission Denied' errors 65 | jQuery( "
" ).append( jQuery.parseHTML( responseText ) ).find( selector ) : 66 | 67 | // Otherwise use the full result 68 | responseText ); 69 | 70 | // If the request succeeds, this function gets "data", "status", "jqXHR" 71 | // but they are ignored because response was set above. 72 | // If it fails, this function gets "jqXHR", "status", "error" 73 | } ).always( callback && function( jqXHR, status ) { 74 | self.each( function() { 75 | callback.apply( self, response || [ jqXHR.responseText, status, jqXHR ] ); 76 | } ); 77 | } ); 78 | } 79 | 80 | return this; 81 | }; 82 | 83 | } ); 84 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/jquery/src/ajax/parseJSON.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Support: Android 2.3 6 | // Workaround failure to string-cast null input 7 | jQuery.parseJSON = function( data ) { 8 | return JSON.parse( data + "" ); 9 | }; 10 | 11 | return jQuery.parseJSON; 12 | 13 | } ); 14 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/jquery/src/ajax/parseXML.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Cross-browser xml parsing 6 | jQuery.parseXML = function( data ) { 7 | var xml; 8 | if ( !data || typeof data !== "string" ) { 9 | return null; 10 | } 11 | 12 | // Support: IE9 13 | try { 14 | xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); 15 | } catch ( e ) { 16 | xml = undefined; 17 | } 18 | 19 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { 20 | jQuery.error( "Invalid XML: " + data ); 21 | } 22 | return xml; 23 | }; 24 | 25 | return jQuery.parseXML; 26 | 27 | } ); 28 | -------------------------------------------------------------------------------- /src/ConfigUtil/wwwroot/lib/jquery/src/ajax/script.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../var/document", 4 | "../ajax" 5 | ], function( jQuery, document ) { 6 | 7 | // Install script dataType 8 | jQuery.ajaxSetup( { 9 | accepts: { 10 | script: "text/javascript, application/javascript, " + 11 | "application/ecmascript, application/x-ecmascript" 12 | }, 13 | contents: { 14 | script: /\b(?:java|ecma)script\b/ 15 | }, 16 | converters: { 17 | "text script": function( text ) { 18 | jQuery.globalEval( text ); 19 | return text; 20 | } 21 | } 22 | } ); 23 | 24 | // Handle cache's special case and crossDomain 25 | jQuery.ajaxPrefilter( "script", function( s ) { 26 | if ( s.cache === undefined ) { 27 | s.cache = false; 28 | } 29 | if ( s.crossDomain ) { 30 | s.type = "GET"; 31 | } 32 | } ); 33 | 34 | // Bind script tag hack transport 35 | jQuery.ajaxTransport( "script", function( s ) { 36 | 37 | // This transport only deals with cross domain requests 38 | if ( s.crossDomain ) { 39 | var script, callback; 40 | return { 41 | send: function( _, complete ) { 42 | script = jQuery( "