Fixed webapp build in production mode
authorSebastien Douheret <sebastien.douheret@iot.bzh>
Wed, 29 Nov 2017 20:43:37 +0000 (21:43 +0100)
committerSebastien Douheret <sebastien.douheret@iot.bzh>
Wed, 29 Nov 2017 21:38:14 +0000 (22:38 +0100)
Signed-off-by: Sebastien Douheret <sebastien.douheret@iot.bzh>
Makefile
scripts/install.sh
webapp/src/app/@theme/components/tiny-mce/tiny-mce.component.ts
webapp/src/app/pages/build/settings-modal/build-settings-modal.component.ts [deleted file]
webapp/src/app/pages/config/config-xds/config-xds.component.html
webapp/src/app/pages/config/config-xds/downloadXdsAgent.component.ts [deleted file]

index 99eee7c..e84775a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -61,11 +61,13 @@ ifeq ($(filter 1,$(RELEASE) $(REL)),)
        # disable compiler optimizations and inlining
        GO_GCFLAGS=-N -l
        BUILD_MODE="Debug mode"
+       WEBAPP_BUILD_RULE=build
 else
        # optimized code without debug info
        GO_LDFLAGS=-s -w
        GO_GCFLAGS=
        BUILD_MODE="Release mode"
+       WEBAPP_BUILD_RULE=build:prod
 endif
 
 ifeq ($(SUB_VERSION), )
