diff --git a/build.sh b/build.sh new file mode 100755 index 00000000..61a514e6 --- /dev/null +++ b/build.sh @@ -0,0 +1,10 @@ +#!/bin/bash +./mvnw -ntp clean -P-webpack +./mvnw -ntp checkstyle:check +./mvnw -ntp com.github.eirslett:frontend-maven-plugin:install-node-and-npm -DnodeVersion=v12.16.1 -DnpmVersion=6.14.5 +./mvnw -ntp com.github.eirslett:frontend-maven-plugin:npm +./mvnw test +./mvnw -ntp verify -P-webpack -Pprod -DskipTests +docker-compose build +#docker login -u \$doApi -p \$doApi registry.digitalocean.com +docker push registry.digitalocean.com/nerdfortress/crusadetracker diff --git a/src/main/java/com/warhammer/domain/Army.java b/src/main/java/com/warhammer/domain/Army.java index beab4258..c0b567f5 100644 --- a/src/main/java/com/warhammer/domain/Army.java +++ b/src/main/java/com/warhammer/domain/Army.java @@ -1,12 +1,9 @@ package com.warhammer.domain; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence.*; -import javax.validation.constraints.*; - +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.HashSet; import java.util.Set; @@ -38,9 +35,15 @@ public class Army implements Serializable { @Column(name = "army_power_level") private Long armyPowerLevel; +// @Column(name = "army_race") +// private String armyRace; + @Column(name = "army_points") private Long armyPoints; +// @Column(name = "codex_specific_points") +// private Long codexSpecificPoints; + @Column(name = "army_points_or_pl") private Boolean armyPointsOrPL; @@ -227,6 +230,22 @@ public class Army implements Serializable { this.battlesWon = battlesWon; } +// public Long getCodexSpecificPoints() { +// return codexSpecificPoints; +// } +// +// public void setCodexSpecificPoints(Long codexSpecificPoints) { +// this.codexSpecificPoints = codexSpecificPoints; +// } +// +// public String getArmyRace() { +// return armyRace; +// } +// +// public void setArmyRace(String armyRace) { +// this.armyRace = armyRace; +// } + @Override public boolean equals(Object o) { if (this == o) { @@ -251,10 +270,12 @@ public class Army implements Serializable { ", armyDescription='" + getArmyDescription() + "'" + ", armyName='" + getArmyName() + "'" + ", armyFaction='" + getArmyFaction() + "'" + +// ", armyRace='" + getArmyRace() + "'" + ", armyPowerLevel=" + getArmyPowerLevel() + ", armyPoints=" + getArmyPoints() + ", armyPointsOrPL='" + isArmyPointsOrPL() + "'" + ", requisition=" + getRequisition() + +// ", armyCodexSpecificPoints=" + getCodexSpecificPoints() + ", battleTally=" + getBattleTally() + ", battlesWon=" + getBattlesWon() + "}"; diff --git a/src/main/java/com/warhammer/enums/ArmyRaces.java b/src/main/java/com/warhammer/enums/ArmyRaces.java new file mode 100644 index 00000000..870fda41 --- /dev/null +++ b/src/main/java/com/warhammer/enums/ArmyRaces.java @@ -0,0 +1,52 @@ +package com.warhammer.enums; + +import java.util.Arrays; +import java.util.List; + +public enum ArmyRaces { + ADEPTUS_ASTARTES("Space Marines", Arrays.asList("".split(","))), + GREY_KNIGHTS("Grey Knights", Arrays.asList("True Name Points".split(","))), + ADEPTAS_SORORITAS("Sisters of Battle", Arrays.asList("Saint Points, Martyr Points".split(","))), + ADEPTUS_CUSTODES("Custodians", Arrays.asList("".split(","))), + ADEPTUS_MECHANICUS("AdMech", Arrays.asList("Archeotech Parts".split(","))), + ASTRA_MILITARUM("Imperial Guard", Arrays.asList("".split(","))), + IMPERIAL_KNIGHTS("Imperial Knights", Arrays.asList("".split(","))), + CHAOS_DAEMONS("Daemons", Arrays.asList("".split(","))), + CHAOS_KNIGHTS("Chaos Knights", Arrays.asList("".split(","))), + CHAOS_SPACE_MARINES("Chaos Space Marines", Arrays.asList("".split(","))), + DEATH_GUARD("Death Guard", Arrays.asList("Virulence Points".split(","))), + THOUSAND_SONS("Thousand Sons", Arrays.asList("".split(","))), + CRAFTWORLDS("Eldaar", Arrays.asList("".split(","))), + DRUKHARI("Dark Eldaar", Arrays.asList("".split(","))), + YNNARI("Ynnari", Arrays.asList("".split(","))), + HARLEQUINS("Harlequins", Arrays.asList("".split(","))), + GENESTEALERS("Genestealers", Arrays.asList("".split(","))), + NECRONS("Necons", Arrays.asList("".split(","))), + ORKS("Orks", Arrays.asList("".split(","))), + TAU("Tau", Arrays.asList("".split(","))), + TYRANIDS("Tyranids", Arrays.asList("".split(","))); + + private String armyCommonName; + private List armyCodexSpecificPointName; + + ArmyRaces(String armyCommonName, List armyCodexSpecificPointName) { + this.armyCommonName = armyCommonName; + this.armyCodexSpecificPointName = armyCodexSpecificPointName; + } + + public String getArmyCommonName() { + return armyCommonName; + } + + public List getArmyCodexSpecificPointName() { + return armyCodexSpecificPointName; + } + + @Override + public String toString() { + return "ArmyRaces{" + + "armyCommonName='" + armyCommonName + '\'' + + ", armyCodexSpecificPointName=" + armyCodexSpecificPointName + + '}'; + } +} diff --git a/src/main/java/com/warhammer/service/impl/ArmyServiceImpl.java b/src/main/java/com/warhammer/service/impl/ArmyServiceImpl.java index 9ad03186..b2ea065c 100644 --- a/src/main/java/com/warhammer/service/impl/ArmyServiceImpl.java +++ b/src/main/java/com/warhammer/service/impl/ArmyServiceImpl.java @@ -1,24 +1,20 @@ package com.warhammer.service.impl; -import com.warhammer.domain.UnitArmy; -import com.warhammer.service.ArmyService; import com.warhammer.domain.Army; +import com.warhammer.domain.UnitArmy; import com.warhammer.repository.ArmyRepository; +import com.warhammer.service.ArmyService; import com.warhammer.service.dto.ArmyDTO; import com.warhammer.service.mapper.ArmyMapper; -import liquibase.pro.packaged.S; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.LinkedList; import java.util.List; import java.util.Optional; -import java.util.stream.Collector; import java.util.stream.Collectors; -import java.util.stream.Stream; /** * Service Implementation for managing {@link Army}. @@ -86,6 +82,12 @@ public class ArmyServiceImpl implements ArmyService { @Override public void delete(Long id) { log.debug("Request to delete Army : {}", id); + List units = this.findUnits(id); + if (!units.isEmpty()) { + units.forEach(unit -> + unitArmyService.delete(unit.getId()) + ); + } armyRepository.deleteById(id); } } diff --git a/src/main/java/com/warhammer/web/rest/ArmyResource.java b/src/main/java/com/warhammer/web/rest/ArmyResource.java index 73747328..df8972b1 100644 --- a/src/main/java/com/warhammer/web/rest/ArmyResource.java +++ b/src/main/java/com/warhammer/web/rest/ArmyResource.java @@ -3,19 +3,16 @@ package com.warhammer.web.rest; import com.warhammer.domain.UnitArmy; import com.warhammer.security.SecurityUtils; import com.warhammer.service.ArmyService; -import com.warhammer.web.rest.errors.BadRequestAlertException; import com.warhammer.service.dto.ArmyDTO; - +import com.warhammer.web.rest.errors.BadRequestAlertException; import io.github.jhipster.web.util.HeaderUtil; import io.github.jhipster.web.util.ResponseUtil; -import org.checkerframework.checker.nullness.Opt; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import javax.swing.text.html.Option; import javax.validation.Valid; import java.net.URI; import java.net.URISyntaxException; diff --git a/src/main/resources/config/application-dev.yml b/src/main/resources/config/application-dev.yml index a92fe409..29b817ef 100644 --- a/src/main/resources/config/application-dev.yml +++ b/src/main/resources/config/application-dev.yml @@ -54,10 +54,16 @@ spring: # Remove 'faker' if you do not want the sample data to be loaded automatically contexts: dev mail: - host: localhost - port: 1025 - username: - password: + host: mail.nerdfortress.dev + port: 587 + username: crusadetracker@send.nerdfortress.dev #Replace this field with your Gmail username. + password: '!k$yzY9h42@D' #Replace this field with your Gmail password/App password. + protocol: smtp + tls: true + properties.mail.smtp: + auth: true + starttls.enable: true + ssl.trust: mail.nerdfortress.dev messages: cache-duration: PT1S # 1 second, see the ISO 8601 standard thymeleaf: diff --git a/src/main/resources/config/application-prod.yml b/src/main/resources/config/application-prod.yml index 9530afec..d706ec42 100644 --- a/src/main/resources/config/application-prod.yml +++ b/src/main/resources/config/application-prod.yml @@ -50,10 +50,16 @@ spring: liquibase: contexts: prod mail: - host: localhost - port: 25 - username: - password: + host: mail.nerdfortress.dev + port: 587 + username: crusadetracker@send.nerdfortress.dev #Replace this field with your Gmail username. + password: '!k$yzY9h42@D' #Replace this field with your Gmail password/App password. + protocol: smtp + tls: true + properties.mail.smtp: + auth: true + starttls.enable: true + ssl.trust: mail.nerdfortress.dev thymeleaf: cache: true @@ -110,7 +116,7 @@ jhipster: token-validity-in-seconds: 86400 token-validity-in-seconds-for-remember-me: 2592000 mail: # specific JHipster mail property, for standard properties see MailProperties - base-url: http://my-server-url-to-change # Modify according to your server's URL + base-url: https://crusadetracker.nerdfortress.dev # Modify according to your server's URL metrics: logs: # Reports metrics in the logs enabled: false diff --git a/src/main/resources/config/application.yml b/src/main/resources/config/application.yml index 20539b0e..a23ef2b0 100644 --- a/src/main/resources/config/application.yml +++ b/src/main/resources/config/application.yml @@ -141,7 +141,7 @@ jhipster: # allow-credentials: true # max-age: 1800 mail: - from: crusadetracker@localhost + from: crusadetracker@send.nerdfortress.dev swagger: default-include-pattern: /api/.* title: crusadetracker API diff --git a/src/main/resources/config/liquibase/changelog/20210808083300_add_codex_points.xml b/src/main/resources/config/liquibase/changelog/20210808083300_add_codex_points.xml new file mode 100644 index 00000000..b09e2c1f --- /dev/null +++ b/src/main/resources/config/liquibase/changelog/20210808083300_add_codex_points.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + diff --git a/src/main/resources/config/liquibase/changelog/20210808130500_add_army_race.xml b/src/main/resources/config/liquibase/changelog/20210808130500_add_army_race.xml new file mode 100644 index 00000000..6e65aaa1 --- /dev/null +++ b/src/main/resources/config/liquibase/changelog/20210808130500_add_army_race.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + diff --git a/src/main/resources/config/liquibase/master.xml b/src/main/resources/config/liquibase/master.xml index b21ffdc8..2534f1e9 100644 --- a/src/main/resources/config/liquibase/master.xml +++ b/src/main/resources/config/liquibase/master.xml @@ -21,6 +21,8 @@ + + diff --git a/src/main/webapp/app/entities/army/army-detail-desktop.component.html b/src/main/webapp/app/entities/army/army-detail-desktop.component.html index a0239731..370550b3 100644 --- a/src/main/webapp/app/entities/army/army-detail-desktop.component.html +++ b/src/main/webapp/app/entities/army/army-detail-desktop.component.html @@ -61,21 +61,33 @@
-
CRUSADE CARDS
-
POWER RATING
-
CRUSADE POINTS
+
CRUSADE CARDS
+
RANK
+
POWER RATING
+
BATTLE HONOURS
+
BATTLE SCARS
+
CRUSADE POINTS
ADD TO FORCE
-
Unit {{rowIndex + 1}}:
-
+
+ Unit {{rowIndex + 1}}: {{ unit.unitName }}
-
+
+ {{ unit.rank }} +
+
{{ unit.unitPowerLevel }}
-
{{unit.crusadePointsUnit}}
+
+ {{ unit.battleHonours}} +
+
+ {{ unit.battleScars}} +
+
{{unit.crusadePointsUnit}}
diff --git a/src/main/webapp/app/entities/army/army-update.component.ts b/src/main/webapp/app/entities/army/army-update.component.ts index 0e286b2c..97e7c9fc 100644 --- a/src/main/webapp/app/entities/army/army-update.component.ts +++ b/src/main/webapp/app/entities/army/army-update.component.ts @@ -29,6 +29,7 @@ export class ArmyUpdateComponent implements OnInit { armyPoints: [], armyPointsOrPL: [], requisition: [], + // armyCodexSpecificPoints: [], battleTally: [], battlesWon: [], ownerId: [null, Validators.required], @@ -61,6 +62,7 @@ export class ArmyUpdateComponent implements OnInit { armyPoints: army.armyPoints, armyPointsOrPL: army.armyPointsOrPL, requisition: army.requisition, + // armyCodexSpecificPoints: army.armyCodexSpecificPoints, battleTally: army.battleTally, battlesWon: army.battlesWon, ownerId: army.ownerId, @@ -104,10 +106,12 @@ export class ArmyUpdateComponent implements OnInit { armyDescription: this.editForm.get(['armyDescription'])!.value, armyName: this.editForm.get(['armyName'])!.value, armyFaction: this.editForm.get(['armyFaction'])!.value, + // armyRace: this.editForm.get(['armyRace'])!.value, armyPowerLevel: this.editForm.get(['armyPowerLevel'])!.value, armyPoints: this.editForm.get(['armyPoints'])!.value, armyPointsOrPL: this.editForm.get(['armyPointsOrPL'])!.value, requisition: this.editForm.get(['requisition'])!.value, + // armyCodexSpecificPoints: this.editForm.get(['armyCodexSpecificPoints'])!.value, battleTally: this.editForm.get(['battleTally'])!.value, battlesWon: this.editForm.get(['battlesWon'])!.value, ownerId: this.editForm.get(['ownerId'])!.value, diff --git a/src/main/webapp/app/entities/force/force.component.ts b/src/main/webapp/app/entities/force/force.component.ts index d6368309..caeb7a33 100644 --- a/src/main/webapp/app/entities/force/force.component.ts +++ b/src/main/webapp/app/entities/force/force.component.ts @@ -19,11 +19,13 @@ export class ForceComponent implements OnInit { units?: UnitArmy[] | null; public isMobileResolution: boolean; responsiveService: ResponsiveService = new ResponsiveService(); + localUnits: IUnitArmy[] | []; constructor(protected dataUtils: JhiDataUtils, protected activatedRoute: ActivatedRoute, protected unitArmyService: UnitArmyService) { const localStorageList = localStorage.getItem('forceAddedListStored'); this.forceList = localStorageList ? JSON.parse(localStorageList) : []; this.isMobileResolution = this.responsiveService.getMobileStatus(); + this.localUnits = []; } ngOnInit(): void { @@ -32,7 +34,22 @@ export class ForceComponent implements OnInit { loadAll(): void { for (let lookupUnitId of this.forceList) { - this.unitArmyService.query(lookupUnitId).subscribe((res: HttpResponse) => (this.units = res.body)); + // @ts-ignore + this.unitArmyService.find(lookupUnitId).subscribe((res: HttpResponse) => (this.localUnits?.push(res.body))); + // this.unitArmyService.query(lookupUnitId).subscribe((res: HttpResponse) => (this.units = res.body)); + // console.log(this.units.)) + // console.log(lookupUnitId) + // console.log(this.units) + // this.unitArmyService.query(lookupUnitId).subscribe((res: HttpResponse) => (console.log(res.body))); + //this.units is full list of units + // @ts-ignore + // for (const _unit of this.units) { + // console.log(_unit.id) + // console.log(lookupUnitId) + // if (_unit.id === lookupUnitId) { + // this.localUnits.push(_unit); + // } + // } lookupUnitId = 1; } } diff --git a/src/main/webapp/app/entities/unit-army/unit-army-update.component.html b/src/main/webapp/app/entities/unit-army/unit-army-update.component.html index 7f2bdf86..b8764e25 100644 --- a/src/main/webapp/app/entities/unit-army/unit-army-update.component.html +++ b/src/main/webapp/app/entities/unit-army/unit-army-update.component.html @@ -17,6 +17,19 @@ formControlName="unitName"/>
+
+ + +
+