Initial import of Angular5 components services and modules
Change-Id: I3953f1fbf7d5697a1c6d432808dd17d816ec285a
diff --git a/web/gui2/src/main/webapp/app/detectbrowser.directive.ts b/web/gui2/src/main/webapp/app/detectbrowser.directive.ts
new file mode 100644
index 0000000..2c2b335
--- /dev/null
+++ b/web/gui2/src/main/webapp/app/detectbrowser.directive.ts
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2014-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Directive } from '@angular/core';
+import { FnService } from './fw/util/fn.service';
+import { LogService } from './log.service';
+import { OnosService } from './onos.service';
+
+/**
+ * ONOS GUI -- Detect Browser Directive
+ */
+@Directive({
+ selector: '[onosDetectBrowser]'
+})
+export class DetectBrowserDirective {
+ constructor(
+ private fs: FnService,
+ private log: LogService,
+ private onos: OnosService
+ ) {
+ log.debug('DetectBrowserDirective constructed');
+
+ const body: HTMLBodyElement = document.getElementsByTagName('body')[0];
+// let body = d3.select('body');
+ let browser = '';
+ if (fs.isChrome()) {
+ browser = 'chrome';
+ } else if (fs.isSafari()) {
+ browser = 'safari';
+ } else if (fs.isFirefox()) {
+ browser = 'firefox';
+ }
+ body.classList.add(browser);
+// body.classed(browser, true);
+ this.onos.browser = browser;
+
+ if (fs.isMobile()) {
+ body.classList.add('mobile');
+ this.onos.mobile = true;
+ }
+
+ this.log.debug('Detected browser is', fs.cap(browser));
+ }
+}