Implemented variable data instead of hardcoded

This commit is contained in:
Nikolaj Geisle
2021-09-30 13:09:04 +02:00
parent 61de77f6be
commit 4ea1f46f2b
8 changed files with 214 additions and 25 deletions

View File

@@ -51,7 +51,6 @@ function currentUserResource($q, $http, umbRequestHelper, umbDataFormatter) {
[{ permissionToCheck: permission }, { nodeId: id }])),
'Failed to check permission for item ' + id);
},
getCurrentUserLinkedLogins: function () {
return umbRequestHelper.resourcePromise(
@@ -61,6 +60,14 @@ function currentUserResource($q, $http, umbRequestHelper, umbDataFormatter) {
"GetCurrentUserLinkedLogins")),
'Server call failed for getting current users linked logins');
},
getUserData: function () {
return umbRequestHelper.resourcePromise(
$http.get(
umbRequestHelper.getApiUrl(
"currentUserApiBaseUrl",
"GetUserData")),
'Server call failed for getting current user data');
},
saveTourStatus: function (tourStatus) {

View File

@@ -1,23 +1,84 @@
(function() {
'use strict';
(function () {
'use strict';
function platformService() {
function platformService() {
const userAgentRules = [
['Aol', /AOLShield\/([0-9\._]+)/],
['Edge', /Edge\/([0-9\._]+)/],
['Edge-ios', /EdgiOS\/([0-9\._]+)/],
['Yandexbrowser', /YaBrowser\/([0-9\._]+)/],
['Kakaotalk', /KAKAOTALK\s([0-9\.]+)/],
['Samsung', /SamsungBrowser\/([0-9\.]+)/],
['Silk', /\bSilk\/([0-9._-]+)\b/],
['MiUI', /MiuiBrowser\/([0-9\.]+)$/],
['Beaker', /BeakerBrowser\/([0-9\.]+)/],
['Edge-chromium', /EdgA?\/([0-9\.]+)/],
['chromium-webview', /(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],
['Chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],
['PhantomJS', /PhantomJS\/([0-9\.]+)(:?\s|$)/],
['Crios', /CriOS\/([0-9\.]+)(:?\s|$)/],
['Firefox', /Firefox\/([0-9\.]+)(?:\s|$)/],
['FxiOS', /FxiOS\/([0-9\.]+)/],
['Opera-mini', /Opera Mini.*Version\/([0-9\.]+)/],
['Opera', /Opera\/([0-9\.]+)(?:\s|$)/],
['Opera', /OPR\/([0-9\.]+)(:?\s|$)/],
['IE', /Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],
['IE', /MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],
['IE', /MSIE\s(7\.0)/],
['BB10', /BB10;\sTouch.*Version\/([0-9\.]+)/],
['Android', /Android\s([0-9\.]+)/],
['iOS', /Version\/([0-9\._]+).*Mobile.*Safari.*/],
['Safari', /Version\/([0-9\._]+).*Safari/],
['Facebook', /FB[AS]V\/([0-9\.]+)/],
['Instagram', /Instagram\s([0-9\.]+)/],
['iOS-webview', /AppleWebKit\/([0-9\.]+).*Mobile/],
['iOS-webview', /AppleWebKit\/([0-9\.]+).*Gecko\)$/],
['Curl', /^curl\/([0-9\.]+)$/]
];
function isMac() {
return navigator.platform.toUpperCase().indexOf('MAC')>=0;
}
function isMac() {
return navigator.platform.toUpperCase().indexOf('MAC') >= 0;
}
////////////
var service = {
isMac: isMac
function getBrowserInfo(){
let data = matchUserAgent(navigator.userAgent);
console.log(data);
if(data){
const test = data[1];
return {
name : data[0],
version : test[1]
};
}
return null;
}
return service;
function matchUserAgent(ua) {
return (ua !== '' && userAgentRules.reduce (
(matched, [browser, regex]) => {
if (matched) {
return matched;
}
const uaMatch = regex.exec(ua);
return !!uaMatch && [browser, uaMatch];
},
false
)
);
}
}
////////////
angular.module('umbraco.services').factory('platformService', platformService);
var service = {
isMac: isMac,
getBrowserInfo : getBrowserInfo
};
return service;
}
angular.module('umbraco.services').factory('platformService', platformService);
})();

View File

@@ -1,7 +1,7 @@
(function () {
"use strict";
function HelpDrawerController($scope, $routeParams, $timeout, dashboardResource, localizationService, userService, eventsService, helpService, appState, tourService, $filter, editorState, notificationsService) {
function HelpDrawerController($scope, $routeParams, $timeout, dashboardResource, localizationService, userService, eventsService, helpService, appState, tourService, $filter, editorState, notificationsService, currentUserResource, platformService) {
var vm = this;
var evts = [];
@@ -22,8 +22,7 @@
vm.showDocTypeTour = false;
vm.docTypeTours = [];
vm.systemInfo = [{name : "Umbraco Version", data : "9.0.0-rc004"}, {name : "Operating System", data : "Windows"}, {name : "Current Culture", data : "en-US"}, {name : "Current UI Culture", data : "dn-DK"},
{name : "Webserver", data : "Kestrel"}, {name : "Packages", data : "Umbraco.TheStarterKit, uSync"}, {name : "Browser", data : "Electron"}]
vm.systemInfo = [];
vm.nodeName = '';
function startTour(tour) {
@@ -37,7 +36,14 @@
localizationService.localize("general_help").then(function(data){
vm.title = data;
});
currentUserResource.getUserData().then(function(systemInfo){
vm.systemInfo = systemInfo;
let browserInfo = platformService.getBrowserInfo();
if(browserInfo != null){
vm.systemInfo.push({name :"Browser", data: browserInfo.name + " " + browserInfo.version});
}
vm.systemInfo.push({name :"User OS", data: getPlatform()});
});
tourService.getGroupedTours().then(function(groupedTours) {
vm.tours = groupedTours;
getTourGroupCompletedPercentage();
@@ -208,13 +214,40 @@
});
copyText += "\n<!--EndFragment-->\n</body>\n</html>"
navigator.clipboard.writeText(copyText);
if(copyText != null || copyText != ""){
if(copyText != null){
notificationsService.success("Copied!", "Your system information is now in your clipboard");
}
else{
notificationsService.error("Sadge", "something failed");
}
}
function getPlatform() {
const allPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE', 'Android', 'iPhone', 'iPad', 'iPod'];
return allPlatforms.find(item => item === window.navigator.platform);
}
function getCurrentBrowser(){
let sBrowser, sUsrAg = window.navigator.userAgent;
if (sUsrAg.indexOf("Firefox") > -1) {
sBrowser = "Mozilla Firefox";
} else if (sUsrAg.indexOf("SamsungBrowser") > -1) {
sBrowser = "Samsung Internet";
} else if (sUsrAg.indexOf("Opera") > -1 || sUsrAg.indexOf("OPR") > -1) {
sBrowser = "Opera";
} else if (sUsrAg.indexOf("Trident") > -1) {
sBrowser = "Microsoft Internet Explorer";
} else if (sUsrAg.indexOf("Edge") > -1) {
sBrowser = "Microsoft Edge (Legacy)";
} else if (sUsrAg.indexOf("Edg") > -1) {
sBrowser = "Microsoft Edge (Chromium)";
} else if (sUsrAg.indexOf("Chrome") > -1) {
sBrowser = "Google Chrome or Chromium";
} else if (sUsrAg.indexOf("Safari") > -1) {
sBrowser = "Apple Safari";
} else {
sBrowser = "unknown";
}
return sBrowser;
}
evts.push(eventsService.on("appState.tour.complete", function (event, tour) {
tourService.getGroupedTours().then(function(groupedTours) {
vm.tours = groupedTours;