angular.module('APSvcSession', [])
.constant('API', '/v1/api')
.constant('Auth', '/auth')
.factory('Notifications', function NotificationsFactory($rootScope, $location) {
this.calculateNextNotification = () => {
// var usr = $rootScope.session
// if ($location.path().indexOf('/login') == 0 ||
// $location.path().indexOf('/posts/new') == 0 || !usr) return null
// else if (!usr._id && usr.bookmarks && usr.bookmarks.length > 0) return { saveBookmarks: true }
return null
}
return this;
})
.service('SessionService', function($rootScope, $http, $q, API, Auth, $cacheFactory, Notifications) {
var setScope = (successFn, trackingData) => {
return function(r) {
r.unauthenticated = (r.authenticated!=null && r.authenticated == false)
$rootScope.session = r
$rootScope.notifications = Notifications.calculateNextNotification()
// if (window.analytics && trackingData) analytics.track('Save', trackingData);
successFn(r)
}
}
var cache;
this.getSession = function() {
if ($rootScope.session)
return $q((r)=> { return r($rootScope.session) })
cache = cache || $cacheFactory();
return $http.get(`${API}/session/full`, {cache:cache}).then(
function(response) {
if ($rootScope.session && $rootScope.session.tags) {
return $rootScope.session
} else {
setScope(()=>{})(response.data);
return response.data;
}
},
function(err) { window.location = '/logout'; }
);
}
this.onAuthenticated = function(fn) {
return this.getSession().then(fn);
}
this.onUnauthenticated = function(fn) {
return this.getSession().then(null, fn);
}
// this.login = function(data, success, error) {
// $http.post(`${Auth}/login`, data).success(setScope(success)).error(error);
// }
// this.signup = function(data, success, error) {
// $http.post(`${Auth}/signup`, data).success(setScope(success)).error(error);
// }
this.changeEmail = function(data, success, error) {
var trackingData = { type:'email', email: data.email }
$http.put(`${API}/users/me/email`, data).success(setScope(success, trackingData)).error(error);
}
this.changeName= function(data, success, error) {
var trackingData = { type:'name', name: data.name }
$http.put(`${API}/users/me/name`, data).success(setScope(success, trackingData)).error(error);
}
this.changeLocationTimezone= function(data, success, error) {
$http.put(`${API}/users/me/location`, data).success(setScope(success)).error(error);
}
// this.verifyEmail = function(data, success, error)
// {
// $http.put(`${API}/users/me/email-verify`, data).success(setScope(success)).error(error);
// }
// this.updateTag = function(data, success, error) {
// $http.put(`${API}/users/me/tag/${encodeURIComponent(data.slug)}`, {}).success(setScope(success)).error(error)
// }
// this.updateBookmark = function(data, success, error) {
// $http.put(`${API}/users/me/bookmarks/${data.type}/${data.objectId}`, {}).success(setScope(success)).error(error)
// }
// this.tags = function(data, success, error) {
// $http.put(`${API}/users/me/tags`, data).success(setScope(success)).error(error);
// }
// this.bookmarks = function(data, success, error) {
// $http.put(`${API}/users/me/bookmarks`, data).success(setScope(success)).error(error);
// }
// this.getSiteNotifications = function(data, success, error) {
// $http.get(`${API}/users/me/site-notifications`).success(success).error(error)
// }
// this.toggleSiteNotification = function(data, success, error) {
// $http.put(`${API}/users/me/site-notifications`, data).success(success).error(error)
// this.getMaillists = function(data, success, error) {
// $http.get(`${API}/users/me/maillists`, data).success(success).error(error)
// }
// this.toggleMaillist = function(data, success, error) {
// $http.put(`${API}/users/me/maillists`, data).success(success).error(error)
// }
// }
this.updateBio = function(data, success, error) {
$http.put(`${API}/users/me/bio`, data).success(setScope(success)).error(error)
}
this.updateName = function(data, success, error) {
$http.put(`${API}/users/me/name`, data).success(setScope(success)).error(error)
}
this.updateInitials = function(data, success, error) {
$http.put(`${API}/users/me/initials`, data).success(setScope(success)).error(error)
}
this.updateUsername = function(data, success, error) {
$http.put(`${API}/users/me/username`, data).success(setScope(success)).error(error)
}
// this.requestPasswordChange = function(data, success, error) {
// $http.post(`/auth/password-reset`, data).success(success).error(error)
// }
// this.changePassword = function(data, success, error) {
// $http.post(`/auth/password-set`, data).success(setScope(success)).error(error)
// }
})
var Release_Trunk = function (context) {
var math = ["Default"];
context.Label("General");
context.Tab();
var target = context.Enum("Target", "Native", "Unity", "Unreal Engine");
var language = "";
if (target === "Native") {
language = context.Enum("Language", "CPlusPlus", "CSharp");
} else if (target === "Unity") {
language = "CSharp";
} else if (target === "Unreal Engine") {
language = "CPlusPlus";
}
context.SetScope("TargetSettings");
if (target === "Unity") {
var unityVersion = context.Enum("Unity Version", "2018.x", "2019.x");
var unityComponents = context.Bool("Unity Components");
}
if (target === "Unreal Engine") {
var ueVersion = context.Enum("Unreal Engine Version", "4.18", "4.19", "4.20", "4.21", "4.22", "4.23", "4.24", "4.25");
// var ueBlueprintWrappers = context.Bool("Include Unreal Engine Blueprint Wrappers");
// if (ueBlueprintWrappers) {
// var ueComponents = context.Bool("Unreal Engine Blueprints Components");
// }
// context.Bool("Unreal Engine Code Samples");
}
if (target === "Native"){
if (language === "CPlusPlus"){
context.Bool("Exceptions");
}
}
context.Untab();
context.Space();
context.Label("Math");
context.Tab();
if (target === "Unity") {
if (unityComponents){
math = ["UnityEngine.Math"];
}else{
math.unshift("UnityEngine.Math");
}
}
context.Enum("Math Types", math);
context.Untab();
if (unityComponents){
context.Space();
context.Label("Components")
context.Tab();
context.SetScope("Components");
if (unityComponents){
var unityAltTracking = context.Bool("Alt Tracking Components");
var unityBracer = context.Bool("Bracer Components");
var unityDeviceNetwork = context.Bool("Device Network Components", true, unityAltTracking || unityBracer, true);
var unityAltEnvironment = context.Bool("Alt Environment Components", true, unityAltTracking, true);
var unityStorageClient = context.Bool("Storage Client Components", true, unityAltEnvironment, true);
}
context.SetScope("");
context.SetScope("TargetSettings");
context.Untab();
}
context.SetScope("");
context.Space();
context.Label("Libraries");
context.SetScope("Libraries");
context.Tab();
if (context.Bool("Device Network", true, unityDeviceNetwork, true)) {
context.Bool("Alt Tracking", true, unityAltTracking, true);
context.Bool("Bracer", true, unityBracer, true);
context.Bool("Hardware Extension Interface");
context.Bool("Radio Metrics");
}
if (context.Bool("Alt Environment Selector", true, unityAltEnvironment, true)) {
context.Bool("Alt Environment Horizontal Grid");
context.Bool("Alt Environment Pillars");
}
context.Bool("Tracking Alignment");
context.Bool("Storage Client", true, unityStorageClient, true);
context.Untab();
context.SetScope("");
context.Space();
context.Label("Platforms")
context.Tab();
context.Label("Windows")
context.Tab();
context.SetScope("Platforms.Windows");
var win32 = context.Bool("x86");
var win64 = context.Bool("x64");
context.Untab();
if (target !== "Unreal Engine") {
context.Label("UWP")
context.Tab();
context.SetScope("");
context.SetScope("Platforms.WinRT");
var uwpX86 = context.Bool("x86");
var uwpX64 = context.Bool("x64");
var uwpArmeabiV7a = context.Bool("armeabi-v7a");
if (!(target === "Unity" && unityVersion === "2018.x")) {
var uwpArm64V8a = context.Bool("arm64-v8a");
}
context.Untab();
}
context.SetScope("");
context.Label("Android");
context.Tab();
context.SetScope("Platforms.Android");
var android = context.Bool("aar");
context.SetScope("");
context.Untab();
context.Untab();
if (!(win32 || win64 || uwpX86 || uwpX64 || uwpArmeabiV7a || uwpArm64V8a || android)) {
context.Warning("Warning: No operation systems selected")
}
//context.Space();
}