@@ -108,10 +110,10 @@ distclean: clean
        cd $(ROOT_SRCDIR) && rm -rf $(LOCAL_BINDIR) ./tools ./glide.lock ./vendor ./*.zip ./webapp/node_modules ./webapp/dist
 
 webapp: webapp/install
-       (cd webapp && npm run build)
+       cd webapp && npm run $(WEBAPP_BUILD_RULE)
 
 webapp/debug:
-       (cd webapp && npm run watch)
+       cd webapp && npm run watch
 
 webapp/install:
        (cd webapp && npm install)
@@ -128,10 +130,12 @@ uninstall:
        export DESTDIR=$(DESTDIR) && export DESTDIR_WWW=$(DESTDIR_WWW) && $(ROOT_SRCDIR)/scripts/install.sh uninstall
 
 package: clean tools/syncthing vendor build
-       @mkdir -p $(PACKAGE_DIR)/xds-agent $(PACKAGE_DIR)/scripts
-       @cp -a $(LOCAL_BINDIR)/* $(PACKAGE_DIR)/xds-agent
-       @cp -r $(ROOT_SRCDIR)/conf.d $(ROOT_SRCDIR)/scripts $(PACKAGE_DIR)/xds-agent
-       cd $(PACKAGE_DIR) && zip -r $(ROOT_SRCDIR)/$(PACKAGE_ZIPFILE) ./xds-agent
+       @mkdir -p $(PACKAGE_DIR)/xds-agent/www $(PACKAGE_DIR)/scripts
+       @cp -a $(LOCAL_BINDIR)/* $(PACKAGE_DIR)/xds-agent/
+       @cp -a webapp/dist/* $(PACKAGE_DIR)/xds-agent/www/
+       @cp -r $(ROOT_SRCDIR)/conf.d $(ROOT_SRCDIR)/scripts $(PACKAGE_DIR)/xds-agent/
+       @cd $(PACKAGE_DIR) && zip -r $(ROOT_SRCDIR)/$(PACKAGE_ZIPFILE) ./xds-agent
+       @echo "### Package $(PACKAGE_ZIPFILE) has been successfuly built - $(BUILD_MODE)"
 
 .PHONY: package-all
 package-all:
index 357c5e8..6432e73 100755 (executable)
@@ -8,17 +8,17 @@ DESTDIR_WWW=${DESTDIR_WWW:-${DESTDIR}/www}
 ROOT_SRCDIR=$(cd $(dirname "$0")/.. && pwd)
 
 install() {
-    mkdir -p ${DESTDIR} && cp ${ROOT_SRCDIR}/bin/* ${DESTDIR} || exit 1
-    mkdir -p ${DESTDIR_WWW} && cp -a ${ROOT_SRCDIR}/webapp/dist/* ${DESTDIR_WWW} || exit 1
+    mkdir -p "${DESTDIR}" && cp "${ROOT_SRCDIR}/bin/*" "${DESTDIR}" || exit 1
+    mkdir -p "${DESTDIR_WWW}" && cp -a "${ROOT_SRCDIR}/webapp/dist/*" "${DESTDIR_WWW}" || exit 1
 
-    cp ${ROOT_SRCDIR}/conf.d/etc/xds-agent /etc/ || exit 1
-    cp ${ROOT_SRCDIR}/conf.d/etc/default/xds-agent /etc/default/ || exit 1
+    cp "${ROOT_SRCDIR}/conf.d/etc/xds-agent" /etc/ || exit 1
+    cp "${ROOT_SRCDIR}/conf.d/etc/default/xds-agent" /etc/default/ || exit 1
 
     FILE=/etc/profile.d/xds-agent.sh
-    sed -e "s;%%XDS_INSTALL_BIN_DIR%%;${DESTDIR};g" ${ROOT_SRCDIR}/conf.d/${FILE} > ${FILE} || exit 1
+    sed -e "s;%%XDS_INSTALL_BIN_DIR%%;${DESTDIR};g" "${ROOT_SRCDIR}/conf.d/${FILE}" > ${FILE} || exit 1
 
     FILE=/usr/lib/systemd/user/xds-agent.service
-    sed -e "s;/opt/AGL/xds/agent;${DESTDIR};g" ${ROOT_SRCDIR}/conf.d/${FILE} > ${FILE} || exit 1
+    sed -e "s;/opt/AGL/xds/agent;${DESTDIR};g" "${ROOT_SRCDIR}/conf.d/${FILE}" > ${FILE} || exit 1
 
     echo ""
     echo "To enable xds-agent service, execute:      systemctl --user enable xds-agent"
index c54685b..5b391ae 100644 (file)
@@ -1,3 +1,4 @@
+/* MODS_XDS: not used for now
 import { Component, OnDestroy, AfterViewInit, Output, EventEmitter, ElementRef } from '@angular/core';
 
 @Component({
@@ -31,3 +32,4 @@ export class TinyMCEComponent implements OnDestroy, AfterViewInit {
     tinymce.remove(this.editor);
   }
 }
+*/
diff --git a/webapp/src/app/pages/build/settings-modal/build-settings-modal.component.ts b/webapp/src/app/pages/build/settings-modal/build-settings-modal.component.ts
deleted file mode 100644 (file)
index fd1b904..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-import { Component, Input, ViewChild, OnInit } from '@angular/core';
-import { Observable } from 'rxjs/Observable';
-import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
-import { FormControl, FormGroup, Validators, ValidationErrors, FormBuilder, ValidatorFn, AbstractControl } from '@angular/forms';
-
-// Import RxJs required methods
-import 'rxjs/add/operator/map';
-import 'rxjs/add/operator/filter';
-import 'rxjs/add/operator/debounceTime';
-
-import { AlertService, IAlert } from '../../../@core-xds/services/alert.service';
-import { ProjectService, IProject, ProjectType, ProjectTypes } from '../../../@core-xds/services/project.service';
-import { XDSConfigService } from '../../../@core-xds/services/xds-config.service';
-
-
-@Component({
-  selector: 'xds-build-settings-modal',
-  templateUrl: 'build-settings-modal.component.html',
-  styleUrls: ['build-settings-modal.component.scss'],
-})
-export class BuildSettingsModalComponent implements OnInit {
-  // @Input('server-id') serverID: string;
-  private serverID: string;
-
-  cancelAction = false;
-  userEditedLabel = false;
-  projectTypes = ProjectTypes;
-
-  addProjectForm: FormGroup;
-  typeCtrl: FormControl;
-  pathCliCtrl: FormControl;
-  pathSvrCtrl: FormControl;
-
-  constructor(
-    private alert: AlertService,
-    private projectSvr: ProjectService,
-    private XdsConfigSvr: XDSConfigService,
-    private fb: FormBuilder,
-    private activeModal: NgbActiveModal,
-  ) {
-    // Define types (first one is special/placeholder)
-    this.projectTypes.unshift({ value: ProjectType.UNSET, display: '--Select a type--' });
-
-    this.typeCtrl = new FormControl(this.projectTypes[0].value, this.validatorProjType);
-    this.pathCliCtrl = new FormControl('', this.validatorProjPath);
-    this.pathSvrCtrl = new FormControl({ value: '', disabled: true }, this.validatorProjPath);
-
-    this.addProjectForm = fb.group({
-      type: this.typeCtrl,
-      pathCli: this.pathCliCtrl,
-      pathSvr: this.pathSvrCtrl,
-      label: ['', Validators.nullValidator],
-    });
-  }
-
-
-  ngOnInit() {
-    // Update server ID
-    this.serverID = this.XdsConfigSvr.getCurServer().id;
-    this.XdsConfigSvr.onCurServer().subscribe(svr => this.serverID = svr.id);
-
-    // Auto create label name
-    this.pathCliCtrl.valueChanges
-      .debounceTime(100)
-      .filter(n => n)
-      .map(n => {
-        const last = n.split('/');
-        let nm = n;
-        if (last.length > 0) {
-          nm = last.pop();
-          if (nm === '' && last.length > 0) {
-            nm = last.pop();
-          }
-        }
-        return 'Project_' + nm;
-      })
-      .subscribe(value => {
-        if (value && !this.userEditedLabel) {
-          this.addProjectForm.patchValue({ label: value });
-        }
-      });
-
-    // Handle disabling of Server path
-    this.typeCtrl.valueChanges
-      .debounceTime(500)
-      .subscribe(valType => {
-        const dis = (valType === String(ProjectType.SYNCTHING));
-        this.pathSvrCtrl.reset({ value: '', disabled: dis });
-      });
-  }
-
-  closeModal() {
-    this.activeModal.close();
-  }
-
-  onKeyLabel(event: any) {
-    this.userEditedLabel = (this.addProjectForm.value.label !== '');
-  }
-
-  onChangeLocalProject(e) {
-  }
-
-  onSubmit() {
-    if (this.cancelAction) {
-      return;
-    }
-
-    const formVal = this.addProjectForm.value;
-
-    const type = formVal['type'].value;
-    this.projectSvr.add({
-      serverId: this.serverID,
-      label: formVal['label'],
-      pathClient: formVal['pathCli'],
-      pathServer: formVal['pathSvr'],
-      type: formVal['type'],
-      // FIXME: allow to set defaultSdkID from New Project config panel
-    })
-      .subscribe(prj => {
-        this.alert.info('Project ' + prj.label + ' successfully created.');
-        this.closeModal();
-
-        // Reset Value for the next creation
-        this.addProjectForm.reset();
-        const selectedType = this.projectTypes[0].value;
-        this.addProjectForm.patchValue({ type: selectedType });
-
-      },
-      err => {
-        this.alert.error(err, 60);
-        this.closeModal();
-      });
-  }
-
-  private validatorProjType(g: FormGroup): ValidationErrors | null {
-    return (g.value !== ProjectType.UNSET) ? null : { validatorProjType: { valid: false } };
-  }
-
-  private validatorProjPath(g: FormGroup): ValidationErrors | null {
-    return (g.disabled || g.value !== '') ? null : { validatorProjPath: { valid: false } };
-  }
-
-}
index e4bd0d5..a2506ce 100644 (file)
@@ -10,7 +10,7 @@
               <input type="url" class="form-control" [ngClass]="{ 'form-control-danger': !server?.connected }" id="inputServerUrl" [(ngModel)]="xdsServerUrl" name="serverUrl" (ngModelChange)="configFormChanged=true" [disabled]="applying">
             </div>
             <div class="col-sm-1">
-              <span class="fa fa-fw fa-exchange faa-burst fa-size-x2 vcenter" [ngClass]="{'animated': applying}" [style.color]="(server?.connected && !animated)?'green':'red'" ></span>
+              <span class="fa fa-fw fa-exchange faa-burst fa-size-x2 vcenter" [ngClass]="{'animated': applying}" [style.color]="(server?.connected && !applying)?'green':'red'" ></span>
             </div>
           </div>
           <div class="form-group row">
diff --git a/webapp/src/app/pages/config/config-xds/downloadXdsAgent.component.ts b/webapp/src/app/pages/config/config-xds/downloadXdsAgent.component.ts
deleted file mode 100644 (file)
index 556316c..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-import { Component } from '@angular/core';
-
-@Component({
-    selector: 'xds-dwnl-agent',
-    template: ``,
-    /* FIXME SEB: to be reworked
-    template: `
-        <template #popTemplate>
-            <h3>Install xds-agent:</h3>
-            <ul>
-                <li>On Linux machine <a href="{{url_OS_Linux}}" target="_blank">
-                <span class="fa fa-external-link"></span></a></li>
-
-                <li>On Windows machine <a href="{{url_OS_Other}}" target="_blank"><span class="fa fa-external-link"></span></a></li>
-
-                <li>On MacOS machine <a href="{{url_OS_Other}}" target="_blank"><span class="fa fa-external-link"></span></a></li>
-            </ul>
-            <button type="button" class="btn btn-sm" (click)="pop.hide()"> Cancel </button>
-        </template>
-        <button type="button" class="btn btn-link fa fa-download fa-size-x2"
-            [popover]="popTemplate"
-            #pop="bs-popover"
-            placement="left">
-        </button>
-        `,
-    styles: [`
-        .fa-size-x2 {
-            font-size: 20px;
-        }
-    `],
-    */
-})
-
-export class DwnlAgentComponent {
-
-    public url_OS_Linux = 'https://en.opensuse.org/LinuxAutomotive#Installation_AGL_XDS';
-    public url_OS_Other = 'https://github.com/iotbzh/xds-agent#how-to-install-on-other-platform';
-}