From ba11023be11857187d00dcc8339ec8e57896d979 Mon Sep 17 00:00:00 2001 From: jenkins Date: Wed, 4 Oct 2017 11:07:24 +0200 Subject: [PATCH 01/54] [GITFLOW]updating develop poms to master versions to avoid merge conflicts --- sormas-api/pom.xml | 2 +- sormas-app/pom.xml | 2 +- sormas-backend/pom.xml | 2 +- sormas-base/dependencies/bundles.pom | 2 +- sormas-base/dependencies/gf-modules.pom | 2 +- sormas-base/dependencies/serverlibs.pom | 2 +- sormas-base/pom.xml | 2 +- sormas-ear/pom.xml | 2 +- sormas-rest/pom.xml | 2 +- sormas-ui/pom.xml | 2 +- sormas-widgetset/pom.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/sormas-api/pom.xml b/sormas-api/pom.xml index d28c04e46f8..5f76c92896c 100644 --- a/sormas-api/pom.xml +++ b/sormas-api/pom.xml @@ -2,7 +2,7 @@ de.symeda.sormas sormas-base - 0.6.0-SNAPSHOT + 0.5.1 ../sormas-base 4.0.0 diff --git a/sormas-app/pom.xml b/sormas-app/pom.xml index 67c299ff356..54ccbd96a8e 100644 --- a/sormas-app/pom.xml +++ b/sormas-app/pom.xml @@ -3,7 +3,7 @@ sormas-base de.symeda.sormas - 0.6.0-SNAPSHOT + 0.5.1 ../sormas-base 4.0.0 diff --git a/sormas-backend/pom.xml b/sormas-backend/pom.xml index 59dc6e45e28..7234736f964 100644 --- a/sormas-backend/pom.xml +++ b/sormas-backend/pom.xml @@ -3,7 +3,7 @@ sormas-base de.symeda.sormas - 0.6.0-SNAPSHOT + 0.5.1 ../sormas-base 4.0.0 diff --git a/sormas-base/dependencies/bundles.pom b/sormas-base/dependencies/bundles.pom index 70f7425f789..683cf798556 100644 --- a/sormas-base/dependencies/bundles.pom +++ b/sormas-base/dependencies/bundles.pom @@ -9,7 +9,7 @@ sormas-base de.symeda.sormas - 0.6.0-SNAPSHOT + 0.5.1 ../ diff --git a/sormas-base/dependencies/gf-modules.pom b/sormas-base/dependencies/gf-modules.pom index 63cd35fd7c4..a6083b294d0 100644 --- a/sormas-base/dependencies/gf-modules.pom +++ b/sormas-base/dependencies/gf-modules.pom @@ -8,7 +8,7 @@ sormas-base de.symeda.sormas - 0.6.0-SNAPSHOT + 0.5.1 ../ diff --git a/sormas-base/dependencies/serverlibs.pom b/sormas-base/dependencies/serverlibs.pom index 427e2204b21..85c30673093 100644 --- a/sormas-base/dependencies/serverlibs.pom +++ b/sormas-base/dependencies/serverlibs.pom @@ -8,7 +8,7 @@ sormas-base de.symeda.sormas - 0.6.0-SNAPSHOT + 0.5.1 ../ diff --git a/sormas-base/pom.xml b/sormas-base/pom.xml index f40ca617e93..3230dc12e16 100644 --- a/sormas-base/pom.xml +++ b/sormas-base/pom.xml @@ -5,7 +5,7 @@ de.symeda.sormas sormas-base pom - 0.6.0-SNAPSHOT + 0.5.1 3.0 diff --git a/sormas-ear/pom.xml b/sormas-ear/pom.xml index ad7dd843a8e..bd6a04348df 100644 --- a/sormas-ear/pom.xml +++ b/sormas-ear/pom.xml @@ -3,7 +3,7 @@ de.symeda.sormas sormas-base - 0.6.0-SNAPSHOT + 0.5.1 ../sormas-base diff --git a/sormas-rest/pom.xml b/sormas-rest/pom.xml index 1ce3b466fbc..f4fe48d7780 100644 --- a/sormas-rest/pom.xml +++ b/sormas-rest/pom.xml @@ -3,7 +3,7 @@ de.symeda.sormas sormas-base - 0.6.0-SNAPSHOT + 0.5.1 ../sormas-base diff --git a/sormas-ui/pom.xml b/sormas-ui/pom.xml index 5d171378436..82be8af9f67 100644 --- a/sormas-ui/pom.xml +++ b/sormas-ui/pom.xml @@ -3,7 +3,7 @@ sormas-base de.symeda.sormas - 0.6.0-SNAPSHOT + 0.5.1 ../sormas-base 4.0.0 diff --git a/sormas-widgetset/pom.xml b/sormas-widgetset/pom.xml index 6c81a807fc6..0ccff887f09 100644 --- a/sormas-widgetset/pom.xml +++ b/sormas-widgetset/pom.xml @@ -3,7 +3,7 @@ sormas-base de.symeda.sormas - 0.6.0-SNAPSHOT + 0.5.1 ../sormas-base 4.0.0 From dbc27c599db89009708ca7422f0e8013deb090b8 Mon Sep 17 00:00:00 2001 From: jenkins Date: Wed, 4 Oct 2017 11:07:25 +0200 Subject: [PATCH 02/54] [GITFLOW]Updating develop poms back to pre merge state --- sormas-api/pom.xml | 2 +- sormas-app/pom.xml | 2 +- sormas-backend/pom.xml | 2 +- sormas-base/dependencies/bundles.pom | 2 +- sormas-base/dependencies/gf-modules.pom | 2 +- sormas-base/dependencies/serverlibs.pom | 2 +- sormas-base/pom.xml | 2 +- sormas-ear/pom.xml | 2 +- sormas-rest/pom.xml | 2 +- sormas-ui/pom.xml | 2 +- sormas-widgetset/pom.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/sormas-api/pom.xml b/sormas-api/pom.xml index 5f76c92896c..d28c04e46f8 100644 --- a/sormas-api/pom.xml +++ b/sormas-api/pom.xml @@ -2,7 +2,7 @@ de.symeda.sormas sormas-base - 0.5.1 + 0.6.0-SNAPSHOT ../sormas-base 4.0.0 diff --git a/sormas-app/pom.xml b/sormas-app/pom.xml index 54ccbd96a8e..67c299ff356 100644 --- a/sormas-app/pom.xml +++ b/sormas-app/pom.xml @@ -3,7 +3,7 @@ sormas-base de.symeda.sormas - 0.5.1 + 0.6.0-SNAPSHOT ../sormas-base 4.0.0 diff --git a/sormas-backend/pom.xml b/sormas-backend/pom.xml index 7234736f964..59dc6e45e28 100644 --- a/sormas-backend/pom.xml +++ b/sormas-backend/pom.xml @@ -3,7 +3,7 @@ sormas-base de.symeda.sormas - 0.5.1 + 0.6.0-SNAPSHOT ../sormas-base 4.0.0 diff --git a/sormas-base/dependencies/bundles.pom b/sormas-base/dependencies/bundles.pom index 683cf798556..70f7425f789 100644 --- a/sormas-base/dependencies/bundles.pom +++ b/sormas-base/dependencies/bundles.pom @@ -9,7 +9,7 @@ sormas-base de.symeda.sormas - 0.5.1 + 0.6.0-SNAPSHOT ../ diff --git a/sormas-base/dependencies/gf-modules.pom b/sormas-base/dependencies/gf-modules.pom index a6083b294d0..63cd35fd7c4 100644 --- a/sormas-base/dependencies/gf-modules.pom +++ b/sormas-base/dependencies/gf-modules.pom @@ -8,7 +8,7 @@ sormas-base de.symeda.sormas - 0.5.1 + 0.6.0-SNAPSHOT ../ diff --git a/sormas-base/dependencies/serverlibs.pom b/sormas-base/dependencies/serverlibs.pom index 85c30673093..427e2204b21 100644 --- a/sormas-base/dependencies/serverlibs.pom +++ b/sormas-base/dependencies/serverlibs.pom @@ -8,7 +8,7 @@ sormas-base de.symeda.sormas - 0.5.1 + 0.6.0-SNAPSHOT ../ diff --git a/sormas-base/pom.xml b/sormas-base/pom.xml index 3230dc12e16..f40ca617e93 100644 --- a/sormas-base/pom.xml +++ b/sormas-base/pom.xml @@ -5,7 +5,7 @@ de.symeda.sormas sormas-base pom - 0.5.1 + 0.6.0-SNAPSHOT 3.0 diff --git a/sormas-ear/pom.xml b/sormas-ear/pom.xml index bd6a04348df..ad7dd843a8e 100644 --- a/sormas-ear/pom.xml +++ b/sormas-ear/pom.xml @@ -3,7 +3,7 @@ de.symeda.sormas sormas-base - 0.5.1 + 0.6.0-SNAPSHOT ../sormas-base diff --git a/sormas-rest/pom.xml b/sormas-rest/pom.xml index f4fe48d7780..1ce3b466fbc 100644 --- a/sormas-rest/pom.xml +++ b/sormas-rest/pom.xml @@ -3,7 +3,7 @@ de.symeda.sormas sormas-base - 0.5.1 + 0.6.0-SNAPSHOT ../sormas-base diff --git a/sormas-ui/pom.xml b/sormas-ui/pom.xml index 82be8af9f67..5d171378436 100644 --- a/sormas-ui/pom.xml +++ b/sormas-ui/pom.xml @@ -3,7 +3,7 @@ sormas-base de.symeda.sormas - 0.5.1 + 0.6.0-SNAPSHOT ../sormas-base 4.0.0 diff --git a/sormas-widgetset/pom.xml b/sormas-widgetset/pom.xml index 0ccff887f09..6c81a807fc6 100644 --- a/sormas-widgetset/pom.xml +++ b/sormas-widgetset/pom.xml @@ -3,7 +3,7 @@ sormas-base de.symeda.sormas - 0.5.1 + 0.6.0-SNAPSHOT ../sormas-base 4.0.0 From 990ccf037b2e6f386564997d5ca5e52f0fcdb9cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=A9=20Strysewske?= Date: Thu, 5 Oct 2017 15:02:33 +0200 Subject: [PATCH 03/54] #347 - Removed illLocation --- .../sormas/api/symptoms/SymptomsDto.java | 26 ------- .../de/symeda/sormas/app/CaseBackendTest.java | 4 -- .../symeda/sormas/app/ContactBackendTest.java | 2 - .../symeda/sormas/app/TestEntityCreator.java | 2 - .../sormas/app/backend/symptoms/Symptoms.java | 30 +------- .../backend/symptoms/SymptomsDtoHelper.java | 7 -- .../sormas/app/caze/SymptomsEditForm.java | 15 ---- .../layout/case_symptoms_fragment_layout.xml | 72 ------------------- .../sormas/backend/caze/CaseService.java | 1 - .../sormas/backend/symptoms/Symptoms.java | 40 ----------- .../backend/symptoms/SymptomsFacadeEjb.java | 10 --- .../sormas/backend/visit/VisitService.java | 1 - sormas-base/sql/sormas_schema.sql | 12 +++- .../symeda/sormas/ui/caze/CaseController.java | 2 +- .../sormas/ui/symptoms/SymptomsForm.java | 31 +------- .../symeda/sormas/ui/visit/VisitEditForm.java | 2 +- 16 files changed, 18 insertions(+), 239 deletions(-) diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/symptoms/SymptomsDto.java b/sormas-api/src/main/java/de/symeda/sormas/api/symptoms/SymptomsDto.java index 0a4e0e12b7d..c5e10262f51 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/symptoms/SymptomsDto.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/symptoms/SymptomsDto.java @@ -4,7 +4,6 @@ import de.symeda.sormas.api.DataTransferObject; import de.symeda.sormas.api.Disease; -import de.symeda.sormas.api.location.LocationDto; import de.symeda.sormas.api.utils.Diseases; public class SymptomsDto extends DataTransferObject { @@ -74,19 +73,12 @@ public class SymptomsDto extends DataTransferObject { public static final String OTHER_HEMORRHAGIC_SYMPTOMS_TEXT = "otherHemorrhagicSymptomsText"; public static final String SYMPTOMS_COMMENTS = "symptomsComments"; - public static final String ILLLOCATION = "illLocation"; - public static final String ILLLOCATION_FROM = "illLocationFrom"; - public static final String ILLLOCATION_TO = "illLocationTo"; public static final String SYMPTOMATIC = "symptomatic"; private Boolean symptomatic; private Date onsetDate; private String onsetSymptom; - private LocationDto illLocation; - private Date illLocationFrom; - private Date illLocationTo; - @Diseases({Disease.EVD,Disease.LASSA,Disease.AVIAN_INFLUENCA,Disease.CSM,Disease.CHOLERA,Disease.MEASLES,Disease.YELLOW_FEVER,Disease.DENGUE,Disease.OTHER}) private Float temperature; @Diseases({Disease.EVD,Disease.LASSA,Disease.AVIAN_INFLUENCA,Disease.CSM,Disease.CHOLERA,Disease.MEASLES,Disease.YELLOW_FEVER,Disease.DENGUE,Disease.OTHER}) @@ -218,24 +210,6 @@ public String getOnsetSymptom() { public void setOnsetSymptom(String onsetSymptom) { this.onsetSymptom = onsetSymptom; } - public LocationDto getIllLocation() { - return illLocation; - } - public void setIllLocation(LocationDto illLocation) { - this.illLocation = illLocation; - } - public Date getIllLocationFrom() { - return illLocationFrom; - } - public void setIllLocationFrom(Date illLocationFrom) { - this.illLocationFrom = illLocationFrom; - } - public Date getIllLocationTo() { - return illLocationTo; - } - public void setIllLocationTo(Date illLocationTo) { - this.illLocationTo = illLocationTo; - } public Float getTemperature() { return temperature; } diff --git a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/CaseBackendTest.java b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/CaseBackendTest.java index d72b3340844..5da01972606 100644 --- a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/CaseBackendTest.java +++ b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/CaseBackendTest.java @@ -132,14 +132,12 @@ public void shouldMergeAsExpected() throws DaoException { mergeCase.setPerson((Person) caze.getPerson().clone()); mergeCase.getPerson().setAddress((Location) caze.getPerson().getAddress().clone()); mergeCase.setSymptoms((Symptoms) caze.getSymptoms().clone()); - mergeCase.getSymptoms().setIllLocation((Location) caze.getSymptoms().getIllLocation().clone()); mergeCase.setHospitalization((Hospitalization) caze.getHospitalization().clone()); mergeCase.setEpiData((EpiData) caze.getEpiData().clone()); mergeCase.setId(null); mergeCase.getPerson().setId(null); mergeCase.getPerson().getAddress().setId(null); mergeCase.getSymptoms().setId(null); - mergeCase.getSymptoms().getIllLocation().setId(null); mergeCase.getHospitalization().setId(null); mergeCase.getEpiData().setId(null); @@ -228,14 +226,12 @@ public void shouldCreateSyncLogEntry() throws DaoException { mergeCase.setPerson((Person) caze.getPerson().clone()); mergeCase.getPerson().setAddress((Location) caze.getPerson().getAddress().clone()); mergeCase.setSymptoms((Symptoms) caze.getSymptoms().clone()); - mergeCase.getSymptoms().setIllLocation((Location) caze.getSymptoms().getIllLocation().clone()); mergeCase.setHospitalization((Hospitalization) caze.getHospitalization().clone()); mergeCase.setEpiData((EpiData) caze.getEpiData().clone()); mergeCase.setId(null); mergeCase.getPerson().setId(null); mergeCase.getPerson().getAddress().setId(null); mergeCase.getSymptoms().setId(null); - mergeCase.getSymptoms().getIllLocation().setId(null); mergeCase.getHospitalization().setId(null); mergeCase.getEpiData().setId(null); mergeCase.setEpidNumber("ServerEpidNumber"); diff --git a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/ContactBackendTest.java b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/ContactBackendTest.java index 69a37b18c06..be551b3984e 100644 --- a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/ContactBackendTest.java +++ b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/ContactBackendTest.java @@ -85,11 +85,9 @@ public void shouldMergeAsExpected() throws DaoException { mergeVisit.setPerson((Person) visit.getPerson().clone()); mergeVisit.getPerson().setAddress((Location) visit.getPerson().getAddress().clone()); mergeVisit.setSymptoms((Symptoms) visit.getSymptoms().clone()); - mergeVisit.getSymptoms().setIllLocation((Location) visit.getSymptoms().getIllLocation().clone()); mergeVisit.setId(null); mergeVisit.getPerson().getAddress().setId(null); mergeVisit.getSymptoms().setId(null); - mergeVisit.getSymptoms().getIllLocation().setId(null); mergeVisit.setVisitStatus(VisitStatus.COOPERATIVE); diff --git a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/TestEntityCreator.java b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/TestEntityCreator.java index 5a91a02e84b..1c7c9e78a98 100644 --- a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/TestEntityCreator.java +++ b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/TestEntityCreator.java @@ -216,8 +216,6 @@ public static EpiDataTravel createEpiDataTravel(Case caze) { public static Visit createVisit(Contact contact) throws DaoException { Visit visit = DatabaseHelper.getVisitDao().build(contact.getUuid()); Symptoms symptoms = DatabaseHelper.getSymptomsDao().build(); - Location illLocation = DatabaseHelper.getLocationDao().build(); - symptoms.setIllLocation(illLocation); visit.setSymptoms(symptoms); visit.setVisitUser(ConfigProvider.getUser()); diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/symptoms/Symptoms.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/symptoms/Symptoms.java index 233c27a50cd..7613cc7366d 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/symptoms/Symptoms.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/symptoms/Symptoms.java @@ -36,11 +36,11 @@ public class Symptoms extends AbstractDomainObject { @DatabaseField private Boolean symptomatic; - @DatabaseField(foreign = true, foreignAutoRefresh = true, maxForeignAutoRefreshLevel = 2) + @DatabaseField(foreign = true) private Location illLocation; - @DatabaseField(dataType = DataType.DATE_LONG) + @DatabaseField private Date illLocationFrom; - @DatabaseField(dataType = DataType.DATE_LONG) + @DatabaseField private Date illLocationTo; @Column(columnDefinition = "float8") @@ -177,30 +177,6 @@ public void setTemperatureSource(TemperatureSource temperatureSource) { this.temperatureSource = temperatureSource; } - public Location getIllLocation() { - return illLocation; - } - - public void setIllLocation(Location illLocation) { - this.illLocation = illLocation; - } - - public Date getIllLocationFrom() { - return illLocationFrom; - } - - public void setIllLocationFrom(Date illLocationFrom) { - this.illLocationFrom = illLocationFrom; - } - - public Date getIllLocationTo() { - return illLocationTo; - } - - public void setIllLocationTo(Date illLocationTo) { - this.illLocationTo = illLocationTo; - } - public SymptomState getFever() { return fever; } diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/symptoms/SymptomsDtoHelper.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/symptoms/SymptomsDtoHelper.java index f0fd2342341..af93bede6ea 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/symptoms/SymptomsDtoHelper.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/symptoms/SymptomsDtoHelper.java @@ -96,9 +96,6 @@ public void fillInnerFromDto(Symptoms a, SymptomsDto b) { a.setThrobocytopenia(b.getThrobocytopenia()); a.setUnexplainedBleeding(b.getUnexplainedBleeding()); a.setVomiting(b.getVomiting()); - a.setIllLocation(locationHelper.fillOrCreateFromDto(a.getIllLocation(), b.getIllLocation())); - a.setIllLocationFrom(b.getIllLocationFrom()); - a.setIllLocationTo(b.getIllLocationTo()); a.setBackache(b.getBackache()); a.setEyesBleeding(b.getEyesBleeding()); a.setJaundice(b.getJaundice()); @@ -162,10 +159,6 @@ public void fillInnerFromAdo(SymptomsDto a, Symptoms b) { a.setThrobocytopenia(b.getThrobocytopenia()); a.setUnexplainedBleeding(b.getUnexplainedBleeding()); a.setVomiting(b.getVomiting()); - Location location = DatabaseHelper.getLocationDao().queryForId(b.getIllLocation().getId()); - a.setIllLocation(locationHelper.adoToDto(location)); - a.setIllLocationFrom(b.getIllLocationFrom()); - a.setIllLocationTo(b.getIllLocationTo()); a.setBackache(b.getBackache()); a.setEyesBleeding(b.getEyesBleeding()); a.setJaundice(b.getJaundice()); diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/SymptomsEditForm.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/SymptomsEditForm.java index 83232797c92..29607a97427 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/SymptomsEditForm.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/SymptomsEditForm.java @@ -202,23 +202,8 @@ public void onClick(View v) { }); if (!forVisit) { - binding.symptomsIllLocationLayout.setVisibility(View.VISIBLE); - // ==================== IllLocation =============== - LocationDialog.addLocationField(getActivity(), symptoms.getIllLocation(), binding.symptomsIllLocation, binding.formCpBtnAddress, new Consumer() { - @Override - public void accept(Object parameter) { - if (parameter instanceof Location) { - binding.symptomsIllLocation.setValue(parameter.toString()); - binding.getSymptoms().setIllLocation(((Location) parameter)); - } - } - }); - - binding.symptomsIllLocationFrom.initialize(this); - binding.symptomsIllLocationTo.initialize(this); SymptomsValidator.setRequiredHintsForCaseSymptoms(binding); } else { - binding.symptomsIllLocationLayout.setVisibility(View.GONE); SymptomsValidator.setRequiredHintsForVisitSymptoms(visitCooperative, binding); } diff --git a/sormas-app/app/src/main/res/layout/case_symptoms_fragment_layout.xml b/sormas-app/app/src/main/res/layout/case_symptoms_fragment_layout.xml index 5ac7e157f0d..1b1da99ce33 100644 --- a/sormas-app/app/src/main/res/layout/case_symptoms_fragment_layout.xml +++ b/sormas-app/app/src/main/res/layout/case_symptoms_fragment_layout.xml @@ -475,78 +475,6 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/caze/CaseService.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/caze/CaseService.java index 23f9a6a5f81..cbdf49a3cbc 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/caze/CaseService.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/caze/CaseService.java @@ -193,7 +193,6 @@ public Predicate createDateFilter(CriteriaBuilder cb, CriteriaQuery cq, From symptoms = casePath.join(Case.SYMPTOMS, JoinType.LEFT); dateFilter = cb.or(dateFilter, cb.greaterThan(symptoms.get(AbstractDomainObject.CHANGE_DATE), date)); - dateFilter = cb.or(dateFilter, cb.greaterThan(symptoms.join(Symptoms.ILLLOCATION, JoinType.LEFT).get(Location.CHANGE_DATE), date)); Join hospitalization = casePath.join(Case.HOSPITALIZATION, JoinType.LEFT); dateFilter = cb.or(dateFilter, cb.greaterThan(hospitalization.get(AbstractDomainObject.CHANGE_DATE), date)); diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/symptoms/Symptoms.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/symptoms/Symptoms.java index 8276b282231..a663b716448 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/symptoms/Symptoms.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/symptoms/Symptoms.java @@ -2,12 +2,10 @@ import java.util.Date; -import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; -import javax.persistence.OneToOne; import javax.persistence.Temporal; import javax.persistence.TemporalType; @@ -15,7 +13,6 @@ import de.symeda.sormas.api.symptoms.SymptomState; import de.symeda.sormas.api.symptoms.TemperatureSource; import de.symeda.sormas.backend.common.AbstractDomainObject; -import de.symeda.sormas.backend.location.Location; @Entity @Audited @@ -24,17 +21,10 @@ public class Symptoms extends AbstractDomainObject { private static final long serialVersionUID = 1467852910743225822L; public static final String ONSET_DATE = "onsetDate"; - public static final String ILLLOCATION = "illLocation"; - public static final String ILLLOCATION_FROM = "illLocationFrom"; - public static final String ILLLOCATION_TO = "illLocationTo"; private Date onsetDate; private String onsetSymptom; private Boolean symptomatic; - - private Location illLocation; - private Date illLocationFrom; - private Date illLocationTo; private Float temperature; private TemperatureSource temperatureSource; @@ -120,36 +110,6 @@ public void setTemperatureSource(TemperatureSource temperatureSource) { this.temperatureSource = temperatureSource; } - @OneToOne(cascade = CascadeType.ALL) - public Location getIllLocation() { - if (illLocation == null) { - illLocation = new Location(); - } - return illLocation; - } - - public void setIllLocation(Location illLocation) { - this.illLocation = illLocation; - } - - @Temporal(TemporalType.DATE) - public Date getIllLocationFrom() { - return illLocationFrom; - } - - public void setIllLocationFrom(Date illLocationFrom) { - this.illLocationFrom = illLocationFrom; - } - - @Temporal(TemporalType.DATE) - public Date getIllLocationTo() { - return illLocationTo; - } - - public void setIllLocationTo(Date illLocationTo) { - this.illLocationTo = illLocationTo; - } - @Enumerated(EnumType.STRING) public SymptomState getFever() { return fever; diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/symptoms/SymptomsFacadeEjb.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/symptoms/SymptomsFacadeEjb.java index 819c9412f8f..16051c661b8 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/symptoms/SymptomsFacadeEjb.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/symptoms/SymptomsFacadeEjb.java @@ -9,8 +9,6 @@ import de.symeda.sormas.api.symptoms.SymptomsDto; import de.symeda.sormas.api.symptoms.SymptomsFacade; import de.symeda.sormas.api.symptoms.SymptomsHelper; -import de.symeda.sormas.backend.location.LocationFacadeEjb; -import de.symeda.sormas.backend.location.LocationFacadeEjb.LocationFacadeEjbLocal; import de.symeda.sormas.backend.util.DtoHelper; @Stateless(name = "SymptomsFacade") @@ -18,8 +16,6 @@ public class SymptomsFacadeEjb implements SymptomsFacade { @EJB private SymptomsService service; - @EJB - private LocationFacadeEjbLocal locationFacade; public Symptoms fromDto(SymptomsDto dto) { if (dto == null) { @@ -91,9 +87,6 @@ public Symptoms fromDto(SymptomsDto dto) { target.setThrobocytopenia(source.getThrobocytopenia()); target.setUnexplainedBleeding(source.getUnexplainedBleeding()); target.setVomiting(source.getVomiting()); - target.setIllLocation(locationFacade.fromDto(source.getIllLocation())); - target.setIllLocationFrom(source.getIllLocationFrom()); - target.setIllLocationTo(source.getIllLocationTo()); target.setBackache(source.getBackache()); target.setEyesBleeding(source.getEyesBleeding()); target.setJaundice(source.getJaundice()); @@ -170,9 +163,6 @@ public static SymptomsDto toDto(Symptoms symptoms) { target.setThrobocytopenia(source.getThrobocytopenia()); target.setUnexplainedBleeding(source.getUnexplainedBleeding()); target.setVomiting(source.getVomiting()); - target.setIllLocation(LocationFacadeEjb.toDto(source.getIllLocation())); - target.setIllLocationFrom(source.getIllLocationFrom()); - target.setIllLocationTo(source.getIllLocationTo()); target.setBackache(source.getBackache()); target.setEyesBleeding(source.getEyesBleeding()); target.setJaundice(source.getJaundice()); diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/visit/VisitService.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/visit/VisitService.java index ac854700d9e..5bbf45b9517 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/visit/VisitService.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/visit/VisitService.java @@ -230,7 +230,6 @@ protected Predicate createDateFilter(CriteriaBuilder cb, CriteriaQuery cq, From< Join symptoms = visitPath.join(Visit.SYMPTOMS, JoinType.LEFT); dateFilter = cb.or(dateFilter, cb.greaterThan(symptoms.get(AbstractDomainObject.CHANGE_DATE), date)); - dateFilter = cb.or(dateFilter, cb.greaterThan(symptoms.join(Symptoms.ILLLOCATION, JoinType.LEFT).get(Location.CHANGE_DATE), date)); return dateFilter; } diff --git a/sormas-base/sql/sormas_schema.sql b/sormas-base/sql/sormas_schema.sql index 2eef4f12677..9d9c6523b9b 100644 --- a/sormas-base/sql/sormas_schema.sql +++ b/sormas-base/sql/sormas_schema.sql @@ -1749,4 +1749,14 @@ INSERT INTO schema_version (version_number, comment) VALUES (68, 'Additional dat ALTER TABLE cases ADD COLUMN diseasedetails varchar(512); ALTER TABLE events ADD COLUMN diseasedetails varchar(512); -INSERT INTO schema_version (version_number, comment) VALUES (69, 'Disease details field #322'); \ No newline at end of file +INSERT INTO schema_version (version_number, comment) VALUES (69, 'Disease details field #322'); + +-- 2017-09-25 IllLoction removed from symptoms #347 +ALTER TABLE symptoms DROP COLUMN illlocation_id; +ALTER TABLE symptoms DROP COLUMN illlocationfrom; +ALTER TABLE symptoms DROP COLUMN illlocationto; +ALTER TABLE symptoms_history DROP COLUMN illlocation_id; +ALTER TABLE symptoms_history DROP COLUMN illlocationfrom; +ALTER TABLE symptoms_history DROP COLUMN illlocationto; + +INSERT INTO schema_version (version_number, comment) VALUES (70, 'IllLocation removed from symptoms #347'); \ No newline at end of file diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseController.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseController.java index 3c583c58c2a..3d20b56a960 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseController.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseController.java @@ -265,7 +265,7 @@ public CommitDiscardWrapperComponent getCaseSymptomsEditComponent( CaseDataDto caseDataDto = findCase(caseUuid); - SymptomsForm symptomsForm = new SymptomsForm(caseDataDto.getDisease(), true); + SymptomsForm symptomsForm = new SymptomsForm(caseDataDto.getDisease()); symptomsForm.setValue(caseDataDto.getSymptoms()); symptomsForm.initializeSymptomRequirementsForCase(); final CommitDiscardWrapperComponent editView = new CommitDiscardWrapperComponent(symptomsForm, symptomsForm.getFieldGroup()); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/symptoms/SymptomsForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/symptoms/SymptomsForm.java index 49905390f61..fdc62e69f63 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/symptoms/SymptomsForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/symptoms/SymptomsForm.java @@ -7,7 +7,6 @@ import com.vaadin.data.Validator; import com.vaadin.data.fieldgroup.FieldGroup; -import com.vaadin.shared.ui.label.ContentMode; import com.vaadin.ui.AbstractField; import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; @@ -16,7 +15,6 @@ import com.vaadin.ui.ComboBox; import com.vaadin.ui.Field; import com.vaadin.ui.HorizontalLayout; -import com.vaadin.ui.Label; import com.vaadin.ui.OptionGroup; import com.vaadin.ui.themes.ValoTheme; @@ -27,7 +25,6 @@ import de.symeda.sormas.api.symptoms.SymptomsHelper; import de.symeda.sormas.api.utils.Diseases.DiseasesConfiguration; import de.symeda.sormas.api.visit.VisitStatus; -import de.symeda.sormas.ui.location.LocationForm; import de.symeda.sormas.ui.utils.AbstractEditForm; import de.symeda.sormas.ui.utils.CssStyles; import de.symeda.sormas.ui.utils.FieldHelper; @@ -37,8 +34,6 @@ public class SymptomsForm extends AbstractEditForm { private static final String BUTTONS_LOC = "buttonsLoc"; - private static final String ILLLOCATION_LOC = "illLocationLoc"; - private static final String STAY_PERIOD_LOC = "stayPeriodLoc"; private static final String HTML_LAYOUT = LayoutUtil.h3(CssStyles.VSPACE3, "Clinical Signs and Symptoms") + LayoutUtil.divCss(CssStyles.VSPACE3, @@ -73,23 +68,15 @@ public class SymptomsForm extends AbstractEditForm { SymptomsDto.OTHER_NON_HEMORRHAGIC_SYMPTOMS, SymptomsDto.OTHER_NON_HEMORRHAGIC_SYMPTOMS_TEXT) + LayoutUtil.locsCss(CssStyles.VSPACE3, SymptomsDto.SYMPTOMS_COMMENTS)) - ) - + LayoutUtil.loc(ILLLOCATION_LOC) - + LayoutUtil.divCss(CssStyles.VSPACE3, - LayoutUtil.fluidRowLocs(SymptomsDto.ILLLOCATION)) - + LayoutUtil.loc(STAY_PERIOD_LOC) - + LayoutUtil.divCss(CssStyles.VSPACE3, - LayoutUtil.fluidRowLocs(SymptomsDto.ILLLOCATION_FROM, SymptomsDto.ILLLOCATION_TO)); + ); private final Disease disease; - private final boolean showIllLocation; private transient List unconditionalSymptomFieldIds; private List conditionalBleedingSymptomFieldIds; - public SymptomsForm(Disease disease, boolean showIllLocation) { + public SymptomsForm(Disease disease) { super(SymptomsDto.class, SymptomsDto.I18N_PREFIX); this.disease = disease; - this.showIllLocation = showIllLocation; if (disease == null) { throw new IllegalArgumentException("disease cannot be null"); } @@ -125,20 +112,6 @@ protected void addFields() { SymptomsDto.BLEEDING_VAGINA, SymptomsDto.SKIN_BRUISING, SymptomsDto.BLOOD_URINE); addFields(SymptomsDto.OTHER_HEMORRHAGIC_SYMPTOMS, SymptomsDto.OTHER_HEMORRHAGIC_SYMPTOMS_TEXT, SymptomsDto.OTHER_NON_HEMORRHAGIC_SYMPTOMS, SymptomsDto.OTHER_NON_HEMORRHAGIC_SYMPTOMS_TEXT); - - if (showIllLocation) { - String illLocationCaptionLayout = LayoutUtil.h3(CssStyles.VSPACE3, "Location Where Person Became Symptomatic"); - Label illLocationCaptionLabel = new Label(illLocationCaptionLayout); - illLocationCaptionLabel.setContentMode(ContentMode.HTML); - getContent().addComponent(illLocationCaptionLabel, ILLLOCATION_LOC); - addField(SymptomsDto.ILLLOCATION, LocationForm.class).setCaption(null); - String stayPeriodCaptionLayout = LayoutUtil.h3(CssStyles.VSPACE3, "Time Period of Stay"); - Label stayPeriodCaptionLabel = new Label(stayPeriodCaptionLayout); - stayPeriodCaptionLabel.setContentMode(ContentMode.HTML); - getContent().addComponent(stayPeriodCaptionLabel, STAY_PERIOD_LOC); - addField(SymptomsDto.ILLLOCATION_FROM); - addField(SymptomsDto.ILLLOCATION_TO); - } // getFieldGroup().getField(SymptomsDto.OTHER_HEMORRHAGIC_SYMPTOMS_TEXT).setCaption(null); // getFieldGroup().getField(SymptomsDto.OTHER_NON_HEMORRHAGIC_SYMPTOMS_TEXT).setCaption(null); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/visit/VisitEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/visit/VisitEditForm.java index 924ee7bedcf..5516c767cb7 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/visit/VisitEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/visit/VisitEditForm.java @@ -58,7 +58,7 @@ protected void addFields() { addField(VisitDto.VISIT_STATUS, OptionGroup.class); addField(VisitDto.VISIT_REMARKS, TextField.class); - symptomsForm = new SymptomsForm(disease, false); + symptomsForm = new SymptomsForm(disease); getFieldGroup().bind(symptomsForm, VisitDto.SYMPTOMS); getContent().addComponent(symptomsForm, VisitDto.SYMPTOMS); From c22dcf7c0738022b774b5aa59d716224c18eeb14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=A9=20Strysewske?= Date: Thu, 5 Oct 2017 15:11:15 +0200 Subject: [PATCH 04/54] #352 - Disabled region and district fields for officers and community field for informants --- .../java/de/symeda/sormas/app/caze/CaseNewForm.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseNewForm.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseNewForm.java index 41993af9764..5cde0adcdf3 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseNewForm.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseNewForm.java @@ -15,14 +15,17 @@ import de.symeda.sormas.api.I18nProperties; import de.symeda.sormas.api.caze.CaseDataDto; import de.symeda.sormas.api.facility.FacilityDto; +import de.symeda.sormas.api.user.UserRole; import de.symeda.sormas.app.R; import de.symeda.sormas.app.backend.caze.Case; import de.symeda.sormas.app.backend.common.DatabaseHelper; +import de.symeda.sormas.app.backend.config.ConfigProvider; import de.symeda.sormas.app.backend.facility.Facility; import de.symeda.sormas.app.backend.person.Person; import de.symeda.sormas.app.backend.region.Community; import de.symeda.sormas.app.backend.region.District; import de.symeda.sormas.app.backend.region.Region; +import de.symeda.sormas.app.backend.user.User; import de.symeda.sormas.app.component.FieldHelper; import de.symeda.sormas.app.component.PropertyField; import de.symeda.sormas.app.component.SpinnerField; @@ -173,6 +176,16 @@ public void onChange(PropertyField field) { CaseValidator.setRequiredHintsForNewCase(binding); + binding.caseDataRegion.setEnabled(false); + binding.caseDataDistrict.setEnabled(false); + User user = ConfigProvider.getUser(); + if (user.getUserRole() == UserRole.SURVEILLANCE_OFFICER || + user.getUserRole() == UserRole.CASE_OFFICER) { + binding.caseDataCommunity.setEnabled(true); + } else { + binding.caseDataCommunity.setEnabled(false); + } + return binding.getRoot(); } From 53086531c722f68012b7031f7a2143e55ae41c30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=A9=20Strysewske?= Date: Fri, 6 Oct 2017 13:04:39 +0200 Subject: [PATCH 05/54] #351 - Added PopupButton addon dependency, moved map filters to a popup button and added confirmed and unconfirmed contact filter checkboxes --- .../sormas/api/contact/ContactMapDto.java | 9 ++ .../main/resources/fieldCaptions.properties | 2 + .../backend/contact/ContactFacadeEjb.java | 1 + sormas-base/pom.xml | 6 + sormas-ui/pom.xml | 5 + .../sormas/ui/dashboard/DashboardView.java | 132 ++++++++++++------ .../sormas/ui/dashboard/MapComponent.java | 11 +- .../de/symeda/sormas/ui/utils/CssStyles.java | 1 + sormas-widgetset/pom.xml | 5 + .../de/symeda/sormas/SormasWidgetset.gwt.xml | 2 + 10 files changed, 131 insertions(+), 43 deletions(-) diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/contact/ContactMapDto.java b/sormas-api/src/main/java/de/symeda/sormas/api/contact/ContactMapDto.java index a211b0d0b94..153c595f15b 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/contact/ContactMapDto.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/contact/ContactMapDto.java @@ -9,10 +9,12 @@ public class ContactMapDto extends ContactReferenceDto { public static final String I18N_PREFIX = "Contact"; public static final String LAST_VISIT_DATE_TIME = "lastVisitDateTime"; + public static final String CONTACT_CLASSIFICATION = "contactClassification"; public static final String REPORT_LAT = "reportLat"; public static final String REPORT_LON = "reportLon"; private Date lastVisitDateTime; + private ContactClassification contactClassification; private Float reportLat; private Float reportLon; @@ -22,6 +24,13 @@ public Date getLastVisitDateTime() { public void setLastVisitDateTime(Date lastVisitDateTime) { this.lastVisitDateTime = lastVisitDateTime; } + + public ContactClassification getContactClassification() { + return contactClassification; + } + public void setContactClassification(ContactClassification contactClassification) { + this.contactClassification = contactClassification; + } public Float getReportLat() { return reportLat; diff --git a/sormas-api/src/main/resources/fieldCaptions.properties b/sormas-api/src/main/resources/fieldCaptions.properties index 1a1e0bd98d6..aed8d5f1d9c 100644 --- a/sormas-api/src/main/resources/fieldCaptions.properties +++ b/sormas-api/src/main/resources/fieldCaptions.properties @@ -154,6 +154,8 @@ Dashboard.collapse = Collapse Dashboard.apply = Apply filters Dashboard.showCases = Show cases Dashboard.showContacts = Show contacts +Dashboard.showConfirmedContacts = Show confirmed contacts +Dashboard.showUnconfirmedContacts = Show unconfirmed contacts Dashboard.noFollowUp = No follow-up Dashboard.visit24Hours = Last visit < 24h Dashboard.visit48Hours = Last visit < 48h diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java index dba2a30e77a..c3e172be04a 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java @@ -319,6 +319,7 @@ public ContactMapDto toMapDto(Contact source, Visit lastVisit) { target.setReportLat(source.getReportLat()); target.setReportLon(source.getReportLon()); + target.setContactClassification(source.getContactClassification()); if (lastVisit != null) { target.setLastVisitDateTime(lastVisit.getVisitDateTime()); } diff --git a/sormas-base/pom.xml b/sormas-base/pom.xml index f40ca617e93..95833bece19 100644 --- a/sormas-base/pom.xml +++ b/sormas-base/pom.xml @@ -251,6 +251,12 @@ 1.3.4 + + org.vaadin.addons + popupbutton + 2.6.0 + + org.geotools gt-shapefile diff --git a/sormas-ui/pom.xml b/sormas-ui/pom.xml index 5d171378436..2246cefba86 100644 --- a/sormas-ui/pom.xml +++ b/sormas-ui/pom.xml @@ -48,6 +48,11 @@ googlemaps + + org.vaadin.addons + popupbutton + + org.hibernate hibernate-validator diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/DashboardView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/DashboardView.java index 2e14419dcaa..f13cd45bccd 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/DashboardView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/DashboardView.java @@ -6,6 +6,8 @@ import java.util.List; import java.util.stream.Collectors; +import org.vaadin.hene.popupbutton.PopupButton; + import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.server.FontAwesome; import com.vaadin.server.ThemeResource; @@ -80,6 +82,8 @@ public class DashboardView extends AbstractView { public static final String APPLY = "apply"; public static final String SHOW_CASES = "showCases"; public static final String SHOW_CONTACTS = "showContacts"; + public static final String SHOW_CONFIRMED_CONTACTS = "showConfirmedContacts"; + public static final String SHOW_UNCONFIRMED_CONTACTS = "showUnconfirmedContacts"; public static final String NO_FOLLOW_UP = "noFollowUp"; public static final String VISIT_24_HOURS = "visit24Hours"; public static final String VISIT_48_HOURS = "visit48Hours"; @@ -100,6 +104,8 @@ public class DashboardView extends AbstractView { private boolean useDateFilterForMap; private boolean showCases; private boolean showContacts; + private boolean showConfirmedContacts; + private boolean showUnconfirmedContacts; private boolean showRegions; private RegionMapVisualization regionMapVisualization = RegionMapVisualization.CASE_COUNT; @@ -112,6 +118,8 @@ public DashboardView() { } else { showCases = true; showContacts = true; + showConfirmedContacts = true; + showUnconfirmedContacts = true; } VerticalLayout dashboardLayout = new VerticalLayout(); @@ -203,7 +211,7 @@ public void buttonClick(ClickEvent event) { disease = (Disease) diseaseFilter.getValue(); filterLayout.addComponent(applyButton); - + return filterLayout; } @@ -303,52 +311,91 @@ private VerticalLayout createMapLayout(ClickListener expandListener, ClickListen caseMapLabel.setSizeUndefined(); CssStyles.style(caseMapLabel, CssStyles.H3); mapHeaderLayout.addComponent(caseMapLabel); + mapHeaderLayout.setComponentAlignment(caseMapLabel, Alignment.TOP_LEFT); - CheckBox dateFilterForMap = new CheckBox(); - dateFilterForMap.addStyleName(CssStyles.NO_MARGIN); - dateFilterForMap.setCaption(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, DATE_FILTER_FOR_MAP)); - dateFilterForMap.addValueChangeListener(e -> { - useDateFilterForMap = dateFilterForMap.getValue(); - refreshMap(); - }); - mapHeaderLayout.addComponent(dateFilterForMap); - mapHeaderLayout.setComponentAlignment(dateFilterForMap, Alignment.MIDDLE_LEFT); + PopupButton popupButton = new PopupButton("Filters"); - CheckBox showCasesCheckBox = new CheckBox(); - showCasesCheckBox.addStyleName(CssStyles.NO_MARGIN); - showCasesCheckBox.setCaption(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, SHOW_CASES)); - showCasesCheckBox.setValue(showCases); - showCasesCheckBox.addValueChangeListener(e -> { - showCases = (boolean) e.getProperty().getValue(); - refreshMap(); - }); - mapHeaderLayout.addComponent(showCasesCheckBox); - mapHeaderLayout.setComponentAlignment(showCasesCheckBox, Alignment.MIDDLE_LEFT); + VerticalLayout popupLayout = new VerticalLayout(); + popupLayout.setMargin(true); + popupButton.setContent(popupLayout); - CheckBox showContactsCheckBox = new CheckBox(); - showContactsCheckBox.addStyleName(CssStyles.NO_MARGIN); - showContactsCheckBox.setCaption(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, SHOW_CONTACTS)); - showContactsCheckBox.setValue(showContacts); - showContactsCheckBox.addValueChangeListener(e -> { - showContacts = (boolean) e.getProperty().getValue(); - refreshMap(); - }); - mapHeaderLayout.addComponent(showContactsCheckBox); - mapHeaderLayout.setComponentAlignment(showContactsCheckBox, Alignment.MIDDLE_LEFT); - - if (LoginHelper.isUserInRole(UserRole.NATIONAL_USER)) { - CheckBox showRegionsCheckBox = new CheckBox(); - showRegionsCheckBox.addStyleName(CssStyles.NO_MARGIN); - showRegionsCheckBox.setCaption("Show regions");//I18nProperties.getPrefixFieldCaption(I18N_PREFIX, SHOW_CASES)); - showRegionsCheckBox.setValue(showRegions); - showRegionsCheckBox.addValueChangeListener(e -> { - showRegions = (boolean) e.getProperty().getValue(); - refreshMap(); + // Add check boxes and apply button to popupLayout + { + CheckBox dateFilterForMap = new CheckBox(); + dateFilterForMap.addStyleName(CssStyles.NO_MARGIN); + dateFilterForMap.setCaption(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, DATE_FILTER_FOR_MAP)); + dateFilterForMap.addValueChangeListener(e -> { + useDateFilterForMap = dateFilterForMap.getValue(); + }); + popupLayout.addComponent(dateFilterForMap); + + CheckBox showCasesCheckBox = new CheckBox(); + showCasesCheckBox.addStyleName(CssStyles.NO_MARGIN); + showCasesCheckBox.setCaption(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, SHOW_CASES)); + showCasesCheckBox.setValue(showCases); + showCasesCheckBox.addValueChangeListener(e -> { + showCases = (boolean) e.getProperty().getValue(); + }); + popupLayout.addComponent(showCasesCheckBox); + + CheckBox showConfirmedContactsCheckBox = new CheckBox(); + CheckBox showUnconfirmedContactsCheckBox = new CheckBox(); + + CheckBox showContactsCheckBox = new CheckBox(); + showContactsCheckBox.addStyleName(CssStyles.NO_MARGIN); + showContactsCheckBox.setCaption(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, SHOW_CONTACTS)); + showContactsCheckBox.setValue(showContacts); + showContactsCheckBox.addValueChangeListener(e -> { + showContacts = (boolean) e.getProperty().getValue(); + showConfirmedContactsCheckBox.setVisible(showContacts); + showConfirmedContactsCheckBox.setValue(true); + showUnconfirmedContactsCheckBox.setVisible(showContacts); + showUnconfirmedContactsCheckBox.setValue(true); }); - mapHeaderLayout.addComponent(showRegionsCheckBox); - mapHeaderLayout.setComponentAlignment(showRegionsCheckBox, Alignment.MIDDLE_LEFT); + popupLayout.addComponent(showContactsCheckBox); + + showConfirmedContactsCheckBox.addStyleName(CssStyles.NO_MARGIN); + showConfirmedContactsCheckBox.setCaption(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, SHOW_CONFIRMED_CONTACTS)); + showConfirmedContactsCheckBox.setValue(showConfirmedContacts); + showConfirmedContactsCheckBox.addValueChangeListener(e -> { + showConfirmedContacts = (boolean) e.getProperty().getValue(); + }); + popupLayout.addComponent(showConfirmedContactsCheckBox); + + showUnconfirmedContactsCheckBox.addStyleName(CssStyles.NO_MARGIN); + showUnconfirmedContactsCheckBox.setCaption(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, SHOW_UNCONFIRMED_CONTACTS)); + showUnconfirmedContactsCheckBox.setValue(showUnconfirmedContacts); + showUnconfirmedContactsCheckBox.addValueChangeListener(e -> { + showUnconfirmedContacts = (boolean) e.getProperty().getValue(); + }); + popupLayout.addComponent(showUnconfirmedContactsCheckBox); + + if (LoginHelper.isUserInRole(UserRole.NATIONAL_USER)) { + CheckBox showRegionsCheckBox = new CheckBox(); + showRegionsCheckBox.addStyleName(CssStyles.NO_MARGIN); + showRegionsCheckBox.setCaption("Show regions"); + showRegionsCheckBox.setValue(showRegions); + showRegionsCheckBox.addValueChangeListener(e -> { + showRegions = (boolean) e.getProperty().getValue(); + }); + popupLayout.addComponent(showRegionsCheckBox); + } + + Button applyButton = new Button(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, APPLY)); + applyButton.addStyleName(CssStyles.VSPACETOP4); + applyButton.addClickListener(new ClickListener() { + @Override + public void buttonClick(ClickEvent event) { + popupButton.setPopupVisible(false); + refreshMap(); + } + }); + popupLayout.addComponent(applyButton); } + mapHeaderLayout.addComponent(popupButton); + mapHeaderLayout.setComponentAlignment(popupButton, Alignment.MIDDLE_LEFT); + Button expandMap = new Button(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, EXPAND), FontAwesome.EXPAND); expandMap.setStyleName(ValoTheme.BUTTON_LINK); expandMap.addStyleName(CssStyles.NO_MARGIN); @@ -381,6 +428,7 @@ public void buttonClick(ClickEvent event) { mapHeaderLayout.setComponentAlignment(expandMap, Alignment.MIDDLE_RIGHT); mapHeaderLayout.setExpandRatio(expandMap, 1); } + mapLayout.addComponent(mapHeaderLayout); // Map and map key @@ -635,7 +683,7 @@ private void refreshMap() { mapComponent.showCaseMarkers(casesForMap); } if (showContacts) { - mapComponent.showContactMarkers(contactsForMap); + mapComponent.showContactMarkers(contactsForMap, showConfirmedContacts, showUnconfirmedContacts); } } } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/MapComponent.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/MapComponent.java index 7b29de9e328..b94ad6e0d09 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/MapComponent.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/MapComponent.java @@ -27,6 +27,7 @@ import de.symeda.sormas.api.FacadeProvider; import de.symeda.sormas.api.caze.CaseClassification; import de.symeda.sormas.api.caze.CaseDataDto; +import de.symeda.sormas.api.contact.ContactClassification; import de.symeda.sormas.api.contact.ContactMapDto; import de.symeda.sormas.api.facility.FacilityDto; import de.symeda.sormas.api.facility.FacilityReferenceDto; @@ -323,7 +324,7 @@ public void clearContactMarkers() { mapContacts.clear(); } - public void showContactMarkers(List contacts) { + public void showContactMarkers(List contacts, boolean showConfirmed, boolean showUnconfirmed) { clearContactMarkers(); @@ -332,6 +333,14 @@ public void showContactMarkers(List contacts) { continue; } + if (!showUnconfirmed && contact.getContactClassification() == ContactClassification.POSSIBLE) { + continue; + } + + if (!showConfirmed && contact.getContactClassification() != ContactClassification.POSSIBLE) { + continue; + } + LatLon latLon = new LatLon(contact.getReportLat(), contact.getReportLon()); MapIcon icon; diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java index 12abade33e3..8e586f8f406 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java @@ -25,6 +25,7 @@ public final class CssStyles { public static final String VSPACE5 = "vspace5"; public static final String VSPACE_NO_FILTERS = "vspace-no-filters"; public static final String VSPACETOP3 = "vspacetop3"; + public static final String VSPACETOP4 = "vspacetop4"; public static final String VSPACE_TOP_24 = "vspace-top-24"; public static final String SELECTABLE = "selectable"; diff --git a/sormas-widgetset/pom.xml b/sormas-widgetset/pom.xml index 6c81a807fc6..6c1b115300e 100644 --- a/sormas-widgetset/pom.xml +++ b/sormas-widgetset/pom.xml @@ -26,6 +26,11 @@ com.vaadin.tapio googlemaps + + + org.vaadin.addons + popupbutton + diff --git a/sormas-widgetset/src/main/resources/de/symeda/sormas/SormasWidgetset.gwt.xml b/sormas-widgetset/src/main/resources/de/symeda/sormas/SormasWidgetset.gwt.xml index 04b10a239f3..b370264b965 100644 --- a/sormas-widgetset/src/main/resources/de/symeda/sormas/SormasWidgetset.gwt.xml +++ b/sormas-widgetset/src/main/resources/de/symeda/sormas/SormasWidgetset.gwt.xml @@ -11,4 +11,6 @@ + + From a8672aa1048e34bbbdab1b0fb4cca83a10a5214a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=A9=20Strysewske?= Date: Fri, 6 Oct 2017 14:47:14 +0200 Subject: [PATCH 06/54] #351 - last visit geo coordinates are used for the contact markers if available --- .../sormas/api/contact/ContactMapDto.java | 14 +++--- .../backend/contact/ContactFacadeEjb.java | 4 +- .../sormas/backend/visit/VisitFacadeEjb.java | 2 +- .../sormas/ui/dashboard/MapComponent.java | 47 ++++++++++++++----- 4 files changed, 45 insertions(+), 22 deletions(-) diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/contact/ContactMapDto.java b/sormas-api/src/main/java/de/symeda/sormas/api/contact/ContactMapDto.java index 153c595f15b..edbd51f600f 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/contact/ContactMapDto.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/contact/ContactMapDto.java @@ -1,6 +1,6 @@ package de.symeda.sormas.api.contact; -import java.util.Date; +import de.symeda.sormas.api.visit.VisitReferenceDto; public class ContactMapDto extends ContactReferenceDto { @@ -8,21 +8,21 @@ public class ContactMapDto extends ContactReferenceDto { public static final String I18N_PREFIX = "Contact"; - public static final String LAST_VISIT_DATE_TIME = "lastVisitDateTime"; + public static final String LAST_VISIT = "lastVisit"; public static final String CONTACT_CLASSIFICATION = "contactClassification"; public static final String REPORT_LAT = "reportLat"; public static final String REPORT_LON = "reportLon"; - private Date lastVisitDateTime; + private VisitReferenceDto lastVisit; private ContactClassification contactClassification; private Float reportLat; private Float reportLon; - public Date getLastVisitDateTime() { - return lastVisitDateTime; + public VisitReferenceDto getLastVisit() { + return lastVisit; } - public void setLastVisitDateTime(Date lastVisitDateTime) { - this.lastVisitDateTime = lastVisitDateTime; + public void setLastVisit(VisitReferenceDto lastVisit) { + this.lastVisit = lastVisit; } public ContactClassification getContactClassification() { diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java index c3e172be04a..9e88364adcd 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java @@ -47,6 +47,7 @@ import de.symeda.sormas.backend.util.DateHelper8; import de.symeda.sormas.backend.util.DtoHelper; import de.symeda.sormas.backend.visit.Visit; +import de.symeda.sormas.backend.visit.VisitFacadeEjb; import de.symeda.sormas.backend.visit.VisitService; @Stateless(name = "ContactFacade") @@ -320,8 +321,9 @@ public ContactMapDto toMapDto(Contact source, Visit lastVisit) { target.setReportLat(source.getReportLat()); target.setReportLon(source.getReportLon()); target.setContactClassification(source.getContactClassification()); + if (lastVisit != null) { - target.setLastVisitDateTime(lastVisit.getVisitDateTime()); + target.setLastVisit(VisitFacadeEjb.toReferenceDto(lastVisit)); } return target; diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/visit/VisitFacadeEjb.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/visit/VisitFacadeEjb.java index 03c0478d898..4bddfc6965b 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/visit/VisitFacadeEjb.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/visit/VisitFacadeEjb.java @@ -142,7 +142,7 @@ public Visit fromDto(@NotNull VisitDto source) { return target; } - public VisitReferenceDto toReferenceDto(Visit source) { + public static VisitReferenceDto toReferenceDto(Visit source) { if (source == null) { return null; } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/MapComponent.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/MapComponent.java index b94ad6e0d09..7674d739e12 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/MapComponent.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/MapComponent.java @@ -36,6 +36,7 @@ import de.symeda.sormas.api.region.RegionReferenceDto; import de.symeda.sormas.api.user.UserDto; import de.symeda.sormas.api.user.UserRole; +import de.symeda.sormas.api.visit.VisitDto; import de.symeda.sormas.ui.ControllerProvider; import de.symeda.sormas.ui.login.LoginHelper; import de.symeda.sormas.ui.utils.VaadinUiUtil; @@ -327,33 +328,53 @@ public void clearContactMarkers() { public void showContactMarkers(List contacts, boolean showConfirmed, boolean showUnconfirmed) { clearContactMarkers(); - + for (ContactMapDto contact : contacts) { - if (contact.getReportLat() == null || contact.getReportLon() == null) { + VisitDto visit = null; + boolean noContactCoordinates = true; + boolean noVisitCoordinates = true; + + // Don't show a marker for contacts that don't have geo coordinates or geo coordinates for their last visit + noContactCoordinates = contact.getReportLat() == null || contact.getReportLon() == null; + if (contact.getLastVisit() != null) { + visit = FacadeProvider.getVisitFacade().getVisitByUuid(contact.getLastVisit().getUuid()); + noVisitCoordinates = visit.getReportLat() == null || visit.getReportLon() == null; + } + if (noContactCoordinates && noVisitCoordinates) { continue; } + // Don't show a marker for contacts that are filtered out if (!showUnconfirmed && contact.getContactClassification() == ContactClassification.POSSIBLE) { continue; } - if (!showConfirmed && contact.getContactClassification() != ContactClassification.POSSIBLE) { continue; } - LatLon latLon = new LatLon(contact.getReportLat(), contact.getReportLon()); + + LatLon latLon; + if (!noVisitCoordinates) { + latLon = new LatLon(visit.getReportLat(), visit.getReportLon()); + } else { + latLon = new LatLon(contact.getReportLat(), contact.getReportLon()); + } MapIcon icon; long currentTime = new Date().getTime(); - long visitTime = contact.getLastVisitDateTime() != null ? contact.getLastVisitDateTime().getTime() : 0; - // 1000 ms = 1 second; 3600 seconds = 1 hour - if (currentTime - visitTime >= 1000 * 3600 * 48) { - icon = MapIcon.RED_CONTACT; - } else if (currentTime - visitTime >= 1000 * 3600 * 24) { - icon = MapIcon.ORANGE_CONTACT; - } else { - icon = MapIcon.GREEN_CONTACT; - } + if (visit != null) { + long visitTime = visit.getVisitDateTime() != null ? visit.getVisitDateTime().getTime() : 0; + // 1000 ms = 1 second; 3600 seconds = 1 hour + if (currentTime - visitTime >= 1000 * 3600 * 48) { + icon = MapIcon.RED_CONTACT; + } else if (currentTime - visitTime >= 1000 * 3600 * 24) { + icon = MapIcon.ORANGE_CONTACT; + } else { + icon = MapIcon.GREEN_CONTACT; + } + } else { + icon = MapIcon.RED_CONTACT; + } GoogleMapMarker marker = new GoogleMapMarker(contact.toString(), latLon, false, icon.getUrl()); marker.setId(contact.getUuid().hashCode()); From 56809c504e2f768008d5137dd22d9d8473c44685 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=A9=20Strysewske?= Date: Tue, 10 Oct 2017 08:39:28 +0200 Subject: [PATCH 07/54] #346 - Added contact subtitle, changed case subtitle to always show --- .../java/de/symeda/sormas/app/caze/CaseEditActivity.java | 8 ++++---- .../java/de/symeda/sormas/app/caze/CasesListFragment.java | 1 - .../de/symeda/sormas/app/contact/ContactEditActivity.java | 4 ++++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditActivity.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditActivity.java index f751f9370f0..09aa0298bc2 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditActivity.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditActivity.java @@ -59,7 +59,6 @@ public class CaseEditActivity extends AbstractEditTabActivity { public static final String KEY_CASE_UUID = "caseUuid"; - public static final String CASE_SUBTITLE = "caseSubtitle"; private CaseEditPagerAdapter adapter; private String caseUuid; @@ -103,6 +102,10 @@ protected void onCreate(Bundle savedInstanceState) { finish(); } + if (toolbar != null) { + getSupportActionBar().setSubtitle(initialEntity.toString()); + } + DatabaseHelper.getCaseDao().markAsRead(initialEntity); } if (params.containsKey(TaskForm.KEY_TASK_UUID)) { @@ -111,9 +114,6 @@ protected void onCreate(Bundle savedInstanceState) { if (params.containsKey(KEY_PAGE)) { currentTab = params.getInt(KEY_PAGE); } - if (params.containsKey(CASE_SUBTITLE) && toolbar != null) { - getSupportActionBar().setSubtitle(params.getString(CASE_SUBTITLE)); - } } setAdapter(); diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CasesListFragment.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CasesListFragment.java index 1fae2813bc0..5cae3715701 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CasesListFragment.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CasesListFragment.java @@ -93,7 +93,6 @@ public void onItemClick( public void showCaseEditView(Case caze) { Intent intent = new Intent(getActivity(), CaseEditActivity.class); intent.putExtra(CaseEditActivity.KEY_CASE_UUID, caze.getUuid()); - intent.putExtra(CaseEditActivity.CASE_SUBTITLE, caze.toString()); startActivity(intent); } } diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/contact/ContactEditActivity.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/contact/ContactEditActivity.java index e3b10a17804..f5d23a96a77 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/contact/ContactEditActivity.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/contact/ContactEditActivity.java @@ -100,6 +100,10 @@ protected void onCreate(Bundle savedInstanceState) { finish(); } + if (toolbar != null) { + getSupportActionBar().setSubtitle(initialEntity.toString()); + } + DatabaseHelper.getContactDao().markAsRead(initialEntity); } if (params.containsKey(TaskForm.KEY_TASK_UUID)) { From 6f2fe6246c23627b25a0455146eeb2fc3bb6b253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=A9=20Strysewske?= Date: Thu, 12 Oct 2017 09:28:03 +0200 Subject: [PATCH 08/54] #359 - created TestDataCreator class and refactored case and contact test classes --- .../sormas/backend/TestDataCreator.java | 228 ++++++++++++++++++ .../backend/caze/CaseFacadeEjbTest.java | 203 +++------------- .../backend/contact/ContactFacadeEjbTest.java | 137 +++-------- 3 files changed, 295 insertions(+), 273 deletions(-) create mode 100644 sormas-backend/src/test/java/de/symeda/sormas/backend/TestDataCreator.java diff --git a/sormas-backend/src/test/java/de/symeda/sormas/backend/TestDataCreator.java b/sormas-backend/src/test/java/de/symeda/sormas/backend/TestDataCreator.java new file mode 100644 index 00000000000..5f1f27f1afc --- /dev/null +++ b/sormas-backend/src/test/java/de/symeda/sormas/backend/TestDataCreator.java @@ -0,0 +1,228 @@ +package de.symeda.sormas.backend; + +import java.util.Arrays; +import java.util.Date; +import java.util.HashSet; + +import org.junit.Test; + +import de.symeda.sormas.api.Disease; +import de.symeda.sormas.api.caze.CaseClassification; +import de.symeda.sormas.api.caze.CaseDataDto; +import de.symeda.sormas.api.caze.CaseFacade; +import de.symeda.sormas.api.caze.InvestigationStatus; +import de.symeda.sormas.api.contact.ContactDto; +import de.symeda.sormas.api.contact.ContactFacade; +import de.symeda.sormas.api.facility.FacilityFacade; +import de.symeda.sormas.api.facility.FacilityType; +import de.symeda.sormas.api.person.PersonDto; +import de.symeda.sormas.api.person.PersonFacade; +import de.symeda.sormas.api.region.CommunityFacade; +import de.symeda.sormas.api.region.DistrictFacade; +import de.symeda.sormas.api.region.RegionFacade; +import de.symeda.sormas.api.task.TaskContext; +import de.symeda.sormas.api.task.TaskDto; +import de.symeda.sormas.api.task.TaskFacade; +import de.symeda.sormas.api.task.TaskStatus; +import de.symeda.sormas.api.task.TaskType; +import de.symeda.sormas.api.user.UserDto; +import de.symeda.sormas.api.user.UserFacade; +import de.symeda.sormas.api.user.UserRole; +import de.symeda.sormas.api.utils.DataHelper; +import de.symeda.sormas.api.visit.VisitDto; +import de.symeda.sormas.api.visit.VisitFacade; +import de.symeda.sormas.api.visit.VisitStatus; +import de.symeda.sormas.backend.facility.Facility; +import de.symeda.sormas.backend.facility.FacilityService; +import de.symeda.sormas.backend.region.Community; +import de.symeda.sormas.backend.region.CommunityService; +import de.symeda.sormas.backend.region.District; +import de.symeda.sormas.backend.region.DistrictService; +import de.symeda.sormas.backend.region.Region; +import de.symeda.sormas.backend.region.RegionService; +import info.novatec.beantest.api.BaseBeanTest; + +public class TestDataCreator extends BaseBeanTest { + + private final UserFacade userFacade; + private final PersonFacade personFacade; + private final CaseFacade caseFacade; + private final ContactFacade contactFacade; + private final TaskFacade taskFacade; + private final VisitFacade visitFacade; + private final RegionFacade regionFacade; + private final DistrictFacade districtFacade; + private final CommunityFacade communityFacade; + private final FacilityFacade facilityFacade; + + private final RegionService regionService; + private final DistrictService districtService; + private final CommunityService communityService; + private final FacilityService facilityService; + + public TestDataCreator(UserFacade userFacade, PersonFacade personFacade, CaseFacade caseFacade, + ContactFacade contactFacade, TaskFacade taskFacade, VisitFacade visitFacade, RegionFacade regionFacade, + DistrictFacade districtFacade, CommunityFacade communityFacade, FacilityFacade facilityFacade, + RegionService regionService, DistrictService districtService, CommunityService communityService, + FacilityService facilityService) { + this.userFacade = userFacade; + this.personFacade = personFacade; + this.caseFacade = caseFacade; + this.contactFacade = contactFacade; + this.taskFacade = taskFacade; + this.visitFacade = visitFacade; + this.regionFacade = regionFacade; + this.districtFacade = districtFacade; + this.communityFacade = communityFacade; + this.facilityFacade = facilityFacade; + this.regionService = regionService; + this.districtService = districtService; + this.communityService = communityService; + this.facilityService = facilityService; + } + + @Test + public UserDto createUser(String regionUuid, String districtUuid, String firstName, String lastName, UserRole... roles) { + UserDto user = new UserDto(); + user.setUuid(DataHelper.createUuid()); + user.setFirstName(firstName); + user.setLastName(lastName); + user.setUserName(firstName + lastName); + user.setUserRoles(new HashSet(Arrays.asList(roles))); + user.setRegion(regionFacade.getRegionByUuid(regionUuid)); + user.setDistrict(districtFacade.getDistrictByUuid(districtUuid)); + user = userFacade.saveUser(user); + + return user; + } + + @Test + public PersonDto createPerson(String firstName, String lastName) { + PersonDto cazePerson = new PersonDto(); + cazePerson.setUuid(DataHelper.createUuid()); + cazePerson.setFirstName(firstName); + cazePerson.setLastName(lastName); + cazePerson = personFacade.savePerson(cazePerson); + + return cazePerson; + } + + @Test + public CaseDataDto createCase(UserDto user, PersonDto cazePerson, Disease disease, CaseClassification caseClassification, + InvestigationStatus investigationStatus, Date reportDate, RDCF rdcf) { + CaseDataDto caze = new CaseDataDto(); + caze.setUuid(DataHelper.createUuid()); + caze.setPerson(cazePerson); + caze.setReportDate(reportDate); + caze.setReportingUser(user); + caze.setDisease(disease); + caze.setCaseClassification(caseClassification); + caze.setInvestigationStatus(investigationStatus); + caze.setRegion(regionFacade.getRegionByUuid(rdcf.region.getUuid())); + caze.setDistrict(districtFacade.getDistrictByUuid(rdcf.district.getUuid())); + caze.setCommunity(communityFacade.getByUuid(rdcf.community.getUuid())); + caze.setHealthFacility(facilityFacade.getByUuid(rdcf.facility.getUuid())); + + caze = caseFacade.saveCase(caze); + + return caze; + } + + @Test + public ContactDto createContact(UserDto reportingUser, UserDto contactOfficer, PersonDto contactPerson, + CaseDataDto caze, Date reportDateTime, Date lastContactDate) { + ContactDto contact = new ContactDto(); + contact.setUuid(DataHelper.createUuid()); + contact.setReportingUser(reportingUser); + contact.setContactOfficer(contactOfficer); + contact.setPerson(contactPerson); + contact.setCaze(caze); + contact.setReportDateTime(reportDateTime); + contact.setLastContactDate(lastContactDate); + + contact = contactFacade.saveContact(contact); + + return contact; + } + + @Test + public TaskDto createTask(TaskContext context, TaskType type, TaskStatus status, CaseDataDto caze, + ContactDto contact, UserDto assigneeUser) { + TaskDto task = new TaskDto(); + task.setUuid(DataHelper.createUuid()); + task.setTaskContext(context); + task.setTaskType(type); + task.setTaskStatus(status); + if (caze != null) { + task.setCaze(caze); + } + if (contact != null) { + task.setContact(contact); + } + task.setAssigneeUser(assigneeUser); + + task = taskFacade.saveTask(task); + + return task; + } + + @Test + public VisitDto createVisit(Disease disease, PersonDto contactPerson, Date visitDateTime, VisitStatus visitStatus) { + VisitDto visit = new VisitDto(); + visit.setUuid(DataHelper.createUuid()); + visit.setDisease(disease); + visit.setPerson(contactPerson); + visit.setVisitDateTime(visitDateTime); + visit.setVisitStatus(visitStatus); + + visit = visitFacade.saveVisit(visit); + + return visit; + } + + @Test + public RDCF createRDCF(String regionName, String districtName, String communityName, String facilityName) { + Region region = new Region(); + region.setUuid(DataHelper.createUuid()); + region.setName(regionName); + regionService.persist(region); + + District district = new District(); + district.setUuid(DataHelper.createUuid()); + district.setName(districtName); + district.setRegion(region); + districtService.persist(district); + + Community community = new Community(); + community.setUuid(DataHelper.createUuid()); + community.setName(communityName); + community.setDistrict(district); + communityService.persist(community); + + Facility facility = new Facility(); + facility.setUuid(DataHelper.createUuid()); + facility.setName(facilityName); + facility.setType(FacilityType.PRIMARY); + facility.setCommunity(community); + facility.setDistrict(district); + facility.setRegion(region); + facilityService.persist(facility); + + return new RDCF(region, district, community, facility); + } + + public class RDCF { + public Region region; + public District district; + public Community community; + public Facility facility; + + public RDCF(Region region, District district, Community community, Facility facility) { + this.region = region; + this.district = district; + this.community = community; + this.facility = facility; + } + } + +} diff --git a/sormas-backend/src/test/java/de/symeda/sormas/backend/caze/CaseFacadeEjbTest.java b/sormas-backend/src/test/java/de/symeda/sormas/backend/caze/CaseFacadeEjbTest.java index d093974d6c9..7d749ad26dd 100644 --- a/sormas-backend/src/test/java/de/symeda/sormas/backend/caze/CaseFacadeEjbTest.java +++ b/sormas-backend/src/test/java/de/symeda/sormas/backend/caze/CaseFacadeEjbTest.java @@ -3,9 +3,7 @@ import static org.junit.Assert.assertEquals; import java.time.LocalDate; -import java.util.Arrays; import java.util.Date; -import java.util.HashSet; import java.util.List; import org.junit.Before; @@ -20,43 +18,34 @@ import de.symeda.sormas.api.contact.ContactFacade; import de.symeda.sormas.api.contact.FollowUpStatus; import de.symeda.sormas.api.facility.FacilityFacade; -import de.symeda.sormas.api.facility.FacilityType; -import de.symeda.sormas.api.hospitalization.HospitalizationFacade; import de.symeda.sormas.api.hospitalization.PreviousHospitalizationDto; import de.symeda.sormas.api.person.PersonDto; -import de.symeda.sormas.api.person.PersonFacade; import de.symeda.sormas.api.region.CommunityFacade; -import de.symeda.sormas.api.region.DistrictFacade; -import de.symeda.sormas.api.region.RegionFacade; import de.symeda.sormas.api.task.TaskContext; import de.symeda.sormas.api.task.TaskDto; import de.symeda.sormas.api.task.TaskFacade; import de.symeda.sormas.api.task.TaskStatus; import de.symeda.sormas.api.task.TaskType; import de.symeda.sormas.api.user.UserDto; -import de.symeda.sormas.api.user.UserFacade; import de.symeda.sormas.api.user.UserRole; -import de.symeda.sormas.api.utils.DataHelper; import de.symeda.sormas.backend.MockProducer; +import de.symeda.sormas.backend.TestDataCreator; +import de.symeda.sormas.backend.TestDataCreator.RDCF; import de.symeda.sormas.backend.caze.CaseFacadeEjb.CaseFacadeEjbLocal; import de.symeda.sormas.backend.contact.ContactFacadeEjb.ContactFacadeEjbLocal; -import de.symeda.sormas.backend.facility.Facility; import de.symeda.sormas.backend.facility.FacilityFacadeEjb; import de.symeda.sormas.backend.facility.FacilityService; -import de.symeda.sormas.backend.hospitalization.HospitalizationFacadeEjb; import de.symeda.sormas.backend.person.PersonFacadeEjb; -import de.symeda.sormas.backend.region.Community; import de.symeda.sormas.backend.region.CommunityFacadeEjb; import de.symeda.sormas.backend.region.CommunityService; -import de.symeda.sormas.backend.region.District; import de.symeda.sormas.backend.region.DistrictFacadeEjb; import de.symeda.sormas.backend.region.DistrictService; -import de.symeda.sormas.backend.region.Region; import de.symeda.sormas.backend.region.RegionFacadeEjb; import de.symeda.sormas.backend.region.RegionService; import de.symeda.sormas.backend.task.TaskFacadeEjb; import de.symeda.sormas.backend.user.UserFacadeEjb.UserFacadeEjbLocal; import de.symeda.sormas.backend.util.DateHelper8; +import de.symeda.sormas.backend.visit.VisitFacadeEjb; import info.novatec.beantest.api.BaseBeanTest; public class CaseFacadeEjbTest extends BaseBeanTest { @@ -71,33 +60,18 @@ public void resetMocks() { @Test public void testDiseaseChangeUpdatesContacts() { - - // TODO create provider for facades (probably best to add a SormasBeanTest class) - UserFacade userFacade = getBean(UserFacadeEjbLocal.class); - PersonFacade personFacade = getBean(PersonFacadeEjb.class); CaseFacade caseFacade = getBean(CaseFacadeEjbLocal.class); ContactFacade contactFacade = getBean(ContactFacadeEjbLocal.class); - RDCF rdcf = createRDCF("Region", "District", "Community", "Facility"); - UserDto user = createSurveillanceSupervisor(userFacade, rdcf.region.getUuid(), rdcf.district.getUuid()); - PersonDto cazePerson = createCasePerson(personFacade); - CaseDataDto caze = createCase(caseFacade, user, cazePerson, rdcf); - - PersonDto contactPerson = new PersonDto(); - cazePerson.setUuid(DataHelper.createUuid()); - contactPerson.setFirstName("Steff"); - contactPerson.setLastName("Hansen"); - contactPerson = personFacade.savePerson(contactPerson); - - ContactDto contact = new ContactDto(); - contact.setUuid(DataHelper.createUuid()); - contact.setReportDateTime(new Date()); - contact.setReportingUser(user); - contact.setContactOfficer(user); - contact.setPerson(contactPerson); - contact.setCaze(caze); - contact.setLastContactDate(new Date()); - contact = contactFacade.saveContact(contact); + TestDataCreator creator = createTestDataCreator(); + + RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility"); + UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR); + PersonDto cazePerson = creator.createPerson("Case", "Person"); + CaseDataDto caze = creator.createCase(user, cazePerson, Disease.EVD, CaseClassification.PROBABLE, + InvestigationStatus.PENDING, new Date(), rdcf); + PersonDto contactPerson = creator.createPerson("Contact", "Person"); + ContactDto contact = creator.createContact(user, user, contactPerson, caze, new Date(), new Date()); // Follow-up status and duration should be set to the requirements for EVD assertEquals(FollowUpStatus.FOLLOW_UP, contact.getFollowUpStatus()); @@ -115,47 +89,23 @@ public void testDiseaseChangeUpdatesContacts() { @Test public void testMovingCaseUpdatesTaskAssigneeAndCreatesPreviousHospitalization() { - - // TODO create provider for facades (probably best to add a SormasBeanTest class) - UserFacade userFacade = getBean(UserFacadeEjbLocal.class); CaseFacade caseFacade = getBean(CaseFacadeEjbLocal.class); - PersonFacade personFacade = getBean(PersonFacadeEjb.class); TaskFacade taskFacade = getBean(TaskFacadeEjb.class); CommunityFacade communityFacade = getBean(CommunityFacadeEjb.class); FacilityFacade facilityFacade = getBean(FacilityFacadeEjb.class); - RDCF rdcf = createRDCF("Region", "District", "Community", "Facility"); - UserDto survSupervisor = createSurveillanceSupervisor(userFacade, rdcf.region.getUuid(), rdcf.district.getUuid()); - PersonDto cazePerson = createCasePerson(personFacade); - CaseDataDto caze = createCase(caseFacade, survSupervisor, cazePerson, rdcf); - - UserDto caseOfficer = new UserDto(); - caseOfficer.setUuid(DataHelper.createUuid()); - caseOfficer.setFirstName("Case"); - caseOfficer.setLastName("Officer"); - caseOfficer.setUserName("CaseOfficer"); - caseOfficer.setUserRoles(new HashSet(Arrays.asList(UserRole.CASE_OFFICER))); - caseOfficer = userFacade.saveUser(caseOfficer); + TestDataCreator creator = createTestDataCreator(); - TaskDto pendingTask = new TaskDto(); - pendingTask.setUuid(DataHelper.createUuid()); - pendingTask.setTaskContext(TaskContext.CASE); - pendingTask.setTaskType(TaskType.CASE_INVESTIGATION); - pendingTask.setTaskStatus(TaskStatus.PENDING); - pendingTask.setCaze(caze); - pendingTask.setAssigneeUser(survSupervisor); - pendingTask = taskFacade.saveTask(pendingTask); + RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility"); + UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR); + PersonDto cazePerson = creator.createPerson("Case", "Person"); + CaseDataDto caze = creator.createCase(user, cazePerson, Disease.EVD, CaseClassification.PROBABLE, + InvestigationStatus.PENDING, new Date(), rdcf); + UserDto caseOfficer = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), "Case", "Officer", UserRole.CASE_OFFICER); + TaskDto pendingTask = creator.createTask(TaskContext.CASE, TaskType.CASE_INVESTIGATION, TaskStatus.PENDING, caze, null, user); + TaskDto doneTask = creator.createTask(TaskContext.CASE, TaskType.CASE_INVESTIGATION, TaskStatus.DONE, caze, null, user); - TaskDto doneTask = new TaskDto(); - doneTask.setUuid(DataHelper.createUuid()); - doneTask.setTaskContext(TaskContext.CASE); - doneTask.setTaskType(TaskType.CASE_INVESTIGATION); - doneTask.setTaskStatus(TaskStatus.DONE); - doneTask.setCaze(caze); - doneTask.setAssigneeUser(survSupervisor); - doneTask = taskFacade.saveTask(doneTask); - - RDCF newRDCF = createRDCF("New Region", "New District", "New Community", "New Facility"); + RDCF newRDCF = creator.createRDCF("New Region", "New District", "New Community", "New Facility"); caseFacade.moveCase(caze, communityFacade.getByUuid(newRDCF.community.getUuid()), facilityFacade.getByUuid(newRDCF.facility.getUuid()), caze.getHealthFacilityDetails(), caseOfficer); caze = caseFacade.getCaseDataByUuid(caze.getUuid()); @@ -170,114 +120,19 @@ public void testMovingCaseUpdatesTaskAssigneeAndCreatesPreviousHospitalization() // Pending task should've been reassigned to the case officer, done task should still be assigned to the surveillance supervisor assertEquals(pendingTask.getAssigneeUser().getUuid(), caseOfficer.getUuid()); - assertEquals(doneTask.getAssigneeUser().getUuid(), survSupervisor.getUuid()); + assertEquals(doneTask.getAssigneeUser().getUuid(), user.getUuid()); // A previous hospitalization with the former facility should have been created List previousHospitalizations = caze.getHospitalization().getPreviousHospitalizations(); assertEquals(previousHospitalizations.size(), 1); } - private UserDto createSurveillanceSupervisor(UserFacade userFacade, String regionUuid, String districtUuid) { - RegionFacade regionFacade = getBean(RegionFacadeEjb.class); - DistrictFacade districtFacade = getBean(DistrictFacadeEjb.class); - - // TODO handle user creation at a central place - UserDto user = new UserDto(); - user.setUuid(DataHelper.createUuid()); - user.setFirstName("Admin"); - user.setLastName("Symeda"); - user.setUserName("AdminSymeda"); - user.setUserRoles(new HashSet(Arrays.asList(UserRole.SURVEILLANCE_SUPERVISOR))); - user.setRegion(regionFacade.getRegionByUuid(regionUuid)); - user.setDistrict(districtFacade.getDistrictByUuid(districtUuid)); - user = userFacade.saveUser(user); - - return user; - } - - private PersonDto createCasePerson(PersonFacade personFacade) { - // TODO add create method to PersonFacade - PersonDto cazePerson = new PersonDto(); - cazePerson.setUuid(DataHelper.createUuid()); - cazePerson.setFirstName("Tim"); - cazePerson.setLastName("Kunsen"); - cazePerson = personFacade.savePerson(cazePerson); - - return cazePerson; + private TestDataCreator createTestDataCreator() { + return new TestDataCreator(getBean(UserFacadeEjbLocal.class), getBean(PersonFacadeEjb.class), + getBean(CaseFacadeEjbLocal.class), getBean(ContactFacadeEjbLocal.class), getBean(TaskFacadeEjb.class), + getBean(VisitFacadeEjb.class), getBean(RegionFacadeEjb.class), getBean(DistrictFacadeEjb.class), getBean(CommunityFacadeEjb.class), + getBean(FacilityFacadeEjb.class), getBean(RegionService.class), getBean(DistrictService.class), + getBean(CommunityService.class), getBean(FacilityService.class)); } - - private CaseDataDto createCase(CaseFacade caseFacade, UserDto user, PersonDto cazePerson, RDCF rdcf) { - RegionFacade regionFacade = getBean(RegionFacadeEjb.class); - DistrictFacade districtFacade = getBean(DistrictFacadeEjb.class); - CommunityFacade communityFacade = getBean(CommunityFacadeEjb.class); - FacilityFacade facilityFacade = getBean(FacilityFacadeEjb.class); - - // TODO add create method to CaseFacade that takes a person - CaseDataDto caze = new CaseDataDto(); - caze.setPerson(cazePerson); - caze.setReportDate(new Date()); - caze.setReportingUser(user); - caze.setDisease(Disease.EVD); - caze.setCaseClassification(CaseClassification.PROBABLE); - caze.setInvestigationStatus(InvestigationStatus.PENDING); - caze.setRegion(regionFacade.getRegionByUuid(rdcf.region.getUuid())); - caze.setDistrict(districtFacade.getDistrictByUuid(rdcf.district.getUuid())); - caze.setCommunity(communityFacade.getByUuid(rdcf.community.getUuid())); - caze.setHealthFacility(facilityFacade.getByUuid(rdcf.facility.getUuid())); - - caze = caseFacade.saveCase(caze); - - return caze; - } - - private RDCF createRDCF(String regionName, String districtName, String communityName, String facilityName) { - RegionService regionService = getBean(RegionService.class); - DistrictService districtService = getBean(DistrictService.class); - CommunityService communityService = getBean(CommunityService.class); - FacilityService facilityService = getBean(FacilityService.class); - - Region region = new Region(); - region.setUuid(DataHelper.createUuid()); - region.setName(regionName); - regionService.persist(region); - - District district = new District(); - district.setUuid(DataHelper.createUuid()); - district.setName(districtName); - district.setRegion(region); - districtService.persist(district); - - Community community = new Community(); - community.setUuid(DataHelper.createUuid()); - community.setName("New Community"); - community.setDistrict(district); - communityService.persist(community); - - Facility facility = new Facility(); - facility.setUuid(DataHelper.createUuid()); - facility.setName("New Facility"); - facility.setType(FacilityType.PRIMARY); - facility.setCommunity(community); - facility.setDistrict(district); - facility.setRegion(region); - facilityService.persist(facility); - - return new RDCF(region, district, community, facility); - } - - private class RDCF { - public Region region; - public District district; - public Community community; - public Facility facility; - - public RDCF(Region region, District district, Community community, Facility facility) { - this.region = region; - this.district = district; - this.community = community; - this.facility = facility; - } - } - } diff --git a/sormas-backend/src/test/java/de/symeda/sormas/backend/contact/ContactFacadeEjbTest.java b/sormas-backend/src/test/java/de/symeda/sormas/backend/contact/ContactFacadeEjbTest.java index a8e444fc255..e5185a04ca4 100644 --- a/sormas-backend/src/test/java/de/symeda/sormas/backend/contact/ContactFacadeEjbTest.java +++ b/sormas-backend/src/test/java/de/symeda/sormas/backend/contact/ContactFacadeEjbTest.java @@ -3,9 +3,7 @@ import static org.junit.Assert.assertEquals; import java.time.LocalDate; -import java.util.Arrays; import java.util.Date; -import java.util.HashSet; import java.util.List; import org.apache.commons.lang3.time.DateUtils; @@ -29,14 +27,23 @@ import de.symeda.sormas.api.user.UserDto; import de.symeda.sormas.api.user.UserFacade; import de.symeda.sormas.api.user.UserRole; -import de.symeda.sormas.api.utils.DataHelper; import de.symeda.sormas.api.visit.VisitDto; import de.symeda.sormas.api.visit.VisitFacade; import de.symeda.sormas.api.visit.VisitStatus; import de.symeda.sormas.backend.MockProducer; +import de.symeda.sormas.backend.TestDataCreator; +import de.symeda.sormas.backend.TestDataCreator.RDCF; import de.symeda.sormas.backend.caze.CaseFacadeEjb.CaseFacadeEjbLocal; import de.symeda.sormas.backend.contact.ContactFacadeEjb.ContactFacadeEjbLocal; +import de.symeda.sormas.backend.facility.FacilityFacadeEjb; +import de.symeda.sormas.backend.facility.FacilityService; import de.symeda.sormas.backend.person.PersonFacadeEjb; +import de.symeda.sormas.backend.region.CommunityFacadeEjb; +import de.symeda.sormas.backend.region.CommunityService; +import de.symeda.sormas.backend.region.DistrictFacadeEjb; +import de.symeda.sormas.backend.region.DistrictService; +import de.symeda.sormas.backend.region.RegionFacadeEjb; +import de.symeda.sormas.backend.region.RegionService; import de.symeda.sormas.backend.task.TaskFacadeEjb; import de.symeda.sormas.backend.user.UserFacadeEjb.UserFacadeEjbLocal; import de.symeda.sormas.backend.util.DateHelper8; @@ -46,7 +53,7 @@ public class ContactFacadeEjbTest extends BaseBeanTest { /** - * Setzt die Mocks auf den initialen Stand zurück, damit Mock-Konfigurationen nicht zwischen Tests geteilt werden. + * Resets mocks to their initial state so that mock configurations are not shared between tests. */ @Before public void resetMocks() { @@ -55,67 +62,24 @@ public void resetMocks() { @Test public void testUpdateFollowUpUntil() { - - // TODO create provider for facades (probably best to add a SormasBeanTest class) - UserFacade userFacade = getBean(UserFacadeEjbLocal.class); ContactFacade contactFacade = getBean(ContactFacadeEjbLocal.class); - PersonFacade personFacade = getBean(PersonFacadeEjb.class); - CaseFacade caseFacade = getBean(CaseFacadeEjbLocal.class); VisitFacade visitFacade = getBean(VisitFacadeEjb.class); - // TODO handle user creation at a central place - UserDto user = new UserDto(); - user.setUuid(DataHelper.createUuid()); - user.setFirstName("Admin"); - user.setLastName("Symeda"); - user.setUserName("AdminSymeda"); - user.setUserRoles(new HashSet(Arrays.asList(UserRole.SURVEILLANCE_SUPERVISOR))); - user = userFacade.saveUser(user); + TestDataCreator creator = createTestDataCreator(); - // TODO add create method to PersonFacde - PersonDto cazePerson = new PersonDto(); - cazePerson.setUuid(DataHelper.createUuid()); - cazePerson.setFirstName("Tim"); - cazePerson.setLastName("Kunsen"); - cazePerson = personFacade.savePerson(cazePerson); - - // TODO add create method to CaseFacade that takes a person - CaseDataDto caze = new CaseDataDto(); - caze.setPerson(cazePerson); - caze.setReportDate(new Date()); - caze.setReportingUser(user); - caze.setDisease(Disease.EVD); - caze.setCaseClassification(CaseClassification.PROBABLE); - caze.setInvestigationStatus(InvestigationStatus.PENDING); - caze = caseFacade.saveCase(caze); - - PersonDto contactPerson = new PersonDto(); - cazePerson.setUuid(DataHelper.createUuid()); - contactPerson.setFirstName("Steff"); - contactPerson.setLastName("Hansen"); - contactPerson = personFacade.savePerson(contactPerson); - - ContactDto contact = new ContactDto(); - contact.setUuid(DataHelper.createUuid()); - contact.setReportDateTime(new Date()); - contact.setReportingUser(user); - contact.setContactOfficer(user); - contact.setPerson(contactPerson); - contact.setCaze(caze); - contact.setLastContactDate(new Date()); - contact = contactFacade.saveContact(contact); + RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility"); + UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR); + PersonDto cazePerson = creator.createPerson("Case", "Person"); + CaseDataDto caze = creator.createCase(user, cazePerson, Disease.EVD, CaseClassification.PROBABLE, + InvestigationStatus.PENDING, new Date(), rdcf); + PersonDto contactPerson = creator.createPerson("Contact", "Person"); + ContactDto contact = creator.createContact(user, user, contactPerson, caze, new Date(), new Date()); assertEquals(FollowUpStatus.FOLLOW_UP, contact.getFollowUpStatus()); assertEquals(LocalDate.now().plusDays(21), DateHelper8.toLocalDate(contact.getFollowUpUntil())); - // TODO VisitController.createNewVisit should be moved to the facade or to a helper - VisitDto visit = new VisitDto(); - visit.setDisease(caze.getDisease()); - visit.setPerson(contactPerson); - visit.setVisitDateTime(DateUtils.addDays(new Date(), 21)); - visit.setVisitStatus(VisitStatus.UNAVAILABLE); - visit = visitFacade.saveVisit(visit); - + VisitDto visit = creator.createVisit(caze.getDisease(), contactPerson, DateUtils.addDays(new Date(), 21), VisitStatus.UNAVAILABLE); + // should now be one day more contact = contactFacade.getContactByUuid(contact.getUuid()); assertEquals(FollowUpStatus.FOLLOW_UP, contact.getFollowUpStatus()); @@ -132,55 +96,21 @@ public void testUpdateFollowUpUntil() { @Test public void testGenerateContactFollowUpTasks() { - - // TODO create provider for facades (probably best to add a SormasBeanTest class) UserFacade userFacade = getBean(UserFacadeEjbLocal.class); ContactFacade contactFacade = getBean(ContactFacadeEjbLocal.class); PersonFacade personFacade = getBean(PersonFacadeEjb.class); CaseFacade caseFacade = getBean(CaseFacadeEjbLocal.class); TaskFacade taskFacade = getBean(TaskFacadeEjb.class); - // TODO handle user creation at a central place - UserDto user = new UserDto(); - user.setUuid(DataHelper.createUuid()); - user.setFirstName("Admin"); - user.setLastName("Symeda"); - user.setUserName("AdminSymeda"); - user.setUserRoles(new HashSet(Arrays.asList(UserRole.SURVEILLANCE_SUPERVISOR))); - user = userFacade.saveUser(user); - - // TODO add create method to PersonFacde - PersonDto cazePerson = new PersonDto(); - cazePerson.setUuid(DataHelper.createUuid()); - cazePerson.setFirstName("Tim"); - cazePerson.setLastName("Kunsen"); - cazePerson = personFacade.savePerson(cazePerson); - - // TODO add create method to CaseFacade that takes a person - CaseDataDto caze = new CaseDataDto(); - caze.setPerson(cazePerson); - caze.setReportDate(new Date()); - caze.setReportingUser(user); - caze.setDisease(Disease.EVD); - caze.setCaseClassification(CaseClassification.PROBABLE); - caze.setInvestigationStatus(InvestigationStatus.PENDING); - caze = caseFacade.saveCase(caze); - - PersonDto contactPerson = new PersonDto(); - cazePerson.setUuid(DataHelper.createUuid()); - contactPerson.setFirstName("Steff"); - contactPerson.setLastName("Hansen"); - contactPerson = personFacade.savePerson(contactPerson); + TestDataCreator creator = createTestDataCreator(); - ContactDto contact = new ContactDto(); - contact.setUuid(DataHelper.createUuid()); - contact.setReportDateTime(new Date()); - contact.setReportingUser(user); - contact.setContactOfficer(user); - contact.setPerson(contactPerson); - contact.setCaze(caze); - contact.setLastContactDate(new Date()); - contact = contactFacade.saveContact(contact); + RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility"); + UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR); + PersonDto cazePerson = creator.createPerson("Case", "Person"); + CaseDataDto caze = creator.createCase(user, cazePerson, Disease.EVD, CaseClassification.PROBABLE, + InvestigationStatus.PENDING, new Date(), rdcf); + PersonDto contactPerson = creator.createPerson("Contact", "Person"); + ContactDto contact = creator.createContact(user, user, contactPerson, caze, new Date(), new Date()); contactFacade.generateContactFollowUpTasks(); @@ -197,4 +127,13 @@ public void testGenerateContactFollowUpTasks() { tasks = taskFacade.getAllByContact(contact); assertEquals(1, tasks.size()); } + + private TestDataCreator createTestDataCreator() { + return new TestDataCreator(getBean(UserFacadeEjbLocal.class), getBean(PersonFacadeEjb.class), + getBean(CaseFacadeEjbLocal.class), getBean(ContactFacadeEjbLocal.class), getBean(TaskFacadeEjb.class), + getBean(VisitFacadeEjb.class), getBean(RegionFacadeEjb.class), getBean(DistrictFacadeEjb.class), getBean(CommunityFacadeEjb.class), + getBean(FacilityFacadeEjb.class), getBean(RegionService.class), getBean(DistrictService.class), + getBean(CommunityService.class), getBean(FacilityService.class)); + } + } From a502d2cd27c9b17b9f05b73182fbfc9164be177d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=A9=20Strysewske?= Date: Thu, 12 Oct 2017 11:12:47 +0200 Subject: [PATCH 09/54] #171 - added "generate weekly report" task, added weekly report summaries, added detailed weekly report view for supervisors, added backend test, added generic method to add icons to grid columns --- .../sormas/api/facility/FacilityDto.java | 1 + .../sormas/api/region/DistrictFacade.java | 2 + .../sormas/api/region/RegionFacade.java | 2 + .../sormas/api/report/WeeklyReportFacade.java | 9 +- .../de/symeda/sormas/api/task/TaskType.java | 3 +- .../de/symeda/sormas/api/user/UserFacade.java | 2 + sormas-api/src/main/resources/enum.properties | 1 + .../main/resources/fieldCaptions.properties | 7 +- .../api/utils/EpiWeekCalculationTest.java | 46 ++++++ .../sormas/app/backend/task/TaskDao.java | 2 + .../app/task/TaskNotificationService.java | 2 +- .../sormas/backend/common/CronService.java | 8 +- .../backend/region/DistrictFacadeEjb.java | 5 + .../backend/region/RegionFacadeEjb.java | 5 + .../backend/report/WeeklyReportFacadeEjb.java | 90 ++++++++++- .../backend/report/WeeklyReportService.java | 145 ++++++++++++++++-- .../sormas/backend/user/UserFacadeEjb.java | 9 ++ .../sormas/backend/user/UserService.java | 66 +++++--- .../sormas/backend/TestDataCreator.java | 54 ++++++- .../backend/caze/CaseFacadeEjbTest.java | 11 +- .../backend/contact/ContactFacadeEjbTest.java | 16 +- .../report/WeeklyReportFacadeEjbTest.java | 98 ++++++++++++ .../test/resources/META-INF/persistence.xml | 2 + .../java/de/symeda/sormas/ui/MainScreen.java | 2 +- .../ui/events/EventParticipantsGrid.java | 3 +- .../symeda/sormas/ui/reports/ReportsView.java | 4 +- .../ui/reports/WeeklyReportDetailsGrid.java | 124 +++++++++++++++ .../sormas/ui/reports/WeeklyReportGrid.java | 70 ++++++--- .../sormas/ui/samples/SampleTestGrid.java | 3 +- .../symeda/sormas/ui/task/TaskController.java | 2 - .../de/symeda/sormas/ui/task/TaskGrid.java | 3 +- .../symeda/sormas/ui/utils/VaadinUiUtil.java | 10 +- .../de/symeda/sormas/ui/visit/VisitGrid.java | 3 +- 33 files changed, 705 insertions(+), 105 deletions(-) create mode 100644 sormas-api/src/test/java/de/symeda/sormas/api/utils/EpiWeekCalculationTest.java create mode 100644 sormas-backend/src/test/java/de/symeda/sormas/backend/report/WeeklyReportFacadeEjbTest.java create mode 100644 sormas-ui/src/main/java/de/symeda/sormas/ui/reports/WeeklyReportDetailsGrid.java diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/facility/FacilityDto.java b/sormas-api/src/main/java/de/symeda/sormas/api/facility/FacilityDto.java index d25ab55283d..39c1ba44aa3 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/facility/FacilityDto.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/facility/FacilityDto.java @@ -16,6 +16,7 @@ public class FacilityDto extends FacilityReferenceDto { public static final String NONE_FACILITY_UUID = "SORMAS-CONSTID-ISNONE-FACILITY"; public static final String OTHER_FACILITY = "OTHER_FACILITY"; public static final String NO_FACILITY = "NO_FACILITY"; + public static final String NAME = "name"; private String name; private RegionReferenceDto region; diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/region/DistrictFacade.java b/sormas-api/src/main/java/de/symeda/sormas/api/region/DistrictFacade.java index b1c12e3f9e5..e39e8080f7c 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/region/DistrictFacade.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/region/DistrictFacade.java @@ -13,5 +13,7 @@ public interface DistrictFacade { List getAllAfter(Date date); DistrictDto getDistrictByUuid(String uuid); + + DistrictReferenceDto getDistrictReferenceByUuid(String uuid); } diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/region/RegionFacade.java b/sormas-api/src/main/java/de/symeda/sormas/api/region/RegionFacade.java index 9c4af205b60..8b002a85bcb 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/region/RegionFacade.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/region/RegionFacade.java @@ -14,6 +14,8 @@ public interface RegionFacade { RegionDto getRegionByUuid(String uuid); + RegionReferenceDto getRegionReferenceByUuid(String uuid); + List getAllData(); } diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/report/WeeklyReportFacade.java b/sormas-api/src/main/java/de/symeda/sormas/api/report/WeeklyReportFacade.java index 4ba7cbfcb14..8bde0aadb70 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/report/WeeklyReportFacade.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/report/WeeklyReportFacade.java @@ -8,6 +8,7 @@ import de.symeda.sormas.api.facility.FacilityReferenceDto; import de.symeda.sormas.api.region.DistrictReferenceDto; import de.symeda.sormas.api.region.RegionReferenceDto; +import de.symeda.sormas.api.user.UserReferenceDto; import de.symeda.sormas.api.utils.EpiWeek; @Remote @@ -29,6 +30,12 @@ public interface WeeklyReportFacade { List getWeeklyReportsByFacility(FacilityReferenceDto facilityRef, EpiWeek epiWeek); - List getSummariesPerDistrict(EpiWeek epiWeek); + List getSummariesPerRegion(EpiWeek epiWeek); + + List getSummariesPerDistrict(RegionReferenceDto region, EpiWeek epiWeek); + + WeeklyReportReferenceDto getByEpiWeekAndUser(EpiWeek epiWeek, UserReferenceDto userRef); + + WeeklyReportDto getByUuid(String uuid); } diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/task/TaskType.java b/sormas-api/src/main/java/de/symeda/sormas/api/task/TaskType.java index 0d09cbd8fd6..5395e0fce90 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/task/TaskType.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/task/TaskType.java @@ -29,7 +29,8 @@ public enum TaskType { ANIMAL_DEPOPULATION(TaskContext.EVENT, TaskContext.CASE), OTHER(true, TaskContext.CASE, TaskContext.CONTACT, TaskContext.EVENT, TaskContext.GENERAL), DAILY_REPORT_GENERATION(TaskContext.GENERAL), - SURVEILLANCE_REPORT_GENERATION(TaskContext.GENERAL); + SURVEILLANCE_REPORT_GENERATION(TaskContext.GENERAL), + WEEKLY_REPORT_GENERATION(TaskContext.GENERAL); private final boolean creatorCommentRequired; private final TaskContext[] taskContexts; diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/user/UserFacade.java b/sormas-api/src/main/java/de/symeda/sormas/api/user/UserFacade.java index 297b28b17bf..f56f5f304fe 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/user/UserFacade.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/user/UserFacade.java @@ -35,4 +35,6 @@ public interface UserFacade { int getNumberOfInformantsByFacility(FacilityReferenceDto facilityRef); + List getForWeeklyReportDetails(DistrictReferenceDto districtRef); + } diff --git a/sormas-api/src/main/resources/enum.properties b/sormas-api/src/main/resources/enum.properties index fa30356d07c..c2c9f086c5a 100644 --- a/sormas-api/src/main/resources/enum.properties +++ b/sormas-api/src/main/resources/enum.properties @@ -186,6 +186,7 @@ TaskType.OTHER = other task as described in comments TaskType.DAILY_REPORT_GENERATION = generate daily report TaskType.SURVEILLANCE_REPORT_GENERATION = generate surveillance report TaskType.SAMPLE_COLLECTION = sample collection +TaskType.WEEKLY_REPORT_GENERATION = generate weekly report TemperatureSource.AXILLARY=axillary TemperatureSource.ORAL=oral diff --git a/sormas-api/src/main/resources/fieldCaptions.properties b/sormas-api/src/main/resources/fieldCaptions.properties index aed8d5f1d9c..f8cdb983acb 100644 --- a/sormas-api/src/main/resources/fieldCaptions.properties +++ b/sormas-api/src/main/resources/fieldCaptions.properties @@ -550,4 +550,9 @@ WeeklyReportSummary.reportsPercentage = % WeeklyReportSummary.zeroReports = Zero reports WeeklyReportSummary.zeroReportsPercentage = % WeeklyReportSummary.missingReports = Missing reports -WeeklyReportSummary.missingReportsPercentage = % \ No newline at end of file +WeeklyReportSummary.missingReportsPercentage = % + +WeeklyReportDetails.facilityAndInformant = Health Facility & Informant +WeeklyReportDetails.totalNumberOfCases = Number of Cases +WeeklyReportDetails.confirmed = Confirmed +WeeklyReportDetails.viewDetails = \ No newline at end of file diff --git a/sormas-api/src/test/java/de/symeda/sormas/api/utils/EpiWeekCalculationTest.java b/sormas-api/src/test/java/de/symeda/sormas/api/utils/EpiWeekCalculationTest.java new file mode 100644 index 00000000000..4393841e7ee --- /dev/null +++ b/sormas-api/src/test/java/de/symeda/sormas/api/utils/EpiWeekCalculationTest.java @@ -0,0 +1,46 @@ +package de.symeda.sormas.api.utils; + +import static org.junit.Assert.*; + +import java.util.Calendar; +import java.util.Date; + +import org.junit.Test; + +public class EpiWeekCalculationTest { + + @Test + public void testCalculatePreviousEpiWeek() { + EpiWeek epiWeek = new EpiWeek(2017, 1); + EpiWeek previousEpiWeek = DateHelper.getPreviousEpiWeek(epiWeek); + assertEquals(previousEpiWeek.getYear(), 2016); + assertEquals(previousEpiWeek.getWeek(), 52); + } + + @Test + public void testCalculateNextEpiWeek() { + EpiWeek epiWeek = new EpiWeek(2017, 53); + EpiWeek nextEpiWeek = DateHelper.getNextEpiWeek(epiWeek); + assertEquals(nextEpiWeek.getYear(), 2018); + assertEquals(nextEpiWeek.getWeek(), 1); + } + + @Test + public void testCalculateEpiWeekReportStartAndEnd() { + EpiWeek epiWeek = new EpiWeek(2017, 42); + Calendar calendar = Calendar.getInstance(); + calendar.set(2017, 10, 11); + Date weeklyReportDate = calendar.getTime(); + calendar.set(2017, 10, 10); + Date previousWeeklyReportDate = calendar.getTime(); + + Date[] startAndEnd = DateHelper.calculateEpiWeekReportStartAndEnd(epiWeek, weeklyReportDate, previousWeeklyReportDate, null); + assertTrue(startAndEnd[0].equals(previousWeeklyReportDate)); + assertFalse(startAndEnd[1].after(weeklyReportDate)); + + startAndEnd = DateHelper.calculateEpiWeekReportStartAndEnd(epiWeek, null, previousWeeklyReportDate, null); + assertTrue(startAndEnd[0].equals(previousWeeklyReportDate)); + assertTrue(startAndEnd[1].equals(DateHelper.getEpiWeekEnd(epiWeek))); + } + +} diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/task/TaskDao.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/task/TaskDao.java index 9c599bbb6e3..bc4fa9c999d 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/task/TaskDao.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/task/TaskDao.java @@ -65,6 +65,7 @@ public void changeTaskStatus(Task task, TaskStatus targetStatus) throws DaoExcep * 2. due date within range * 3. localChangeDate within range, not modified (-> has been updated on server) and suggested start before end of range * Ordered by priority, then due date - oldes (most due) first + * Typically, the range is the interval between two notification polls (e.g. 2 minutes) * @return */ public List queryMyPendingForNotification(Date rangeStart, Date rangeEnd) { @@ -86,6 +87,7 @@ public List queryMyPendingForNotification(Date rangeStart, Date rangeEnd) where.and( where.between(Task.LOCAL_CHANGE_DATE, rangeStart, rangeEnd), where.eq(Task.MODIFIED, false), + where.raw(Task.LAST_OPENED_DATE + " < " + Task.LOCAL_CHANGE_DATE), where.le(Task.SUGGESTED_START, rangeEnd) ) ) diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TaskNotificationService.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TaskNotificationService.java index 14535a82542..4edb374dfe1 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TaskNotificationService.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TaskNotificationService.java @@ -163,7 +163,7 @@ public static void doTaskNotification(Context context) { Notification notification = new NotificationCompat.Builder(context) .setTicker(r.getString(R.string.headline_task_notification)) .setSmallIcon(R.mipmap.ic_launcher) - .setContentTitle(task.getTaskType().toString() + " (" + (caze != null ? caze.getDisease().toShortString() : contact != null ? contact.getCaze().getDisease().toShortString() : "") + ")") + .setContentTitle(task.getTaskType().toString() + (caze != null ? " (" + caze.getDisease().toShortString() + ")" : contact != null ? " (" + contact.getCaze().getDisease().toShortString() + ")" : "")) .setStyle(new NotificationCompat.BigTextStyle().bigText(Html.fromHtml(content.toString()))) .setContentIntent(pi) .setAutoCancel(true) diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/common/CronService.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/common/CronService.java index 1b7eeeb6715..4cb4e8be9f6 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/common/CronService.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/common/CronService.java @@ -7,6 +7,7 @@ import de.symeda.sormas.api.user.UserRole; import de.symeda.sormas.backend.contact.ContactFacadeEjb.ContactFacadeEjbLocal; +import de.symeda.sormas.backend.report.WeeklyReportFacadeEjb.WeeklyReportFacadeEjbLocal; @Singleton @RunAs(UserRole._SYSTEM) @@ -14,10 +15,13 @@ public class CronService { @EJB private ContactFacadeEjbLocal contactFacade; + @EJB + private WeeklyReportFacadeEjbLocal weeklyReportFacade; - @Schedule(hour = "4", minute = "00", second = "0", persistent=false) + @Schedule(hour = "4", minute = "0", second = "0", persistent=false) public void runEveryNight() { - contactFacade.generateContactFollowUpTasks(); + contactFacade.generateContactFollowUpTasks(); + weeklyReportFacade.generateSubmitWeeklyReportTasks(); } } diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/region/DistrictFacadeEjb.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/region/DistrictFacadeEjb.java index 933a8285ae2..d0123c66794 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/region/DistrictFacadeEjb.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/region/DistrictFacadeEjb.java @@ -42,6 +42,11 @@ public DistrictDto getDistrictByUuid(String uuid) { return toDto(service.getByUuid(uuid)); } + @Override + public DistrictReferenceDto getDistrictReferenceByUuid(String uuid) { + return toReferenceDto(service.getByUuid(uuid)); + } + public static DistrictReferenceDto toReferenceDto(District entity) { if (entity == null) { return null; diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/region/RegionFacadeEjb.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/region/RegionFacadeEjb.java index 5136cfdc552..b4cc1b990ec 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/region/RegionFacadeEjb.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/region/RegionFacadeEjb.java @@ -45,6 +45,11 @@ public RegionDto getRegionByUuid(String uuid) { return toDto(service.getByUuid(uuid)); } + @Override + public RegionReferenceDto getRegionReferenceByUuid(String uuid) { + return toReferenceDto(service.getByUuid(uuid)); + } + public static RegionReferenceDto toReferenceDto(Region entity) { if (entity == null) { return null; diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/report/WeeklyReportFacadeEjb.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/report/WeeklyReportFacadeEjb.java index 01d5028482e..2c0f00c88af 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/report/WeeklyReportFacadeEjb.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/report/WeeklyReportFacadeEjb.java @@ -1,11 +1,15 @@ package de.symeda.sormas.backend.report; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.Collections; import java.util.Date; import java.util.List; import java.util.stream.Collectors; +import javax.annotation.security.RolesAllowed; import javax.ejb.EJB; +import javax.ejb.LocalBean; import javax.ejb.Stateless; import javax.validation.constraints.NotNull; @@ -17,15 +21,26 @@ import de.symeda.sormas.api.report.WeeklyReportFacade; import de.symeda.sormas.api.report.WeeklyReportReferenceDto; import de.symeda.sormas.api.report.WeeklyReportSummaryDto; +import de.symeda.sormas.api.task.TaskContext; +import de.symeda.sormas.api.task.TaskStatus; +import de.symeda.sormas.api.task.TaskType; +import de.symeda.sormas.api.user.UserReferenceDto; +import de.symeda.sormas.api.user.UserRole; +import de.symeda.sormas.api.utils.DateHelper; import de.symeda.sormas.api.utils.EpiWeek; import de.symeda.sormas.backend.facility.Facility; import de.symeda.sormas.backend.facility.FacilityFacadeEjb; import de.symeda.sormas.backend.facility.FacilityService; import de.symeda.sormas.backend.region.DistrictService; +import de.symeda.sormas.backend.region.Region; import de.symeda.sormas.backend.region.RegionService; +import de.symeda.sormas.backend.task.Task; +import de.symeda.sormas.backend.task.TaskCriteria; +import de.symeda.sormas.backend.task.TaskService; import de.symeda.sormas.backend.user.User; import de.symeda.sormas.backend.user.UserFacadeEjb; import de.symeda.sormas.backend.user.UserService; +import de.symeda.sormas.backend.util.DateHelper8; import de.symeda.sormas.backend.util.DtoHelper; @Stateless(name = "WeeklyReportFacade") @@ -41,6 +56,8 @@ public class WeeklyReportFacadeEjb implements WeeklyReportFacade { private FacilityService facilityService; @EJB private UserService userService; + @EJB + private TaskService taskService; @Override public List getAllWeeklyReportsAfter(Date date, String userUuid) { @@ -64,6 +81,11 @@ public List getByUuids(List uuids) { .collect(Collectors.toList()); } + @Override + public WeeklyReportDto getByUuid(String uuid) { + return toDto(weeklyReportService.getByUuid(uuid)); + } + @Override public WeeklyReportDto saveWeeklyReport(WeeklyReportDto dto) { WeeklyReport report = fromDto(dto); @@ -84,23 +106,29 @@ public List getAllUuids(String userUuid) { } @Override - public List getSummariesPerDistrict(EpiWeek epiWeek) { - weeklyReportService.getWeeklyReportSummariesPerDistrict(epiWeek); - return null; + public List getSummariesPerRegion(EpiWeek epiWeek) { + return weeklyReportService.getWeeklyReportSummariesPerRegion(epiWeek); + } + + @Override + public List getSummariesPerDistrict(RegionReferenceDto regionRef, EpiWeek epiWeek) { + Region region = regionService.getByReferenceDto(regionRef); + + return weeklyReportService.getWeeklyReportSummariesPerDistrict(region, epiWeek); } @Override public WeeklyReportSummaryDto getSummaryDtoByRegion(RegionReferenceDto regionRef, EpiWeek epiWeek) { List facilities = FacadeProvider.getFacilityFacade().getHealthFacilitiesByRegion(regionRef, false); - return buildUIDto(facilities, regionRef, null, epiWeek); + return buildSummaryDto(facilities, regionRef, null, epiWeek); } @Override public WeeklyReportSummaryDto getSummaryDtoByDistrict(DistrictReferenceDto districtRef, EpiWeek epiWeek) { List facilities = FacadeProvider.getFacilityFacade().getHealthFacilitiesByDistrict(districtRef, false); - return buildUIDto(facilities, null, districtRef, epiWeek); + return buildSummaryDto(facilities, null, districtRef, epiWeek); } @Override @@ -120,6 +148,13 @@ public List getWeeklyReportsByFacility(FacilityReferen .collect(Collectors.toList()); } + @Override + public WeeklyReportReferenceDto getByEpiWeekAndUser(EpiWeek epiWeek, UserReferenceDto userRef) { + User user = userService.getByReferenceDto(userRef); + + return toReferenceDto(weeklyReportService.getByEpiWeekAndUser(epiWeek, user)); + } + public WeeklyReport fromDto(@NotNull WeeklyReportDto source) { WeeklyReport target = weeklyReportService.getByUuid(source.getUuid()); @@ -166,7 +201,7 @@ public static WeeklyReportDto toDto(WeeklyReport source) { return target; } - private WeeklyReportSummaryDto buildUIDto(List facilities, RegionReferenceDto regionRef, DistrictReferenceDto districtRef, EpiWeek epiWeek) { + private WeeklyReportSummaryDto buildSummaryDto(List facilities, RegionReferenceDto regionRef, DistrictReferenceDto districtRef, EpiWeek epiWeek) { WeeklyReportSummaryDto dto = new WeeklyReportSummaryDto(); int numberOfReports = 0; int numberOfZeroReports = 0; @@ -210,5 +245,48 @@ private WeeklyReportSummaryDto buildUIDto(List facilities, return dto; } + + @RolesAllowed(UserRole._SYSTEM) + public void generateSubmitWeeklyReportTasks() { + List informants = userService.getAllByRegionAndUserRoles(null, UserRole.INFORMANT); + EpiWeek prevEpiWeek = DateHelper.getPreviousEpiWeek(new Date()); + + for (User user : informants) { + WeeklyReport report = weeklyReportService.getByEpiWeekAndUser(prevEpiWeek, user); + + if (report != null) { + // A Weekly Report for last week has been found, so there is no need to create a task + continue; + } else { + TaskCriteria pendingUserTaskCriteria = new TaskCriteria() + .taskTypeEquals(TaskType.WEEKLY_REPORT_GENERATION) + .assigneeUserEquals(user) + .taskStatusEquals(TaskStatus.PENDING); + List existingTasks = taskService.findBy(pendingUserTaskCriteria); + + if (!existingTasks.isEmpty()) { + // There is already a task for generating the Weekly Report for last week + continue; + } + + // Create the task + LocalDateTime fromDateTime = LocalDate.now().atStartOfDay(); + LocalDateTime toDateTime = fromDateTime.plusDays(1); + + Task task = taskService.buildTask(null); + task.setTaskContext(TaskContext.GENERAL); + task.setTaskType(TaskType.WEEKLY_REPORT_GENERATION); + task.setSuggestedStart(DateHelper8.toDate(fromDateTime)); + task.setDueDate(DateHelper8.toDate(toDateTime.minusMinutes(1))); + task.setAssigneeUser(user); + taskService.ensurePersisted(task); + } + } + } + + @LocalBean + @Stateless + public static class WeeklyReportFacadeEjbLocal extends WeeklyReportFacadeEjb { + } } diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/report/WeeklyReportService.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/report/WeeklyReportService.java index 173aa580851..1747ef52b58 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/report/WeeklyReportService.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/report/WeeklyReportService.java @@ -1,9 +1,17 @@ package de.symeda.sormas.backend.report; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayList; import java.util.List; +import javax.ejb.EJB; import javax.ejb.LocalBean; import javax.ejb.Stateless; +import javax.ejb.TransactionAttribute; +import javax.ejb.TransactionAttributeType; +import javax.persistence.NoResultException; +import javax.persistence.Query; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.From; @@ -17,12 +25,22 @@ import de.symeda.sormas.api.utils.EpiWeek; import de.symeda.sormas.backend.common.AbstractAdoService; import de.symeda.sormas.backend.facility.Facility; +import de.symeda.sormas.backend.region.DistrictFacadeEjb; +import de.symeda.sormas.backend.region.DistrictService; +import de.symeda.sormas.backend.region.Region; +import de.symeda.sormas.backend.region.RegionFacadeEjb; +import de.symeda.sormas.backend.region.RegionService; import de.symeda.sormas.backend.user.User; @Stateless @LocalBean public class WeeklyReportService extends AbstractAdoService { + @EJB + private RegionService regionService; + @EJB + private DistrictService districtService; + public WeeklyReportService() { super(WeeklyReport.class); } @@ -50,26 +68,121 @@ public List getByFacility(Facility facility, EpiWeek epiWeek) { filter = cb.and(filter, cb.equal(from.get(WeeklyReport.YEAR), epiWeek.getYear())); filter = cb.and(filter, cb.equal(from.get(WeeklyReport.EPI_WEEK), epiWeek.getWeek())); + cq.where(filter); cq.orderBy(cb.asc(from.get(WeeklyReport.HEALTH_FACILITY))); return em.createQuery(cq).getResultList(); } - public List getWeeklyReportSummariesPerDistrict(EpiWeek epiWeek) { - // TODO replace with variables -// Query query = em.createQuery("SELECT region_id, COUNT(fac) as facilities, SUM(missing) as missing, SUM(report) as report, SUM(zero) as zero " -// + "FROM (SELECT facility.id as fac, facility.region_id, " -// + "CASE WHEN COUNT(users.id) > COUNT(wr.id) THEN 1 ELSE 0 END as missing, " -// + "CASE WHEN SUM(wr.totalnumberofcases) > 0 AND COUNT(users.id) = COUNT(wr.id) THEN 1 ELSE 0 END as report, " -// + "CASE WHEN SUM(wr.totalnumberofcases) = 0 AND COUNT(users.id) = COUNT(wr.id) THEN 1 ELSE 0 END as zero " -// + "FROM users " -// + "INNER JOIN userroles ON userroles.user_id = users.id " -// + "INNER JOIN facility ON users.healthfacility_id = facility.id " -// + "LEFT JOIN (SELECT * FROM weeklyreport WHERE epiweek = 41) as wr ON wr.informant_id = users.id " -// + "WHERE userroles.userrole = 'INFORMANT' " -// + "GROUP BY facility.id) as inner_query " -// + "GROUP BY region_id;"); - - return null; + public WeeklyReport getByEpiWeekAndUser(EpiWeek epiWeek, User user) { + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(getElementClass()); + Root from = cq.from(getElementClass()); + + Predicate filter = cb.equal(from.get(WeeklyReport.EPI_WEEK), epiWeek.getWeek()); + filter = cb.and(filter, cb.equal(from.get(WeeklyReport.YEAR), epiWeek.getYear())); + filter = cb.and(filter, cb.equal(from.get(WeeklyReport.INFORMANT), user)); + + cq.where(filter); + try { + return em.createQuery(cq).getSingleResult(); + } catch (NoResultException e) { + return null; + } + } + + @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED) + public List getWeeklyReportSummariesPerRegion(EpiWeek epiWeek) { + Query query = em.createNativeQuery("SELECT region_id, COUNT(fac) as facilities, SUM(missing) as missing, SUM(report) as report, SUM(zero) as zero " + + "FROM (" + + "SELECT facility.id as fac, facility.region_id, " + + "CASE WHEN COUNT(users.id) > COUNT(wr.id) THEN 1 ELSE 0 END as missing, " + + "CASE WHEN SUM(wr.totalnumberofcases) > 0 AND COUNT(users.id) = COUNT(wr.id) THEN 1 ELSE 0 END as report, " + + "CASE WHEN SUM(wr.totalnumberofcases) = 0 AND COUNT(users.id) = COUNT(wr.id) THEN 1 ELSE 0 END as zero " + + "FROM users " + + "INNER JOIN userroles ON userroles.user_id = users.id " + + "INNER JOIN facility ON users.healthfacility_id = facility.id " + + "LEFT JOIN (" + + "SELECT * FROM weeklyreport WHERE year = " + epiWeek.getYear() + " AND epiweek = " + epiWeek.getWeek() + + ") as wr ON wr.informant_id = users.id " + + "WHERE userroles.userrole = 'INFORMANT' " + + "GROUP BY facility.id" + + ") as inner_query " + + "GROUP BY region_id;"); + + @SuppressWarnings("rawtypes") + List results = query.getResultList(); + + List summaryDtos = new ArrayList<>(); + + for (int i = 0; i < results.size(); i++) { + Object[] result = (Object[]) results.get(i); + int reports = ((Long) result[3]).intValue(); + int missingReports = ((Long) result[2]).intValue(); + int zeroReports = ((Long) result[4]).intValue(); + int totalReports = reports + missingReports + zeroReports; + + WeeklyReportSummaryDto summaryDto = new WeeklyReportSummaryDto(); + summaryDto.setRegion(RegionFacadeEjb.toReferenceDto(regionService.getById((long) result[0]))); + summaryDto.setFacilities(((Long) result[1]).intValue()); + summaryDto.setMissingReports(missingReports); + summaryDto.setReports(reports); + summaryDto.setZeroReports(zeroReports); + summaryDto.setMissingReportsPercentage(new BigDecimal(missingReports).multiply(new BigDecimal(100)).divide(new BigDecimal(totalReports), RoundingMode.HALF_UP).intValue()); + summaryDto.setReportsPercentage(new BigDecimal(reports).multiply(new BigDecimal(100)).divide(new BigDecimal(totalReports), RoundingMode.HALF_UP).intValue()); + summaryDto.setZeroReportsPercentage(new BigDecimal(zeroReports).multiply(new BigDecimal(100)).divide(new BigDecimal(totalReports), RoundingMode.HALF_UP).intValue()); + + summaryDtos.add(summaryDto); + } + + return summaryDtos; + } + + @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED) + public List getWeeklyReportSummariesPerDistrict(Region region, EpiWeek epiWeek) { + Query query = em.createNativeQuery("SELECT district_id, COUNT(fac) as facilities, SUM(missing) as missing, SUM(report) as report, SUM(zero) as zero " + + "FROM (" + + "SELECT facility.id as fac, facility.district_id, " + + "CASE WHEN COUNT(users.id) > COUNT(wr.id) THEN 1 ELSE 0 END as missing, " + + "CASE WHEN SUM(wr.totalnumberofcases) > 0 AND COUNT(users.id) = COUNT(wr.id) THEN 1 ELSE 0 END as report, " + + "CASE WHEN SUM(wr.totalnumberofcases) = 0 AND COUNT(users.id) = COUNT(wr.id) THEN 1 ELSE 0 END as zero " + + "FROM users " + + "INNER JOIN userroles ON userroles.user_id = users.id " + + "INNER JOIN facility ON users.healthfacility_id = facility.id " + + "LEFT JOIN (" + + "SELECT * FROM weeklyreport WHERE year = " + epiWeek.getYear() + " AND epiweek = " + epiWeek.getWeek() + + ") as wr ON wr.informant_id = users.id " + + "WHERE userroles.userrole = 'INFORMANT' " + + "AND facility.region_id = " + region.getId() + " " + + "GROUP BY facility.id" + + ") as inner_query " + + "GROUP BY district_id;"); + + @SuppressWarnings("rawtypes") + List results = query.getResultList(); + + List summaryDtos = new ArrayList<>(); + + for (int i = 0; i < results.size(); i++) { + Object[] result = (Object[]) results.get(i); + int reports = ((Long) result[3]).intValue(); + int missingReports = ((Long) result[2]).intValue(); + int zeroReports = ((Long) result[4]).intValue(); + int totalReports = reports + missingReports + zeroReports; + + WeeklyReportSummaryDto summaryDto = new WeeklyReportSummaryDto(); + summaryDto.setDistrict(DistrictFacadeEjb.toReferenceDto(districtService.getById((long) result[0]))); + summaryDto.setFacilities(((Long) result[1]).intValue()); + summaryDto.setMissingReports(missingReports); + summaryDto.setReports(reports); + summaryDto.setZeroReports(zeroReports); + summaryDto.setMissingReportsPercentage(new BigDecimal(missingReports).multiply(new BigDecimal(100)).divide(new BigDecimal(totalReports), RoundingMode.HALF_UP).intValue()); + summaryDto.setReportsPercentage(new BigDecimal(reports).multiply(new BigDecimal(100)).divide(new BigDecimal(totalReports), RoundingMode.HALF_UP).intValue()); + summaryDto.setZeroReportsPercentage(new BigDecimal(zeroReports).multiply(new BigDecimal(100)).divide(new BigDecimal(totalReports), RoundingMode.HALF_UP).intValue()); + + summaryDtos.add(summaryDto); + } + + return summaryDtos; } /** diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/user/UserFacadeEjb.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/user/UserFacadeEjb.java index af5e49431ae..b38bc868c68 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/user/UserFacadeEjb.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/user/UserFacadeEjb.java @@ -72,6 +72,15 @@ public List getAssignableUsersByDistrict(DistrictReferenceDto .map(f -> toReferenceDto(f)) .collect(Collectors.toList()); } + + @Override + public List getForWeeklyReportDetails(DistrictReferenceDto districtRef) { + District district = districtService.getByReferenceDto(districtRef); + + return userService.getForWeeklyReportDetails(district).stream() + .map(u -> toReferenceDto(u)) + .collect(Collectors.toList()); + } @Override public List getAll(UserRole... roles) { diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/user/UserService.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/user/UserService.java index 3c3d8eb072c..0131ecfdc0a 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/user/UserService.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/user/UserService.java @@ -96,37 +96,25 @@ public List getAllByDistrict(District district, boolean includeSupervisors CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(getElementClass()); Root from = cq.from(getElementClass()); - - Predicate filter = cb.equal(from.get(User.DISTRICT), district); - - if (userRoles.length > 0) { - Join joinRoles = from.join(User.USER_ROLES, JoinType.LEFT); - Predicate rolesFilter = joinRoles.in(Arrays.asList(userRoles)); - if (filter != null) { - filter = cb.and(filter, rolesFilter); - } else { - filter = rolesFilter; - } - } - if (includeSupervisors) { - Join joinRoles = from.join(User.USER_ROLES, JoinType.LEFT); - Predicate supervisorFilter = joinRoles.in(Arrays.asList(UserRole.CASE_SUPERVISOR, UserRole.CONTACT_SUPERVISOR, UserRole.SURVEILLANCE_SUPERVISOR)); - if (filter != null) { - filter = cb.or(filter, supervisorFilter); - } else { - filter = supervisorFilter; - } - } - - if (filter != null) { - cq.where(filter); - } + buildDistrictQuery(cb, cq, from, district, includeSupervisors, userRoles); cq.orderBy(cb.asc(from.get(AbstractDomainObject.ID))); return em.createQuery(cq).getResultList(); } + public List getForWeeklyReportDetails(District district) { + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(getElementClass()); + Root from = cq.from(getElementClass()); + + buildDistrictQuery(cb, cq, from, district, false, UserRole.INFORMANT); + + Join joinFacility = from.join(User.HEALTH_FACILITY, JoinType.LEFT); + cq.orderBy(cb.asc(joinFacility.get(Facility.NAME))); + return em.createQuery(cq).getResultList(); + } + public long getNumberOfInformantsByFacility(Facility facility) { CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(Long.class); @@ -175,5 +163,33 @@ protected Predicate createUserFilter(CriteriaBuilder cb, CriteriaQuery cq, From< // a user can read all other users return null; } + + private void buildDistrictQuery(CriteriaBuilder cb, CriteriaQuery cq, Root from, District district, boolean includeSupervisors, UserRole... userRoles) { + Predicate filter = cb.equal(from.get(User.DISTRICT), district); + + if (userRoles.length > 0) { + Join joinRoles = from.join(User.USER_ROLES, JoinType.LEFT); + Predicate rolesFilter = joinRoles.in(Arrays.asList(userRoles)); + if (filter != null) { + filter = cb.and(filter, rolesFilter); + } else { + filter = rolesFilter; + } + } + + if (includeSupervisors) { + Join joinRoles = from.join(User.USER_ROLES, JoinType.LEFT); + Predicate supervisorFilter = joinRoles.in(Arrays.asList(UserRole.CASE_SUPERVISOR, UserRole.CONTACT_SUPERVISOR, UserRole.SURVEILLANCE_SUPERVISOR)); + if (filter != null) { + filter = cb.or(filter, supervisorFilter); + } else { + filter = supervisorFilter; + } + } + + if (filter != null) { + cq.where(filter); + } + } } diff --git a/sormas-backend/src/test/java/de/symeda/sormas/backend/TestDataCreator.java b/sormas-backend/src/test/java/de/symeda/sormas/backend/TestDataCreator.java index 5f1f27f1afc..73145d195d4 100644 --- a/sormas-backend/src/test/java/de/symeda/sormas/backend/TestDataCreator.java +++ b/sormas-backend/src/test/java/de/symeda/sormas/backend/TestDataCreator.java @@ -20,6 +20,8 @@ import de.symeda.sormas.api.region.CommunityFacade; import de.symeda.sormas.api.region.DistrictFacade; import de.symeda.sormas.api.region.RegionFacade; +import de.symeda.sormas.api.report.WeeklyReportDto; +import de.symeda.sormas.api.report.WeeklyReportFacade; import de.symeda.sormas.api.task.TaskContext; import de.symeda.sormas.api.task.TaskDto; import de.symeda.sormas.api.task.TaskFacade; @@ -50,6 +52,7 @@ public class TestDataCreator extends BaseBeanTest { private final ContactFacade contactFacade; private final TaskFacade taskFacade; private final VisitFacade visitFacade; + private final WeeklyReportFacade weeklyReportFacade; private final RegionFacade regionFacade; private final DistrictFacade districtFacade; private final CommunityFacade communityFacade; @@ -61,8 +64,8 @@ public class TestDataCreator extends BaseBeanTest { private final FacilityService facilityService; public TestDataCreator(UserFacade userFacade, PersonFacade personFacade, CaseFacade caseFacade, - ContactFacade contactFacade, TaskFacade taskFacade, VisitFacade visitFacade, RegionFacade regionFacade, - DistrictFacade districtFacade, CommunityFacade communityFacade, FacilityFacade facilityFacade, + ContactFacade contactFacade, TaskFacade taskFacade, VisitFacade visitFacade, WeeklyReportFacade weeklyReportFacade, + RegionFacade regionFacade, DistrictFacade districtFacade, CommunityFacade communityFacade, FacilityFacade facilityFacade, RegionService regionService, DistrictService districtService, CommunityService communityService, FacilityService facilityService) { this.userFacade = userFacade; @@ -71,6 +74,7 @@ public TestDataCreator(UserFacade userFacade, PersonFacade personFacade, CaseFac this.contactFacade = contactFacade; this.taskFacade = taskFacade; this.visitFacade = visitFacade; + this.weeklyReportFacade = weeklyReportFacade; this.regionFacade = regionFacade; this.districtFacade = districtFacade; this.communityFacade = communityFacade; @@ -82,7 +86,7 @@ public TestDataCreator(UserFacade userFacade, PersonFacade personFacade, CaseFac } @Test - public UserDto createUser(String regionUuid, String districtUuid, String firstName, String lastName, UserRole... roles) { + public UserDto createUser(String regionUuid, String districtUuid, String facilityUuid, String firstName, String lastName, UserRole... roles) { UserDto user = new UserDto(); user.setUuid(DataHelper.createUuid()); user.setFirstName(firstName); @@ -91,6 +95,7 @@ public UserDto createUser(String regionUuid, String districtUuid, String firstNa user.setUserRoles(new HashSet(Arrays.asList(roles))); user.setRegion(regionFacade.getRegionByUuid(regionUuid)); user.setDistrict(districtFacade.getDistrictByUuid(districtUuid)); + user.setHealthFacility(facilityFacade.getByUuid(facilityUuid)); user = userFacade.saveUser(user); return user; @@ -180,25 +185,66 @@ public VisitDto createVisit(Disease disease, PersonDto contactPerson, Date visit return visit; } + @Test + public WeeklyReportDto createWeeklyReport(String facilityUuid, UserDto informant, Date reportDateTime, int epiWeek, int year, int numberOfCases) { + WeeklyReportDto report = new WeeklyReportDto(); + report.setUuid(DataHelper.createUuid()); + report.setHealthFacility(facilityFacade.getByUuid(facilityUuid)); + report.setInformant(informant); + report.setReportDateTime(reportDateTime); + report.setEpiWeek(epiWeek); + report.setYear(year); + report.setTotalNumberOfCases(numberOfCases); + + report = weeklyReportFacade.saveWeeklyReport(report); + + return report; + } + @Test public RDCF createRDCF(String regionName, String districtName, String communityName, String facilityName) { + Region region = createRegion(regionName); + District district = createDistrict(districtName, region); + Community community = createCommunity(communityName, district); + Facility facility = createFacility(facilityName, region, district, community); + + return new RDCF(region, district, community, facility); + } + + @Test + public Region createRegion(String regionName) { Region region = new Region(); region.setUuid(DataHelper.createUuid()); region.setName(regionName); regionService.persist(region); + return region; + } + + @Test + public District createDistrict(String districtName, Region region) { District district = new District(); district.setUuid(DataHelper.createUuid()); district.setName(districtName); district.setRegion(region); districtService.persist(district); + return district; + } + + @Test + public Community createCommunity(String communityName, District district) { Community community = new Community(); community.setUuid(DataHelper.createUuid()); community.setName(communityName); community.setDistrict(district); communityService.persist(community); + return community; + } + + @Test + public Facility createFacility(String facilityName, Region region, District district, Community community) { Facility facility = new Facility(); facility.setUuid(DataHelper.createUuid()); facility.setName(facilityName); @@ -208,7 +254,7 @@ public RDCF createRDCF(String regionName, String districtName, String communityN facility.setRegion(region); facilityService.persist(facility); - return new RDCF(region, district, community, facility); + return facility; } public class RDCF { diff --git a/sormas-backend/src/test/java/de/symeda/sormas/backend/caze/CaseFacadeEjbTest.java b/sormas-backend/src/test/java/de/symeda/sormas/backend/caze/CaseFacadeEjbTest.java index 7d749ad26dd..e7aefd215dc 100644 --- a/sormas-backend/src/test/java/de/symeda/sormas/backend/caze/CaseFacadeEjbTest.java +++ b/sormas-backend/src/test/java/de/symeda/sormas/backend/caze/CaseFacadeEjbTest.java @@ -42,6 +42,7 @@ import de.symeda.sormas.backend.region.DistrictService; import de.symeda.sormas.backend.region.RegionFacadeEjb; import de.symeda.sormas.backend.region.RegionService; +import de.symeda.sormas.backend.report.WeeklyReportFacadeEjb.WeeklyReportFacadeEjbLocal; import de.symeda.sormas.backend.task.TaskFacadeEjb; import de.symeda.sormas.backend.user.UserFacadeEjb.UserFacadeEjbLocal; import de.symeda.sormas.backend.util.DateHelper8; @@ -66,7 +67,7 @@ public void testDiseaseChangeUpdatesContacts() { TestDataCreator creator = createTestDataCreator(); RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility"); - UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR); + UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR); PersonDto cazePerson = creator.createPerson("Case", "Person"); CaseDataDto caze = creator.createCase(user, cazePerson, Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf); @@ -97,11 +98,11 @@ public void testMovingCaseUpdatesTaskAssigneeAndCreatesPreviousHospitalization() TestDataCreator creator = createTestDataCreator(); RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility"); - UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR); + UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR); PersonDto cazePerson = creator.createPerson("Case", "Person"); CaseDataDto caze = creator.createCase(user, cazePerson, Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf); - UserDto caseOfficer = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), "Case", "Officer", UserRole.CASE_OFFICER); + UserDto caseOfficer = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Case", "Officer", UserRole.CASE_OFFICER); TaskDto pendingTask = creator.createTask(TaskContext.CASE, TaskType.CASE_INVESTIGATION, TaskStatus.PENDING, caze, null, user); TaskDto doneTask = creator.createTask(TaskContext.CASE, TaskType.CASE_INVESTIGATION, TaskStatus.DONE, caze, null, user); @@ -130,8 +131,8 @@ public void testMovingCaseUpdatesTaskAssigneeAndCreatesPreviousHospitalization() private TestDataCreator createTestDataCreator() { return new TestDataCreator(getBean(UserFacadeEjbLocal.class), getBean(PersonFacadeEjb.class), getBean(CaseFacadeEjbLocal.class), getBean(ContactFacadeEjbLocal.class), getBean(TaskFacadeEjb.class), - getBean(VisitFacadeEjb.class), getBean(RegionFacadeEjb.class), getBean(DistrictFacadeEjb.class), getBean(CommunityFacadeEjb.class), - getBean(FacilityFacadeEjb.class), getBean(RegionService.class), getBean(DistrictService.class), + getBean(VisitFacadeEjb.class), getBean(WeeklyReportFacadeEjbLocal.class), getBean(RegionFacadeEjb.class), getBean(DistrictFacadeEjb.class), + getBean(CommunityFacadeEjb.class), getBean(FacilityFacadeEjb.class), getBean(RegionService.class), getBean(DistrictService.class), getBean(CommunityService.class), getBean(FacilityService.class)); } diff --git a/sormas-backend/src/test/java/de/symeda/sormas/backend/contact/ContactFacadeEjbTest.java b/sormas-backend/src/test/java/de/symeda/sormas/backend/contact/ContactFacadeEjbTest.java index e5185a04ca4..a37867e0ccb 100644 --- a/sormas-backend/src/test/java/de/symeda/sormas/backend/contact/ContactFacadeEjbTest.java +++ b/sormas-backend/src/test/java/de/symeda/sormas/backend/contact/ContactFacadeEjbTest.java @@ -13,19 +13,16 @@ import de.symeda.sormas.api.Disease; import de.symeda.sormas.api.caze.CaseClassification; import de.symeda.sormas.api.caze.CaseDataDto; -import de.symeda.sormas.api.caze.CaseFacade; import de.symeda.sormas.api.caze.InvestigationStatus; import de.symeda.sormas.api.contact.ContactDto; import de.symeda.sormas.api.contact.ContactFacade; import de.symeda.sormas.api.contact.FollowUpStatus; import de.symeda.sormas.api.person.PersonDto; -import de.symeda.sormas.api.person.PersonFacade; import de.symeda.sormas.api.task.TaskDto; import de.symeda.sormas.api.task.TaskFacade; import de.symeda.sormas.api.task.TaskStatus; import de.symeda.sormas.api.task.TaskType; import de.symeda.sormas.api.user.UserDto; -import de.symeda.sormas.api.user.UserFacade; import de.symeda.sormas.api.user.UserRole; import de.symeda.sormas.api.visit.VisitDto; import de.symeda.sormas.api.visit.VisitFacade; @@ -44,6 +41,7 @@ import de.symeda.sormas.backend.region.DistrictService; import de.symeda.sormas.backend.region.RegionFacadeEjb; import de.symeda.sormas.backend.region.RegionService; +import de.symeda.sormas.backend.report.WeeklyReportFacadeEjb.WeeklyReportFacadeEjbLocal; import de.symeda.sormas.backend.task.TaskFacadeEjb; import de.symeda.sormas.backend.user.UserFacadeEjb.UserFacadeEjbLocal; import de.symeda.sormas.backend.util.DateHelper8; @@ -68,7 +66,8 @@ public void testUpdateFollowUpUntil() { TestDataCreator creator = createTestDataCreator(); RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility"); - UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR); + UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid() + ,"Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR); PersonDto cazePerson = creator.createPerson("Case", "Person"); CaseDataDto caze = creator.createCase(user, cazePerson, Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf); @@ -96,16 +95,13 @@ public void testUpdateFollowUpUntil() { @Test public void testGenerateContactFollowUpTasks() { - UserFacade userFacade = getBean(UserFacadeEjbLocal.class); ContactFacade contactFacade = getBean(ContactFacadeEjbLocal.class); - PersonFacade personFacade = getBean(PersonFacadeEjb.class); - CaseFacade caseFacade = getBean(CaseFacadeEjbLocal.class); TaskFacade taskFacade = getBean(TaskFacadeEjb.class); TestDataCreator creator = createTestDataCreator(); RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility"); - UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR); + UserDto user = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Surv", "Sup", UserRole.SURVEILLANCE_SUPERVISOR); PersonDto cazePerson = creator.createPerson("Case", "Person"); CaseDataDto caze = creator.createCase(user, cazePerson, Disease.EVD, CaseClassification.PROBABLE, InvestigationStatus.PENDING, new Date(), rdcf); @@ -131,8 +127,8 @@ public void testGenerateContactFollowUpTasks() { private TestDataCreator createTestDataCreator() { return new TestDataCreator(getBean(UserFacadeEjbLocal.class), getBean(PersonFacadeEjb.class), getBean(CaseFacadeEjbLocal.class), getBean(ContactFacadeEjbLocal.class), getBean(TaskFacadeEjb.class), - getBean(VisitFacadeEjb.class), getBean(RegionFacadeEjb.class), getBean(DistrictFacadeEjb.class), getBean(CommunityFacadeEjb.class), - getBean(FacilityFacadeEjb.class), getBean(RegionService.class), getBean(DistrictService.class), + getBean(VisitFacadeEjb.class), getBean(WeeklyReportFacadeEjbLocal.class), getBean(RegionFacadeEjb.class), getBean(DistrictFacadeEjb.class), + getBean(CommunityFacadeEjb.class), getBean(FacilityFacadeEjb.class), getBean(RegionService.class), getBean(DistrictService.class), getBean(CommunityService.class), getBean(FacilityService.class)); } diff --git a/sormas-backend/src/test/java/de/symeda/sormas/backend/report/WeeklyReportFacadeEjbTest.java b/sormas-backend/src/test/java/de/symeda/sormas/backend/report/WeeklyReportFacadeEjbTest.java new file mode 100644 index 00000000000..b36d9f69198 --- /dev/null +++ b/sormas-backend/src/test/java/de/symeda/sormas/backend/report/WeeklyReportFacadeEjbTest.java @@ -0,0 +1,98 @@ +package de.symeda.sormas.backend.report; + +import static org.junit.Assert.*; + +import java.util.Date; +import java.util.List; + +import org.junit.Before; +import org.junit.Test; + +import de.symeda.sormas.api.Disease; +import de.symeda.sormas.api.caze.CaseClassification; +import de.symeda.sormas.api.caze.CaseDataDto; +import de.symeda.sormas.api.caze.InvestigationStatus; +import de.symeda.sormas.api.person.PersonDto; +import de.symeda.sormas.api.region.RegionFacade; +import de.symeda.sormas.api.report.WeeklyReportDto; +import de.symeda.sormas.api.report.WeeklyReportFacade; +import de.symeda.sormas.api.report.WeeklyReportSummaryDto; +import de.symeda.sormas.api.user.UserDto; +import de.symeda.sormas.api.user.UserFacade; +import de.symeda.sormas.api.user.UserRole; +import de.symeda.sormas.api.utils.DateHelper; +import de.symeda.sormas.api.utils.EpiWeek; +import de.symeda.sormas.backend.MockProducer; +import de.symeda.sormas.backend.TestDataCreator; +import de.symeda.sormas.backend.TestDataCreator.RDCF; +import de.symeda.sormas.backend.caze.CaseFacadeEjb.CaseFacadeEjbLocal; +import de.symeda.sormas.backend.contact.ContactFacadeEjb.ContactFacadeEjbLocal; +import de.symeda.sormas.backend.facility.Facility; +import de.symeda.sormas.backend.facility.FacilityFacadeEjb; +import de.symeda.sormas.backend.facility.FacilityService; +import de.symeda.sormas.backend.person.PersonFacadeEjb; +import de.symeda.sormas.backend.region.Community; +import de.symeda.sormas.backend.region.CommunityFacadeEjb; +import de.symeda.sormas.backend.region.CommunityService; +import de.symeda.sormas.backend.region.District; +import de.symeda.sormas.backend.region.DistrictFacadeEjb; +import de.symeda.sormas.backend.region.DistrictService; +import de.symeda.sormas.backend.region.RegionFacadeEjb; +import de.symeda.sormas.backend.region.RegionService; +import de.symeda.sormas.backend.report.WeeklyReportFacadeEjb.WeeklyReportFacadeEjbLocal; +import de.symeda.sormas.backend.task.TaskFacadeEjb; +import de.symeda.sormas.backend.user.UserFacadeEjb.UserFacadeEjbLocal; +import de.symeda.sormas.backend.visit.VisitFacadeEjb; +import info.novatec.beantest.api.BaseBeanTest; + +public class WeeklyReportFacadeEjbTest extends BaseBeanTest { + + /** + * Resets mocks to their initial state so that mock configurations are not shared between tests. + */ + @Before + public void resetMocks() { + MockProducer.resetMocks(); + } + + @Test + public void testShouldBuildDistrictSummaryDto() { + RegionFacade regionFacade = getBean(RegionFacadeEjb.class); + WeeklyReportFacade reportFacade = getBean(WeeklyReportFacadeEjbLocal.class); + + TestDataCreator creator = createTestDataCreator(); + RDCF rdcf = creator.createRDCF("Region", "District", "Community", "Facility"); + UserDto informant1 = creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Info", "One", UserRole.INFORMANT); + creator.createUser(rdcf.region.getUuid(), rdcf.district.getUuid(), rdcf.facility.getUuid(), "Info", "Two", UserRole.INFORMANT); + RDCF rdcf2 = creator.new RDCF(rdcf.region, rdcf.district, rdcf.community, creator.createFacility("Facility2", rdcf.region, rdcf.district, rdcf.community)); + UserDto informant3 = creator.createUser(rdcf2.region.getUuid(), rdcf2.district.getUuid(), rdcf2.facility.getUuid(), "Info", "Three", UserRole.INFORMANT); + District district2 = creator.createDistrict("District2", rdcf.region); + Community community2 = creator.createCommunity("Community2", district2); + Facility facility3 = creator.createFacility("Facility3", rdcf.region, district2, community2); + RDCF rdcf3 = creator.new RDCF(rdcf.region, district2, community2, facility3); + UserDto informant4 = creator.createUser(rdcf3.region.getUuid(), rdcf3.district.getUuid(), rdcf3.facility.getUuid(), "Info", "Four", UserRole.INFORMANT); + + EpiWeek previousEpiWeek = DateHelper.getPreviousEpiWeek(new Date()); + creator.createWeeklyReport(rdcf.facility.getUuid(), informant1, new Date(), previousEpiWeek.getWeek(), previousEpiWeek.getYear(), 1); + creator.createWeeklyReport(rdcf2.facility.getUuid(), informant3, new Date(), previousEpiWeek.getWeek(), previousEpiWeek.getYear(), 1); + creator.createWeeklyReport(rdcf3.facility.getUuid(), informant4, new Date(), previousEpiWeek.getWeek(), previousEpiWeek.getYear(), 0); + + List reportSummaries = reportFacade.getSummariesPerDistrict(regionFacade.getRegionByUuid(rdcf.region.getUuid()), previousEpiWeek); + // Two districts have submitted reports, so there should be two summaries + assertEquals(2, reportSummaries.size()); + // The first district has one submitted and one missing report + assertEquals(1, reportSummaries.get(0).getReports()); + assertEquals(1, reportSummaries.get(0).getMissingReports()); + // The second district has one zero report + assertEquals(1, reportSummaries.get(1).getZeroReports()); + } + + private TestDataCreator createTestDataCreator() { + return new TestDataCreator(getBean(UserFacadeEjbLocal.class), getBean(PersonFacadeEjb.class), + getBean(CaseFacadeEjbLocal.class), getBean(ContactFacadeEjbLocal.class), getBean(TaskFacadeEjb.class), + getBean(VisitFacadeEjb.class), getBean(WeeklyReportFacadeEjbLocal.class), getBean(RegionFacadeEjb.class), getBean(DistrictFacadeEjb.class), + getBean(CommunityFacadeEjb.class), getBean(FacilityFacadeEjb.class), getBean(RegionService.class), getBean(DistrictService.class), + getBean(CommunityService.class), getBean(FacilityService.class)); + } + +} diff --git a/sormas-backend/src/test/resources/META-INF/persistence.xml b/sormas-backend/src/test/resources/META-INF/persistence.xml index d9b5df36cb1..347cea20502 100644 --- a/sormas-backend/src/test/resources/META-INF/persistence.xml +++ b/sormas-backend/src/test/resources/META-INF/persistence.xml @@ -29,6 +29,8 @@ de.symeda.sormas.backend.epidata.EpiDataBurial de.symeda.sormas.backend.epidata.EpiDataGathering de.symeda.sormas.backend.epidata.EpiDataTravel + de.symeda.sormas.backend.report.WeeklyReport + de.symeda.sormas.backend.report.WeeklyReportEntry true diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/MainScreen.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/MainScreen.java index d731c64b8cc..c90be978162 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/MainScreen.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/MainScreen.java @@ -52,7 +52,7 @@ public MainScreen(SormasUI ui) { menu.addView(EventsView.class, EventsView.VIEW_NAME, "Alerts", FontAwesome.PHONE); } menu.addView(SamplesView.class, SamplesView.VIEW_NAME, "Samples", FontAwesome.DATABASE); -// menu.addView(ReportsView.class, ReportsView.VIEW_NAME, "Reports", FontAwesome.FILE_TEXT); + menu.addView(ReportsView.class, ReportsView.VIEW_NAME, "Reports", FontAwesome.FILE_TEXT); menu.addView(UsersView.class, UsersView.VIEW_NAME, "Users", FontAwesome.USERS); menu.addView(AboutView.class, AboutView.VIEW_NAME, "About", FontAwesome.INFO_CIRCLE); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventParticipantsGrid.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventParticipantsGrid.java index 27b99ee23b7..7ae6f8f86b9 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventParticipantsGrid.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventParticipantsGrid.java @@ -6,6 +6,7 @@ import com.vaadin.data.util.BeanItemContainer; import com.vaadin.data.util.GeneratedPropertyContainer; import com.vaadin.data.util.PropertyValueGenerator; +import com.vaadin.server.FontAwesome; import com.vaadin.ui.Grid; import com.vaadin.ui.renderers.HtmlRenderer; @@ -41,7 +42,7 @@ public EventParticipantsGrid() { BeanItemContainer container = new BeanItemContainer(EventParticipantDto.class); GeneratedPropertyContainer generatedContainer = new GeneratedPropertyContainer(container); - VaadinUiUtil.addEditColumn(generatedContainer, EDIT_BTN_ID); + VaadinUiUtil.addIconColumn(generatedContainer, EDIT_BTN_ID, FontAwesome.PENCIL_SQUARE); setContainerDataSource(generatedContainer); generatedContainer.addGeneratedProperty(PERSON_UUID, new PropertyValueGenerator() { diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/ReportsView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/ReportsView.java index 5bd8a823c0b..29eac2a3f2a 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/ReportsView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/ReportsView.java @@ -3,10 +3,9 @@ import java.util.Date; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; +import com.vaadin.shared.ui.grid.HeightMode; import com.vaadin.ui.AbstractSelect.ItemCaptionMode; import com.vaadin.ui.Button; -import com.vaadin.ui.Button.ClickEvent; -import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; import com.vaadin.ui.NativeSelect; @@ -33,6 +32,7 @@ public ReportsView() { addStyleName("crud-view"); grid = new WeeklyReportGrid(); + grid.setHeightMode(HeightMode.UNDEFINED); gridLayout = new VerticalLayout(); gridLayout.addComponent(createTopBar()); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/WeeklyReportDetailsGrid.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/WeeklyReportDetailsGrid.java new file mode 100644 index 00000000000..20b657ac7f8 --- /dev/null +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/WeeklyReportDetailsGrid.java @@ -0,0 +1,124 @@ +package de.symeda.sormas.ui.reports; + +import java.util.ArrayList; +import java.util.List; + +import com.vaadin.data.util.BeanItemContainer; +import com.vaadin.ui.Grid; + +import de.symeda.sormas.api.FacadeProvider; +import de.symeda.sormas.api.I18nProperties; +import de.symeda.sormas.api.region.DistrictReferenceDto; +import de.symeda.sormas.api.report.WeeklyReportDto; +import de.symeda.sormas.api.report.WeeklyReportReferenceDto; +import de.symeda.sormas.api.user.UserDto; +import de.symeda.sormas.api.user.UserReferenceDto; +import de.symeda.sormas.api.utils.EpiWeek; +import de.symeda.sormas.ui.utils.BooleanRenderer; + +public class WeeklyReportDetailsGrid extends Grid { + + private static final long serialVersionUID = 4840654834928465293L; + + public static final String COLUMN_CONFIRMED = "columnConfirmed"; + + private final DistrictReferenceDto districtRef; + private final EpiWeek epiWeek; + + public WeeklyReportDetailsGrid(DistrictReferenceDto districtRef, EpiWeek epiWeek) { + this.districtRef = districtRef; + this.epiWeek = epiWeek; + setWidth(960, Unit.PIXELS); + setHeightUndefined(); + + setSelectionMode(SelectionMode.NONE); + + BeanItemContainer container = new BeanItemContainer(WeeklyReportDetails.class); + setContainerDataSource(container); + + setColumns(WeeklyReportDetails.FACILITY_AND_INFORMANT, WeeklyReportDetails.TOTAL_NUMBER_OF_CASES, WeeklyReportDetails.CONFIRMED); + + getColumn(WeeklyReportDetails.CONFIRMED).setRenderer(new BooleanRenderer()); + + for (Column column : getColumns()) { + column.setHeaderCaption(I18nProperties.getPrefixFieldCaption( + WeeklyReportDetails.I18N_PREFIX, column.getPropertyId().toString(), column.getHeaderCaption())); + } + + reload(); + } + + @SuppressWarnings("unchecked") + private BeanItemContainer getContainer() { + return (BeanItemContainer) super.getContainerDataSource(); + } + + public void reload() { + getContainer().removeAllItems(); + + List reportDetailDtos = new ArrayList<>(); + List informants = FacadeProvider.getUserFacade().getForWeeklyReportDetails(districtRef); + for (UserReferenceDto informant : informants) { + WeeklyReportReferenceDto weeklyReportRef = FacadeProvider.getWeeklyReportFacade().getByEpiWeekAndUser(epiWeek, informant); + WeeklyReportDto weeklyReport = null; + if (weeklyReportRef != null) { + weeklyReport = FacadeProvider.getWeeklyReportFacade().getByUuid(weeklyReportRef.getUuid()); + } + WeeklyReportDetails reportDetails = new WeeklyReportDetails(informant, weeklyReport != null ? weeklyReport.getTotalNumberOfCases() : 0, weeklyReport != null ? true : false); + reportDetailDtos.add(reportDetails); + } + + getContainer().addAll(reportDetailDtos); + this.setHeightByRows(reportDetailDtos.size()); + } + + public class WeeklyReportDetails { + public static final String I18N_PREFIX = "WeeklyReportDetails"; + public static final String FACILITY_AND_INFORMANT = "facilityAndInformant"; + public static final String TOTAL_NUMBER_OF_CASES = "totalNumberOfCases"; + public static final String CONFIRMED = "confirmed"; + + private UserReferenceDto informant; + private String facilityAndInformant; + private int totalNumberOfCases; + private boolean confirmed; + + public WeeklyReportDetails(UserReferenceDto informant, int totalNumberOfCases, boolean confirmed) { + this.informant = informant; + + if (informant != null) { + UserDto informantDto = FacadeProvider.getUserFacade().getByUuid(informant.getUuid()); + facilityAndInformant = informantDto.getHealthFacility().toString() + " | " + informantDto.toString(); + } + + this.totalNumberOfCases = totalNumberOfCases; + this.confirmed = confirmed; + } + + public UserReferenceDto getInformant() { + return informant; + } + public void setInformant(UserReferenceDto informant) { + this.informant = informant; + } + public String getFacilityAndInformant() { + return facilityAndInformant; + } + public void setFacilityAndInformant(String facilityAndInformant) { + this.facilityAndInformant = facilityAndInformant; + } + public int getTotalNumberOfCases() { + return totalNumberOfCases; + } + public void setTotalNumberOfCases(int totalNumberOfCases) { + this.totalNumberOfCases = totalNumberOfCases; + } + public boolean isConfirmed() { + return confirmed; + } + public void setConfirmed(boolean confirmed) { + this.confirmed = confirmed; + } + } + +} diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/WeeklyReportGrid.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/WeeklyReportGrid.java index e3a0fe1600b..bcc5e198978 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/WeeklyReportGrid.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/WeeklyReportGrid.java @@ -4,21 +4,31 @@ import com.vaadin.data.util.BeanItemContainer; import com.vaadin.data.util.GeneratedPropertyContainer; +import com.vaadin.event.ItemClickEvent; +import com.vaadin.event.ItemClickEvent.ItemClickListener; +import com.vaadin.server.FontAwesome; +import com.vaadin.shared.ui.grid.HeightMode; import com.vaadin.ui.Grid; +import com.vaadin.ui.VerticalLayout; +import com.vaadin.ui.Window; +import com.vaadin.ui.renderers.HtmlRenderer; import de.symeda.sormas.api.FacadeProvider; import de.symeda.sormas.api.I18nProperties; -import de.symeda.sormas.api.region.DistrictReferenceDto; -import de.symeda.sormas.api.region.RegionReferenceDto; -import de.symeda.sormas.api.report.WeeklyReportFacade; import de.symeda.sormas.api.report.WeeklyReportSummaryDto; import de.symeda.sormas.api.user.UserRole; import de.symeda.sormas.api.utils.EpiWeek; import de.symeda.sormas.ui.login.LoginHelper; +import de.symeda.sormas.ui.utils.VaadinUiUtil; @SuppressWarnings("serial") -public class WeeklyReportGrid extends Grid { +public class WeeklyReportGrid extends Grid implements ItemClickListener { + private static final String VIEW_DETAILS_BTN_ID = "viewDetails"; + + private int week; + private int year; + public WeeklyReportGrid() { setSizeFull(); @@ -26,23 +36,37 @@ public WeeklyReportGrid() { BeanItemContainer container = new BeanItemContainer(WeeklyReportSummaryDto.class); GeneratedPropertyContainer generatedContainer = new GeneratedPropertyContainer(container); + VaadinUiUtil.addIconColumn(generatedContainer, VIEW_DETAILS_BTN_ID, FontAwesome.EYE); setContainerDataSource(generatedContainer); - setColumns(WeeklyReportSummaryDto.REGION, WeeklyReportSummaryDto.DISTRICT, WeeklyReportSummaryDto.FACILITIES, + setColumns(VIEW_DETAILS_BTN_ID, WeeklyReportSummaryDto.REGION, WeeklyReportSummaryDto.DISTRICT, WeeklyReportSummaryDto.FACILITIES, WeeklyReportSummaryDto.REPORTS, WeeklyReportSummaryDto.REPORTS_PERCENTAGE, WeeklyReportSummaryDto.ZERO_REPORTS, WeeklyReportSummaryDto.ZERO_REPORTS_PERCENTAGE, WeeklyReportSummaryDto.MISSING_REPORTS, WeeklyReportSummaryDto.MISSING_REPORTS_PERCENTAGE); + if (LoginHelper.getCurrentUserRoles().contains(UserRole.NATIONAL_USER)) { + getColumn(VIEW_DETAILS_BTN_ID).setHidden(true); + } else { + getColumn(VIEW_DETAILS_BTN_ID).setRenderer(new HtmlRenderer()); + getColumn(VIEW_DETAILS_BTN_ID).setWidth(60); + } + for (Column column : getColumns()) { - column.setHeaderCaption(I18nProperties.getPrefixFieldCaption( - WeeklyReportSummaryDto.I18N_PREFIX, column.getPropertyId().toString(), column.getHeaderCaption())); + if (column.getPropertyId().equals(VIEW_DETAILS_BTN_ID)) { + column.setHeaderCaption(""); + } else { + column.setHeaderCaption(I18nProperties.getPrefixFieldCaption( + WeeklyReportSummaryDto.I18N_PREFIX, column.getPropertyId().toString(), column.getHeaderCaption())); + } } if (LoginHelper.getCurrentUserRoles().contains(UserRole.NATIONAL_USER)) { getColumn(WeeklyReportSummaryDto.DISTRICT).setHidden(true); } else { - getColumn(WeeklyReportSummaryDto.REGION).setHidable(true); + getColumn(WeeklyReportSummaryDto.REGION).setHidden(true); } + + addItemClickListener(this); } @SuppressWarnings("unchecked") @@ -52,21 +76,31 @@ private BeanItemContainer getContainer() { } public void reload(int year, int week) { + this.week = week; + this.year = year; getContainer().removeAllItems(); EpiWeek epiWeek = new EpiWeek(year, week); if (LoginHelper.getCurrentUserRoles().contains(UserRole.NATIONAL_USER)) { - List regions = FacadeProvider.getRegionFacade().getAllAsReference(); - for (RegionReferenceDto region : regions) { - WeeklyReportSummaryDto dto = FacadeProvider.getWeeklyReportFacade().getSummaryDtoByRegion(region, epiWeek); - getContainer().addItem(dto); - } + List summaryDtos = FacadeProvider.getWeeklyReportFacade().getSummariesPerRegion(epiWeek); + summaryDtos.forEach(s -> getContainer().addItem(s)); } else { - List districts = FacadeProvider.getDistrictFacade().getAllByRegion(LoginHelper.getCurrentUser().getRegion().getUuid()); - for (DistrictReferenceDto district : districts) { - WeeklyReportSummaryDto dto = FacadeProvider.getWeeklyReportFacade().getSummaryDtoByDistrict(district, epiWeek); - getContainer().addItem(dto); - } + List summaryDtos = FacadeProvider.getWeeklyReportFacade().getSummariesPerDistrict(LoginHelper.getCurrentUser().getRegion(), epiWeek); + summaryDtos.forEach(s -> getContainer().addItem(s)); + } + } + + @Override + public void itemClick(ItemClickEvent event) { + if (event.getPropertyId().equals(VIEW_DETAILS_BTN_ID)) { + WeeklyReportSummaryDto summaryDto = (WeeklyReportSummaryDto) event.getItemId(); + VerticalLayout layout = new VerticalLayout(); + WeeklyReportDetailsGrid grid = new WeeklyReportDetailsGrid(summaryDto.getDistrict(), new EpiWeek(year, week)); + grid.setHeightMode(HeightMode.ROW); + layout.addComponent(grid); + layout.setMargin(true); + Window window = VaadinUiUtil.showPopupWindow(layout); + window.setCaption("Weekly Reports in " + summaryDto.getDistrict().toString() + " - Epi Week " + week + "/" + year); } } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleTestGrid.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleTestGrid.java index a276d15d602..c016fabbec9 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleTestGrid.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleTestGrid.java @@ -8,6 +8,7 @@ import com.vaadin.data.util.MethodProperty; import com.vaadin.event.ItemClickEvent; import com.vaadin.event.ItemClickEvent.ItemClickListener; +import com.vaadin.server.FontAwesome; import com.vaadin.ui.Grid; import com.vaadin.ui.renderers.DateRenderer; import com.vaadin.ui.renderers.HtmlRenderer; @@ -31,7 +32,7 @@ public SampleTestGrid(SampleReferenceDto sampleRef) { BeanItemContainer container = new BeanItemContainer(SampleTestDto.class); GeneratedPropertyContainer generatedContainer = new GeneratedPropertyContainer(container); - VaadinUiUtil.addEditColumn(generatedContainer, EDIT_BTN_ID); + VaadinUiUtil.addIconColumn(generatedContainer, EDIT_BTN_ID, FontAwesome.PENCIL_SQUARE); setContainerDataSource(generatedContainer); setColumns(EDIT_BTN_ID, SampleTestDto.TEST_TYPE, SampleTestDto.TEST_DATE_TIME, SampleTestDto.LAB, diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskController.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskController.java index ffeae4497fb..3968a93995a 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskController.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskController.java @@ -2,7 +2,6 @@ import java.util.Collections; import java.util.List; -import java.util.function.Consumer; import de.symeda.sormas.api.FacadeProvider; import de.symeda.sormas.api.ReferenceDto; @@ -22,7 +21,6 @@ import de.symeda.sormas.ui.login.LoginHelper; import de.symeda.sormas.ui.utils.CommitDiscardWrapperComponent; import de.symeda.sormas.ui.utils.CommitDiscardWrapperComponent.CommitListener; -import de.symeda.sormas.ui.utils.CommitDiscardWrapperComponent.DiscardListener; import de.symeda.sormas.ui.utils.VaadinUiUtil; public class TaskController { diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskGrid.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskGrid.java index 63ccbdbc582..d31fe1a658b 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskGrid.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskGrid.java @@ -12,6 +12,7 @@ import com.vaadin.data.util.filter.Not; import com.vaadin.event.ItemClickEvent; import com.vaadin.event.ItemClickEvent.ItemClickListener; +import com.vaadin.server.FontAwesome; import com.vaadin.ui.Grid; import com.vaadin.ui.renderers.DateRenderer; import com.vaadin.ui.renderers.HtmlRenderer; @@ -95,7 +96,7 @@ public TaskGrid() { BeanItemContainer container = new BeanItemContainer(TaskDto.class); GeneratedPropertyContainer editContainer = new GeneratedPropertyContainer(container); - VaadinUiUtil.addEditColumn(editContainer, EDIT_BTN_ID); + VaadinUiUtil.addIconColumn(editContainer, EDIT_BTN_ID, FontAwesome.PENCIL_SQUARE); setContainerDataSource(editContainer); setColumns(EDIT_BTN_ID, TaskDto.CONTEXT_REFERENCE, TaskDto.TASK_TYPE, TaskDto.PRIORITY, diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/VaadinUiUtil.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/VaadinUiUtil.java index a76f3ef8edd..d45828a918c 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/VaadinUiUtil.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/VaadinUiUtil.java @@ -40,15 +40,13 @@ public void onDone() { return popupWindow; } - - + @SuppressWarnings("serial") - public static void addEditColumn(GeneratedPropertyContainer editContainer, String editPropertyId) { - // edit button - editContainer.addGeneratedProperty(editPropertyId, new PropertyValueGenerator() { + public static void addIconColumn(GeneratedPropertyContainer container, String iconPropertyId, FontAwesome fontAwesomeIcon) { + container.addGeneratedProperty(iconPropertyId, new PropertyValueGenerator() { @Override public String getValue(Item item, Object itemId, Object propertyId) { - return FontAwesome.PENCIL_SQUARE.getHtml(); + return fontAwesomeIcon.getHtml(); } @Override public Class getType() { diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/visit/VisitGrid.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/visit/VisitGrid.java index 12980501e7c..82779a7655b 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/visit/VisitGrid.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/visit/VisitGrid.java @@ -4,6 +4,7 @@ import com.vaadin.data.util.BeanItemContainer; import com.vaadin.data.util.GeneratedPropertyContainer; +import com.vaadin.server.FontAwesome; import com.vaadin.ui.Grid; import com.vaadin.ui.renderers.DateRenderer; import com.vaadin.ui.renderers.HtmlRenderer; @@ -40,7 +41,7 @@ public VisitGrid() { container.addNestedContainerProperty(SYMPTOMS_TEMPERATURE); GeneratedPropertyContainer editContainer = new GeneratedPropertyContainer(container); - VaadinUiUtil.addEditColumn(editContainer, EDIT_BTN_ID); + VaadinUiUtil.addIconColumn(editContainer, EDIT_BTN_ID, FontAwesome.PENCIL_SQUARE); setContainerDataSource(editContainer); setColumns(EDIT_BTN_ID, VisitDto.VISIT_DATE_TIME, VisitDto.VISIT_STATUS, VisitDto.VISIT_REMARKS, From 8519d8453a3884e8edbc2fe1922d282f729e3245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=A9=20Strysewske?= Date: Thu, 12 Oct 2017 11:46:15 +0200 Subject: [PATCH 10/54] #171 - created app backend tests --- .../de/symeda/sormas/app/CaseBackendTest.java | 2 +- .../symeda/sormas/app/ContactBackendTest.java | 4 +- .../symeda/sormas/app/EventBackendTest.java | 4 +- .../symeda/sormas/app/SampleBackendTest.java | 4 +- .../symeda/sormas/app/TestEntityCreator.java | 14 +++++ .../java/de/symeda/sormas/app/TestHelper.java | 32 ++++++++-- .../sormas/app/WeeklyReportBackendTest.java | 58 +++++++++++++++++++ 7 files changed, 103 insertions(+), 15 deletions(-) create mode 100644 sormas-app/app/src/androidTest/java/de/symeda/sormas/app/WeeklyReportBackendTest.java diff --git a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/CaseBackendTest.java b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/CaseBackendTest.java index 5da01972606..177504947d8 100644 --- a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/CaseBackendTest.java +++ b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/CaseBackendTest.java @@ -48,7 +48,7 @@ public class CaseBackendTest { @Before public void initTest() { - TestHelper.initTestEnvironment(); + TestHelper.initTestEnvironment(false); } @Test diff --git a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/ContactBackendTest.java b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/ContactBackendTest.java index be551b3984e..59e078ae77e 100644 --- a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/ContactBackendTest.java +++ b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/ContactBackendTest.java @@ -34,13 +34,11 @@ public class ContactBackendTest { @Before public void initTest() { - TestHelper.initTestEnvironment(); + TestHelper.initTestEnvironment(false); } @Test public void shouldCreateContact() { - TestHelper.initTestEnvironment(); - assertThat(DatabaseHelper.getContactDao().queryForAll().size(), is(0)); TestEntityCreator.createContact(); diff --git a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/EventBackendTest.java b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/EventBackendTest.java index 6829048e761..294ccb1faa7 100644 --- a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/EventBackendTest.java +++ b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/EventBackendTest.java @@ -34,13 +34,11 @@ public class EventBackendTest { @Before public void initTest() { - TestHelper.initTestEnvironment(); + TestHelper.initTestEnvironment(false); } @Test public void shouldCreateEvent() { - TestHelper.initTestEnvironment(); - assertThat(DatabaseHelper.getEventDao().queryForAll().size(), is(0)); TestEntityCreator.createEvent(); diff --git a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/SampleBackendTest.java b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/SampleBackendTest.java index 54a6ffc2848..9eaf0f77e48 100644 --- a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/SampleBackendTest.java +++ b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/SampleBackendTest.java @@ -36,13 +36,11 @@ public class SampleBackendTest { @Before public void initTest() { - TestHelper.initTestEnvironment(); + TestHelper.initTestEnvironment(false); } @Test public void shouldCreateSample() { - TestHelper.initTestEnvironment(); - assertThat(DatabaseHelper.getSampleDao().queryForAll().size(), is(0)); TestEntityCreator.createSample(); diff --git a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/TestEntityCreator.java b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/TestEntityCreator.java index 1c7c9e78a98..57c88b3ed95 100644 --- a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/TestEntityCreator.java +++ b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/TestEntityCreator.java @@ -16,6 +16,7 @@ import de.symeda.sormas.api.task.TaskType; import de.symeda.sormas.api.utils.DataHelper; import de.symeda.sormas.api.utils.DateHelper; +import de.symeda.sormas.api.utils.EpiWeek; import de.symeda.sormas.app.backend.caze.Case; import de.symeda.sormas.app.backend.common.DaoException; import de.symeda.sormas.app.backend.common.DatabaseHelper; @@ -33,6 +34,7 @@ import de.symeda.sormas.app.backend.region.Community; import de.symeda.sormas.app.backend.region.District; import de.symeda.sormas.app.backend.region.Region; +import de.symeda.sormas.app.backend.report.WeeklyReport; import de.symeda.sormas.app.backend.sample.Sample; import de.symeda.sormas.app.backend.sample.SampleTest; import de.symeda.sormas.app.backend.symptoms.Symptoms; @@ -285,4 +287,16 @@ public static Task createCaseTask(Case caze, TaskStatus taskStatus, User user) { return DatabaseHelper.getTaskDao().queryForId(task.getId()); } + public static WeeklyReport createWeeklyReport(EpiWeek epiWeek) { + WeeklyReport weeklyReport; + + try { + weeklyReport = DatabaseHelper.getWeeklyReportDao().create(epiWeek); + } catch (DaoException e) { + throw new RuntimeException(e); + } + + return weeklyReport; + } + } diff --git a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/TestHelper.java b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/TestHelper.java index 9096780a30b..6f05f923df5 100644 --- a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/TestHelper.java +++ b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/TestHelper.java @@ -33,8 +33,9 @@ public class TestHelper { public static final String SECOND_FACILITY_UUID = "F2F2F2-F2F2F2-F2F2F2-F2F2F2F2"; public static final String USER_UUID = "0123456789"; public static final String SECOND_USER_UUID = "0987654321"; + public static final String INFORMANT_USER_UUID = "0192837465"; - public static void initTestEnvironment() { + public static void initTestEnvironment(boolean setInformantAsActiveUser) { // Initialize a testing context to not operate on the actual database RenamingDelegatingContext context = new RenamingDelegatingContext(InstrumentationRegistry.getTargetContext(), "test_"); // Make sure that no database/user is still set from the last run @@ -45,10 +46,10 @@ public static void initTestEnvironment() { ConfigProvider.init(context); insertInfrastructureData(); - insertUsers(); + insertUsers(setInformantAsActiveUser); } - private static void insertUsers() { + private static void insertUsers(boolean setInformantAsActiveUser) { // Create user and set username and password User user = new User(); user.setUserName("SanaObas"); @@ -60,8 +61,10 @@ private static void insertUsers() { user.setChangeDate(new Date()); user.setUuid(USER_UUID); DatabaseHelper.getUserDao().create(user); - ConfigProvider.setUsernameAndPassword("SanaObas", "TestPassword"); - ConfigProvider.setServerRestUrl("http://this-is-a-test-url-that-hopefully-doesnt-exist.com"); + if (!setInformantAsActiveUser) { + ConfigProvider.setUsernameAndPassword("SanaObas", "TestPassword"); + ConfigProvider.setServerRestUrl("http://this-is-a-test-url-that-hopefully-doesnt-exist.com"); + } // Create a second user with a specific region and district User secondUser = new User(); @@ -76,6 +79,25 @@ private static void insertUsers() { secondUser.setRegion(DatabaseHelper.getRegionDao().queryUuid(REGION_UUID)); secondUser.setDistrict(DatabaseHelper.getDistrictDao().queryUuid(SECOND_DISTRICT_UUID)); DatabaseHelper.getUserDao().create(secondUser); + + // Create an informant + User informant = new User(); + informant.setUserName("InfoUser"); + informant.setAktiv(true); + informant.setFirstName("Info"); + informant.setLastName("User"); + informant.setUserRole(UserRole.INFORMANT); + informant.setCreationDate(new Date()); + informant.setChangeDate(new Date()); + informant.setUuid(INFORMANT_USER_UUID); + informant.setRegion(DatabaseHelper.getRegionDao().queryUuid(REGION_UUID)); + informant.setDistrict(DatabaseHelper.getDistrictDao().queryUuid(DISTRICT_UUID)); + informant.setHealthFacility(DatabaseHelper.getFacilityDao().queryUuid(FACILITY_UUID)); + DatabaseHelper.getUserDao().create(informant); + if (setInformantAsActiveUser) { + ConfigProvider.setUsernameAndPassword("InfoUser", "TestPassword"); + ConfigProvider.setServerRestUrl("http://this-is-a-test-url-that-hopefully-doesnt-exist.com"); + } } private static void insertInfrastructureData() { diff --git a/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/WeeklyReportBackendTest.java b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/WeeklyReportBackendTest.java new file mode 100644 index 00000000000..65541c88383 --- /dev/null +++ b/sormas-app/app/src/androidTest/java/de/symeda/sormas/app/WeeklyReportBackendTest.java @@ -0,0 +1,58 @@ +package de.symeda.sormas.app; + +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.util.Date; + +import de.symeda.sormas.api.utils.DateHelper; +import de.symeda.sormas.app.backend.caze.Case; +import de.symeda.sormas.app.backend.common.DatabaseHelper; +import de.symeda.sormas.app.backend.report.WeeklyReport; + +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertThat; + +/** + * Created by Mate Strysewske on 12.10.2017. + */ +@RunWith(AndroidJUnit4.class) +public class WeeklyReportBackendTest { + + @Rule + public final ActivityTestRule testActivityRule = new ActivityTestRule<>(TestBackendActivity.class, false, true); + + @Before + public void initTest() { + TestHelper.initTestEnvironment(true); + } + + @Test + public void shouldCreateReportWithoutCases() { + // Assure that there are no weekly reports in the app to start with + assertThat(DatabaseHelper.getWeeklyReportDao().queryForAll().size(), is(0)); + + WeeklyReport report = TestEntityCreator.createWeeklyReport(DateHelper.getPreviousEpiWeek(new Date())); + + // Assure that the weekly report has been successfully created + assertThat(DatabaseHelper.getWeeklyReportDao().queryForAll().size(), is(1)); + + // Assure that the weekly report does not have any entries + assertThat(report.getTotalNumberOfCases(), is(0)); + } + + @Test + public void shouldCreateReportWithCases() { + TestEntityCreator.createCase(); + WeeklyReport report = TestEntityCreator.createWeeklyReport(DateHelper.getEpiWeek(new Date())); + + // Assure that the weekly report has an entry + assertThat(report.getTotalNumberOfCases(), is(1)); + } + +} From 5fa4ed70de92eb0d2ead0bd53bc6b1c5abd90fba Mon Sep 17 00:00:00 2001 From: Martin Wahnschaffe Date: Thu, 12 Oct 2017 17:00:20 +0200 Subject: [PATCH 11/54] Update Vaadin Theme with new Design #356 SORMAS Logo Entry & selection colors text field/area combo box radio select --- sormas-api/src/main/resources/enum.properties | 6 +- .../main/resources/fieldCaptions.properties | 2 +- .../layout/person_edit_fragment_layout.xml | 12 +- .../app/src/main/res/values/strings.xml | 2 +- .../main/java/de/symeda/sormas/ui/Menu.java | 4 +- .../java/de/symeda/sormas/ui/SormasUI.java | 2 +- .../ui/epidata/EpiDataBurialEditForm.java | 4 +- .../ui/epidata/EpiDataGatheringEditForm.java | 4 +- .../sormas/ui/events/EventDataForm.java | 6 +- ...ocationForm.java => LocationEditForm.java} | 4 +- .../sormas/ui/person/PersonEditForm.java | 71 +- .../symeda/sormas/ui/user/UserEditForm.java | 4 +- .../sormas/ui/utils/AbstractEditForm.java | 9 +- .../de/symeda/sormas/ui/utils/LayoutUtil.java | 8 +- .../webapp/VAADIN/themes/sormas/addons.scss | 7 + .../bootstrap-reduced.css | 37 - .../{sormastheme => sormas}/favicon.ico | Bin .../font-awesome.min.css | 0 .../{sormastheme => sormas}/general.css | 0 .../img/archetype-login-bg.jpg | Bin .../img/dashboard-preview1.png | Bin .../img/dashboard-preview2.jpg | Bin .../{sormastheme => sormas}/img/login-bg.png | Bin .../img/sormas-logo-big.png | Bin .../img/sormas-logo-huge.png | Bin .../VAADIN/themes/sormas/img/sormas-logo.png | Bin 0 -> 3642 bytes .../img/table-logo.png | Bin .../layouts/aboutview.html | 0 .../mapicons/green-contact.png | Bin .../mapicons/grey-contact.png | Bin .../mapicons/grey-dot-large.png | Bin .../mapicons/grey-dot-small.png | Bin .../mapicons/grey-dot-very-large.png | Bin .../mapicons/grey-dot.png | Bin .../mapicons/grey-house-large.png | Bin .../mapicons/grey-house-small.png | Bin .../mapicons/grey-house-very-large.png | Bin .../mapicons/grey-house.png | Bin .../mapicons/orange-contact.png | Bin .../mapicons/orange-dot-large.png | Bin .../mapicons/orange-dot-small.png | Bin .../mapicons/orange-dot-very-large.png | Bin .../mapicons/orange-dot.png | Bin .../mapicons/orange-house-large.png | Bin .../mapicons/orange-house-small.png | Bin .../mapicons/orange-house-very-large.png | Bin .../mapicons/orange-house.png | Bin .../mapicons/orange-region-small.png | Bin .../mapicons/red-contact.png | Bin .../mapicons/red-dot-large.png | Bin .../mapicons/red-dot-small.png | Bin .../mapicons/red-dot-very-large.png | Bin .../mapicons/red-dot.png | Bin .../mapicons/red-house-large.png | Bin .../mapicons/red-house-small.png | Bin .../mapicons/red-house-very-large.png | Bin .../mapicons/red-house.png | Bin .../mapicons/red-region-small.png | Bin .../mapicons/region.png | Bin .../mapicons/templateAll.svg | 0 .../mapicons/yellow-dot-large.png | Bin .../mapicons/yellow-dot-small.png | Bin .../mapicons/yellow-dot-very-large.png | Bin .../mapicons/yellow-dot.png | Bin .../mapicons/yellow-house-large.png | Bin .../mapicons/yellow-house-small.png | Bin .../mapicons/yellow-house-very-large.png | Bin .../mapicons/yellow-house.png | Bin .../mapicons/yellow-region-small.png | Bin .../sormastheme.scss => sormas/sormas.scss} | 196 +- .../webapp/VAADIN/themes/sormas/styles.css | 13340 +++++++++++++++ .../{sormastheme => sormas}/styles.scss | 6 +- .../sormas/valo-components/valo-menu.scss | 45 + .../VAADIN/themes/sormas/views/login.scss | 55 + .../themes/sormastheme/img/sormas-logo.png | Bin 5867 -> 0 bytes .../VAADIN/themes/sormastheme/styles.css | 13391 ---------------- 76 files changed, 13634 insertions(+), 13581 deletions(-) rename sormas-ui/src/main/java/de/symeda/sormas/ui/location/{LocationForm.java => LocationEditForm.java} (93%) create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/addons.scss rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/bootstrap-reduced.css (95%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/favicon.ico (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/font-awesome.min.css (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/general.css (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/img/archetype-login-bg.jpg (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/img/dashboard-preview1.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/img/dashboard-preview2.jpg (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/img/login-bg.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/img/sormas-logo-big.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/img/sormas-logo-huge.png (100%) create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/sormas-logo.png rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/img/table-logo.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/layouts/aboutview.html (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/green-contact.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/grey-contact.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/grey-dot-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/grey-dot-small.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/grey-dot-very-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/grey-dot.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/grey-house-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/grey-house-small.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/grey-house-very-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/grey-house.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/orange-contact.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/orange-dot-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/orange-dot-small.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/orange-dot-very-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/orange-dot.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/orange-house-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/orange-house-small.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/orange-house-very-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/orange-house.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/orange-region-small.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/red-contact.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/red-dot-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/red-dot-small.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/red-dot-very-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/red-dot.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/red-house-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/red-house-small.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/red-house-very-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/red-house.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/red-region-small.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/region.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/templateAll.svg (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/yellow-dot-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/yellow-dot-small.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/yellow-dot-very-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/yellow-dot.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/yellow-house-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/yellow-house-small.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/yellow-house-very-large.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/yellow-house.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/mapicons/yellow-region-small.png (100%) rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme/sormastheme.scss => sormas/sormas.scss} (76%) create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css rename sormas-ui/src/main/webapp/VAADIN/themes/{sormastheme => sormas}/styles.scss (84%) create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/valo-menu.scss create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/login.scss delete mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/sormas-logo.png delete mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/styles.css diff --git a/sormas-api/src/main/resources/enum.properties b/sormas-api/src/main/resources/enum.properties index c2c9f086c5a..0988eaa4358 100644 --- a/sormas-api/src/main/resources/enum.properties +++ b/sormas-api/src/main/resources/enum.properties @@ -148,7 +148,7 @@ SpecimenCondition.NOT_ADEQUATE = Not adequate SymptomState.YES=Yes SymptomState.NO=No -SymptomState.UNKNOWN=Unk +SymptomState.UNKNOWN=Note sure Sex.MALE = Male Sex.FEMALE = Female @@ -246,8 +246,8 @@ WaterSource.OTHER = Other YesNoUnknown.YES = Yes YesNoUnknown.NO = No -YesNoUnknown.UNKNOWN = Unk +YesNoUnknown.UNKNOWN = Not sure YesNoUnknownHoriz.YES = Yes YesNoUnknownHoriz.NO = No -YesNoUnknownHoriz.UNKNOWN = Unk \ No newline at end of file +YesNoUnknownHoriz.UNKNOWN = Not sure \ No newline at end of file diff --git a/sormas-api/src/main/resources/fieldCaptions.properties b/sormas-api/src/main/resources/fieldCaptions.properties index f8cdb983acb..6cf1098e30b 100644 --- a/sormas-api/src/main/resources/fieldCaptions.properties +++ b/sormas-api/src/main/resources/fieldCaptions.properties @@ -339,7 +339,7 @@ Person.lastName = Last name Person.nickname = Nickname Person.mothersMaidenName = Mother's maiden name Person.presentCondition = Present condition -Person.birthdate = Date of birth (day / month / year) +Person.birthdate = Date of birth (year / month / day) Person.birthdateDD = Person.birthdateMM = Person.birthdateYYYY = diff --git a/sormas-app/app/src/main/res/layout/person_edit_fragment_layout.xml b/sormas-app/app/src/main/res/layout/person_edit_fragment_layout.xml index 2c0323b08b4..e40ac4e4cc9 100644 --- a/sormas-app/app/src/main/res/layout/person_edit_fragment_layout.xml +++ b/sormas-app/app/src/main/res/layout/person_edit_fragment_layout.xml @@ -82,15 +82,16 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> + + android:value="@={person.birthdateYYYY}"/> - + android:value="@={person.birthdateDD}"/> Move case to another health facility \u279D - Date of birth (day / month / year) + Date of birth (year / month / day) Username Password diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java index ef431022017..ea424e9aaa0 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java @@ -48,13 +48,13 @@ public Menu(Navigator navigator) { // header of the menu final HorizontalLayout top = new HorizontalLayout(); - top.setDefaultComponentAlignment(Alignment.MIDDLE_LEFT); + top.setDefaultComponentAlignment(Alignment.TOP_CENTER); top.addStyleName(ValoTheme.MENU_TITLE); top.setSpacing(true); Label title = new Label("SORMAS"); - title.addStyleName(ValoTheme.LABEL_H3); title.setSizeUndefined(); Image image = new Image(null, new ThemeResource("img/sormas-logo.png")); + image.setHeight(32, Unit.PIXELS); image.setStyleName("logo"); image.addStyleName(CssStyles.CURSOR_LINK); image.addClickListener(new com.vaadin.event.MouseEvents.ClickListener() { diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/SormasUI.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/SormasUI.java index bfb70cb9899..a15431aea21 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/SormasUI.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/SormasUI.java @@ -31,7 +31,7 @@ */ @SuppressWarnings("serial") @Viewport("user-scalable=no,initial-scale=1.0") -@Theme("sormastheme") +@Theme("sormas") @Widgetset("de.symeda.sormas.SormasWidgetset") public class SormasUI extends UI { diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataBurialEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataBurialEditForm.java index 7dcbfa32bd3..7f89e753d7f 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataBurialEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataBurialEditForm.java @@ -4,7 +4,7 @@ import com.vaadin.ui.TextField; import de.symeda.sormas.api.epidata.EpiDataBurialDto; -import de.symeda.sormas.ui.location.LocationForm; +import de.symeda.sormas.ui.location.LocationEditForm; import de.symeda.sormas.ui.utils.AbstractEditForm; import de.symeda.sormas.ui.utils.LayoutUtil; @@ -31,7 +31,7 @@ protected void addFields() { addField(EpiDataBurialDto.BURIAL_RELATION, TextField.class); addField(EpiDataBurialDto.BURIAL_ILL, OptionGroup.class); addField(EpiDataBurialDto.BURIAL_TOUCHING, OptionGroup.class); - addField(EpiDataBurialDto.BURIAL_ADDRESS, LocationForm.class).setCaption(null); + addField(EpiDataBurialDto.BURIAL_ADDRESS, LocationEditForm.class).setCaption(null); setRequired(true, EpiDataBurialDto.BURIAL_DATE_FROM, diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataGatheringEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataGatheringEditForm.java index de318600304..107766f23d4 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataGatheringEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataGatheringEditForm.java @@ -4,7 +4,7 @@ import com.vaadin.ui.TextArea; import de.symeda.sormas.api.epidata.EpiDataGatheringDto; -import de.symeda.sormas.ui.location.LocationForm; +import de.symeda.sormas.ui.location.LocationEditForm; import de.symeda.sormas.ui.utils.AbstractEditForm; import de.symeda.sormas.ui.utils.LayoutUtil; @@ -27,7 +27,7 @@ public EpiDataGatheringEditForm() { protected void addFields() { addField(EpiDataGatheringDto.GATHERING_DATE, DateField.class); addField(EpiDataGatheringDto.DESCRIPTION, TextArea.class).setRows(2); - addField(EpiDataGatheringDto.GATHERING_ADDRESS, LocationForm.class).setCaption(null); + addField(EpiDataGatheringDto.GATHERING_ADDRESS, LocationEditForm.class).setCaption(null); setRequired(true, EpiDataGatheringDto.GATHERING_DATE); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataForm.java index 26516fa7940..d5cb79ff1e7 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataForm.java @@ -21,7 +21,7 @@ import de.symeda.sormas.api.region.DistrictReferenceDto; import de.symeda.sormas.api.user.UserReferenceDto; import de.symeda.sormas.api.user.UserRole; -import de.symeda.sormas.ui.location.LocationForm; +import de.symeda.sormas.ui.location.LocationEditForm; import de.symeda.sormas.ui.utils.AbstractEditForm; import de.symeda.sormas.ui.utils.CssStyles; import de.symeda.sormas.ui.utils.DateTimeField; @@ -104,9 +104,9 @@ protected void addFields() { addField(EventDto.EVENT_DATE, DateField.class); addField(EventDto.EVENT_STATUS, OptionGroup.class); addField(EventDto.EVENT_DESC, TextArea.class).setRows(2); - addField(EventDto.EVENT_LOCATION, LocationForm.class).setCaption(null); + addField(EventDto.EVENT_LOCATION, LocationEditForm.class).setCaption(null); - LocationForm locationForm = (LocationForm) getFieldGroup().getField(EventDto.EVENT_LOCATION); + LocationEditForm locationForm = (LocationEditForm) getFieldGroup().getField(EventDto.EVENT_LOCATION); ComboBox districtField = (ComboBox) locationForm.getFieldGroup().getField(LocationDto.DISTRICT); ComboBox surveillanceOfficerField = addField(EventDto.SURVEILLANCE_OFFICER, ComboBox.class); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/location/LocationForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/location/LocationEditForm.java similarity index 93% rename from sormas-ui/src/main/java/de/symeda/sormas/ui/location/LocationForm.java rename to sormas-ui/src/main/java/de/symeda/sormas/ui/location/LocationEditForm.java index b5b8d74e18c..8f182003591 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/location/LocationForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/location/LocationEditForm.java @@ -12,7 +12,7 @@ import de.symeda.sormas.ui.utils.LayoutUtil; @SuppressWarnings("serial") -public class LocationForm extends AbstractEditForm { +public class LocationEditForm extends AbstractEditForm { private static final String HTML_LAYOUT = LayoutUtil.div( @@ -20,7 +20,7 @@ public class LocationForm extends AbstractEditForm { LayoutUtil.fluidRowLocs(LocationDto.REGION, LocationDto.DISTRICT, LocationDto.COMMUNITY, LocationDto.CITY) ); - public LocationForm() { + public LocationEditForm() { super(LocationDto.class, LocationDto.I18N_PREFIX); } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonEditForm.java index cc44befd078..8fad802a928 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonEditForm.java @@ -7,6 +7,7 @@ import java.util.GregorianCalendar; import java.util.List; +import com.vaadin.ui.AbstractSelect; import com.vaadin.ui.AbstractSelect.ItemCaptionMode; import com.vaadin.ui.ComboBox; import com.vaadin.ui.DateField; @@ -32,7 +33,7 @@ import de.symeda.sormas.api.utils.DataHelper.Pair; import de.symeda.sormas.api.utils.DateHelper; import de.symeda.sormas.api.utils.Diseases.DiseasesConfiguration; -import de.symeda.sormas.ui.location.LocationForm; +import de.symeda.sormas.ui.location.LocationEditForm; import de.symeda.sormas.ui.utils.AbstractEditForm; import de.symeda.sormas.ui.utils.CssStyles; import de.symeda.sormas.ui.utils.LayoutUtil; @@ -65,9 +66,9 @@ public class PersonEditForm extends AbstractEditForm { CssStyles.VSPACE4, LayoutUtil.oneOfTwoCol( LayoutUtil.fluidRowCss(null, - LayoutUtil.oneOfThreeCol(LayoutUtil.loc(PersonDto.BIRTH_DATE_DD)), + LayoutUtil.oneOfThreeCol(LayoutUtil.loc(PersonDto.BIRTH_DATE_YYYY)), LayoutUtil.oneOfThreeCol(LayoutUtil.loc(PersonDto.BIRTH_DATE_MM)), - LayoutUtil.oneOfThreeCol(LayoutUtil.loc(PersonDto.BIRTH_DATE_YYYY)) + LayoutUtil.oneOfThreeCol(LayoutUtil.loc(PersonDto.BIRTH_DATE_DD)) ) ), @@ -75,33 +76,26 @@ public class PersonEditForm extends AbstractEditForm { ), LayoutUtil.fluidRowCss( CssStyles.VSPACE4, - LayoutUtil.oneOfThreeCol(LayoutUtil.loc(PersonDto.SEX)), - LayoutUtil.oneOfThreeCol(LayoutUtil.loc(PersonDto.PRESENT_CONDITION)), - LayoutUtil.oneOfThreeCol(LayoutUtil.loc(PersonDto.DEATH_DATE)) + LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.SEX)), + LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.PRESENT_CONDITION)) ), LayoutUtil.fluidRowCss( CssStyles.VSPACE4, - LayoutUtil.oneOfThreeCol(LayoutUtil.loc(PersonDto.DEATH_PLACE_TYPE)), - LayoutUtil.twoOfThreeCol(LayoutUtil.loc(PersonDto.DEATH_PLACE_DESCRIPTION)) + LayoutUtil.oneOfFourCol(LayoutUtil.loc(PersonDto.DEATH_DATE)), + LayoutUtil.oneOfFourCol(LayoutUtil.loc(PersonDto.DEATH_PLACE_TYPE)), + LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.DEATH_PLACE_DESCRIPTION)) ), LayoutUtil.fluidRowCss( CssStyles.VSPACE4, - LayoutUtil.oneOfThreeCol(LayoutUtil.loc(PersonDto.BURIAL_DATE)), - LayoutUtil.twoOfThreeCol(LayoutUtil.loc(PersonDto.BURIAL_PLACE_DESCRIPTION)) - ), - LayoutUtil.fluidRowCss( - CssStyles.VSPACE4, - LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.BURIAL_CONDUCTOR)) + LayoutUtil.oneOfFourCol(LayoutUtil.loc(PersonDto.BURIAL_DATE)), + LayoutUtil.oneOfFourCol(LayoutUtil.loc(PersonDto.BURIAL_CONDUCTOR)), + LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.BURIAL_PLACE_DESCRIPTION)) ), LayoutUtil.fluidRowCss( CssStyles.VSPACE4, LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.PHONE)), LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.PHONE_OWNER)) )) + - LayoutUtil.h3(CssStyles.VSPACE3, "Permanent residence of person")+ - LayoutUtil.div( - LayoutUtil.fluidRowLocsCss(CssStyles.VSPACE4, PersonDto.ADDRESS) - )+ LayoutUtil.h3(CssStyles.VSPACE3, "Occupation")+ LayoutUtil.div( LayoutUtil.fluidRowCss( @@ -116,7 +110,11 @@ public class PersonEditForm extends AbstractEditForm { LayoutUtil.oneOfFourCol(LayoutUtil.loc(FACILITY_COMMUNITY)), LayoutUtil.oneOfFourCol(LayoutUtil.loc(PersonDto.OCCUPATION_FACILITY)) ) - ); + ) + + LayoutUtil.h3(CssStyles.VSPACE3, "Permanent residence of person")+ + LayoutUtil.div( + LayoutUtil.fluidRowLocsCss(CssStyles.VSPACE4, PersonDto.ADDRESS) + ); public PersonEditForm(Disease disease) { super(PersonDto.class, PersonDto.I18N_PREFIX); @@ -127,24 +125,25 @@ public PersonEditForm(Disease disease) { protected void addFields() { addField(PersonDto.FIRST_NAME, TextField.class); addField(PersonDto.LAST_NAME, TextField.class); - addField(PersonDto.SEX, NativeSelect.class); + addField(PersonDto.SEX, ComboBox.class); addField(PersonDto.NICKNAME, TextField.class); addField(PersonDto.MOTHERS_MAIDEN_NAME, TextField.class); - addField(PersonDto.PRESENT_CONDITION, NativeSelect.class); - NativeSelect days = addField(PersonDto.BIRTH_DATE_DD, NativeSelect.class); - days.setCaption(I18nProperties.getPrefixFieldCaption(PersonDto.I18N_PREFIX, "birthdate")); + addField(PersonDto.PRESENT_CONDITION, ComboBox.class); + ComboBox days = addField(PersonDto.BIRTH_DATE_DD, ComboBox.class); // @TODO: Done for nullselection Bug, fixed in Vaadin 7.7.3 days.setNullSelectionAllowed(true); days.setNullSelectionItemId(""); days.addItems(DateHelper.getDaysInMonth()); - NativeSelect months = addField(PersonDto.BIRTH_DATE_MM, NativeSelect.class); + ComboBox months = addField(PersonDto.BIRTH_DATE_MM, ComboBox.class); // @TODO: Done for nullselection Bug, fixed in Vaadin 7.7.3 months.setNullSelectionAllowed(true); months.setNullSelectionItemId(""); months.addItems(DateHelper.getMonthsInYear()); + months.setPageLength(12); setItemCaptionsForMonths(months); - NativeSelect years = addField(PersonDto.BIRTH_DATE_YYYY, NativeSelect.class); + ComboBox years = addField(PersonDto.BIRTH_DATE_YYYY, ComboBox.class); + years.setCaption(I18nProperties.getPrefixFieldCaption(PersonDto.I18N_PREFIX, "birthdate")); // @TODO: Done for nullselection Bug, fixed in Vaadin 7.7.3 years.setNullSelectionAllowed(true); years.setNullSelectionItemId(""); @@ -152,7 +151,7 @@ protected void addFields() { years.setItemCaptionMode(ItemCaptionMode.ID_TOSTRING); addField(PersonDto.DEATH_DATE, DateField.class); addField(PersonDto.APPROXIMATE_AGE, TextField.class); - addField(PersonDto.APPROXIMATE_AGE_TYPE, NativeSelect.class); + addField(PersonDto.APPROXIMATE_AGE_TYPE, ComboBox.class); NativeSelect deathPlaceType = addField(PersonDto.DEATH_PLACE_TYPE, NativeSelect.class); deathPlaceType.setNullSelectionAllowed(true); @@ -161,7 +160,7 @@ protected void addFields() { TextField burialPlaceDesc = addField(PersonDto.BURIAL_PLACE_DESCRIPTION, TextField.class); addField(PersonDto.BURIAL_CONDUCTOR, NativeSelect.class); - addField(PersonDto.ADDRESS, LocationForm.class).setCaption(null); + addField(PersonDto.ADDRESS, LocationEditForm.class).setCaption(null); addField(PersonDto.PHONE, TextField.class); addField(PersonDto.PHONE_OWNER, TextField.class); @@ -291,15 +290,15 @@ private void updateApproximateAge() { (Date) getFieldGroup().getField(PersonDto.DEATH_DATE).getValue() ); - TextField textField = (TextField)getFieldGroup().getField(PersonDto.APPROXIMATE_AGE); - textField.setReadOnly(false); - textField.setValue(pair.getElement0()!=null?String.valueOf(pair.getElement0()):null); - textField.setReadOnly(true); + TextField approximateAgeField = (TextField)getFieldGroup().getField(PersonDto.APPROXIMATE_AGE); + approximateAgeField.setReadOnly(false); + approximateAgeField.setValue(pair.getElement0()!=null?String.valueOf(pair.getElement0()):null); + approximateAgeField.setReadOnly(true); - NativeSelect nativeSelect = (NativeSelect)getFieldGroup().getField(PersonDto.APPROXIMATE_AGE_TYPE); - nativeSelect.setReadOnly(false); - nativeSelect.setValue(String.valueOf(pair.getElement1())); - nativeSelect.setReadOnly(true); + AbstractSelect approximateAgeTypeSelect = (AbstractSelect)getFieldGroup().getField(PersonDto.APPROXIMATE_AGE_TYPE); + approximateAgeTypeSelect.setReadOnly(false); + approximateAgeTypeSelect.setValue(String.valueOf(pair.getElement1())); + approximateAgeTypeSelect.setReadOnly(true); } } @@ -426,7 +425,7 @@ private void updateOccupationFieldCaptions() { } } - private void setItemCaptionsForMonths(NativeSelect months) { + private void setItemCaptionsForMonths(AbstractSelect months) { months.setItemCaption(1, I18nProperties.getEnumCaption(Month.JANUARY)); months.setItemCaption(2, I18nProperties.getEnumCaption(Month.FEBRUARY)); months.setItemCaption(3, I18nProperties.getEnumCaption(Month.MARCH)); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/user/UserEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/user/UserEditForm.java index ef611cc9c69..66f2aa43b0c 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/user/UserEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/user/UserEditForm.java @@ -15,7 +15,7 @@ import de.symeda.sormas.api.user.UserHelper; import de.symeda.sormas.api.user.UserRole; import de.symeda.sormas.ui.ControllerProvider; -import de.symeda.sormas.ui.location.LocationForm; +import de.symeda.sormas.ui.location.LocationEditForm; import de.symeda.sormas.ui.login.LoginHelper; import de.symeda.sormas.ui.utils.AbstractEditForm; import de.symeda.sormas.ui.utils.CssStyles; @@ -56,7 +56,7 @@ protected void addFields() { addField(UserDto.USER_EMAIL, TextField.class); addField(UserDto.PHONE, TextField.class); - addField(UserDto.ADDRESS, LocationForm.class).setCaption(null); + addField(UserDto.ADDRESS, LocationEditForm.class).setCaption(null); addField(UserDto.ACTIVE, CheckBox.class); addField(UserDto.USER_NAME, TextField.class); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java index 8fb2e3279a2..a3786529928 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java @@ -13,6 +13,7 @@ import com.vaadin.ui.AbstractField; import com.vaadin.ui.AbstractSelect; import com.vaadin.ui.AbstractTextField; +import com.vaadin.ui.ComboBox; import com.vaadin.ui.Component; import com.vaadin.ui.CustomField; import com.vaadin.ui.CustomLayout; @@ -29,7 +30,7 @@ import de.symeda.sormas.ui.epidata.EpiDataGatheringsField; import de.symeda.sormas.ui.epidata.EpiDataTravelsField; import de.symeda.sormas.ui.hospitalization.PreviousHospitalizationsField; -import de.symeda.sormas.ui.location.LocationForm; +import de.symeda.sormas.ui.location.LocationEditForm; @SuppressWarnings("serial") public abstract class AbstractEditForm extends CustomField {// implements DtoEditForm { @@ -73,7 +74,7 @@ public T createField(Class type, Class fieldType) { return (T) field; } else { if (!AbstractSelect.class.isAssignableFrom(fieldType)) { - fieldType = (Class) NativeSelect.class; + fieldType = (Class) ComboBox.class; } T field = super.createField(type, fieldType); if (OptionGroup.class.isAssignableFrom(fieldType)) { @@ -85,8 +86,8 @@ public T createField(Class type, Class fieldType) { else if (AbstractSelect.class.isAssignableFrom(fieldType)) { return (T) createCompatibleSelect((Class) fieldType); } - else if (LocationForm.class.isAssignableFrom(fieldType)) { - return (T) new LocationForm(); + else if (LocationEditForm.class.isAssignableFrom(fieldType)) { + return (T) new LocationEditForm(); } else if (DateTimeField.class.isAssignableFrom(fieldType)) { return (T) new DateTimeField(); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/LayoutUtil.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/LayoutUtil.java index 5dc4c6d1350..8ca5108c712 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/LayoutUtil.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/LayoutUtil.java @@ -85,19 +85,19 @@ public static String spanCss(String cssClasses, String content) { } public static String h1(String cssClasses, String content) { - return element("h1", cssClasses, content); + return element("h1", cssClasses, span(content)); } public static String h2(String cssClasses, String content) { - return element("h2", cssClasses, content); + return element("h2", cssClasses, span(content)); } public static String h3(String cssClasses, String content) { - return element("h3", cssClasses, content); + return element("h3", cssClasses, span(content)); } public static String h4(String cssClasses, String content) { - return element("h4", cssClasses, content); + return element("h4", cssClasses, span(content)); } public static String strong(String cssClasses, String content) { diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/addons.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/addons.scss new file mode 100644 index 00000000000..754ba4bb052 --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/addons.scss @@ -0,0 +1,7 @@ +/* This file is automatically managed and will be overwritten from time to time. */ +/* Do not manually edit this file. */ + +/* Import and include this mixin into your project theme to include the addon themes */ +@mixin addons { +} + diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/bootstrap-reduced.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/bootstrap-reduced.css similarity index 95% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/bootstrap-reduced.css rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/bootstrap-reduced.css index c752647abe9..e83c5a20d5a 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/bootstrap-reduced.css +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/bootstrap-reduced.css @@ -226,26 +226,6 @@ textarea { } } -body { - margin: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 20px; - color: #333333; - background-color: #ffffff; -} - -a { - color: #0088cc; - text-decoration: none; -} - -a:hover, -a:focus { - color: #005580; - text-decoration: underline; -} - .img-rounded { -webkit-border-radius: 6px; -moz-border-radius: 6px; @@ -1058,23 +1038,6 @@ legend small { } */ -label, -input, -button, -select, -textarea { - font-size: 14px; - font-weight: normal; - line-height: 20px; -} - -input, -button, -select, -textarea { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -} - label { display: block; margin-bottom: 5px; diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/favicon.ico b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/favicon.ico similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/favicon.ico rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/favicon.ico diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/font-awesome.min.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/font-awesome.min.css similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/font-awesome.min.css rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/font-awesome.min.css diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/general.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/general.css similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/general.css rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/general.css diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/archetype-login-bg.jpg b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/archetype-login-bg.jpg similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/archetype-login-bg.jpg rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/archetype-login-bg.jpg diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/dashboard-preview1.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/dashboard-preview1.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/dashboard-preview1.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/dashboard-preview1.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/dashboard-preview2.jpg b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/dashboard-preview2.jpg similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/dashboard-preview2.jpg rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/dashboard-preview2.jpg diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/login-bg.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/login-bg.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/login-bg.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/login-bg.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/sormas-logo-big.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/sormas-logo-big.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/sormas-logo-big.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/sormas-logo-big.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/sormas-logo-huge.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/sormas-logo-huge.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/sormas-logo-huge.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/sormas-logo-huge.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/sormas-logo.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/sormas-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..54d84eee4a1fd004f53a95b653abaed110f01213 GIT binary patch literal 3642 zcmV-A4#n|_P)004&&004{<009NM004mL002@3009+U001_y0019C%$aXW000Lh zX+uL$P-t&-Z*ypGa3D!TLm+T+Z)Rz1WdHz3$CZ=`RFhX0$KUsT*%J~H5(xXpz8FYA zWEBd8MU;J05f?}zL;{H+Bv`@HQ4v{$SfErvRFFC-3bGW(rBIiGI98wnD&PWGrC1d! z>J-a_a^~1MXJ*cs|2gm7-?{Ieci+ADoCg5D$1lJ?5cUNiJwqXn4)#aatxrJl!vFy= zAOSqEOA=(tz<(D6z}(Q{4#1#8atNPao$hj?sXlOynO@Z#MPa0a|1F|GCRb?eOU)`2 ziZTV7D|0lQty0J|e&|;XGv%?-d;nkq0N6b#f8yjnv0U?TO+Cen@hMAubdi&nxNVUY zqU^<7fG?Hpkc(4N6{s!W4t3`7+|cA5C|@d(%F!69BugQdW@K_uKZyj5UJT1bqeYn_ zxl$x_L_@^_QAVZ+6^ax|Vo4?{NXkHyMd(&(R)!FjW_Y5h3Wdy*%T=jVjv|5BQ7TX2 zYAjcjv1l|Mc9f+qHgu`hKSWwOK$Xt_>Iw;nfB=X=GzbR%00m0m{GS8=e=W{;i9XIv zkR?|x`QVFxWM=_WU=Lh?4+sGV*cOG3Y5Y3w?m`Fda66tzjPQ1qZ^B zZ~`oXW$;coA6CQF@JYB8{ub_ohv5nM1w4-s5Ef#NaFLZr2ojG75jpZ1Qi2>t8j()q zI&ue@L|$WH3>{;J;bD9+k(ezQ872>-#vH?(!(74qh?&B?#S*XvSPs?)8;KQQv#p8jh6UHYy1KN%PqL>c58Tr`+9v^CspSYde62xH`B zlxcLzXwul&INrF_xYqZ9@K7ihm3%`D8U$n1tW(R`J8 zfq9Pw!6L+BzeS%V#WLKo%yPhrWwp-gu+;-=3+oi?)7GzSTy1h}zOyCRhTB%yj@nt; zN$lF}=IsOR57>_^GhZfI*1>@|p`0qtgagkZ$D!9z*HPfu;<&&K=hkp%cwW3B-l!AD zDc9+iGwLjNzPem*`L^YkT<9($m-8#AD+DV#U8$}@*9&e8H?donJKKG`d#{JNM~=sk zC(pCcbIQxttJ>?`%Gi}H-c;{2?_M7ppM0OGPXa!v_r>@MeXsdh`xW?2`-l3UVXboQ%sSz^`|D%Y z_ay`*T;AZep(T-%`1MBfjYl>aZ2EFDbF+F2ZOefqN>Xt$Ik`wc5tIn2!ZHy-}fyJo~&WpC^7k_ZRhU z&hGE`2=;=#HTjBCjkLDg?+>W{?MVrtuurW|7*>pPxX=TtXU z|J8}`2BhKq*Rqo~C&&L<*%)z(aH{+C&L-EUS7(~eikq#QCt8l3+uUl>I@VUxzNy2c zz~C zz6ZjG{*TZ{3y;SqE>G4@+ zuQ%Ux&egwFzuWa*@{bL_t)BP%VE?<}g4V*q$A7sY8-S?a|NXCaChUptW`pkO) z(0L3%_w9cIl-rKw?Z~wE00009a7bBm001r^001r^0o5EH8vpN2bZe?^JG%heMF*(%MvSa`N23tu)K~!i%)tbvw6jv0+`8TpkQkAMyX*SuU zD$6XgOcw5vEG)B#m4&NhlT;R(#4^zsQ_;i+sAy1$FN}iG5>Xrh5s(2v92gz~A~QUO zftg_#22T3Bc*pL0Pv7nyps1Xx--7CU&OPUw+xOL!PykzAUZ$m`rT-1c*UL6cfP8)h z?%7)6WxfR{w)m-;40T50)bTV%L(gYuGLfcKdVzAe#X_6K#XM!^bCgKV)9CmtJ&8_G zXK!5i+G7=i*C_BMK#<~5Oy9F}as(Ua*$1a3LEW|`? zuB{g)^Ax~u@%XiFH4M`J@`tqR&jz|$*GIFdEZa5+7#X)32kD0+jUqPs2s$!MqhQqn zyqK7y3pbzA_lFxr;lG}0q5k0n+jccPkIm8_XCH|^&=>kd-&|V`HxY~in2Mj7ou{hW zh?Pu(ND5%MCg)cFtGj{GP;srh&>#9n4#OO5GJBilY_%>$L!pE&wPF38DiRpCTn1#l}Kv-HWT$Bxdy!82`QX6Jmo z==@|G)xY+ZM!fn4+a4@fE6DN7omw8q4LNc?U{wNO7T$ZJS?hH7v8F)pqDuD{J6Hjx z>O*XM35NZ?lPeRh9ps2yIUk^kpb5Yg-`qJSW?{86aKCLtYafKjSKqP%B-`5A_I4gy zdj&2ha^XC=f+1R;@TJfRRH_=kw|EtyTXq3%Sf?80M-A7spiqBgMsC+Onou;44oNGKs z@6ePZpb3)z@tPZ&0FCdwr^PUVvj&%=9n^%{q>r=`{2>LvgofQ57r+h_4YKJm2{2WE zUlXAD{SUMlUT{ma3Tl&+wlpDt1KKxjV;RUxrUi$gMBtRl;20%T)xO@OYg+qD>8RNslRxpE+XX$1k!)@+Obi8C>u)QI-dgaGzsu!^~> zIFG-p5nwIYd)#{&L~ZOcXbAuX#DmF1hJN-DEHdca2o)pZO$D}dW!Xnt(m5#L0}I+AlaN>GdXgGqB7hwTk;p5}r{ za2a90+uuk5j{M!u<|yIr2Bf(P0K6u}M^9cQxgG-G>MNPbYGfB)36C3SE;oss^dzbo z1pxP2-9^A%pga<5gaG*5#^r=u zku%z;sOC!mFffu3mmq3q*jwYHMJAi0)ck^j^ve^Y=~+IzK#QrA1~y0-U8*0*+&CXQss$E6f=^)h0BYYaU^y~6%-TS+mt<^rf-xxy!`a8HZ|M`uJ~bLj=K%afB9 zmOH%P(=!<{)Vre-)YUg3eARd+im`PUz=WS!I|#+th6=FO1UI7p09`wX$EL=`6#xJL M07*qoM6N<$g7d-EaR2}S literal 0 HcmV?d00001 diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/table-logo.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/table-logo.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/table-logo.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/img/table-logo.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/layouts/aboutview.html b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/layouts/aboutview.html similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/layouts/aboutview.html rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/layouts/aboutview.html diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/green-contact.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/green-contact.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/green-contact.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/green-contact.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-contact.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-contact.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-contact.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-contact.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-dot-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-dot-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-dot-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-dot-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-dot-small.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-dot-small.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-dot-small.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-dot-small.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-dot-very-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-dot-very-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-dot-very-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-dot-very-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-dot.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-dot.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-dot.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-dot.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-house-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-house-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-house-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-house-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-house-small.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-house-small.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-house-small.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-house-small.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-house-very-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-house-very-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-house-very-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-house-very-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-house.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-house.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/grey-house.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/grey-house.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-contact.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-contact.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-contact.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-contact.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-dot-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-dot-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-dot-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-dot-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-dot-small.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-dot-small.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-dot-small.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-dot-small.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-dot-very-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-dot-very-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-dot-very-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-dot-very-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-dot.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-dot.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-dot.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-dot.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-house-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-house-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-house-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-house-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-house-small.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-house-small.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-house-small.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-house-small.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-house-very-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-house-very-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-house-very-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-house-very-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-house.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-house.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-house.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-house.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-region-small.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-region-small.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/orange-region-small.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/orange-region-small.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-contact.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-contact.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-contact.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-contact.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-dot-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-dot-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-dot-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-dot-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-dot-small.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-dot-small.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-dot-small.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-dot-small.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-dot-very-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-dot-very-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-dot-very-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-dot-very-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-dot.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-dot.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-dot.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-dot.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-house-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-house-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-house-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-house-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-house-small.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-house-small.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-house-small.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-house-small.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-house-very-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-house-very-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-house-very-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-house-very-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-house.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-house.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-house.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-house.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-region-small.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-region-small.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/red-region-small.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/red-region-small.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/region.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/region.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/region.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/region.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/templateAll.svg b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/templateAll.svg similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/templateAll.svg rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/templateAll.svg diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-dot-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-dot-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-dot-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-dot-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-dot-small.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-dot-small.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-dot-small.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-dot-small.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-dot-very-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-dot-very-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-dot-very-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-dot-very-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-dot.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-dot.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-dot.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-dot.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-house-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-house-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-house-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-house-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-house-small.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-house-small.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-house-small.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-house-small.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-house-very-large.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-house-very-large.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-house-very-large.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-house-very-large.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-house.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-house.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-house.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-house.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-region-small.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-region-small.png similarity index 100% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/mapicons/yellow-region-small.png rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/mapicons/yellow-region-small.png diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/sormastheme.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss similarity index 76% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/sormastheme.scss rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss index cb2278b7019..f072415747f 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/sormastheme.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss @@ -2,20 +2,31 @@ // Global variable overrides. Must be declared before importing Valo. // For more information, see: https://vaadin.com/book/-/page/themes.valo.html -// Example variants can be copy/pasted from https://vaadin.com/wiki/-/wiki/Main/Valo+Examples +// Example variants can be copy/pasted from https://vaadin.com/docs/v8/framework/articles/ValoExamples.html +// See also https://vaadin.com/api/valo/ $v-luminance-threshold: 180 !default; -$editor-background-color: #3b3f42 !default; -$valo-menu-background-color: $editor-background-color !default; - -$v-focus-color: rgb(96, 160, 234) !default; +$v-background-color: #ffffff !default; +$v-font-color: #394C5B !default; +$v-focus-color: #CDD8EC !default; $v-error-indicator-color: #eb2977 !default; $v-friendly-color: rgb(54, 185, 85); -$v-font-size: 15px !default; +$v-font-size: 12px !default; $v-font-weight: 400 !default; +$v-font-weight--header: 400 !default; +$v-font-size--h3: 16px; + +$v-link-font-color: #1565A2; + $v-unit-size: 32px !default; +$v-gradient: false; + +$v-border: 2px solid $v-selection-color; +$v-caption-font-weight: 600 !default; + +$valo-menu-background-color: #6691C4 !default; $login-info-width: 300px !default; $login-info-opacity: 0.7 !default; @@ -24,6 +35,7 @@ $login-background-color: $editor-background-color !default; $login-background-image: "img/login-bg.png" !default; $editor-shadow: 0 0 10px 10px rgba(0,0,0,.1) !default; +$editor-background-color: #6691C4 !default; $editor-embed-background-color: darken($editor-background-color, 5%) !default; $editor-raised-background-color: lighten($editor-background-color, 10%) !default; $editor-caption-font-color: valo-font-color($editor-background-color, 0.5) !default; @@ -35,73 +47,116 @@ $v-layout-margin-left: $v-layout-margin-top !default; $v-layout-spacing-vertical: round($v-unit-size / 1.8) !default; $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; - @import "../valo/valo.scss"; +@import "valo-components/valo-menu.scss"; -@mixin sormastheme { - @include valo; +@import "views/login.scss"; - .valo-menu { - font-size: 16px; - } - .valo-menu-item { - padding-top: 8px; - } - // login screen - for small screens, see below - .login-screen { - background: #EFF5FC; +@function valo-font-color ($bg-color, $contrast: $v-font-color-contrast) { + @return #374B5A; +} - @if $login-background-image { - background-image: url(#{$login-background-image}); - background-size: 960px; - background-repeat: no-repeat; - background-position: 50% 50%; - } +@mixin sormas { + @include valo; + @include sormas-valo-menu; - width: 100%; - height: 100%; + @include login; - .login-form { - @include valo-panel-style; - border: none; - padding: $v-layout-margin; - @include valo-animate-in-fade($duration: 1s); - margin-right: 50%; - margin-bottom: 10%; + .valo-content { + overflow: auto; + } + + .v-caption { + text-transform: uppercase; + display: block; + padding-bottom: 0.1em; + } + .v-caption.v-caption-caption-hidden { + display: none; + } + + .v-panel { + border: none; + box-shadow: none; + border-radius: 0; + } + + .v-button { + text-transform: uppercase; + } + + .v-filterselect [class$="button"] { + border-left: none; + + &::before { + color: $v-font-color; } + } - .login-information { - display: inline-block; - position: absolute; - top: 0; - left: 0; - width: $login-info-width; - height: 100%; - background: $v-selection-color; // For IE8 - background-color: rgba($v-selection-color, $login-info-opacity); - padding: $v-layout-margin; - color: valo-font-color($v-selection-color, 0.9); - @include animation(valo-animate-in-fade 1s 1s backwards); - - h1 { - color: inherit; - } + .v-datefield [class$="button"] { + border-right: none; + + &::before { + color: $v-font-color; } + } + + .v-radiobutton { + margin: 4px 0 4px -2px !important; + padding: 0 !important; + border: $v-border; + border-radius: 0; + font-size: 11px; + text-transform: uppercase; + + &:first-child { + border-radius: 4px 0 0 4px; + } + &:last-child { + border-radius: 0 4px 4px 0; + } + + :root & > input { + display: none; + + & ~ label { + margin-bottom: 0; + padding: 3px 12px; + } + + &:checked ~ label { + background: $v-selection-color; + } - .centering-layout { - display: inline-block; - width: 100%; - height: 100%; - padding-left: $login-info-width; - - .v-slot { - height: 100%; + & ~ label:before, + & ~ label:after { + content: none; } } } + h3 { + margin-bottom: 16px; + + &::before { + background: #EEF2F8; + content: ""; + display: block; + position: relative; + top: 15px; + height: 2px; + width: 100%; + } + + span { + background: #FFF; + position: relative; + padding-right: 8px; + } + } + .v-grid-header th { font-size: 12px; } @@ -176,14 +231,6 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; background-color: white; } - .valo-content { - overflow: auto; - } - - .v-caption { - padding-bottom: 0.1em; - } - .v-widget.v-textfield, .v-widget.v-textarea, .v-widget.v-select, .v-widget.v-datefield, .v-widget.v-filterselect { margin-bottom: 10px; @@ -192,9 +239,10 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; .v-caption-row-optiongroup { float: left; padding-top: 7px; - height: 22px; - padding-bottom: 1px; margin-bottom: -30px; + font-weight: 500; + font-size: 12px; + text-transform: none; } .v-select-optiongroup-row-optiongroup { @@ -206,13 +254,6 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; display: inline-block; } - .v-panel { - background: inherit; - border: medium none; - border-radius: 0; - box-shadow: none; - } - // makes the CRUD view keep the sidebar editor within the view as sidebar is absolutely positioned .crud-view { position: relative; @@ -222,13 +263,6 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; } } - .v-caption { - display: block; - } - .v-caption.v-caption-caption-hidden { - display: none; - } - .force-caption { margin-top: 1.5em; } diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css new file mode 100644 index 00000000000..caa62e2bd0e --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css @@ -0,0 +1,13340 @@ +@import "font-awesome.min.css"; + +@import "bootstrap-reduced.css"; + +@import "general.css"; + +/** + * Checks if a list contains a certain value. + * + * @param {list} $list - the list to check + * @param {value} $var - the value to search for + * @param {bool} $recursive (false) - should any contained lists be checked for the value + * + * @return {bool} true if the value is found from the list, false otherwise + * + * @group lists + */ + +/** + * Cross-browser opacity. + * + * @param {number} $value - opacity value from 0 to 1 + * @param {bool} $important (false) - should the property value be declared with !important + * + * @group util + */ + +@-webkit-keyframes valo-animate-in-fade { + 0% { + opacity: 0; + } + } + +@-moz-keyframes valo-animate-in-fade { + 0% { + opacity: 0; + } + } + +@keyframes valo-animate-in-fade { + 0% { + opacity: 0; + } + } + +@-webkit-keyframes valo-animate-out-fade { + 100% { + opacity: 0; + } + } + +@-moz-keyframes valo-animate-out-fade { + 100% { + opacity: 0; + } + } + +@keyframes valo-animate-out-fade { + 100% { + opacity: 0; + } + } + +@-webkit-keyframes valo-animate-in-slide-down { + 0% { + -webkit-transform: translateY(-100%); + } + } + +@-moz-keyframes valo-animate-in-slide-down { + 0% { + -moz-transform: translateY(-100%); + } + } + +@keyframes valo-animate-in-slide-down { + 0% { + -webkit-transform: translateY(-100%); + -moz-transform: translateY(-100%); + -ms-transform: translateY(-100%); + -o-transform: translateY(-100%); + transform: translateY(-100%); + } + } + +@-webkit-keyframes valo-animate-in-slide-up { + 0% { + -webkit-transform: translateY(100%); + } + } + +@-moz-keyframes valo-animate-in-slide-up { + 0% { + -moz-transform: translateY(100%); + } + } + +@keyframes valo-animate-in-slide-up { + 0% { + -webkit-transform: translateY(100%); + -moz-transform: translateY(100%); + -ms-transform: translateY(100%); + -o-transform: translateY(100%); + transform: translateY(100%); + } + } + +@-webkit-keyframes valo-animate-in-slide-left { + 0% { + -webkit-transform: translateX(100%); + } + } + +@-moz-keyframes valo-animate-in-slide-left { + 0% { + -moz-transform: translateX(100%); + } + } + +@keyframes valo-animate-in-slide-left { + 0% { + -webkit-transform: translateX(100%); + -moz-transform: translateX(100%); + -ms-transform: translateX(100%); + -o-transform: translateX(100%); + transform: translateX(100%); + } + } + +@-webkit-keyframes valo-animate-in-slide-right { + 0% { + -webkit-transform: translateX(-100%); + } + } + +@-moz-keyframes valo-animate-in-slide-right { + 0% { + -moz-transform: translateX(-100%); + } + } + +@keyframes valo-animate-in-slide-right { + 0% { + -webkit-transform: translateX(-100%); + -moz-transform: translateX(-100%); + -ms-transform: translateX(-100%); + -o-transform: translateX(-100%); + transform: translateX(-100%); + } + } + +@-webkit-keyframes valo-animate-out-slide-down { + 100% { + -webkit-transform: translateY(100%); + } + } + +@-moz-keyframes valo-animate-out-slide-down { + 100% { + -moz-transform: translateY(100%); + } + } + +@keyframes valo-animate-out-slide-down { + 100% { + -webkit-transform: translateY(100%); + -moz-transform: translateY(100%); + -ms-transform: translateY(100%); + -o-transform: translateY(100%); + transform: translateY(100%); + } + } + +@-webkit-keyframes valo-animate-out-slide-up { + 100% { + -webkit-transform: translateY(-100%); + } + } + +@-moz-keyframes valo-animate-out-slide-up { + 100% { + -moz-transform: translateY(-100%); + } + } + +@keyframes valo-animate-out-slide-up { + 100% { + -webkit-transform: translateY(-100%); + -moz-transform: translateY(-100%); + -ms-transform: translateY(-100%); + -o-transform: translateY(-100%); + transform: translateY(-100%); + } + } + +@-webkit-keyframes valo-animate-out-slide-left { + 100% { + -webkit-transform: translateX(-100%); + } + } + +@-moz-keyframes valo-animate-out-slide-left { + 100% { + -moz-transform: translateX(-100%); + } + } + +@keyframes valo-animate-out-slide-left { + 100% { + -webkit-transform: translateX(-100%); + -moz-transform: translateX(-100%); + -ms-transform: translateX(-100%); + -o-transform: translateX(-100%); + transform: translateX(-100%); + } + } + +@-webkit-keyframes valo-animate-out-slide-right { + 100% { + -webkit-transform: translateX(100%); + } + } + +@-moz-keyframes valo-animate-out-slide-right { + 100% { + -moz-transform: translateX(100%); + } + } + +@keyframes valo-animate-out-slide-right { + 100% { + -webkit-transform: translateX(100%); + -moz-transform: translateX(100%); + -ms-transform: translateX(100%); + -o-transform: translateX(100%); + transform: translateX(100%); + } + } + +@-webkit-keyframes valo-overlay-animate-in { + 0% { + -webkit-transform: translatey(-4px); + opacity: 0; + } + } + +@-moz-keyframes valo-overlay-animate-in { + 0% { + -moz-transform: translatey(-4px); + opacity: 0; + } + } + +@keyframes valo-overlay-animate-in { + 0% { + -webkit-transform: translatey(-4px); + -moz-transform: translatey(-4px); + -ms-transform: translatey(-4px); + -o-transform: translatey(-4px); + transform: translatey(-4px); + opacity: 0; + } + } + +@-webkit-keyframes valo-animate-out-slide-down-fade { + 100% { + opacity: 0; + -webkit-transform: translatey(30%); + } + } + +@-moz-keyframes valo-animate-out-slide-down-fade { + 100% { + opacity: 0; + -moz-transform: translatey(30%); + } + } + +@keyframes valo-animate-out-slide-down-fade { + 100% { + opacity: 0; + -webkit-transform: translatey(30%); + -moz-transform: translatey(30%); + -ms-transform: translatey(30%); + -o-transform: translatey(30%); + transform: translatey(30%); + } + } + +/** + * Outputs cross-browser Valo-specific linear gradient background-image declarations. + * + * @group style + * + * @param {color} $color ($v-background-color) - The base color for the gradient color stops + * @param {list} $gradient ($v-gradient) - Valo-specific gradient value. See the documentation for $v-gradient. + * @param {color} $fallback (null) - A fallback color for browser which do not support linear gradients (IE8 and IE9 in particular). If null, the base $color is used instead. + * @param {string} $direction (to bottom) - the direction of the linear gradient. The color stops are by default so that a lighter shade is at the start and a darker shade is at the end. + */ + +/** + * Computes a CSS border property value for the given base color. + * + * @group style + * + * @param {list} $border ($v-border) - CSS border value which can contain any of the color keywords + * @param {color} $color ($v-background-color) - the base color to which the color keywords are applied to + * @param {color} $context (null) - context/surrounding color where the border is expected to appear. The color of the final border is the darker of the two parameters passed to this function. + * @param {number} $strength (1) - adjustment for the border contrast + * + * @return {list} The input $border value with any color keyword replaced with the corresponding actual color + */ + +/** + * Ouput selectors and properties to vertically center elements inside their parent. + * + * @param {string} $to-align (()) - The selector to match the elements which you wish to align vertically. The targeted elements should be inline or inline-block elements. + * @param {string} $align (middle) - The vertical-align value, e.g. top, middle, bottom + * @param {string} $pseudo-element (after) - Which pseudo element to use for the vertical align guide + * + * @group util + */ + +@font-face { + font-family: ThemeIcons; + font-weight: normal; + font-style: normal; + src: url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.eot); + src: url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.woff) format("woff"), url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.ttf) format("truetype"), url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.svg#ThemeIcons) format("svg"); +} + +.ThemeIcons { + font-family: ThemeIcons; + font-style: normal; + font-weight: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + text-align: center; +} + +@font-face { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + src: url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.eot); + src: url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.woff) format("woff"), url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.ttf) format("truetype"), url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.svg#FontAwesome) format("svg"); +} + +.FontAwesome { + font-family: FontAwesome; + font-style: normal; + font-weight: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + text-align: center; +} + +@font-face { + font-family: "Open Sans"; + src: url(../valo/fonts/open-sans/OpenSans-Light-webfont.eot); + src: url(../valo/fonts/open-sans/OpenSans-Light-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/open-sans/OpenSans-Light-webfont.woff) format("woff"), url(../valo/fonts/open-sans/OpenSans-Light-webfont.ttf) format("truetype"); + font-weight: 300; + font-style: normal; +} + +@font-face { + font-family: "Open Sans"; + src: url(../valo/fonts/open-sans/OpenSans-Regular-webfont.eot); + src: url(../valo/fonts/open-sans/OpenSans-Regular-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/open-sans/OpenSans-Regular-webfont.woff) format("woff"), url(../valo/fonts/open-sans/OpenSans-Regular-webfont.ttf) format("truetype"); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: "Open Sans"; + src: url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.eot); + src: url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.woff) format("woff"), url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.ttf) format("truetype"); + font-weight: 600; + font-style: normal; +} + +@-webkit-keyframes v-rotate-360 { + to { + -webkit-transform: rotate(360deg); + } + } + +@-moz-keyframes v-rotate-360 { + to { + -moz-transform: rotate(360deg); + } + } + +@-o-keyframes v-rotate-360 { + to { + -o-transform: rotate(360deg); + } + } + +@keyframes v-rotate-360 { + to { + transform: rotate(360deg); + } + } + +@-webkit-keyframes v-progress-start { + 0% { + width: 0%; + } + 100% { + width: 50%; + } + } + +@-moz-keyframes v-progress-start { + 0% { + width: 0%; + } + 100% { + width: 50%; + } + } + +@keyframes v-progress-start { + 0% { + width: 0%; + } + 100% { + width: 50%; + } + } + +@-webkit-keyframes v-progress-delay { + 0% { + width: 50%; + } + 100% { + width: 90%; + } + } + +@-moz-keyframes v-progress-delay { + 0% { + width: 50%; + } + 100% { + width: 90%; + } + } + +@keyframes v-progress-delay { + 0% { + width: 50%; + } + 100% { + width: 90%; + } + } + +@-webkit-keyframes v-progress-wait { + 0% { + width: 90%; + height: 4px; + } + 3% { + width: 91%; + height: 6px; + } + 100% { + width: 96%; + height: 6px; + } + } + +@-moz-keyframes v-progress-wait { + 0% { + width: 90%; + height: 4px; + } + 3% { + width: 91%; + height: 6px; + } + 100% { + width: 96%; + height: 6px; + } + } + +@keyframes v-progress-wait { + 0% { + width: 90%; + height: 4px; + } + 3% { + width: 91%; + height: 6px; + } + 100% { + width: 96%; + height: 6px; + } + } + +@-webkit-keyframes v-progress-wait-pulse { + 0% { + opacity: 1; + } + 50% { + opacity: 0.1; + } + 100% { + opacity: 1; + } + } + +@-moz-keyframes v-progress-wait-pulse { + 0% { + opacity: 1; + } + 50% { + opacity: 0.1; + } + 100% { + opacity: 1; + } + } + +@keyframes v-progress-wait-pulse { + 0% { + opacity: 1; + } + 50% { + opacity: 0.1; + } + 100% { + opacity: 1; + } + } + +/** + * Outputs the context menu selectors and styles, which is used by Table and Tree for instance. + * + * @requires {mixin} valo-selection-item-style + * @requires {mixin} valo-selection-item-selected-style + */ + +/** + * The background color for overlay elements. + * + * @type color + * @group overlay + */ + +.v-shadow, .v-shadow-window { + display: none; +} + +.v-ie8 .v-shadow, .v-ie8 .v-shadow-window { + display: block; +} + +.v-ie8 .v-shadow .top, .v-ie8 .v-shadow-window .top { + position: absolute; + top: -6px; + right: 10px; + bottom: 6px; + left: -10px; + background: black; + filter: alpha(opacity=5) progid:DXImageTransform.Microsoft.blur(pixelradius=10, makeShadow=false); +} + +.v-ie8 .v-shadow .top-left, .v-ie8 .v-shadow-window .top-left { + position: absolute; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; + background: black; + filter: alpha(opacity=9) progid:DXImageTransform.Microsoft.blur(pixelradius=0, makeShadow=false); +} + +/** + * The backgound color for tooltips. + * + * @type color + * @group tooltip + */ + +/** + * + * + * @param {string} $primary-stylename (v-absolutelayout) - + * + * @group absolutelayout + */ + +/** + * Outputs the selectors and properties for the Accordion component. + * + * @param {string} $primary-stylename (v-accordion) - the primary style name for the selectors + * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component + * @group accordion + */ + +/** + * Outputs the selectors and properties for the Button component. + * + * @param {string} $primary-stylename (v-button) - the primary style name for the selectors + * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component + * + * @group button + */ + +/** + * A list of colors for custom event colors. Can be an empty list of you don't + * need any custom event colors. + * + * @example javascript + * // Java code + * // 'event' is an instance of EditableCalendarEvent + * event.setStyleName("color1"); // 1st color in the list + * event.setStyleName("color2"); // 2nd color in the list + * // etc. + * + * @group calendar + */ + +/** + * Outputs the selectors and properties for the CheckBox component. + * + * @param {string} $primary-stylename (v-checkbox) - the primary style name for the selectors + * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component + * + * @group checkbox + */ + +/** + * Outputs the global selectors and properties for the ColorPicker component - styles which are + * considered mandatory for the component to work properly. + * + * @param {string} $primary-stylename (v-colorpicker) - the primary style name for the selectors + * + * @group colorpicker + */ + +/** + * Outputs the selectors and properties for the ComboBox component. + * + * @param {string} $primary-stylename (v-filterselect) - the primary style name for the selectors + * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component + * + * @group combobox + */ + +/** + * The amount of spacing between different widgets in a component group. + * If null, a computed value is used ($v-border size * -1, or 1px if $v-border size is 0) + * + * @group csslayout + */ + +/** + * + * + * @param {string} $primary-stylename (v-customcomponent) - + * + * @group customcomponent + */ + +/** + * + * + * @param {string} $primary-stylename (v-customlayout) - + * + * @group customlayout + */ + +/** + * Outputs the selectors and properties for the DateField component. + * + * @param {string} $primary-stylename (v-datefield) - the primary style name for the selectors + * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component + * + * @group datefield + */ + +/** + * Outputs the styles and selectors for the DragAndDropWrapper component. + * + * @param {string} $primary-stylename (v-ddwrapper) - the primary style name for the selectors + * + * @group drag-n-drop + */ + +/** + * + * + * @param {string} $primary-stylename (v-form) - + * + * @group form + */ + +/** + * Outputs the selectors and properties for the FormLayout component. + * + * @param {string} $primary-stylename (v-formlayout) - the primary style name for the selectors + * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component + * + * @group formlayout + */ + +/** + * + * @group table + */ + +@-webkit-keyframes valo-grid-editor-footer-animate-in { + 0% { + margin-top: -32px; + } + } + +@-moz-keyframes valo-grid-editor-footer-animate-in { + 0% { + margin-top: -32px; + } + } + +@keyframes valo-grid-editor-footer-animate-in { + 0% { + margin-top: -32px; + } + } + +@-webkit-keyframes valo-grid-editor-footer-animate-in-alt { + 0% { + margin-bottom: -34px; + } + 100% { + margin-bottom: -2px; + } + } + +@-moz-keyframes valo-grid-editor-footer-animate-in-alt { + 0% { + margin-bottom: -34px; + } + 100% { + margin-bottom: -2px; + } + } + +@keyframes valo-grid-editor-footer-animate-in-alt { + 0% { + margin-bottom: -34px; + } + 100% { + margin-bottom: -2px; + } + } + +/** + * + * + * @param {string} $primary-stylename (v-gridlayout) - + * + * @group gridlayout + */ + +/** + * The font weight for headers. + * + * @group label + */ + +/** + * + * @group link + */ + +/** + * + * + * @param {string} $primary-stylename (v-loginform) - + * + * @group loginform + */ + +/** + * + * + * @param {string} $primary-stylename (v-menubar) - + * @param {bool} $include-additional-styles - + * + * @group menubar + */ + +/** + * + * + * @param {string} $primary-stylename (v-nativebutton) - + * + * @group nativebutton + */ + +/** + * + * + * @param {string} $primary-stylename (v-select) - + * + * @group nativeselect + */ + +/** + * + * @group notification + */ + +/** + * + * + * @param {string} $primary-stylename (v-select-optiongroup) - + * @param {bool} $include-additional-styles - + * + * @group optiongroup + */ + +/** + * + * + * + * @group orderedlayout + */ + +/** + * + * @group panel + */ + +@-webkit-keyframes v-popupview-animate-in { + 0% { + -webkit-transform: scale(0); + } + } + +@-moz-keyframes v-popupview-animate-in { + 0% { + -moz-transform: scale(0); + } + } + +@keyframes v-popupview-animate-in { + 0% { + -webkit-transform: scale(0); + -moz-transform: scale(0); + -ms-transform: scale(0); + -o-transform: scale(0); + transform: scale(0); + } + } + +/** + * + * @group progressbar + */ + +/** + * + * @group richtextarea + */ + +/** + * + * @group slider + */ + +/** + * + * + * @param {string} $primary-stylename (v-splitpanel) - + * @param {bool} $include-additional-styles - + * + * @group splitpanel + */ + +/** + * + * @group table + */ + +/** + * Should the tabsheet content changes be animated. + * + * @group tabsheet + */ + +/** + * The background color for text fields. + * @group textfield + */ + +/** + * Outputs the selectors and properties for the TextArea component. + * + * @param {string} $primary-stylename (v-textarea) - the primary style name for the selectors + * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component + * + * @group textarea + */ + +/** + * + * @group tree + */ + +/** + * + * + * @param {string} $primary-stylename (v-treetable) - + * + * @group treetable + */ + +/** + * + * + * @param {string} $primary-stylename (v-select-twincol) - + * + * @group twin-column-select + */ + +/** + * + * + * @param {string} $primary-stylename (v-upload) - + * + * @group upload + */ + +/** + * + */ + +/** + * @group window + */ + +@-webkit-keyframes valo-modal-window-indication { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } + } + +@-moz-keyframes valo-modal-window-indication { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } + } + +@keyframes valo-modal-window-indication { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } + } + +@-webkit-keyframes valo-animate-out-scale-down-fade { + 100% { + -webkit-transform: scale(0.8); + opacity: 0; + } + } + +@-moz-keyframes valo-animate-out-scale-down-fade { + 100% { + -moz-transform: scale(0.8); + opacity: 0; + } + } + +@keyframes valo-animate-out-scale-down-fade { + 100% { + -webkit-transform: scale(0.8); + -moz-transform: scale(0.8); + -ms-transform: scale(0.8); + -o-transform: scale(0.8); + transform: scale(0.8); + opacity: 0; + } + } + +/** + * @group valo-menu + */ + +.v-vaadin-version:after { + content: "7.7.6"; +} + +.v-widget { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + display: inline-block; + vertical-align: top; + text-align: left; + white-space: normal; +} + +.v-generated-body { + overflow: hidden; + margin: 0; + padding: 0; + border: 0; +} + +.v-app { + height: 100%; + -webkit-tap-highlight-color: transparent; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.v-app input[type="text"], .v-app .v-slot > .v-caption, .v-app .v-gridlayout-slot > .v-caption, .v-app .v-has-caption > .v-caption, .v-app .v-formlayout-captioncell > .v-caption, .v-app .v-csslayout > .v-caption { + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; +} + +.v-app input::-ms-clear { + display: none; +} + +.v-ui { + position: relative; +} + +.v-ui.v-ui-embedded { + margin-top: -1px; + border-top: 1px solid transparent; +} + +.v-ui:focus { + outline: none; +} + +.v-overlay-container { + width: 0; + height: 0; +} + +.v-drag-element { + z-index: 60000; + position: absolute !important; + cursor: default; +} + +.v-clip { + overflow: hidden; +} + +.v-scrollable { + overflow: auto; +} + +.v-scrollable > .v-widget { + vertical-align: middle; + overflow: hidden; +} + +.v-ios.v-webkit .v-scrollable { + -webkit-overflow-scrolling: touch; +} + +.v-ios5.v-webkit .v-scrollable { + -webkit-overflow-scrolling: none; +} + +.v-webkit.v-ios .v-browserframe { + -webkit-overflow-scrolling: touch; + overflow: auto; +} + +.v-assistive-device-only { + position: absolute; + top: -2000px; + left: -2000px; + width: 10px; + overflow: hidden; +} + +.v-icon { + cursor: inherit; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.v-icon, .v-errorindicator, .v-required-field-indicator { + display: inline-block; + line-height: inherit; +} + +.v-caption { + display: inline-block; + white-space: nowrap; + line-height: 1.55; +} + +.v-captiontext { + display: inline-block; + line-height: inherit; +} + +div.v-layout.v-horizontal.v-widget { + white-space: nowrap; +} + +.v-layout.v-vertical > .v-expand, .v-layout.v-horizontal > .v-expand { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + height: 100%; +} + +.v-slot, .v-spacing { + display: inline-block; + white-space: nowrap; + vertical-align: top; +} + +.v-vertical > .v-slot:after { + display: inline-block; + clear: both; + width: 0; + height: 0; + overflow: hidden; +} + +.v-vertical > .v-slot, .v-vertical > .v-expand > .v-slot { + display: block; + clear: both; +} + +.v-horizontal > .v-slot, .v-horizontal > .v-expand > .v-slot { + height: 100%; +} + +.v-horizontal > .v-expand > .v-slot { + position: relative; +} + +.v-vertical > .v-spacing, .v-vertical > .v-expand > .v-spacing { + width: 0 !important; + display: block; + clear: both; +} + +.v-horizontal > .v-spacing, .v-horizontal > .v-expand > .v-spacing { + height: 0 !important; +} + +.v-align-middle:before, .v-align-bottom:before, .v-expand > .v-align-middle:before, .v-expand > .v-align-bottom:before { + content: ""; + display: inline-block; + height: 100%; + vertical-align: middle; + width: 0; +} + +.v-align-middle, .v-align-bottom { + white-space: nowrap; +} + +.v-align-middle > .v-widget, .v-align-bottom > .v-widget { + display: inline-block; +} + +.v-align-middle, .v-align-middle > .v-widget { + vertical-align: middle; +} + +.v-align-bottom, .v-align-bottom > .v-widget { + vertical-align: bottom; +} + +.v-align-center { + text-align: center; +} + +.v-align-center > .v-widget { + margin-left: auto; + margin-right: auto; +} + +.v-align-right { + text-align: right; +} + +.v-align-right > .v-widget { + margin-left: auto; +} + +.v-has-caption, .v-has-caption > .v-caption { + display: inline-block; +} + +.v-caption-on-left, .v-caption-on-right { + white-space: nowrap; +} + +.v-caption-on-top > .v-caption, .v-caption-on-bottom > .v-caption { + display: block; +} + +.v-caption-on-left > .v-caption { + padding-right: 0.5em; +} + +.v-caption-on-left > .v-widget, .v-caption-on-right > .v-widget { + display: inline-block; +} + +.v-has-caption.v-has-width > .v-widget { + width: 100% !important; +} + +.v-has-caption.v-has-height > .v-widget { + height: 100% !important; +} + +.v-gridlayout { + position: relative; +} + +.v-gridlayout-slot { + position: absolute; + line-height: 1.55; +} + +.v-gridlayout-spacing-on { + overflow: hidden; +} + +.v-gridlayout-spacing, .v-gridlayout-spacing-off { + padding-left: 0; + padding-top: 0; +} + +.v-gridlayout-spacing-off { + overflow: hidden; +} + +.v-calendar-month-day-scrollable { + overflow-y: scroll; +} + +.v-calendar-week-wrapper { + position: relative; + overflow: hidden; +} + +.v-calendar-current-time { + position: absolute; + left: 0; + width: 100%; + height: 1px; + background: red; + z-index: 2; +} + +.v-calendar-event-resizetop, .v-calendar-event-resizebottom { + position: absolute; + height: 5%; + min-height: 3px; + width: 100%; + z-index: 1; +} + +.v-calendar-event-resizetop { + cursor: row-resize; + top: 0; +} + +.v-calendar-event-resizebottom { + cursor: row-resize; + bottom: 0; +} + +.v-calendar-header-month td:first-child { + padding-left: 20px; +} + +.v-calendar-month-sizedheight .v-calendar-month-day { + height: 100px; +} + +.v-calendar-month-sizedwidth .v-calendar-month-day { + width: 100px; +} + +.v-calendar-header-month-Hsized .v-calendar-header-day { + width: 101px; +} + +.v-calendar-header-month-Hsized td:first-child { + padding-left: 21px; +} + +.v-calendar-header-day-Hsized { + width: 200px; +} + +.v-calendar-week-numbers-Vsized .v-calendar-week-number { + height: 100px; + line-height: 100px; +} + +.v-calendar-week-wrapper-Vsized { + height: 400px; + overflow-x: hidden !important; +} + +.v-calendar-times-Vsized .v-calendar-time { + height: 38px; +} + +.v-calendar-times-Hsized .v-calendar-time { + width: 42px; +} + +.v-calendar-day-times-Vsized .v-datecellslot, .v-calendar-day-times-Vsized .v-datecellslot-even { + height: 18px; +} + +.v-calendar-day-times-Hsized, .v-calendar-day-times-Hsized .v-datecellslot, .v-calendar-day-times-Hsized .v-datecellslot-even { + width: 200px; +} + +.v-colorpicker-popup.v-window { + min-width: 220px !important; +} + +.v-colorpicker-gradient-container { + overflow: visible !important; +} + +.v-colorpicker-gradient-clicklayer { + opacity: 0; + filter: alpha(opacity=0) ; +} + +.rgb-gradient .v-colorpicker-gradient-background { + background: url(../valo/components/img/colorpicker/gradient2.png); +} + +.hsv-gradient .v-colorpicker-gradient-foreground { + background: url(../valo/components/img/colorpicker/gradient.png); +} + +.v-colorpicker-gradient-higherbox:before { + content: ""; + width: 11px; + height: 11px; + border-radius: 7px; + border: 1px solid #fff; + -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(0, 0, 0, 0.3); + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(0, 0, 0, 0.3); + position: absolute; + bottom: -6px; + left: -6px; +} + +.v-colorpicker-popup .v-slider.v-slider-red:before { + background-color: red; +} + +.v-colorpicker-popup .v-slider.v-slider-green:before { + background-color: green; +} + +.v-colorpicker-popup .v-slider.v-slider-blue:before { + background-color: blue; +} + +.v-colorpicker-popup .v-slider.hue-slider:before { + background: url(../valo/components/img/colorpicker/slider_hue_bg.png); +} + +.v-colorpicker-popup input.v-textfield-dark { + color: #fff; +} + +.v-colorpicker-popup input.v-textfield-light { + color: #000; +} + +.v-colorpicker-grid { + height: 319px; +} + +.v-colorpicker-popup .colorselect td { + line-height: 15px; +} + +.v-table-header table, .v-table-footer table, .v-table-table { + border-spacing: 0; + border-collapse: separate; + margin: 0; + padding: 0; + border: 0; + line-height: 1.55; +} + +.v-table-resizer, .v-table-sort-indicator { + float: right; +} + +.v-table-caption-container-align-center { + text-align: center; +} + +.v-table-caption-container-align-right { + text-align: right; +} + +.v-table-header td, .v-table-footer td, .v-table-cell-content { + padding: 0; +} + +.v-table-sort-indicator { + width: 0; +} + +.v-tabsheet-hidetabs > .v-tabsheet-tabcontainer, .v-tabsheet-spacertd, .v-disabled .v-tabsheet-scroller, .v-tabsheet .v-disabled .v-tabsheet-caption-close { + display: none; +} + +.v-tabsheet { + overflow: visible !important; + position: relative; +} + +.v-tabsheet-tabcontainer table, .v-tabsheet-tabcontainer tbody, .v-tabsheet-tabcontainer tr { + display: inline-block; + border-spacing: 0; + border-collapse: collapse; + vertical-align: top; +} + +.v-tabsheet-tabcontainer td { + display: inline-block; + padding: 0; +} + +.v-tabsheet-tabs { + white-space: nowrap; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.v-tabsheet-content { + position: relative; +} + +.v-tabsheet-content > div > .v-scrollable > .v-margin-top { + padding-top: 11px; +} + +.v-tabsheet-content > div > .v-scrollable > .v-margin-right { + padding-right: 11px; +} + +.v-tabsheet-content > div > .v-scrollable > .v-margin-bottom { + padding-bottom: 11px; +} + +.v-tabsheet-content > div > .v-scrollable > .v-margin-left { + padding-left: 11px; +} + +.v-splitpanel-vertical, .v-splitpanel-horizontal { + overflow: hidden; + white-space: nowrap; +} + +.v-splitpanel-hsplitter { + z-index: 100; + cursor: e-resize; + cursor: col-resize; +} + +.v-splitpanel-vsplitter { + z-index: 100; + cursor: s-resize; + cursor: row-resize; +} + +.v-splitpanel-hsplitter:after, .v-splitpanel-vsplitter:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +.v-splitpanel-hsplitter div, .v-splitpanel-vsplitter div { + width: inherit; + height: inherit; + overflow: hidden; + position: relative; +} + +.v-splitpanel-hsplitter div:before, .v-splitpanel-vsplitter div:before { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +.v-disabled [class$="splitter"] div { + cursor: default; +} + +.v-disabled [class$="splitter"] div:before { + display: none; +} + +.v-splitpanel-horizontal > div > .v-splitpanel-second-container { + position: static !important; + display: inline-block; + vertical-align: top; +} + +.v-splitpanel-horizontal > div > .v-splitpanel-first-container { + display: inline-block; + vertical-align: top; +} + +.sormas.v-app, .sormas.v-app-loading { + font: 400 12px/1.55 "Open Sans", sans-serif; + color: #394C5B; + background-color: #ffffff; + cursor: default; +} + +.sormas .v-app-loading { + width: 100%; + height: 100%; + background: #ffffff; +} + +.sormas .v-app-loading:before { + content: ""; + position: fixed; + z-index: 100; + top: 45%; + left: 50%; + width: 28px; + height: 28px; + padding: 8px; + margin-top: -22px; + margin-left: -22px; + background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50%; + border-radius: 4px; +} + +.sormas .v-loading-indicator { + position: fixed !important; + z-index: 99999; + left: 0; + right: auto; + top: 0; + width: 50%; + opacity: 1; + height: 4px; + background-color: #CDD8EC; + pointer-events: none; + -webkit-transition: none; + -moz-transition: none; + transition: none; + -webkit-animation: v-progress-start 1000ms 200ms both; + -moz-animation: v-progress-start 1000ms 200ms both; + animation: v-progress-start 1000ms 200ms both; +} + +.sormas .v-loading-indicator[style*="none"] { + display: block !important; + width: 100% !important; + opacity: 0; + -webkit-animation: none; + -moz-animation: none; + animation: none; + -webkit-transition: opacity 500ms 300ms, width 300ms; + -moz-transition: opacity 500ms 300ms, width 300ms; + transition: opacity 500ms 300ms, width 300ms; +} + +.sormas .v-loading-indicator-delay { + width: 90%; + -webkit-animation: v-progress-delay 3.8s forwards; + -moz-animation: v-progress-delay 3.8s forwards; + animation: v-progress-delay 3.8s forwards; +} + +.v-ff .sormas .v-loading-indicator-delay { + width: 50%; +} + +.sormas .v-loading-indicator-wait { + width: 96%; + -webkit-animation: v-progress-wait 5s forwards, v-progress-wait-pulse 1s 4s infinite backwards; + -moz-animation: v-progress-wait 5s forwards, v-progress-wait-pulse 1s 4s infinite backwards; + animation: v-progress-wait 5s forwards, v-progress-wait-pulse 1s 4s infinite backwards; +} + +.v-ff .sormas .v-loading-indicator-wait { + width: 90%; +} + +.v-ie8 .sormas .v-loading-indicator, .v-ie8 .sormas .v-loading-indicator-delay, .v-ie8 .sormas .v-loading-indicator-wait, .v-ie9 .sormas .v-loading-indicator, .v-ie9 .sormas .v-loading-indicator-delay, .v-ie9 .sormas .v-loading-indicator-wait { + width: 28px !important; + height: 28px; + padding: 8px; + background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50%; + border-radius: 4px; + top: 8px; + right: 8px; + left: auto; + filter: alpha(opacity=50); +} + +.v-ie8 .sormas .v-loading-indicator[style*="none"], .v-ie8 .sormas .v-loading-indicator-delay[style*="none"], .v-ie8 .sormas .v-loading-indicator-wait[style*="none"], .v-ie9 .sormas .v-loading-indicator[style*="none"], .v-ie9 .sormas .v-loading-indicator-delay[style*="none"], .v-ie9 .sormas .v-loading-indicator-wait[style*="none"] { + display: none !important; +} + +.v-ie8 .sormas .v-loading-indicator-wait, .v-ie9 .sormas .v-loading-indicator-wait { + filter: alpha(opacity=100); +} + +.sormas .v-scrollable:focus { + outline: none; +} + +.sormas img.v-icon { + vertical-align: middle; +} + +.sormas .v-caption { + font-size: 11px; + font-weight: 600; + padding-bottom: 0.3em; + padding-left: 1px; +} + +.sormas .v-caption-on-left .v-caption, .sormas .v-caption-on-right .v-caption { + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-icon + .v-captiontext, .sormas .v-icon + span { + margin-left: 6px; +} + +.sormas .v-icon + .v-captiontext:empty, .sormas .v-icon + span:empty { + margin-left: 0; +} + +.sormas .v-errorindicator { + color: #eb2977; + font-weight: 600; + width: 16px; + text-align: center; +} + +.sormas .v-errorindicator:before { + content: "!"; +} + +.sormas .v-required-field-indicator { + color: #eb2977; + padding: 0 0.2em; +} + +.sormas select { + font: inherit; + font-weight: 400; + line-height: inherit; + padding: 4px; + margin: 0; + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + color: #374B5A; +} + +.sormas select:focus { + outline: none; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas button { + font: inherit; + font-weight: 400; + line-height: 1.55; +} + +.sormas a { + cursor: pointer; + color: #1565A2; + text-decoration: underline; + font-weight: inherit; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; +} + +.sormas a:hover { + color: #1b81cf; +} + +.sormas a.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-disabled { + cursor: default !important; +} + +.sormas .v-drag-element { + background: #ffffff; + color: #374B5A; + -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); + border-radius: 4px; + overflow: hidden; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-tooltip { + background-color: #333333; + background-color: rgba(51, 51, 51, 0.9); + -webkit-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); + box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); + color: white; + padding: 4px 8px; + border-radius: 3px; + max-width: 35em; + overflow: hidden !important; + font-size: 12px; +} + +.sormas .v-tooltip div[style*="width"] { + width: auto !important; +} + +.sormas .v-tooltip .v-errormessage { + background-color: white; + background-color: #fff; + color: #eb2977; + margin: -4px -8px; + padding: 4px 8px; + max-height: 10em; + overflow: auto; + font-weight: 500; +} + +.sormas .v-tooltip .v-errormessage h2:only-child { + font: inherit; + line-height: inherit; +} + +.sormas .v-tooltip .v-tooltip-text { + max-height: 10em; + overflow: auto; + margin-top: 8px; +} + +.sormas .v-tooltip .v-errormessage[aria-hidden="true"] + .v-tooltip-text { + margin-top: 0; +} + +.sormas .v-tooltip h1, .sormas .v-tooltip h2, .sormas .v-tooltip h3, .sormas .v-tooltip h4 { + color: inherit; +} + +.sormas .v-contextmenu { + padding: 4px 4px; + border-radius: 4px; + background-color: white; + color: #374B5A; + -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + padding: 4px 4px; +} + +.sormas .v-contextmenu[class*="animate-in"] { + -webkit-animation: valo-overlay-animate-in 120ms; + -moz-animation: valo-overlay-animate-in 120ms; + animation: valo-overlay-animate-in 120ms; +} + +.sormas .v-contextmenu[class*="animate-out"] { + -webkit-animation: valo-animate-out-fade 120ms; + -moz-animation: valo-animate-out-fade 120ms; + animation: valo-animate-out-fade 120ms; +} + +.sormas .v-contextmenu table { + border-spacing: 0; +} + +.sormas .v-contextmenu .gwt-MenuItem { + cursor: pointer; + line-height: 23px; + padding: 0 16px 0 8px; + border-radius: 3px; + font-weight: 400; + white-space: nowrap; + position: relative; + display: block; +} + +.sormas .v-contextmenu .gwt-MenuItem:active:before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: #5185e3; + opacity: 0.15; + filter: alpha(opacity=15.0) ; + pointer-events: none; + border-radius: inherit; +} + +.sormas .v-contextmenu .gwt-MenuItem .v-icon { + max-height: 23px; + margin-right: 4px; + min-width: 1em; +} + +.sormas .v-contextmenu .gwt-MenuItem-selected { + background: #CDD8EC; + color: #374B5A; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-reconnect-dialog { + color: white; + top: 18px; + right: 18px; + max-width: 100%; + border-radius: 0; + -webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); + padding: 11px 13px; + background-color: #444; + background-color: rgba(68, 68, 68, 0.9); + line-height: 17px; + text-align: center; +} + +.sormas .v-reconnect-dialog .text { + display: inline-block; + padding-left: 10px; +} + +.sormas .v-reconnect-dialog .spinner { + height: 24px !important; + width: 24px !important; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + border: 2px solid rgba(205, 216, 236, 0.2); + border-top-color: #CDD8EC; + border-right-color: #CDD8EC; + border-radius: 100%; + -webkit-animation: v-rotate-360 500ms infinite linear; + -moz-animation: v-rotate-360 500ms infinite linear; + animation: v-rotate-360 500ms infinite linear; + pointer-events: none; + display: none; + vertical-align: middle; +} + +.v-ie8 .sormas .v-reconnect-dialog .spinner, .v-ie9 .sormas .v-reconnect-dialog .spinner { + border: none; + border-radius: 4px; + background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%; + background-size: 80%; +} + +.v-ie8 .sormas .v-reconnect-dialog .spinner { + min-width: 30px; + min-height: 30px; +} + +.sormas .v-reconnect-dialog.active .spinner { + display: inline-block; +} + +.sormas .v-absolutelayout-wrapper { + position: absolute; +} + +.sormas .v-absolutelayout-margin, .sormas .v-absolutelayout-canvas { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.sormas .v-absolutelayout.v-has-height > div, .sormas .v-absolutelayout.v-has-height .v-absolutelayout-margin { + height: 100%; +} + +.sormas .v-absolutelayout.v-has-height > div, .sormas .v-absolutelayout.v-has-width .v-absolutelayout-margin { + width: 100%; +} + +.sormas .v-margin-top { + padding-top: 21px; +} + +.sormas .v-margin-right { + padding-right: 21px; +} + +.sormas .v-margin-bottom { + padding-bottom: 21px; +} + +.sormas .v-margin-left { + padding-left: 21px; +} + +.sormas .v-spacing { + width: 18px; + height: 18px; +} + +.sormas .v-verticallayout-well, .sormas .v-horizontallayout-well { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); + border-radius: 4px; + border: 2px solid #CDD8EC; +} + +.sormas .v-verticallayout-well > div > [class*="-caption"], .sormas .v-horizontallayout-well > div > [class*="-caption"] { + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-verticallayout-well > .v-margin-top, .sormas .v-horizontallayout-well > .v-margin-top { + padding-top: 11px; +} + +.sormas .v-verticallayout-well > .v-margin-right, .sormas .v-horizontallayout-well > .v-margin-right { + padding-right: 11px; +} + +.sormas .v-verticallayout-well > .v-margin-bottom, .sormas .v-horizontallayout-well > .v-margin-bottom { + padding-bottom: 11px; +} + +.sormas .v-verticallayout-well > .v-margin-left, .sormas .v-horizontallayout-well > .v-margin-left { + padding-left: 11px; +} + +.sormas .v-verticallayout-card, .sormas .v-horizontallayout-card { + background: white; + color: #374B5A; + border-radius: 4px; + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); +} + +.sormas .v-verticallayout-card > .v-margin-top, .sormas .v-horizontallayout-card > .v-margin-top { + padding-top: 11px; +} + +.sormas .v-verticallayout-card > .v-margin-right, .sormas .v-horizontallayout-card > .v-margin-right { + padding-right: 11px; +} + +.sormas .v-verticallayout-card > .v-margin-bottom, .sormas .v-horizontallayout-card > .v-margin-bottom { + padding-bottom: 11px; +} + +.sormas .v-verticallayout-card > .v-margin-left, .sormas .v-horizontallayout-card > .v-margin-left { + padding-left: 11px; +} + +.sormas .v-horizontallayout-wrapping { + white-space: normal !important; +} + +.sormas .v-horizontallayout-wrapping > .v-spacing + .v-slot, .sormas .v-horizontallayout-wrapping > .v-slot:first-child { + margin-bottom: 18px; +} + +.sormas .v-horizontallayout-wrapping > .v-slot:first-child:last-child { + margin-bottom: 0; +} + +.sormas .v-button { + position: relative; + text-align: center; + white-space: nowrap; + outline: none; + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + height: 32px; + padding: 0 14px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-button:before { + content: ""; + display: inline-block; + width: 0; + height: 100%; + vertical-align: middle; +} + +.sormas .v-button > div { + vertical-align: middle; +} + +.v-sa .sormas .v-button:before { + height: 110%; +} + +.v-ff .sormas .v-button:before { + height: 107%; +} + +.v-ie .sormas .v-button:before { + margin-top: 4px; +} + +.sormas .v-button:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: inherit; + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; +} + +.sormas .v-button:focus:after { + -webkit-transition: none; + -moz-transition: none; + transition: none; +} + +.sormas .v-button.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-button.v-disabled:after { + display: none; +} + +.sormas .v-button:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-button:hover:after { + background-color: rgba(191, 191, 191, 0.1); +} + +.sormas .v-button:focus:after { + border: inherit; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-button:active:after { + background-color: rgba(128, 128, 128, 0.2); +} + +.sormas .v-button-primary { + height: 32px; + padding: 0 14px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #CDD8EC; + -webkit-box-shadow: inset 0 1px 0 #ebeef4, inset 0 -1px 0 #c4d0e7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 #ebeef4, inset 0 -1px 0 #c4d0e7, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + padding: 0 16px; + font-weight: bold; + min-width: 70px; +} + +.sormas .v-button-primary:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-button-primary:hover:after { + background-color: rgba(113, 144, 201, 0.1); +} + +.sormas .v-button-primary:focus:after { + border: inherit; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-button-primary:active:after { + background-color: rgba(33, 88, 187, 0.2); +} + +.v-ie8 .sormas .v-button-primary { + min-width: 38px; +} + +.sormas .v-button-friendly { + height: 32px; + padding: 0 14px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #36b955; + -webkit-box-shadow: inset 0 1px 0 #5cc672, inset 0 -1px 0 #36b053, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 #5cc672, inset 0 -1px 0 #36b053, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-button-friendly:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-button-friendly:hover:after { + background-color: rgba(104, 211, 130, 0.1); +} + +.sormas .v-button-friendly:focus:after { + border: inherit; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-button-friendly:active:after { + background-color: rgba(12, 107, 35, 0.2); +} + +.sormas .v-button-danger { + height: 32px; + padding: 0 14px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #eb2977; + -webkit-box-shadow: inset 0 1px 0 #ed5b90, inset 0 -1px 0 #e42773, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 #ed5b90, inset 0 -1px 0 #e42773, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-button-danger:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-button-danger:hover:after { + background-color: rgba(242, 111, 163, 0.1); +} + +.sormas .v-button-danger:focus:after { + border: inherit; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-button-danger:active:after { + background-color: rgba(136, 2, 56, 0.2); +} + +.sormas .v-button-borderless { + border: none; + -webkit-box-shadow: none; + box-shadow: none; + background: transparent; + color: inherit; +} + +.sormas .v-button-borderless:hover:after { + background: transparent; +} + +.sormas .v-button-borderless:active { + opacity: 0.7; + filter: alpha(opacity=70) ; +} + +.sormas .v-button-borderless:active:after { + background: transparent; +} + +.sormas .v-button-borderless-colored { + border: none; + -webkit-box-shadow: none; + box-shadow: none; + background: transparent; + color: #CDD8EC; +} + +.sormas .v-button-borderless-colored:hover { + color: #f2f5fa; +} + +.sormas .v-button-borderless-colored:hover:after { + background: transparent; +} + +.sormas .v-button-borderless-colored:active { + opacity: 0.7; + filter: alpha(opacity=70) ; +} + +.sormas .v-button-borderless-colored:active:after { + background: transparent; +} + +.sormas .v-button-quiet { + visibility: hidden; +} + +.sormas .v-button-quiet:focus, .sormas .v-button-quiet:hover { + visibility: visible; +} + +.sormas .v-button-quiet [class*="wrap"] { + visibility: visible; +} + +.sormas .v-button-quiet [class*="caption"] { + display: inline-block; +} + +.sormas .v-button-link { + border: none; + -webkit-box-shadow: none; + box-shadow: none; + background: transparent; + color: inherit; + cursor: pointer; + color: #1565A2; + text-decoration: underline; + font-weight: inherit; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; +} + +.sormas .v-button-link:hover:after { + background: transparent; +} + +.sormas .v-button-link:active { + opacity: 0.7; + filter: alpha(opacity=70) ; +} + +.sormas .v-button-link:active:after { + background: transparent; +} + +.sormas .v-button-link:hover { + color: #1b81cf; +} + +.sormas .v-button-link.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-button-tiny { + height: 24px; + padding: 0 11px; + color: #374B5A; + + font-size: 9px; + + border-radius: 4px; +} + +.sormas .v-button-tiny:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-button-small { + height: 27px; + padding: 0 12px; + color: #374B5A; + + font-size: 11px; + + border-radius: 4px; +} + +.sormas .v-button-small:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-button-large { + height: 38px; + padding: 0 17px; + color: #374B5A; + + font-size: 15px; + + border-radius: 4px; +} + +.sormas .v-button-large:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-button-huge { + height: 51px; + padding: 0 22px; + color: #374B5A; + + font-size: 20px; + + border-radius: 4px; +} + +.sormas .v-button-huge:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-button-icon-align-right [class*="wrap"] { + display: inline-block; +} + +.sormas .v-button-icon-align-right .v-icon { + float: right; + margin-left: 12px; +} + +.sormas .v-button-icon-align-right .v-icon + span:not(:empty) { + margin-left: 0; +} + +.sormas .v-button-icon-align-top { + height: auto; + padding-top: 4px; + padding-bottom: 4px; +} + +.sormas .v-button-icon-align-top [class*="wrap"] { + display: inline-block; +} + +.sormas .v-button-icon-align-top .v-icon { + display: block; + margin-left: auto; + margin-right: auto; +} + +.sormas .v-button-icon-align-top .v-icon + span:not(:empty) { + margin-top: 6px; + margin-left: 0; +} + +.sormas .v-button-icon-only { + width: 32px; + padding: 0; +} + +.sormas .v-button-icon-only.v-button-tiny { + width: 24px; +} + +.sormas .v-button-icon-only.v-button-small { + width: 27px; +} + +.sormas .v-button-icon-only.v-button-large { + width: 38px; +} + +.sormas .v-button-icon-only.v-button-huge { + width: 51px; +} + +.sormas .v-button-icon-only .v-button-caption { + display: none; +} + +.sormas .v-checkbox { + position: relative; + line-height: 16px; + white-space: nowrap; +} + +.sormas .v-checkbox.v-has-width label { + white-space: normal; +} + +:root .sormas .v-checkbox { + padding-left: 21px; +} + +:root .sormas .v-checkbox label { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + display: inline-block; +} + +:root .sormas .v-checkbox > input { + position: absolute; + clip: rect(0, 0, 0, 0); + left: 0.2em; + top: 0.2em; + z-index: 0; + margin: 0; +} + +:root .sormas .v-checkbox > input:focus ~ label:before { + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); +} + +:root .sormas .v-checkbox > input ~ label:before, :root .sormas .v-checkbox > input ~ label:after { + content: ""; + display: inline-block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 16px; + height: 16px; + position: absolute; + top: 0; + left: 0; + border-radius: 4px; + font-size: 10px; + text-align: center; +} + +:root .sormas .v-checkbox > input ~ label:before { + height: 16px; + padding: 0 8px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + padding: 0; + height: 16px; +} + +:root .sormas .v-checkbox > input ~ label:after { + content: "\f00c"; + font-family: ThemeIcons; + color: transparent; + -webkit-transition: color 100ms; + -moz-transition: color 100ms; + transition: color 100ms; +} + +:root .sormas .v-checkbox > input:active ~ label:after { + background-color: rgba(128, 128, 128, 0.2); +} + +:root .sormas .v-checkbox > input:checked ~ label:after { + color: #CDD8EC; +} + +.sormas .v-checkbox > .v-icon, .sormas .v-checkbox > label .v-icon { + margin: 0 5px 0 3px; + min-width: 1em; + cursor: pointer; +} + +.sormas .v-checkbox.v-disabled > label, .sormas .v-checkbox.v-disabled > .v-icon { + cursor: default; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-checkbox.v-disabled > label > .v-icon { + cursor: default; +} + +:root .sormas .v-checkbox.v-disabled > input:active ~ label:after { + background: transparent; +} + +.sormas .v-checkbox.v-readonly > label, .sormas .v-checkbox.v-readonly > .v-icon { + cursor: default; +} + +.sormas .v-checkbox.v-readonly > label > .v-icon { + cursor: default; +} + +:root .sormas .v-checkbox.v-readonly > input:active ~ label:after { + background: transparent; +} + +:root .sormas .v-checkbox.v-readonly > input ~ label:after { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-checkbox-small { + position: relative; + line-height: 14px; + white-space: nowrap; + font-size: 11px; +} + +.sormas .v-checkbox-small.v-has-width label { + white-space: normal; +} + +:root .sormas .v-checkbox-small { + padding-left: 18px; +} + +:root .sormas .v-checkbox-small label { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + display: inline-block; +} + +:root .sormas .v-checkbox-small > input { + position: absolute; + clip: rect(0, 0, 0, 0); + left: 0.2em; + top: 0.2em; + z-index: 0; + margin: 0; +} + +:root .sormas .v-checkbox-small > input:focus ~ label:before { + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); +} + +:root .sormas .v-checkbox-small > input ~ label:before, :root .sormas .v-checkbox-small > input ~ label:after { + content: ""; + display: inline-block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 14px; + height: 14px; + position: absolute; + top: 0; + left: 0; + border-radius: 4px; + font-size: 8px; + text-align: center; +} + +:root .sormas .v-checkbox-small > input ~ label:before { + height: 13.5px; + padding: 0 7px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + padding: 0; + height: 14px; +} + +:root .sormas .v-checkbox-small > input ~ label:after { + content: "\f00c"; + font-family: ThemeIcons; + color: transparent; + -webkit-transition: color 100ms; + -moz-transition: color 100ms; + transition: color 100ms; +} + +:root .sormas .v-checkbox-small > input:active ~ label:after { + background-color: rgba(128, 128, 128, 0.2); +} + +:root .sormas .v-checkbox-small > input:checked ~ label:after { + color: #CDD8EC; +} + +.sormas .v-checkbox-small > .v-icon, .sormas .v-checkbox-small > label .v-icon { + margin: 0 5px 0 2px; + min-width: 1em; + cursor: pointer; +} + +.sormas .v-checkbox-small.v-disabled > label, .sormas .v-checkbox-small.v-disabled > .v-icon { + cursor: default; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-checkbox-small.v-disabled > label > .v-icon { + cursor: default; +} + +:root .sormas .v-checkbox-small.v-disabled > input:active ~ label:after { + background: transparent; +} + +.sormas .v-checkbox-small.v-readonly > label, .sormas .v-checkbox-small.v-readonly > .v-icon { + cursor: default; +} + +.sormas .v-checkbox-small.v-readonly > label > .v-icon { + cursor: default; +} + +:root .sormas .v-checkbox-small.v-readonly > input:active ~ label:after { + background: transparent; +} + +:root .sormas .v-checkbox-small.v-readonly > input ~ label:after { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-checkbox-large { + position: relative; + line-height: 19px; + white-space: nowrap; + font-size: 15px; +} + +.sormas .v-checkbox-large.v-has-width label { + white-space: normal; +} + +:root .sormas .v-checkbox-large { + padding-left: 25px; +} + +:root .sormas .v-checkbox-large label { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + display: inline-block; +} + +:root .sormas .v-checkbox-large > input { + position: absolute; + clip: rect(0, 0, 0, 0); + left: 0.2em; + top: 0.2em; + z-index: 0; + margin: 0; +} + +:root .sormas .v-checkbox-large > input:focus ~ label:before { + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); +} + +:root .sormas .v-checkbox-large > input ~ label:before, :root .sormas .v-checkbox-large > input ~ label:after { + content: ""; + display: inline-block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 19px; + height: 19px; + position: absolute; + top: 0; + left: 0; + border-radius: 4px; + font-size: 11px; + text-align: center; +} + +:root .sormas .v-checkbox-large > input ~ label:before { + height: 19px; + padding: 0 9px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + padding: 0; + height: 19px; +} + +:root .sormas .v-checkbox-large > input ~ label:after { + content: "\f00c"; + font-family: ThemeIcons; + color: transparent; + -webkit-transition: color 100ms; + -moz-transition: color 100ms; + transition: color 100ms; +} + +:root .sormas .v-checkbox-large > input:active ~ label:after { + background-color: rgba(128, 128, 128, 0.2); +} + +:root .sormas .v-checkbox-large > input:checked ~ label:after { + color: #CDD8EC; +} + +.sormas .v-checkbox-large > .v-icon, .sormas .v-checkbox-large > label .v-icon { + margin: 0 6px 0 3px; + min-width: 1em; + cursor: pointer; +} + +.sormas .v-checkbox-large.v-disabled > label, .sormas .v-checkbox-large.v-disabled > .v-icon { + cursor: default; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-checkbox-large.v-disabled > label > .v-icon { + cursor: default; +} + +:root .sormas .v-checkbox-large.v-disabled > input:active ~ label:after { + background: transparent; +} + +.sormas .v-checkbox-large.v-readonly > label, .sormas .v-checkbox-large.v-readonly > .v-icon { + cursor: default; +} + +.sormas .v-checkbox-large.v-readonly > label > .v-icon { + cursor: default; +} + +:root .sormas .v-checkbox-large.v-readonly > input:active ~ label:after { + background: transparent; +} + +:root .sormas .v-checkbox-large.v-readonly > input ~ label:after { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-filterselect { + position: relative; + width: 160px; + height: 32px; + border-radius: 4px; + white-space: nowrap; +} + +.sormas .v-filterselect [class*="input"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 32px; + border-radius: 4px; + padding: 4px 8px; + border: 2px solid #CDD8EC; + background: white; + color: #374B5A; + -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + width: 100% !important; + height: 100%; + padding-right: 33px; + border-radius: inherit; +} + +.v-ie8 .sormas .v-filterselect [class*="input"], .v-ie9 .sormas .v-filterselect [class*="input"] { + line-height: 32px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-filterselect [class*="input"].v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-filterselect [class*="input"]:focus { + outline: none; + -webkit-transition: none; + -moz-transition: none; + transition: none; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-filterselect [class*="input"][class*="prompt"] { + color: #93a6b4; +} + +.sormas .v-filterselect .v-icon + [class*="input"] { + padding-left: 32px; +} + +.sormas .v-filterselect img.v-icon { + max-height: 32px; + margin-left: 8px; +} + +.sormas .v-filterselect span.v-icon { + color: #374B5A; + width: 32px; + line-height: 1; + padding-top: 0.12em; +} + +.sormas .v-filterselect[class*="prompt"] > [class*="input"] { + color: #93a6b4; +} + +.sormas .v-filterselect [class$="button"] { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + position: absolute; + width: 32px; + top: 2px; + right: 2px; + bottom: 2px; + border-left: 2px solid #CDD8EC; + color: #9ba5ac; + border-radius: 0 2px 2px 0; +} + +.v-ie8 .sormas .v-filterselect [class$="button"] { + background-color: white; +} + +.sormas .v-filterselect [class$="button"]:before { + font-family: ThemeIcons; + content: "\f078"; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; + position: absolute; + width: 32px; + text-align: center; + top: 50%; + line-height: 1; + margin-top: -0.47em; +} + +.sormas .v-filterselect [class$="button"]:hover:before { + color: #374B5A; +} + +.sormas .v-filterselect [class$="button"]:active:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: inherit; + background-color: rgba(128, 128, 128, 0.2); +} + +.sormas .v-filterselect.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-filterselect.v-disabled [class$="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-filterselect.v-disabled [class$="button"]:active:after { + display: none; +} + +.sormas .v-filterselect.v-readonly [class*="input"] { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-filterselect.v-readonly [class*="input"]:focus { + box-shadow: none; + border-color: #CDD8EC; +} + +.sormas .v-filterselect.v-readonly [class$="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-filterselect.v-readonly [class$="button"]:active:after { + display: none; +} + +.sormas .v-filterselect .v-icon { + position: absolute; + pointer-events: none; +} + +.sormas .v-filterselect-error .v-filterselect-input { + border-color: #eb2977 !important; + background: #fffbfc; + color: #374B5A; +} + +.sormas .v-filterselect-error .v-filterselect-button { + color: #eb2977; + border-color: #eb2977; +} + +.sormas .v-filterselect-suggestpopup { + margin-top: 4px !important; +} + +.sormas .v-filterselect-suggestpopup[class*="animate-in"] { + -webkit-animation: valo-overlay-animate-in 120ms; + -moz-animation: valo-overlay-animate-in 120ms; + animation: valo-overlay-animate-in 120ms; +} + +.sormas .v-filterselect-suggestpopup [class$="suggestmenu"] { + padding: 4px 4px; + border-radius: 4px; + background-color: white; + color: #374B5A; + -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + padding: 4px 4px; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + position: relative; + z-index: 1; + display: block; +} + +.sormas .v-filterselect-suggestpopup table, .sormas .v-filterselect-suggestpopup tbody, .sormas .v-filterselect-suggestpopup tr, .sormas .v-filterselect-suggestpopup td { + display: block; + width: 100%; + overflow-y: hidden; + float: left; + clear: both; +} + +.sormas .v-filterselect-suggestpopup .gwt-MenuItem { + cursor: pointer; + line-height: 23px; + padding: 0 16px 0 8px; + border-radius: 3px; + font-weight: 400; + white-space: nowrap; + position: relative; + height: 23px; + box-sizing: border-box; + text-overflow: ellipsis; + overflow-x: hidden; +} + +.sormas .v-filterselect-suggestpopup .gwt-MenuItem:active:before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: #5185e3; + opacity: 0.15; + filter: alpha(opacity=15.0) ; + pointer-events: none; + border-radius: inherit; +} + +.sormas .v-filterselect-suggestpopup .gwt-MenuItem .v-icon { + max-height: 23px; + margin-right: 4px; + min-width: 1em; +} + +.sormas .v-filterselect-suggestpopup .gwt-MenuItem-selected { + background: #CDD8EC; + color: #374B5A; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-filterselect-suggestpopup [class$="status"] { + position: absolute; + right: 4px; + background: rgba(217, 217, 217, 0.9); + color: #374B5A; + border-radius: 0 0 4px 4px; + height: 20px; + bottom: -20px; + font-size: 9px; + line-height: 20px; + padding: 0 5px; + cursor: default; + pointer-events: none; + -webkit-animation: valo-animate-in-slide-down 200ms 80ms backwards; + -moz-animation: valo-animate-in-slide-down 200ms 80ms backwards; + animation: valo-animate-in-slide-down 200ms 80ms backwards; +} + +.sormas .v-filterselect-suggestpopup [class$="status"] > * { + color: #374B5A; + text-decoration: none; +} + +.sormas .v-filterselect-suggestpopup div[class*="page"] { + position: absolute; + z-index: 3; + right: 0; + opacity: 0.2; + filter: alpha(opacity=20) ; + cursor: pointer; + -webkit-transition: all 200ms; + -moz-transition: all 200ms; + transition: all 200ms; + width: 22px; + height: 22px; + line-height: 22px; + text-align: center; + font-family: ThemeIcons; + -webkit-transform: scale(0.8); + -moz-transform: scale(0.8); + -ms-transform: scale(0.8); + -o-transform: scale(0.8); + transform: scale(0.8); + color: #374B5A; +} + +.sormas .v-filterselect-suggestpopup div[class*="page"]:after { + content: ""; + position: absolute; + display: block; + border-radius: 50%; +} + +.sormas .v-filterselect-suggestpopup div[class*="page"]:hover { + opacity: 1; + filter: none ; + background: rgba(255, 255, 255, 0.5); +} + +.sormas .v-filterselect-suggestpopup div[class*="page"]:hover:after { + top: -10px; + bottom: -10px; + left: -20px; + right: -20px; +} + +.sormas .v-filterselect-suggestpopup div[class*="page"] span { + display: none; +} + +.sormas .v-filterselect-suggestpopup:hover div[class*="page"] { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -ms-transform: scale(1); + -o-transform: scale(1); + transform: scale(1); +} + +.sormas .v-filterselect-suggestpopup div[class*="prev"] { + top: 0; + -webkit-transform-origin: 100% 0%; + -moz-transform-origin: 100% 0%; + -ms-transform-origin: 100% 0%; + -o-transform-origin: 100% 0%; + transform-origin: 100% 0%; + border-radius: 0 4px 0 4px; +} + +.sormas .v-filterselect-suggestpopup div[class*="prev"]:before { + content: "\f0d8"; +} + +.sormas .v-filterselect-suggestpopup div[class*="next"] { + bottom: 0; + -webkit-transform-origin: 100% 100%; + -moz-transform-origin: 100% 100%; + -ms-transform-origin: 100% 100%; + -o-transform-origin: 100% 100%; + transform-origin: 100% 100%; + border-radius: 4px 0 4px 0; +} + +.sormas .v-filterselect-suggestpopup div[class*="next"]:before { + content: "\f0d7"; +} + +.sormas .v-filterselect-suggestpopup div[class*="-off"] { + display: none; +} + +.sormas .v-filterselect-no-input { + cursor: pointer; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-filterselect-no-input [class*="input"] { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background: #ffffff; + cursor: inherit; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + border: 2px solid #CDD8EC; + text-shadow: inherit; + text-overflow: ellipsis; + border-radius: inherit; +} + +.sormas .v-filterselect-no-input [class*="input"]:focus { + outline: none; + -webkit-transition: none; + -moz-transition: none; + transition: none; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-filterselect-no-input [class$="button"] { + border-left: none !important; +} + +.sormas .v-filterselect-no-input:hover [class$="button"]:before { + color: inherit; +} + +.sormas .v-filterselect-borderless .v-filterselect-input { + border: none; + border-radius: 0; + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; + color: inherit; +} + +.sormas .v-filterselect-borderless .v-filterselect-input:focus { + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-filterselect-borderless .v-filterselect-input[class*="prompt"] { + color: inherit; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-filterselect-borderless .v-filterselect-button { + border: none; + color: inherit; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-filterselect-borderless.v-filterselect-prompt .v-filterselect-input { + color: inherit; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-filterselect-align-right input { + text-align: right; +} + +.sormas .v-filterselect-align-center input { + text-align: center; +} + +.sormas .v-filterselect-tiny { + height: 24px; + + font-size: 9px; +} + +.sormas .v-filterselect-tiny [class*="input"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 24px; + + padding: 3px 4px; + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + width: 100% !important; + height: 100%; + padding-right: 25px; + border-radius: inherit; +} + +.v-ie8 .sormas .v-filterselect-tiny [class*="input"], .v-ie9 .sormas .v-filterselect-tiny [class*="input"] { + line-height: 24px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-filterselect-tiny .v-icon + [class*="input"] { + padding-left: 24px; +} + +.sormas .v-filterselect-tiny img.v-icon { + max-height: 24px; + margin-left: 4px; +} + +.sormas .v-filterselect-tiny span.v-icon { + color: #374B5A; + width: 24px; + line-height: 1; + padding-top: 0.12em; +} + +.sormas .v-filterselect-tiny [class$="button"] { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + position: absolute; + width: 24px; + border-radius: 0 4px 4px 0; +} + +.sormas .v-filterselect-tiny [class$="button"]:before { + font-family: ThemeIcons; + content: "\f078"; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; + position: absolute; + width: 24px; + text-align: center; + top: 50%; + line-height: 1; + margin-top: -0.47em; +} + +.sormas .v-filterselect-tiny [class$="button"]:active:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: inherit; +} + +.sormas .v-filterselect-tiny.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-filterselect-tiny.v-disabled [class$="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-filterselect-tiny.v-disabled [class$="button"]:active:after { + display: none; +} + +.sormas .v-filterselect-tiny.v-readonly [class*="input"] { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-filterselect-tiny.v-readonly [class*="input"]:focus { + box-shadow: none; + border-color: #CDD8EC; +} + +.sormas .v-filterselect-tiny.v-readonly [class$="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-filterselect-tiny.v-readonly [class$="button"]:active:after { + display: none; +} + +.sormas .v-filterselect-compact, .sormas .v-filterselect-small { + height: 27px; + +} + +.sormas .v-filterselect-compact [class*="input"], .sormas .v-filterselect-small [class*="input"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 27px; + + padding: 3px 5px; + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + width: 100% !important; + height: 100%; + padding-right: 28px; + border-radius: inherit; +} + +.v-ie8 .sormas .v-filterselect-compact [class*="input"], .v-ie9 .sormas .v-filterselect-compact [class*="input"], .v-ie8 .sormas .v-filterselect-small [class*="input"], .v-ie9 .sormas .v-filterselect-small [class*="input"] { + line-height: 27px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-filterselect-compact .v-icon + [class*="input"], .sormas .v-filterselect-small .v-icon + [class*="input"] { + padding-left: 27px; +} + +.sormas .v-filterselect-compact img.v-icon, .sormas .v-filterselect-small img.v-icon { + max-height: 27px; + margin-left: 5px; +} + +.sormas .v-filterselect-compact span.v-icon, .sormas .v-filterselect-small span.v-icon { + color: #374B5A; + width: 27px; + line-height: 1; + padding-top: 0.12em; +} + +.sormas .v-filterselect-compact [class$="button"], .sormas .v-filterselect-small [class$="button"] { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + position: absolute; + width: 27px; + border-radius: 0 4px 4px 0; +} + +.sormas .v-filterselect-compact [class$="button"]:before, .sormas .v-filterselect-small [class$="button"]:before { + font-family: ThemeIcons; + content: "\f078"; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; + position: absolute; + width: 27px; + text-align: center; + top: 50%; + line-height: 1; + margin-top: -0.47em; +} + +.sormas .v-filterselect-compact [class$="button"]:active:after, .sormas .v-filterselect-small [class$="button"]:active:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: inherit; +} + +.sormas .v-filterselect-compact.v-disabled, .sormas .v-filterselect-small.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-filterselect-compact.v-disabled [class$="button"], .sormas .v-filterselect-small.v-disabled [class$="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-filterselect-compact.v-disabled [class$="button"]:active:after, .sormas .v-filterselect-small.v-disabled [class$="button"]:active:after { + display: none; +} + +.sormas .v-filterselect-compact.v-readonly [class*="input"], .sormas .v-filterselect-small.v-readonly [class*="input"] { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-filterselect-compact.v-readonly [class*="input"]:focus, .sormas .v-filterselect-small.v-readonly [class*="input"]:focus { + box-shadow: none; + border-color: #CDD8EC; +} + +.sormas .v-filterselect-compact.v-readonly [class$="button"], .sormas .v-filterselect-small.v-readonly [class$="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-filterselect-compact.v-readonly [class$="button"]:active:after, .sormas .v-filterselect-small.v-readonly [class$="button"]:active:after { + display: none; +} + +.sormas .v-filterselect-small { + font-size: 11px; +} + +.sormas .v-filterselect-large { + height: 38px; + + font-size: 15px; +} + +.sormas .v-filterselect-large [class*="input"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 38px; + + padding: 4px 7px; + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + width: 100% !important; + height: 100%; + padding-right: 39px; + border-radius: inherit; +} + +.v-ie8 .sormas .v-filterselect-large [class*="input"], .v-ie9 .sormas .v-filterselect-large [class*="input"] { + line-height: 38px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-filterselect-large .v-icon + [class*="input"] { + padding-left: 38px; +} + +.sormas .v-filterselect-large img.v-icon { + max-height: 38px; + margin-left: 7px; +} + +.sormas .v-filterselect-large span.v-icon { + color: #374B5A; + width: 38px; + line-height: 1; + padding-top: 0.12em; +} + +.sormas .v-filterselect-large [class$="button"] { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + position: absolute; + width: 38px; + border-radius: 0 4px 4px 0; +} + +.sormas .v-filterselect-large [class$="button"]:before { + font-family: ThemeIcons; + content: "\f078"; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; + position: absolute; + width: 38px; + text-align: center; + top: 50%; + line-height: 1; + margin-top: -0.47em; +} + +.sormas .v-filterselect-large [class$="button"]:active:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: inherit; +} + +.sormas .v-filterselect-large.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-filterselect-large.v-disabled [class$="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-filterselect-large.v-disabled [class$="button"]:active:after { + display: none; +} + +.sormas .v-filterselect-large.v-readonly [class*="input"] { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-filterselect-large.v-readonly [class*="input"]:focus { + box-shadow: none; + border-color: #CDD8EC; +} + +.sormas .v-filterselect-large.v-readonly [class$="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-filterselect-large.v-readonly [class$="button"]:active:after { + display: none; +} + +.sormas .v-filterselect-huge { + height: 51px; + + font-size: 20px; +} + +.sormas .v-filterselect-huge [class*="input"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 51px; + + padding: 6px 9px; + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + width: 100% !important; + height: 100%; + padding-right: 52px; + border-radius: inherit; +} + +.v-ie8 .sormas .v-filterselect-huge [class*="input"], .v-ie9 .sormas .v-filterselect-huge [class*="input"] { + line-height: 51px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-filterselect-huge .v-icon + [class*="input"] { + padding-left: 51px; +} + +.sormas .v-filterselect-huge img.v-icon { + max-height: 51px; + margin-left: 9px; +} + +.sormas .v-filterselect-huge span.v-icon { + color: #374B5A; + width: 51px; + line-height: 1; + padding-top: 0.12em; +} + +.sormas .v-filterselect-huge [class$="button"] { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + position: absolute; + width: 51px; + border-radius: 0 4px 4px 0; +} + +.sormas .v-filterselect-huge [class$="button"]:before { + font-family: ThemeIcons; + content: "\f078"; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; + position: absolute; + width: 51px; + text-align: center; + top: 50%; + line-height: 1; + margin-top: -0.47em; +} + +.sormas .v-filterselect-huge [class$="button"]:active:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: inherit; +} + +.sormas .v-filterselect-huge.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-filterselect-huge.v-disabled [class$="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-filterselect-huge.v-disabled [class$="button"]:active:after { + display: none; +} + +.sormas .v-filterselect-huge.v-readonly [class*="input"] { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-filterselect-huge.v-readonly [class*="input"]:focus { + box-shadow: none; + border-color: #CDD8EC; +} + +.sormas .v-filterselect-huge.v-readonly [class$="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-filterselect-huge.v-readonly [class$="button"]:active:after { + display: none; +} + +.sormas .v-csslayout-well { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); + border-radius: 4px; + border: 2px solid #CDD8EC; +} + +.sormas .v-csslayout-well > div > [class*="-caption"] { + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-csslayout-well > .v-margin-top { + padding-top: 11px; +} + +.sormas .v-csslayout-well > .v-margin-right { + padding-right: 11px; +} + +.sormas .v-csslayout-well > .v-margin-bottom { + padding-bottom: 11px; +} + +.sormas .v-csslayout-well > .v-margin-left { + padding-left: 11px; +} + +.sormas .v-csslayout-card { + background: white; + color: #374B5A; + border-radius: 4px; + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); +} + +.sormas .v-csslayout-card > .v-margin-top { + padding-top: 11px; +} + +.sormas .v-csslayout-card > .v-margin-right { + padding-right: 11px; +} + +.sormas .v-csslayout-card > .v-margin-bottom { + padding-bottom: 11px; +} + +.sormas .v-csslayout-card > .v-margin-left { + padding-left: 11px; +} + +.sormas .v-csslayout-v-component-group { + white-space: nowrap; + position: relative; +} + +.sormas .v-csslayout-v-component-group .v-widget ~ .v-widget:not(:last-child) { + border-radius: 0; +} + +.sormas .v-csslayout-v-component-group .v-widget:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.sormas .v-csslayout-v-component-group .v-widget:first-child, .sormas .v-csslayout-v-component-group .v-caption:first-child + .v-widget { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.sormas .v-csslayout-v-component-group .v-widget ~ .v-widget.first.first { + border-radius: 4px 0 0 4px; +} + +.sormas .v-csslayout-v-component-group .v-widget ~ .v-widget.last.last { + border-radius: 0 4px 4px 0; +} + +.sormas .v-csslayout-v-component-group .v-widget { + vertical-align: middle; + margin-left: -2px; +} + +.sormas .v-csslayout-v-component-group .v-widget:first-child { + margin-left: 0; +} + +.sormas .v-csslayout-v-component-group .v-widget:focus, .sormas .v-csslayout-v-component-group .v-widget[class*="focus"], .sormas .v-csslayout-v-component-group .v-widget [class*="focus"] { + position: relative; + z-index: 5; +} + +.sormas .v-form fieldset { + border: none; + padding: 0; + margin: 0; + height: 100%; +} + +.sormas .v-form-content { + height: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.sormas [class*="spacing"] > tbody > [class*="row"] > td { + padding-top: 18px; +} + +.sormas [class*="spacing"] > tbody > [class*="firstrow"] > td { + padding-top: 0; +} + +.sormas [class*="margin-top"] > tbody > [class*="firstrow"] > td { + padding-top: 21px; +} + +.sormas [class*="margin-bottom"] > tbody > [class*="lastrow"] > td { + padding-bottom: 21px; +} + +.sormas [class*="margin-left"] > tbody > [class*="row"] > [class*="captioncell"] { + padding-left: 21px; +} + +.sormas [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .sormas [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .sormas [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { + left: 21px; +} + +.sormas [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] { + padding-right: 21px; +} + +.sormas [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .sormas [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .sormas [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { + right: 21px; +} + +.sormas .v-formlayout > table { + border-spacing: 0; + position: relative; +} + +.sormas .v-formlayout.v-has-width > table, .sormas .v-formlayout.v-has-width .v-formlayout-contentcell { + width: 100%; +} + +.sormas .v-formlayout-error-indicator { + width: 16px; +} + +.sormas .v-formlayout-captioncell { + vertical-align: top; + line-height: 31px; +} + +.sormas .v-formlayout-captioncell .v-caption { + padding-bottom: 0; +} + +.sormas .v-formlayout-captioncell .v-caption-h2, .sormas .v-formlayout-captioncell .v-caption-h3, .sormas .v-formlayout-captioncell .v-caption-h4 { + height: 3em; +} + +.sormas .v-formlayout-contentcell .v-checkbox, .sormas .v-formlayout-contentcell .v-radiobutton { + font-weight: 500; +} + +.sormas .v-formlayout-contentcell > .v-label-h2, .sormas .v-formlayout-contentcell > .v-label-h3, .sormas .v-formlayout-contentcell > .v-label-h4 { + position: absolute; + left: 0; + right: 0; + width: auto !important; + margin-top: -0.5em; + padding-bottom: 0.5em; + border-bottom: 2px solid #CDD8EC; +} + +.sormas .v-formlayout.light > table { + padding: 0; +} + +.sormas .v-formlayout.light > table > tbody > tr > td { + padding-top: 0; + height: 32px; + border-bottom: 2px solid #CDD8EC; +} + +.sormas .v-formlayout.light > table > tbody > [class*="lastrow"] > td { + border-bottom: none; +} + +.sormas .v-formlayout.light > table > tbody > tr > [class*="captioncell"] { + color: #374B5A; + text-align: right; + padding-left: 11px; + line-height: 32px; +} + +.sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] { + padding-right: 0; +} + +.sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect-input, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield-textfield { + width: 100%; +} + +.sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 32px; + border-radius: 0; + padding: 4px 6px; + + -webkit-box-shadow: none; + box-shadow: none; + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + background: transparent; + border: none; + color: inherit; +} + +.v-ie8 .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield, .v-ie9 .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield, .v-ie8 .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea, .v-ie9 .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea, .v-ie8 .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input, .v-ie9 .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input, .v-ie8 .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input, .v-ie9 .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input, .v-ie8 .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea, .v-ie9 .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea { + line-height: 32px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield.v-disabled, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea.v-disabled, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input.v-disabled, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input.v-disabled, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield:focus, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea:focus, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input:focus, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input:focus, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea:focus { + outline: none; + -webkit-transition: none; + -moz-transition: none; + transition: none; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), none; + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), none; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield:focus, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea:focus, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input:focus, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input:focus, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea:focus { + box-shadow: none; +} + +.sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield-prompt, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea-prompt, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect-prompt input, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield-prompt input { + color: #93a6b4; +} + +.sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea { + height: auto; +} + +.sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { + border-bottom: none; + left: 0; + right: 0; +} + +.sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .sormas .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { + margin-top: 0; +} + +.sormas .v-formlayout.light .v-richtextarea { + margin: 4px 0; +} + +.sormas .v-formlayout.light .v-filterselect-button, .sormas .v-formlayout.light .v-datefield-button { + border: none; +} + +.sormas .v-formlayout.light .v-filterselect-button:active:after, .sormas .v-formlayout.light .v-datefield-button:active:after { + display: none; +} + +.sormas .v-formlayout.light .v-datefield-button { + right: 0; + left: auto; +} + +.sormas .v-formlayout.light .v-checkbox { + margin-left: 6px; +} + +.sormas .v-grid { + position: relative; +} + +.sormas .v-grid-scroller { + position: absolute; + z-index: 1; + outline: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.sormas .v-grid-scroller-horizontal { + left: 0; + right: 0; + bottom: 0; + overflow-y: hidden; + -ms-overflow-y: hidden; +} + +.sormas .v-grid-scroller-vertical { + right: 0; + top: 0; + bottom: 0; + overflow-x: hidden; + -ms-overflow-x: hidden; +} + +.sormas .v-grid-tablewrapper { + position: absolute; + overflow: hidden; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + z-index: 5; +} + +.sormas .v-grid-tablewrapper > table { + border-spacing: 0; + table-layout: fixed; + width: inherit; +} + +.sormas .v-grid-header-deco, .sormas .v-grid-footer-deco { + position: absolute; + right: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.sormas .v-grid-horizontal-scrollbar-deco { + position: absolute; + bottom: 0; + left: 0; + right: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.sormas .v-grid-header, .sormas .v-grid-body, .sormas .v-grid-footer { + position: absolute; + left: 0; + width: inherit; + z-index: 10; +} + +.sormas .v-grid-header, .sormas .v-grid-header-deco { + top: 0; +} + +.sormas .v-grid-footer, .sormas .v-grid-footer-deco { + bottom: 0; +} + +.sormas .v-grid-body { + -ms-touch-action: none; + touch-action: none; + z-index: 0; + top: 0; +} + +.sormas .v-grid-body .v-grid-row { + position: absolute; + top: 0; + left: 0; +} + +.sormas .v-grid-row { + display: block; +} + +.v-ie8 .sormas .v-grid-row, .v-ie9 .sormas .v-grid-row { + float: left; + clear: left; + margin-top: 0; +} + +.sormas .v-grid-row > td, .sormas .v-grid-row > th { + background-color: white; +} + +.sormas .v-grid-row { + width: inherit; +} + +.sormas .v-grid-cell { + display: block; + float: left; + padding: 2px; + white-space: nowrap; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; + font-size: 12px; +} + +.sormas .v-grid-cell.frozen { + position: relative; + z-index: 1; +} + +.sormas .v-grid-spacer { + position: absolute; + display: block; + background-color: white; +} + +.sormas .v-grid-spacer > td { + width: 100%; + height: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.v-ie8 .sormas .v-grid-spacer, .v-ie9 .sormas .v-grid-spacer { + margin-top: 0; +} + +.sormas .v-grid { + outline: none; +} + +.sormas .v-grid-scroller-vertical, .sormas .v-grid-scroller-horizontal { + border: 2px solid #CDD8EC; +} + +.sormas .v-grid-scroller-vertical { + border-left: none; +} + +.sormas .v-grid-scroller-horizontal { + border-top: none; +} + +.sormas .v-grid-tablewrapper { + border: 2px solid #CDD8EC; +} + +.sormas .v-grid .header-drag-table { + border-spacing: 0; + position: relative; + table-layout: fixed; + width: inherit; +} + +.sormas .v-grid .header-drag-table .v-grid-header { + position: absolute; +} + +.sormas .v-grid .header-drag-table .v-grid-header > .v-grid-cell { + border: 2px solid #CDD8EC; + margin-top: -10px; + opacity: 0.9; + filter: alpha(opacity=90); + z-index: 30000; +} + +.sormas .v-grid .header-drag-table .v-grid-header > .v-grid-drop-marker { + background-color: #CDD8EC; + position: absolute; + width: 3px; +} + +.sormas .v-grid-sidebar.v-contextmenu { + -webkit-box-shadow: none; + box-shadow: none; + border-radius: 0; + position: absolute; + top: 0; + right: 0; + background-color: #ffffff; + border: 2px solid #CDD8EC; + padding: 0; + z-index: 5; +} + +.sormas .v-grid-sidebar.v-contextmenu.v-grid-sidebar-popup { + right: auto; +} + +.sormas .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button { + background: transparent; + border: none; + color: inherit; + cursor: pointer; + outline: none; + padding: 0 4px; + text-align: right; + line-height: 1; +} + +.sormas .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button[disabled] { + cursor: default; +} + +.sormas .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button::-moz-focus-inner { + border: 0; +} + +.sormas .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button:after { + content: "\f0c9"; + display: block; + font-family: ThemeIcons, sans-serif; + font-size: 10px; +} + +.sormas .v-grid-sidebar.v-contextmenu.closed { + border-radius: 0; +} + +.sormas .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button { + width: 100%; +} + +.sormas .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button:after { + content: "\f0c9"; + font-size: 10px; + line-height: 1; +} + +.v-ie .sormas .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button { + vertical-align: middle; +} + +.v-ie8 .sormas .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button:after { + vertical-align: middle; + text-align: center; + display: inline; +} + +.sormas .v-grid-sidebar.v-contextmenu .v-grid-sidebar-content { + padding: 4px 0; + overflow-y: auto; + overflow-x: hidden; +} + +.sormas .v-grid-sidebar.v-contextmenu .v-grid-sidebar-content .gwt-MenuBar .gwt-MenuItem .column-hiding-toggle { + text-shadow: none; +} + +.sormas .v-grid-cell { + background-color: white; + padding: 0 16.5px; + line-height: 32px; + text-overflow: ellipsis; +} + +.sormas .v-grid-cell > * { + line-height: 1.55; + vertical-align: middle; +} + +.sormas .v-grid-cell > div { + display: inline-block; +} + +.sormas .v-grid-cell.frozen { + -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); + box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); + border-right: 2px solid #CDD8EC; +} + +.sormas .v-grid-cell.frozen + th, .sormas .v-grid-cell.frozen + td { + border-left: none; +} + +.sormas .v-grid-row > td, .sormas .v-grid-editor-cells > div { + border-left: 2px solid #CDD8EC; + border-bottom: 2px solid #CDD8EC; +} + +.sormas .v-grid-row > td:first-child, .sormas .v-grid-editor-cells > div:first-child { + border-left: none; +} + +.sormas .v-grid-editor-cells.frozen > div { + -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); + box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); + border-right: 2px solid #CDD8EC; + border-left: none; +} + +.sormas .v-grid-row-stripe > td { + background-color: #f5f5f5; +} + +.sormas .v-grid-row-selected > td { + background: #CDD8EC; +} + +.sormas .v-grid-row-focused > td { + +} + +.sormas .v-grid-header th { + position: relative; + background-color: #ffffff; + font-size: 10px; + font-weight: inherit; + border-left: 2px solid #CDD8EC; + border-bottom: 2px solid #CDD8EC; + + text-align: left; +} + +.sormas .v-grid-header th:first-child { + border-left: none; +} + +.sormas .v-grid-header .sort-asc, .sormas .v-grid-header .sort-desc { + padding-right: 28.5px; +} + +.sormas .v-grid-header .sort-asc:after, .sormas .v-grid-header .sort-desc:after { + font-family: ThemeIcons, sans-serif; + content: "\f0de" " " attr(sort-order); + position: absolute; + right: 16.5px; + font-size: 9px; +} + +.sormas .v-grid-header .sort-desc:after { + content: "\f0dd" " " attr(sort-order); +} + +.sormas .v-grid-column-resize-handle { + position: absolute; + width: 33px; + right: -16.5px; + top: 0px; + bottom: 0px; + cursor: col-resize; + z-index: 10; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.sormas .v-grid-column-resize-simple-indicator { + position: absolute; + width: 3px; + top: 0px; + left: 16.5px; + z-index: 9001; + background: #fff; + box-shadow: 0px 0px 5px #000; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.sormas .v-grid-footer td { + background-color: #ffffff; + font-size: 10px; + font-weight: inherit; + border-left: 2px solid #CDD8EC; + border-top: 2px solid #CDD8EC; + border-bottom: none; + +} + +.sormas .v-grid-footer td:first-child { + border-left: none; +} + +.sormas .v-grid-header .v-grid-cell, .sormas .v-grid-footer .v-grid-cell { + overflow: visible; +} + +.sormas .v-grid-column-header-content, .sormas .v-grid-column-footer-content { + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + line-height: 32px; + vertical-align: baseline; +} + +.sormas .v-grid-header-deco { + border-top: 2px solid #CDD8EC; + border-right: 2px solid #CDD8EC; + background-color: #ffffff; +} + +.sormas .v-grid-footer-deco { + border-bottom: 2px solid #CDD8EC; + border-right: 2px solid #CDD8EC; + background-color: #ffffff; +} + +.sormas .v-grid-horizontal-scrollbar-deco { + background-color: #ffffff; + border: 2px solid #CDD8EC; + border-top: none; +} + +.sormas .v-grid-cell-focused { + position: relative; +} + +.sormas .v-grid-cell-focused:before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border: 2px solid #CDD8EC; + display: none; + pointer-events: none; +} + +.ie8 .sormas .v-grid-cell-focused:before, .ie9 .sormas .v-grid-cell-focused:before, .ie10 .sormas .v-grid-cell-focused:before { + content: url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==); +} + +.sormas .v-grid:focus .v-grid-cell-focused:before { + display: block; +} + +.sormas .v-grid.v-disabled:focus .v-grid-cell-focused:before { + display: none; +} + +.sormas .v-grid-editor { + position: absolute; + z-index: 20; + overflow: hidden; + left: 0; + right: 0; + border: 2px solid #CDD8EC; + box-sizing: border-box; + -moz-box-sizing: border-box; + margin-top: -2px; + -webkit-box-shadow: 0 0 9px rgba(0, 0, 0, 0.2); + box-shadow: 0 0 9px rgba(0, 0, 0, 0.2); +} + +.sormas .v-grid-editor.unbuffered .v-grid-editor-footer { + width: 100%; +} + +.sormas .v-grid-editor-cells { + position: relative; + white-space: nowrap; +} + +.sormas .v-grid-editor-cells.frozen { + z-index: 2; +} + +.sormas .v-grid-editor-cells > div { + display: inline-block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + vertical-align: middle; + background: white; +} + +.sormas .v-grid-editor-cells > div:first-child { + border-left: none; +} + +.sormas .v-grid-editor-cells > div > * { + vertical-align: middle; + display: inline-block; +} + +.sormas .v-grid-editor-cells > div .v-filterselect { + padding-left: 0; +} + +.sormas .v-grid-editor-cells > div input[type="text"], .sormas .v-grid-editor-cells > div input[type="text"].v-filterselect-input, .sormas .v-grid-editor-cells > div input[type="password"] { + padding-left: 16.5px; +} + +.sormas .v-grid-editor-cells > div input[type="text"]:not(.v-filterselect-input), .sormas .v-grid-editor-cells > div input[type="password"] { + padding-right: 8.25px; +} + +.sormas .v-grid-editor-cells > div input[type="checkbox"] { + margin-left: 16.5px; +} + +.sormas .v-grid-editor-cells > div .v-textfield, .sormas .v-grid-editor-cells > div .v-datefield, .sormas .v-grid-editor-cells > div .v-filterselect { + min-width: 100%; + max-width: 100%; + min-height: 100%; + max-height: 100%; +} + +.v-ie8 .sormas .v-grid-editor-cells > div .v-datefield-button { + margin-left: -37px; +} + +.v-ie8 .sormas .v-grid-editor-cells > div .v-filterselect-button { + margin-left: -25px; +} + +.sormas .v-grid-editor-cells > div .v-select, .sormas .v-grid-editor-cells > div .v-select-select { + min-width: 100%; + max-width: 100%; +} + +.sormas .v-grid-editor-cells > div.not-editable.v-grid-cell { + float: none; +} + +.sormas .v-grid-editor-cells .error::before { + position: absolute; + display: block; + height: 0; + width: 0; + content: ""; + border-top: 5px solid red; + border-right: 5px solid transparent; +} + +.sormas .v-grid-editor-cells .error, .sormas .v-grid-editor-cells .error > input { + background-color: #fee; +} + +.sormas .v-grid-editor-footer { + display: table; + height: 32px; + border-top: 2px solid #CDD8EC; + margin-top: -2px; + background: white; + padding: 0 5px; +} + +.sormas .v-grid-editor-footer + .v-grid-editor-cells > div { + border-bottom: none; + border-top: 2px solid #CDD8EC; +} + +.sormas .v-grid-editor-footer:first-child { + border-top: none; + margin-top: 0; + border-bottom: 2px solid #CDD8EC; + margin-bottom: -2px; +} + +.sormas .v-grid-editor-message, .sormas .v-grid-editor-buttons { + display: table-cell; + white-space: nowrap; + vertical-align: middle; +} + +.sormas .v-grid-editor-message { + width: 100%; + position: relative; +} + +.sormas .v-grid-editor-message > div { + position: absolute; + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + line-height: 32px; + top: 0; +} + +.sormas .v-grid-editor-save { + margin-right: 4px; +} + +.sormas .v-grid-spacer { + padding-left: 3px; +} + +.sormas .v-grid-spacer > td { + display: block; + padding: 0; + background-color: white; + border-top: 2px solid #CDD8EC; + border-bottom: 2px solid #CDD8EC; +} + +.sormas .v-grid-spacer.stripe > td { + background-color: #f5f5f5; + border-top: 2px solid #CDD8EC; + border-bottom: 2px solid #CDD8EC; +} + +.sormas .v-grid-spacer-deco-container { + border-top: 1px solid transparent; + position: relative; + top: 0; + z-index: 5; +} + +.sormas .v-grid-spacer-deco { + top: 0; + left: 0; + width: 4px; + background-color: #CDD8EC; + position: absolute; + height: 100%; + pointer-events: none; +} + +.ie8 .sormas .v-grid-spacer-deco:before, .ie9 .sormas .v-grid-spacer-deco:before, .ie10 .sormas .v-grid-spacer-deco:before { + content: url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==); +} + +.sormas .v-grid-cell > .v-progressbar { + width: 100%; +} + +.sormas .v-grid { + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + background-color: #ffffff; +} + +.sormas .v-grid.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-grid-header .v-grid-cell { + background: #ffffff; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-grid-header .v-grid-cell.dragged { + opacity: 0.5; + filter: alpha(opacity=50) ; + -webkit-transition: opacity 0.3s ease-in-out; + -moz-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; +} + +.sormas .v-grid-header .v-grid-cell.dragged-column-header { + margin-top: -16px; +} + +.sormas .v-grid-footer .v-grid-cell { + background: #ffffff; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-grid-header-deco { + background: #ffffff; +} + +.sormas .v-grid-footer-deco, .sormas .v-grid-horizontal-scrollbar-deco { + background: #ffffff; +} + +.sormas .v-grid-row-selected > .v-grid-cell { + background: #CDD8EC; + color: #374B5A; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + border-color: #b4c2dc; +} + +.sormas .v-grid-row-selected > .v-grid-cell-focused:before { + border-color: white; +} + +.sormas .v-grid-editor { + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + border-color: #CDD8EC; +} + +.sormas .v-grid-editor-footer { + font-size: 11px; + padding: 0 9px; + background: #ffffff; + -webkit-animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; + -moz-animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; + animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; +} + +.sormas .v-grid-editor-footer:first-child { + -webkit-animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; + -moz-animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; + animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; +} + +.sormas .v-grid-editor-cells { + z-index: 1; +} + +.sormas .v-grid-editor-cells > div:before { + content: ""; + display: inline-block; + height: 100%; + vertical-align: middle; +} + +.sormas .v-grid-editor-cells > div.not-editable.v-grid-cell { + float: none; +} + +.sormas .v-grid-editor-cells > div .error::before { + border-top: 8px solid #eb2977; + border-right: 8px solid transparent; +} + +.sormas .v-grid-editor-cells > div .error, .sormas .v-grid-editor-cells > div .error > input { + background-color: #fffbfc; +} + +.sormas .v-grid-editor-cells > div .v-textfield, .sormas .v-grid-editor-cells > div .v-textfield-focus, .sormas .v-grid-editor-cells > div .v-datefield, .sormas .v-grid-editor-cells > div .v-datefield .v-textfield-focus, .sormas .v-grid-editor-cells > div .v-filterselect-input, .sormas .v-grid-editor-cells > div .v-filterselect-input:focus { + border: none; + border-radius: 0; + background: transparent; + -webkit-box-shadow: inset 0 1px 0 #f7f7f7; + box-shadow: inset 0 1px 0 #f7f7f7; +} + +.sormas .v-grid-editor-cells > div input[type="text"].v-datefield-textfield { + padding-left: 38.4px; +} + +.v-ie8 .sormas .v-grid-editor-cells > div .v-datefield-button { + margin-left: 0px; +} + +.v-ie8 .sormas .v-grid-editor-cells > div .v-filterselect-button { + margin-left: 0px; +} + +.sormas .v-grid-editor-cells > div .v-textfield-focus, .sormas .v-grid-editor-cells > div .v-datefield .v-textfield-focus, .sormas .v-grid-editor-cells > div .v-filterselect-input:focus { + position: relative; +} + +.sormas .v-grid-editor-cells > div .v-select { + padding-left: 8px; + padding-right: 8px; +} + +.sormas .v-grid-editor-cells > div .v-checkbox { + margin: 0 8px 0 16.5px; +} + +.sormas .v-grid-editor-cells > div .v-checkbox > input[type="checkbox"] { + margin-left: 0; +} + +.sormas .v-grid-editor-cells > div .v-checkbox > label { + white-space: nowrap; +} + +.sormas .v-grid-editor-message > div:before { + display: inline-block; + color: #eb2977; + font-weight: 600; + width: 16px; + text-align: center; + content: "!"; +} + +.sormas .v-grid-editor-save, .sormas .v-grid-editor-cancel { + cursor: pointer; + color: #1565A2; + text-decoration: underline; + font-weight: inherit; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; + font-weight: 500; + text-decoration: none; + border: none; + background: transparent; + padding: 9px 9px; + margin: 0; + outline: none; +} + +.sormas .v-grid-editor-save:hover, .sormas .v-grid-editor-cancel:hover { + color: #1b81cf; +} + +.sormas .v-grid-editor-save.v-disabled, .sormas .v-grid-editor-cancel.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-grid-spacer { + margin-top: -2px; +} + +.sormas .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-content { + margin: 0 0 2px; + padding: 4px 4px 2px; + overflow-y: auto; + overflow-x: hidden; +} + +.sormas .v-grid-sidebar.v-contextmenu.closed { + background: #ffffff; +} + +.sormas .v-grid-scroller::-webkit-scrollbar { + border: none; +} + +.sormas .v-grid-scroller::-webkit-scrollbar-thumb { + border-radius: 10px; + border: 4px solid transparent; + background: rgba(0, 0, 0, 0.3); + -webkit-background-clip: content-box; + background-clip: content-box; +} + +.sormas .v-grid-scroller-vertical::-webkit-scrollbar-thumb { + min-height: 30px; +} + +.sormas .v-grid-scroller-horizontal::-webkit-scrollbar-thumb { + min-width: 30px; +} + +.sormas .v-textfield { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 32px; + border-radius: 4px; + padding: 4px 8px; + border: 2px solid #CDD8EC; + background: white; + color: #374B5A; + -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + width: 160px; +} + +.v-ie8 .sormas .v-textfield, .v-ie9 .sormas .v-textfield { + line-height: 32px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-textfield.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-textfield:focus { + outline: none; + -webkit-transition: none; + -moz-transition: none; + transition: none; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-textfield[class*="prompt"] { + color: #93a6b4; +} + +.sormas .v-textfield-readonly { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-textfield-readonly:focus { + box-shadow: none; + border-color: #CDD8EC; +} + +.sormas .v-textfield-error { + border-color: #eb2977 !important; + background: #fffbfc; + color: #374B5A; +} + +.sormas .v-textfield-borderless { + border: none; + border-radius: 0; + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; + color: inherit; +} + +.sormas .v-textfield-borderless:focus { + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-textfield-borderless[class*="prompt"] { + color: inherit; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-textfield-tiny { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 24px; + border-radius: 4px; + padding: 3px 6px; + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + font-size: 9px; +} + +.v-ie8 .sormas .v-textfield-tiny, .v-ie9 .sormas .v-textfield-tiny { + line-height: 24px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-textfield-compact, .sormas .v-textfield-small { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 27px; + border-radius: 4px; + padding: 3px 7px; + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; +} + +.v-ie8 .sormas .v-textfield-compact, .v-ie9 .sormas .v-textfield-compact, .v-ie8 .sormas .v-textfield-small, .v-ie9 .sormas .v-textfield-small { + line-height: 27px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-textfield-small { + font-size: 11px; +} + +.sormas .v-textfield-large { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 38px; + border-radius: 4px; + padding: 4px 9px; + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + font-size: 15px; +} + +.v-ie8 .sormas .v-textfield-large, .v-ie9 .sormas .v-textfield-large { + line-height: 38px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-textfield-huge { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 51px; + border-radius: 4px; + padding: 6px 11px; + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + font-size: 20px; +} + +.v-ie8 .sormas .v-textfield-huge, .v-ie9 .sormas .v-textfield-huge { + line-height: 51px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-slot-inline-icon { + position: relative; +} + +.sormas .v-caption-inline-icon { + padding: 0; +} + +.sormas .v-caption-inline-icon .v-captiontext { + font-size: 11px; + font-weight: 600; + padding-bottom: 0.3em; + padding-left: 1px; + margin: 0; +} + +.sormas .v-caption-inline-icon .v-icon { + position: absolute; + z-index: 10; +} + +.sormas .v-caption-inline-icon span.v-icon { + left: 2px; + bottom: 2px; + width: 32px; + line-height: 28px; + text-align: center; + font-size: 12px; +} + +.sormas .v-caption-inline-icon img.v-icon { + left: 8px; + bottom: 8px; +} + +.sormas .v-textfield-inline-icon { + padding-left: 32px; +} + +.sormas .v-slot-inline-icon.v-slot-tiny { + position: relative; +} + +.sormas .v-caption-inline-icon.v-caption-tiny { + padding: 0; +} + +.sormas .v-caption-inline-icon.v-caption-tiny .v-captiontext { + font-size: 11px; + font-weight: 600; + padding-bottom: 0.3em; + padding-left: 1px; + margin: 0; +} + +.sormas .v-caption-inline-icon.v-caption-tiny .v-icon { + position: absolute; + z-index: 10; +} + +.sormas .v-caption-inline-icon.v-caption-tiny span.v-icon { + left: 2px; + bottom: 2px; + width: 24px; + line-height: 20px; + text-align: center; + font-size: 9px; +} + +.sormas .v-caption-inline-icon.v-caption-tiny img.v-icon { + left: 4px; + bottom: 4px; +} + +.sormas .v-textfield-inline-icon.v-textfield-tiny { + padding-left: 24px; +} + +.sormas .v-slot-inline-icon.v-slot-compact { + position: relative; +} + +.sormas .v-caption-inline-icon.v-caption-compact { + padding: 0; +} + +.sormas .v-caption-inline-icon.v-caption-compact .v-captiontext { + font-size: 11px; + font-weight: 600; + padding-bottom: 0.3em; + padding-left: 1px; + margin: 0; +} + +.sormas .v-caption-inline-icon.v-caption-compact .v-icon { + position: absolute; + z-index: 10; +} + +.sormas .v-caption-inline-icon.v-caption-compact span.v-icon { + left: 2px; + bottom: 2px; + width: 27px; + line-height: 23px; + text-align: center; + font-size: 12px; +} + +.sormas .v-caption-inline-icon.v-caption-compact img.v-icon { + left: 6px; + bottom: 6px; +} + +.sormas .v-textfield-inline-icon.v-textfield-compact { + padding-left: 27px; +} + +.sormas .v-slot-inline-icon.v-slot-small { + position: relative; +} + +.sormas .v-caption-inline-icon.v-caption-small { + padding: 0; +} + +.sormas .v-caption-inline-icon.v-caption-small .v-captiontext { + font-size: 11px; + font-weight: 600; + padding-bottom: 0.3em; + padding-left: 1px; + margin: 0; +} + +.sormas .v-caption-inline-icon.v-caption-small .v-icon { + position: absolute; + z-index: 10; +} + +.sormas .v-caption-inline-icon.v-caption-small span.v-icon { + left: 2px; + bottom: 2px; + width: 27px; + line-height: 23px; + text-align: center; + font-size: 11px; +} + +.sormas .v-caption-inline-icon.v-caption-small img.v-icon { + left: 6px; + bottom: 6px; +} + +.sormas .v-textfield-inline-icon.v-textfield-small { + padding-left: 27px; +} + +.sormas .v-slot-inline-icon.v-slot-large { + position: relative; +} + +.sormas .v-caption-inline-icon.v-caption-large { + padding: 0; +} + +.sormas .v-caption-inline-icon.v-caption-large .v-captiontext { + font-size: 11px; + font-weight: 600; + padding-bottom: 0.3em; + padding-left: 1px; + margin: 0; +} + +.sormas .v-caption-inline-icon.v-caption-large .v-icon { + position: absolute; + z-index: 10; +} + +.sormas .v-caption-inline-icon.v-caption-large span.v-icon { + left: 2px; + bottom: 2px; + width: 38px; + line-height: 34px; + text-align: center; + font-size: 15px; +} + +.sormas .v-caption-inline-icon.v-caption-large img.v-icon { + left: 11px; + bottom: 11px; +} + +.sormas .v-textfield-inline-icon.v-textfield-large { + padding-left: 38px; +} + +.sormas .v-slot-inline-icon.v-slot-huge { + position: relative; +} + +.sormas .v-caption-inline-icon.v-caption-huge { + padding: 0; +} + +.sormas .v-caption-inline-icon.v-caption-huge .v-captiontext { + font-size: 11px; + font-weight: 600; + padding-bottom: 0.3em; + padding-left: 1px; + margin: 0; +} + +.sormas .v-caption-inline-icon.v-caption-huge .v-icon { + position: absolute; + z-index: 10; +} + +.sormas .v-caption-inline-icon.v-caption-huge span.v-icon { + left: 2px; + bottom: 2px; + width: 51px; + line-height: 47px; + text-align: center; + font-size: 20px; +} + +.sormas .v-caption-inline-icon.v-caption-huge img.v-icon { + left: 18px; + bottom: 18px; +} + +.sormas .v-textfield-inline-icon.v-textfield-huge { + padding-left: 51px; +} + +.sormas .v-textfield-align-right { + text-align: right; +} + +.sormas .v-textfield-align-center { + text-align: center; +} + +.sormas .v-textarea { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 32px; + border-radius: 4px; + padding: 5px; + border: 2px solid #CDD8EC; + background: white; + color: #374B5A; + -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + height: auto; + resize: none; + white-space: pre-wrap; + width: 160px; +} + +.v-ie8 .sormas .v-textarea, .v-ie9 .sormas .v-textarea { + line-height: 32px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-textarea.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-textarea:focus { + outline: none; + -webkit-transition: none; + -moz-transition: none; + transition: none; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-textarea[class*="prompt"] { + color: #93a6b4; +} + +.v-ie8 .sormas .v-textarea, .v-ie9 .sormas .v-textarea { + line-height: inherit; + padding-top: 4px; + padding-bottom: 4px; +} + +.sormas .v-textarea-readonly { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-textarea-readonly:focus { + box-shadow: none; + border-color: #CDD8EC; +} + +.sormas .v-textarea-error { + border-color: #eb2977 !important; + background: #fffbfc; + color: #374B5A; +} + +.sormas .v-textarea-borderless { + border: none; + border-radius: 0; + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; + color: inherit; +} + +.sormas .v-textarea-borderless:focus { + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-textarea-borderless[class*="prompt"] { + color: inherit; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-textarea-tiny { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 24px; + border-radius: 4px; + padding: 5px; + + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + height: auto; + resize: none; + white-space: pre-wrap; + font-size: 9px; +} + +.v-ie8 .sormas .v-textarea-tiny, .v-ie9 .sormas .v-textarea-tiny { + line-height: 24px; + padding-top: 0; + padding-bottom: 0; +} + +.v-ie8 .sormas .v-textarea-tiny, .v-ie9 .sormas .v-textarea-tiny { + line-height: inherit; + padding-top: 3px; + padding-bottom: 3px; +} + +.sormas .v-textarea-small { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 27px; + border-radius: 4px; + padding: 5px; + + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + height: auto; + resize: none; + white-space: pre-wrap; + font-size: 11px; +} + +.v-ie8 .sormas .v-textarea-small, .v-ie9 .sormas .v-textarea-small { + line-height: 27px; + padding-top: 0; + padding-bottom: 0; +} + +.v-ie8 .sormas .v-textarea-small, .v-ie9 .sormas .v-textarea-small { + line-height: inherit; + padding-top: 3px; + padding-bottom: 3px; +} + +.sormas .v-textarea-large { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 38px; + border-radius: 4px; + padding: 5px; + + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + height: auto; + resize: none; + white-space: pre-wrap; + font-size: 15px; +} + +.v-ie8 .sormas .v-textarea-large, .v-ie9 .sormas .v-textarea-large { + line-height: 38px; + padding-top: 0; + padding-bottom: 0; +} + +.v-ie8 .sormas .v-textarea-large, .v-ie9 .sormas .v-textarea-large { + line-height: inherit; + padding-top: 4px; + padding-bottom: 4px; +} + +.sormas .v-textarea-huge { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 51px; + border-radius: 4px; + padding: 5px; + + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + height: auto; + resize: none; + white-space: pre-wrap; + font-size: 20px; +} + +.v-ie8 .sormas .v-textarea-huge, .v-ie9 .sormas .v-textarea-huge { + line-height: 51px; + padding-top: 0; + padding-bottom: 0; +} + +.v-ie8 .sormas .v-textarea-huge, .v-ie9 .sormas .v-textarea-huge { + line-height: inherit; + padding-top: 6px; + padding-bottom: 6px; +} + +.sormas .v-textarea-align-right { + text-align: right; +} + +.sormas .v-textarea-align-center { + text-align: center; +} + +.sormas .v-datefield { + position: relative; + width: 160px; + height: 32px; + border-radius: 4px; +} + +.sormas .v-datefield [class*="textfield"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 32px; + border-radius: 4px; + padding: 4px 8px; + border: 2px solid #CDD8EC; + background: white; + color: #374B5A; + -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + padding-left: 38.4px; + width: 100%; + height: 100%; + border-radius: inherit; +} + +.v-ie8 .sormas .v-datefield [class*="textfield"], .v-ie9 .sormas .v-datefield [class*="textfield"] { + line-height: 32px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-datefield [class*="textfield"].v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-datefield [class*="textfield"]:focus { + outline: none; + -webkit-transition: none; + -moz-transition: none; + transition: none; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-datefield [class*="textfield"][class*="prompt"] { + color: #93a6b4; +} + +.sormas .v-datefield[class*="prompt"] > [class*="textfield"] { + color: #93a6b4; +} + +.sormas .v-datefield [class*="button"] { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + -webkit-appearance: none; + background: transparent; + padding: 0; + position: absolute; + z-index: 10; + width: 32px; + line-height: 28px; + text-align: center; + font: inherit; + outline: none; + margin: 0; + top: 2px; + bottom: 2px; + left: 2px; + border: none; + border-right: 2px solid #CDD8EC; + color: #9ba5ac; + border-radius: 2px 0 0 2px; +} + +.sormas .v-datefield [class*="button"]:hover { + color: #374B5A; +} + +.sormas .v-datefield [class*="button"]:before { + font-family: ThemeIcons; + content: "\f073"; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; +} + +.sormas .v-datefield [class*="button"]:active:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: rgba(128, 128, 128, 0.2); + border-radius: inherit; +} + +.sormas .v-datefield.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-datefield.v-disabled [class*="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-datefield.v-disabled [class*="button"]:active:after { + display: none; +} + +.sormas .v-datefield.v-readonly [class*="textfield"] { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-datefield.v-readonly [class*="textfield"]:focus { + box-shadow: none; + border-color: #CDD8EC; +} + +.sormas .v-datefield.v-readonly [class*="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-datefield.v-readonly [class*="button"]:active:after { + display: none; +} + +.sormas .v-datefield-error .v-datefield-textfield { + border-color: #eb2977 !important; + background: #fffbfc; + color: #374B5A; +} + +.sormas .v-datefield-error .v-datefield-button { + color: #eb2977; + border-color: #eb2977; +} + +.sormas .v-datefield-full { + width: 180px; +} + +.sormas .v-datefield-day { + width: 160px; +} + +.sormas .v-datefield-month { + width: 90px; +} + +.sormas .v-datefield-year { + width: 78px; +} + +.sormas .v-datefield-popup { + padding: 4px 4px; + border-radius: 4px; + background-color: white; + color: #374B5A; + -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + margin-top: 4px !important; + margin-bottom: 4px !important; + margin-right: 4px !important; + cursor: default; + width: auto; +} + +.sormas .v-datefield-popup[class*="animate-in"] { + -webkit-animation: valo-overlay-animate-in 120ms; + -moz-animation: valo-overlay-animate-in 120ms; + animation: valo-overlay-animate-in 120ms; +} + +.sormas .v-datefield-popup[class*="animate-out"] { + -webkit-animation: valo-animate-out-fade 120ms; + -moz-animation: valo-animate-out-fade 120ms; + animation: valo-animate-out-fade 120ms; +} + +.sormas .v-datefield-popup table { + border-collapse: collapse; + border-spacing: 0; + margin: 0 auto; +} + +.sormas .v-datefield-popup td { + padding: 2px; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel { + font-size: 12px; + text-align: center; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel:focus { + outline: none; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel-day { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 26px; + height: 22px; + border: 2px solid transparent; + line-height: 22px; + text-align: center; + font-size: 11px; + background: #ffffff; + border-radius: 2px; + -webkit-transition: color 200ms; + -moz-transition: color 200ms; + transition: color 200ms; + display: inline-block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel-day:hover { + color: #CDD8EC; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel-day-offmonth { + color: #9ba5ac; + background: transparent; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel-day-today { + color: #374B5A; + font-weight: 600; + border-color: #374B5A; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected, .sormas .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected:hover { + color: #374B5A; + background: #CDD8EC; + border: none; + font-weight: 600; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-focused { + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + position: relative; +} + +.v-ie8 .sormas .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-focused { + border-color: #CDD8EC; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range, .sormas .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range:hover { + color: #9ba5ac; + cursor: not-allowed; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel-weekdays { + height: 22px; + color: rgba(125, 138, 147, 0.85); +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel-weekdays strong { + font: inherit; + font-size: 11px; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel-header { + white-space: nowrap; +} + +.sormas .v-datefield-popup td[class*="year"] button, .sormas .v-datefield-popup td[class*="month"] button { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + border: none; + background: transparent; + padding: 0; + margin: 0; + cursor: pointer; + color: transparent; + font-size: 0; + width: 16px; + height: 21px; + outline: none; + position: relative; + vertical-align: middle; +} + +.sormas .v-datefield-popup td[class*="year"] button:before, .sormas .v-datefield-popup td[class*="month"] button:before { + color: #9ba5ac; + font-size: 16px; + line-height: 18px; + -webkit-transition: color 200ms; + -moz-transition: color 200ms; + transition: color 200ms; +} + +.sormas .v-datefield-popup td[class*="year"] button:hover:before, .sormas .v-datefield-popup td[class*="month"] button:hover:before { + color: #CDD8EC; +} + +.sormas .v-datefield-popup td[class*="year"] button.outside-range, .sormas .v-datefield-popup td[class*="month"] button.outside-range { + cursor: default; + opacity: 0.3; + filter: alpha(opacity=30.0) ; +} + +.sormas .v-datefield-popup td[class*="year"] button.outside-range:hover:before, .sormas .v-datefield-popup td[class*="month"] button.outside-range:hover:before { + color: #9ba5ac; +} + +.sormas .v-datefield-popup .v-button-prevyear:before { + font-family: ThemeIcons; + content: "\f100"; +} + +.sormas .v-datefield-popup .v-button-prevmonth:before { + font-family: ThemeIcons; + content: "\f104"; +} + +.sormas .v-datefield-popup .v-button-nextyear:before { + font-family: ThemeIcons; + content: "\f101"; +} + +.sormas .v-datefield-popup .v-button-nextmonth:before { + font-family: ThemeIcons; + content: "\f105"; +} + +.sormas .v-datefield-popup td.v-datefield-calendarpanel-month { + width: 128px; + color: #CDD8EC; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel-year td.v-datefield-calendarpanel-month { + width: 64px; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel-weeknumber, .sormas .v-datefield-popup .v-datefield-calendarpanel-weekdays.v-datefield-calendarpanel-weeknumbers td:first-child { + width: 26px; + color: rgba(125, 138, 147, 0.85); + font-size: 11px; + display: inline-block; + text-align: left; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel-weeknumber { + position: relative; +} + +.sormas .v-datefield-popup .v-datefield-calendarpanel-weeknumbers .v-first:before { + content: ""; + position: absolute; + top: 32px; + bottom: 0; + left: 0; + width: 30px; + border-top: 2px solid #CDD8EC; + border-right: 2px solid #CDD8EC; + border-top-right-radius: 4px; + border-bottom-left-radius: 4px; + background: #ffffff; +} + +.sormas .v-datefield-popup td.v-datefield-calendarpanel-time { + width: 100%; + font-size: 11px; +} + +.sormas .v-datefield-popup td.v-datefield-calendarpanel-time .v-label { + display: inline; + margin: 0 0.1em; + font-weight: 400; +} + +.sormas .v-datefield-calendarpanel { + font-size: 12px; + text-align: center; +} + +.sormas .v-datefield-calendarpanel:focus { + outline: none; +} + +.sormas .v-datefield-calendarpanel-day { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 26px; + height: 22px; + border: 2px solid transparent; + line-height: 22px; + text-align: center; + font-size: 11px; + background: #ffffff; + border-radius: 2px; + -webkit-transition: color 200ms; + -moz-transition: color 200ms; + transition: color 200ms; + display: inline-block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; +} + +.sormas .v-datefield-calendarpanel-day:hover { + color: #CDD8EC; +} + +.sormas .v-datefield-calendarpanel-day-offmonth { + color: #9ba5ac; + background: transparent; +} + +.sormas .v-datefield-calendarpanel-day-today { + color: #374B5A; + font-weight: 600; + border-color: #374B5A; +} + +.sormas .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected, .sormas .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected:hover { + color: #374B5A; + background: #CDD8EC; + border: none; + font-weight: 600; +} + +.sormas .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-focused { + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + position: relative; +} + +.v-ie8 .sormas .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-focused { + border-color: #CDD8EC; +} + +.sormas .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range, .sormas .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range:hover { + color: #9ba5ac; + cursor: not-allowed; +} + +.sormas .v-datefield-calendarpanel-weekdays { + height: 22px; + color: rgba(125, 138, 147, 0.85); +} + +.sormas .v-datefield-calendarpanel-weekdays strong { + font: inherit; + font-size: 11px; +} + +.sormas .v-datefield-calendarpanel-header { + white-space: nowrap; +} + +.sormas td[class*="year"] button, .sormas td[class*="month"] button { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + border: none; + background: transparent; + padding: 0; + margin: 0; + cursor: pointer; + color: transparent; + font-size: 0; + width: 16px; + height: 21px; + outline: none; + position: relative; + vertical-align: middle; +} + +.sormas td[class*="year"] button:before, .sormas td[class*="month"] button:before { + color: #9ba5ac; + font-size: 16px; + line-height: 18px; + -webkit-transition: color 200ms; + -moz-transition: color 200ms; + transition: color 200ms; +} + +.sormas td[class*="year"] button:hover:before, .sormas td[class*="month"] button:hover:before { + color: #CDD8EC; +} + +.sormas td[class*="year"] button.outside-range, .sormas td[class*="month"] button.outside-range { + cursor: default; + opacity: 0.3; + filter: alpha(opacity=30.0) ; +} + +.sormas td[class*="year"] button.outside-range:hover:before, .sormas td[class*="month"] button.outside-range:hover:before { + color: #9ba5ac; +} + +.sormas .v-button-prevyear:before { + font-family: ThemeIcons; + content: "\f100"; +} + +.sormas .v-button-prevmonth:before { + font-family: ThemeIcons; + content: "\f104"; +} + +.sormas .v-button-nextyear:before { + font-family: ThemeIcons; + content: "\f101"; +} + +.sormas .v-button-nextmonth:before { + font-family: ThemeIcons; + content: "\f105"; +} + +.sormas td.v-datefield-calendarpanel-month { + width: 128px; + color: #CDD8EC; +} + +.sormas .v-datefield-calendarpanel-year td.v-datefield-calendarpanel-month { + width: 64px; +} + +.sormas .v-datefield-calendarpanel-weeknumber, .sormas .v-datefield-calendarpanel-weekdays.v-datefield-calendarpanel-weeknumbers td:first-child { + width: 26px; + color: rgba(125, 138, 147, 0.85); + font-size: 11px; + display: inline-block; + text-align: left; +} + +.sormas .v-datefield-calendarpanel-weeknumber { + position: relative; +} + +.sormas .v-datefield-calendarpanel-weeknumbers .v-first:before { + content: ""; + position: absolute; + top: 32px; + bottom: 0; + left: 0; + width: 30px; + border-top: 2px solid #CDD8EC; + border-right: 2px solid #CDD8EC; + border-top-right-radius: 4px; + border-bottom-left-radius: 4px; + background: #ffffff; +} + +.sormas td.v-datefield-calendarpanel-time { + width: 100%; + font-size: 11px; +} + +.sormas td.v-datefield-calendarpanel-time .v-label { + display: inline; + margin: 0 0.1em; + font-weight: 400; +} + +.sormas .v-datefield-borderless .v-datefield-textfield { + border: none; + border-radius: 0; + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; + color: inherit; +} + +.sormas .v-datefield-borderless .v-datefield-textfield:focus { + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-datefield-borderless .v-datefield-textfield[class*="prompt"] { + color: inherit; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-datefield-borderless .v-datefield-button { + border: none; + color: inherit; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-datefield-align-right input { + text-align: right; +} + +.sormas .v-datefield-align-center input { + text-align: center; +} + +.sormas .v-datefield-tiny { + height: 24px; + border-radius: 4px; + font-size: 9px; +} + +.sormas .v-datefield-tiny [class*="textfield"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 24px; + border-radius: 4px; + padding: 3px 6px; + + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + padding-left: 28.8px; + width: 100%; + height: 100%; + border-radius: inherit; +} + +.v-ie8 .sormas .v-datefield-tiny [class*="textfield"], .v-ie9 .sormas .v-datefield-tiny [class*="textfield"] { + line-height: 24px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-datefield-tiny [class*="button"] { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + -webkit-appearance: none; + background: transparent; + padding: 0; + position: absolute; + z-index: 10; + width: 24px; + line-height: 24px; + text-align: center; + font: inherit; + outline: none; + margin: 0; + border-radius: 4px 0 0 4px; +} + +.sormas .v-datefield-tiny [class*="button"]:before { + font-family: ThemeIcons; + content: "\f073"; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; +} + +.sormas .v-datefield-tiny [class*="button"]:active:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: inherit; +} + +.sormas .v-datefield-tiny.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-datefield-tiny.v-disabled [class*="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-datefield-tiny.v-disabled [class*="button"]:active:after { + display: none; +} + +.sormas .v-datefield-tiny.v-readonly [class*="textfield"] { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-datefield-tiny.v-readonly [class*="textfield"]:focus { + box-shadow: none; + border-color: #CDD8EC; +} + +.sormas .v-datefield-tiny.v-readonly [class*="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-datefield-tiny.v-readonly [class*="button"]:active:after { + display: none; +} + +.sormas .v-datefield-compact, .sormas .v-datefield-small { + height: 27px; + border-radius: 4px; +} + +.sormas .v-datefield-compact [class*="textfield"], .sormas .v-datefield-small [class*="textfield"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 27px; + border-radius: 4px; + padding: 3px 7px; + + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + padding-left: 32.4px; + width: 100%; + height: 100%; + border-radius: inherit; +} + +.v-ie8 .sormas .v-datefield-compact [class*="textfield"], .v-ie9 .sormas .v-datefield-compact [class*="textfield"], .v-ie8 .sormas .v-datefield-small [class*="textfield"], .v-ie9 .sormas .v-datefield-small [class*="textfield"] { + line-height: 27px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-datefield-compact [class*="button"], .sormas .v-datefield-small [class*="button"] { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + -webkit-appearance: none; + background: transparent; + padding: 0; + position: absolute; + z-index: 10; + width: 27px; + line-height: 27px; + text-align: center; + font: inherit; + outline: none; + margin: 0; + border-radius: 4px 0 0 4px; +} + +.sormas .v-datefield-compact [class*="button"]:before, .sormas .v-datefield-small [class*="button"]:before { + font-family: ThemeIcons; + content: "\f073"; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; +} + +.sormas .v-datefield-compact [class*="button"]:active:after, .sormas .v-datefield-small [class*="button"]:active:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: inherit; +} + +.sormas .v-datefield-compact.v-disabled, .sormas .v-datefield-small.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-datefield-compact.v-disabled [class*="button"], .sormas .v-datefield-small.v-disabled [class*="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-datefield-compact.v-disabled [class*="button"]:active:after, .sormas .v-datefield-small.v-disabled [class*="button"]:active:after { + display: none; +} + +.sormas .v-datefield-compact.v-readonly [class*="textfield"], .sormas .v-datefield-small.v-readonly [class*="textfield"] { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-datefield-compact.v-readonly [class*="textfield"]:focus, .sormas .v-datefield-small.v-readonly [class*="textfield"]:focus { + box-shadow: none; + border-color: #CDD8EC; +} + +.sormas .v-datefield-compact.v-readonly [class*="button"], .sormas .v-datefield-small.v-readonly [class*="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-datefield-compact.v-readonly [class*="button"]:active:after, .sormas .v-datefield-small.v-readonly [class*="button"]:active:after { + display: none; +} + +.sormas .v-datefield-small { + font-size: 11px; +} + +.sormas .v-datefield-large { + height: 38px; + border-radius: 4px; + font-size: 15px; +} + +.sormas .v-datefield-large [class*="textfield"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 38px; + border-radius: 4px; + padding: 4px 9px; + + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + padding-left: 45.6px; + width: 100%; + height: 100%; + border-radius: inherit; +} + +.v-ie8 .sormas .v-datefield-large [class*="textfield"], .v-ie9 .sormas .v-datefield-large [class*="textfield"] { + line-height: 38px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-datefield-large [class*="button"] { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + -webkit-appearance: none; + background: transparent; + padding: 0; + position: absolute; + z-index: 10; + width: 38px; + line-height: 38px; + text-align: center; + font: inherit; + outline: none; + margin: 0; + border-radius: 4px 0 0 4px; +} + +.sormas .v-datefield-large [class*="button"]:before { + font-family: ThemeIcons; + content: "\f073"; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; +} + +.sormas .v-datefield-large [class*="button"]:active:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: inherit; +} + +.sormas .v-datefield-large.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-datefield-large.v-disabled [class*="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-datefield-large.v-disabled [class*="button"]:active:after { + display: none; +} + +.sormas .v-datefield-large.v-readonly [class*="textfield"] { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-datefield-large.v-readonly [class*="textfield"]:focus { + box-shadow: none; + border-color: #CDD8EC; +} + +.sormas .v-datefield-large.v-readonly [class*="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-datefield-large.v-readonly [class*="button"]:active:after { + display: none; +} + +.sormas .v-datefield-huge { + height: 51px; + border-radius: 4px; + font-size: 20px; +} + +.sormas .v-datefield-huge [class*="textfield"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 51px; + border-radius: 4px; + padding: 6px 11px; + + + + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + padding-left: 61.2px; + width: 100%; + height: 100%; + border-radius: inherit; +} + +.v-ie8 .sormas .v-datefield-huge [class*="textfield"], .v-ie9 .sormas .v-datefield-huge [class*="textfield"] { + line-height: 51px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-datefield-huge [class*="button"] { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + -webkit-appearance: none; + background: transparent; + padding: 0; + position: absolute; + z-index: 10; + width: 51px; + line-height: 51px; + text-align: center; + font: inherit; + outline: none; + margin: 0; + border-radius: 4px 0 0 4px; +} + +.sormas .v-datefield-huge [class*="button"]:before { + font-family: ThemeIcons; + content: "\f073"; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; +} + +.sormas .v-datefield-huge [class*="button"]:active:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: inherit; +} + +.sormas .v-datefield-huge.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-datefield-huge.v-disabled [class*="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-datefield-huge.v-disabled [class*="button"]:active:after { + display: none; +} + +.sormas .v-datefield-huge.v-readonly [class*="textfield"] { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-datefield-huge.v-readonly [class*="textfield"]:focus { + box-shadow: none; + border-color: #CDD8EC; +} + +.sormas .v-datefield-huge.v-readonly [class*="button"] { + cursor: default; + pointer-events: none; +} + +.sormas .v-datefield-huge.v-readonly [class*="button"]:active:after { + display: none; +} + +.sormas .v-inline-datefield-calendarpanel { + font-size: 12px; + text-align: center; +} + +.sormas .v-inline-datefield-calendarpanel:focus { + outline: none; +} + +.sormas .v-inline-datefield-calendarpanel-day { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 26px; + height: 22px; + border: 2px solid transparent; + line-height: 22px; + text-align: center; + font-size: 11px; + background: #ffffff; + border-radius: 2px; + -webkit-transition: color 200ms; + -moz-transition: color 200ms; + transition: color 200ms; + display: inline-block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; +} + +.sormas .v-inline-datefield-calendarpanel-day:hover { + color: #CDD8EC; +} + +.sormas .v-inline-datefield-calendarpanel-day-offmonth { + color: #9ba5ac; + background: transparent; +} + +.sormas .v-inline-datefield-calendarpanel-day-today { + color: #374B5A; + font-weight: 600; + border-color: #374B5A; +} + +.sormas .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-selected, .sormas .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-selected:hover { + color: #374B5A; + background: #CDD8EC; + border: none; + font-weight: 600; +} + +.sormas .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-focused { + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + position: relative; +} + +.v-ie8 .sormas .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-focused { + border-color: #CDD8EC; +} + +.sormas .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-outside-range, .sormas .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-outside-range:hover { + color: #9ba5ac; + cursor: not-allowed; +} + +.sormas .v-inline-datefield-calendarpanel-weekdays { + height: 22px; + color: rgba(125, 138, 147, 0.85); +} + +.sormas .v-inline-datefield-calendarpanel-weekdays strong { + font: inherit; + font-size: 11px; +} + +.sormas .v-inline-datefield-calendarpanel-header { + white-space: nowrap; +} + +.sormas td[class*="year"] button, .sormas td[class*="month"] button { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + border: none; + background: transparent; + padding: 0; + margin: 0; + cursor: pointer; + color: transparent; + font-size: 0; + width: 16px; + height: 21px; + outline: none; + position: relative; + vertical-align: middle; +} + +.sormas td[class*="year"] button:before, .sormas td[class*="month"] button:before { + color: #9ba5ac; + font-size: 16px; + line-height: 18px; + -webkit-transition: color 200ms; + -moz-transition: color 200ms; + transition: color 200ms; +} + +.sormas td[class*="year"] button:hover:before, .sormas td[class*="month"] button:hover:before { + color: #CDD8EC; +} + +.sormas td[class*="year"] button.outside-range, .sormas td[class*="month"] button.outside-range { + cursor: default; + opacity: 0.3; + filter: alpha(opacity=30.0) ; +} + +.sormas td[class*="year"] button.outside-range:hover:before, .sormas td[class*="month"] button.outside-range:hover:before { + color: #9ba5ac; +} + +.sormas .v-button-prevyear:before { + font-family: ThemeIcons; + content: "\f100"; +} + +.sormas .v-button-prevmonth:before { + font-family: ThemeIcons; + content: "\f104"; +} + +.sormas .v-button-nextyear:before { + font-family: ThemeIcons; + content: "\f101"; +} + +.sormas .v-button-nextmonth:before { + font-family: ThemeIcons; + content: "\f105"; +} + +.sormas td.v-inline-datefield-calendarpanel-month { + width: 128px; + color: #CDD8EC; +} + +.sormas .v-inline-datefield-calendarpanel-year td.v-inline-datefield-calendarpanel-month { + width: 64px; +} + +.sormas .v-inline-datefield-calendarpanel-weeknumber, .sormas .v-inline-datefield-calendarpanel-weekdays.v-inline-datefield-calendarpanel-weeknumbers td:first-child { + width: 26px; + color: rgba(125, 138, 147, 0.85); + font-size: 11px; + display: inline-block; + text-align: left; +} + +.sormas .v-inline-datefield-calendarpanel-weeknumber { + position: relative; +} + +.sormas .v-inline-datefield-calendarpanel-weeknumbers .v-first:before { + content: ""; + position: absolute; + top: 32px; + bottom: 0; + left: 0; + width: 30px; + border-top: 2px solid #CDD8EC; + border-right: 2px solid #CDD8EC; + border-top-right-radius: 4px; + border-bottom-left-radius: 4px; + background: #ffffff; +} + +.sormas td.v-inline-datefield-calendarpanel-time { + width: 100%; + font-size: 11px; +} + +.sormas td.v-inline-datefield-calendarpanel-time .v-label { + display: inline; + margin: 0 0.1em; + font-weight: 400; +} + +.sormas .v-inline-datefield-calendarpanel { + position: relative; + background: white; + padding: 5px; +} + +.sormas .v-gridlayout-margin-top { + padding-top: 21px; +} + +.sormas .v-gridlayout-margin-bottom { + padding-bottom: 21px; +} + +.sormas .v-gridlayout-margin-left { + padding-left: 21px; +} + +.sormas .v-gridlayout-margin-right { + padding-right: 21px; +} + +.sormas .v-gridlayout-spacing-on { + padding-left: 18px; + padding-top: 18px; +} + +.sormas .v-menubar { + position: relative; + text-align: center; + white-space: nowrap; + outline: none; + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + height: 32px; + padding: 0 14px; + color: #374B5A; + font-weight: 500; + + cursor: default; + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + padding: 0; + text-align: left; + line-height: 28px; +} + +.sormas .v-menubar:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: inherit; + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; +} + +.sormas .v-menubar:focus:after { + -webkit-transition: none; + -moz-transition: none; + transition: none; +} + +.sormas .v-menubar.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-menubar.v-disabled:after { + display: none; +} + +.sormas .v-menubar:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-menubar:focus:after { + border: inherit; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-menubar > .v-menubar-menuitem { + padding: 0 12px; +} + +.sormas .v-menubar > .v-menubar-menuitem[class*="-icon-only"] { + width: 32px; +} + +.sormas .v-menubar:active:after { + background: transparent; +} + +.sormas .v-menubar > .v-menubar-menuitem { + position: relative; + z-index: 1; + display: inline-block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + height: 32px; + padding: 0 13px; + color: inherit; + font-weight: 500; + + cursor: pointer; + border-radius: 0; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; + border-width: 0 2px 0 0; + border-color: inherit; + height: 100%; + line-height: inherit; + vertical-align: top; + text-align: center; +} + +.sormas .v-menubar > .v-menubar-menuitem:first-child { + border-left-width: 0; + border-radius: 2px 0 0 2px; +} + +.sormas .v-menubar > .v-menubar-menuitem:last-child { + border-radius: 0 2px 2px 0; + border-right-width: 0; +} + +.sormas .v-menubar > .v-menubar-menuitem:first-child:last-child { + border-radius: 2px; +} + +.sormas .v-menubar > .v-menubar-menuitem:before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: inherit; +} + +.sormas .v-menubar > .v-menubar-menuitem:hover { + zoom: 1; +} + +.sormas .v-menubar > .v-menubar-menuitem:hover:before { + background-color: rgba(191, 191, 191, 0.1); + border: none; +} + +.sormas .v-menubar > .v-menubar-menuitem:active:before { + background-color: rgba(128, 128, 128, 0.2); +} + +.sormas .v-menubar > .v-menubar-menuitem .v-icon { + margin: 0 3px 0 -3px; + cursor: inherit; +} + +.sormas .v-menubar > .v-menubar-menuitem[class*="-icon-only"] { + width: 32px; + padding: 0; +} + +.sormas .v-menubar > .v-menubar-menuitem[class*="-icon-only"] .v-icon { + margin: 0; +} + +.sormas .v-menubar > .v-menubar-menuitem-checked { + -webkit-box-shadow: none; + box-shadow: none; + background-color: #f2f2f2; + background-image: -webkit-linear-gradient(bottom, #f2f2f2 0%, #f2f2f2 100%); + background-image: linear-gradient(to top,#f2f2f2 0%, #f2f2f2 100%); + color: #374B5A; +} + +.sormas .v-disabled > .v-menubar-menuitem, .sormas .v-menubar > .v-menubar-menuitem-disabled { + cursor: default; +} + +.sormas .v-disabled > .v-menubar-menuitem:before, .sormas .v-menubar > .v-menubar-menuitem-disabled:before { + display: none; +} + +.sormas .v-menubar-menuitem-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-menubar > .v-menubar-menuitem-selected { + color: #374B5A; + + + + border-radius: 0; + border: 2px solid #CDD8EC; + background: #CDD8EC; + -webkit-box-shadow: inset 0 1px 0 #ebeef4, inset 0 -1px 0 #c4d0e7; + box-shadow: inset 0 1px 0 #ebeef4, inset 0 -1px 0 #c4d0e7; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + border-top-width: 0; + border-left-width: 0; + border-bottom-width: 0; + z-index: 2; +} + +.sormas .v-menubar > .v-menubar-menuitem-selected:hover:before { + background: none; +} + +.sormas .v-menubar .v-menubar-submenu-indicator { + display: none; +} + +.sormas .v-menubar .v-menubar-submenu-indicator + .v-menubar-menuitem-caption:after { + font-family: ThemeIcons; + content: "\f078"; + font-size: 0.7em; + vertical-align: 0.15em; + margin: 0 -0.2em 0 0.5em; + opacity: 0.5; +} + +.sormas .v-menubar .v-menubar-submenu-indicator + .v-menubar-menuitem-caption:empty:after { + margin-left: -0.2em; +} + +.sormas .v-menubar-popup { + padding: 4px 4px; + border-radius: 4px; + background-color: white; + color: #374B5A; + -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + padding: 4px 4px; + margin: 4px 0 0 1px !important; +} + +.sormas .v-menubar-popup[class*="animate-in"] { + -webkit-animation: valo-overlay-animate-in 120ms; + -moz-animation: valo-overlay-animate-in 120ms; + animation: valo-overlay-animate-in 120ms; +} + +.sormas .v-menubar-popup[class*="animate-out"] { + -webkit-animation: valo-animate-out-fade 120ms; + -moz-animation: valo-animate-out-fade 120ms; + animation: valo-animate-out-fade 120ms; +} + +.sormas .v-menubar-popup .v-menubar-submenu { + outline: none; +} + +.sormas .v-menubar-popup .v-menubar-menuitem { + display: block; + cursor: pointer; + line-height: 23px; + padding: 0 16px 0 8px; + border-radius: 3px; + font-weight: 400; + white-space: nowrap; + position: relative; + padding-left: 27px; + padding-right: 32px; + position: relative; +} + +.sormas .v-menubar-popup .v-menubar-menuitem:active:before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: #5185e3; + opacity: 0.15; + filter: alpha(opacity=15.0) ; + pointer-events: none; + border-radius: inherit; +} + +.sormas .v-menubar-popup .v-menubar-menuitem .v-icon { + max-height: 23px; + margin-right: 4px; + min-width: 1em; +} + +.sormas .v-menubar-popup .v-menubar-submenu-indicator { + display: none; +} + +.sormas .v-menubar-popup .v-menubar-submenu-indicator + .v-menubar-menuitem-caption:after { + position: absolute; + right: 8px; + font-family: ThemeIcons; + content: "\f054"; + line-height: 25px; +} + +.sormas .v-menubar-popup .v-menubar-menuitem-selected { + background: #CDD8EC; + color: #374B5A; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-menubar-popup .v-menubar-separator { + display: block; + margin: 4px 0; + height: 0; + overflow: hidden; + border-bottom: 2px solid #CDD8EC; +} + +.sormas .v-menubar-popup [class*="checked"] .v-menubar-menuitem-caption:before { + content: "\f00c"; + font-family: ThemeIcons; + position: absolute; + left: 8px; +} + +.sormas .v-menubar-popup [class*="unchecked"] .v-menubar-menuitem-caption:before { + content: ""; +} + +.sormas .v-menubar-popup [class*="disabled"] { + cursor: default; +} + +.sormas .v-menubar-small { + height: 27px; + padding: 0 12px; + color: #374B5A; + font-weight: 500; + + cursor: default; + border-radius: 4px; + padding: 0; + text-align: left; + line-height: 23px; + font-size: 11px; +} + +.sormas .v-menubar-small:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-menubar-small > .v-menubar-menuitem { + padding: 0 10px; +} + +.sormas .v-menubar-small > .v-menubar-menuitem[class*="-icon-only"] { + width: 27px; +} + +.sormas .v-menubar-borderless { + border: none; + border-radius: 0; + padding: 2px; + -webkit-box-shadow: none; + box-shadow: none; + text-shadow: none; + background: transparent; + color: inherit; +} + +.sormas .v-menubar-borderless:focus:after { + display: none; +} + +.sormas .v-menubar-borderless .v-menubar-menuitem { + -webkit-box-shadow: none; + box-shadow: none; + border: none; + margin-right: 2px; + border-radius: 4px; + color: #CDD8EC; + padding: 0 11px; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; +} + +.sormas .v-menubar-borderless .v-menubar-menuitem:first-child, .sormas .v-menubar-borderless .v-menubar-menuitem:last-child, .sormas .v-menubar-borderless .v-menubar-menuitem:first-child:last-child { + border-radius: 4px; +} + +.sormas .v-menubar-borderless .v-menubar-menuitem:before { + content: none; +} + +.sormas .v-menubar-borderless .v-menubar-menuitem:hover { + color: #f2f5fa; +} + +.sormas .v-menubar-borderless .v-menubar-menuitem:active { + color: inherit; +} + +.sormas .v-menubar-borderless .v-menubar-menuitem-checked, .sormas .v-menubar-borderless .v-menubar-menuitem-checked:first-child { + border: 2px solid #CDD8EC; + color: #CDD8EC; +} + +.sormas .v-menubar-borderless .v-menubar-menuitem-checked .v-menubar-menuitem-caption, .sormas .v-menubar-borderless .v-menubar-menuitem-checked:first-child .v-menubar-menuitem-caption { + position: relative; + top: -2px; +} + +.sormas .v-menubar-borderless .v-menubar-menuitem-selected { + color: #374B5A; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-menubar-borderless .v-menubar-menuitem-selected:hover { + color: #374B5A; +} + +.sormas .v-menubar-borderless .v-menubar-menuitem-disabled, .sormas .v-menubar-borderless .v-menubar-menuitem-disabled:hover { + color: inherit; +} + +.sormas .v-radiobutton { + position: relative; + line-height: 16px; + white-space: nowrap; +} + +.sormas .v-radiobutton.v-has-width label { + white-space: normal; +} + +:root .sormas .v-radiobutton { + padding-left: 21px; +} + +:root .sormas .v-radiobutton label { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + display: inline-block; +} + +:root .sormas .v-radiobutton > input { + position: absolute; + clip: rect(0, 0, 0, 0); + left: 0.2em; + top: 0.2em; + z-index: 0; + margin: 0; +} + +:root .sormas .v-radiobutton > input:focus ~ label:before { + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); +} + +:root .sormas .v-radiobutton > input ~ label:before, :root .sormas .v-radiobutton > input ~ label:after { + content: ""; + display: inline-block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 16px; + height: 16px; + position: absolute; + top: 0; + left: 0; + border-radius: 4px; + font-size: 10px; + text-align: center; +} + +:root .sormas .v-radiobutton > input ~ label:before { + height: 16px; + padding: 0 8px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + padding: 0; + height: 16px; +} + +:root .sormas .v-radiobutton > input ~ label:after { + content: "\f00c"; + font-family: ThemeIcons; + color: transparent; + -webkit-transition: color 100ms; + -moz-transition: color 100ms; + transition: color 100ms; +} + +:root .sormas .v-radiobutton > input:active ~ label:after { + background-color: rgba(128, 128, 128, 0.2); +} + +:root .sormas .v-radiobutton > input:checked ~ label:after { + color: #CDD8EC; +} + +.sormas .v-radiobutton > .v-icon, .sormas .v-radiobutton > label .v-icon { + margin: 0 5px 0 3px; + min-width: 1em; + cursor: pointer; +} + +.sormas .v-radiobutton.v-disabled > label, .sormas .v-radiobutton.v-disabled > .v-icon { + cursor: default; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-radiobutton.v-disabled > label > .v-icon { + cursor: default; +} + +:root .sormas .v-radiobutton.v-disabled > input:active ~ label:after { + background: transparent; +} + +.sormas .v-radiobutton.v-readonly > label, .sormas .v-radiobutton.v-readonly > .v-icon { + cursor: default; +} + +.sormas .v-radiobutton.v-readonly > label > .v-icon { + cursor: default; +} + +:root .sormas .v-radiobutton.v-readonly > input:active ~ label:after { + background: transparent; +} + +:root .sormas .v-radiobutton.v-readonly > input ~ label:after { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +:root .sormas .v-radiobutton > input:checked ~ label:after { + width: 6px; + height: 6px; + top: 5px; + left: 5px; + background: #CDD8EC; +} + +:root .sormas .v-radiobutton > input ~ label:before, :root .sormas .v-radiobutton > input ~ label:after { + border-radius: 50%; + content: ""; +} + +.sormas .v-select-optiongroup .v-radiobutton, .sormas .v-select-optiongroup .v-checkbox { + display: block; + margin: 8px 12px 0 0; +} + +.sormas .v-select-optiongroup .v-radiobutton:first-child, .sormas .v-select-optiongroup .v-checkbox:first-child { + margin-top: 5px; +} + +.sormas .v-select-optiongroup .v-radiobutton:last-child, .sormas .v-select-optiongroup .v-checkbox:last-child { + margin-bottom: 5px; +} + +.sormas .v-select-optiongroup.v-has-width label { + white-space: normal; +} + +.sormas .v-select-optiongroup-small { + font-size: 11px; +} + +.sormas .v-select-optiongroup-small .v-checkbox { + position: relative; + line-height: 14px; + white-space: nowrap; +} + +.sormas .v-select-optiongroup-small .v-checkbox.v-has-width label { + white-space: normal; +} + +:root .sormas .v-select-optiongroup-small .v-checkbox { + padding-left: 18px; +} + +:root .sormas .v-select-optiongroup-small .v-checkbox label { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + display: inline-block; +} + +:root .sormas .v-select-optiongroup-small .v-checkbox > input { + position: absolute; + clip: rect(0, 0, 0, 0); + left: 0.2em; + top: 0.2em; + z-index: 0; + margin: 0; +} + +:root .sormas .v-select-optiongroup-small .v-checkbox > input:focus ~ label:before { + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); +} + +:root .sormas .v-select-optiongroup-small .v-checkbox > input ~ label:before, :root .sormas .v-select-optiongroup-small .v-checkbox > input ~ label:after { + content: ""; + display: inline-block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 14px; + height: 14px; + position: absolute; + top: 0; + left: 0; + border-radius: 4px; + font-size: 8px; + text-align: center; +} + +:root .sormas .v-select-optiongroup-small .v-checkbox > input ~ label:before { + height: 13.5px; + padding: 0 7px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + padding: 0; + height: 14px; +} + +:root .sormas .v-select-optiongroup-small .v-checkbox > input ~ label:after { + content: "\f00c"; + font-family: ThemeIcons; + color: transparent; + -webkit-transition: color 100ms; + -moz-transition: color 100ms; + transition: color 100ms; +} + +:root .sormas .v-select-optiongroup-small .v-checkbox > input:active ~ label:after { + background-color: rgba(128, 128, 128, 0.2); +} + +:root .sormas .v-select-optiongroup-small .v-checkbox > input:checked ~ label:after { + color: #CDD8EC; +} + +.sormas .v-select-optiongroup-small .v-checkbox > .v-icon, .sormas .v-select-optiongroup-small .v-checkbox > label .v-icon { + margin: 0 5px 0 2px; + min-width: 1em; + cursor: pointer; +} + +.sormas .v-select-optiongroup-small .v-checkbox.v-disabled > label, .sormas .v-select-optiongroup-small .v-checkbox.v-disabled > .v-icon { + cursor: default; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-select-optiongroup-small .v-checkbox.v-disabled > label > .v-icon { + cursor: default; +} + +:root .sormas .v-select-optiongroup-small .v-checkbox.v-disabled > input:active ~ label:after { + background: transparent; +} + +.sormas .v-select-optiongroup-small .v-checkbox.v-readonly > label, .sormas .v-select-optiongroup-small .v-checkbox.v-readonly > .v-icon { + cursor: default; +} + +.sormas .v-select-optiongroup-small .v-checkbox.v-readonly > label > .v-icon { + cursor: default; +} + +:root .sormas .v-select-optiongroup-small .v-checkbox.v-readonly > input:active ~ label:after { + background: transparent; +} + +:root .sormas .v-select-optiongroup-small .v-checkbox.v-readonly > input ~ label:after { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-select-optiongroup-small .v-radiobutton { + position: relative; + line-height: 14px; + white-space: nowrap; +} + +.sormas .v-select-optiongroup-small .v-radiobutton.v-has-width label { + white-space: normal; +} + +:root .sormas .v-select-optiongroup-small .v-radiobutton { + padding-left: 18px; +} + +:root .sormas .v-select-optiongroup-small .v-radiobutton label { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + display: inline-block; +} + +:root .sormas .v-select-optiongroup-small .v-radiobutton > input { + position: absolute; + clip: rect(0, 0, 0, 0); + left: 0.2em; + top: 0.2em; + z-index: 0; + margin: 0; +} + +:root .sormas .v-select-optiongroup-small .v-radiobutton > input:focus ~ label:before { + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); +} + +:root .sormas .v-select-optiongroup-small .v-radiobutton > input ~ label:before, :root .sormas .v-select-optiongroup-small .v-radiobutton > input ~ label:after { + content: ""; + display: inline-block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 14px; + height: 14px; + position: absolute; + top: 0; + left: 0; + border-radius: 4px; + font-size: 8px; + text-align: center; +} + +:root .sormas .v-select-optiongroup-small .v-radiobutton > input ~ label:before { + height: 13.5px; + padding: 0 7px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + padding: 0; + height: 14px; +} + +:root .sormas .v-select-optiongroup-small .v-radiobutton > input ~ label:after { + content: "\f00c"; + font-family: ThemeIcons; + color: transparent; + -webkit-transition: color 100ms; + -moz-transition: color 100ms; + transition: color 100ms; +} + +:root .sormas .v-select-optiongroup-small .v-radiobutton > input:active ~ label:after { + background-color: rgba(128, 128, 128, 0.2); +} + +:root .sormas .v-select-optiongroup-small .v-radiobutton > input:checked ~ label:after { + color: #CDD8EC; +} + +.sormas .v-select-optiongroup-small .v-radiobutton > .v-icon, .sormas .v-select-optiongroup-small .v-radiobutton > label .v-icon { + margin: 0 5px 0 2px; + min-width: 1em; + cursor: pointer; +} + +.sormas .v-select-optiongroup-small .v-radiobutton.v-disabled > label, .sormas .v-select-optiongroup-small .v-radiobutton.v-disabled > .v-icon { + cursor: default; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-select-optiongroup-small .v-radiobutton.v-disabled > label > .v-icon { + cursor: default; +} + +:root .sormas .v-select-optiongroup-small .v-radiobutton.v-disabled > input:active ~ label:after { + background: transparent; +} + +.sormas .v-select-optiongroup-small .v-radiobutton.v-readonly > label, .sormas .v-select-optiongroup-small .v-radiobutton.v-readonly > .v-icon { + cursor: default; +} + +.sormas .v-select-optiongroup-small .v-radiobutton.v-readonly > label > .v-icon { + cursor: default; +} + +:root .sormas .v-select-optiongroup-small .v-radiobutton.v-readonly > input:active ~ label:after { + background: transparent; +} + +:root .sormas .v-select-optiongroup-small .v-radiobutton.v-readonly > input ~ label:after { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +:root .sormas .v-select-optiongroup-small .v-radiobutton > input:checked ~ label:after { + width: 5px; + height: 5px; + top: 5px; + left: 5px; + background: #CDD8EC; +} + +:root .sormas .v-select-optiongroup-small .v-radiobutton > input ~ label:before, :root .sormas .v-select-optiongroup-small .v-radiobutton > input ~ label:after { + border-radius: 50%; + content: ""; +} + +.sormas .v-select-optiongroup-small .v-radiobutton, .sormas .v-select-optiongroup-small .v-checkbox { + display: block; + margin: 7px 12px 0 0; +} + +.sormas .v-select-optiongroup-small .v-radiobutton:first-child, .sormas .v-select-optiongroup-small .v-checkbox:first-child { + margin-top: 5px; +} + +.sormas .v-select-optiongroup-small .v-radiobutton:last-child, .sormas .v-select-optiongroup-small .v-checkbox:last-child { + margin-bottom: 5px; +} + +.sormas .v-select-optiongroup-small.v-has-width label { + white-space: normal; +} + +.sormas .v-select-optiongroup-large { + font-size: 15px; +} + +.sormas .v-select-optiongroup-large .v-checkbox { + position: relative; + line-height: 19px; + white-space: nowrap; +} + +.sormas .v-select-optiongroup-large .v-checkbox.v-has-width label { + white-space: normal; +} + +:root .sormas .v-select-optiongroup-large .v-checkbox { + padding-left: 25px; +} + +:root .sormas .v-select-optiongroup-large .v-checkbox label { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + display: inline-block; +} + +:root .sormas .v-select-optiongroup-large .v-checkbox > input { + position: absolute; + clip: rect(0, 0, 0, 0); + left: 0.2em; + top: 0.2em; + z-index: 0; + margin: 0; +} + +:root .sormas .v-select-optiongroup-large .v-checkbox > input:focus ~ label:before { + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); +} + +:root .sormas .v-select-optiongroup-large .v-checkbox > input ~ label:before, :root .sormas .v-select-optiongroup-large .v-checkbox > input ~ label:after { + content: ""; + display: inline-block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 19px; + height: 19px; + position: absolute; + top: 0; + left: 0; + border-radius: 4px; + font-size: 11px; + text-align: center; +} + +:root .sormas .v-select-optiongroup-large .v-checkbox > input ~ label:before { + height: 19px; + padding: 0 9px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + padding: 0; + height: 19px; +} + +:root .sormas .v-select-optiongroup-large .v-checkbox > input ~ label:after { + content: "\f00c"; + font-family: ThemeIcons; + color: transparent; + -webkit-transition: color 100ms; + -moz-transition: color 100ms; + transition: color 100ms; +} + +:root .sormas .v-select-optiongroup-large .v-checkbox > input:active ~ label:after { + background-color: rgba(128, 128, 128, 0.2); +} + +:root .sormas .v-select-optiongroup-large .v-checkbox > input:checked ~ label:after { + color: #CDD8EC; +} + +.sormas .v-select-optiongroup-large .v-checkbox > .v-icon, .sormas .v-select-optiongroup-large .v-checkbox > label .v-icon { + margin: 0 6px 0 3px; + min-width: 1em; + cursor: pointer; +} + +.sormas .v-select-optiongroup-large .v-checkbox.v-disabled > label, .sormas .v-select-optiongroup-large .v-checkbox.v-disabled > .v-icon { + cursor: default; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-select-optiongroup-large .v-checkbox.v-disabled > label > .v-icon { + cursor: default; +} + +:root .sormas .v-select-optiongroup-large .v-checkbox.v-disabled > input:active ~ label:after { + background: transparent; +} + +.sormas .v-select-optiongroup-large .v-checkbox.v-readonly > label, .sormas .v-select-optiongroup-large .v-checkbox.v-readonly > .v-icon { + cursor: default; +} + +.sormas .v-select-optiongroup-large .v-checkbox.v-readonly > label > .v-icon { + cursor: default; +} + +:root .sormas .v-select-optiongroup-large .v-checkbox.v-readonly > input:active ~ label:after { + background: transparent; +} + +:root .sormas .v-select-optiongroup-large .v-checkbox.v-readonly > input ~ label:after { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-select-optiongroup-large .v-radiobutton { + position: relative; + line-height: 19px; + white-space: nowrap; +} + +.sormas .v-select-optiongroup-large .v-radiobutton.v-has-width label { + white-space: normal; +} + +:root .sormas .v-select-optiongroup-large .v-radiobutton { + padding-left: 25px; +} + +:root .sormas .v-select-optiongroup-large .v-radiobutton label { + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + cursor: pointer; + display: inline-block; +} + +:root .sormas .v-select-optiongroup-large .v-radiobutton > input { + position: absolute; + clip: rect(0, 0, 0, 0); + left: 0.2em; + top: 0.2em; + z-index: 0; + margin: 0; +} + +:root .sormas .v-select-optiongroup-large .v-radiobutton > input:focus ~ label:before { + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); +} + +:root .sormas .v-select-optiongroup-large .v-radiobutton > input ~ label:before, :root .sormas .v-select-optiongroup-large .v-radiobutton > input ~ label:after { + content: ""; + display: inline-block; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 19px; + height: 19px; + position: absolute; + top: 0; + left: 0; + border-radius: 4px; + font-size: 11px; + text-align: center; +} + +:root .sormas .v-select-optiongroup-large .v-radiobutton > input ~ label:before { + height: 19px; + padding: 0 9px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + padding: 0; + height: 19px; +} + +:root .sormas .v-select-optiongroup-large .v-radiobutton > input ~ label:after { + content: "\f00c"; + font-family: ThemeIcons; + color: transparent; + -webkit-transition: color 100ms; + -moz-transition: color 100ms; + transition: color 100ms; +} + +:root .sormas .v-select-optiongroup-large .v-radiobutton > input:active ~ label:after { + background-color: rgba(128, 128, 128, 0.2); +} + +:root .sormas .v-select-optiongroup-large .v-radiobutton > input:checked ~ label:after { + color: #CDD8EC; +} + +.sormas .v-select-optiongroup-large .v-radiobutton > .v-icon, .sormas .v-select-optiongroup-large .v-radiobutton > label .v-icon { + margin: 0 6px 0 3px; + min-width: 1em; + cursor: pointer; +} + +.sormas .v-select-optiongroup-large .v-radiobutton.v-disabled > label, .sormas .v-select-optiongroup-large .v-radiobutton.v-disabled > .v-icon { + cursor: default; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-select-optiongroup-large .v-radiobutton.v-disabled > label > .v-icon { + cursor: default; +} + +:root .sormas .v-select-optiongroup-large .v-radiobutton.v-disabled > input:active ~ label:after { + background: transparent; +} + +.sormas .v-select-optiongroup-large .v-radiobutton.v-readonly > label, .sormas .v-select-optiongroup-large .v-radiobutton.v-readonly > .v-icon { + cursor: default; +} + +.sormas .v-select-optiongroup-large .v-radiobutton.v-readonly > label > .v-icon { + cursor: default; +} + +:root .sormas .v-select-optiongroup-large .v-radiobutton.v-readonly > input:active ~ label:after { + background: transparent; +} + +:root .sormas .v-select-optiongroup-large .v-radiobutton.v-readonly > input ~ label:after { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +:root .sormas .v-select-optiongroup-large .v-radiobutton > input:checked ~ label:after { + width: 7px; + height: 7px; + top: 6px; + left: 6px; + background: #CDD8EC; +} + +:root .sormas .v-select-optiongroup-large .v-radiobutton > input ~ label:before, :root .sormas .v-select-optiongroup-large .v-radiobutton > input ~ label:after { + border-radius: 50%; + content: ""; +} + +.sormas .v-select-optiongroup-large .v-radiobutton, .sormas .v-select-optiongroup-large .v-checkbox { + display: block; + margin: 10px 12px 0 0; +} + +.sormas .v-select-optiongroup-large .v-radiobutton:first-child, .sormas .v-select-optiongroup-large .v-checkbox:first-child { + margin-top: 6px; +} + +.sormas .v-select-optiongroup-large .v-radiobutton:last-child, .sormas .v-select-optiongroup-large .v-checkbox:last-child { + margin-bottom: 6px; +} + +.sormas .v-select-optiongroup-large.v-has-width label { + white-space: normal; +} + +.sormas .v-select-optiongroup-horizontal { + white-space: nowrap; +} + +.sormas .v-select-optiongroup-horizontal .v-radiobutton, .sormas .v-select-optiongroup-horizontal .v-checkbox { + display: inline-block; +} + +.sormas .v-select-optiongroup-horizontal.v-has-width { + white-space: normal; +} + +.sormas .v-select-optiongroup-horizontal.v-has-width label { + white-space: nowrap; +} + +.sormas .v-link { + cursor: pointer; + color: #1565A2; + text-decoration: underline; + font-weight: inherit; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; +} + +.sormas .v-link:hover { + color: #1b81cf; +} + +.sormas .v-link.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-link a { + cursor: inherit; + color: inherit; + text-decoration: inherit; + -webkit-transition: inherit; + -moz-transition: inherit; + transition: inherit; +} + +.sormas .v-link .v-icon { + cursor: inherit; +} + +.sormas .v-link-small { + font-size: 11px; +} + +.sormas .v-link-large { + font-size: 15px; +} + +.sormas .v-window { + padding: 4px 4px; + border-radius: 4px; + background-color: white; + color: #374B5A; + -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1), 0 16px 80px -6px rgba(0, 0, 0, 0.15), 0 0 0 2px rgba(0, 0, 0, 0.09); + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1), 0 16px 80px -6px rgba(0, 0, 0, 0.15), 0 0 0 2px rgba(0, 0, 0, 0.09); + padding: 0; + min-width: 128px !important; + min-height: 32px !important; + white-space: nowrap; + overflow: hidden !important; + -webkit-transition: width 200ms, height 200ms, top 200ms, left 200ms; + -moz-transition: width 200ms, height 200ms, top 200ms, left 200ms; + transition: width 200ms, height 200ms, top 200ms, left 200ms; +} + +.sormas .v-window[class*="animate-in"] { + -webkit-animation: valo-animate-in-fade 140ms; + -moz-animation: valo-animate-in-fade 140ms; + animation: valo-animate-in-fade 140ms; +} + +.sormas .v-window[class*="animate-out"] { + -webkit-animation: valo-animate-out-scale-down-fade 100ms; + -moz-animation: valo-animate-out-scale-down-fade 100ms; + animation: valo-animate-out-scale-down-fade 100ms; +} + +.sormas .v-window.v-window-animate-in { + -webkit-transition: none; + -moz-transition: none; + transition: none; +} + +.sormas .v-window-modalitycurtain { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: #222; + background-image: -webkit-radial-gradient(50% 50%, circle, #222, #222222); + background-image: radial-gradient( circle at 50% 50%, #222, #222222); + opacity: 0.8; + filter: alpha(opacity=80) ; + -webkit-animation: valo-animate-in-fade 400ms 100ms backwards; + -moz-animation: valo-animate-in-fade 400ms 100ms backwards; + animation: valo-animate-in-fade 400ms 100ms backwards; +} + +.v-op12 .sormas .v-window-modalitycurtain { + -webkit-animation: none; + -moz-animation: none; + animation: none; +} + +.sormas .v-window-draggingCurtain { + position: fixed !important; +} + +.sormas .v-window-resizingCurtain + .v-window, .sormas .v-window-draggingCurtain + .v-window { + -webkit-transition: none; + -moz-transition: none; + transition: none; +} + +.sormas .v-window-outerheader { + cursor: move; + position: absolute; + z-index: 2; + top: 0; + left: 0; + right: 0; + -webkit-transform: translatez(0); + -moz-transform: translatez(0); + -ms-transform: translatez(0); + -o-transform: translatez(0); + transform: translatez(0); +} + +.sormas .v-window-outerheader:after { + content: ""; + position: absolute; + bottom: -2px; + right: 0; + left: 0; + height: 0; + border-top: 2px solid #CDD8EC; + border-color: rgba(205, 216, 236, 0.5); +} + +.sormas .v-window-header { + line-height: 31px; + padding-left: 11px; + margin-right: 64px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: #73818b; +} + +.sormas .v-window-restorebox-disabled ~ .v-window-closebox ~ .v-window-header, .sormas .v-window-maximizebox-disabled ~ .v-window-closebox ~ .v-window-header { + margin-right: 32px; +} + +.sormas .v-window-restorebox-disabled ~ .v-window-closebox-disabled ~ .v-window-header, .sormas .v-window-maximizebox-disabled ~ .v-window-closebox-disabled ~ .v-window-header { + margin-right: 11px; +} + +.sormas .v-window-closebox, .sormas .v-window-maximizebox, .sormas .v-window-restorebox { + position: absolute; + z-index: 3; + top: 0; + right: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 28px; + height: 31px; + background-color: white; + line-height: 29px; + text-align: center; + cursor: pointer; + font-size: 16px; + color: #374B5A; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; +} + +.sormas .v-window-closebox:focus, .sormas .v-window-maximizebox:focus, .sormas .v-window-restorebox:focus { + outline: none; +} + +.sormas .v-window-closebox:hover, .sormas .v-window-maximizebox:hover, .sormas .v-window-restorebox:hover { + opacity: 1; + filter: none ; + color: #CDD8EC; +} + +.sormas .v-window-closebox:active, .sormas .v-window-maximizebox:active, .sormas .v-window-restorebox:active { + color: inherit; +} + +.sormas .v-window-closebox { + padding-right: 4px; + border-radius: 0 4px 0 4px; +} + +.sormas .v-window-closebox:before { + content: "\00d7"; +} + +.sormas .v-window-maximizebox, .sormas .v-window-restorebox { + right: 28px; + padding-left: 4px; + border-radius: 0 0 0 4px; +} + +.sormas .v-window-maximizebox + .v-window-closebox, .sormas .v-window-restorebox + .v-window-closebox { + border-bottom-left-radius: 0; +} + +.sormas .v-window-closebox-disabled, .sormas .v-window-resizebox-disabled, .sormas .v-window-restorebox-disabled, .sormas .v-window-maximizebox-disabled { + display: none; +} + +.sormas .v-window-closebox-disabled + .v-window-closebox, .sormas .v-window-resizebox-disabled + .v-window-closebox, .sormas .v-window-restorebox-disabled + .v-window-closebox, .sormas .v-window-maximizebox-disabled + .v-window-closebox { + width: 32px; + padding-right: 0; + border-bottom-left-radius: 4px; +} + +.sormas .v-window-maximizebox:before { + content: "+"; +} + +.sormas .v-window-restorebox:before { + content: "\2013"; +} + +.sormas .v-window > .popupContent, .sormas .v-window-wrap, .sormas .v-window-contents, .sormas .v-window-contents > .v-scrollable { + height: 100%; +} + +.sormas .v-window-contents { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + border-radius: 4px; + margin-top: 0 !important; +} + +.sormas .v-window-contents > .v-scrollable { + position: relative; +} + +.sormas .v-window-contents > .v-scrollable > .v-margin-top { + padding-top: 11px; +} + +.sormas .v-window-contents > .v-scrollable > .v-margin-right { + padding-right: 11px; +} + +.sormas .v-window-contents > .v-scrollable > .v-margin-bottom { + padding-bottom: 11px; +} + +.sormas .v-window-contents > .v-scrollable > .v-margin-left { + padding-left: 11px; +} + +.sormas .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-top"] > tbody > [class*="firstrow"] > td { + padding-top: 11px; +} + +.sormas .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-bottom"] > tbody > [class*="lastrow"] > td { + padding-bottom: 11px; +} + +.sormas .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="captioncell"] { + padding-left: 11px; +} + +.sormas .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .sormas .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .sormas .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { + left: 11px; +} + +.sormas .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] { + padding-right: 11px; +} + +.sormas .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .sormas .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .sormas .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { + right: 11px; +} + +.sormas .v-window-contents > .v-scrollable:focus { + outline: none; +} + +.sormas .v-window-contents > .v-scrollable:before { + content: ""; + position: absolute; + z-index: 2; + top: 0; + height: 0; + border-top: 2px solid white; + left: 0; + right: 0; +} + +.sormas .v-window-contents > .v-scrollable .v-panel-captionwrap:after { + border-color: #CDD8EC; +} + +.sormas .v-window-contents > .v-scrollable .v-panel-content:before { + border-color: white; +} + +.sormas .v-window-footer { + height: 0; +} + +.sormas .v-window-resizebox { + position: absolute; + z-index: 1000; + right: 0; + bottom: 0; + width: 16px; + height: 16px; + cursor: nwse-resize; +} + +.v-ie8 .sormas .v-window-resizebox { + background: #000; + filter: alpha(opacity=0.1); +} + +.v-ie8 .sormas .v-window-resizebox, .v-ie9 .sormas .v-window-resizebox { + cursor: se-resize; +} + +.sormas .v-window-modalitycurtain:active ~ .v-window { + -webkit-animation: none; + -moz-animation: none; + animation: none; +} + +.sormas .v-window-top-toolbar > .v-widget, .sormas .v-window-bottom-toolbar > .v-widget { + vertical-align: top; +} + +.sormas .v-window-top-toolbar .v-label, .sormas .v-window-bottom-toolbar .v-label { + line-height: 31px; +} + +.sormas .v-window-top-toolbar .v-spacing, .sormas .v-window-bottom-toolbar .v-spacing { + width: 9px; +} + +.sormas .v-window-top-toolbar.v-layout { + padding: 6px 11px; + position: relative; + z-index: 2; + border-top: 2px solid #CDD8EC; + border-bottom: 2px solid #CDD8EC; + background-color: #ffffff; +} + +.sormas .v-window-top-toolbar.v-menubar { + margin: 11px 11px 5px; +} + +.sormas .v-window-top-toolbar.v-menubar-borderless { + padding-left: 5px; + padding-right: 5px; + margin: 3px 0; +} + +.sormas .v-window-bottom-toolbar.v-layout { + padding: 6px 11px; + background-color: #ffffff; + background-image: -webkit-linear-gradient(top, white 0, #ffffff 3px); + background-image: linear-gradient(to bottom,white 0, #ffffff 3px); + border-top: 2px solid #CDD8EC; + border-radius: 0 0 4px 4px; +} + +.sormas .v-margin-left.v-margin-right.v-margin-top .v-window-top-toolbar.v-layout { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + margin: -11px -11px 0; +} + +.sormas .v-margin-left.v-margin-right.v-margin-top .v-window-top-toolbar.v-menubar { + margin: 0; +} + +.sormas .v-margin-left.v-margin-right.v-margin-top .v-window-top-toolbar.v-menubar-borderless { + margin: -6px -6px 0; + padding: 0; +} + +.sormas .v-margin-left.v-margin-right.v-margin-bottom .v-window-bottom-toolbar.v-layout { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + margin: 0 -11px -11px; +} + +.sormas .v-tree { + position: relative; + white-space: nowrap; +} + +.sormas .v-tree:focus { + outline: none; +} + +.sormas .v-tree-node:before { + content: ""; + position: absolute; + display: inline-block; + z-index: 3; + width: 1.9em; + height: 25px; + cursor: pointer; + background: red; + opacity: 0; +} + +.v-ie8 .sormas .v-tree-node:before { + position: static; + margin-left: -1.9em; + vertical-align: top; + content: "\f0da"; + font-family: ThemeIcons; + text-align: center; + background: transparent; +} + +.v-ie8 .sormas .v-tree-node { + padding-left: 1.9em; +} + +.sormas .v-tree-node-caption { + height: 25px; + line-height: 24px; + overflow: hidden; + white-space: nowrap; + vertical-align: top; +} + +.sormas .v-tree-node-caption > div { + display: inline-block; + width: 100%; + position: relative; + z-index: 2; +} + +.sormas .v-tree-node-caption > div:before { + content: "\f0da"; + font-family: ThemeIcons; + display: inline-block; + width: 0.5em; + text-align: center; + margin: 0 0.6em 0 0.8em; + -webkit-transition: all 100ms; + -moz-transition: all 100ms; + transition: all 100ms; +} + +.v-ie8 .sormas .v-tree-node-caption > div:before { + display: none; +} + +.sormas .v-tree-node-caption span { + padding-right: 25px; + cursor: pointer; + display: inline-block; + width: 100%; +} + +.v-ie .sormas .v-tree-node-caption span { + width: auto; +} + +.sormas .v-tree-node-caption .v-icon { + padding-right: 0; + width: auto; + min-width: 1em; +} + +.sormas .v-tree-node-caption:after { + content: ""; + display: block; + vertical-align: top; + position: absolute; + z-index: 1; + left: 0; + margin-top: -25px; + width: 100%; + height: 25px; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms; + -moz-transition: opacity 120ms; + transition: opacity 120ms; +} + +.v-ie8 .sormas .v-tree-node-caption:after { + content: none; +} + +.v-ie8 .sormas .v-tree-node-caption { + display: inline-block; +} + +.sormas .v-tree-node-expanded > .v-tree-node-caption > div:before { + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); + content: "\f0da"; + font-family: ThemeIcons; +} + +.v-ie8 .sormas .v-tree-node-expanded:before { + content: "\f0d7"; + font-family: ThemeIcons; +} + +.sormas .v-tree-node-leaf:before, .sormas .v-tree-node-leaf > .v-tree-node-caption > div:before { + visibility: hidden; +} + +.sormas .v-tree-node-focused:after { + opacity: 1; + border: 1px solid #CDD8EC; +} + +.v-ie8 .sormas .v-tree-node-focused { + outline: 1px dotted #CDD8EC; +} + +.sormas .v-tree-node-selected { + color: #374B5A; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-tree-node-selected:after { + opacity: 1; + background: #CDD8EC; + border: none; +} + +.v-ie8 .sormas .v-tree-node-selected { + background: #CDD8EC; +} + +.sormas .v-tree-node-children { + padding-left: 16px; +} + +.v-ie8 .sormas .v-tree-node-children { + padding-left: 0; +} + +.sormas .v-tree-node-drag-top:before, .sormas .v-tree-node-drag-bottom:after, .sormas .v-tree-node-drag-bottom.v-tree-node-dragfolder.v-tree-node-expanded > .v-tree-node-children:before { + content: "\2022"; + display: block; + position: absolute; + height: 2px; + width: 100%; + background: #CDD8EC; + font-size: 24px; + line-height: 2px; + color: #CDD8EC; + text-indent: -3px; + text-shadow: 0 0 1px #ffffff, 0 0 1px #ffffff; + opacity: 1; + visibility: visible; +} + +.sormas .v-tree-node-drag-bottom.v-tree-node-dragfolder.v-tree-node-expanded:after { + content: none; +} + +.sormas .v-tree-node-caption-drag-center { + -webkit-box-shadow: 0 0 0 2px #CDD8EC; + box-shadow: 0 0 0 2px #CDD8EC; + position: relative; + border-radius: 4px; +} + +.v-ie8 .sormas .v-tree-node-caption-drag-center { + outline: 2px solid #CDD8EC; +} + +.v-ff .sormas .v-tree-node-drag-top:before, .v-ff .sormas .v-tree-node-drag-bottom:after { + line-height: 1px; +} + +.v-ie8 .sormas .v-tree-node-drag-top:before, .v-ie8 .sormas .v-tree-node-drag-bottom:after { + line-height: 0; +} + +.sormas .v-table { + position: relative; + background: #ffffff; + color: #374B5A; + overflow: hidden; +} + +.sormas .v-table-header table, .sormas .v-table-footer table, .sormas .v-table-table { + -webkit-box-shadow: 0 0 0 2px #CDD8EC; + box-shadow: 0 0 0 2px #CDD8EC; +} + +.v-ie8 .sormas .v-table-header table, .v-ie8 .sormas .v-table-footer table, .v-ie8 .sormas .v-table-table { + outline: 2px solid #CDD8EC; +} + +.sormas .v-table-header-wrap, .sormas .v-table-footer-wrap, .sormas .v-table-header-drag { + border: 2px solid #CDD8EC; + background: #ffffff; + white-space: nowrap; + font-size: 10px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-table-header-wrap { + position: relative; + border-bottom: none; +} + +.sormas .v-table-footer-wrap { + border-top: none; +} + +.sormas .v-table-footer td { + border-left: 2px solid #CDD8EC; + display: inline-block; + margin-left: -1px; +} + +.sormas .v-table-footer td:first-child { + margin-left: 0; +} + +.sormas .v-table-footer-container, .sormas .v-table-caption-container { + overflow: hidden; + line-height: 1; + min-height: 32px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.v-ie8 .sormas .v-table-footer-container, .v-ie8 .sormas .v-table-caption-container { + min-height: 12px; +} + +.sormas .v-table-footer-container { + padding: 9px 11px 11px; + float: right; +} + +.sormas [class^="v-table-header-cell"] { + position: relative; +} + +.sormas .v-table-caption-container, .sormas .v-table-header-drag { + padding: 11px 11px 9px; + border-left: 2px solid #CDD8EC; +} + +.sormas .v-table-caption-container-align-right { + padding-right: 4px; +} + +.sormas .v-table-resizer { + height: 32px; + width: 7px; + cursor: e-resize; + cursor: col-resize; + position: relative; + right: -4px; + z-index: 1; + margin-left: -7px; +} + +.sormas .v-table-cell-content { + border-left: 2px solid #CDD8EC; + overflow: hidden; + height: 32px; + vertical-align: middle; +} + +.sormas .v-table-cell-content:first-child { + border-left: none; + padding-left: 2px; +} + +.sormas .v-table-header td:first-child .v-table-caption-container, .sormas .v-table-footer td:first-child { + border-left-color: transparent; +} + +.sormas .v-table-cell-wrapper { + line-height: 1; + padding: 0 11px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + margin-right: 0 !important; +} + +.sormas .v-table-cell-wrapper > .v-widget { + margin: 3px -6px; +} + +.sormas .v-table-cell-wrapper > .v-widget.v-label, .sormas .v-table-cell-wrapper > .v-widget.v-checkbox, .sormas .v-table-cell-wrapper > .v-widget.v-select-optiongroup { + margin: 0; +} + +.sormas .v-table-cell-wrapper > .v-widget.v-progressbar { + margin-left: 0; + margin-right: 0; +} + +.sormas .v-table-body { + border: 2px solid #CDD8EC; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; +} + +.sormas .v-table-table { + background-color: white; + white-space: nowrap; +} + +.sormas .v-table-table td { + border-top: 2px solid #CDD8EC; +} + +.sormas .v-table-table tr:first-child > td { + border-top: none; +} + +.sormas .v-table-row { + background-color: white; + cursor: pointer; +} + +.sormas .v-table-row-odd { + background-color: #f5f5f5; + cursor: pointer; +} + +.sormas .v-table-body-noselection .v-table-row, .sormas .v-table-body-noselection .v-table-row-odd { + cursor: default; +} + +.sormas .v-table [class*="-row"].v-selected { + background: #CDD8EC; + background-origin: border-box; + color: #374B5A; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-table [class*="-row"].v-selected + .v-selected { + background: #CDD8EC; +} + +.sormas .v-table [class*="-row"].v-selected + .v-selected td { + border-top-color: #CDD8EC; +} + +.sormas .v-table [class*="-row"].v-selected .v-table-cell-content { + border-color: transparent; + border-left-color: #b4c2dc; +} + +.sormas .v-table [class*="-row"].v-selected .v-table-cell-content:first-child { + border-left-color: transparent; +} + +.sormas .v-table-header-cell-asc .v-table-sort-indicator, .sormas .v-table-header-cell-desc .v-table-sort-indicator { + background: transparent; + width: 16px; + height: 32px; + line-height: 32px; + margin-left: -16px; +} + +.sormas .v-table-header-cell-asc .v-table-sort-indicator:before, .sormas .v-table-header-cell-desc .v-table-sort-indicator:before { + font-style: normal; + font-weight: normal; + display: inline-block; +} + +.sormas .v-table-header-cell-asc .v-table-sort-indicator:before { + content: "\f0de"; + font-family: ThemeIcons; +} + +.sormas .v-table-header-cell-desc .v-table-sort-indicator:before { + content: "\f0dd"; + font-family: ThemeIcons; +} + +.sormas [class*="rowheader"] span.v-icon { + min-width: 1em; +} + +.sormas .v-table-focus { + outline: 2px solid #CDD8EC; + outline-offset: -2px; +} + +.sormas .v-drag-element.v-table-focus, .sormas .v-drag-element .v-table-focus { + outline: none; +} + +.sormas .v-table-header-drag { + position: absolute; + opacity: 0.9; + filter: alpha(opacity=90) ; + margin-top: -16px; + z-index: 30000; + line-height: 1; +} + +.sormas .v-table-focus-slot-right { + border-right: 4px solid #CDD8EC; + right: -3px; + margin-left: -11px !important; +} + +.sormas .v-table-focus-slot-left { + float: left; + border-left: 4px solid #CDD8EC; + left: -2px; + right: auto; + margin-left: 0 !important; + margin-right: -11px; +} + +.sormas .v-table-column-selector { + height: 32px; + padding: 0 14px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + position: absolute; + z-index: 2; + top: 0; + right: 0; + width: 16px; + height: 16px; + line-height: 16px; + padding: 0; + border-top-width: 0; + border-right-width: 0; + border-radius: 0 0 0 4px; + cursor: pointer; + text-align: center; + opacity: 0; + filter: alpha(opacity=0) ; + -webkit-transition: opacity 200ms 2s; + -moz-transition: opacity 200ms 2s; + transition: opacity 200ms 2s; +} + +.sormas .v-table-column-selector:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-table-column-selector:hover:after { + background-color: rgba(191, 191, 191, 0.1); +} + +.sormas .v-table-column-selector:focus:after { + border: inherit; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-table-column-selector:active:after { + background-color: rgba(128, 128, 128, 0.2); +} + +.sormas .v-table-column-selector:after { + content: ""; + position: absolute; + border: none; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +.sormas .v-table-column-selector:active:after { + background-color: rgba(128, 128, 128, 0.2); +} + +.sormas .v-table-column-selector:before { + font-family: ThemeIcons; + content: "\f013"; +} + +.sormas .v-table-header-wrap:hover .v-table-column-selector { + opacity: 1; + filter: none ; + -webkit-transition-delay: 200ms; + -moz-transition-delay: 200ms; + transition-delay: 200ms; +} + +.sormas .v-on:before, .sormas .v-off:before { + content: "\f00c"; + font-family: ThemeIcons; + font-size: 0.9em; + margin-right: 5px; +} + +.sormas .v-on div, .sormas .v-off div { + display: inline; +} + +.sormas .v-on.v-disabled, .sormas .v-off.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-off:before { + visibility: hidden; +} + +.sormas tbody.v-drag-element { + display: block; + overflow: visible; + -webkit-box-shadow: none; + box-shadow: none; + background: transparent; + opacity: 1; + filter: none ; +} + +.sormas tbody.v-drag-element tr { + display: block; + + color: #374B5A; + -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); + border-radius: 4px; + overflow: hidden; + opacity: 0.5; + filter: alpha(opacity=50) ; + background: white; +} + +.sormas .v-table-body { + position: relative; + z-index: 1; +} + +.sormas .v-table-scrollposition { + position: absolute; + top: 50%; + width: 100%; + height: 32px; + line-height: 32px; + margin: -16px 0 0 !important; + text-align: center; +} + +.sormas .v-table-drag { + overflow: visible; +} + +.sormas .v-table-drag .v-table-body { + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.v-ie8 .sormas .v-table-drag .v-table-body { + border-color: #CDD8EC; +} + +.sormas .v-table-drag .v-table-body .v-table-focus { + outline: none; +} + +.sormas .v-table-row-drag-middle .v-table-cell-content { + background-color: #f5f7fb; + color: #374B5A; +} + +.sormas .v-table-row-drag-bottom td.v-table-cell-content { + border-bottom: 2px solid #CDD8EC; + height: 30px; +} + +.sormas .v-table-row-drag-bottom .v-table-cell-wrapper { + margin-bottom: -2px; +} + +.sormas .v-table-row-drag-top td.v-table-cell-content { + border-top: 2px solid #CDD8EC; + height: 32px; +} + +.sormas .v-table-row-drag-top .v-table-cell-wrapper { + margin-top: -1px; +} + +.sormas .v-table-no-stripes .v-table-row, .sormas .v-table-no-stripes .v-table-row-odd { + background: transparent; +} + +.sormas .v-table-no-vertical-lines .v-table-cell-content { + border-left: none; + padding-left: 2px; +} + +.sormas .v-table-no-vertical-lines.v-treetable .v-table-cell-content { + padding-left: 13px; +} + +.sormas .v-table-no-horizontal-lines .v-table-cell-content { + border-top: none; + border-bottom: none; +} + +.sormas .v-table-no-horizontal-lines .v-table-row-drag-top .v-table-cell-content, .sormas .v-table-no-horizontal-lines .v-table-row-drag-bottom .v-table-cell-content { + height: 31px; +} + +.sormas .v-table-no-header .v-table-header-wrap { + display: none; +} + +.sormas .v-table-borderless .v-table-header-wrap, .sormas .v-table-borderless .v-table-footer-wrap, .sormas .v-table-borderless .v-table-header-drag, .sormas .v-table-borderless .v-table-body { + border: none; +} + +.sormas .v-table-borderless .v-table-header-wrap { + border-bottom: 2px solid #CDD8EC; +} + +.sormas .v-table-borderless .v-table-footer-wrap { + border-top: 2px solid #CDD8EC; +} + +.sormas .v-table-compact .v-table-header-wrap, .sormas .v-table-compact .v-table-footer-wrap, .sormas .v-table-compact .v-table-header-drag, .sormas .v-table-small .v-table-header-wrap, .sormas .v-table-small .v-table-footer-wrap, .sormas .v-table-small .v-table-header-drag { + font-size: 10px; +} + +.sormas .v-table-compact .v-table-footer-container, .sormas .v-table-small .v-table-footer-container { + padding: 7px 8px 9px; +} + +.sormas .v-table-compact .v-table-caption-container, .sormas .v-table-compact .v-table-header-drag, .sormas .v-table-small .v-table-caption-container, .sormas .v-table-small .v-table-header-drag { + padding-top: 9px; + padding-bottom: 7px; + padding-left: 6px; + padding-right: 6px; +} + +.sormas .v-table-compact .v-table-caption-container-align-right, .sormas .v-table-small .v-table-caption-container-align-right { + padding-right: 0; +} + +.sormas .v-table-compact .v-table-resizer, .sormas .v-table-small .v-table-resizer { + height: 27px; +} + +.sormas .v-table-compact .v-table-cell-content, .sormas .v-table-small .v-table-cell-content { + height: 27px; +} + +.sormas .v-table-compact .v-table-cell-wrapper, .sormas .v-table-small .v-table-cell-wrapper { + padding-left: 6px; + padding-right: 6px; +} + +.sormas .v-table-compact .v-table-cell-wrapper > .v-widget, .sormas .v-table-small .v-table-cell-wrapper > .v-widget { + margin: 2px -3px; +} + +.sormas .v-table-compact .v-table-cell-wrapper > .v-widget.v-label, .sormas .v-table-compact .v-table-cell-wrapper > .v-widget.v-checkbox, .sormas .v-table-compact .v-table-cell-wrapper > .v-widget.v-select-optiongroup, .sormas .v-table-small .v-table-cell-wrapper > .v-widget.v-label, .sormas .v-table-small .v-table-cell-wrapper > .v-widget.v-checkbox, .sormas .v-table-small .v-table-cell-wrapper > .v-widget.v-select-optiongroup { + margin: 0; +} + +.sormas .v-table-compact .v-table-cell-wrapper > .v-widget.v-progressbar, .sormas .v-table-small .v-table-cell-wrapper > .v-widget.v-progressbar { + margin-left: 0; + margin-right: 0; +} + +.sormas .v-table-compact .v-table-header-cell-asc .v-table-sort-indicator, .sormas .v-table-compact .v-table-header-cell-desc .v-table-sort-indicator, .sormas .v-table-small .v-table-header-cell-asc .v-table-sort-indicator, .sormas .v-table-small .v-table-header-cell-desc .v-table-sort-indicator { + height: 27px; + line-height: 27px; +} + +.sormas .v-table-compact .v-table-header-drag, .sormas .v-table-small .v-table-header-drag { + margin-top: -14px; +} + +.sormas .v-table-compact.v-treetable .v-table-cell-wrapper, .sormas .v-table-small.v-treetable .v-table-cell-wrapper { + padding-left: 0; + padding-right: 0; + min-height: 12px; +} + +.sormas .v-table-compact.v-treetable .v-table-cell-content, .sormas .v-table-small.v-treetable .v-table-cell-content { + padding-left: 6px; + padding-right: 6px; +} + +.sormas .v-table-compact.v-treetable .v-table-cell-content:first-child, .sormas .v-table-small.v-treetable .v-table-cell-content:first-child { + padding-left: 8px; +} + +.sormas .v-table-compact.v-treetable .v-table-footer-container, .sormas .v-table-small.v-treetable .v-table-footer-container { + padding-left: 6px; + padding-right: 6px; +} + +.sormas .v-table-compact .v-table-row-drag-top .v-table-cell-content, .sormas .v-table-compact .v-table-row-drag-bottom .v-table-cell-content, .sormas .v-table-small .v-table-row-drag-top .v-table-cell-content, .sormas .v-table-small .v-table-row-drag-bottom .v-table-cell-content { + height: 26px; +} + +.sormas .v-table-small { + font-size: 11px; +} + +.sormas .v-table-small.v-treetable .v-table-cell-wrapper { + min-height: 11px; +} + +.sormas .v-treetable [class*="caption-container"], .sormas .v-treetable [class*="footer-container"], .sormas .v-treetable [class*="cell-wrapper"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + padding-left: 0; + padding-right: 0; +} + +.sormas .v-treetable [class*="caption-container"], .sormas .v-treetable [class*="footer-container"] { + min-height: 12px; +} + +.sormas .v-treetable [class*="cell-wrapper"] { + min-height: 12px; +} + +.sormas .v-treetable [class*="caption-container"] { + padding-left: 11px; +} + +.sormas .v-treetable [class*="caption-container-align-right"] { + padding-left: 18px; +} + +.sormas .v-treetable [class*="footer-container"] { + padding-right: 11px; +} + +.sormas .v-treetable [class*="cell-content"] { + padding-left: 11px; + padding-right: 11px; +} + +.sormas .v-treetable [class*="cell-content"]:first-child { + padding-left: 13px; +} + +.sormas .v-treetable-treespacer { + display: inline-block; + position: absolute; + width: 16px !important; + margin-left: -22px; + text-align: center; + cursor: pointer; +} + +.sormas .v-treetable-node-closed:before { + content: "\f0da"; + font-family: ThemeIcons; +} + +.sormas .v-treetable-node-open:before { + content: "\f0d7"; + font-family: ThemeIcons; +} + +.sormas .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter { + width: 2px; +} + +.sormas .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter:after { + left: -5px; + right: -5px; +} + +.sormas .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before { + height: 32px; + padding: 0 14px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + height: auto; + padding: 0; + border-radius: 0; + background: #ffffff; +} + +.sormas .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:hover:after { + background-color: rgba(191, 191, 191, 0.1); +} + +.sormas .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:focus:after { + border: inherit; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:active:after { + background-color: rgba(128, 128, 128, 0.2); +} + +.sormas .v-splitpanel-horizontal > div > .v-splitpanel-second-container { + margin-left: 2px; +} + +.sormas .v-splitpanel-vertical > div > .v-splitpanel-vsplitter { + height: 2px; +} + +.sormas .v-splitpanel-vertical > div > .v-splitpanel-vsplitter:after { + top: -5px; + bottom: -5px; +} + +.sormas .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before { + height: 32px; + padding: 0 14px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + height: auto; + padding: 0; + border-radius: 0; +} + +.sormas .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:hover:after { + background-color: rgba(191, 191, 191, 0.1); +} + +.sormas .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:focus:after { + border: inherit; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:active:after { + background-color: rgba(128, 128, 128, 0.2); +} + +.sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter { + width: 11px; +} + +.sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter:after { + left: 0px; + right: 0px; +} + +.sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before { + height: 32px; + padding: 0 14px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + height: auto; + padding: 0; + border-radius: 0; + background: #ffffff; +} + +.sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:hover:after { + background-color: rgba(191, 191, 191, 0.1); +} + +.sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:focus:after { + border: inherit; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:active:after { + background-color: rgba(128, 128, 128, 0.2); +} + +.sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:after { + content: ""; + border: 2px solid #CDD8EC; + border-top-color: #CDD8EC; + border-left-color: #CDD8EC; + position: absolute; + top: 50%; + left: 50%; + width: 0; + height: 32px; + margin-left: -2px; + margin-top: -16px; +} + +.sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-second-container { + margin-left: 11px; +} + +.sormas .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter { + height: 11px; +} + +.sormas .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter:after { + top: 0px; + bottom: 0px; +} + +.sormas .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before { + height: 32px; + padding: 0 14px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + height: auto; + padding: 0; + border-radius: 0; +} + +.sormas .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:hover:after { + background-color: rgba(191, 191, 191, 0.1); +} + +.sormas .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:focus:after { + border: inherit; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:active:after { + background-color: rgba(128, 128, 128, 0.2); +} + +.sormas .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:after { + content: ""; + border: 2px solid #CDD8EC; + border-top-color: #CDD8EC; + border-left-color: #CDD8EC; + position: absolute; + top: 50%; + left: 50%; + width: 32px; + height: 0; + margin-left: -16px; + margin-top: -2px; +} + +.sormas .v-progressbar-wrapper { + border-radius: 4px; + height: 8px; + background: #d9d9d9; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + min-width: 64px; +} + +.sormas .v-progressbar-indicator { + border-radius: 4px; + height: inherit; + background: #CDD8EC; + + + border: 2px solid #CDD8EC; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + max-width: 100%; + min-width: 8px; + -webkit-transition: width 160ms; + -moz-transition: width 160ms; + transition: width 160ms; +} + +.sormas .v-progressbar-point .v-progressbar-indicator { + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; + border: none; + text-align: right; + overflow: hidden; +} + +.sormas .v-progressbar-point .v-progressbar-indicator:before { + content: ""; + display: inline-block; + border-radius: 4px; + height: inherit; + background: #CDD8EC; + + + border: 2px solid #CDD8EC; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + max-width: 100%; + width: 8px; + vertical-align: top; +} + +.sormas .v-progressbar-indeterminate { + height: 24px !important; + width: 24px !important; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + border: 2px solid rgba(205, 216, 236, 0.2); + border-top-color: #CDD8EC; + border-right-color: #CDD8EC; + border-radius: 100%; + -webkit-animation: v-rotate-360 500ms infinite linear; + -moz-animation: v-rotate-360 500ms infinite linear; + animation: v-rotate-360 500ms infinite linear; + pointer-events: none; +} + +.v-ie8 .sormas .v-progressbar-indeterminate, .v-ie9 .sormas .v-progressbar-indeterminate { + border: none; + border-radius: 4px; + background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%; + background-size: 80%; +} + +.v-ie8 .sormas .v-progressbar-indeterminate { + min-width: 30px; + min-height: 30px; +} + +.sormas .v-progressbar-indeterminate .v-progressbar-wrapper { + display: none; +} + +.sormas .v-slider { + position: relative; +} + +.sormas .v-slider:focus { + outline: none; +} + +.sormas .v-slider:focus .v-slider-handle:after { + opacity: 1; +} + +.v-ie8 .sormas .v-slider:focus .v-slider-handle:after { + visibility: visible; +} + +.sormas .v-slider.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-slider-base { + border-radius: 4px; + height: 8px; + background: #d9d9d9; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + min-width: 64px; + height: 4px; + margin: 14px 9px; + white-space: nowrap; + overflow: hidden; + +} + +.sormas .v-slider-base:before { + content: ""; + position: absolute; + top: 14px; + bottom: 14px; + left: 9px; + width: 8px; + border-radius: 4px; + border-left: 2px solid #CDD8EC; +} + +.sormas .v-slider-base:after { + border-radius: 4px; + height: inherit; + background: #CDD8EC; + + + border: 2px solid #CDD8EC; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + max-width: 100%; + content: ""; + display: inline-block; + margin-left: -100%; + width: 100%; + vertical-align: top; +} + +.v-ie8 .sormas .v-slider-base:after { + position: relative; + left: -9px; +} + +.sormas .v-has-width > .v-slider-base { + min-width: 0; +} + +.sormas .v-slider-handle { + margin-top: -14px; + width: 0.1px; + display: inline-block; + vertical-align: top; +} + +.sormas .v-slider-handle:before { + height: 32px; + padding: 0 14px; + color: #374B5A; + font-weight: 500; + + + border-radius: 4px; + border: 2px solid #CDD8EC; + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-slider-handle:before:after { + border: inherit; + top: -2px; + right: -2px; + bottom: -2px; + left: -2px; +} + +.sormas .v-slider-handle:before:hover:after { + background-color: rgba(191, 191, 191, 0.1); +} + +.sormas .v-slider-handle:before:focus:after { + border: inherit; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-slider-handle:before:active:after { + background-color: rgba(128, 128, 128, 0.2); +} + +.sormas .v-slider-handle:after { + border: 2px solid #CDD8EC; + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + opacity: 0; + -webkit-transition: opacity 200ms; + -moz-transition: opacity 200ms; + transition: opacity 200ms; +} + +.v-ie8 .sormas .v-slider-handle:after { + visibility: hidden; +} + +.sormas .v-slider-handle:before, .sormas .v-slider-handle:after { + content: ""; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; + width: 18px; + height: 18px; + border-radius: 9px; + position: absolute; + z-index: 1; + margin-top: 7px; + margin-left: -9px; +} + +.sormas .v-slider-feedback { + background-color: #333333; + background-color: rgba(51, 51, 51, 0.9); + -webkit-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); + box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); + color: white; + padding: 4px 8px; + border-radius: 3px; + max-width: 35em; + overflow: hidden !important; + font-size: 12px; +} + +.sormas .v-slider-vertical { + padding: 9px 0; + height: 82px; +} + +.sormas .v-slider-vertical .v-slider-base { + background: #d9d9d9; + width: 4px; + height: 100% !important; + min-width: 0; + margin: 0 14px; +} + +.sormas .v-slider-vertical .v-slider-base:before { + top: auto; + bottom: 9px; + left: 14px; + right: 14px; + width: auto; + height: 8px; + border-left: none; + border-bottom: 2px solid #CDD8EC; +} + +.sormas .v-slider-vertical .v-slider-base:after { + height: 101%; + margin-left: 0; + background: #CDD8EC; +} + +.v-ie8 .sormas .v-slider-vertical .v-slider-base:after { + top: 9px; + left: 0; + height: 130%; +} + +.sormas .v-slider-vertical .v-slider-handle { + width: 0; + height: 0.1px; + width: 32px; + display: block; +} + +.sormas .v-slider-vertical .v-slider-handle:before, .sormas .v-slider-vertical .v-slider-handle:after { + width: 18px; + height: 18px; + margin-top: -9px; + margin-left: -7px; +} + +.sormas .v-slider-no-indicator .v-slider-base:before, .sormas .v-slider-no-indicator .v-slider-base:after { + display: none; +} + +.sormas .v-tabsheet:not(.v-has-width) { + width: auto !important; +} + +.sormas .v-tabsheet-spacertd { + display: none !important; +} + +.sormas .v-tabsheet-tabcontainer { + position: relative; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.sormas .v-tabsheet-tabcontainer:before { + content: ""; + position: absolute; + height: 0; + border-top: 2px solid #CDD8EC; + bottom: 0; + left: 0; + right: 0; +} + +.sormas .v-tabsheet-tabcontainer .v-tabsheet-tabs { + position: relative; +} + +.sormas .v-tabsheet-tabitemcell { + vertical-align: bottom; +} + +.sormas .v-tabsheet-tabitemcell .v-tabsheet-tabitem { + line-height: 0; + overflow: hidden; +} + +.sormas .v-tabsheet-tabitemcell .v-caption { + margin-left: 16px; + padding: 0 3px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; + text-align: center; + line-height: 32px; + font-size: 11px; + font-weight: 400; + color: #374B5A; + width: auto !important; + overflow: hidden; + text-overflow: ellipsis; + border-bottom: 4px solid transparent; + position: relative; + -webkit-transition: border-bottom 200ms, color 200ms; + -moz-transition: border-bottom 200ms, color 200ms; + transition: border-bottom 200ms, color 200ms; +} + +.sormas .v-tabsheet-tabitemcell .v-caption .v-captiontext { + display: inline; +} + +.sormas .v-tabsheet-tabitemcell .v-caption .v-icon + .v-captiontext { + margin-left: 8px; +} + +.sormas .v-tabsheet-tabitemcell .v-caption:hover { + color: #CDD8EC; +} + +.sormas .v-tabsheet-tabitemcell .v-caption.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; + cursor: default; + color: inherit !important; +} + +.sormas .v-tabsheet-tabitemcell:first-child .v-caption, .sormas .v-tabsheet-tabitemcell[aria-hidden="true"] + td .v-caption { + margin-left: 0; +} + +.sormas .v-tabsheet-tabitemcell:focus { + outline: none; +} + +.sormas .v-tabsheet-tabitemcell:focus .v-caption { + color: #CDD8EC; +} + +.sormas .v-tabsheet-tabitemcell .v-tabsheet-tabitem-selected .v-caption.v-caption { + border-bottom-color: #CDD8EC; + color: #CDD8EC; +} + +.sormas .v-tabsheet-tabitemcell .v-caption-closable { + padding-right: 16px; +} + +.sormas .v-tabsheet-tabitemcell.icons-on-top .v-caption-closable { + padding-right: 3px; +} + +.sormas .v-tabsheet-tabitemcell .v-tabsheet-caption-close { + position: absolute; + right: 0; + top: 50%; + margin: -6px 0 0; + font-size: 13px; + line-height: 13px; + width: 13px; + text-align: center; + border-radius: 2px; + color: #374B5A; +} + +.sormas .v-tabsheet-tabitemcell .v-tabsheet-caption-close:hover { + background: rgba(0, 0, 0, 0.03); + color: #CDD8EC; +} + +.sormas .v-tabsheet-tabitemcell .v-tabsheet-caption-close:active { + background: #CDD8EC; + color: #374B5A; +} + +.sormas .v-tabsheet-scroller { + position: absolute; + top: 0; + right: 0; + bottom: 0; + padding-left: 16px; + background-color: transparent; + background-image: -webkit-linear-gradient(right, #ffffff 70%, rgba(255, 255, 255, 0) 100%); + background-image: linear-gradient(to left,#ffffff 70%, rgba(255, 255, 255, 0) 100%); + pointer-events: none; +} + +.sormas .v-tabsheet-scroller:after { + content: ""; + height: 2px; + position: absolute; + bottom: 0; + left: 0; + right: 0; + display: block; + background-color: transparent; + background-image: -webkit-linear-gradient(right, #CDD8EC 70%, rgba(205, 216, 236, 0) 100%); + background-image: linear-gradient(to left,#CDD8EC 70%, rgba(205, 216, 236, 0) 100%); +} + +.v-ie8 .sormas .v-tabsheet-scroller, .v-ie9 .sormas .v-tabsheet-scroller { + background-color: #ffffff; +} + +.v-ie8 .sormas .v-tabsheet-scroller:after, .v-ie9 .sormas .v-tabsheet-scroller:after { + background-color: #CDD8EC; +} + +.sormas .v-tabsheet-scroller button { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + border: none; + background: transparent; + font: inherit; + color: inherit; + height: 100%; + margin: 0; + padding: 0 8px; + outline: none; + cursor: pointer; + pointer-events: auto; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-tabsheet-scroller button:hover { + opacity: 1; + filter: none ; + color: #CDD8EC; +} + +.sormas .v-tabsheet-scroller button:active { + opacity: 0.7; + filter: alpha(opacity=70) ; + color: #CDD8EC; +} + +.sormas .v-tabsheet-scroller button::-moz-focus-inner { + padding: 0; + border: 0; +} + +.sormas .v-tabsheet-scroller [class*="Next"] { + padding-left: 4px; +} + +.sormas .v-tabsheet-scroller [class*="Next"]:before { + font-family: ThemeIcons; + content: "\f054"; +} + +.sormas .v-tabsheet-scroller [class*="Prev"] { + padding-right: 4px; +} + +.sormas .v-tabsheet-scroller [class*="Prev"]:before { + font-family: ThemeIcons; + content: "\f053"; +} + +.sormas .v-tabsheet-scroller [class*="disabled"] { + cursor: default; + color: inherit !important; + opacity: 0.1 !important; + filter: alpha(opacity=10) !important; +} + +.sormas .v-tabsheet-tabsheetpanel > .v-scrollable > .v-widget { + -webkit-animation: valo-animate-in-fade 300ms backwards; + -moz-animation: valo-animate-in-fade 300ms backwards; + animation: valo-animate-in-fade 300ms backwards; +} + +.sormas .v-tabsheet-deco { + height: 16px !important; + width: 16px !important; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + border: 2px solid rgba(205, 216, 236, 0.2); + border-top-color: #CDD8EC; + border-right-color: #CDD8EC; + border-radius: 100%; + -webkit-animation: v-rotate-360 500ms infinite linear; + -moz-animation: v-rotate-360 500ms infinite linear; + animation: v-rotate-360 500ms infinite linear; + pointer-events: none; + display: none; + position: absolute; + z-index: 1; + bottom: 50%; + margin-bottom: -24px; + left: 50%; + margin-left: -8px; +} + +.v-ie8 .sormas .v-tabsheet-deco, .v-ie9 .sormas .v-tabsheet-deco { + border: none; + border-radius: 4px; + background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%; + background-size: 80%; +} + +.v-ie8 .sormas .v-tabsheet-deco { + min-width: 30px; + min-height: 30px; +} + +.sormas .v-tabsheet-loading .v-tabsheet-deco { + display: block; +} + +.sormas .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer table, .sormas .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer tbody, .sormas .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer tr { + width: 100%; +} + +.sormas .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer tr { + display: table; + table-layout: fixed; +} + +.sormas .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer td { + display: table-cell; +} + +.sormas .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer .v-caption { + margin: 0; + display: block; +} + +.sormas .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption { + margin-left: 3px; + padding: 0 18px; + background-color: #ffffff; + border: 2px solid transparent; + line-height: 30px; + border-radius: 4px 4px 0 0; + font-weight: 500; + -webkit-transition: background-color 160ms; + -moz-transition: background-color 160ms; + transition: background-color 160ms; +} + +.sormas .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption:hover { + background-color: #f7f7f7; + border-bottom-color: #CDD8EC; +} + +.sormas .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption.v-disabled:hover { + background-color: #ffffff; +} + +.sormas .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption-closable { + padding-right: 31px; +} + +.sormas .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-tabsheet-caption-close { + top: 3px; + right: 3px; + margin-top: 0; +} + +.sormas .v-tabsheet-framed > .v-tabsheet-tabcontainer td:first-child .v-caption, .sormas .v-tabsheet-framed > .v-tabsheet-tabcontainer [aria-hidden="true"] + td .v-caption { + margin-left: 0; +} + +.sormas .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-tabsheet-tabitem .v-caption { + border-color: #CDD8EC; +} + +.sormas .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-tabsheet-tabitem-selected .v-caption { + background: white; + border-color: #CDD8EC; + border-bottom: none; + padding-bottom: 2px; +} + +.sormas .v-tabsheet-framed > .v-tabsheet-content { + border: 2px solid #CDD8EC; + border-top: none; +} + +.sormas .v-tabsheet-framed > .v-tabsheet-content > div { + background: white; +} + +.sormas .v-tabsheet-framed.padded-tabbar > .v-tabsheet-tabcontainer { + border: 2px solid #CDD8EC; + border-bottom: none; + background: #ffffff; + padding-top: 5px; +} + +.sormas .v-tabsheet-framed.icons-on-top > .v-tabsheet-tabcontainer .v-tabsheet-tabitem-selected .v-caption { + padding-bottom: 7px; +} + +.sormas .v-tabsheet-centered-tabs > .v-tabsheet-tabcontainer { + text-align: center; +} + +.sormas .v-tabsheet-right-aligned-tabs > .v-tabsheet-tabcontainer { + text-align: right; +} + +.sormas .v-tabsheet-padded-tabbar > .v-tabsheet-tabcontainer .v-tabsheet-tabs { + padding: 0 8px; +} + +.sormas .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-caption { + padding-top: 5px; + padding-bottom: 5px; + line-height: 1.2; +} + +.sormas .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-icon { + display: block; +} + +.sormas .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-icon + .v-captiontext.v-captiontext { + margin-left: 0; +} + +.sormas .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-caption-closable { + padding-right: 18px; +} + +.sormas .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-tabsheet-caption-close { + top: 3px; + margin-top: 0; +} + +.sormas .v-tabsheet-compact-tabbar > .v-tabsheet-tabcontainer-compact-tabbar .v-caption { + line-height: 1.8; +} + +.sormas .v-tabsheet-only-selected-closable > .v-tabsheet-tabcontainer .v-tabsheet-caption-close { + visibility: hidden; +} + +.sormas .v-tabsheet-only-selected-closable > .v-tabsheet-tabcontainer .v-tabsheet-tabitem-selected .v-tabsheet-caption-close { + visibility: visible; +} + +.sormas .v-colorpicker-popup.v-window { + min-width: 220px !important; +} + +.sormas .v-colorpicker-popup .v-tabsheet-tabs { + padding: 0 8px; +} + +.sormas .v-colorpicker-popup [class$="sliders"] { + padding: 11px; +} + +.sormas .v-colorpicker-popup [class$="sliders"] .v-widget { + width: 100% !important; + vertical-align: middle; +} + +.sormas .v-colorpicker-popup [class$="sliders"] .v-has-caption { + white-space: nowrap; + padding-left: 36px; +} + +.sormas .v-colorpicker-popup [class$="sliders"] .v-caption { + display: inline-block; + margin-left: -36px; + width: 36px; +} + +.sormas .v-colorpicker-popup [class$="sliders"] .v-slot-hue-slider + .v-slot .v-has-caption { + padding-left: 60px; +} + +.sormas .v-colorpicker-popup [class$="sliders"] .v-slot-hue-slider + .v-slot .v-caption { + margin-left: -60px; + width: 60px; +} + +.sormas .v-colorpicker-popup .v-slider-red .v-slider-base:after { + background: red; + border: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-colorpicker-popup .v-slider-green .v-slider-base:after { + background: green; + border: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-colorpicker-popup .v-slider-blue .v-slider-base:after { + background: blue; + border: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-colorpicker-popup .v-margin-bottom { + padding-bottom: 0; +} + +.sormas .v-colorpicker-popup .resize-button { + width: 100% !important; + height: auto !important; + text-align: center; + outline: none; +} + +.sormas .v-colorpicker-popup .resize-button:before { + font-family: ThemeIcons; + content: "\f141"; +} + +.sormas .v-colorpicker-popup .resize-button-caption { + display: none; +} + +.sormas .v-colorpicker-popup .v-horizontallayout { + height: auto !important; + padding: 8px 0; + background-color: #ffffff; + border-top: 2px solid #f2f2f2; +} + +.sormas .v-colorpicker-popup .v-horizontallayout .v-expand { + overflow: visible; +} + +.sormas .v-colorpicker-popup .v-horizontallayout .v-button { + width: 80% !important; +} + +.sormas .v-colorpicker-preview { + width: 100% !important; + height: auto !important; + padding: 8px; +} + +.sormas .v-colorpicker-preview-textfield { + height: auto !important; + text-align: center; + border: none; +} + +.sormas .v-colorpicker { + width: auto; +} + +.sormas .v-colorpicker-button-color { + position: absolute; + top: 5px; + right: 5px; + bottom: 5px; + left: 5px; + border-radius: 3px; + border: 1px solid rgba(0, 0, 0, 0.5); + max-width: 19px; +} + +.sormas .v-colorpicker-button-color + .v-button-caption:not(:empty) { + margin-left: 16px; +} + +.v-ie8 .sormas .v-colorpicker-button-color { + position: relative; + top: auto; + right: auto; + bottom: auto; + left: auto; + width: 12px; + height: 12px; + display: inline-block; + vertical-align: middle; + margin: 0 -6px; +} + +.v-ie8 .sormas .v-colorpicker-button-color + .v-button-caption { + margin-left: 16px; +} + +.sormas .v-panel { + background: white; + color: #374B5A; + border-radius: 4px; + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + overflow: visible !important; +} + +.sormas .v-panel-caption { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0 11px; + line-height: 30px; + border-bottom: 2px solid #CDD8EC; + background-color: #ffffff; + background-image: -webkit-linear-gradient(top, #ffffff 0%, #ffffff 100%); + background-image: linear-gradient(to bottom,#ffffff 0%, #ffffff 100%); + color: #374B5A; + font-weight: 600; + font-size: 11px; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + border-radius: 2px 2px 0 0; +} + +.sormas .v-panel-content { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + height: 100%; +} + +.sormas .v-panel-content > .v-margin-top { + padding-top: 11px; +} + +.sormas .v-panel-content > .v-margin-right { + padding-right: 11px; +} + +.sormas .v-panel-content > .v-margin-bottom { + padding-bottom: 11px; +} + +.sormas .v-panel-content > .v-margin-left { + padding-left: 11px; +} + +.sormas .v-panel-borderless { + background: transparent; + color: inherit; + border: none; + border-radius: 0; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-panel-borderless > div > [class*="-caption"] { + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; + color: inherit; + padding: 0; + margin: 0 11px; + border-bottom: none; +} + +.sormas .v-panel-well { + background: #fafafa; + color: #374B5A; + -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); + border-radius: 4px; + border: 2px solid #CDD8EC; +} + +.sormas .v-panel-well > div > [class*="-caption"] { + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-panel-scroll-divider > [class*="-captionwrap"] { + position: relative; + z-index: 2; +} + +.sormas .v-panel-scroll-divider > [class*="-captionwrap"]:after { + content: ""; + position: absolute; + bottom: -2px; + right: 0; + left: 0; + height: 0; + border-top: 2px solid #CDD8EC; + border-color: rgba(205, 216, 236, 0.5); +} + +.sormas .v-panel-scroll-divider > [class*="-content"]:before { + content: ""; + position: absolute; + z-index: 2; + top: 0; + height: 0; + border-top: 2px solid #ffffff; + left: 0; + right: 0; +} + +.sormas .v-panel-caption.v-horizontallayout { + height: auto !important; + line-height: 0; +} + +.sormas .v-panel-caption.v-horizontallayout .v-slot { + vertical-align: middle; +} + +.sormas .v-panel-caption.v-horizontallayout .v-label { + line-height: 32px; +} + +.sormas .v-accordion { + background: white; + color: #374B5A; + border-radius: 4px; + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + background-color: #ffffff; + background-image: -webkit-linear-gradient(top, #ffffff 0%, #ffffff 100%); + background-image: linear-gradient(to bottom,#ffffff 0%, #ffffff 100%); + overflow: hidden; +} + +.sormas .v-accordion-item { + position: relative; +} + +.sormas .v-accordion-item:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; +} + +.sormas .v-accordion-item:last-child { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; +} + +.sormas .v-accordion-item:last-child [class*="item-content"] { + border-radius: inherit; +} + +.sormas .v-accordion-item[class*="item-open"]:last-child > div > .v-caption { + border-radius: 0; +} + +.sormas .v-accordion-item:not([class*="item-open"]):last-child > div > .v-caption { + border-bottom: none; + margin-bottom: 0; +} + +.sormas .v-accordion-item[class*="item-open"] + [class*="item"] { + border-top: 2px solid #CDD8EC; +} + +.sormas .v-accordion-item-caption { + border-radius: inherit; +} + +.sormas .v-accordion-item-caption > .v-caption { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0 11px; + line-height: 30px; + border-bottom: 2px solid #CDD8EC; + background-color: #ffffff; + background-image: -webkit-linear-gradient(top, #ffffff 0%, #ffffff 100%); + background-image: linear-gradient(to bottom,#ffffff 0%, #ffffff 100%); + color: #374B5A; + font-weight: 600; + font-size: 11px; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + display: block; + background: transparent; + border-bottom-color: #CDD8EC; + border-radius: inherit; + cursor: pointer; + position: relative; +} + +.sormas .v-accordion-item-caption > .v-caption:hover:before, .sormas .v-accordion-item-caption > .v-caption:active:before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: inherit; +} + +.sormas .v-accordion-item-caption > .v-caption:hover:before { + background-color: rgba(191, 191, 191, 0.1); + border: none; +} + +.sormas .v-accordion-item-caption > .v-caption:active:before { + background-color: rgba(128, 128, 128, 0.2); +} + +.sormas .v-accordion-item-content { + -webkit-box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.05); + background-color: white; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.sormas .v-accordion-item-content > .v-margin-top { + padding-top: 11px; +} + +.sormas .v-accordion-item-content > .v-margin-right { + padding-right: 11px; +} + +.sormas .v-accordion-item-content > .v-margin-bottom { + padding-bottom: 11px; +} + +.sormas .v-accordion-item-content > .v-margin-left { + padding-left: 11px; +} + +.sormas .v-accordion-borderless { + border: none; + border-radius: 0; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-accordion-borderless > .v-accordion-item, .sormas .v-accordion-borderless > .v-accordion-item > div > .v-caption, .sormas .v-accordion-borderless > .v-accordion-item > .v-accordion-item-content { + border-radius: 0; +} + +.sormas .v-select-twincol { + white-space: normal; +} + +.sormas .v-select-twincol select { + border: 2px solid #CDD8EC; + background: #ffffff; + color: #374B5A; +} + +.sormas .v-select-twincol select:focus { + outline: none; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-select-twincol .v-textfield, .sormas .v-select-twincol .v-nativebutton { + width: auto !important; + margin-top: 8px; +} + +.sormas .v-select-twincol .v-nativebutton { + margin-left: 8px; +} + +.sormas .v-select-twincol-caption-left, .sormas .v-select-twincol-caption-right { + font-size: 11px; + font-weight: 600; + padding-bottom: 0.3em; + padding-left: 1px; +} + +.sormas .v-select-twincol-buttons { + white-space: nowrap; + display: inline-block; + vertical-align: top; + position: relative; + min-width: 3.5em; +} + +.sormas .v-select-twincol-buttons .v-button { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + display: inline-block; + vertical-align: top; + text-align: left; + white-space: normal; + position: absolute; + left: 8px; + right: 8px; + top: 30px; + padding: 0; + text-align: center; +} + +.sormas .v-select-twincol-buttons .v-button:first-child { + top: 0; +} + +.sormas .v-select-twincol-buttons .v-button-caption { + display: none; +} + +.sormas .v-select-twincol-buttons .v-button:focus { + z-index: 1; +} + +.sormas .v-select-twincol-buttons .v-button:first-child { + border-radius: 4px 4px 0 0; +} + +.sormas .v-select-twincol-buttons .v-button:last-child { + border-radius: 0 0 4px 4px; +} + +.sormas .v-select-twincol-buttons .v-button-wrap:before { + font-family: ThemeIcons; + content: "\f053"; +} + +.sormas .v-select-twincol-buttons .v-button:first-child .v-button-wrap:before { + font-family: ThemeIcons; + content: "\f054"; +} + +.sormas .v-select-twincol-error .v-select-twincol-options, .sormas .v-select-twincol-error .v-select-twincol-selections { + border-color: #eb2977 !important; + background: #fffbfc; + color: #374B5A; +} + +.sormas .v-select select { + border: 2px solid #CDD8EC; + background: #ffffff; + color: #374B5A; +} + +.sormas .v-select select:focus { + outline: none; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-select-select { + display: block; +} + +.sormas .v-select-select + .v-textfield { + width: auto !important; + margin-top: 8px; +} + +.sormas .v-select-select + .v-textfield + .v-nativebutton { + margin-top: 8px; + margin-left: 8px; +} + +.sormas .v-select-error .v-select-select { + border-color: #eb2977 !important; + background: #fffbfc; + color: #374B5A; +} + +.sormas .v-calendar-header-day { + font-weight: 500; + text-align: center; + padding: 6px 0; +} + +.sormas .v-calendar-header-week .v-calendar-back, .sormas .v-calendar-header-week .v-calendar-next { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + background: transparent; + border: none; + padding: 0; + margin: 0; + cursor: pointer; + outline: none; + color: inherit; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-calendar-header-week .v-calendar-back:focus, .sormas .v-calendar-header-week .v-calendar-next:focus { + outline: none; +} + +.sormas .v-calendar-header-week .v-calendar-back:hover, .sormas .v-calendar-header-week .v-calendar-next:hover { + opacity: 1; + filter: none ; +} + +.sormas .v-calendar-header-week .v-calendar-back:active, .sormas .v-calendar-header-week .v-calendar-next:active { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-calendar-header-week .v-calendar-back:before { + font-family: ThemeIcons; + content: "\f053"; +} + +.sormas .v-calendar-header-week .v-calendar-next:before { + font-family: ThemeIcons; + content: "\f054"; +} + +.sormas .v-calendar-month { + outline: none; + overflow: hidden; +} + +.sormas .v-calendar-month td { + vertical-align: top; +} + +.sormas .v-calendar-week-number { + cursor: pointer; + width: 20px; + text-align: center; + font-size: 0.8em; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-calendar-week-number:hover { + opacity: 1; + filter: none ; +} + +.sormas .v-calendar-month-day { + outline: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + line-height: 1.2; +} + +.sormas .v-calendar-bottom-spacer, .sormas .v-calendar-spacer, .sormas .v-calendar-bottom-spacer-empty { + height: 14px; + margin-bottom: 3px; +} + +.sormas .v-calendar-bottom-spacer { + font-size: 0.8em; + padding: 0 4px; + cursor: pointer; +} + +.sormas .v-calendar-bottom-spacer:hover { + color: #CDD8EC; +} + +.sormas .v-calendar-day-number { + line-height: 21px; + font-size: 12px; + text-align: right; + margin: 0 4px; + white-space: nowrap; + border-top: 1px solid #f7f7f7; + cursor: pointer; +} + +.sormas .v-calendar-day-number:hover { + color: #CDD8EC; +} + +.sormas .v-calendar-month-day-today { + background: #fcfdfe; +} + +.sormas .v-calendar-month-day-today .v-calendar-day-number { + font-weight: 500; + color: #CDD8EC; + border-top: 2px solid #CDD8EC; + line-height: 20px; + margin: 0; + padding: 0 4px; +} + +.sormas .v-calendar-month-day-selected { + background-color: #fafbfd; +} + +.sormas .v-calendar-month-day-dragemphasis { + background-color: #a8a8a8; +} + +.sormas .v-calendar-month-day-scrollable { + overflow-y: scroll; +} + +.sormas .v-calendar-weekly-longevents { + margin-left: 50px; + border-bottom: 3px solid #e6e6e6; +} + +.sormas .v-calendar-weekly-longevents .v-calendar-event-all-day { + height: 16px; + line-height: 1.6; + margin-bottom: 3px; +} + +.sormas .v-calendar-header-week td { + vertical-align: middle !important; +} + +.sormas .v-calendar-header-week .v-calendar-header-day { + cursor: pointer; +} + +.sormas .v-calendar-times { + width: 50px; + font-size: 0.77em; + line-height: 1; + white-space: nowrap; +} + +.sormas .v-calendar-time { + text-align: right; + padding-right: 8px; + margin-top: -5px; + padding-bottom: 5px; +} + +.sormas .v-calendar-day-times, .sormas .v-calendar-day-times-today { + outline: none; + border-right: 1px solid transparent; +} + +.sormas .v-calendar-day-times:focus, .sormas .v-calendar-day-times-today:focus { + outline: none; +} + +.sormas .v-calendar .v-datecellslot, .sormas .v-calendar .v-datecellslot-even { + border-top: 1px solid #CDD8EC; +} + +.sormas .v-calendar .v-datecellslot:first-child, .sormas .v-calendar .v-datecellslot-even:first-child { + border-top-color: transparent; +} + +.sormas .v-calendar .v-datecellslot { + border-top-style: dotted; +} + +.sormas .v-calendar .v-datecellslot, .sormas .v-calendar .v-datecellslot-even { + margin-right: 4px; +} + +.sormas .v-calendar-current-time { + background: #CDD8EC; + line-height: 1px; + pointer-events: none; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-calendar-current-time:before { + content: "\2022"; + color: #CDD8EC; + font-size: 22px; + margin-left: -0.07em; +} + +.sormas .v-calendar .v-daterange { + position: relative; +} + +.sormas .v-calendar .v-daterange:before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: -1px; + left: 0; + background: #CDD8EC; + opacity: 0.5; + filter: alpha(opacity=50) ; + border-radius: 4px 4px 0 0; +} + +.sormas .v-calendar .v-daterange + .v-daterange { + border-color: transparent; +} + +.sormas .v-calendar .v-daterange + .v-daterange:before { + border-radius: 0; +} + +.sormas .v-calendar-event { + font-size: 0.85em; + overflow: hidden; + cursor: pointer; + outline: none; + border-radius: 4px; +} + +.sormas .v-calendar-event:focus { + outline: none; +} + +.sormas .v-calendar-event-month { + padding: 0 4px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + margin-bottom: 3px; + white-space: nowrap; + text-overflow: ellipsis; + height: 14px; + line-height: 14px; +} + +.sormas .v-calendar-event-month .v-calendar-event-time { + float: right; + font-size: 0.9em; + line-height: 14px; + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-calendar-event-month:before { + content: "\25cf"; + margin-right: 0.2em; +} + +.sormas .v-calendar-event-all-day { + padding: 0 4px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + height: 14px; + line-height: 14px; + border-radius: 0; + margin-left: -1px; + white-space: nowrap; +} + +.sormas .v-calendar-event-all-day:before { + content: ""; +} + +.sormas .v-calendar-event-start { + overflow: visible; + margin-left: 0; +} + +.sormas .v-calendar-event-start.v-calendar-event-continued-to, .sormas .v-calendar-event-start.v-calendar-event-end { + overflow: hidden; + text-overflow: ellipsis; +} + +.sormas .v-calendar-event-start { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + margin-left: 4px; +} + +.sormas .v-calendar-event-end { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + margin-right: 4px; +} + +.sormas .v-calendar-event-caption { + font-weight: 600; + line-height: 1.2; + padding: 4px 0; + position: absolute; + overflow: hidden; + right: 8px; + left: 4px; + bottom: 0; + top: 0; +} + +.sormas .v-calendar-event-caption span { + font-weight: 400; + white-space: nowrap; +} + +.sormas .v-calendar-week-wrapper .v-calendar-event { + overflow: visible; +} + +.sormas .v-calendar-week-wrapper .v-calendar-event-content { + margin-top: -1px; + border-radius: 5px; + border: 1px solid #ffffff; + padding-top: 3px; + margin-right: 4px; +} + +.sormas .v-calendar-event-month:before { + color: #00ace0; +} + +.sormas .v-calendar-event-all-day { + background-color: #cceef8; + background-color: rgba(204, 238, 248, 0.8); + color: #00ace0; +} + +.sormas .v-calendar-week-wrapper .v-calendar-event { + color: #00ace0; +} + +.sormas .v-calendar-week-wrapper .v-calendar-event .v-calendar-event-content { + background-color: #cceef8; + background-color: rgba(204, 238, 248, 0.8); +} + +.sormas .v-calendar-event-month[class*="color2"]:before { + color: #2d9f19; +} + +.sormas .v-calendar-event-all-day[class*="color2"] { + background-color: #d5ebd1; + background-color: rgba(213, 235, 209, 0.8); + color: #2d9f19; +} + +.sormas .v-calendar-week-wrapper .v-calendar-event[class*="color2"] { + color: #2d9f19; +} + +.sormas .v-calendar-week-wrapper .v-calendar-event[class*="color2"] .v-calendar-event-content { + background-color: #d5ebd1; + background-color: rgba(213, 235, 209, 0.8); +} + +.sormas .v-calendar-event-month[class*="color3"]:before { + color: #d18100; +} + +.sormas .v-calendar-event-all-day[class*="color3"] { + background-color: #f5e5cc; + background-color: rgba(245, 229, 204, 0.8); + color: #d18100; +} + +.sormas .v-calendar-week-wrapper .v-calendar-event[class*="color3"] { + color: #d18100; +} + +.sormas .v-calendar-week-wrapper .v-calendar-event[class*="color3"] .v-calendar-event-content { + background-color: #f5e5cc; + background-color: rgba(245, 229, 204, 0.8); +} + +.sormas .v-calendar-event-month[class*="color4"]:before { + color: #ce3812; +} + +.sormas .v-calendar-event-all-day[class*="color4"] { + background-color: #f5d7cf; + background-color: rgba(245, 215, 207, 0.8); + color: #ce3812; +} + +.sormas .v-calendar-week-wrapper .v-calendar-event[class*="color4"] { + color: #ce3812; +} + +.sormas .v-calendar-week-wrapper .v-calendar-event[class*="color4"] .v-calendar-event-content { + background-color: #f5d7cf; + background-color: rgba(245, 215, 207, 0.8); +} + +.sormas .v-calendar-event-month[class*="color5"]:before { + color: #2d55cd; +} + +.sormas .v-calendar-event-all-day[class*="color5"] { + background-color: #d5ddf5; + background-color: rgba(213, 221, 245, 0.8); + color: #2d55cd; +} + +.sormas .v-calendar-week-wrapper .v-calendar-event[class*="color5"] { + color: #2d55cd; +} + +.sormas .v-calendar-week-wrapper .v-calendar-event[class*="color5"] .v-calendar-event-content { + background-color: #d5ddf5; + background-color: rgba(213, 221, 245, 0.8); +} + +.sormas .v-calendar.v-disabled * { + cursor: default; +} + +.sormas .v-label { + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; +} + +.sormas .v-label.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-label-undef-w { + white-space: nowrap; +} + +.sormas h1, .sormas .v-label-h1, .sormas h2, .sormas .v-label-h2, .sormas h3, .sormas .v-label-h3 { + line-height: 1.1; + font-weight: 400; + color: #374B5A; +} + +.sormas h1, .sormas .v-label-h1 { + font-size: 2.4em; + margin-top: 1.4em; + margin-bottom: 1em; + + letter-spacing: -0.03em; +} + +.sormas h2, .sormas .v-label-h2 { + font-size: 1.6em; + + margin-top: 1.6em; + margin-bottom: 0.77em; + letter-spacing: -0.02em; +} + +.sormas h3, .sormas .v-label-h3 { + font-size: 16px; + + margin-top: 1.8em; + margin-bottom: 0.77em; + letter-spacing: 0; +} + +.sormas h4, .sormas .v-label-h4 { + line-height: 1.1; + font-weight: 600; + font-size: 11px; + color: #374B5A; + text-transform: uppercase; + letter-spacing: 0; + margin-top: 2.4em; + margin-bottom: 0.8em; +} + +.sormas .v-csslayout > h1:first-child, .sormas .v-csslayout > h2:first-child, .sormas .v-csslayout > h3:first-child, .sormas .v-csslayout > h4 > .v-label-h1:first-child, .sormas .v-csslayout > .v-label-h2:first-child, .sormas .v-csslayout > .v-label-h3:first-child, .sormas .v-csslayout > .v-label-h4:first-child { + margin-top: 12px; +} + +.sormas .v-verticallayout > .v-slot:first-child h1, .sormas .v-verticallayout > .v-slot:first-child .v-label-h1, .sormas .v-verticallayout > .v-slot:first-child h2, .sormas .v-verticallayout > .v-slot:first-child .v-label-h2, .sormas .v-verticallayout > .v-slot:first-child h3, .sormas .v-verticallayout > .v-slot:first-child .v-label-h3, .sormas .v-verticallayout > .v-slot:first-child h4, .sormas .v-verticallayout > .v-slot:first-child .v-label-h4, .sormas .v-verticallayout > div > .v-slot:first-child h1, .sormas .v-verticallayout > div > .v-slot:first-child .v-label-h1, .sormas .v-verticallayout > div > .v-slot:first-child h2, .sormas .v-verticallayout > div > .v-slot:first-child .v-label-h2, .sormas .v-verticallayout > div > .v-slot:first-child h3, .sormas .v-verticallayout > div > .v-slot:first-child .v-label-h3, .sormas .v-verticallayout > div > .v-slot:first-child h4, .sormas .v-verticallayout > div > .v-slot:first-child .v-label-h4 { + margin-top: 12px; +} + +.sormas .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h1, .sormas .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h1, .sormas .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h2, .sormas .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h2, .sormas .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h3, .sormas .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h3, .sormas .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h4, .sormas .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h4, .sormas .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h1, .sormas .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h1, .sormas .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h2, .sormas .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h2, .sormas .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h3, .sormas .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h3, .sormas .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h4, .sormas .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h4 { + margin-top: -0.5em; +} + +.sormas h1.no-margin, .sormas .v-label-h1.no-margin, .sormas h2.no-margin, .sormas .v-label-h2.no-margin, .sormas h3.no-margin, .sormas .v-label-h3.no-margin, .sormas h4.no-margin, .sormas .v-label-h4.no-margin { + margin: 0 !important; +} + +.sormas .v-label-colored { + color: #CDD8EC; +} + +.sormas .v-label-large { + font-size: 15px; +} + +.sormas .v-label-small { + font-size: 11px; +} + +.sormas .v-label-tiny { + font-size: 9px; +} + +.sormas .v-label-huge { + font-size: 20px; +} + +.sormas .v-label-bold { + font-weight: 600; +} + +.sormas .v-label-light { + font-weight: 300; +} + +.sormas .v-label-align-right { + text-align: right; +} + +.sormas .v-label-align-center { + text-align: center; +} + +.sormas .v-label-spinner { + height: 24px !important; + width: 24px !important; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + border: 2px solid rgba(205, 216, 236, 0.2); + border-top-color: #CDD8EC; + border-right-color: #CDD8EC; + border-radius: 100%; + -webkit-animation: v-rotate-360 500ms infinite linear; + -moz-animation: v-rotate-360 500ms infinite linear; + animation: v-rotate-360 500ms infinite linear; + pointer-events: none; +} + +.v-ie8 .sormas .v-label-spinner, .v-ie9 .sormas .v-label-spinner { + border: none; + border-radius: 4px; + background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%; + background-size: 80%; +} + +.v-ie8 .sormas .v-label-spinner { + min-width: 30px; + min-height: 30px; +} + +.sormas .v-label-success, .sormas .v-label-failure { + background: white; + color: #374B5A; + border: 2px solid #36b955; + border-radius: 4px; + padding: 6px 16px 6px 32px; + font-weight: 500; + font-size: 11px; +} + +.sormas .v-label-success:before, .sormas .v-label-failure:before { + font-family: ThemeIcons; + content: "\f00c"; + margin-right: 0.5em; + margin-left: -16px; + color: #36b955; +} + +.sormas .v-label-failure { + border-color: #eb2977; +} + +.sormas .v-label-failure:before { + content: "\f05e"; + color: #eb2977; +} + +.sormas [draggable=true] { + -khtml-user-drag: element; + -webkit-user-drag: element; +} + +.sormas .v-ddwrapper { + position: relative; +} + +.sormas .v-ddwrapper-over:before, .sormas .v-ddwrapper-over:after { + content: ""; + position: absolute; + z-index: 10; + top: -1px; + right: -1px; + bottom: -1px; + left: -1px; + border: 0 solid #CDD8EC; +} + +.sormas .v-ddwrapper-over-top:before { + border-top-width: 2px; +} + +.sormas .v-ddwrapper-over-right:before { + border-right-width: 2px; +} + +.sormas .v-ddwrapper-over-bottom:before { + border-bottom-width: 2px; +} + +.sormas .v-ddwrapper-over-left:before { + border-left-width: 2px; +} + +.sormas .no-vertical-drag-hints .v-ddwrapper-over-top:before, .sormas .no-vertical-drag-hints.v-ddwrapper-over-top:before { + border-top-width: 0; +} + +.sormas .no-vertical-drag-hints .v-ddwrapper-over-top:after, .sormas .no-vertical-drag-hints.v-ddwrapper-over-top:after { + border-width: 2px; + border-radius: 4px; + opacity: 0.3; + filter: alpha(opacity=30.0) ; + background: #3d60a0; +} + +.sormas .no-vertical-drag-hints .v-ddwrapper-over-bottom:before, .sormas .no-vertical-drag-hints.v-ddwrapper-over-bottom:before { + border-bottom-width: 0; +} + +.sormas .no-vertical-drag-hints .v-ddwrapper-over-bottom:after, .sormas .no-vertical-drag-hints.v-ddwrapper-over-bottom:after { + border-width: 2px; + border-radius: 4px; + opacity: 0.3; + filter: alpha(opacity=30.0) ; + background: #3d60a0; +} + +.sormas .no-horizontal-drag-hints.v-ddwrapper-over-left:before, .sormas .no-horizontal-drag-hints .v-ddwrapper-over-left:before { + border-left-width: 0; +} + +.sormas .no-horizontal-drag-hints.v-ddwrapper-over-left:after, .sormas .no-horizontal-drag-hints .v-ddwrapper-over-left:after { + border-width: 2px; + border-radius: 4px; + opacity: 0.3; + filter: alpha(opacity=30.0) ; + background: #3d60a0; +} + +.sormas .no-horizontal-drag-hints.v-ddwrapper-over-right:before, .sormas .no-horizontal-drag-hints .v-ddwrapper-over-right:before { + border-right-width: 0; +} + +.sormas .no-horizontal-drag-hints.v-ddwrapper-over-right:after, .sormas .no-horizontal-drag-hints .v-ddwrapper-over-right:after { + border-width: 2px; + border-radius: 4px; + opacity: 0.3; + filter: alpha(opacity=30.0) ; + background: #3d60a0; +} + +.sormas .v-ddwrapper-over-middle:after, .sormas .v-ddwrapper-over-center:after { + border-width: 2px; + border-radius: 4px; + opacity: 0.3; + filter: alpha(opacity=30.0) ; + background: #3d60a0; +} + +.sormas .no-box-drag-hints.v-ddwrapper:after, .sormas .no-box-drag-hints .v-ddwrapper:after { + display: none !important; + content: none; +} + +.sormas .v-nativebutton { + -webkit-touch-callout: none; +} + +.sormas .v-select select { + border: 2px solid #CDD8EC; + background: #ffffff; + color: #374B5A; +} + +.sormas .v-select select:focus { + outline: none; + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); +} + +.sormas .v-select-select { + display: block; +} + +.sormas .v-select-select + .v-textfield { + width: auto !important; + margin-top: 8px; +} + +.sormas .v-select-select + .v-textfield + .v-nativebutton { + margin-top: 8px; + margin-left: 8px; +} + +.sormas .v-select-error .v-select-select { + border-color: #eb2977 !important; + background: #fffbfc; + color: #374B5A; +} + +.sormas .v-popupview { + cursor: pointer; + color: #1565A2; + text-decoration: underline; + font-weight: inherit; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; +} + +.sormas .v-popupview:hover { + color: #1b81cf; +} + +.sormas .v-popupview.v-disabled { + opacity: 0.5; + filter: alpha(opacity=50) ; +} + +.sormas .v-popupview-popup { + padding: 4px 4px; + border-radius: 4px; + background-color: white; + color: #374B5A; + -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; +} + +.sormas .v-popupview-popup[class*="animate-in"] { + -webkit-animation: v-popupview-animate-in 120ms; + -moz-animation: v-popupview-animate-in 120ms; + animation: v-popupview-animate-in 120ms; +} + +.sormas .v-popupview-popup[class*="animate-out"] { + -webkit-animation: valo-animate-out-fade 120ms; + -moz-animation: valo-animate-out-fade 120ms; + animation: valo-animate-out-fade 120ms; +} + +.sormas .v-popupview-popup .popupContent > .v-margin-top { + padding-top: 11px; +} + +.sormas .v-popupview-popup .popupContent > .v-margin-right { + padding-right: 11px; +} + +.sormas .v-popupview-popup .popupContent > .v-margin-bottom { + padding-bottom: 11px; +} + +.sormas .v-popupview-popup .popupContent > .v-margin-left { + padding-left: 11px; +} + +.sormas .v-popupview-loading { + margin: 18px 18px; + height: 24px !important; + width: 24px !important; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + border: 2px solid rgba(205, 216, 236, 0.2); + border-top-color: #CDD8EC; + border-right-color: #CDD8EC; + border-radius: 100%; + -webkit-animation: v-rotate-360 500ms infinite linear; + -moz-animation: v-rotate-360 500ms infinite linear; + animation: v-rotate-360 500ms infinite linear; + pointer-events: none; +} + +.v-ie8 .sormas .v-popupview-loading, .v-ie9 .sormas .v-popupview-loading { + border: none; + border-radius: 4px; + background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%; + background-size: 80%; +} + +.v-ie8 .sormas .v-popupview-loading { + min-width: 30px; + min-height: 30px; +} + +.sormas .v-richtextarea { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; + appearance: none; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + margin: 0; + font: inherit; + + font-weight: 400; + line-height: normal; + height: 32px; + border-radius: 4px; + padding: 0; + border: 2px solid #CDD8EC; + background: white; + color: #374B5A; + -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-transition: box-shadow 180ms, border 180ms; + -moz-transition: box-shadow 180ms, border 180ms; + transition: box-shadow 180ms, border 180ms; + height: auto; + overflow: hidden; +} + +.v-ie8 .sormas .v-richtextarea, .v-ie9 .sormas .v-richtextarea { + line-height: 32px; + padding-top: 0; + padding-bottom: 0; +} + +.sormas .v-richtextarea[class*="prompt"] { + color: #93a6b4; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar { + background: #ffffff; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + border-bottom: 2px solid #CDD8EC; + color: #374B5A; +} + +.sormas .v-richtextarea .gwt-ToggleButton, .sormas .v-richtextarea .gwt-PushButton { + display: inline-block; + line-height: 32px; + width: 32px; + text-align: center; + outline: none; +} + +.sormas .v-richtextarea .gwt-ToggleButton:hover, .sormas .v-richtextarea .gwt-PushButton:hover { + color: #374B5A; +} + +.sormas .v-richtextarea .gwt-ToggleButton-down, .sormas .v-richtextarea .gwt-ToggleButton-down-hovering { + background-color: #e6e6e6; + background-image: -webkit-linear-gradient(bottom, #e6e6e6 0%, #e6e6e6 100%); + background-image: linear-gradient(to top,#e6e6e6 0%, #e6e6e6 100%); +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top img { + display: none; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div:before { + font-family: ThemeIcons; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Bold"]:before { + content: "\f032"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Italic"]:before { + content: "\f033"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Underline"]:before { + content: "\f0cd"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Subscript"]:before { + content: "\f12c"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Superscript"]:before { + content: "\f12b"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Left Justify"]:before { + content: "\f036"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Center"]:before { + content: "\f037"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Right Justify"]:before { + content: "\f038"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Strikethrough"]:before { + content: "\f0cc"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Indent Right"]:before { + content: "\f03c"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Indent Left"]:before { + content: "\f03b"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Horizontal Rule"]:before { + content: "\2014"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Ordered List"]:before { + content: "\f0cb"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Unordered List"]:before { + content: "\f0ca"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Image"]:before { + content: "\f03e"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Create Link"]:before { + content: "\f0c1"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Remove Link"]:before { + content: "\f127"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-top div[title="Remove Formatting"]:before { + content: "\f12d"; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-bottom { + font-size: 10px; + padding: 0 8px 8px 0; +} + +.sormas .v-richtextarea .gwt-RichTextToolbar-bottom select { + margin: 8px 0 0 8px; +} + +.sormas .v-richtextarea .gwt-RichTextArea { + background: #fff; + border: none; + display: block; +} + +.sormas .v-richtextarea-readonly { + padding: 4px 6px; + background: transparent; +} + +.sormas .v-upload .v-button { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + display: inline-block; + vertical-align: top; + text-align: left; + white-space: normal; +} + +.sormas .v-upload-immediate .v-button { + width: 100%; +} + +.sormas .v-upload-immediate input[type="file"] { + opacity: 0; + filter: alpha(opacity=0) ; + z-index: -1; + position: absolute; + right: 0; + height: 32px; + text-align: right; + border: none; + background: transparent; +} + +.sormas .v-Notification.v-position-top { + top: 18px; +} + +.sormas .v-Notification.v-position-right { + right: 18px; +} + +.sormas .v-Notification.v-position-bottom { + bottom: 18px; +} + +.sormas .v-Notification.v-position-left { + left: 18px; +} + +.sormas .v-Notification.v-position-assistive { + top: -9999px; + left: -9999px; +} + +.sormas .v-Notification-animate-in { + -webkit-animation: valo-animate-in-fade 180ms 10ms backwards; + -moz-animation: valo-animate-in-fade 180ms 10ms backwards; + animation: valo-animate-in-fade 180ms 10ms backwards; +} + +.sormas .v-Notification-animate-in.v-position-top { + -webkit-animation: valo-animate-in-slide-down 400ms 10ms backwards; + -moz-animation: valo-animate-in-slide-down 400ms 10ms backwards; + animation: valo-animate-in-slide-down 400ms 10ms backwards; +} + +.sormas .v-Notification-animate-in.v-position-bottom { + -webkit-animation: valo-animate-in-slide-up 400ms 10ms backwards; + -moz-animation: valo-animate-in-slide-up 400ms 10ms backwards; + animation: valo-animate-in-slide-up 400ms 10ms backwards; +} + +.sormas .v-Notification-animate-out { + -webkit-animation: valo-animate-out-fade 150ms; + -moz-animation: valo-animate-out-fade 150ms; + animation: valo-animate-out-fade 150ms; +} + +.sormas .v-Notification-animate-out.v-position-top, .sormas .v-Notification-animate-out.v-position-bottom { + -webkit-animation: valo-animate-out-slide-down-fade 200ms; + -moz-animation: valo-animate-out-slide-down-fade 200ms; + animation: valo-animate-out-slide-down-fade 200ms; +} + +.sormas .v-Notification { + border-radius: 4px; + text-align: center; + position: fixed !important; + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + backface-visibility: hidden; + background: white; + -webkit-box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.15); + box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.15); + padding: 16px 19px; +} + +.sormas .v-Notification .v-Notification-caption { + color: #CDD8EC; + font-size: 14px; + line-height: 1; +} + +.sormas .v-Notification .v-Notification-description { + line-height: 1.4; +} + +.sormas .v-Notification-caption { + margin: 0; + display: inline-block; + text-align: left; + font-weight: inherit; + line-height: inherit; + white-space: nowrap; + letter-spacing: 0; +} + +.sormas .v-Notification-description, .sormas .v-Notification-details { + margin: 0; + display: inline-block; + vertical-align: middle; + max-width: 30em; + text-align: left; + max-height: 20em; + overflow: auto; +} + +.sormas .v-Notification-caption ~ .v-Notification-description, .sormas .v-Notification-caption ~ .v-Notification-details { + margin-left: 18px; +} + +.sormas .v-icon + .v-Notification-caption { + margin-left: 12px; +} + +.sormas .v-Notification-system { + left: 0 !important; + right: 0; + max-width: 100%; + margin: 0 !important; + border-radius: 0; + -webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); + padding: 11px 13px; + background-color: #444; + background-color: rgba(68, 68, 68, 0.9); + font-weight: 500; + line-height: 17px; +} + +.sormas .v-Notification-system .v-Notification-description, .sormas .v-Notification-system .v-Notification-details { + max-width: 50em; +} + +.sormas .v-Notification-system.v-position-top { + top: 0; +} + +.sormas .v-Notification-system.v-position-top[class*="animate-in"] { + -webkit-animation: valo-animate-in-slide-down 300ms 10ms backwards; + -moz-animation: valo-animate-in-slide-down 300ms 10ms backwards; + animation: valo-animate-in-slide-down 300ms 10ms backwards; +} + +.sormas .v-Notification-system.v-position-top[class*="animate-out"] { + -webkit-animation: valo-animate-out-slide-up 200ms; + -moz-animation: valo-animate-out-slide-up 200ms; + animation: valo-animate-out-slide-up 200ms; +} + +.sormas .v-Notification-system.v-position-bottom { + bottom: 0; +} + +.sormas .v-Notification-system.v-position-bottom[class*="animate-in"] { + -webkit-animation: valo-animate-in-slide-up 300ms 10ms backwards; + -moz-animation: valo-animate-in-slide-up 300ms 10ms backwards; + animation: valo-animate-in-slide-up 300ms 10ms backwards; +} + +.sormas .v-Notification-system.v-position-bottom[class*="animate-out"] { + -webkit-animation: valo-animate-out-slide-down 200ms; + -moz-animation: valo-animate-out-slide-down 200ms; + animation: valo-animate-out-slide-down 200ms; +} + +.sormas .v-Notification-system .v-Notification-caption { + color: #fff; + vertical-align: middle; +} + +.sormas .v-Notification-system .v-Notification-description, .sormas .v-Notification-system .v-Notification-details { + color: #e6e6e6; +} + +.sormas .v-Notification-system u { + text-decoration: none; +} + +.sormas .v-Notification.tray { + text-align: left; +} + +.sormas .v-Notification.tray .v-Notification-caption + .v-Notification-description { + display: block; + margin: 0.5em 0 0; +} + +.sormas .v-Notification.warning { + background: #FFF3D2; +} + +.sormas .v-Notification.warning .v-Notification-caption { + color: #AC7C00; +} + +.sormas .v-Notification.warning .v-Notification-description { + color: #9D874D; +} + +.sormas .v-Notification.error { + background: #eb2977; + font-weight: 500; + -webkit-box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.25); + box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.25); +} + +.sormas .v-Notification.error .v-Notification-caption { + color: #374B5A; +} + +.sormas .v-Notification.error .v-Notification-description { + color: #374B5A; +} + +.sormas .v-Notification.dark { + background-color: #444; + background-color: rgba(68, 68, 68, 0.9); + font-weight: 500; + line-height: 17px; +} + +.sormas .v-Notification.dark .v-Notification-caption { + color: #fff; + vertical-align: middle; +} + +.sormas .v-Notification.dark .v-Notification-description, .sormas .v-Notification.dark .v-Notification-details { + color: #e6e6e6; +} + +.sormas .v-Notification.bar { + left: 0 !important; + right: 0; + max-width: 100%; + margin: 0 !important; + border-radius: 0; + -webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); + padding: 11px 13px; +} + +.sormas .v-Notification.bar .v-Notification-description, .sormas .v-Notification.bar .v-Notification-details { + max-width: 50em; +} + +.sormas .v-Notification.bar.v-position-top { + top: 0; +} + +.sormas .v-Notification.bar.v-position-top[class*="animate-in"] { + -webkit-animation: valo-animate-in-slide-down 300ms 10ms backwards; + -moz-animation: valo-animate-in-slide-down 300ms 10ms backwards; + animation: valo-animate-in-slide-down 300ms 10ms backwards; +} + +.sormas .v-Notification.bar.v-position-top[class*="animate-out"] { + -webkit-animation: valo-animate-out-slide-up 200ms; + -moz-animation: valo-animate-out-slide-up 200ms; + animation: valo-animate-out-slide-up 200ms; +} + +.sormas .v-Notification.bar.v-position-bottom { + bottom: 0; +} + +.sormas .v-Notification.bar.v-position-bottom[class*="animate-in"] { + -webkit-animation: valo-animate-in-slide-up 300ms 10ms backwards; + -moz-animation: valo-animate-in-slide-up 300ms 10ms backwards; + animation: valo-animate-in-slide-up 300ms 10ms backwards; +} + +.sormas .v-Notification.bar.v-position-bottom[class*="animate-out"] { + -webkit-animation: valo-animate-out-slide-down 200ms; + -moz-animation: valo-animate-out-slide-down 200ms; + animation: valo-animate-out-slide-down 200ms; +} + +.sormas .v-Notification.small { + padding: 10px 11px; +} + +.sormas .v-Notification.small .v-Notification-caption { + font-size: 12px; +} + +.sormas .v-Notification.small .v-Notification-description { + font-size: 10px; +} + +.sormas .v-Notification.closable { + padding-right: 51px; + overflow: hidden !important; + cursor: pointer; +} + +.sormas .v-Notification.closable:after { + content: "\00d7"; + font-size: 1.5em; + position: absolute; + top: 50%; + margin-top: -11px; + right: 11px; + width: 21px; + height: 21px; + line-height: 20px; + cursor: pointer; + color: #000; + opacity: 0.5; + filter: alpha(opacity=50) ; + text-align: center; + border: 2px solid #000; + border-color: rgba(0, 0, 0, 0.3); + border-radius: 50%; + -webkit-transition: opacity 200ms; + -moz-transition: opacity 200ms; + transition: opacity 200ms; +} + +.sormas .v-Notification.closable:hover:after { + opacity: 1; + filter: none ; +} + +.sormas .v-Notification.closable:active:after { + background-color: #000; + color: #fff; + opacity: 0.3; + filter: alpha(opacity=30.0) ; + -webkit-transition: none 200ms; + -moz-transition: none 200ms; + transition: none 200ms; +} + +.sormas .v-Notification.closable.dark:after, .sormas .v-Notification.closable.error:after, .sormas .v-Notification.closable.system:after { + color: #fff; + border-color: #fff; + border-color: rgba(255, 255, 255, 0.3); +} + +.sormas .v-Notification.closable.dark:active:after, .sormas .v-Notification.closable.error:active:after, .sormas .v-Notification.closable.system:active:after { + background-color: #fff; + color: #000; +} + +.sormas .v-Notification.closable.tray:after { + top: 14px; + margin-top: 0; +} + +.sormas .v-Notification.success, .sormas .v-Notification.failure { + background: #fff; + color: #555; + border: 2px solid #36b955; +} + +.sormas .v-Notification.success .v-Notification-caption, .sormas .v-Notification.failure .v-Notification-caption { + color: #36b955; + font-weight: 500; +} + +.sormas .v-Notification.success .v-Notification-caption:before, .sormas .v-Notification.failure .v-Notification-caption:before { + font-family: ThemeIcons; + content: "\f00c"; + margin-right: 0.5em; +} + +.sormas .v-Notification.success.bar, .sormas .v-Notification.failure.bar { + margin: -2px !important; +} + +.sormas .v-Notification.failure { + border-color: #eb2977; +} + +.sormas .v-Notification.failure .v-Notification-caption { + color: #eb2977; +} + +.sormas .v-Notification.failure .v-Notification-caption:before { + content: "\f05e"; +} + +.sormas .valo-menu { + height: 100%; + background-color: #6691C4; + background-image: -webkit-linear-gradient(right, #6691c4 0%, #6691C4 8px); + background-image: linear-gradient(to left,#6691c4 0%, #6691C4 8px); + color: #374B5A; + font-size: 11px; + line-height: 26px; + border-right: 2px solid #CDD8EC; + white-space: nowrap; +} + +.sormas .valo-menu-toggle { + display: none; + position: fixed; + z-index: 200; + top: 3px; + left: 3px; + min-width: 0; +} + +.sormas .valo-menu-part { + border-left: 2px solid #CDD8EC; + height: 100%; + padding-bottom: 32px; + overflow: auto; +} + +.sormas .valo-menu-part:first-child { + border-left: none; +} + +.sormas .valo-menu-title, .sormas .valo-menu-subtitle, .sormas .valo-menu-item { + display: block; + line-height: inherit; + white-space: nowrap; + position: relative; +} + +.sormas .valo-menu-title .valo-menu-badge, .sormas .valo-menu-subtitle .valo-menu-badge, .sormas .valo-menu-item .valo-menu-badge { + position: absolute; + right: 16px; +} + +.sormas .valo-menu-title { + line-height: 1.2; + background: #CDD8EC; + color: #374B5A; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + padding: 11px 16px; + font-size: 11px; + border-bottom: 2px solid #CDD8EC; + -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + text-align: center; +} + +.sormas .valo-menu-title .v-menubar.v-menubar { + background: transparent; + border-color: #CDD8EC; + color: inherit; + -webkit-box-shadow: none; + box-shadow: none; + text-shadow: inherit; +} + +.sormas .valo-menu-title .v-menubar-menuitem { + background: transparent; + -webkit-box-shadow: inset 0 1px 0 #ebeef4, inset 0 -1px 0 #c4d0e7; + box-shadow: inset 0 1px 0 #ebeef4, inset 0 -1px 0 #c4d0e7; + text-shadow: inherit; + font-size: 12px; + border-color: inherit; +} + +.sormas .valo-menu-title h1, .sormas .valo-menu-title .v-label-h1, .sormas .valo-menu-title h2, .sormas .valo-menu-title .v-label-h2, .sormas .valo-menu-title h3, .sormas .valo-menu-title .v-label-h3, .sormas .valo-menu-title h4, .sormas .valo-menu-title .v-label-h4 { + margin-top: 0; + margin-bottom: 0; + color: inherit; +} + +.sormas .v-menubar-user-menu { + border: none; + border-radius: 0; + padding: 2px; + -webkit-box-shadow: none; + box-shadow: none; + text-shadow: none; + background: transparent; + color: inherit; + margin: 16px 6px; + display: block; + overflow: hidden; + text-align: center; + height: auto; + color: inherit; +} + +.sormas .v-menubar-user-menu:focus:after { + display: none; +} + +.sormas .v-menubar-user-menu .v-menubar-menuitem { + -webkit-box-shadow: none; + box-shadow: none; + border: none; + margin-right: 2px; + border-radius: 4px; + color: #CDD8EC; + padding: 0 11px; + -webkit-transition: color 140ms; + -moz-transition: color 140ms; + transition: color 140ms; +} + +.sormas .v-menubar-user-menu .v-menubar-menuitem:first-child, .sormas .v-menubar-user-menu .v-menubar-menuitem:last-child, .sormas .v-menubar-user-menu .v-menubar-menuitem:first-child:last-child { + border-radius: 4px; +} + +.sormas .v-menubar-user-menu .v-menubar-menuitem:before { + content: none; +} + +.sormas .v-menubar-user-menu .v-menubar-menuitem:hover { + color: #f2f5fa; +} + +.sormas .v-menubar-user-menu .v-menubar-menuitem:active { + color: inherit; +} + +.sormas .v-menubar-user-menu .v-menubar-menuitem-checked, .sormas .v-menubar-user-menu .v-menubar-menuitem-checked:first-child { + border: 2px solid #CDD8EC; + color: #CDD8EC; +} + +.sormas .v-menubar-user-menu .v-menubar-menuitem-checked .v-menubar-menuitem-caption, .sormas .v-menubar-user-menu .v-menubar-menuitem-checked:first-child .v-menubar-menuitem-caption { + position: relative; + top: -2px; +} + +.sormas .v-menubar-user-menu .v-menubar-menuitem-selected { + color: #374B5A; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); +} + +.sormas .v-menubar-user-menu .v-menubar-menuitem-selected:hover { + color: #374B5A; +} + +.sormas .v-menubar-user-menu .v-menubar-menuitem-disabled, .sormas .v-menubar-user-menu .v-menubar-menuitem-disabled:hover { + color: inherit; +} + +.sormas .v-menubar-user-menu > .v-menubar-menuitem { + color: inherit; + white-space: normal; + line-height: 1.4; + margin: 0; +} + +.sormas .v-menubar-user-menu > .v-menubar-menuitem img.v-icon { + width: 48px; + height: 48px; + border-radius: 26px; + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + display: block; + margin: 0 auto 0.3em; + border: 2px solid #CDD8EC; +} + +.sormas .v-menubar-user-menu > .v-menubar-menuitem:after { + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +.sormas .v-menubar-user-menu .v-menubar-menuitem-selected { + background: transparent; +} + +.sormas .valo-menu-subtitle { + color: #374B5A; + margin: 6px 0 6px 16px; + border-bottom: 2px solid #7ca1cc; +} + +.sormas .valo-menu-subtitle [class*="badge"] { + color: #8291a3; +} + +.sormas .valo-menuitems { + display: block; +} + +.sormas .valo-menu-item { + outline: none; + font-weight: 500; + padding: 0 32px 0 16px; + cursor: pointer; + position: relative; + overflow: hidden; + text-shadow: 0 -2px 0 rgba(255, 255, 255, 0.05); + -webkit-transition: background-color 300ms, color 60ms; + -moz-transition: background-color 300ms, color 60ms; + transition: background-color 300ms, color 60ms; +} + +.sormas .valo-menu-item [class*="caption"] { + vertical-align: middle; + display: inline-block; + width: 90%; + max-width: 15em; + padding-right: 16px; + text-overflow: ellipsis; + overflow: hidden; +} + +.sormas .valo-menu-item [class*="badge"] { + color: #CDD8EC; +} + +.sormas .valo-menu-item.selected { + background: #5b89c0; +} + +.sormas .valo-menu-item.selected .v-icon { + color: #CDD8EC; +} + +.sormas .valo-menu-item.selected [class*="badge"] { + background: #CDD8EC; + color: #374B5A; +} + +.sormas .valo-menu-item:focus, .sormas .valo-menu-item:hover, .sormas .valo-menu-item.selected { + color: #374B5A; +} + +.sormas .valo-menu-item span.v-icon { + min-width: 1em; + margin-right: 16px; + text-align: center; + vertical-align: middle; +} + +.sormas .valo-menu-item span.v-icon + span { + margin-left: 0; +} + +.sormas .valo-menu-item [class*="badge"] { + background-color: #789ecb; + -webkit-transition: background-color 300ms; + -moz-transition: background-color 300ms; + transition: background-color 300ms; + line-height: 1; + padding: 4px 5px; + min-width: 8px; + text-align: center; + top: 3.5px; + border-radius: 4px; +} + +.sormas .valo-menu-part.large-icons { + background-color: #6691C4; + min-width: 64px; + max-width: 96px; +} + +.sormas .valo-menu-part.large-icons .valo-menu-title { + font-size: 9px; +} + +.sormas .valo-menu-part.large-icons .valo-menu-title .v-label-undef-w { + white-space: normal; +} + +.sormas .valo-menu-part.large-icons .v-menubar-user-menu { + margin-left: 0; + margin-right: 0; + font-size: 8px; +} + +.sormas .valo-menu-part.large-icons .v-menubar-user-menu img.v-icon { + width: 25px; + height: 25px; +} + +.sormas .valo-menu-part.large-icons [class*="subtitle"] { + margin: 8px 0 0; + padding: 6px 21px 6px 8px; + line-height: 1; + border: none; + text-overflow: ellipsis; + overflow: hidden; + background: #5081bb; + font-size: 10px; + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); +} + +.sormas .valo-menu-part.large-icons [class*="subtitle"] [class*="badge"] { + right: 8px; +} + +.sormas .valo-menu-part.large-icons [class*="subtitle"] + .valo-menu-item { + border-top: none; +} + +.sormas .valo-menu-part.large-icons .valo-menu-item { + display: block; + font-size: 19px; + line-height: 1; + padding: 11px; + text-align: center; + border-top: 2px solid #6f97c7; +} + +.sormas .valo-menu-part.large-icons .valo-menu-item:first-child { + border-top: none; +} + +.sormas .valo-menu-part.large-icons .valo-menu-item [class*="caption"] { + display: block; + width: auto; + margin: 0.3em 0 0; + padding: 0; + font-size: 8px; + line-height: 1.3; +} + +.sormas .valo-menu-part.large-icons .valo-menu-item .v-icon { + margin: 0; +} + +.sormas .valo-menu-part.large-icons .valo-menu-item span.v-icon { + opacity: 0.8; +} + +.sormas .valo-menu-part.large-icons .valo-menu-item.selected { + background: #5b89c0; +} + +.sormas .valo-menu-part.large-icons .valo-menu-item.selected .v-icon { + opacity: 1; +} + +.sormas .valo-menu-part.large-icons .valo-menu-item.selected [class*="badge"] { + border-color: #5b89c0; +} + +.sormas .valo-menu-part.large-icons .valo-menu-item [class*="badge"] { + padding-left: 4px; + padding-right: 4px; + top: 6px; + right: 6px; + border: 2px solid #6691C4; +} + +.sormas .valo-menu-logo { + display: block; + overflow: hidden; + width: 38px !important; + height: 38px; + border-radius: 4px; + text-align: center; + background: #CDD8EC; + color: #374B5A; + font-size: 21px; + line-height: 38px; + margin: 16px auto; + -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); +} + +.sormas .valo-menu-logo:focus { + outline: none; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part { + background-color: #6691C4; + min-width: 64px; + max-width: 96px; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-title { + font-size: 9px; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-title .v-label-undef-w { + white-space: normal; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .v-menubar-user-menu { + margin-left: 0; + margin-right: 0; + font-size: 8px; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .v-menubar-user-menu img.v-icon { + width: 25px; + height: 25px; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part [class*="subtitle"] { + margin: 8px 0 0; + padding: 6px 21px 6px 8px; + line-height: 1; + border: none; + text-overflow: ellipsis; + overflow: hidden; + background: #5081bb; + font-size: 10px; + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part [class*="subtitle"] [class*="badge"] { + right: 8px; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part [class*="subtitle"] + .valo-menu-item { + border-top: none; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item { + display: block; + font-size: 19px; + line-height: 1; + padding: 11px; + text-align: center; + border-top: 2px solid #6f97c7; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item:first-child { + border-top: none; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item [class*="caption"] { + display: block; + width: auto; + margin: 0.3em 0 0; + padding: 0; + font-size: 8px; + line-height: 1.3; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item .v-icon { + margin: 0; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item span.v-icon { + opacity: 0.8; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item.selected { + background: #5b89c0; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item.selected .v-icon { + opacity: 1; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item.selected [class*="badge"] { + border-color: #5b89c0; +} + +.sormas .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item [class*="badge"] { + padding-left: 4px; + padding-right: 4px; + top: 6px; + right: 6px; + border: 2px solid #6691C4; +} + +.sormas .valo-menu-responsive[width-range~="0-800px"] { + padding-top: 32px; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.sormas .valo-menu-responsive[width-range~="0-800px"] .v-loading-indicator { + top: 32px; +} + +.sormas .valo-menu-responsive[width-range~="0-800px"] > .v-widget { + position: relative !important; +} + +.sormas .valo-menu-responsive[width-range~="0-800px"] .valo-menu { + border-right: none; +} + +.sormas .valo-menu-responsive[width-range~="0-800px"] .valo-menu-part { + overflow: visible; +} + +.sormas .valo-menu-responsive[width-range~="0-800px"] .valo-menu-toggle { + display: inline-block; +} + +.sormas .valo-menu-responsive[width-range~="0-800px"] .valo-menu-title { + position: fixed; + z-index: 100; + top: 0; + left: 0; + right: 0; + height: 32px !important; + padding-top: 0; + padding-bottom: 0; + -webkit-backface-visibility: hidden; +} + +.sormas .valo-menu-responsive[width-range~="0-800px"] .valo-menu .v-menubar-user-menu { + position: fixed; + z-index: 100; + top: 0; + right: 0; + margin: 0; + padding: 0; + height: 32px; + color: #374B5A; + max-width: 30%; + -webkit-backface-visibility: hidden; +} + +.sormas .valo-menu-responsive[width-range~="0-800px"] .valo-menu .v-menubar-user-menu .v-menubar-menuitem { + line-height: 31px; + white-space: nowrap; +} + +.sormas .valo-menu-responsive[width-range~="0-800px"] .valo-menu .v-menubar-user-menu img.v-icon { + display: inline-block; + margin: 0 5px 0 0; + width: 16px; + height: 16px; + border-radius: 8px; + border: none; +} + +.sormas .valo-menu-responsive[width-range~="0-800px"] .valo-menuitems { + height: 100%; + background-color: #6691C4; + background-image: -webkit-linear-gradient(right, #6691c4 0%, #6691C4 8px); + background-image: linear-gradient(to left,#6691c4 0%, #6691C4 8px); + color: #374B5A; + font-size: 11px; + line-height: 26px; + border-right: 2px solid #CDD8EC; + white-space: nowrap; + position: fixed; + z-index: 9000; + top: 32px; + bottom: 0; + height: auto; + max-width: 100%; + overflow: auto; + padding: 16px 0; + -webkit-transform: translatex(-100%); + -moz-transform: translatex(-100%); + -ms-transform: translatex(-100%); + -o-transform: translatex(-100%); + transform: translatex(-100%); + -webkit-transition: all 300ms; + -moz-transition: all 300ms; + transition: all 300ms; +} + +.sormas .valo-menu-responsive[width-range~="0-800px"] .valo-menu-visible .valo-menuitems, .sormas .valo-menu-responsive[width-range~="0-800px"] .valo-menu-hover:hover .valo-menuitems { + -webkit-transform: translatex(0%); + -moz-transform: translatex(0%); + -ms-transform: translatex(0%); + -o-transform: translatex(0%); + transform: translatex(0%); +} + +.sormas .valo-menu-responsive[width-range~="0-500px"] .valo-menu-toggle .v-button-caption { + display: none; +} + +.sormas .valo-menu-responsive[width-range~="0-500px"] .valo-menu .v-menubar-user-menu .v-menubar-menuitem-caption { + display: inline-block; + width: 16px; + overflow: hidden; +} + +.sormas .valo-menu { + font-size: 16px; + vertical-align: middle; + border-right-color: #E6E8EB; +} + +.sormas .valo-menu-title { + padding: 16px; + background: #ffffff; + color: #6791C5; + font-weight: bold; + font-size: 32px; + line-height: 32px; + font-family: Source Sans Pro; + letter-spacing: -1px; + border-bottom: 3px solid #E10002; +} + +.sormas .valo-menu-item { + color: #FEFEFE; + text-shadow: none; + padding: 12px 16px; + line-height: 36px; +} + +.sormas .valo-menu-item .v-icon { + color: #FEFEFE; + font-size: 28px; + min-width: 36px; +} + +.sormas .valo-menu-item.selected { + background: #FAFBFC !important; + color: #005A9C !important; + text-shadow: none !important; +} + +.sormas .valo-menu-item.selected .v-icon { + color: #005A9C !important; +} + +.sormas .login-screen { + background: #EFF5FC; + background-image: url(views/img/login-bg.png); + background-size: 960px; + background-repeat: no-repeat; + background-position: 50% 50%; + width: 100%; + height: 100%; +} + +.sormas .login-screen .login-form { + background: white; + color: #374B5A; + border-radius: 4px; + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + border: none; + padding: 21px 21px 21px 21px; + -webkit-animation: valo-animate-in-fade 1s backwards; + -moz-animation: valo-animate-in-fade 1s backwards; + animation: valo-animate-in-fade 1s backwards; + margin-right: 50%; + margin-bottom: 10%; +} + +.sormas .login-screen .login-information { + display: inline-block; + position: absolute; + top: 0; + left: 0; + width: 300px; + height: 100%; + background: #CDD8EC; + background-color: rgba(205, 216, 236, 0.7); + padding: 21px 21px 21px 21px; + color: #374B5A; + -webkit-animation: valo-animate-in-fade 1s 1s backwards; + -moz-animation: valo-animate-in-fade 1s 1s backwards; + animation: valo-animate-in-fade 1s 1s backwards; +} + +.sormas .login-screen .login-information h1 { + color: inherit; +} + +.sormas .login-screen .centering-layout { + display: inline-block; + width: 100%; + height: 100%; + padding-left: 300px; +} + +.sormas .login-screen .centering-layout .v-slot { + height: 100%; +} + +.sormas .valo-content { + overflow: auto; +} + +.sormas .v-caption { + text-transform: uppercase; + display: block; + padding-bottom: 0.1em; +} + +.sormas .v-caption.v-caption-caption-hidden { + display: none; +} + +.sormas .v-panel { + border: none; + box-shadow: none; + border-radius: 0; +} + +.sormas .v-button { + text-transform: uppercase; +} + +.sormas .v-filterselect [class$="button"] { + border-left: none; +} + +.sormas .v-filterselect [class$="button"]::before { + color: #394C5B; +} + +.sormas .v-datefield [class$="button"] { + border-right: none; +} + +.sormas .v-datefield [class$="button"]::before { + color: #394C5B; +} + +.sormas .v-radiobutton { + margin: 4px 0 4px -2px !important; + padding: 0 !important; + border: 2px solid #CDD8EC; + border-radius: 0; + font-size: 11px; + text-transform: uppercase; +} + +.sormas .v-radiobutton:first-child { + border-radius: 4px 0 0 4px; +} + +.sormas .v-radiobutton:last-child { + border-radius: 0 4px 4px 0; +} + +:root .sormas .v-radiobutton > input { + display: none; +} + +:root .sormas .v-radiobutton > input ~ label { + margin-bottom: 0; + padding: 3px 12px; +} + +:root .sormas .v-radiobutton > input:checked ~ label { + background: #CDD8EC; +} + +:root .sormas .v-radiobutton > input ~ label:before, :root .sormas .v-radiobutton > input ~ label:after { + content: none; +} + +.sormas h3 { + margin-bottom: 16px; +} + +.sormas h3::before { + background: #EEF2F8; + content: ""; + display: block; + position: relative; + top: 15px; + height: 2px; + width: 100%; +} + +.sormas h3 span { + background: #FFF; + position: relative; + padding-right: 8px; +} + +.sormas .v-grid-header th { + font-size: 12px; +} + +.sormas .v-grid-cell { + font-size: 13px; +} + +.sormas .v-grid-cell.priority-high { + background-color: #DFA7A5; + color: white; +} + +.sormas .v-grid-cell.priority-normal { + background-color: #A6BFDD; + color: white; +} + +.sormas .v-grid-row.status-discarded .v-grid-cell { + text-decoration: line-through; + color: #888; +} + +.sormas .v-grid-row.status-done .v-grid-cell { + color: #888; +} + +.sormas .v-grid-row.status-not .v-grid-cell { + color: #C44; +} + +.sormas .callout { + text-align: center; + outline: none; + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + padding: 0 14px; + color: #191919; + font-weight: 500; + border-radius: 4px; + border: 1px solid #c5c5c5; + border-left: 7px solid #60a0ea; + border-top-color: #c5c5c5; + border-bottom-color: #bcbcbc; + background-color: #fafafa; +} + +.sormas .dashboard-key { + text-align: center; + outline: none; + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + padding: 7px; + color: #191919; + font-weight: 500; + border-radius: 4px; + border: 1px solid #c5c5c5; + border-top-color: #c5c5c5; + border-bottom-color: #bcbcbc; + background-color: #fafafa; +} + +.sormas .googlemap.no-tiles img { + opacity: 0.2; + filter: alpha(opacity=20); +} + +.sormas .googlemap.no-tiles .gmnoprint img { + opacity: inherit; + filter: inherit; +} + +.sormas .googlemap gm-style { + background-color: white; +} + +.sormas .v-widget.v-textfield, .sormas .v-widget.v-textarea, .sormas .v-widget.v-select, .sormas .v-widget.v-datefield, .sormas .v-widget.v-filterselect { + margin-bottom: 10px; +} + +.sormas .v-caption-row-optiongroup { + float: left; + padding-top: 7px; + margin-bottom: -30px; + font-weight: 500; + font-size: 12px; + text-transform: none; +} + +.sormas .v-select-optiongroup-row-optiongroup { + text-align: right; +} + +.sormas .v-select-optiongroup-row-optiongroup .v-select-option, .sormas .v-select-optiongroup-inline-optiongroup .v-select-option { + display: inline-block; +} + +.sormas .crud-view { + position: relative; +} + +.sormas .crud-view .filter-textfield { + width: 288px; +} + +.sormas .force-caption { + margin-top: 1.5em; +} + +.sormas .force-caption-21 { + margin-top: 21px; +} + +.sormas .no-margin, .sormas .h1.no-margin, .sormas .h2.no-margin, .sormas .h3.no-margin, .sormas .h4.no-margin, .sormas .h5.no-margin, .sormas .v-checkbox.no-margin label { + margin: 0; +} + +.sormas .sublist-padding { + padding-top: 7px; +} + +.sormas .v-readonly, .sormas .v-caption-v-readonly { + color: #aaa; +} + +.sormas .about-view { + overflow: auto; +} + +.sormas .about-view .about-content { + background: white; + color: #374B5A; + border-radius: 4px; + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + max-width: 500px; + padding: 32px !important; +} + +.sormas .v-ui[width-range~="0-800px"] .main-screen { + padding-top: 32px; +} + +.sormas .v-ui[width-range~="0-800px"] .login-screen { + height: auto; + min-height: 100%; +} + +.sormas .v-ui[width-range~="0-800px"] .login-screen .login-information { + position: static; + width: 100%; + height: auto; +} + +.sormas .v-ui[width-range~="0-800px"] .login-screen .login-information .v-label { + text-align: center; +} + +.sormas .v-ui[width-range~="0-800px"] .login-screen .login-information .v-label h1 { + margin-top: 0.4em; +} + +.sormas .v-ui[width-range~="0-800px"] .login-screen .centering-layout { + display: block; + width: 100%; + height: auto; + padding-left: 0; + padding-top: 60px; + padding-bottom: 60px; +} + +.sormas .v-ui[width-range~="0-800px"] .login-screen .login-form { + width: 400px; + max-width: 100%; +} + +.sormas .v-ui[width-range~="0-800px"] .login-screen .login-form table { + width: 100%; +} + +.sormas .v-ui[width-range~="0-800px"] .login-screen .login-form .v-textfield { + width: 100% !important; +} + +.sormas .v-ui[width-range~="0-800px"] .login-screen .login-form .v-formlayout-captioncell, .sormas .v-ui[width-range~="0-800px"] .login-screen .login-form .v-formlayout-contentcell, .sormas .v-ui[width-range~="0-800px"] .login-screen .login-form .v-formlayout-errorcell { + display: block; + text-align: center; + padding-top: 0; +} + +.sormas .v-ui[width-range~="0-800px"] .login-screen .login-form .buttons { + width: 100%; +} + +.sormas .v-ui[width-range~="0-800px"] .login-screen .login-form .buttons .v-button { + display: block; + text-align: center; +} + +.sormas .v-ui[width-range~="801px-1100px"] .valo-menu-part .v-slot-logo, .sormas .v-ui[width-range~="801px-1100px"] .valo-menu-part .v-slot-logo + .v-spacing { + display: none; +} + +.sormas .v-ui[width-range~="801px-"] .valo-menu-part .user-menu { + position: fixed; + bottom: 0; + margin-bottom: 0; +} + +.sormas .v-ui[width-range~="0-550px"] .crud-view .crud-main-layout { + padding: 0 0 0 0; +} + +.sormas .v-ui[width-range~="0-550px"] .crud-view .crud-main-layout .top-bar { + padding: 18px 18px 0 18px; +} + +.sormas .v-ui[width-range~="0-550px"] .crud-view .crud-main-layout .top-bar .filter-textfield { + width: 100%; +} + +.sormas .v-ui[width-range~="0-550px"] .about-view { + padding-bottom: 0; + padding-top: 0; + height: auto; + padding: 3.2px; +} + +.sormas .v-ui[width-range~="0-550px"] .about-view .v-slot-about-content { + overflow: auto; +} + +.sormas .v-ui[width-range~="0-550px"] .about-view .about-content { + width: 100%; + max-width: 100%; + height: auto; + vertical-align: top; + padding: 0; + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.sormas .v-ui[width-range~="0-500px"] .valo-menu .v-menubar-user-menu .v-menubar-menuitem-caption { + width: auto; +} + +.sormas input[type=number]::-webkit-inner-spin-button, .sormas input[type=number]::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} + +.sormas .align-right { + text-align: right; +} + +.sormas .v-Notification.error { + background: #C31924; +} + +.sormas .cursor-link { + cursor: pointer; +} + +.sormas .font-size-large { + font-size: 18px; +} + +.sormas .font-size-xlarge { + font-size: 22px; +} + +.sormas .font-size-xlarge li, .sormas .font-size-xlarge ol { + line-height: 32px; +} + +.sormas .font-size-small { + font-size: 12px; +} + +.sormas .sublist-margin { + margin-top: 50px; +} + +.sormas .sublist-margin-small { + margin-top: 20px; +} + +.sormas .info-column-margin { + margin-left: 25px; +} + +.sormas .color-red .v-icon { + color: #7F3300; +} + +.sormas .color-green .v-icon { + color: #007F0E; +} + +.sormas .color-grey .v-icon { + color: #A8A8A8; +} + +.sormas .vspace-no-filters { + margin-bottom: 16px; +} + +.sormas .vspace-top-24 { + margin-top: 24px; +} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/styles.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.scss similarity index 84% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/styles.scss rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.scss index b628404a7b6..cd0c0d7e4d8 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/styles.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.scss @@ -2,7 +2,7 @@ @import "bootstrap-reduced.css"; @import "general.css"; -@import "sormastheme.scss"; +@import "sormas.scss"; @import "addons.scss"; // This should be in the Valo theme as a shorthand @@ -11,7 +11,7 @@ $v-layout-margin: $v-layout-margin-top $v-layout-margin-right $v-layout-margin-b // This file prefixes all rules with the theme name to avoid causing conflicts with other themes. // The actual styles should be defined in sormastheme.scss -.sormastheme { +.sormas { @include addons; - @include sormastheme; + @include sormas; } diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/valo-menu.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/valo-menu.scss new file mode 100644 index 00000000000..8b2dc0d0b40 --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/valo-menu.scss @@ -0,0 +1,45 @@ + + +@mixin sormas-valo-menu { + + .valo-menu { + font-size: 16px; + vertical-align: middle; + border-right-color: #E6E8EB; + } + + .valo-menu-title { + padding: 16px; + background: #ffffff; + color: #6791C5; + font-weight: bold; + font-size: 32px; + line-height: 32px; + font-family: Source Sans Pro; + letter-spacing: -1px; + border-bottom: 3px solid #E10002; + } + + .valo-menu-item { + color: #FEFEFE; + text-shadow: none; + padding: 12px 16px; + line-height: 36px; + + .v-icon { + color: #FEFEFE; + font-size: 28px; + min-width: 36px; + } + + &.selected { + background: #FAFBFC !important; + color: #005A9C !important; + text-shadow: none !important; + + .v-icon { + color: #005A9C !important; + } + } + } +} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/login.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/login.scss new file mode 100644 index 00000000000..0632259cd86 --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/login.scss @@ -0,0 +1,55 @@ + +@mixin login { + // login screen - for small screens, see below + .login-screen { + background: #EFF5FC; + + @if $login-background-image { + background-image: url(#{$login-background-image}); + background-size: 960px; + background-repeat: no-repeat; + background-position: 50% 50%; + } + + width: 100%; + height: 100%; + + .login-form { + @include valo-panel-style; + border: none; + padding: $v-layout-margin; + @include valo-animate-in-fade($duration: 1s); + margin-right: 50%; + margin-bottom: 10%; + } + + .login-information { + display: inline-block; + position: absolute; + top: 0; + left: 0; + width: $login-info-width; + height: 100%; + background: $v-selection-color; // For IE8 + background-color: rgba($v-selection-color, $login-info-opacity); + padding: $v-layout-margin; + color: valo-font-color($v-selection-color, 0.9); + @include animation(valo-animate-in-fade 1s 1s backwards); + + h1 { + color: inherit; + } + } + + .centering-layout { + display: inline-block; + width: 100%; + height: 100%; + padding-left: $login-info-width; + + .v-slot { + height: 100%; + } + } + } +} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/sormas-logo.png b/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/img/sormas-logo.png deleted file mode 100644 index 7cb3fbd5ab312400a00910b671b4b8c812a8cb51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5867 zcmV004&&004{<009NM004mL002@3009+U001_y0019C%$aXW000Lh zX+uL$P-t&-Z*ypGa3D!TLm+T+Z)Rz1WdHz3$CZ=`RFhX0$KUsT*%J~H5(xXpz8FYA zWEBd8MU;J05f?}zL;{H+Bv`@HQ4v{$SfErvRFFC-3bGW(rBIiGI98wnD&PWGrC1d! z>J-a_a^~1MXJ*cs|2gm7-?{Ieci+ADoCg5D$1lJ?5cUNiJwqXn4)#aatxrJl!vFy= zAOSqEOA=(tz<(D6z}(Q{4#1#8atNPao$hj?sXlOynO@Z#MPa0a|1F|GCRb?eOU)`2 ziZTV7D|0lQty0J|e&|;XGv%?-d;nkq0N6b#f8yjnv0U?TO+Cen@hMAubdi&nxNVUY zqU^<7fG?Hpkc(4N6{s!W4t3`7+|cA5C|@d(%F!69BugQdW@K_uKZyj5UJT1bqeYn_ zxl$x_L_@^_QAVZ+6^ax|Vo4?{NXkHyMd(&(R)!FjW_Y5h3Wdy*%T=jVjv|5BQ7TX2 zYAjcjv1l|Mc9f+qHgu`hKSWwOK$Xt_>Iw;nfB=X=GzbR%00m0m{GS8=e=W{;i9XIv zkR?|x`QVFxWM=_WU=Lh?4+sGV*cOG3Y5Y3w?m`Fda66tzjPQ1qZ^B zZ~`oXW$;coA6CQF@JYB8{ub_ohv5nM1w4-s5Ef#NaFLZr2ojG75jpZ1Qi2>t8j()q zI&ue@L|$WH3>{;J;bD9+k(ezQ872>-#vH?(!(74qh?&B?#S*XvSPs?)8;KQQv#p8jh6UHYy1KN%PqL>c58Tr`+9v^CspSYde62xH`B zlxcLzXwul&INrF_xYqZ9@K7ihm3%`D8U$n1tW(R`J8 zfq9Pw!6L+BzeS%V#WLKo%yPhrWwp-gu+;-=3+oi?)7GzSTy1h}zOyCRhTB%yj@nt; zN$lF}=IsOR57>_^GhZfI*1>@|p`0qtgagkZ$D!9z*HPfu;<&&K=hkp%cwW3B-l!AD zDc9+iGwLjNzPem*`L^YkT<9($m-8#AD+DV#U8$}@*9&e8H?donJKKG`d#{JNM~=sk zC(pCcbIQxttJ>?`%Gi}H-c;{2?_M7ppM0OGPXa!v_r>@MeXsdh`xW?2`-l3UVXboQ%sSz^`|D%Y z_ay`*T;AZep(T-%`1MBfjYl>aZ2EFDbF+F2ZOefqN>Xt$Ik`wc5tIn2!ZHy-}fyJo~&WpC^7k_ZRhU z&hGE`2=;=#HTjBCjkLDg?+>W{?MVrtuurW|7*>pPxX=TtXU z|J8}`2BhKq*Rqo~C&&L<*%)z(aH{+C&L-EUS7(~eikq#QCt8l3+uUl>I@VUxzNy2c zz~C zz6ZjG{*TZ{3y;SqE>G4@+ zuQ%Ux&egwFzuWa*@{bL_t)BP%VE?<}g4V*q$A7sY8-S?a|NXCaChUptW`pkO) z(0L3%_w9cIl-rKw?Z~wE00009a7bBm001r_001r_0S8N2bZe?^JG%heMF)~90YwQ334-82}K~#8N-CPTBRMi=V@KQR&7pM`HhZI^t ztV6{?sgsCEftFfF%JAqQKEO@~I}FN{4()`tsa8tEG`4_(ycI!2gzzRL1`-iMLI~#l z4k5dFZ+17EY?9OeJ2_{$ckkI}SQ7kazPWerJ?B5)|K0PxH|f=##u)1@5at2=zDWN4 zHxY0jLSG!kWuK9PMggHFAhujKgb{iE z)WuJ3^!pw{6k!En2jMKCkWkan(P1OB2;jU%+(R0qeTRU&_Xu~~=yyQ1vD-}$b~OV! zzmM=5;VXiP0%t&bdwW2T`QU?afB>KOiDFO=ny>DG^e7{8s4=c8Pv?^e9~0`_L}_mm zCQfk)*5L-+6o*a|*Ik0awG_S`Sq+CMTA^Wj?NLEafD1-kNLV?2wcYZhBsNjC$6z6{+Gz(!Q z=}-#e4qcgK4sa6mbX;$W$pYzk2Z?e>Q)8ThaJNBn04G8`IBGeE+%)2hBb0!MAO%yB z?gpTrl0ucVw6r{?avj|UL~m=qt9{30^LdU zbV!jX4o7iu@lUj|1#RR&&T+!g*@-^qmJ>%pie$6dN;5Mv@6yH?l*!EGmk;H1?6DoP zzmPH1*47@O(D+^yVhq?QBd>m~t*vj}3~{Jla;WZw08VOZtgNi;ZEdW68)e{&z2@fT z;Utb-IEA?v6fkNV>?||a%r51aSjp7}R#R_dR$B{eZFRcRIGt_G-rUOS8=F~0m4$s* zP|Y&)%sj8wR~Nvi+f7YP_Vo1hA8KRv%Vc7zHJ^30_8{2&(mHl1v4E}Loz9MYUC2x| zR%KdmsB5&dgl|gNhkG-)FZhISRa$?5m# zJna)_i`m+(-?G*JJIlUG$Y&O-Lzy-Zpk|#&DQ17$kivbVj9_aPS%=+jXIWWU)3mXB zHA=)gEt)eN7qus#QR`ZD6We<%hy8VZ3K!9vsw+5MmKpCb2uEE{H;A0c~Ud3vUflF#zhp^wC@rR zK$XWE3S-u=tVO>wpe{K@nZA|!q1}hS)0GV_;N;J!h#1LOX=&*Wtp*088@zf^bsIt% zYlH)s!KnmBnJxP->&O9dyVCf`q{`z9nR6Ghq=-=lm=7IQrUzPR1l;^Zrhx~zfukyq z2D~$>tE;QsxpU`(S}k-Ym9tnZuZr5k^LheCk@r77XCM{xVQRpAffiR5FI5Uuo0P0f zFM(#YW=rRQpanRBt16EM?KCJc8uEXy)k0@<5pAzGHLovyHLr7-m3$O&Cj*>GD_7?6 z7rD#-q!g$zEnS&ji_0`uQgH%Ta8~63WURDCJ4_lFH~r}Xe@&B;l5#hty(Tik49-rU zD^-#JKA@)6mAMH}u=-u4K-T;MWqNmPJ78?`65y`NL*UJfR{Eyc*w_fICfuZA)c-`G z_E37|$d&MoXK{e^Y?C2RpeR`zrxeIh<)823ih3nC3B;hvN7jMSEFmFbCbT$x`tZsoF)Vwe%s0x($7qx$kDDL@Gcquxbjaj%uhbNYN%I}qbv{fmP(`GaH@q~?g zGL#%85Q`#T8`ftT85w^eDfBNPMGXq04tfU?y9<0G;-s zo;+D5mKm$-Z0x;F`ZF0=>bTK<4O*HuM2CVf|9JN49h)w1}%xFC& zB_*k(MSqtrLY!Wak&(Ai70VZi>Cm~*#B5kqfEIWnflLa$2~?YO#vstSNl^wLzMz_d zxC61tK?O0B7Ob+evT)3pF@vCq6o^lXwr}5lFC{XG0$^T8EG^b;zn~-M3*H23Ouu9h zC~fL2gAZR&O<+~fjBIiwGp|^&;`)S93UuVik>MmzqfBhBwX(l&OjSB{$Hz2_75V&v zH-W4Lg$98#UYcj{;S2jt~H0%a{+V({S$hfWtLxvC)ecYZEXS7#@I#v24WaNxigtw5i|caK0$yWJpA z_R_ZvK71h%fe>qaW1@#7D81n3#yx)>d67 zopioT>C_#u+t2IB0V)w5UDPRpSAhuC$4>F#UZUwrw(Fk1*s|Zax>o@)iaf4P`pq}r z94-X9KFkjuJa`bzgABv`rq3@a9lOJ3*KcohMW7pj_c!|<<`J9wFkfC?UKAc4ez#5_ zA<_?MCVfUEc1;v(>h0{GeiW8lte+?bE0DdkjMbef22w(=M4F{(z-E>9-Bx!BwBfUKB}WMldqZv5 zG&^?e*gv3!(4^CZT78cmJvvitcPQbj)4urK^&mna5VlqutqubmE!Q6m-k_+sNoYD{ z7f^Fxjg5_L{rdI4ffnxD9cXJ|^XAPPMk-c{j4*?ueP#a0O?iQ30`%u?rV2948I#)YTqoq!=y^OifLFOJt&h+96O>Ue7nl+{s{VgO_@C zM=P^7x9DIKD}HbH+8iy+X|)=F2_$N#dp@AGwT;zVnw2Yfa0FK^cXv>?(vIE4-Me@H z5gL$C#*eE+mFhQV&YU0H?RK-s3^O>Cz?+2aUu79c{b%O|)St(P()R4x)1MA^=jZ1ucNSHE|8HqjaNktJUW@zWF%-ba zx$BUA-3Tt=1a7K4ZfK(w1WQaz+>6+S25KYaFq#dd)$A{jNsMTIy?VwgW_+NaoiAay z_2b1|(7*%GzQsV<;Nb7;ZhHQFfm&Nz%T}#g^)g~t_CH!%x^yZ2M(h64($Z7HiO*W3 zg{juczBrld>cr6p1hO6LFUqeqQd3UjWuPpSiLzB`Jwe8H{`~o5iaA2W?%jlfgW}@i zW;p?9)`51AjG*EeU)JguV^F z;1j-8Y5jy#^gVc+`hbYpKckKcebJz~bLURR7Nn>}F!w?N28Lt2BF@M*vEqsb9(a?j zh0l^@r;6bm{Yzbgoj0W`1=TDoznbTD_ZJLESUz%5H)5GJYgQCujgF4?-uJj0Wq_jh z@87>a8ed_NNCEXl!NAW^r%OPsLo5vq4Q$JnE$<@6Wy_Y`&VvrndO!2bGkELhWT2(E&2$iujNl62qSa%4e6$Tt=O46`l z!-n^W8~&JgsNj0T`y5}^d%}bX1BVS8hL0XcM@2QvrYC&! z5sJ?7Rupd~;v*v?@dv!4!3`Y26@0|!GX}@tq&G~hbA z>QpPQUcFjNO{EdQId%G#IXO9bNJD+wzHQsKtwCP+AYZ60@cA&x5DU&*LKt@o8#QXw z08B7N^TW4)j}U%D7}u{~zb6P!BIu`|e)@&yo_lUOfOA}K3snFB002ovPDHLkV1l)0 B1$h7f diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/styles.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/styles.css deleted file mode 100644 index c07539c727d..00000000000 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormastheme/styles.css +++ /dev/null @@ -1,13391 +0,0 @@ -@import "font-awesome.min.css"; - -@import "bootstrap-reduced.css"; - -@import "general.css"; - -/** - * Checks if a list contains a certain value. - * - * @param {list} $list - the list to check - * @param {value} $var - the value to search for - * @param {bool} $recursive (false) - should any contained lists be checked for the value - * - * @return {bool} true if the value is found from the list, false otherwise - * - * @group lists - */ - -/** - * Cross-browser opacity. - * - * @param {number} $value - opacity value from 0 to 1 - * @param {bool} $important (false) - should the property value be declared with !important - * - * @group util - */ - -@-webkit-keyframes valo-animate-in-fade { - 0% { - opacity: 0; - } - } - -@-moz-keyframes valo-animate-in-fade { - 0% { - opacity: 0; - } - } - -@keyframes valo-animate-in-fade { - 0% { - opacity: 0; - } - } - -@-webkit-keyframes valo-animate-out-fade { - 100% { - opacity: 0; - } - } - -@-moz-keyframes valo-animate-out-fade { - 100% { - opacity: 0; - } - } - -@keyframes valo-animate-out-fade { - 100% { - opacity: 0; - } - } - -@-webkit-keyframes valo-animate-in-slide-down { - 0% { - -webkit-transform: translateY(-100%); - } - } - -@-moz-keyframes valo-animate-in-slide-down { - 0% { - -moz-transform: translateY(-100%); - } - } - -@keyframes valo-animate-in-slide-down { - 0% { - -webkit-transform: translateY(-100%); - -moz-transform: translateY(-100%); - -ms-transform: translateY(-100%); - -o-transform: translateY(-100%); - transform: translateY(-100%); - } - } - -@-webkit-keyframes valo-animate-in-slide-up { - 0% { - -webkit-transform: translateY(100%); - } - } - -@-moz-keyframes valo-animate-in-slide-up { - 0% { - -moz-transform: translateY(100%); - } - } - -@keyframes valo-animate-in-slide-up { - 0% { - -webkit-transform: translateY(100%); - -moz-transform: translateY(100%); - -ms-transform: translateY(100%); - -o-transform: translateY(100%); - transform: translateY(100%); - } - } - -@-webkit-keyframes valo-animate-in-slide-left { - 0% { - -webkit-transform: translateX(100%); - } - } - -@-moz-keyframes valo-animate-in-slide-left { - 0% { - -moz-transform: translateX(100%); - } - } - -@keyframes valo-animate-in-slide-left { - 0% { - -webkit-transform: translateX(100%); - -moz-transform: translateX(100%); - -ms-transform: translateX(100%); - -o-transform: translateX(100%); - transform: translateX(100%); - } - } - -@-webkit-keyframes valo-animate-in-slide-right { - 0% { - -webkit-transform: translateX(-100%); - } - } - -@-moz-keyframes valo-animate-in-slide-right { - 0% { - -moz-transform: translateX(-100%); - } - } - -@keyframes valo-animate-in-slide-right { - 0% { - -webkit-transform: translateX(-100%); - -moz-transform: translateX(-100%); - -ms-transform: translateX(-100%); - -o-transform: translateX(-100%); - transform: translateX(-100%); - } - } - -@-webkit-keyframes valo-animate-out-slide-down { - 100% { - -webkit-transform: translateY(100%); - } - } - -@-moz-keyframes valo-animate-out-slide-down { - 100% { - -moz-transform: translateY(100%); - } - } - -@keyframes valo-animate-out-slide-down { - 100% { - -webkit-transform: translateY(100%); - -moz-transform: translateY(100%); - -ms-transform: translateY(100%); - -o-transform: translateY(100%); - transform: translateY(100%); - } - } - -@-webkit-keyframes valo-animate-out-slide-up { - 100% { - -webkit-transform: translateY(-100%); - } - } - -@-moz-keyframes valo-animate-out-slide-up { - 100% { - -moz-transform: translateY(-100%); - } - } - -@keyframes valo-animate-out-slide-up { - 100% { - -webkit-transform: translateY(-100%); - -moz-transform: translateY(-100%); - -ms-transform: translateY(-100%); - -o-transform: translateY(-100%); - transform: translateY(-100%); - } - } - -@-webkit-keyframes valo-animate-out-slide-left { - 100% { - -webkit-transform: translateX(-100%); - } - } - -@-moz-keyframes valo-animate-out-slide-left { - 100% { - -moz-transform: translateX(-100%); - } - } - -@keyframes valo-animate-out-slide-left { - 100% { - -webkit-transform: translateX(-100%); - -moz-transform: translateX(-100%); - -ms-transform: translateX(-100%); - -o-transform: translateX(-100%); - transform: translateX(-100%); - } - } - -@-webkit-keyframes valo-animate-out-slide-right { - 100% { - -webkit-transform: translateX(100%); - } - } - -@-moz-keyframes valo-animate-out-slide-right { - 100% { - -moz-transform: translateX(100%); - } - } - -@keyframes valo-animate-out-slide-right { - 100% { - -webkit-transform: translateX(100%); - -moz-transform: translateX(100%); - -ms-transform: translateX(100%); - -o-transform: translateX(100%); - transform: translateX(100%); - } - } - -@-webkit-keyframes valo-overlay-animate-in { - 0% { - -webkit-transform: translatey(-4px); - opacity: 0; - } - } - -@-moz-keyframes valo-overlay-animate-in { - 0% { - -moz-transform: translatey(-4px); - opacity: 0; - } - } - -@keyframes valo-overlay-animate-in { - 0% { - -webkit-transform: translatey(-4px); - -moz-transform: translatey(-4px); - -ms-transform: translatey(-4px); - -o-transform: translatey(-4px); - transform: translatey(-4px); - opacity: 0; - } - } - -@-webkit-keyframes valo-animate-out-slide-down-fade { - 100% { - opacity: 0; - -webkit-transform: translatey(30%); - } - } - -@-moz-keyframes valo-animate-out-slide-down-fade { - 100% { - opacity: 0; - -moz-transform: translatey(30%); - } - } - -@keyframes valo-animate-out-slide-down-fade { - 100% { - opacity: 0; - -webkit-transform: translatey(30%); - -moz-transform: translatey(30%); - -ms-transform: translatey(30%); - -o-transform: translatey(30%); - transform: translatey(30%); - } - } - -/** - * Outputs cross-browser Valo-specific linear gradient background-image declarations. - * - * @group style - * - * @param {color} $color ($v-background-color) - The base color for the gradient color stops - * @param {list} $gradient ($v-gradient) - Valo-specific gradient value. See the documentation for $v-gradient. - * @param {color} $fallback (null) - A fallback color for browser which do not support linear gradients (IE8 and IE9 in particular). If null, the base $color is used instead. - * @param {string} $direction (to bottom) - the direction of the linear gradient. The color stops are by default so that a lighter shade is at the start and a darker shade is at the end. - */ - -/** - * Computes a CSS border property value for the given base color. - * - * @group style - * - * @param {list} $border ($v-border) - CSS border value which can contain any of the color keywords - * @param {color} $color ($v-background-color) - the base color to which the color keywords are applied to - * @param {color} $context (null) - context/surrounding color where the border is expected to appear. The color of the final border is the darker of the two parameters passed to this function. - * @param {number} $strength (1) - adjustment for the border contrast - * - * @return {list} The input $border value with any color keyword replaced with the corresponding actual color - */ - -/** - * Ouput selectors and properties to vertically center elements inside their parent. - * - * @param {string} $to-align (()) - The selector to match the elements which you wish to align vertically. The targeted elements should be inline or inline-block elements. - * @param {string} $align (middle) - The vertical-align value, e.g. top, middle, bottom - * @param {string} $pseudo-element (after) - Which pseudo element to use for the vertical align guide - * - * @group util - */ - -@font-face { - font-family: ThemeIcons; - font-weight: normal; - font-style: normal; - src: url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.eot); - src: url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.woff) format("woff"), url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.ttf) format("truetype"), url(../valo/util/bourbon/css3/../../../../base/fonts/themeicons-webfont.svg#ThemeIcons) format("svg"); -} - -.ThemeIcons { - font-family: ThemeIcons; - font-style: normal; - font-weight: normal; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - display: inline-block; - text-align: center; -} - -@font-face { - font-family: FontAwesome; - font-weight: normal; - font-style: normal; - src: url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.eot); - src: url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.woff) format("woff"), url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.ttf) format("truetype"), url(../valo/util/bourbon/css3/../../../../base/fonts/fontawesome-webfont.svg#FontAwesome) format("svg"); -} - -.FontAwesome { - font-family: FontAwesome; - font-style: normal; - font-weight: normal; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - display: inline-block; - text-align: center; -} - -@font-face { - font-family: "Open Sans"; - src: url(../valo/fonts/open-sans/OpenSans-Light-webfont.eot); - src: url(../valo/fonts/open-sans/OpenSans-Light-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/open-sans/OpenSans-Light-webfont.woff) format("woff"), url(../valo/fonts/open-sans/OpenSans-Light-webfont.ttf) format("truetype"); - font-weight: 300; - font-style: normal; -} - -@font-face { - font-family: "Open Sans"; - src: url(../valo/fonts/open-sans/OpenSans-Regular-webfont.eot); - src: url(../valo/fonts/open-sans/OpenSans-Regular-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/open-sans/OpenSans-Regular-webfont.woff) format("woff"), url(../valo/fonts/open-sans/OpenSans-Regular-webfont.ttf) format("truetype"); - font-weight: 400; - font-style: normal; -} - -@font-face { - font-family: "Open Sans"; - src: url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.eot); - src: url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.woff) format("woff"), url(../valo/fonts/open-sans/OpenSans-Semibold-webfont.ttf) format("truetype"); - font-weight: 600; - font-style: normal; -} - -@-webkit-keyframes v-rotate-360 { - to { - -webkit-transform: rotate(360deg); - } - } - -@-moz-keyframes v-rotate-360 { - to { - -moz-transform: rotate(360deg); - } - } - -@-o-keyframes v-rotate-360 { - to { - -o-transform: rotate(360deg); - } - } - -@keyframes v-rotate-360 { - to { - transform: rotate(360deg); - } - } - -@-webkit-keyframes v-progress-start { - 0% { - width: 0%; - } - 100% { - width: 50%; - } - } - -@-moz-keyframes v-progress-start { - 0% { - width: 0%; - } - 100% { - width: 50%; - } - } - -@keyframes v-progress-start { - 0% { - width: 0%; - } - 100% { - width: 50%; - } - } - -@-webkit-keyframes v-progress-delay { - 0% { - width: 50%; - } - 100% { - width: 90%; - } - } - -@-moz-keyframes v-progress-delay { - 0% { - width: 50%; - } - 100% { - width: 90%; - } - } - -@keyframes v-progress-delay { - 0% { - width: 50%; - } - 100% { - width: 90%; - } - } - -@-webkit-keyframes v-progress-wait { - 0% { - width: 90%; - height: 4px; - } - 3% { - width: 91%; - height: 6px; - } - 100% { - width: 96%; - height: 6px; - } - } - -@-moz-keyframes v-progress-wait { - 0% { - width: 90%; - height: 4px; - } - 3% { - width: 91%; - height: 6px; - } - 100% { - width: 96%; - height: 6px; - } - } - -@keyframes v-progress-wait { - 0% { - width: 90%; - height: 4px; - } - 3% { - width: 91%; - height: 6px; - } - 100% { - width: 96%; - height: 6px; - } - } - -@-webkit-keyframes v-progress-wait-pulse { - 0% { - opacity: 1; - } - 50% { - opacity: 0.1; - } - 100% { - opacity: 1; - } - } - -@-moz-keyframes v-progress-wait-pulse { - 0% { - opacity: 1; - } - 50% { - opacity: 0.1; - } - 100% { - opacity: 1; - } - } - -@keyframes v-progress-wait-pulse { - 0% { - opacity: 1; - } - 50% { - opacity: 0.1; - } - 100% { - opacity: 1; - } - } - -/** - * Outputs the context menu selectors and styles, which is used by Table and Tree for instance. - * - * @requires {mixin} valo-selection-item-style - * @requires {mixin} valo-selection-item-selected-style - */ - -/** - * The background color for overlay elements. - * - * @type color - * @group overlay - */ - -.v-shadow, .v-shadow-window { - display: none; -} - -.v-ie8 .v-shadow, .v-ie8 .v-shadow-window { - display: block; -} - -.v-ie8 .v-shadow .top, .v-ie8 .v-shadow-window .top { - position: absolute; - top: -6px; - right: 10px; - bottom: 6px; - left: -10px; - background: black; - filter: alpha(opacity=5) progid:DXImageTransform.Microsoft.blur(pixelradius=10, makeShadow=false); -} - -.v-ie8 .v-shadow .top-left, .v-ie8 .v-shadow-window .top-left { - position: absolute; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; - background: black; - filter: alpha(opacity=9) progid:DXImageTransform.Microsoft.blur(pixelradius=0, makeShadow=false); -} - -/** - * The backgound color for tooltips. - * - * @type color - * @group tooltip - */ - -/** - * - * - * @param {string} $primary-stylename (v-absolutelayout) - - * - * @group absolutelayout - */ - -/** - * Outputs the selectors and properties for the Accordion component. - * - * @param {string} $primary-stylename (v-accordion) - the primary style name for the selectors - * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component - * @group accordion - */ - -/** - * Outputs the selectors and properties for the Button component. - * - * @param {string} $primary-stylename (v-button) - the primary style name for the selectors - * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component - * - * @group button - */ - -/** - * A list of colors for custom event colors. Can be an empty list of you don't - * need any custom event colors. - * - * @example javascript - * // Java code - * // 'event' is an instance of EditableCalendarEvent - * event.setStyleName("color1"); // 1st color in the list - * event.setStyleName("color2"); // 2nd color in the list - * // etc. - * - * @group calendar - */ - -/** - * Outputs the selectors and properties for the CheckBox component. - * - * @param {string} $primary-stylename (v-checkbox) - the primary style name for the selectors - * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component - * - * @group checkbox - */ - -/** - * Outputs the global selectors and properties for the ColorPicker component - styles which are - * considered mandatory for the component to work properly. - * - * @param {string} $primary-stylename (v-colorpicker) - the primary style name for the selectors - * - * @group colorpicker - */ - -/** - * Outputs the selectors and properties for the ComboBox component. - * - * @param {string} $primary-stylename (v-filterselect) - the primary style name for the selectors - * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component - * - * @group combobox - */ - -/** - * The amount of spacing between different widgets in a component group. - * If null, a computed value is used ($v-border size * -1, or 1px if $v-border size is 0) - * - * @group csslayout - */ - -/** - * - * - * @param {string} $primary-stylename (v-customcomponent) - - * - * @group customcomponent - */ - -/** - * - * - * @param {string} $primary-stylename (v-customlayout) - - * - * @group customlayout - */ - -/** - * Outputs the selectors and properties for the DateField component. - * - * @param {string} $primary-stylename (v-datefield) - the primary style name for the selectors - * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component - * - * @group datefield - */ - -/** - * Outputs the styles and selectors for the DragAndDropWrapper component. - * - * @param {string} $primary-stylename (v-ddwrapper) - the primary style name for the selectors - * - * @group drag-n-drop - */ - -/** - * - * - * @param {string} $primary-stylename (v-form) - - * - * @group form - */ - -/** - * Outputs the selectors and properties for the FormLayout component. - * - * @param {string} $primary-stylename (v-formlayout) - the primary style name for the selectors - * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component - * - * @group formlayout - */ - -/** - * - * @group table - */ - -@-webkit-keyframes valo-grid-editor-footer-animate-in { - 0% { - margin-top: -32px; - } - } - -@-moz-keyframes valo-grid-editor-footer-animate-in { - 0% { - margin-top: -32px; - } - } - -@keyframes valo-grid-editor-footer-animate-in { - 0% { - margin-top: -32px; - } - } - -@-webkit-keyframes valo-grid-editor-footer-animate-in-alt { - 0% { - margin-bottom: -33px; - } - 100% { - margin-bottom: -1px; - } - } - -@-moz-keyframes valo-grid-editor-footer-animate-in-alt { - 0% { - margin-bottom: -33px; - } - 100% { - margin-bottom: -1px; - } - } - -@keyframes valo-grid-editor-footer-animate-in-alt { - 0% { - margin-bottom: -33px; - } - 100% { - margin-bottom: -1px; - } - } - -/** - * - * - * @param {string} $primary-stylename (v-gridlayout) - - * - * @group gridlayout - */ - -/** - * The font weight for headers. - * - * @group label - */ - -/** - * - * @group link - */ - -/** - * - * - * @param {string} $primary-stylename (v-loginform) - - * - * @group loginform - */ - -/** - * - * - * @param {string} $primary-stylename (v-menubar) - - * @param {bool} $include-additional-styles - - * - * @group menubar - */ - -/** - * - * - * @param {string} $primary-stylename (v-nativebutton) - - * - * @group nativebutton - */ - -/** - * - * - * @param {string} $primary-stylename (v-select) - - * - * @group nativeselect - */ - -/** - * - * @group notification - */ - -/** - * - * - * @param {string} $primary-stylename (v-select-optiongroup) - - * @param {bool} $include-additional-styles - - * - * @group optiongroup - */ - -/** - * - * - * - * @group orderedlayout - */ - -/** - * - * @group panel - */ - -@-webkit-keyframes v-popupview-animate-in { - 0% { - -webkit-transform: scale(0); - } - } - -@-moz-keyframes v-popupview-animate-in { - 0% { - -moz-transform: scale(0); - } - } - -@keyframes v-popupview-animate-in { - 0% { - -webkit-transform: scale(0); - -moz-transform: scale(0); - -ms-transform: scale(0); - -o-transform: scale(0); - transform: scale(0); - } - } - -/** - * - * @group progressbar - */ - -/** - * - * @group richtextarea - */ - -/** - * - * @group slider - */ - -/** - * - * - * @param {string} $primary-stylename (v-splitpanel) - - * @param {bool} $include-additional-styles - - * - * @group splitpanel - */ - -/** - * - * @group table - */ - -/** - * Should the tabsheet content changes be animated. - * - * @group tabsheet - */ - -/** - * The background color for text fields. - * @group textfield - */ - -/** - * Outputs the selectors and properties for the TextArea component. - * - * @param {string} $primary-stylename (v-textarea) - the primary style name for the selectors - * @param {bool} $include-additional-styles - should the mixin output all the different style variations of the component - * - * @group textarea - */ - -/** - * - * @group tree - */ - -/** - * - * - * @param {string} $primary-stylename (v-treetable) - - * - * @group treetable - */ - -/** - * - * - * @param {string} $primary-stylename (v-select-twincol) - - * - * @group twin-column-select - */ - -/** - * - * - * @param {string} $primary-stylename (v-upload) - - * - * @group upload - */ - -/** - * - */ - -/** - * @group window - */ - -@-webkit-keyframes valo-modal-window-indication { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } - } - -@-moz-keyframes valo-modal-window-indication { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } - } - -@keyframes valo-modal-window-indication { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } - } - -@-webkit-keyframes valo-animate-out-scale-down-fade { - 100% { - -webkit-transform: scale(0.8); - opacity: 0; - } - } - -@-moz-keyframes valo-animate-out-scale-down-fade { - 100% { - -moz-transform: scale(0.8); - opacity: 0; - } - } - -@keyframes valo-animate-out-scale-down-fade { - 100% { - -webkit-transform: scale(0.8); - -moz-transform: scale(0.8); - -ms-transform: scale(0.8); - -o-transform: scale(0.8); - transform: scale(0.8); - opacity: 0; - } - } - -/** - * @group valo-menu - */ - -.v-vaadin-version:after { - content: "7.7.6"; -} - -.v-widget { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - display: inline-block; - vertical-align: top; - text-align: left; - white-space: normal; -} - -.v-generated-body { - overflow: hidden; - margin: 0; - padding: 0; - border: 0; -} - -.v-app { - height: 100%; - -webkit-tap-highlight-color: transparent; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.v-app input[type="text"], .v-app .v-slot > .v-caption, .v-app .v-gridlayout-slot > .v-caption, .v-app .v-has-caption > .v-caption, .v-app .v-formlayout-captioncell > .v-caption, .v-app .v-csslayout > .v-caption { - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} - -.v-app input::-ms-clear { - display: none; -} - -.v-ui { - position: relative; -} - -.v-ui.v-ui-embedded { - margin-top: -1px; - border-top: 1px solid transparent; -} - -.v-ui:focus { - outline: none; -} - -.v-overlay-container { - width: 0; - height: 0; -} - -.v-drag-element { - z-index: 60000; - position: absolute !important; - cursor: default; -} - -.v-clip { - overflow: hidden; -} - -.v-scrollable { - overflow: auto; -} - -.v-scrollable > .v-widget { - vertical-align: middle; - overflow: hidden; -} - -.v-ios.v-webkit .v-scrollable { - -webkit-overflow-scrolling: touch; -} - -.v-ios5.v-webkit .v-scrollable { - -webkit-overflow-scrolling: none; -} - -.v-webkit.v-ios .v-browserframe { - -webkit-overflow-scrolling: touch; - overflow: auto; -} - -.v-assistive-device-only { - position: absolute; - top: -2000px; - left: -2000px; - width: 10px; - overflow: hidden; -} - -.v-icon { - cursor: inherit; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.v-icon, .v-errorindicator, .v-required-field-indicator { - display: inline-block; - line-height: inherit; -} - -.v-caption { - display: inline-block; - white-space: nowrap; - line-height: 1.55; -} - -.v-captiontext { - display: inline-block; - line-height: inherit; -} - -div.v-layout.v-horizontal.v-widget { - white-space: nowrap; -} - -.v-layout.v-vertical > .v-expand, .v-layout.v-horizontal > .v-expand { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 100%; - height: 100%; -} - -.v-slot, .v-spacing { - display: inline-block; - white-space: nowrap; - vertical-align: top; -} - -.v-vertical > .v-slot:after { - display: inline-block; - clear: both; - width: 0; - height: 0; - overflow: hidden; -} - -.v-vertical > .v-slot, .v-vertical > .v-expand > .v-slot { - display: block; - clear: both; -} - -.v-horizontal > .v-slot, .v-horizontal > .v-expand > .v-slot { - height: 100%; -} - -.v-horizontal > .v-expand > .v-slot { - position: relative; -} - -.v-vertical > .v-spacing, .v-vertical > .v-expand > .v-spacing { - width: 0 !important; - display: block; - clear: both; -} - -.v-horizontal > .v-spacing, .v-horizontal > .v-expand > .v-spacing { - height: 0 !important; -} - -.v-align-middle:before, .v-align-bottom:before, .v-expand > .v-align-middle:before, .v-expand > .v-align-bottom:before { - content: ""; - display: inline-block; - height: 100%; - vertical-align: middle; - width: 0; -} - -.v-align-middle, .v-align-bottom { - white-space: nowrap; -} - -.v-align-middle > .v-widget, .v-align-bottom > .v-widget { - display: inline-block; -} - -.v-align-middle, .v-align-middle > .v-widget { - vertical-align: middle; -} - -.v-align-bottom, .v-align-bottom > .v-widget { - vertical-align: bottom; -} - -.v-align-center { - text-align: center; -} - -.v-align-center > .v-widget { - margin-left: auto; - margin-right: auto; -} - -.v-align-right { - text-align: right; -} - -.v-align-right > .v-widget { - margin-left: auto; -} - -.v-has-caption, .v-has-caption > .v-caption { - display: inline-block; -} - -.v-caption-on-left, .v-caption-on-right { - white-space: nowrap; -} - -.v-caption-on-top > .v-caption, .v-caption-on-bottom > .v-caption { - display: block; -} - -.v-caption-on-left > .v-caption { - padding-right: 0.5em; -} - -.v-caption-on-left > .v-widget, .v-caption-on-right > .v-widget { - display: inline-block; -} - -.v-has-caption.v-has-width > .v-widget { - width: 100% !important; -} - -.v-has-caption.v-has-height > .v-widget { - height: 100% !important; -} - -.v-gridlayout { - position: relative; -} - -.v-gridlayout-slot { - position: absolute; - line-height: 1.55; -} - -.v-gridlayout-spacing-on { - overflow: hidden; -} - -.v-gridlayout-spacing, .v-gridlayout-spacing-off { - padding-left: 0; - padding-top: 0; -} - -.v-gridlayout-spacing-off { - overflow: hidden; -} - -.v-calendar-month-day-scrollable { - overflow-y: scroll; -} - -.v-calendar-week-wrapper { - position: relative; - overflow: hidden; -} - -.v-calendar-current-time { - position: absolute; - left: 0; - width: 100%; - height: 1px; - background: red; - z-index: 2; -} - -.v-calendar-event-resizetop, .v-calendar-event-resizebottom { - position: absolute; - height: 5%; - min-height: 3px; - width: 100%; - z-index: 1; -} - -.v-calendar-event-resizetop { - cursor: row-resize; - top: 0; -} - -.v-calendar-event-resizebottom { - cursor: row-resize; - bottom: 0; -} - -.v-calendar-header-month td:first-child { - padding-left: 20px; -} - -.v-calendar-month-sizedheight .v-calendar-month-day { - height: 100px; -} - -.v-calendar-month-sizedwidth .v-calendar-month-day { - width: 100px; -} - -.v-calendar-header-month-Hsized .v-calendar-header-day { - width: 101px; -} - -.v-calendar-header-month-Hsized td:first-child { - padding-left: 21px; -} - -.v-calendar-header-day-Hsized { - width: 200px; -} - -.v-calendar-week-numbers-Vsized .v-calendar-week-number { - height: 100px; - line-height: 100px; -} - -.v-calendar-week-wrapper-Vsized { - height: 400px; - overflow-x: hidden !important; -} - -.v-calendar-times-Vsized .v-calendar-time { - height: 38px; -} - -.v-calendar-times-Hsized .v-calendar-time { - width: 42px; -} - -.v-calendar-day-times-Vsized .v-datecellslot, .v-calendar-day-times-Vsized .v-datecellslot-even { - height: 18px; -} - -.v-calendar-day-times-Hsized, .v-calendar-day-times-Hsized .v-datecellslot, .v-calendar-day-times-Hsized .v-datecellslot-even { - width: 200px; -} - -.v-colorpicker-popup.v-window { - min-width: 220px !important; -} - -.v-colorpicker-gradient-container { - overflow: visible !important; -} - -.v-colorpicker-gradient-clicklayer { - opacity: 0; - filter: alpha(opacity=0) ; -} - -.rgb-gradient .v-colorpicker-gradient-background { - background: url(../valo/components/img/colorpicker/gradient2.png); -} - -.hsv-gradient .v-colorpicker-gradient-foreground { - background: url(../valo/components/img/colorpicker/gradient.png); -} - -.v-colorpicker-gradient-higherbox:before { - content: ""; - width: 11px; - height: 11px; - border-radius: 7px; - border: 1px solid #fff; - -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(0, 0, 0, 0.3); - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(0, 0, 0, 0.3); - position: absolute; - bottom: -6px; - left: -6px; -} - -.v-colorpicker-popup .v-slider.v-slider-red:before { - background-color: red; -} - -.v-colorpicker-popup .v-slider.v-slider-green:before { - background-color: green; -} - -.v-colorpicker-popup .v-slider.v-slider-blue:before { - background-color: blue; -} - -.v-colorpicker-popup .v-slider.hue-slider:before { - background: url(../valo/components/img/colorpicker/slider_hue_bg.png); -} - -.v-colorpicker-popup input.v-textfield-dark { - color: #fff; -} - -.v-colorpicker-popup input.v-textfield-light { - color: #000; -} - -.v-colorpicker-grid { - height: 319px; -} - -.v-colorpicker-popup .colorselect td { - line-height: 15px; -} - -.v-table-header table, .v-table-footer table, .v-table-table { - border-spacing: 0; - border-collapse: separate; - margin: 0; - padding: 0; - border: 0; - line-height: 1.55; -} - -.v-table-resizer, .v-table-sort-indicator { - float: right; -} - -.v-table-caption-container-align-center { - text-align: center; -} - -.v-table-caption-container-align-right { - text-align: right; -} - -.v-table-header td, .v-table-footer td, .v-table-cell-content { - padding: 0; -} - -.v-table-sort-indicator { - width: 0; -} - -.v-tabsheet-hidetabs > .v-tabsheet-tabcontainer, .v-tabsheet-spacertd, .v-disabled .v-tabsheet-scroller, .v-tabsheet .v-disabled .v-tabsheet-caption-close { - display: none; -} - -.v-tabsheet { - overflow: visible !important; - position: relative; -} - -.v-tabsheet-tabcontainer table, .v-tabsheet-tabcontainer tbody, .v-tabsheet-tabcontainer tr { - display: inline-block; - border-spacing: 0; - border-collapse: collapse; - vertical-align: top; -} - -.v-tabsheet-tabcontainer td { - display: inline-block; - padding: 0; -} - -.v-tabsheet-tabs { - white-space: nowrap; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.v-tabsheet-content { - position: relative; -} - -.v-tabsheet-content > div > .v-scrollable > .v-margin-top { - padding-top: 11px; -} - -.v-tabsheet-content > div > .v-scrollable > .v-margin-right { - padding-right: 11px; -} - -.v-tabsheet-content > div > .v-scrollable > .v-margin-bottom { - padding-bottom: 11px; -} - -.v-tabsheet-content > div > .v-scrollable > .v-margin-left { - padding-left: 11px; -} - -.v-splitpanel-vertical, .v-splitpanel-horizontal { - overflow: hidden; - white-space: nowrap; -} - -.v-splitpanel-hsplitter { - z-index: 100; - cursor: e-resize; - cursor: col-resize; -} - -.v-splitpanel-vsplitter { - z-index: 100; - cursor: s-resize; - cursor: row-resize; -} - -.v-splitpanel-hsplitter:after, .v-splitpanel-vsplitter:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; -} - -.v-splitpanel-hsplitter div, .v-splitpanel-vsplitter div { - width: inherit; - height: inherit; - overflow: hidden; - position: relative; -} - -.v-splitpanel-hsplitter div:before, .v-splitpanel-vsplitter div:before { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; -} - -.v-disabled [class$="splitter"] div { - cursor: default; -} - -.v-disabled [class$="splitter"] div:before { - display: none; -} - -.v-splitpanel-horizontal > div > .v-splitpanel-second-container { - position: static !important; - display: inline-block; - vertical-align: top; -} - -.v-splitpanel-horizontal > div > .v-splitpanel-first-container { - display: inline-block; - vertical-align: top; -} - -.sormastheme.v-app, .sormastheme.v-app-loading { - font: 400 15px/1.55 "Open Sans", sans-serif; - color: #464646; - background-color: #fafafa; - cursor: default; -} - -.sormastheme .v-app-loading { - width: 100%; - height: 100%; - background: #fafafa; -} - -.sormastheme .v-app-loading:before { - content: ""; - position: fixed; - z-index: 100; - top: 45%; - left: 50%; - width: 28px; - height: 28px; - padding: 8px; - margin-top: -22px; - margin-left: -22px; - background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50%; - border-radius: 4px; -} - -.sormastheme .v-loading-indicator { - position: fixed !important; - z-index: 99999; - left: 0; - right: auto; - top: 0; - width: 50%; - opacity: 1; - height: 4px; - background-color: #60a0ea; - pointer-events: none; - -webkit-transition: none; - -moz-transition: none; - transition: none; - -webkit-animation: v-progress-start 1000ms 200ms both; - -moz-animation: v-progress-start 1000ms 200ms both; - animation: v-progress-start 1000ms 200ms both; -} - -.sormastheme .v-loading-indicator[style*="none"] { - display: block !important; - width: 100% !important; - opacity: 0; - -webkit-animation: none; - -moz-animation: none; - animation: none; - -webkit-transition: opacity 500ms 300ms, width 300ms; - -moz-transition: opacity 500ms 300ms, width 300ms; - transition: opacity 500ms 300ms, width 300ms; -} - -.sormastheme .v-loading-indicator-delay { - width: 90%; - -webkit-animation: v-progress-delay 3.8s forwards; - -moz-animation: v-progress-delay 3.8s forwards; - animation: v-progress-delay 3.8s forwards; -} - -.v-ff .sormastheme .v-loading-indicator-delay { - width: 50%; -} - -.sormastheme .v-loading-indicator-wait { - width: 96%; - -webkit-animation: v-progress-wait 5s forwards, v-progress-wait-pulse 1s 4s infinite backwards; - -moz-animation: v-progress-wait 5s forwards, v-progress-wait-pulse 1s 4s infinite backwards; - animation: v-progress-wait 5s forwards, v-progress-wait-pulse 1s 4s infinite backwards; -} - -.v-ff .sormastheme .v-loading-indicator-wait { - width: 90%; -} - -.v-ie8 .sormastheme .v-loading-indicator, .v-ie8 .sormastheme .v-loading-indicator-delay, .v-ie8 .sormastheme .v-loading-indicator-wait, .v-ie9 .sormastheme .v-loading-indicator, .v-ie9 .sormastheme .v-loading-indicator-delay, .v-ie9 .sormastheme .v-loading-indicator-wait { - width: 28px !important; - height: 28px; - padding: 8px; - background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50%; - border-radius: 4px; - top: 8px; - right: 8px; - left: auto; - filter: alpha(opacity=50); -} - -.v-ie8 .sormastheme .v-loading-indicator[style*="none"], .v-ie8 .sormastheme .v-loading-indicator-delay[style*="none"], .v-ie8 .sormastheme .v-loading-indicator-wait[style*="none"], .v-ie9 .sormastheme .v-loading-indicator[style*="none"], .v-ie9 .sormastheme .v-loading-indicator-delay[style*="none"], .v-ie9 .sormastheme .v-loading-indicator-wait[style*="none"] { - display: none !important; -} - -.v-ie8 .sormastheme .v-loading-indicator-wait, .v-ie9 .sormastheme .v-loading-indicator-wait { - filter: alpha(opacity=100); -} - -.sormastheme .v-scrollable:focus { - outline: none; -} - -.sormastheme img.v-icon { - vertical-align: middle; -} - -.sormastheme .v-caption { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; -} - -.sormastheme .v-caption-on-left .v-caption, .sormastheme .v-caption-on-right .v-caption { - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-icon + .v-captiontext, .sormastheme .v-icon + span { - margin-left: 6px; -} - -.sormastheme .v-icon + .v-captiontext:empty, .sormastheme .v-icon + span:empty { - margin-left: 0; -} - -.sormastheme .v-errorindicator { - color: #eb2977; - font-weight: 600; - width: 16px; - text-align: center; -} - -.sormastheme .v-errorindicator:before { - content: "!"; -} - -.sormastheme .v-required-field-indicator { - color: #eb2977; - padding: 0 0.2em; -} - -.sormastheme select { - font: inherit; - font-weight: 400; - line-height: inherit; - padding: 4px; - margin: 0; - border-radius: 4px; - border: 1px solid #c5c5c5; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - color: #464646; -} - -.sormastheme select:focus { - outline: none; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme button { - font: inherit; - font-weight: 400; - line-height: 1.55; -} - -.sormastheme a { - cursor: pointer; - color: #60a0ea; - text-decoration: underline; - font-weight: inherit; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.sormastheme a:hover { - color: #8dbbf0; -} - -.sormastheme a.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-disabled { - cursor: default !important; -} - -.sormastheme .v-drag-element { - background: #fafafa; - color: #464646; - -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); - border-radius: 4px; - overflow: hidden; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-tooltip { - background-color: #323232; - background-color: rgba(50, 50, 50, 0.9); - -webkit-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); - box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); - color: white; - padding: 4px 8px; - border-radius: 3px; - max-width: 35em; - overflow: hidden !important; - font-size: 13px; -} - -.sormastheme .v-tooltip div[style*="width"] { - width: auto !important; -} - -.sormastheme .v-tooltip .v-errormessage { - background-color: white; - background-color: #fff; - color: #eb2977; - margin: -4px -8px; - padding: 4px 8px; - max-height: 10em; - overflow: auto; - font-weight: 500; -} - -.sormastheme .v-tooltip .v-errormessage h2:only-child { - font: inherit; - line-height: inherit; -} - -.sormastheme .v-tooltip .v-tooltip-text { - max-height: 10em; - overflow: auto; - margin-top: 8px; -} - -.sormastheme .v-tooltip .v-errormessage[aria-hidden="true"] + .v-tooltip-text { - margin-top: 0; -} - -.sormastheme .v-tooltip h1, .sormastheme .v-tooltip h2, .sormastheme .v-tooltip h3, .sormastheme .v-tooltip h4 { - color: inherit; -} - -.sormastheme .v-contextmenu { - padding: 4px 4px; - border-radius: 4px; - background-color: white; - color: #474747; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - padding: 4px 4px; -} - -.sormastheme .v-contextmenu[class*="animate-in"] { - -webkit-animation: valo-overlay-animate-in 120ms; - -moz-animation: valo-overlay-animate-in 120ms; - animation: valo-overlay-animate-in 120ms; -} - -.sormastheme .v-contextmenu[class*="animate-out"] { - -webkit-animation: valo-animate-out-fade 120ms; - -moz-animation: valo-animate-out-fade 120ms; - animation: valo-animate-out-fade 120ms; -} - -.sormastheme .v-contextmenu table { - border-spacing: 0; -} - -.sormastheme .v-contextmenu .gwt-MenuItem { - cursor: pointer; - line-height: 23px; - padding: 0 16px 0 8px; - border-radius: 3px; - font-weight: 400; - white-space: nowrap; - position: relative; - display: block; -} - -.sormastheme .v-contextmenu .gwt-MenuItem:active:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: #0d6cda; - opacity: 0.15; - filter: alpha(opacity=15.0) ; - pointer-events: none; - border-radius: inherit; -} - -.sormastheme .v-contextmenu .gwt-MenuItem .v-icon { - max-height: 23px; - margin-right: 4px; - min-width: 1em; -} - -.sormastheme .v-contextmenu .gwt-MenuItem-selected { - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - color: #f2f6fa; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.sormastheme .v-reconnect-dialog { - color: white; - top: 18px; - right: 18px; - max-width: 100%; - border-radius: 0; - -webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); - box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); - padding: 11px 13px; - background-color: #444; - background-color: rgba(68, 68, 68, 0.9); - line-height: 21px; - text-align: center; -} - -.sormastheme .v-reconnect-dialog .text { - display: inline-block; - padding-left: 10px; -} - -.sormastheme .v-reconnect-dialog .spinner { - height: 24px !important; - width: 24px !important; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 2px solid rgba(96, 160, 234, 0.2); - border-top-color: #60a0ea; - border-right-color: #60a0ea; - border-radius: 100%; - -webkit-animation: v-rotate-360 500ms infinite linear; - -moz-animation: v-rotate-360 500ms infinite linear; - animation: v-rotate-360 500ms infinite linear; - pointer-events: none; - display: none; - vertical-align: middle; -} - -.v-ie8 .sormastheme .v-reconnect-dialog .spinner, .v-ie9 .sormastheme .v-reconnect-dialog .spinner { - border: none; - border-radius: 4px; - background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%; - background-size: 80%; -} - -.v-ie8 .sormastheme .v-reconnect-dialog .spinner { - min-width: 30px; - min-height: 30px; -} - -.sormastheme .v-reconnect-dialog.active .spinner { - display: inline-block; -} - -.sormastheme .v-absolutelayout-wrapper { - position: absolute; -} - -.sormastheme .v-absolutelayout-margin, .sormastheme .v-absolutelayout-canvas { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.sormastheme .v-absolutelayout.v-has-height > div, .sormastheme .v-absolutelayout.v-has-height .v-absolutelayout-margin { - height: 100%; -} - -.sormastheme .v-absolutelayout.v-has-height > div, .sormastheme .v-absolutelayout.v-has-width .v-absolutelayout-margin { - width: 100%; -} - -.sormastheme .v-margin-top { - padding-top: 21px; -} - -.sormastheme .v-margin-right { - padding-right: 21px; -} - -.sormastheme .v-margin-bottom { - padding-bottom: 21px; -} - -.sormastheme .v-margin-left { - padding-left: 21px; -} - -.sormastheme .v-spacing { - width: 18px; - height: 18px; -} - -.sormastheme .v-verticallayout-well, .sormastheme .v-horizontallayout-well { - background: #f5f5f5; - color: #454545; - -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); - border-radius: 4px; - border: 1px solid #c5c5c5; -} - -.sormastheme .v-verticallayout-well > div > [class*="-caption"], .sormastheme .v-horizontallayout-well > div > [class*="-caption"] { - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-verticallayout-well > .v-margin-top, .sormastheme .v-horizontallayout-well > .v-margin-top { - padding-top: 11px; -} - -.sormastheme .v-verticallayout-well > .v-margin-right, .sormastheme .v-horizontallayout-well > .v-margin-right { - padding-right: 11px; -} - -.sormastheme .v-verticallayout-well > .v-margin-bottom, .sormastheme .v-horizontallayout-well > .v-margin-bottom { - padding-bottom: 11px; -} - -.sormastheme .v-verticallayout-well > .v-margin-left, .sormastheme .v-horizontallayout-well > .v-margin-left { - padding-left: 11px; -} - -.sormastheme .v-verticallayout-card, .sormastheme .v-horizontallayout-card { - background: white; - color: #474747; - border-radius: 4px; - border: 1px solid #d5d5d5; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); -} - -.sormastheme .v-verticallayout-card > .v-margin-top, .sormastheme .v-horizontallayout-card > .v-margin-top { - padding-top: 11px; -} - -.sormastheme .v-verticallayout-card > .v-margin-right, .sormastheme .v-horizontallayout-card > .v-margin-right { - padding-right: 11px; -} - -.sormastheme .v-verticallayout-card > .v-margin-bottom, .sormastheme .v-horizontallayout-card > .v-margin-bottom { - padding-bottom: 11px; -} - -.sormastheme .v-verticallayout-card > .v-margin-left, .sormastheme .v-horizontallayout-card > .v-margin-left { - padding-left: 11px; -} - -.sormastheme .v-horizontallayout-wrapping { - white-space: normal !important; -} - -.sormastheme .v-horizontallayout-wrapping > .v-spacing + .v-slot, .sormastheme .v-horizontallayout-wrapping > .v-slot:first-child { - margin-bottom: 18px; -} - -.sormastheme .v-horizontallayout-wrapping > .v-slot:first-child:last-child { - margin-bottom: 0; -} - -.sormastheme .v-button { - position: relative; - text-align: center; - white-space: nowrap; - outline: none; - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - height: 32px; - padding: 0 14px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.sormastheme .v-button:before { - content: ""; - display: inline-block; - width: 0; - height: 100%; - vertical-align: middle; -} - -.sormastheme .v-button > div { - vertical-align: middle; -} - -.v-sa .sormastheme .v-button:before { - height: 110%; -} - -.v-ff .sormastheme .v-button:before { - height: 107%; -} - -.v-ie .sormastheme .v-button:before { - margin-top: 4px; -} - -.sormastheme .v-button:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; -} - -.sormastheme .v-button:focus:after { - -webkit-transition: none; - -moz-transition: none; - transition: none; -} - -.sormastheme .v-button.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-button.v-disabled:after { - display: none; -} - -.sormastheme .v-button:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-button:hover:after { - background-color: rgba(186, 186, 186, 0.1); -} - -.sormastheme .v-button:focus:after { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-button:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.sormastheme .v-button-primary { - height: 32px; - padding: 0 14px; - color: #f2f6fa; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #4b7eb8; - border-top-color: #5183b9; - border-bottom-color: #4272af; - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - -webkit-box-shadow: inset 0 1px 0 #93bbed, inset 0 -1px 0 #4f8cd8, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 #93bbed, inset 0 -1px 0 #4f8cd8, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); - padding: 0 16px; - font-weight: bold; - min-width: 70px; -} - -.sormastheme .v-button-primary:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-button-primary:hover:after { - background-color: rgba(164, 200, 243, 0.1); -} - -.sormastheme .v-button-primary:focus:after { - border: inherit; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-button-primary:active:after { - background-color: rgba(4, 77, 161, 0.2); -} - -.v-ie8 .sormastheme .v-button-primary { - min-width: 38px; -} - -.sormastheme .v-button-friendly { - height: 32px; - padding: 0 14px; - color: #edf6ef; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #2a9243; - border-top-color: #2d9647; - border-bottom-color: #25873a; - background-color: #36b955; - background-image: -webkit-linear-gradient(top, #3abe5b 2%, #2fab4a 98%); - background-image: linear-gradient(to bottom,#3abe5b 2%, #2fab4a 98%); - -webkit-box-shadow: inset 0 1px 0 #64c67a, inset 0 -1px 0 #2fa349, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 #64c67a, inset 0 -1px 0 #2fa349, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.sormastheme .v-button-friendly:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-button-friendly:hover:after { - background-color: rgba(104, 211, 130, 0.1); -} - -.sormastheme .v-button-friendly:focus:after { - border: inherit; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-button-friendly:active:after { - background-color: rgba(12, 107, 35, 0.2); -} - -.sormastheme .v-button-danger { - height: 32px; - padding: 0 14px; - color: #f9eef2; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #b9205e; - border-top-color: #ba2265; - border-bottom-color: #b01b52; - background-color: #eb2977; - background-image: -webkit-linear-gradient(top, #ec2c80 2%, #df2368 98%); - background-image: linear-gradient(to bottom,#ec2c80 2%, #df2368 98%); - -webkit-box-shadow: inset 0 1px 0 #ed5d97, inset 0 -1px 0 #d52365, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 #ed5d97, inset 0 -1px 0 #d52365, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.sormastheme .v-button-danger:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-button-danger:hover:after { - background-color: rgba(242, 111, 163, 0.1); -} - -.sormastheme .v-button-danger:focus:after { - border: inherit; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-button-danger:active:after { - background-color: rgba(136, 2, 56, 0.2); -} - -.sormastheme .v-button-borderless { - border: none; - -webkit-box-shadow: none; - box-shadow: none; - background: transparent; - color: inherit; -} - -.sormastheme .v-button-borderless:hover:after { - background: transparent; -} - -.sormastheme .v-button-borderless:active { - opacity: 0.7; - filter: alpha(opacity=70) ; -} - -.sormastheme .v-button-borderless:active:after { - background: transparent; -} - -.sormastheme .v-button-borderless-colored { - border: none; - -webkit-box-shadow: none; - box-shadow: none; - background: transparent; - color: #60a0ea; -} - -.sormastheme .v-button-borderless-colored:hover { - color: #8dbbf0; -} - -.sormastheme .v-button-borderless-colored:hover:after { - background: transparent; -} - -.sormastheme .v-button-borderless-colored:active { - opacity: 0.7; - filter: alpha(opacity=70) ; -} - -.sormastheme .v-button-borderless-colored:active:after { - background: transparent; -} - -.sormastheme .v-button-quiet { - visibility: hidden; -} - -.sormastheme .v-button-quiet:focus, .sormastheme .v-button-quiet:hover { - visibility: visible; -} - -.sormastheme .v-button-quiet [class*="wrap"] { - visibility: visible; -} - -.sormastheme .v-button-quiet [class*="caption"] { - display: inline-block; -} - -.sormastheme .v-button-link { - border: none; - -webkit-box-shadow: none; - box-shadow: none; - background: transparent; - color: inherit; - cursor: pointer; - color: #60a0ea; - text-decoration: underline; - font-weight: inherit; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.sormastheme .v-button-link:hover:after { - background: transparent; -} - -.sormastheme .v-button-link:active { - opacity: 0.7; - filter: alpha(opacity=70) ; -} - -.sormastheme .v-button-link:active:after { - background: transparent; -} - -.sormastheme .v-button-link:hover { - color: #8dbbf0; -} - -.sormastheme .v-button-link.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-button-tiny { - height: 24px; - padding: 0 11px; - - - font-size: 12px; - - border-radius: 4px; -} - -.sormastheme .v-button-tiny:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-button-small { - height: 27px; - padding: 0 12px; - - - font-size: 13px; - - border-radius: 4px; -} - -.sormastheme .v-button-small:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-button-large { - height: 38px; - padding: 0 17px; - - - font-size: 18px; - - border-radius: 4px; -} - -.sormastheme .v-button-large:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-button-huge { - height: 51px; - padding: 0 22px; - - - font-size: 24px; - - border-radius: 4px; -} - -.sormastheme .v-button-huge:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-button-icon-align-right [class*="wrap"] { - display: inline-block; -} - -.sormastheme .v-button-icon-align-right .v-icon { - float: right; - margin-left: 12px; -} - -.sormastheme .v-button-icon-align-right .v-icon + span:not(:empty) { - margin-left: 0; -} - -.sormastheme .v-button-icon-align-top { - height: auto; - padding-top: 4px; - padding-bottom: 4px; -} - -.sormastheme .v-button-icon-align-top [class*="wrap"] { - display: inline-block; -} - -.sormastheme .v-button-icon-align-top .v-icon { - display: block; - margin-left: auto; - margin-right: auto; -} - -.sormastheme .v-button-icon-align-top .v-icon + span:not(:empty) { - margin-top: 6px; - margin-left: 0; -} - -.sormastheme .v-button-icon-only { - width: 32px; - padding: 0; -} - -.sormastheme .v-button-icon-only.v-button-tiny { - width: 24px; -} - -.sormastheme .v-button-icon-only.v-button-small { - width: 27px; -} - -.sormastheme .v-button-icon-only.v-button-large { - width: 38px; -} - -.sormastheme .v-button-icon-only.v-button-huge { - width: 51px; -} - -.sormastheme .v-button-icon-only .v-button-caption { - display: none; -} - -.sormastheme .v-checkbox { - position: relative; - line-height: 16px; - white-space: nowrap; -} - -.sormastheme .v-checkbox.v-has-width label { - white-space: normal; -} - -:root .sormastheme .v-checkbox { - padding-left: 21px; -} - -:root .sormastheme .v-checkbox label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .sormastheme .v-checkbox > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .sormastheme .v-checkbox > input:focus ~ label:before { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .sormastheme .v-checkbox > input ~ label:before, :root .sormastheme .v-checkbox > input ~ label:after { - content: ""; - display: inline-block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 16px; - height: 16px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 12px; - text-align: center; -} - -:root .sormastheme .v-checkbox > input ~ label:before { - height: 16px; - padding: 0 8px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 16px; -} - -:root .sormastheme .v-checkbox > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .sormastheme .v-checkbox > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .sormastheme .v-checkbox > input:checked ~ label:after { - color: #60a0ea; -} - -.sormastheme .v-checkbox > .v-icon, .sormastheme .v-checkbox > label .v-icon { - margin: 0 5px 0 3px; - min-width: 1em; - cursor: pointer; -} - -.sormastheme .v-checkbox.v-disabled > label, .sormastheme .v-checkbox.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-checkbox.v-disabled > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-checkbox.v-disabled > input:active ~ label:after { - background: transparent; -} - -.sormastheme .v-checkbox.v-readonly > label, .sormastheme .v-checkbox.v-readonly > .v-icon { - cursor: default; -} - -.sormastheme .v-checkbox.v-readonly > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-checkbox.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .sormastheme .v-checkbox.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-checkbox-small { - position: relative; - line-height: 14px; - white-space: nowrap; - font-size: 13px; -} - -.sormastheme .v-checkbox-small.v-has-width label { - white-space: normal; -} - -:root .sormastheme .v-checkbox-small { - padding-left: 18px; -} - -:root .sormastheme .v-checkbox-small label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .sormastheme .v-checkbox-small > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .sormastheme .v-checkbox-small > input:focus ~ label:before { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .sormastheme .v-checkbox-small > input ~ label:before, :root .sormastheme .v-checkbox-small > input ~ label:after { - content: ""; - display: inline-block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 14px; - height: 14px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 10px; - text-align: center; -} - -:root .sormastheme .v-checkbox-small > input ~ label:before { - height: 13.5px; - padding: 0 7px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 14px; -} - -:root .sormastheme .v-checkbox-small > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .sormastheme .v-checkbox-small > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .sormastheme .v-checkbox-small > input:checked ~ label:after { - color: #60a0ea; -} - -.sormastheme .v-checkbox-small > .v-icon, .sormastheme .v-checkbox-small > label .v-icon { - margin: 0 5px 0 2px; - min-width: 1em; - cursor: pointer; -} - -.sormastheme .v-checkbox-small.v-disabled > label, .sormastheme .v-checkbox-small.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-checkbox-small.v-disabled > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-checkbox-small.v-disabled > input:active ~ label:after { - background: transparent; -} - -.sormastheme .v-checkbox-small.v-readonly > label, .sormastheme .v-checkbox-small.v-readonly > .v-icon { - cursor: default; -} - -.sormastheme .v-checkbox-small.v-readonly > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-checkbox-small.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .sormastheme .v-checkbox-small.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-checkbox-large { - position: relative; - line-height: 19px; - white-space: nowrap; - font-size: 18px; -} - -.sormastheme .v-checkbox-large.v-has-width label { - white-space: normal; -} - -:root .sormastheme .v-checkbox-large { - padding-left: 25px; -} - -:root .sormastheme .v-checkbox-large label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .sormastheme .v-checkbox-large > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .sormastheme .v-checkbox-large > input:focus ~ label:before { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .sormastheme .v-checkbox-large > input ~ label:before, :root .sormastheme .v-checkbox-large > input ~ label:after { - content: ""; - display: inline-block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 19px; - height: 19px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 14px; - text-align: center; -} - -:root .sormastheme .v-checkbox-large > input ~ label:before { - height: 19px; - padding: 0 9px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 19px; -} - -:root .sormastheme .v-checkbox-large > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .sormastheme .v-checkbox-large > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .sormastheme .v-checkbox-large > input:checked ~ label:after { - color: #60a0ea; -} - -.sormastheme .v-checkbox-large > .v-icon, .sormastheme .v-checkbox-large > label .v-icon { - margin: 0 6px 0 3px; - min-width: 1em; - cursor: pointer; -} - -.sormastheme .v-checkbox-large.v-disabled > label, .sormastheme .v-checkbox-large.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-checkbox-large.v-disabled > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-checkbox-large.v-disabled > input:active ~ label:after { - background: transparent; -} - -.sormastheme .v-checkbox-large.v-readonly > label, .sormastheme .v-checkbox-large.v-readonly > .v-icon { - cursor: default; -} - -.sormastheme .v-checkbox-large.v-readonly > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-checkbox-large.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .sormastheme .v-checkbox-large.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-filterselect { - position: relative; - width: 160px; - height: 32px; - border-radius: 4px; - white-space: nowrap; -} - -.sormastheme .v-filterselect [class*="input"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 32px; - border-radius: 4px; - padding: 4px 8px; - border: 1px solid #c5c5c5; - background: white; - color: #474747; - -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - width: 100% !important; - height: 100%; - padding-right: 33px; - border-radius: inherit; -} - -.v-ie8 .sormastheme .v-filterselect [class*="input"], .v-ie9 .sormastheme .v-filterselect [class*="input"] { - line-height: 32px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-filterselect [class*="input"].v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-filterselect [class*="input"]:focus { - outline: none; - -webkit-transition: none; - -moz-transition: none; - transition: none; - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-filterselect [class*="input"][class*="prompt"] { - color: #a3a3a3; -} - -.sormastheme .v-filterselect .v-icon + [class*="input"] { - padding-left: 32px; -} - -.sormastheme .v-filterselect img.v-icon { - max-height: 32px; - margin-left: 8px; -} - -.sormastheme .v-filterselect span.v-icon { - color: #474747; - width: 32px; - line-height: 1; - padding-top: 0.12em; -} - -.sormastheme .v-filterselect[class*="prompt"] > [class*="input"] { - color: #a3a3a3; -} - -.sormastheme .v-filterselect [class$="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - position: absolute; - width: 32px; - top: 1px; - right: 1px; - bottom: 1px; - border-left: 1px solid #e4e4e4; - color: #a3a3a3; - border-radius: 0 3px 3px 0; -} - -.v-ie8 .sormastheme .v-filterselect [class$="button"] { - background-color: white; -} - -.sormastheme .v-filterselect [class$="button"]:before { - font-family: ThemeIcons; - content: "\f078"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - position: absolute; - width: 32px; - text-align: center; - top: 50%; - line-height: 1; - margin-top: -0.47em; -} - -.sormastheme .v-filterselect [class$="button"]:hover:before { - color: #474747; -} - -.sormastheme .v-filterselect [class$="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; - background-color: rgba(128, 128, 128, 0.2); -} - -.sormastheme .v-filterselect.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-filterselect.v-disabled [class$="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-filterselect.v-disabled [class$="button"]:active:after { - display: none; -} - -.sormastheme .v-filterselect.v-readonly [class*="input"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-filterselect.v-readonly [class*="input"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.sormastheme .v-filterselect.v-readonly [class$="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-filterselect.v-readonly [class$="button"]:active:after { - display: none; -} - -.sormastheme .v-filterselect .v-icon { - position: absolute; - pointer-events: none; -} - -.sormastheme .v-filterselect-error .v-filterselect-input { - border-color: #eb2977 !important; - background: #fffbfc; - color: #6c213f; -} - -.sormastheme .v-filterselect-error .v-filterselect-button { - color: #eb2977; - border-color: #eb2977; -} - -.sormastheme .v-filterselect-suggestpopup { - margin-top: 4px !important; -} - -.sormastheme .v-filterselect-suggestpopup[class*="animate-in"] { - -webkit-animation: valo-overlay-animate-in 120ms; - -moz-animation: valo-overlay-animate-in 120ms; - animation: valo-overlay-animate-in 120ms; -} - -.sormastheme .v-filterselect-suggestpopup [class$="suggestmenu"] { - padding: 4px 4px; - border-radius: 4px; - background-color: white; - color: #474747; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - padding: 4px 4px; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - position: relative; - z-index: 1; - display: block; -} - -.sormastheme .v-filterselect-suggestpopup table, .sormastheme .v-filterselect-suggestpopup tbody, .sormastheme .v-filterselect-suggestpopup tr, .sormastheme .v-filterselect-suggestpopup td { - display: block; - width: 100%; - overflow-y: hidden; - float: left; - clear: both; -} - -.sormastheme .v-filterselect-suggestpopup .gwt-MenuItem { - cursor: pointer; - line-height: 23px; - padding: 0 16px 0 8px; - border-radius: 3px; - font-weight: 400; - white-space: nowrap; - position: relative; - height: 23px; - box-sizing: border-box; - text-overflow: ellipsis; - overflow-x: hidden; -} - -.sormastheme .v-filterselect-suggestpopup .gwt-MenuItem:active:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: #0d6cda; - opacity: 0.15; - filter: alpha(opacity=15.0) ; - pointer-events: none; - border-radius: inherit; -} - -.sormastheme .v-filterselect-suggestpopup .gwt-MenuItem .v-icon { - max-height: 23px; - margin-right: 4px; - min-width: 1em; -} - -.sormastheme .v-filterselect-suggestpopup .gwt-MenuItem-selected { - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - color: #f2f6fa; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.sormastheme .v-filterselect-suggestpopup [class$="status"] { - position: absolute; - right: 4px; - background: rgba(212, 212, 212, 0.9); - color: #3b3b3b; - border-radius: 0 0 4px 4px; - height: 20px; - bottom: -20px; - font-size: 11px; - line-height: 20px; - padding: 0 5px; - cursor: default; - pointer-events: none; - -webkit-animation: valo-animate-in-slide-down 200ms 80ms backwards; - -moz-animation: valo-animate-in-slide-down 200ms 80ms backwards; - animation: valo-animate-in-slide-down 200ms 80ms backwards; -} - -.sormastheme .v-filterselect-suggestpopup [class$="status"] > * { - color: #3b3b3b; - text-decoration: none; -} - -.sormastheme .v-filterselect-suggestpopup div[class*="page"] { - position: absolute; - z-index: 3; - right: 0; - opacity: 0.2; - filter: alpha(opacity=20) ; - cursor: pointer; - -webkit-transition: all 200ms; - -moz-transition: all 200ms; - transition: all 200ms; - width: 22px; - height: 22px; - line-height: 22px; - text-align: center; - font-family: ThemeIcons; - -webkit-transform: scale(0.8); - -moz-transform: scale(0.8); - -ms-transform: scale(0.8); - -o-transform: scale(0.8); - transform: scale(0.8); - color: #464646; -} - -.sormastheme .v-filterselect-suggestpopup div[class*="page"]:after { - content: ""; - position: absolute; - display: block; - border-radius: 50%; -} - -.sormastheme .v-filterselect-suggestpopup div[class*="page"]:hover { - opacity: 1; - filter: none ; - background: rgba(250, 250, 250, 0.5); -} - -.sormastheme .v-filterselect-suggestpopup div[class*="page"]:hover:after { - top: -10px; - bottom: -10px; - left: -20px; - right: -20px; -} - -.sormastheme .v-filterselect-suggestpopup div[class*="page"] span { - display: none; -} - -.sormastheme .v-filterselect-suggestpopup:hover div[class*="page"] { - -webkit-transform: scale(1); - -moz-transform: scale(1); - -ms-transform: scale(1); - -o-transform: scale(1); - transform: scale(1); -} - -.sormastheme .v-filterselect-suggestpopup div[class*="prev"] { - top: 0; - -webkit-transform-origin: 100% 0%; - -moz-transform-origin: 100% 0%; - -ms-transform-origin: 100% 0%; - -o-transform-origin: 100% 0%; - transform-origin: 100% 0%; - border-radius: 0 4px 0 4px; -} - -.sormastheme .v-filterselect-suggestpopup div[class*="prev"]:before { - content: "\f0d8"; -} - -.sormastheme .v-filterselect-suggestpopup div[class*="next"] { - bottom: 0; - -webkit-transform-origin: 100% 100%; - -moz-transform-origin: 100% 100%; - -ms-transform-origin: 100% 100%; - -o-transform-origin: 100% 100%; - transform-origin: 100% 100%; - border-radius: 4px 0 4px 0; -} - -.sormastheme .v-filterselect-suggestpopup div[class*="next"]:before { - content: "\f0d7"; -} - -.sormastheme .v-filterselect-suggestpopup div[class*="-off"] { - display: none; -} - -.sormastheme .v-filterselect-no-input { - cursor: pointer; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.sormastheme .v-filterselect-no-input [class*="input"] { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - cursor: inherit; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - text-shadow: inherit; - text-overflow: ellipsis; - border-radius: inherit; -} - -.sormastheme .v-filterselect-no-input [class*="input"]:focus { - outline: none; - -webkit-transition: none; - -moz-transition: none; - transition: none; - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-filterselect-no-input [class$="button"] { - border-left: none !important; -} - -.sormastheme .v-filterselect-no-input:hover [class$="button"]:before { - color: inherit; -} - -.sormastheme .v-filterselect-borderless .v-filterselect-input { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.sormastheme .v-filterselect-borderless .v-filterselect-input:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-filterselect-borderless .v-filterselect-input[class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-filterselect-borderless .v-filterselect-button { - border: none; - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-filterselect-borderless.v-filterselect-prompt .v-filterselect-input { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-filterselect-align-right input { - text-align: right; -} - -.sormastheme .v-filterselect-align-center input { - text-align: center; -} - -.sormastheme .v-filterselect-tiny { - height: 24px; - - font-size: 12px; -} - -.sormastheme .v-filterselect-tiny [class*="input"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 24px; - - padding: 3px 4px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - width: 100% !important; - height: 100%; - padding-right: 25px; - border-radius: inherit; -} - -.v-ie8 .sormastheme .v-filterselect-tiny [class*="input"], .v-ie9 .sormastheme .v-filterselect-tiny [class*="input"] { - line-height: 24px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-filterselect-tiny .v-icon + [class*="input"] { - padding-left: 24px; -} - -.sormastheme .v-filterselect-tiny img.v-icon { - max-height: 24px; - margin-left: 4px; -} - -.sormastheme .v-filterselect-tiny span.v-icon { - - width: 24px; - line-height: 1; - padding-top: 0.12em; -} - -.sormastheme .v-filterselect-tiny [class$="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - position: absolute; - width: 24px; - border-radius: 0 4px 4px 0; -} - -.sormastheme .v-filterselect-tiny [class$="button"]:before { - font-family: ThemeIcons; - content: "\f078"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - position: absolute; - width: 24px; - text-align: center; - top: 50%; - line-height: 1; - margin-top: -0.47em; -} - -.sormastheme .v-filterselect-tiny [class$="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.sormastheme .v-filterselect-tiny.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-filterselect-tiny.v-disabled [class$="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-filterselect-tiny.v-disabled [class$="button"]:active:after { - display: none; -} - -.sormastheme .v-filterselect-tiny.v-readonly [class*="input"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-filterselect-tiny.v-readonly [class*="input"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.sormastheme .v-filterselect-tiny.v-readonly [class$="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-filterselect-tiny.v-readonly [class$="button"]:active:after { - display: none; -} - -.sormastheme .v-filterselect-compact, .sormastheme .v-filterselect-small { - height: 27px; - -} - -.sormastheme .v-filterselect-compact [class*="input"], .sormastheme .v-filterselect-small [class*="input"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 27px; - - padding: 3px 5px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - width: 100% !important; - height: 100%; - padding-right: 28px; - border-radius: inherit; -} - -.v-ie8 .sormastheme .v-filterselect-compact [class*="input"], .v-ie9 .sormastheme .v-filterselect-compact [class*="input"], .v-ie8 .sormastheme .v-filterselect-small [class*="input"], .v-ie9 .sormastheme .v-filterselect-small [class*="input"] { - line-height: 27px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-filterselect-compact .v-icon + [class*="input"], .sormastheme .v-filterselect-small .v-icon + [class*="input"] { - padding-left: 27px; -} - -.sormastheme .v-filterselect-compact img.v-icon, .sormastheme .v-filterselect-small img.v-icon { - max-height: 27px; - margin-left: 5px; -} - -.sormastheme .v-filterselect-compact span.v-icon, .sormastheme .v-filterselect-small span.v-icon { - - width: 27px; - line-height: 1; - padding-top: 0.12em; -} - -.sormastheme .v-filterselect-compact [class$="button"], .sormastheme .v-filterselect-small [class$="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - position: absolute; - width: 27px; - border-radius: 0 4px 4px 0; -} - -.sormastheme .v-filterselect-compact [class$="button"]:before, .sormastheme .v-filterselect-small [class$="button"]:before { - font-family: ThemeIcons; - content: "\f078"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - position: absolute; - width: 27px; - text-align: center; - top: 50%; - line-height: 1; - margin-top: -0.47em; -} - -.sormastheme .v-filterselect-compact [class$="button"]:active:after, .sormastheme .v-filterselect-small [class$="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.sormastheme .v-filterselect-compact.v-disabled, .sormastheme .v-filterselect-small.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-filterselect-compact.v-disabled [class$="button"], .sormastheme .v-filterselect-small.v-disabled [class$="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-filterselect-compact.v-disabled [class$="button"]:active:after, .sormastheme .v-filterselect-small.v-disabled [class$="button"]:active:after { - display: none; -} - -.sormastheme .v-filterselect-compact.v-readonly [class*="input"], .sormastheme .v-filterselect-small.v-readonly [class*="input"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-filterselect-compact.v-readonly [class*="input"]:focus, .sormastheme .v-filterselect-small.v-readonly [class*="input"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.sormastheme .v-filterselect-compact.v-readonly [class$="button"], .sormastheme .v-filterselect-small.v-readonly [class$="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-filterselect-compact.v-readonly [class$="button"]:active:after, .sormastheme .v-filterselect-small.v-readonly [class$="button"]:active:after { - display: none; -} - -.sormastheme .v-filterselect-small { - font-size: 13px; -} - -.sormastheme .v-filterselect-large { - height: 38px; - - font-size: 18px; -} - -.sormastheme .v-filterselect-large [class*="input"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 38px; - - padding: 4px 7px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - width: 100% !important; - height: 100%; - padding-right: 39px; - border-radius: inherit; -} - -.v-ie8 .sormastheme .v-filterselect-large [class*="input"], .v-ie9 .sormastheme .v-filterselect-large [class*="input"] { - line-height: 38px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-filterselect-large .v-icon + [class*="input"] { - padding-left: 38px; -} - -.sormastheme .v-filterselect-large img.v-icon { - max-height: 38px; - margin-left: 7px; -} - -.sormastheme .v-filterselect-large span.v-icon { - - width: 38px; - line-height: 1; - padding-top: 0.12em; -} - -.sormastheme .v-filterselect-large [class$="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - position: absolute; - width: 38px; - border-radius: 0 4px 4px 0; -} - -.sormastheme .v-filterselect-large [class$="button"]:before { - font-family: ThemeIcons; - content: "\f078"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - position: absolute; - width: 38px; - text-align: center; - top: 50%; - line-height: 1; - margin-top: -0.47em; -} - -.sormastheme .v-filterselect-large [class$="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.sormastheme .v-filterselect-large.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-filterselect-large.v-disabled [class$="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-filterselect-large.v-disabled [class$="button"]:active:after { - display: none; -} - -.sormastheme .v-filterselect-large.v-readonly [class*="input"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-filterselect-large.v-readonly [class*="input"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.sormastheme .v-filterselect-large.v-readonly [class$="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-filterselect-large.v-readonly [class$="button"]:active:after { - display: none; -} - -.sormastheme .v-filterselect-huge { - height: 51px; - - font-size: 24px; -} - -.sormastheme .v-filterselect-huge [class*="input"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 51px; - - padding: 6px 9px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - width: 100% !important; - height: 100%; - padding-right: 52px; - border-radius: inherit; -} - -.v-ie8 .sormastheme .v-filterselect-huge [class*="input"], .v-ie9 .sormastheme .v-filterselect-huge [class*="input"] { - line-height: 51px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-filterselect-huge .v-icon + [class*="input"] { - padding-left: 51px; -} - -.sormastheme .v-filterselect-huge img.v-icon { - max-height: 51px; - margin-left: 9px; -} - -.sormastheme .v-filterselect-huge span.v-icon { - - width: 51px; - line-height: 1; - padding-top: 0.12em; -} - -.sormastheme .v-filterselect-huge [class$="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - position: absolute; - width: 51px; - border-radius: 0 4px 4px 0; -} - -.sormastheme .v-filterselect-huge [class$="button"]:before { - font-family: ThemeIcons; - content: "\f078"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - position: absolute; - width: 51px; - text-align: center; - top: 50%; - line-height: 1; - margin-top: -0.47em; -} - -.sormastheme .v-filterselect-huge [class$="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.sormastheme .v-filterselect-huge.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-filterselect-huge.v-disabled [class$="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-filterselect-huge.v-disabled [class$="button"]:active:after { - display: none; -} - -.sormastheme .v-filterselect-huge.v-readonly [class*="input"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-filterselect-huge.v-readonly [class*="input"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.sormastheme .v-filterselect-huge.v-readonly [class$="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-filterselect-huge.v-readonly [class$="button"]:active:after { - display: none; -} - -.sormastheme .v-csslayout-well { - background: #f5f5f5; - color: #454545; - -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); - border-radius: 4px; - border: 1px solid #c5c5c5; -} - -.sormastheme .v-csslayout-well > div > [class*="-caption"] { - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-csslayout-well > .v-margin-top { - padding-top: 11px; -} - -.sormastheme .v-csslayout-well > .v-margin-right { - padding-right: 11px; -} - -.sormastheme .v-csslayout-well > .v-margin-bottom { - padding-bottom: 11px; -} - -.sormastheme .v-csslayout-well > .v-margin-left { - padding-left: 11px; -} - -.sormastheme .v-csslayout-card { - background: white; - color: #474747; - border-radius: 4px; - border: 1px solid #d5d5d5; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); -} - -.sormastheme .v-csslayout-card > .v-margin-top { - padding-top: 11px; -} - -.sormastheme .v-csslayout-card > .v-margin-right { - padding-right: 11px; -} - -.sormastheme .v-csslayout-card > .v-margin-bottom { - padding-bottom: 11px; -} - -.sormastheme .v-csslayout-card > .v-margin-left { - padding-left: 11px; -} - -.sormastheme .v-csslayout-v-component-group { - white-space: nowrap; - position: relative; -} - -.sormastheme .v-csslayout-v-component-group .v-widget ~ .v-widget:not(:last-child) { - border-radius: 0; -} - -.sormastheme .v-csslayout-v-component-group .v-widget:last-child { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.sormastheme .v-csslayout-v-component-group .v-widget:first-child, .sormastheme .v-csslayout-v-component-group .v-caption:first-child + .v-widget { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.sormastheme .v-csslayout-v-component-group .v-widget ~ .v-widget.first.first { - border-radius: 4px 0 0 4px; -} - -.sormastheme .v-csslayout-v-component-group .v-widget ~ .v-widget.last.last { - border-radius: 0 4px 4px 0; -} - -.sormastheme .v-csslayout-v-component-group .v-widget { - vertical-align: middle; - margin-left: -1px; -} - -.sormastheme .v-csslayout-v-component-group .v-widget:first-child { - margin-left: 0; -} - -.sormastheme .v-csslayout-v-component-group .v-widget:focus, .sormastheme .v-csslayout-v-component-group .v-widget[class*="focus"], .sormastheme .v-csslayout-v-component-group .v-widget [class*="focus"] { - position: relative; - z-index: 5; -} - -.sormastheme .v-form fieldset { - border: none; - padding: 0; - margin: 0; - height: 100%; -} - -.sormastheme .v-form-content { - height: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.sormastheme [class*="spacing"] > tbody > [class*="row"] > td { - padding-top: 18px; -} - -.sormastheme [class*="spacing"] > tbody > [class*="firstrow"] > td { - padding-top: 0; -} - -.sormastheme [class*="margin-top"] > tbody > [class*="firstrow"] > td { - padding-top: 21px; -} - -.sormastheme [class*="margin-bottom"] > tbody > [class*="lastrow"] > td { - padding-bottom: 21px; -} - -.sormastheme [class*="margin-left"] > tbody > [class*="row"] > [class*="captioncell"] { - padding-left: 21px; -} - -.sormastheme [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .sormastheme [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .sormastheme [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { - left: 21px; -} - -.sormastheme [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] { - padding-right: 21px; -} - -.sormastheme [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .sormastheme [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .sormastheme [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { - right: 21px; -} - -.sormastheme .v-formlayout > table { - border-spacing: 0; - position: relative; -} - -.sormastheme .v-formlayout.v-has-width > table, .sormastheme .v-formlayout.v-has-width .v-formlayout-contentcell { - width: 100%; -} - -.sormastheme .v-formlayout-error-indicator { - width: 16px; -} - -.sormastheme .v-formlayout-captioncell { - vertical-align: top; - line-height: 31px; -} - -.sormastheme .v-formlayout-captioncell .v-caption { - padding-bottom: 0; -} - -.sormastheme .v-formlayout-captioncell .v-caption-h2, .sormastheme .v-formlayout-captioncell .v-caption-h3, .sormastheme .v-formlayout-captioncell .v-caption-h4 { - height: 3em; -} - -.sormastheme .v-formlayout-contentcell .v-checkbox, .sormastheme .v-formlayout-contentcell .v-radiobutton { - font-weight: 500; -} - -.sormastheme .v-formlayout-contentcell > .v-label-h2, .sormastheme .v-formlayout-contentcell > .v-label-h3, .sormastheme .v-formlayout-contentcell > .v-label-h4 { - position: absolute; - left: 0; - right: 0; - width: auto !important; - margin-top: -0.5em; - padding-bottom: 0.5em; - border-bottom: 1px solid #dfdfdf; -} - -.sormastheme .v-formlayout.light > table { - padding: 0; -} - -.sormastheme .v-formlayout.light > table > tbody > tr > td { - padding-top: 0; - height: 32px; - border-bottom: 1px solid #eaeaea; -} - -.sormastheme .v-formlayout.light > table > tbody > [class*="lastrow"] > td { - border-bottom: none; -} - -.sormastheme .v-formlayout.light > table > tbody > tr > [class*="captioncell"] { - color: #7d7d7d; - text-align: right; - padding-left: 11px; - line-height: 32px; -} - -.sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] { - padding-right: 0; -} - -.sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect-input, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield-textfield { - width: 100%; -} - -.sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 32px; - border-radius: 0; - padding: 4px 6px; - - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - background: transparent; - border: none; - color: inherit; -} - -.v-ie8 .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield, .v-ie9 .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield, .v-ie8 .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea, .v-ie9 .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea, .v-ie8 .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input, .v-ie9 .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input, .v-ie8 .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input, .v-ie9 .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input, .v-ie8 .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea, .v-ie9 .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea { - line-height: 32px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield.v-disabled, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea.v-disabled, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input.v-disabled, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input.v-disabled, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield:focus, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea:focus, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input:focus, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input:focus, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea:focus { - outline: none; - -webkit-transition: none; - -moz-transition: none; - transition: none; - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), none; - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), none; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield:focus, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea:focus, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect input:focus, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield input:focus, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea:focus { - box-shadow: none; -} - -.sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textfield-prompt, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea-prompt, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-filterselect-prompt input, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-datefield-prompt input { - color: #a3a3a3; -} - -.sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-textarea, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-richtextarea { - height: auto; -} - -.sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { - border-bottom: none; - left: 0; - right: 0; -} - -.sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .sormastheme .v-formlayout.light > table > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { - margin-top: 0; -} - -.sormastheme .v-formlayout.light .v-richtextarea { - margin: 4px 0; -} - -.sormastheme .v-formlayout.light .v-filterselect-button, .sormastheme .v-formlayout.light .v-datefield-button { - border: none; -} - -.sormastheme .v-formlayout.light .v-filterselect-button:active:after, .sormastheme .v-formlayout.light .v-datefield-button:active:after { - display: none; -} - -.sormastheme .v-formlayout.light .v-datefield-button { - right: 0; - left: auto; -} - -.sormastheme .v-formlayout.light .v-checkbox { - margin-left: 6px; -} - -.sormastheme .v-grid { - position: relative; -} - -.sormastheme .v-grid-scroller { - position: absolute; - z-index: 1; - outline: none; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.sormastheme .v-grid-scroller-horizontal { - left: 0; - right: 0; - bottom: 0; - overflow-y: hidden; - -ms-overflow-y: hidden; -} - -.sormastheme .v-grid-scroller-vertical { - right: 0; - top: 0; - bottom: 0; - overflow-x: hidden; - -ms-overflow-x: hidden; -} - -.sormastheme .v-grid-tablewrapper { - position: absolute; - overflow: hidden; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - z-index: 5; -} - -.sormastheme .v-grid-tablewrapper > table { - border-spacing: 0; - table-layout: fixed; - width: inherit; -} - -.sormastheme .v-grid-header-deco, .sormastheme .v-grid-footer-deco { - position: absolute; - right: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.sormastheme .v-grid-horizontal-scrollbar-deco { - position: absolute; - bottom: 0; - left: 0; - right: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.sormastheme .v-grid-header, .sormastheme .v-grid-body, .sormastheme .v-grid-footer { - position: absolute; - left: 0; - width: inherit; - z-index: 10; -} - -.sormastheme .v-grid-header, .sormastheme .v-grid-header-deco { - top: 0; -} - -.sormastheme .v-grid-footer, .sormastheme .v-grid-footer-deco { - bottom: 0; -} - -.sormastheme .v-grid-body { - -ms-touch-action: none; - touch-action: none; - z-index: 0; - top: 0; -} - -.sormastheme .v-grid-body .v-grid-row { - position: absolute; - top: 0; - left: 0; -} - -.sormastheme .v-grid-row { - display: block; -} - -.v-ie8 .sormastheme .v-grid-row, .v-ie9 .sormastheme .v-grid-row { - float: left; - clear: left; - margin-top: 0; -} - -.sormastheme .v-grid-row > td, .sormastheme .v-grid-row > th { - background-color: white; -} - -.sormastheme .v-grid-row { - width: inherit; -} - -.sormastheme .v-grid-cell { - display: block; - float: left; - padding: 2px; - white-space: nowrap; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - overflow: hidden; - font-size: 15px; -} - -.sormastheme .v-grid-cell.frozen { - position: relative; - z-index: 1; -} - -.sormastheme .v-grid-spacer { - position: absolute; - display: block; - background-color: white; -} - -.sormastheme .v-grid-spacer > td { - width: 100%; - height: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.v-ie8 .sormastheme .v-grid-spacer, .v-ie9 .sormastheme .v-grid-spacer { - margin-top: 0; -} - -.sormastheme .v-grid { - outline: none; -} - -.sormastheme .v-grid-scroller-vertical, .sormastheme .v-grid-scroller-horizontal { - border: 1px solid #d4d4d4; -} - -.sormastheme .v-grid-scroller-vertical { - border-left: none; -} - -.sormastheme .v-grid-scroller-horizontal { - border-top: none; -} - -.sormastheme .v-grid-tablewrapper { - border: 1px solid #d4d4d4; -} - -.sormastheme .v-grid .header-drag-table { - border-spacing: 0; - position: relative; - table-layout: fixed; - width: inherit; -} - -.sormastheme .v-grid .header-drag-table .v-grid-header { - position: absolute; -} - -.sormastheme .v-grid .header-drag-table .v-grid-header > .v-grid-cell { - border: 1px solid #d4d4d4; - margin-top: -10px; - opacity: 0.9; - filter: alpha(opacity=90); - z-index: 30000; -} - -.sormastheme .v-grid .header-drag-table .v-grid-header > .v-grid-drop-marker { - background-color: #60a0ea; - position: absolute; - width: 3px; -} - -.sormastheme .v-grid-sidebar.v-contextmenu { - -webkit-box-shadow: none; - box-shadow: none; - border-radius: 0; - position: absolute; - top: 0; - right: 0; - background-color: #fafafa; - border: 1px solid #d4d4d4; - padding: 0; - z-index: 5; -} - -.sormastheme .v-grid-sidebar.v-contextmenu.v-grid-sidebar-popup { - right: auto; -} - -.sormastheme .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button { - background: transparent; - border: none; - color: inherit; - cursor: pointer; - outline: none; - padding: 0 4px; - text-align: right; - line-height: 1; -} - -.sormastheme .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button[disabled] { - cursor: default; -} - -.sormastheme .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button::-moz-focus-inner { - border: 0; -} - -.sormastheme .v-grid-sidebar.v-contextmenu .v-grid-sidebar-button:after { - content: "\f0c9"; - display: block; - font-family: ThemeIcons, sans-serif; - font-size: 13px; -} - -.sormastheme .v-grid-sidebar.v-contextmenu.closed { - border-radius: 0; -} - -.sormastheme .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button { - width: 100%; -} - -.sormastheme .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button:after { - content: "\f0c9"; - font-size: 13px; - line-height: 1; -} - -.v-ie .sormastheme .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button { - vertical-align: middle; -} - -.v-ie8 .sormastheme .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-button:after { - vertical-align: middle; - text-align: center; - display: inline; -} - -.sormastheme .v-grid-sidebar.v-contextmenu .v-grid-sidebar-content { - padding: 4px 0; - overflow-y: auto; - overflow-x: hidden; -} - -.sormastheme .v-grid-sidebar.v-contextmenu .v-grid-sidebar-content .gwt-MenuBar .gwt-MenuItem .column-hiding-toggle { - text-shadow: none; -} - -.sormastheme .v-grid-cell { - background-color: white; - padding: 0 16.5px; - line-height: 32px; - text-overflow: ellipsis; -} - -.sormastheme .v-grid-cell > * { - line-height: 1.55; - vertical-align: middle; -} - -.sormastheme .v-grid-cell > div { - display: inline-block; -} - -.sormastheme .v-grid-cell.frozen { - -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - border-right: 1px solid #d4d4d4; -} - -.sormastheme .v-grid-cell.frozen + th, .sormastheme .v-grid-cell.frozen + td { - border-left: none; -} - -.sormastheme .v-grid-row > td, .sormastheme .v-grid-editor-cells > div { - border-left: 1px solid #d4d4d4; - border-bottom: 1px solid #d4d4d4; -} - -.sormastheme .v-grid-row > td:first-child, .sormastheme .v-grid-editor-cells > div:first-child { - border-left: none; -} - -.sormastheme .v-grid-editor-cells.frozen > div { - -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - border-right: 1px solid #d4d4d4; - border-left: none; -} - -.sormastheme .v-grid-row-stripe > td { - background-color: #f5f5f5; -} - -.sormastheme .v-grid-row-selected > td { - background: #60a0ea; -} - -.sormastheme .v-grid-row-focused > td { - -} - -.sormastheme .v-grid-header th { - position: relative; - background-color: #fafafa; - font-size: 13px; - font-weight: inherit; - border-left: 1px solid #d4d4d4; - border-bottom: 1px solid #d4d4d4; - - text-align: left; -} - -.sormastheme .v-grid-header th:first-child { - border-left: none; -} - -.sormastheme .v-grid-header .sort-asc, .sormastheme .v-grid-header .sort-desc { - padding-right: 32.5px; -} - -.sormastheme .v-grid-header .sort-asc:after, .sormastheme .v-grid-header .sort-desc:after { - font-family: ThemeIcons, sans-serif; - content: "\f0de" " " attr(sort-order); - position: absolute; - right: 16.5px; - font-size: 11px; -} - -.sormastheme .v-grid-header .sort-desc:after { - content: "\f0dd" " " attr(sort-order); -} - -.sormastheme .v-grid-column-resize-handle { - position: absolute; - width: 33px; - right: -16.5px; - top: 0px; - bottom: 0px; - cursor: col-resize; - z-index: 10; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.sormastheme .v-grid-column-resize-simple-indicator { - position: absolute; - width: 3px; - top: 0px; - left: 16.5px; - z-index: 9001; - background: #fff; - box-shadow: 0px 0px 5px #000; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.sormastheme .v-grid-footer td { - background-color: #fafafa; - font-size: 13px; - font-weight: inherit; - border-left: 1px solid #d4d4d4; - border-top: 1px solid #d4d4d4; - border-bottom: none; - -} - -.sormastheme .v-grid-footer td:first-child { - border-left: none; -} - -.sormastheme .v-grid-header .v-grid-cell, .sormastheme .v-grid-footer .v-grid-cell { - overflow: visible; -} - -.sormastheme .v-grid-column-header-content, .sormastheme .v-grid-column-footer-content { - width: 100%; - overflow: hidden; - text-overflow: ellipsis; - line-height: 32px; - vertical-align: baseline; -} - -.sormastheme .v-grid-header-deco { - border-top: 1px solid #d4d4d4; - border-right: 1px solid #d4d4d4; - background-color: #fafafa; -} - -.sormastheme .v-grid-footer-deco { - border-bottom: 1px solid #d4d4d4; - border-right: 1px solid #d4d4d4; - background-color: #fafafa; -} - -.sormastheme .v-grid-horizontal-scrollbar-deco { - background-color: #fafafa; - border: 1px solid #d4d4d4; - border-top: none; -} - -.sormastheme .v-grid-cell-focused { - position: relative; -} - -.sormastheme .v-grid-cell-focused:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border: 2px solid #60a0ea; - display: none; - pointer-events: none; -} - -.ie8 .sormastheme .v-grid-cell-focused:before, .ie9 .sormastheme .v-grid-cell-focused:before, .ie10 .sormastheme .v-grid-cell-focused:before { - content: url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==); -} - -.sormastheme .v-grid:focus .v-grid-cell-focused:before { - display: block; -} - -.sormastheme .v-grid.v-disabled:focus .v-grid-cell-focused:before { - display: none; -} - -.sormastheme .v-grid-editor { - position: absolute; - z-index: 20; - overflow: hidden; - left: 0; - right: 0; - border: 1px solid #d4d4d4; - box-sizing: border-box; - -moz-box-sizing: border-box; - margin-top: -1px; - -webkit-box-shadow: 0 0 9px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 9px rgba(0, 0, 0, 0.2); -} - -.sormastheme .v-grid-editor.unbuffered .v-grid-editor-footer { - width: 100%; -} - -.sormastheme .v-grid-editor-cells { - position: relative; - white-space: nowrap; -} - -.sormastheme .v-grid-editor-cells.frozen { - z-index: 2; -} - -.sormastheme .v-grid-editor-cells > div { - display: inline-block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - vertical-align: middle; - background: white; -} - -.sormastheme .v-grid-editor-cells > div:first-child { - border-left: none; -} - -.sormastheme .v-grid-editor-cells > div > * { - vertical-align: middle; - display: inline-block; -} - -.sormastheme .v-grid-editor-cells > div .v-filterselect { - padding-left: 0; -} - -.sormastheme .v-grid-editor-cells > div input[type="text"], .sormastheme .v-grid-editor-cells > div input[type="text"].v-filterselect-input, .sormastheme .v-grid-editor-cells > div input[type="password"] { - padding-left: 16.5px; -} - -.sormastheme .v-grid-editor-cells > div input[type="text"]:not(.v-filterselect-input), .sormastheme .v-grid-editor-cells > div input[type="password"] { - padding-right: 8.25px; -} - -.sormastheme .v-grid-editor-cells > div input[type="checkbox"] { - margin-left: 16.5px; -} - -.sormastheme .v-grid-editor-cells > div .v-textfield, .sormastheme .v-grid-editor-cells > div .v-datefield, .sormastheme .v-grid-editor-cells > div .v-filterselect { - min-width: 100%; - max-width: 100%; - min-height: 100%; - max-height: 100%; -} - -.v-ie8 .sormastheme .v-grid-editor-cells > div .v-datefield-button { - margin-left: -37px; -} - -.v-ie8 .sormastheme .v-grid-editor-cells > div .v-filterselect-button { - margin-left: -25px; -} - -.sormastheme .v-grid-editor-cells > div .v-select, .sormastheme .v-grid-editor-cells > div .v-select-select { - min-width: 100%; - max-width: 100%; -} - -.sormastheme .v-grid-editor-cells > div.not-editable.v-grid-cell { - float: none; -} - -.sormastheme .v-grid-editor-cells .error::before { - position: absolute; - display: block; - height: 0; - width: 0; - content: ""; - border-top: 5px solid red; - border-right: 5px solid transparent; -} - -.sormastheme .v-grid-editor-cells .error, .sormastheme .v-grid-editor-cells .error > input { - background-color: #fee; -} - -.sormastheme .v-grid-editor-footer { - display: table; - height: 32px; - border-top: 1px solid #d4d4d4; - margin-top: -1px; - background: white; - padding: 0 5px; -} - -.sormastheme .v-grid-editor-footer + .v-grid-editor-cells > div { - border-bottom: none; - border-top: 1px solid #d4d4d4; -} - -.sormastheme .v-grid-editor-footer:first-child { - border-top: none; - margin-top: 0; - border-bottom: 1px solid #d4d4d4; - margin-bottom: -1px; -} - -.sormastheme .v-grid-editor-message, .sormastheme .v-grid-editor-buttons { - display: table-cell; - white-space: nowrap; - vertical-align: middle; -} - -.sormastheme .v-grid-editor-message { - width: 100%; - position: relative; -} - -.sormastheme .v-grid-editor-message > div { - position: absolute; - width: 100%; - overflow: hidden; - text-overflow: ellipsis; - line-height: 32px; - top: 0; -} - -.sormastheme .v-grid-editor-save { - margin-right: 4px; -} - -.sormastheme .v-grid-spacer { - padding-left: 1px; -} - -.sormastheme .v-grid-spacer > td { - display: block; - padding: 0; - background-color: white; - border-top: 1px solid #eeeeee; - border-bottom: 1px solid #d4d4d4; -} - -.sormastheme .v-grid-spacer.stripe > td { - background-color: #f5f5f5; - border-top: 1px solid #e5e5e5; - border-bottom: 1px solid #d4d4d4; -} - -.sormastheme .v-grid-spacer-deco-container { - border-top: 1px solid transparent; - position: relative; - top: 0; - z-index: 5; -} - -.sormastheme .v-grid-spacer-deco { - top: 0; - left: 0; - width: 2px; - background-color: #60a0ea; - position: absolute; - height: 100%; - pointer-events: none; -} - -.ie8 .sormastheme .v-grid-spacer-deco:before, .ie9 .sormastheme .v-grid-spacer-deco:before, .ie10 .sormastheme .v-grid-spacer-deco:before { - content: url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==); -} - -.sormastheme .v-grid-cell > .v-progressbar { - width: 100%; -} - -.sormastheme .v-grid { - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - background-color: #fafafa; -} - -.sormastheme .v-grid.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-grid-header .v-grid-cell { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.sormastheme .v-grid-header .v-grid-cell.dragged { - opacity: 0.5; - filter: alpha(opacity=50) ; - -webkit-transition: opacity 0.3s ease-in-out; - -moz-transition: opacity 0.3s ease-in-out; - transition: opacity 0.3s ease-in-out; -} - -.sormastheme .v-grid-header .v-grid-cell.dragged-column-header { - margin-top: -16px; -} - -.sormastheme .v-grid-footer .v-grid-cell { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.sormastheme .v-grid-header-deco { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); -} - -.sormastheme .v-grid-footer-deco, .sormastheme .v-grid-horizontal-scrollbar-deco { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); -} - -.sormastheme .v-grid-row-selected > .v-grid-cell { - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - color: #d9e5f2; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); - border-color: #458bdc; -} - -.sormastheme .v-grid-row-selected > .v-grid-cell-focused:before { - border-color: #bad6f6; -} - -.sormastheme .v-grid-editor { - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - border-color: #60a0ea; -} - -.sormastheme .v-grid-editor-footer { - font-size: 13px; - padding: 0 9px; - background: #fafafa; - -webkit-animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; - -moz-animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; - animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; -} - -.sormastheme .v-grid-editor-footer:first-child { - -webkit-animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; - -moz-animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; - animation: valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards; -} - -.sormastheme .v-grid-editor-cells { - z-index: 1; -} - -.sormastheme .v-grid-editor-cells > div:before { - content: ""; - display: inline-block; - height: 100%; - vertical-align: middle; -} - -.sormastheme .v-grid-editor-cells > div.not-editable.v-grid-cell { - float: none; -} - -.sormastheme .v-grid-editor-cells > div .error::before { - border-top: 8px solid #eb2977; - border-right: 8px solid transparent; -} - -.sormastheme .v-grid-editor-cells > div .error, .sormastheme .v-grid-editor-cells > div .error > input { - background-color: #fffbfc; -} - -.sormastheme .v-grid-editor-cells > div .v-textfield, .sormastheme .v-grid-editor-cells > div .v-textfield-focus, .sormastheme .v-grid-editor-cells > div .v-datefield, .sormastheme .v-grid-editor-cells > div .v-datefield .v-textfield-focus, .sormastheme .v-grid-editor-cells > div .v-filterselect-input, .sormastheme .v-grid-editor-cells > div .v-filterselect-input:focus { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: inset 0 1px 0 #f2f2f2; - box-shadow: inset 0 1px 0 #f2f2f2; -} - -.sormastheme .v-grid-editor-cells > div input[type="text"].v-datefield-textfield { - padding-left: 38.4px; -} - -.v-ie8 .sormastheme .v-grid-editor-cells > div .v-datefield-button { - margin-left: 0px; -} - -.v-ie8 .sormastheme .v-grid-editor-cells > div .v-filterselect-button { - margin-left: 0px; -} - -.sormastheme .v-grid-editor-cells > div .v-textfield-focus, .sormastheme .v-grid-editor-cells > div .v-datefield .v-textfield-focus, .sormastheme .v-grid-editor-cells > div .v-filterselect-input:focus { - position: relative; -} - -.sormastheme .v-grid-editor-cells > div .v-select { - padding-left: 8px; - padding-right: 8px; -} - -.sormastheme .v-grid-editor-cells > div .v-checkbox { - margin: 0 8px 0 16.5px; -} - -.sormastheme .v-grid-editor-cells > div .v-checkbox > input[type="checkbox"] { - margin-left: 0; -} - -.sormastheme .v-grid-editor-cells > div .v-checkbox > label { - white-space: nowrap; -} - -.sormastheme .v-grid-editor-message > div:before { - display: inline-block; - color: #eb2977; - font-weight: 600; - width: 16px; - text-align: center; - content: "!"; -} - -.sormastheme .v-grid-editor-save, .sormastheme .v-grid-editor-cancel { - cursor: pointer; - color: #60a0ea; - text-decoration: underline; - font-weight: inherit; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; - font-weight: 500; - text-decoration: none; - border: none; - background: transparent; - padding: 9px 9px; - margin: 0; - outline: none; -} - -.sormastheme .v-grid-editor-save:hover, .sormastheme .v-grid-editor-cancel:hover { - color: #8dbbf0; -} - -.sormastheme .v-grid-editor-save.v-disabled, .sormastheme .v-grid-editor-cancel.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-grid-spacer { - margin-top: -1px; -} - -.sormastheme .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-content { - margin: 0 0 2px; - padding: 4px 4px 2px; - overflow-y: auto; - overflow-x: hidden; -} - -.sormastheme .v-grid-sidebar.v-contextmenu.closed { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); -} - -.sormastheme .v-grid-scroller::-webkit-scrollbar { - border: none; -} - -.sormastheme .v-grid-scroller::-webkit-scrollbar-thumb { - border-radius: 10px; - border: 4px solid transparent; - background: rgba(0, 0, 0, 0.3); - -webkit-background-clip: content-box; - background-clip: content-box; -} - -.sormastheme .v-grid-scroller-vertical::-webkit-scrollbar-thumb { - min-height: 30px; -} - -.sormastheme .v-grid-scroller-horizontal::-webkit-scrollbar-thumb { - min-width: 30px; -} - -.sormastheme .v-textfield { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 32px; - border-radius: 4px; - padding: 4px 8px; - border: 1px solid #c5c5c5; - background: white; - color: #474747; - -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - width: 160px; -} - -.v-ie8 .sormastheme .v-textfield, .v-ie9 .sormastheme .v-textfield { - line-height: 32px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-textfield.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-textfield:focus { - outline: none; - -webkit-transition: none; - -moz-transition: none; - transition: none; - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-textfield[class*="prompt"] { - color: #a3a3a3; -} - -.sormastheme .v-textfield-readonly { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-textfield-readonly:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.sormastheme .v-textfield-error { - border-color: #eb2977 !important; - background: #fffbfc; - color: #6c213f; -} - -.sormastheme .v-textfield-borderless { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.sormastheme .v-textfield-borderless:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-textfield-borderless[class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-textfield-tiny { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 24px; - border-radius: 4px; - padding: 3px 6px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - font-size: 12px; -} - -.v-ie8 .sormastheme .v-textfield-tiny, .v-ie9 .sormastheme .v-textfield-tiny { - line-height: 24px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-textfield-compact, .sormastheme .v-textfield-small { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 27px; - border-radius: 4px; - padding: 3px 7px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; -} - -.v-ie8 .sormastheme .v-textfield-compact, .v-ie9 .sormastheme .v-textfield-compact, .v-ie8 .sormastheme .v-textfield-small, .v-ie9 .sormastheme .v-textfield-small { - line-height: 27px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-textfield-small { - font-size: 13px; -} - -.sormastheme .v-textfield-large { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 38px; - border-radius: 4px; - padding: 4px 9px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - font-size: 18px; -} - -.v-ie8 .sormastheme .v-textfield-large, .v-ie9 .sormastheme .v-textfield-large { - line-height: 38px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-textfield-huge { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 51px; - border-radius: 4px; - padding: 6px 11px; - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - font-size: 24px; -} - -.v-ie8 .sormastheme .v-textfield-huge, .v-ie9 .sormastheme .v-textfield-huge { - line-height: 51px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-slot-inline-icon { - position: relative; -} - -.sormastheme .v-caption-inline-icon { - padding: 0; -} - -.sormastheme .v-caption-inline-icon .v-captiontext { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; - margin: 0; -} - -.sormastheme .v-caption-inline-icon .v-icon { - position: absolute; - z-index: 10; -} - -.sormastheme .v-caption-inline-icon span.v-icon { - left: 1px; - bottom: 1px; - width: 32px; - line-height: 30px; - text-align: center; - font-size: 15px; -} - -.sormastheme .v-caption-inline-icon img.v-icon { - left: 8px; - bottom: 8px; -} - -.sormastheme .v-textfield-inline-icon { - padding-left: 32px; -} - -.sormastheme .v-slot-inline-icon.v-slot-tiny { - position: relative; -} - -.sormastheme .v-caption-inline-icon.v-caption-tiny { - padding: 0; -} - -.sormastheme .v-caption-inline-icon.v-caption-tiny .v-captiontext { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; - margin: 0; -} - -.sormastheme .v-caption-inline-icon.v-caption-tiny .v-icon { - position: absolute; - z-index: 10; -} - -.sormastheme .v-caption-inline-icon.v-caption-tiny span.v-icon { - left: 1px; - bottom: 1px; - width: 24px; - line-height: 22px; - text-align: center; - font-size: 12px; -} - -.sormastheme .v-caption-inline-icon.v-caption-tiny img.v-icon { - left: 4px; - bottom: 4px; -} - -.sormastheme .v-textfield-inline-icon.v-textfield-tiny { - padding-left: 24px; -} - -.sormastheme .v-slot-inline-icon.v-slot-compact { - position: relative; -} - -.sormastheme .v-caption-inline-icon.v-caption-compact { - padding: 0; -} - -.sormastheme .v-caption-inline-icon.v-caption-compact .v-captiontext { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; - margin: 0; -} - -.sormastheme .v-caption-inline-icon.v-caption-compact .v-icon { - position: absolute; - z-index: 10; -} - -.sormastheme .v-caption-inline-icon.v-caption-compact span.v-icon { - left: 1px; - bottom: 1px; - width: 27px; - line-height: 25px; - text-align: center; - font-size: 15px; -} - -.sormastheme .v-caption-inline-icon.v-caption-compact img.v-icon { - left: 6px; - bottom: 6px; -} - -.sormastheme .v-textfield-inline-icon.v-textfield-compact { - padding-left: 27px; -} - -.sormastheme .v-slot-inline-icon.v-slot-small { - position: relative; -} - -.sormastheme .v-caption-inline-icon.v-caption-small { - padding: 0; -} - -.sormastheme .v-caption-inline-icon.v-caption-small .v-captiontext { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; - margin: 0; -} - -.sormastheme .v-caption-inline-icon.v-caption-small .v-icon { - position: absolute; - z-index: 10; -} - -.sormastheme .v-caption-inline-icon.v-caption-small span.v-icon { - left: 1px; - bottom: 1px; - width: 27px; - line-height: 25px; - text-align: center; - font-size: 13px; -} - -.sormastheme .v-caption-inline-icon.v-caption-small img.v-icon { - left: 6px; - bottom: 6px; -} - -.sormastheme .v-textfield-inline-icon.v-textfield-small { - padding-left: 27px; -} - -.sormastheme .v-slot-inline-icon.v-slot-large { - position: relative; -} - -.sormastheme .v-caption-inline-icon.v-caption-large { - padding: 0; -} - -.sormastheme .v-caption-inline-icon.v-caption-large .v-captiontext { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; - margin: 0; -} - -.sormastheme .v-caption-inline-icon.v-caption-large .v-icon { - position: absolute; - z-index: 10; -} - -.sormastheme .v-caption-inline-icon.v-caption-large span.v-icon { - left: 1px; - bottom: 1px; - width: 38px; - line-height: 36px; - text-align: center; - font-size: 18px; -} - -.sormastheme .v-caption-inline-icon.v-caption-large img.v-icon { - left: 11px; - bottom: 11px; -} - -.sormastheme .v-textfield-inline-icon.v-textfield-large { - padding-left: 38px; -} - -.sormastheme .v-slot-inline-icon.v-slot-huge { - position: relative; -} - -.sormastheme .v-caption-inline-icon.v-caption-huge { - padding: 0; -} - -.sormastheme .v-caption-inline-icon.v-caption-huge .v-captiontext { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; - margin: 0; -} - -.sormastheme .v-caption-inline-icon.v-caption-huge .v-icon { - position: absolute; - z-index: 10; -} - -.sormastheme .v-caption-inline-icon.v-caption-huge span.v-icon { - left: 1px; - bottom: 1px; - width: 51px; - line-height: 49px; - text-align: center; - font-size: 24px; -} - -.sormastheme .v-caption-inline-icon.v-caption-huge img.v-icon { - left: 18px; - bottom: 18px; -} - -.sormastheme .v-textfield-inline-icon.v-textfield-huge { - padding-left: 51px; -} - -.sormastheme .v-textfield-align-right { - text-align: right; -} - -.sormastheme .v-textfield-align-center { - text-align: center; -} - -.sormastheme .v-textarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 32px; - border-radius: 4px; - padding: 5px; - border: 1px solid #c5c5c5; - background: white; - color: #474747; - -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - height: auto; - resize: none; - white-space: pre-wrap; - width: 160px; -} - -.v-ie8 .sormastheme .v-textarea, .v-ie9 .sormastheme .v-textarea { - line-height: 32px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-textarea.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-textarea:focus { - outline: none; - -webkit-transition: none; - -moz-transition: none; - transition: none; - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-textarea[class*="prompt"] { - color: #a3a3a3; -} - -.v-ie8 .sormastheme .v-textarea, .v-ie9 .sormastheme .v-textarea { - line-height: inherit; - padding-top: 4px; - padding-bottom: 4px; -} - -.sormastheme .v-textarea-readonly { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-textarea-readonly:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.sormastheme .v-textarea-error { - border-color: #eb2977 !important; - background: #fffbfc; - color: #6c213f; -} - -.sormastheme .v-textarea-borderless { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.sormastheme .v-textarea-borderless:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-textarea-borderless[class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-textarea-tiny { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 24px; - border-radius: 4px; - padding: 5px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - height: auto; - resize: none; - white-space: pre-wrap; - font-size: 12px; -} - -.v-ie8 .sormastheme .v-textarea-tiny, .v-ie9 .sormastheme .v-textarea-tiny { - line-height: 24px; - padding-top: 0; - padding-bottom: 0; -} - -.v-ie8 .sormastheme .v-textarea-tiny, .v-ie9 .sormastheme .v-textarea-tiny { - line-height: inherit; - padding-top: 3px; - padding-bottom: 3px; -} - -.sormastheme .v-textarea-small { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 27px; - border-radius: 4px; - padding: 5px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - height: auto; - resize: none; - white-space: pre-wrap; - font-size: 13px; -} - -.v-ie8 .sormastheme .v-textarea-small, .v-ie9 .sormastheme .v-textarea-small { - line-height: 27px; - padding-top: 0; - padding-bottom: 0; -} - -.v-ie8 .sormastheme .v-textarea-small, .v-ie9 .sormastheme .v-textarea-small { - line-height: inherit; - padding-top: 3px; - padding-bottom: 3px; -} - -.sormastheme .v-textarea-large { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 38px; - border-radius: 4px; - padding: 5px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - height: auto; - resize: none; - white-space: pre-wrap; - font-size: 18px; -} - -.v-ie8 .sormastheme .v-textarea-large, .v-ie9 .sormastheme .v-textarea-large { - line-height: 38px; - padding-top: 0; - padding-bottom: 0; -} - -.v-ie8 .sormastheme .v-textarea-large, .v-ie9 .sormastheme .v-textarea-large { - line-height: inherit; - padding-top: 4px; - padding-bottom: 4px; -} - -.sormastheme .v-textarea-huge { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 51px; - border-radius: 4px; - padding: 5px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - height: auto; - resize: none; - white-space: pre-wrap; - font-size: 24px; -} - -.v-ie8 .sormastheme .v-textarea-huge, .v-ie9 .sormastheme .v-textarea-huge { - line-height: 51px; - padding-top: 0; - padding-bottom: 0; -} - -.v-ie8 .sormastheme .v-textarea-huge, .v-ie9 .sormastheme .v-textarea-huge { - line-height: inherit; - padding-top: 6px; - padding-bottom: 6px; -} - -.sormastheme .v-textarea-align-right { - text-align: right; -} - -.sormastheme .v-textarea-align-center { - text-align: center; -} - -.sormastheme .v-datefield { - position: relative; - width: 160px; - height: 32px; - border-radius: 4px; -} - -.sormastheme .v-datefield [class*="textfield"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 32px; - border-radius: 4px; - padding: 4px 8px; - border: 1px solid #c5c5c5; - background: white; - color: #474747; - -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - padding-left: 38.4px; - width: 100%; - height: 100%; - border-radius: inherit; -} - -.v-ie8 .sormastheme .v-datefield [class*="textfield"], .v-ie9 .sormastheme .v-datefield [class*="textfield"] { - line-height: 32px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-datefield [class*="textfield"].v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-datefield [class*="textfield"]:focus { - outline: none; - -webkit-transition: none; - -moz-transition: none; - transition: none; - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-datefield [class*="textfield"][class*="prompt"] { - color: #a3a3a3; -} - -.sormastheme .v-datefield[class*="prompt"] > [class*="textfield"] { - color: #a3a3a3; -} - -.sormastheme .v-datefield [class*="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - -webkit-appearance: none; - background: transparent; - padding: 0; - position: absolute; - z-index: 10; - width: 32px; - line-height: 30px; - text-align: center; - font: inherit; - outline: none; - margin: 0; - top: 1px; - bottom: 1px; - left: 1px; - border: none; - border-right: 1px solid #e4e4e4; - color: #a3a3a3; - border-radius: 3px 0 0 3px; -} - -.sormastheme .v-datefield [class*="button"]:hover { - color: #474747; -} - -.sormastheme .v-datefield [class*="button"]:before { - font-family: ThemeIcons; - content: "\f073"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.sormastheme .v-datefield [class*="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: rgba(128, 128, 128, 0.2); - border-radius: inherit; -} - -.sormastheme .v-datefield.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-datefield.v-disabled [class*="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-datefield.v-disabled [class*="button"]:active:after { - display: none; -} - -.sormastheme .v-datefield.v-readonly [class*="textfield"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-datefield.v-readonly [class*="textfield"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.sormastheme .v-datefield.v-readonly [class*="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-datefield.v-readonly [class*="button"]:active:after { - display: none; -} - -.sormastheme .v-datefield-error .v-datefield-textfield { - border-color: #eb2977 !important; - background: #fffbfc; - color: #6c213f; -} - -.sormastheme .v-datefield-error .v-datefield-button { - color: #eb2977; - border-color: #eb2977; -} - -.sormastheme .v-datefield-full { - width: 225px; -} - -.sormastheme .v-datefield-day { - width: 160px; -} - -.sormastheme .v-datefield-month { - width: 113px; -} - -.sormastheme .v-datefield-year { - width: 98px; -} - -.sormastheme .v-datefield-popup { - padding: 4px 4px; - border-radius: 4px; - background-color: white; - color: #474747; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - margin-top: 4px !important; - margin-bottom: 4px !important; - margin-right: 4px !important; - cursor: default; - width: auto; -} - -.sormastheme .v-datefield-popup[class*="animate-in"] { - -webkit-animation: valo-overlay-animate-in 120ms; - -moz-animation: valo-overlay-animate-in 120ms; - animation: valo-overlay-animate-in 120ms; -} - -.sormastheme .v-datefield-popup[class*="animate-out"] { - -webkit-animation: valo-animate-out-fade 120ms; - -moz-animation: valo-animate-out-fade 120ms; - animation: valo-animate-out-fade 120ms; -} - -.sormastheme .v-datefield-popup table { - border-collapse: collapse; - border-spacing: 0; - margin: 0 auto; -} - -.sormastheme .v-datefield-popup td { - padding: 2px; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel { - font-size: 15px; - text-align: center; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel:focus { - outline: none; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel-day { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 26px; - height: 22px; - border: 1px solid transparent; - line-height: 22px; - text-align: center; - font-size: 13px; - background: #fafafa; - border-radius: 2px; - -webkit-transition: color 200ms; - -moz-transition: color 200ms; - transition: color 200ms; - display: inline-block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - cursor: pointer; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel-day:hover { - color: #60a0ea; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel-day-offmonth { - color: #a0a0a0; - background: transparent; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel-day-today { - color: #191919; - font-weight: 600; - border-color: #afafaf; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected, .sormastheme .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected:hover { - color: #d9e5f2; - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - border: none; - font-weight: 600; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-focused { - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - position: relative; -} - -.v-ie8 .sormastheme .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-focused { - border-color: #60a0ea; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range, .sormastheme .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range:hover { - color: #a0a0a0; - cursor: not-allowed; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel-weekdays { - height: 22px; - color: rgba(133, 133, 133, 0.85); -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel-weekdays strong { - font: inherit; - font-size: 13px; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel-header { - white-space: nowrap; -} - -.sormastheme .v-datefield-popup td[class*="year"] button, .sormastheme .v-datefield-popup td[class*="month"] button { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - border: none; - background: transparent; - padding: 0; - margin: 0; - cursor: pointer; - color: transparent; - font-size: 0; - width: 16px; - height: 21px; - outline: none; - position: relative; - vertical-align: middle; -} - -.sormastheme .v-datefield-popup td[class*="year"] button:before, .sormastheme .v-datefield-popup td[class*="month"] button:before { - color: #a0a0a0; - font-size: 20px; - line-height: 23px; - -webkit-transition: color 200ms; - -moz-transition: color 200ms; - transition: color 200ms; -} - -.sormastheme .v-datefield-popup td[class*="year"] button:hover:before, .sormastheme .v-datefield-popup td[class*="month"] button:hover:before { - color: #60a0ea; -} - -.sormastheme .v-datefield-popup td[class*="year"] button.outside-range, .sormastheme .v-datefield-popup td[class*="month"] button.outside-range { - cursor: default; - opacity: 0.3; - filter: alpha(opacity=30.0) ; -} - -.sormastheme .v-datefield-popup td[class*="year"] button.outside-range:hover:before, .sormastheme .v-datefield-popup td[class*="month"] button.outside-range:hover:before { - color: #a0a0a0; -} - -.sormastheme .v-datefield-popup .v-button-prevyear:before { - font-family: ThemeIcons; - content: "\f100"; -} - -.sormastheme .v-datefield-popup .v-button-prevmonth:before { - font-family: ThemeIcons; - content: "\f104"; -} - -.sormastheme .v-datefield-popup .v-button-nextyear:before { - font-family: ThemeIcons; - content: "\f101"; -} - -.sormastheme .v-datefield-popup .v-button-nextmonth:before { - font-family: ThemeIcons; - content: "\f105"; -} - -.sormastheme .v-datefield-popup td.v-datefield-calendarpanel-month { - width: 128px; - color: #60a0ea; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel-year td.v-datefield-calendarpanel-month { - width: 64px; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel-weeknumber, .sormastheme .v-datefield-popup .v-datefield-calendarpanel-weekdays.v-datefield-calendarpanel-weeknumbers td:first-child { - width: 26px; - color: rgba(133, 133, 133, 0.85); - font-size: 13px; - display: inline-block; - text-align: left; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel-weeknumber { - position: relative; -} - -.sormastheme .v-datefield-popup .v-datefield-calendarpanel-weeknumbers .v-first:before { - content: ""; - position: absolute; - top: 32px; - bottom: 0; - left: 0; - width: 30px; - border-top: 1px solid #eaeaea; - border-right: 1px solid #eaeaea; - border-top-right-radius: 4px; - border-bottom-left-radius: 4px; - background: #fafafa; -} - -.sormastheme .v-datefield-popup td.v-datefield-calendarpanel-time { - width: 100%; - font-size: 13px; -} - -.sormastheme .v-datefield-popup td.v-datefield-calendarpanel-time .v-label { - display: inline; - margin: 0 0.1em; - font-weight: 400; -} - -.sormastheme .v-datefield-calendarpanel { - font-size: 15px; - text-align: center; -} - -.sormastheme .v-datefield-calendarpanel:focus { - outline: none; -} - -.sormastheme .v-datefield-calendarpanel-day { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 26px; - height: 22px; - border: 1px solid transparent; - line-height: 22px; - text-align: center; - font-size: 13px; - background: #fafafa; - border-radius: 2px; - -webkit-transition: color 200ms; - -moz-transition: color 200ms; - transition: color 200ms; - display: inline-block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - cursor: pointer; -} - -.sormastheme .v-datefield-calendarpanel-day:hover { - color: #60a0ea; -} - -.sormastheme .v-datefield-calendarpanel-day-offmonth { - color: #a0a0a0; - background: transparent; -} - -.sormastheme .v-datefield-calendarpanel-day-today { - color: #191919; - font-weight: 600; - border-color: #afafaf; -} - -.sormastheme .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected, .sormastheme .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected:hover { - color: #d9e5f2; - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - border: none; - font-weight: 600; -} - -.sormastheme .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-focused { - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - position: relative; -} - -.v-ie8 .sormastheme .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-focused { - border-color: #60a0ea; -} - -.sormastheme .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range, .sormastheme .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range:hover { - color: #a0a0a0; - cursor: not-allowed; -} - -.sormastheme .v-datefield-calendarpanel-weekdays { - height: 22px; - color: rgba(133, 133, 133, 0.85); -} - -.sormastheme .v-datefield-calendarpanel-weekdays strong { - font: inherit; - font-size: 13px; -} - -.sormastheme .v-datefield-calendarpanel-header { - white-space: nowrap; -} - -.sormastheme td[class*="year"] button, .sormastheme td[class*="month"] button { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - border: none; - background: transparent; - padding: 0; - margin: 0; - cursor: pointer; - color: transparent; - font-size: 0; - width: 16px; - height: 21px; - outline: none; - position: relative; - vertical-align: middle; -} - -.sormastheme td[class*="year"] button:before, .sormastheme td[class*="month"] button:before { - color: #a0a0a0; - font-size: 20px; - line-height: 23px; - -webkit-transition: color 200ms; - -moz-transition: color 200ms; - transition: color 200ms; -} - -.sormastheme td[class*="year"] button:hover:before, .sormastheme td[class*="month"] button:hover:before { - color: #60a0ea; -} - -.sormastheme td[class*="year"] button.outside-range, .sormastheme td[class*="month"] button.outside-range { - cursor: default; - opacity: 0.3; - filter: alpha(opacity=30.0) ; -} - -.sormastheme td[class*="year"] button.outside-range:hover:before, .sormastheme td[class*="month"] button.outside-range:hover:before { - color: #a0a0a0; -} - -.sormastheme .v-button-prevyear:before { - font-family: ThemeIcons; - content: "\f100"; -} - -.sormastheme .v-button-prevmonth:before { - font-family: ThemeIcons; - content: "\f104"; -} - -.sormastheme .v-button-nextyear:before { - font-family: ThemeIcons; - content: "\f101"; -} - -.sormastheme .v-button-nextmonth:before { - font-family: ThemeIcons; - content: "\f105"; -} - -.sormastheme td.v-datefield-calendarpanel-month { - width: 128px; - color: #60a0ea; -} - -.sormastheme .v-datefield-calendarpanel-year td.v-datefield-calendarpanel-month { - width: 64px; -} - -.sormastheme .v-datefield-calendarpanel-weeknumber, .sormastheme .v-datefield-calendarpanel-weekdays.v-datefield-calendarpanel-weeknumbers td:first-child { - width: 26px; - color: rgba(133, 133, 133, 0.85); - font-size: 13px; - display: inline-block; - text-align: left; -} - -.sormastheme .v-datefield-calendarpanel-weeknumber { - position: relative; -} - -.sormastheme .v-datefield-calendarpanel-weeknumbers .v-first:before { - content: ""; - position: absolute; - top: 32px; - bottom: 0; - left: 0; - width: 30px; - border-top: 1px solid #eaeaea; - border-right: 1px solid #eaeaea; - border-top-right-radius: 4px; - border-bottom-left-radius: 4px; - background: #fafafa; -} - -.sormastheme td.v-datefield-calendarpanel-time { - width: 100%; - font-size: 13px; -} - -.sormastheme td.v-datefield-calendarpanel-time .v-label { - display: inline; - margin: 0 0.1em; - font-weight: 400; -} - -.sormastheme .v-datefield-borderless .v-datefield-textfield { - border: none; - border-radius: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; -} - -.sormastheme .v-datefield-borderless .v-datefield-textfield:focus { - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-datefield-borderless .v-datefield-textfield[class*="prompt"] { - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-datefield-borderless .v-datefield-button { - border: none; - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-datefield-align-right input { - text-align: right; -} - -.sormastheme .v-datefield-align-center input { - text-align: center; -} - -.sormastheme .v-datefield-tiny { - height: 24px; - border-radius: 4px; - font-size: 12px; -} - -.sormastheme .v-datefield-tiny [class*="textfield"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 24px; - border-radius: 4px; - padding: 3px 6px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - padding-left: 28.8px; - width: 100%; - height: 100%; - border-radius: inherit; -} - -.v-ie8 .sormastheme .v-datefield-tiny [class*="textfield"], .v-ie9 .sormastheme .v-datefield-tiny [class*="textfield"] { - line-height: 24px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-datefield-tiny [class*="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - -webkit-appearance: none; - background: transparent; - padding: 0; - position: absolute; - z-index: 10; - width: 24px; - line-height: 24px; - text-align: center; - font: inherit; - outline: none; - margin: 0; - border-radius: 4px 0 0 4px; -} - -.sormastheme .v-datefield-tiny [class*="button"]:before { - font-family: ThemeIcons; - content: "\f073"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.sormastheme .v-datefield-tiny [class*="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.sormastheme .v-datefield-tiny.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-datefield-tiny.v-disabled [class*="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-datefield-tiny.v-disabled [class*="button"]:active:after { - display: none; -} - -.sormastheme .v-datefield-tiny.v-readonly [class*="textfield"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-datefield-tiny.v-readonly [class*="textfield"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.sormastheme .v-datefield-tiny.v-readonly [class*="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-datefield-tiny.v-readonly [class*="button"]:active:after { - display: none; -} - -.sormastheme .v-datefield-compact, .sormastheme .v-datefield-small { - height: 27px; - border-radius: 4px; -} - -.sormastheme .v-datefield-compact [class*="textfield"], .sormastheme .v-datefield-small [class*="textfield"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 27px; - border-radius: 4px; - padding: 3px 7px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - padding-left: 32.4px; - width: 100%; - height: 100%; - border-radius: inherit; -} - -.v-ie8 .sormastheme .v-datefield-compact [class*="textfield"], .v-ie9 .sormastheme .v-datefield-compact [class*="textfield"], .v-ie8 .sormastheme .v-datefield-small [class*="textfield"], .v-ie9 .sormastheme .v-datefield-small [class*="textfield"] { - line-height: 27px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-datefield-compact [class*="button"], .sormastheme .v-datefield-small [class*="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - -webkit-appearance: none; - background: transparent; - padding: 0; - position: absolute; - z-index: 10; - width: 27px; - line-height: 27px; - text-align: center; - font: inherit; - outline: none; - margin: 0; - border-radius: 4px 0 0 4px; -} - -.sormastheme .v-datefield-compact [class*="button"]:before, .sormastheme .v-datefield-small [class*="button"]:before { - font-family: ThemeIcons; - content: "\f073"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.sormastheme .v-datefield-compact [class*="button"]:active:after, .sormastheme .v-datefield-small [class*="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.sormastheme .v-datefield-compact.v-disabled, .sormastheme .v-datefield-small.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-datefield-compact.v-disabled [class*="button"], .sormastheme .v-datefield-small.v-disabled [class*="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-datefield-compact.v-disabled [class*="button"]:active:after, .sormastheme .v-datefield-small.v-disabled [class*="button"]:active:after { - display: none; -} - -.sormastheme .v-datefield-compact.v-readonly [class*="textfield"], .sormastheme .v-datefield-small.v-readonly [class*="textfield"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-datefield-compact.v-readonly [class*="textfield"]:focus, .sormastheme .v-datefield-small.v-readonly [class*="textfield"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.sormastheme .v-datefield-compact.v-readonly [class*="button"], .sormastheme .v-datefield-small.v-readonly [class*="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-datefield-compact.v-readonly [class*="button"]:active:after, .sormastheme .v-datefield-small.v-readonly [class*="button"]:active:after { - display: none; -} - -.sormastheme .v-datefield-small { - font-size: 13px; -} - -.sormastheme .v-datefield-large { - height: 38px; - border-radius: 4px; - font-size: 18px; -} - -.sormastheme .v-datefield-large [class*="textfield"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 38px; - border-radius: 4px; - padding: 4px 9px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - padding-left: 45.6px; - width: 100%; - height: 100%; - border-radius: inherit; -} - -.v-ie8 .sormastheme .v-datefield-large [class*="textfield"], .v-ie9 .sormastheme .v-datefield-large [class*="textfield"] { - line-height: 38px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-datefield-large [class*="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - -webkit-appearance: none; - background: transparent; - padding: 0; - position: absolute; - z-index: 10; - width: 38px; - line-height: 38px; - text-align: center; - font: inherit; - outline: none; - margin: 0; - border-radius: 4px 0 0 4px; -} - -.sormastheme .v-datefield-large [class*="button"]:before { - font-family: ThemeIcons; - content: "\f073"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.sormastheme .v-datefield-large [class*="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.sormastheme .v-datefield-large.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-datefield-large.v-disabled [class*="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-datefield-large.v-disabled [class*="button"]:active:after { - display: none; -} - -.sormastheme .v-datefield-large.v-readonly [class*="textfield"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-datefield-large.v-readonly [class*="textfield"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.sormastheme .v-datefield-large.v-readonly [class*="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-datefield-large.v-readonly [class*="button"]:active:after { - display: none; -} - -.sormastheme .v-datefield-huge { - height: 51px; - border-radius: 4px; - font-size: 24px; -} - -.sormastheme .v-datefield-huge [class*="textfield"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 51px; - border-radius: 4px; - padding: 6px 11px; - - - - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - padding-left: 61.2px; - width: 100%; - height: 100%; - border-radius: inherit; -} - -.v-ie8 .sormastheme .v-datefield-huge [class*="textfield"], .v-ie9 .sormastheme .v-datefield-huge [class*="textfield"] { - line-height: 51px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-datefield-huge [class*="button"] { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - -webkit-appearance: none; - background: transparent; - padding: 0; - position: absolute; - z-index: 10; - width: 51px; - line-height: 51px; - text-align: center; - font: inherit; - outline: none; - margin: 0; - border-radius: 4px 0 0 4px; -} - -.sormastheme .v-datefield-huge [class*="button"]:before { - font-family: ThemeIcons; - content: "\f073"; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.sormastheme .v-datefield-huge [class*="button"]:active:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.sormastheme .v-datefield-huge.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-datefield-huge.v-disabled [class*="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-datefield-huge.v-disabled [class*="button"]:active:after { - display: none; -} - -.sormastheme .v-datefield-huge.v-readonly [class*="textfield"] { - background: #fafafa; - color: #464646; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-datefield-huge.v-readonly [class*="textfield"]:focus { - box-shadow: none; - border-color: #c5c5c5; -} - -.sormastheme .v-datefield-huge.v-readonly [class*="button"] { - cursor: default; - pointer-events: none; -} - -.sormastheme .v-datefield-huge.v-readonly [class*="button"]:active:after { - display: none; -} - -.sormastheme .v-inline-datefield-calendarpanel { - font-size: 15px; - text-align: center; -} - -.sormastheme .v-inline-datefield-calendarpanel:focus { - outline: none; -} - -.sormastheme .v-inline-datefield-calendarpanel-day { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 26px; - height: 22px; - border: 1px solid transparent; - line-height: 22px; - text-align: center; - font-size: 13px; - background: #fafafa; - border-radius: 2px; - -webkit-transition: color 200ms; - -moz-transition: color 200ms; - transition: color 200ms; - display: inline-block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - cursor: pointer; -} - -.sormastheme .v-inline-datefield-calendarpanel-day:hover { - color: #60a0ea; -} - -.sormastheme .v-inline-datefield-calendarpanel-day-offmonth { - color: #a0a0a0; - background: transparent; -} - -.sormastheme .v-inline-datefield-calendarpanel-day-today { - color: #191919; - font-weight: 600; - border-color: #afafaf; -} - -.sormastheme .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-selected, .sormastheme .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-selected:hover { - color: #d9e5f2; - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - border: none; - font-weight: 600; -} - -.sormastheme .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-focused { - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - position: relative; -} - -.v-ie8 .sormastheme .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-focused { - border-color: #60a0ea; -} - -.sormastheme .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-outside-range, .sormastheme .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-outside-range:hover { - color: #a0a0a0; - cursor: not-allowed; -} - -.sormastheme .v-inline-datefield-calendarpanel-weekdays { - height: 22px; - color: rgba(133, 133, 133, 0.85); -} - -.sormastheme .v-inline-datefield-calendarpanel-weekdays strong { - font: inherit; - font-size: 13px; -} - -.sormastheme .v-inline-datefield-calendarpanel-header { - white-space: nowrap; -} - -.sormastheme td[class*="year"] button, .sormastheme td[class*="month"] button { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - border: none; - background: transparent; - padding: 0; - margin: 0; - cursor: pointer; - color: transparent; - font-size: 0; - width: 16px; - height: 21px; - outline: none; - position: relative; - vertical-align: middle; -} - -.sormastheme td[class*="year"] button:before, .sormastheme td[class*="month"] button:before { - color: #a0a0a0; - font-size: 20px; - line-height: 23px; - -webkit-transition: color 200ms; - -moz-transition: color 200ms; - transition: color 200ms; -} - -.sormastheme td[class*="year"] button:hover:before, .sormastheme td[class*="month"] button:hover:before { - color: #60a0ea; -} - -.sormastheme td[class*="year"] button.outside-range, .sormastheme td[class*="month"] button.outside-range { - cursor: default; - opacity: 0.3; - filter: alpha(opacity=30.0) ; -} - -.sormastheme td[class*="year"] button.outside-range:hover:before, .sormastheme td[class*="month"] button.outside-range:hover:before { - color: #a0a0a0; -} - -.sormastheme .v-button-prevyear:before { - font-family: ThemeIcons; - content: "\f100"; -} - -.sormastheme .v-button-prevmonth:before { - font-family: ThemeIcons; - content: "\f104"; -} - -.sormastheme .v-button-nextyear:before { - font-family: ThemeIcons; - content: "\f101"; -} - -.sormastheme .v-button-nextmonth:before { - font-family: ThemeIcons; - content: "\f105"; -} - -.sormastheme td.v-inline-datefield-calendarpanel-month { - width: 128px; - color: #60a0ea; -} - -.sormastheme .v-inline-datefield-calendarpanel-year td.v-inline-datefield-calendarpanel-month { - width: 64px; -} - -.sormastheme .v-inline-datefield-calendarpanel-weeknumber, .sormastheme .v-inline-datefield-calendarpanel-weekdays.v-inline-datefield-calendarpanel-weeknumbers td:first-child { - width: 26px; - color: rgba(133, 133, 133, 0.85); - font-size: 13px; - display: inline-block; - text-align: left; -} - -.sormastheme .v-inline-datefield-calendarpanel-weeknumber { - position: relative; -} - -.sormastheme .v-inline-datefield-calendarpanel-weeknumbers .v-first:before { - content: ""; - position: absolute; - top: 32px; - bottom: 0; - left: 0; - width: 30px; - border-top: 1px solid #eaeaea; - border-right: 1px solid #eaeaea; - border-top-right-radius: 4px; - border-bottom-left-radius: 4px; - background: #fafafa; -} - -.sormastheme td.v-inline-datefield-calendarpanel-time { - width: 100%; - font-size: 13px; -} - -.sormastheme td.v-inline-datefield-calendarpanel-time .v-label { - display: inline; - margin: 0 0.1em; - font-weight: 400; -} - -.sormastheme .v-inline-datefield-calendarpanel { - position: relative; - background: white; - padding: 5px; -} - -.sormastheme .v-gridlayout-margin-top { - padding-top: 21px; -} - -.sormastheme .v-gridlayout-margin-bottom { - padding-bottom: 21px; -} - -.sormastheme .v-gridlayout-margin-left { - padding-left: 21px; -} - -.sormastheme .v-gridlayout-margin-right { - padding-right: 21px; -} - -.sormastheme .v-gridlayout-spacing-on { - padding-left: 18px; - padding-top: 18px; -} - -.sormastheme .v-menubar { - position: relative; - text-align: center; - white-space: nowrap; - outline: none; - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - height: 32px; - padding: 0 14px; - color: #191919; - font-weight: 500; - - cursor: default; - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - text-align: left; - line-height: 30px; -} - -.sormastheme .v-menubar:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; -} - -.sormastheme .v-menubar:focus:after { - -webkit-transition: none; - -moz-transition: none; - transition: none; -} - -.sormastheme .v-menubar.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-menubar.v-disabled:after { - display: none; -} - -.sormastheme .v-menubar:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-menubar:focus:after { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-menubar > .v-menubar-menuitem { - padding: 0 12px; -} - -.sormastheme .v-menubar > .v-menubar-menuitem[class*="-icon-only"] { - width: 32px; -} - -.sormastheme .v-menubar:active:after { - background: transparent; -} - -.sormastheme .v-menubar > .v-menubar-menuitem { - position: relative; - z-index: 1; - display: inline-block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - height: 32px; - padding: 0 13px; - color: inherit; - font-weight: 500; - - cursor: pointer; - border-radius: 0; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - border-width: 0 1px 0 0; - border-color: inherit; - height: 100%; - line-height: inherit; - vertical-align: top; - text-align: center; -} - -.sormastheme .v-menubar > .v-menubar-menuitem:first-child { - border-left-width: 0; - border-radius: 3px 0 0 3px; -} - -.sormastheme .v-menubar > .v-menubar-menuitem:last-child { - border-radius: 0 3px 3px 0; - border-right-width: 0; -} - -.sormastheme .v-menubar > .v-menubar-menuitem:first-child:last-child { - border-radius: 3px; -} - -.sormastheme .v-menubar > .v-menubar-menuitem:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.sormastheme .v-menubar > .v-menubar-menuitem:hover { - zoom: 1; -} - -.sormastheme .v-menubar > .v-menubar-menuitem:hover:before { - background-color: rgba(186, 186, 186, 0.1); - border: none; -} - -.sormastheme .v-menubar > .v-menubar-menuitem:active:before { - background-color: rgba(125, 125, 125, 0.2); -} - -.sormastheme .v-menubar > .v-menubar-menuitem .v-icon { - margin: 0 3px 0 -3px; - cursor: inherit; -} - -.sormastheme .v-menubar > .v-menubar-menuitem[class*="-icon-only"] { - width: 32px; - padding: 0; -} - -.sormastheme .v-menubar > .v-menubar-menuitem[class*="-icon-only"] .v-icon { - margin: 0; -} - -.sormastheme .v-menubar > .v-menubar-menuitem-checked { - -webkit-box-shadow: none; - box-shadow: none; - background-color: #ededed; - background-image: -webkit-linear-gradient(bottom, #ededed 2%, #e9e9e9 98%); - background-image: linear-gradient(to top,#ededed 2%, #e9e9e9 98%); - color: #181818; -} - -.sormastheme .v-disabled > .v-menubar-menuitem, .sormastheme .v-menubar > .v-menubar-menuitem-disabled { - cursor: default; -} - -.sormastheme .v-disabled > .v-menubar-menuitem:before, .sormastheme .v-menubar > .v-menubar-menuitem-disabled:before { - display: none; -} - -.sormastheme .v-menubar-menuitem-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-menubar > .v-menubar-menuitem-selected { - color: #f2f6fa; - - - - border-radius: 0; - border: 1px solid #4b7eb8; - border-top-color: #5183b9; - border-bottom-color: #4272af; - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - -webkit-box-shadow: inset 0 1px 0 #93bbed, inset 0 -1px 0 #4f8cd8; - box-shadow: inset 0 1px 0 #93bbed, inset 0 -1px 0 #4f8cd8; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); - border-top-width: 0; - border-left-width: 0; - border-bottom-width: 0; - z-index: 2; -} - -.sormastheme .v-menubar > .v-menubar-menuitem-selected:hover:before { - background: none; -} - -.sormastheme .v-menubar .v-menubar-submenu-indicator { - display: none; -} - -.sormastheme .v-menubar .v-menubar-submenu-indicator + .v-menubar-menuitem-caption:after { - font-family: ThemeIcons; - content: "\f078"; - font-size: 0.7em; - vertical-align: 0.15em; - margin: 0 -0.2em 0 0.5em; - opacity: 0.5; -} - -.sormastheme .v-menubar .v-menubar-submenu-indicator + .v-menubar-menuitem-caption:empty:after { - margin-left: -0.2em; -} - -.sormastheme .v-menubar-popup { - padding: 4px 4px; - border-radius: 4px; - background-color: white; - color: #474747; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - padding: 4px 4px; - margin: 4px 0 0 1px !important; -} - -.sormastheme .v-menubar-popup[class*="animate-in"] { - -webkit-animation: valo-overlay-animate-in 120ms; - -moz-animation: valo-overlay-animate-in 120ms; - animation: valo-overlay-animate-in 120ms; -} - -.sormastheme .v-menubar-popup[class*="animate-out"] { - -webkit-animation: valo-animate-out-fade 120ms; - -moz-animation: valo-animate-out-fade 120ms; - animation: valo-animate-out-fade 120ms; -} - -.sormastheme .v-menubar-popup .v-menubar-submenu { - outline: none; -} - -.sormastheme .v-menubar-popup .v-menubar-menuitem { - display: block; - cursor: pointer; - line-height: 23px; - padding: 0 16px 0 8px; - border-radius: 3px; - font-weight: 400; - white-space: nowrap; - position: relative; - padding-left: 27px; - padding-right: 32px; - position: relative; -} - -.sormastheme .v-menubar-popup .v-menubar-menuitem:active:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: #0d6cda; - opacity: 0.15; - filter: alpha(opacity=15.0) ; - pointer-events: none; - border-radius: inherit; -} - -.sormastheme .v-menubar-popup .v-menubar-menuitem .v-icon { - max-height: 23px; - margin-right: 4px; - min-width: 1em; -} - -.sormastheme .v-menubar-popup .v-menubar-submenu-indicator { - display: none; -} - -.sormastheme .v-menubar-popup .v-menubar-submenu-indicator + .v-menubar-menuitem-caption:after { - position: absolute; - right: 8px; - font-family: ThemeIcons; - content: "\f054"; - line-height: 25px; -} - -.sormastheme .v-menubar-popup .v-menubar-menuitem-selected { - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - color: #f2f6fa; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.sormastheme .v-menubar-popup .v-menubar-separator { - display: block; - margin: 4px 0; - height: 0; - overflow: hidden; - border-bottom: 1px solid #e4e4e4; -} - -.sormastheme .v-menubar-popup [class*="checked"] .v-menubar-menuitem-caption:before { - content: "\f00c"; - font-family: ThemeIcons; - position: absolute; - left: 8px; -} - -.sormastheme .v-menubar-popup [class*="unchecked"] .v-menubar-menuitem-caption:before { - content: ""; -} - -.sormastheme .v-menubar-popup [class*="disabled"] { - cursor: default; -} - -.sormastheme .v-menubar-small { - height: 27px; - padding: 0 12px; - - font-weight: 500; - - cursor: default; - border-radius: 4px; - padding: 0; - text-align: left; - line-height: 25px; - font-size: 13px; -} - -.sormastheme .v-menubar-small:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-menubar-small > .v-menubar-menuitem { - padding: 0 10px; -} - -.sormastheme .v-menubar-small > .v-menubar-menuitem[class*="-icon-only"] { - width: 27px; -} - -.sormastheme .v-menubar-borderless { - border: none; - border-radius: 0; - padding: 1px; - -webkit-box-shadow: none; - box-shadow: none; - text-shadow: none; - background: transparent; - color: inherit; -} - -.sormastheme .v-menubar-borderless:focus:after { - display: none; -} - -.sormastheme .v-menubar-borderless .v-menubar-menuitem { - -webkit-box-shadow: none; - box-shadow: none; - border: none; - margin-right: 1px; - border-radius: 4px; - color: #60a0ea; - padding: 0 11px; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.sormastheme .v-menubar-borderless .v-menubar-menuitem:first-child, .sormastheme .v-menubar-borderless .v-menubar-menuitem:last-child, .sormastheme .v-menubar-borderless .v-menubar-menuitem:first-child:last-child { - border-radius: 4px; -} - -.sormastheme .v-menubar-borderless .v-menubar-menuitem:before { - content: none; -} - -.sormastheme .v-menubar-borderless .v-menubar-menuitem:hover { - color: #8dbbf0; -} - -.sormastheme .v-menubar-borderless .v-menubar-menuitem:active { - color: inherit; -} - -.sormastheme .v-menubar-borderless .v-menubar-menuitem-checked, .sormastheme .v-menubar-borderless .v-menubar-menuitem-checked:first-child { - border: 1px solid #c5c5c5; - color: #60a0ea; -} - -.sormastheme .v-menubar-borderless .v-menubar-menuitem-checked .v-menubar-menuitem-caption, .sormastheme .v-menubar-borderless .v-menubar-menuitem-checked:first-child .v-menubar-menuitem-caption { - position: relative; - top: -1px; -} - -.sormastheme .v-menubar-borderless .v-menubar-menuitem-selected { - color: #f2f6fa; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.sormastheme .v-menubar-borderless .v-menubar-menuitem-selected:hover { - color: #f2f6fa; -} - -.sormastheme .v-menubar-borderless .v-menubar-menuitem-disabled, .sormastheme .v-menubar-borderless .v-menubar-menuitem-disabled:hover { - color: inherit; -} - -.sormastheme .v-radiobutton { - position: relative; - line-height: 16px; - white-space: nowrap; -} - -.sormastheme .v-radiobutton.v-has-width label { - white-space: normal; -} - -:root .sormastheme .v-radiobutton { - padding-left: 21px; -} - -:root .sormastheme .v-radiobutton label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .sormastheme .v-radiobutton > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .sormastheme .v-radiobutton > input:focus ~ label:before { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .sormastheme .v-radiobutton > input ~ label:before, :root .sormastheme .v-radiobutton > input ~ label:after { - content: ""; - display: inline-block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 16px; - height: 16px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 12px; - text-align: center; -} - -:root .sormastheme .v-radiobutton > input ~ label:before { - height: 16px; - padding: 0 8px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 16px; -} - -:root .sormastheme .v-radiobutton > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .sormastheme .v-radiobutton > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .sormastheme .v-radiobutton > input:checked ~ label:after { - color: #60a0ea; -} - -.sormastheme .v-radiobutton > .v-icon, .sormastheme .v-radiobutton > label .v-icon { - margin: 0 5px 0 3px; - min-width: 1em; - cursor: pointer; -} - -.sormastheme .v-radiobutton.v-disabled > label, .sormastheme .v-radiobutton.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-radiobutton.v-disabled > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-radiobutton.v-disabled > input:active ~ label:after { - background: transparent; -} - -.sormastheme .v-radiobutton.v-readonly > label, .sormastheme .v-radiobutton.v-readonly > .v-icon { - cursor: default; -} - -.sormastheme .v-radiobutton.v-readonly > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-radiobutton.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .sormastheme .v-radiobutton.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -:root .sormastheme .v-radiobutton > input:checked ~ label:after { - width: 6px; - height: 6px; - top: 5px; - left: 5px; - background: #60a0ea; -} - -:root .sormastheme .v-radiobutton > input ~ label:before, :root .sormastheme .v-radiobutton > input ~ label:after { - border-radius: 50%; - content: ""; -} - -.sormastheme .v-select-optiongroup .v-radiobutton, .sormastheme .v-select-optiongroup .v-checkbox { - display: block; - margin: 8px 15px 0 0; -} - -.sormastheme .v-select-optiongroup .v-radiobutton:first-child, .sormastheme .v-select-optiongroup .v-checkbox:first-child { - margin-top: 5px; -} - -.sormastheme .v-select-optiongroup .v-radiobutton:last-child, .sormastheme .v-select-optiongroup .v-checkbox:last-child { - margin-bottom: 5px; -} - -.sormastheme .v-select-optiongroup.v-has-width label { - white-space: normal; -} - -.sormastheme .v-select-optiongroup-small { - font-size: 13px; -} - -.sormastheme .v-select-optiongroup-small .v-checkbox { - position: relative; - line-height: 14px; - white-space: nowrap; -} - -.sormastheme .v-select-optiongroup-small .v-checkbox.v-has-width label { - white-space: normal; -} - -:root .sormastheme .v-select-optiongroup-small .v-checkbox { - padding-left: 18px; -} - -:root .sormastheme .v-select-optiongroup-small .v-checkbox label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .sormastheme .v-select-optiongroup-small .v-checkbox > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .sormastheme .v-select-optiongroup-small .v-checkbox > input:focus ~ label:before { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .sormastheme .v-select-optiongroup-small .v-checkbox > input ~ label:before, :root .sormastheme .v-select-optiongroup-small .v-checkbox > input ~ label:after { - content: ""; - display: inline-block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 14px; - height: 14px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 10px; - text-align: center; -} - -:root .sormastheme .v-select-optiongroup-small .v-checkbox > input ~ label:before { - height: 13.5px; - padding: 0 7px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 14px; -} - -:root .sormastheme .v-select-optiongroup-small .v-checkbox > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .sormastheme .v-select-optiongroup-small .v-checkbox > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .sormastheme .v-select-optiongroup-small .v-checkbox > input:checked ~ label:after { - color: #60a0ea; -} - -.sormastheme .v-select-optiongroup-small .v-checkbox > .v-icon, .sormastheme .v-select-optiongroup-small .v-checkbox > label .v-icon { - margin: 0 5px 0 2px; - min-width: 1em; - cursor: pointer; -} - -.sormastheme .v-select-optiongroup-small .v-checkbox.v-disabled > label, .sormastheme .v-select-optiongroup-small .v-checkbox.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-select-optiongroup-small .v-checkbox.v-disabled > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-select-optiongroup-small .v-checkbox.v-disabled > input:active ~ label:after { - background: transparent; -} - -.sormastheme .v-select-optiongroup-small .v-checkbox.v-readonly > label, .sormastheme .v-select-optiongroup-small .v-checkbox.v-readonly > .v-icon { - cursor: default; -} - -.sormastheme .v-select-optiongroup-small .v-checkbox.v-readonly > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-select-optiongroup-small .v-checkbox.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .sormastheme .v-select-optiongroup-small .v-checkbox.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-select-optiongroup-small .v-radiobutton { - position: relative; - line-height: 14px; - white-space: nowrap; -} - -.sormastheme .v-select-optiongroup-small .v-radiobutton.v-has-width label { - white-space: normal; -} - -:root .sormastheme .v-select-optiongroup-small .v-radiobutton { - padding-left: 18px; -} - -:root .sormastheme .v-select-optiongroup-small .v-radiobutton label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .sormastheme .v-select-optiongroup-small .v-radiobutton > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .sormastheme .v-select-optiongroup-small .v-radiobutton > input:focus ~ label:before { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .sormastheme .v-select-optiongroup-small .v-radiobutton > input ~ label:before, :root .sormastheme .v-select-optiongroup-small .v-radiobutton > input ~ label:after { - content: ""; - display: inline-block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 14px; - height: 14px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 10px; - text-align: center; -} - -:root .sormastheme .v-select-optiongroup-small .v-radiobutton > input ~ label:before { - height: 13.5px; - padding: 0 7px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 14px; -} - -:root .sormastheme .v-select-optiongroup-small .v-radiobutton > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .sormastheme .v-select-optiongroup-small .v-radiobutton > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .sormastheme .v-select-optiongroup-small .v-radiobutton > input:checked ~ label:after { - color: #60a0ea; -} - -.sormastheme .v-select-optiongroup-small .v-radiobutton > .v-icon, .sormastheme .v-select-optiongroup-small .v-radiobutton > label .v-icon { - margin: 0 5px 0 2px; - min-width: 1em; - cursor: pointer; -} - -.sormastheme .v-select-optiongroup-small .v-radiobutton.v-disabled > label, .sormastheme .v-select-optiongroup-small .v-radiobutton.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-select-optiongroup-small .v-radiobutton.v-disabled > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-select-optiongroup-small .v-radiobutton.v-disabled > input:active ~ label:after { - background: transparent; -} - -.sormastheme .v-select-optiongroup-small .v-radiobutton.v-readonly > label, .sormastheme .v-select-optiongroup-small .v-radiobutton.v-readonly > .v-icon { - cursor: default; -} - -.sormastheme .v-select-optiongroup-small .v-radiobutton.v-readonly > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-select-optiongroup-small .v-radiobutton.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .sormastheme .v-select-optiongroup-small .v-radiobutton.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -:root .sormastheme .v-select-optiongroup-small .v-radiobutton > input:checked ~ label:after { - width: 5px; - height: 5px; - top: 5px; - left: 5px; - background: #60a0ea; -} - -:root .sormastheme .v-select-optiongroup-small .v-radiobutton > input ~ label:before, :root .sormastheme .v-select-optiongroup-small .v-radiobutton > input ~ label:after { - border-radius: 50%; - content: ""; -} - -.sormastheme .v-select-optiongroup-small .v-radiobutton, .sormastheme .v-select-optiongroup-small .v-checkbox { - display: block; - margin: 7px 15px 0 0; -} - -.sormastheme .v-select-optiongroup-small .v-radiobutton:first-child, .sormastheme .v-select-optiongroup-small .v-checkbox:first-child { - margin-top: 5px; -} - -.sormastheme .v-select-optiongroup-small .v-radiobutton:last-child, .sormastheme .v-select-optiongroup-small .v-checkbox:last-child { - margin-bottom: 5px; -} - -.sormastheme .v-select-optiongroup-small.v-has-width label { - white-space: normal; -} - -.sormastheme .v-select-optiongroup-large { - font-size: 18px; -} - -.sormastheme .v-select-optiongroup-large .v-checkbox { - position: relative; - line-height: 19px; - white-space: nowrap; -} - -.sormastheme .v-select-optiongroup-large .v-checkbox.v-has-width label { - white-space: normal; -} - -:root .sormastheme .v-select-optiongroup-large .v-checkbox { - padding-left: 25px; -} - -:root .sormastheme .v-select-optiongroup-large .v-checkbox label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .sormastheme .v-select-optiongroup-large .v-checkbox > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .sormastheme .v-select-optiongroup-large .v-checkbox > input:focus ~ label:before { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .sormastheme .v-select-optiongroup-large .v-checkbox > input ~ label:before, :root .sormastheme .v-select-optiongroup-large .v-checkbox > input ~ label:after { - content: ""; - display: inline-block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 19px; - height: 19px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 14px; - text-align: center; -} - -:root .sormastheme .v-select-optiongroup-large .v-checkbox > input ~ label:before { - height: 19px; - padding: 0 9px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 19px; -} - -:root .sormastheme .v-select-optiongroup-large .v-checkbox > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .sormastheme .v-select-optiongroup-large .v-checkbox > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .sormastheme .v-select-optiongroup-large .v-checkbox > input:checked ~ label:after { - color: #60a0ea; -} - -.sormastheme .v-select-optiongroup-large .v-checkbox > .v-icon, .sormastheme .v-select-optiongroup-large .v-checkbox > label .v-icon { - margin: 0 6px 0 3px; - min-width: 1em; - cursor: pointer; -} - -.sormastheme .v-select-optiongroup-large .v-checkbox.v-disabled > label, .sormastheme .v-select-optiongroup-large .v-checkbox.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-select-optiongroup-large .v-checkbox.v-disabled > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-select-optiongroup-large .v-checkbox.v-disabled > input:active ~ label:after { - background: transparent; -} - -.sormastheme .v-select-optiongroup-large .v-checkbox.v-readonly > label, .sormastheme .v-select-optiongroup-large .v-checkbox.v-readonly > .v-icon { - cursor: default; -} - -.sormastheme .v-select-optiongroup-large .v-checkbox.v-readonly > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-select-optiongroup-large .v-checkbox.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .sormastheme .v-select-optiongroup-large .v-checkbox.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-select-optiongroup-large .v-radiobutton { - position: relative; - line-height: 19px; - white-space: nowrap; -} - -.sormastheme .v-select-optiongroup-large .v-radiobutton.v-has-width label { - white-space: normal; -} - -:root .sormastheme .v-select-optiongroup-large .v-radiobutton { - padding-left: 25px; -} - -:root .sormastheme .v-select-optiongroup-large .v-radiobutton label { - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - cursor: pointer; - display: inline-block; -} - -:root .sormastheme .v-select-optiongroup-large .v-radiobutton > input { - position: absolute; - clip: rect(0, 0, 0, 0); - left: 0.2em; - top: 0.2em; - z-index: 0; - margin: 0; -} - -:root .sormastheme .v-select-optiongroup-large .v-radiobutton > input:focus ~ label:before { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); -} - -:root .sormastheme .v-select-optiongroup-large .v-radiobutton > input ~ label:before, :root .sormastheme .v-select-optiongroup-large .v-radiobutton > input ~ label:after { - content: ""; - display: inline-block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 19px; - height: 19px; - position: absolute; - top: 0; - left: 0; - border-radius: 4px; - font-size: 14px; - text-align: center; -} - -:root .sormastheme .v-select-optiongroup-large .v-radiobutton > input ~ label:before { - height: 19px; - padding: 0 9px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - padding: 0; - height: 19px; -} - -:root .sormastheme .v-select-optiongroup-large .v-radiobutton > input ~ label:after { - content: "\f00c"; - font-family: ThemeIcons; - color: transparent; - -webkit-transition: color 100ms; - -moz-transition: color 100ms; - transition: color 100ms; -} - -:root .sormastheme .v-select-optiongroup-large .v-radiobutton > input:active ~ label:after { - background-color: rgba(125, 125, 125, 0.2); -} - -:root .sormastheme .v-select-optiongroup-large .v-radiobutton > input:checked ~ label:after { - color: #60a0ea; -} - -.sormastheme .v-select-optiongroup-large .v-radiobutton > .v-icon, .sormastheme .v-select-optiongroup-large .v-radiobutton > label .v-icon { - margin: 0 6px 0 3px; - min-width: 1em; - cursor: pointer; -} - -.sormastheme .v-select-optiongroup-large .v-radiobutton.v-disabled > label, .sormastheme .v-select-optiongroup-large .v-radiobutton.v-disabled > .v-icon { - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-select-optiongroup-large .v-radiobutton.v-disabled > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-select-optiongroup-large .v-radiobutton.v-disabled > input:active ~ label:after { - background: transparent; -} - -.sormastheme .v-select-optiongroup-large .v-radiobutton.v-readonly > label, .sormastheme .v-select-optiongroup-large .v-radiobutton.v-readonly > .v-icon { - cursor: default; -} - -.sormastheme .v-select-optiongroup-large .v-radiobutton.v-readonly > label > .v-icon { - cursor: default; -} - -:root .sormastheme .v-select-optiongroup-large .v-radiobutton.v-readonly > input:active ~ label:after { - background: transparent; -} - -:root .sormastheme .v-select-optiongroup-large .v-radiobutton.v-readonly > input ~ label:after { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -:root .sormastheme .v-select-optiongroup-large .v-radiobutton > input:checked ~ label:after { - width: 7px; - height: 7px; - top: 6px; - left: 6px; - background: #60a0ea; -} - -:root .sormastheme .v-select-optiongroup-large .v-radiobutton > input ~ label:before, :root .sormastheme .v-select-optiongroup-large .v-radiobutton > input ~ label:after { - border-radius: 50%; - content: ""; -} - -.sormastheme .v-select-optiongroup-large .v-radiobutton, .sormastheme .v-select-optiongroup-large .v-checkbox { - display: block; - margin: 10px 15px 0 0; -} - -.sormastheme .v-select-optiongroup-large .v-radiobutton:first-child, .sormastheme .v-select-optiongroup-large .v-checkbox:first-child { - margin-top: 6px; -} - -.sormastheme .v-select-optiongroup-large .v-radiobutton:last-child, .sormastheme .v-select-optiongroup-large .v-checkbox:last-child { - margin-bottom: 6px; -} - -.sormastheme .v-select-optiongroup-large.v-has-width label { - white-space: normal; -} - -.sormastheme .v-select-optiongroup-horizontal { - white-space: nowrap; -} - -.sormastheme .v-select-optiongroup-horizontal .v-radiobutton, .sormastheme .v-select-optiongroup-horizontal .v-checkbox { - display: inline-block; -} - -.sormastheme .v-select-optiongroup-horizontal.v-has-width { - white-space: normal; -} - -.sormastheme .v-select-optiongroup-horizontal.v-has-width label { - white-space: nowrap; -} - -.sormastheme .v-link { - cursor: pointer; - color: #60a0ea; - text-decoration: underline; - font-weight: inherit; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.sormastheme .v-link:hover { - color: #8dbbf0; -} - -.sormastheme .v-link.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-link a { - cursor: inherit; - color: inherit; - text-decoration: inherit; - -webkit-transition: inherit; - -moz-transition: inherit; - transition: inherit; -} - -.sormastheme .v-link .v-icon { - cursor: inherit; -} - -.sormastheme .v-link-small { - font-size: 13px; -} - -.sormastheme .v-link-large { - font-size: 18px; -} - -.sormastheme .v-window { - padding: 4px 4px; - border-radius: 4px; - background-color: white; - color: #474747; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1), 0 16px 80px -6px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.09098); - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1), 0 16px 80px -6px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.09098); - padding: 0; - min-width: 128px !important; - min-height: 32px !important; - white-space: nowrap; - overflow: hidden !important; - -webkit-transition: width 200ms, height 200ms, top 200ms, left 200ms; - -moz-transition: width 200ms, height 200ms, top 200ms, left 200ms; - transition: width 200ms, height 200ms, top 200ms, left 200ms; -} - -.sormastheme .v-window[class*="animate-in"] { - -webkit-animation: valo-animate-in-fade 140ms; - -moz-animation: valo-animate-in-fade 140ms; - animation: valo-animate-in-fade 140ms; -} - -.sormastheme .v-window[class*="animate-out"] { - -webkit-animation: valo-animate-out-scale-down-fade 100ms; - -moz-animation: valo-animate-out-scale-down-fade 100ms; - animation: valo-animate-out-scale-down-fade 100ms; -} - -.sormastheme .v-window.v-window-animate-in { - -webkit-transition: none; - -moz-transition: none; - transition: none; -} - -.sormastheme .v-window-modalitycurtain { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: #222; - background-image: -webkit-radial-gradient(50% 50%, circle, #222, #0e0e0e); - background-image: radial-gradient( circle at 50% 50%, #222, #0e0e0e); - opacity: 0.72; - filter: alpha(opacity=72) ; - -webkit-animation: valo-animate-in-fade 400ms 100ms backwards; - -moz-animation: valo-animate-in-fade 400ms 100ms backwards; - animation: valo-animate-in-fade 400ms 100ms backwards; -} - -.v-op12 .sormastheme .v-window-modalitycurtain { - -webkit-animation: none; - -moz-animation: none; - animation: none; -} - -.sormastheme .v-window-draggingCurtain { - position: fixed !important; -} - -.sormastheme .v-window-resizingCurtain + .v-window, .sormastheme .v-window-draggingCurtain + .v-window { - -webkit-transition: none; - -moz-transition: none; - transition: none; -} - -.sormastheme .v-window-outerheader { - cursor: move; - position: absolute; - z-index: 2; - top: 0; - left: 0; - right: 0; - -webkit-transform: translatez(0); - -moz-transform: translatez(0); - -ms-transform: translatez(0); - -o-transform: translatez(0); - transform: translatez(0); -} - -.sormastheme .v-window-outerheader:after { - content: ""; - position: absolute; - bottom: -1px; - right: 0; - left: 0; - height: 0; - border-top: 1px solid #dfdfdf; - border-color: rgba(197, 197, 197, 0.5); -} - -.sormastheme .v-window-header { - line-height: 31px; - padding-left: 11px; - margin-right: 64px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - color: #7e7e7e; -} - -.sormastheme .v-window-restorebox-disabled ~ .v-window-closebox ~ .v-window-header, .sormastheme .v-window-maximizebox-disabled ~ .v-window-closebox ~ .v-window-header { - margin-right: 32px; -} - -.sormastheme .v-window-restorebox-disabled ~ .v-window-closebox-disabled ~ .v-window-header, .sormastheme .v-window-maximizebox-disabled ~ .v-window-closebox-disabled ~ .v-window-header { - margin-right: 11px; -} - -.sormastheme .v-window-closebox, .sormastheme .v-window-maximizebox, .sormastheme .v-window-restorebox { - position: absolute; - z-index: 3; - top: 0; - right: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 28px; - height: 31px; - background-color: white; - line-height: 29px; - text-align: center; - cursor: pointer; - font-size: 20px; - color: #999999; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.sormastheme .v-window-closebox:focus, .sormastheme .v-window-maximizebox:focus, .sormastheme .v-window-restorebox:focus { - outline: none; -} - -.sormastheme .v-window-closebox:hover, .sormastheme .v-window-maximizebox:hover, .sormastheme .v-window-restorebox:hover { - opacity: 1; - filter: none ; - color: #60a0ea; -} - -.sormastheme .v-window-closebox:active, .sormastheme .v-window-maximizebox:active, .sormastheme .v-window-restorebox:active { - color: inherit; -} - -.sormastheme .v-window-closebox { - padding-right: 4px; - border-radius: 0 4px 0 4px; -} - -.sormastheme .v-window-closebox:before { - content: "\00d7"; -} - -.sormastheme .v-window-maximizebox, .sormastheme .v-window-restorebox { - right: 28px; - padding-left: 4px; - border-radius: 0 0 0 4px; -} - -.sormastheme .v-window-maximizebox + .v-window-closebox, .sormastheme .v-window-restorebox + .v-window-closebox { - border-bottom-left-radius: 0; -} - -.sormastheme .v-window-closebox-disabled, .sormastheme .v-window-resizebox-disabled, .sormastheme .v-window-restorebox-disabled, .sormastheme .v-window-maximizebox-disabled { - display: none; -} - -.sormastheme .v-window-closebox-disabled + .v-window-closebox, .sormastheme .v-window-resizebox-disabled + .v-window-closebox, .sormastheme .v-window-restorebox-disabled + .v-window-closebox, .sormastheme .v-window-maximizebox-disabled + .v-window-closebox { - width: 32px; - padding-right: 0; - border-bottom-left-radius: 4px; -} - -.sormastheme .v-window-maximizebox:before { - content: "+"; -} - -.sormastheme .v-window-restorebox:before { - content: "\2013"; -} - -.sormastheme .v-window > .popupContent, .sormastheme .v-window-wrap, .sormastheme .v-window-contents, .sormastheme .v-window-contents > .v-scrollable { - height: 100%; -} - -.sormastheme .v-window-contents { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border-radius: 4px; - margin-top: 0 !important; -} - -.sormastheme .v-window-contents > .v-scrollable { - position: relative; -} - -.sormastheme .v-window-contents > .v-scrollable > .v-margin-top { - padding-top: 11px; -} - -.sormastheme .v-window-contents > .v-scrollable > .v-margin-right { - padding-right: 11px; -} - -.sormastheme .v-window-contents > .v-scrollable > .v-margin-bottom { - padding-bottom: 11px; -} - -.sormastheme .v-window-contents > .v-scrollable > .v-margin-left { - padding-left: 11px; -} - -.sormastheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-top"] > tbody > [class*="firstrow"] > td { - padding-top: 11px; -} - -.sormastheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-bottom"] > tbody > [class*="lastrow"] > td { - padding-bottom: 11px; -} - -.sormastheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="captioncell"] { - padding-left: 11px; -} - -.sormastheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .sormastheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .sormastheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-left"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { - left: 11px; -} - -.sormastheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] { - padding-right: 11px; -} - -.sormastheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h2, .sormastheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h3, .sormastheme .v-window-contents > .v-scrollable > .v-formlayout [class*="margin-right"] > tbody > [class*="row"] > [class*="contentcell"] > .v-label-h4 { - right: 11px; -} - -.sormastheme .v-window-contents > .v-scrollable:focus { - outline: none; -} - -.sormastheme .v-window-contents > .v-scrollable:before { - content: ""; - position: absolute; - z-index: 2; - top: 0; - height: 0; - border-top: 1px solid white; - left: 0; - right: 0; -} - -.sormastheme .v-window-contents > .v-scrollable .v-panel-captionwrap:after { - border-color: #dfdfdf; -} - -.sormastheme .v-window-contents > .v-scrollable .v-panel-content:before { - border-color: white; -} - -.sormastheme .v-window-footer { - height: 0; -} - -.sormastheme .v-window-resizebox { - position: absolute; - z-index: 1000; - right: 0; - bottom: 0; - width: 16px; - height: 16px; - cursor: nwse-resize; -} - -.v-ie8 .sormastheme .v-window-resizebox { - background: #000; - filter: alpha(opacity=0.1); -} - -.v-ie8 .sormastheme .v-window-resizebox, .v-ie9 .sormastheme .v-window-resizebox { - cursor: se-resize; -} - -.sormastheme .v-window-modalitycurtain:active ~ .v-window { - -webkit-animation: none; - -moz-animation: none; - animation: none; -} - -.sormastheme .v-window-top-toolbar > .v-widget, .sormastheme .v-window-bottom-toolbar > .v-widget { - vertical-align: top; -} - -.sormastheme .v-window-top-toolbar .v-label, .sormastheme .v-window-bottom-toolbar .v-label { - line-height: 31px; -} - -.sormastheme .v-window-top-toolbar .v-spacing, .sormastheme .v-window-bottom-toolbar .v-spacing { - width: 9px; -} - -.sormastheme .v-window-top-toolbar.v-layout { - padding: 6px 11px; - position: relative; - z-index: 2; - border-top: 1px solid #dfdfdf; - border-bottom: 1px solid #dfdfdf; - background-color: #fafafa; -} - -.sormastheme .v-window-top-toolbar.v-menubar { - margin: 11px 11px 5px; -} - -.sormastheme .v-window-top-toolbar.v-menubar-borderless { - padding-left: 5px; - padding-right: 5px; - margin: 4px 0; -} - -.sormastheme .v-window-bottom-toolbar.v-layout { - padding: 6px 11px; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #f0f0f0 0, #fafafa 3px); - background-image: linear-gradient(to bottom,#f0f0f0 0, #fafafa 3px); - border-top: 1px solid #dfdfdf; - border-radius: 0 0 4px 4px; -} - -.sormastheme .v-margin-left.v-margin-right.v-margin-top .v-window-top-toolbar.v-layout { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - margin: -11px -11px 0; -} - -.sormastheme .v-margin-left.v-margin-right.v-margin-top .v-window-top-toolbar.v-menubar { - margin: 0; -} - -.sormastheme .v-margin-left.v-margin-right.v-margin-top .v-window-top-toolbar.v-menubar-borderless { - margin: -6px -6px 0; - padding: 0; -} - -.sormastheme .v-margin-left.v-margin-right.v-margin-bottom .v-window-bottom-toolbar.v-layout { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - margin: 0 -11px -11px; -} - -.sormastheme .v-tree { - position: relative; - white-space: nowrap; -} - -.sormastheme .v-tree:focus { - outline: none; -} - -.sormastheme .v-tree-node:before { - content: ""; - position: absolute; - display: inline-block; - z-index: 3; - width: 1.9em; - height: 25px; - cursor: pointer; - background: red; - opacity: 0; -} - -.v-ie8 .sormastheme .v-tree-node:before { - position: static; - margin-left: -1.9em; - vertical-align: top; - content: "\f0da"; - font-family: ThemeIcons; - text-align: center; - background: transparent; -} - -.v-ie8 .sormastheme .v-tree-node { - padding-left: 1.9em; -} - -.sormastheme .v-tree-node-caption { - height: 25px; - line-height: 24px; - overflow: hidden; - white-space: nowrap; - vertical-align: top; -} - -.sormastheme .v-tree-node-caption > div { - display: inline-block; - width: 100%; - position: relative; - z-index: 2; -} - -.sormastheme .v-tree-node-caption > div:before { - content: "\f0da"; - font-family: ThemeIcons; - display: inline-block; - width: 0.5em; - text-align: center; - margin: 0 0.6em 0 0.8em; - -webkit-transition: all 100ms; - -moz-transition: all 100ms; - transition: all 100ms; -} - -.v-ie8 .sormastheme .v-tree-node-caption > div:before { - display: none; -} - -.sormastheme .v-tree-node-caption span { - padding-right: 25px; - cursor: pointer; - display: inline-block; - width: 100%; -} - -.v-ie .sormastheme .v-tree-node-caption span { - width: auto; -} - -.sormastheme .v-tree-node-caption .v-icon { - padding-right: 0; - width: auto; - min-width: 1em; -} - -.sormastheme .v-tree-node-caption:after { - content: ""; - display: block; - vertical-align: top; - position: absolute; - z-index: 1; - left: 0; - margin-top: -25px; - width: 100%; - height: 25px; - border-radius: 4px; - opacity: 0; - -webkit-transition: opacity 120ms; - -moz-transition: opacity 120ms; - transition: opacity 120ms; -} - -.v-ie8 .sormastheme .v-tree-node-caption:after { - content: none; -} - -.v-ie8 .sormastheme .v-tree-node-caption { - display: inline-block; -} - -.sormastheme .v-tree-node-expanded > .v-tree-node-caption > div:before { - -webkit-transform: rotate(90deg); - -moz-transform: rotate(90deg); - -ms-transform: rotate(90deg); - -o-transform: rotate(90deg); - transform: rotate(90deg); - content: "\f0da"; - font-family: ThemeIcons; -} - -.v-ie8 .sormastheme .v-tree-node-expanded:before { - content: "\f0d7"; - font-family: ThemeIcons; -} - -.sormastheme .v-tree-node-leaf:before, .sormastheme .v-tree-node-leaf > .v-tree-node-caption > div:before { - visibility: hidden; -} - -.sormastheme .v-tree-node-focused:after { - opacity: 1; - border: 1px solid #60a0ea; -} - -.v-ie8 .sormastheme .v-tree-node-focused { - outline: 1px dotted #60a0ea; -} - -.sormastheme .v-tree-node-selected { - color: #f2f6fa; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.sormastheme .v-tree-node-selected:after { - opacity: 1; - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - border: none; -} - -.v-ie8 .sormastheme .v-tree-node-selected { - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); -} - -.sormastheme .v-tree-node-children { - padding-left: 16px; -} - -.v-ie8 .sormastheme .v-tree-node-children { - padding-left: 0; -} - -.sormastheme .v-tree-node-drag-top:before, .sormastheme .v-tree-node-drag-bottom:after, .sormastheme .v-tree-node-drag-bottom.v-tree-node-dragfolder.v-tree-node-expanded > .v-tree-node-children:before { - content: "\2022"; - display: block; - position: absolute; - height: 2px; - width: 100%; - background: #60a0ea; - font-size: 30px; - line-height: 2px; - color: #60a0ea; - text-indent: -4px; - text-shadow: 0 0 1px #fafafa, 0 0 1px #fafafa; - opacity: 1; - visibility: visible; -} - -.sormastheme .v-tree-node-drag-bottom.v-tree-node-dragfolder.v-tree-node-expanded:after { - content: none; -} - -.sormastheme .v-tree-node-caption-drag-center { - -webkit-box-shadow: 0 0 0 2px #60a0ea; - box-shadow: 0 0 0 2px #60a0ea; - position: relative; - border-radius: 4px; -} - -.v-ie8 .sormastheme .v-tree-node-caption-drag-center { - outline: 2px solid #60a0ea; -} - -.v-ff .sormastheme .v-tree-node-drag-top:before, .v-ff .sormastheme .v-tree-node-drag-bottom:after { - line-height: 1px; -} - -.v-ie8 .sormastheme .v-tree-node-drag-top:before, .v-ie8 .sormastheme .v-tree-node-drag-bottom:after { - line-height: 0; -} - -.sormastheme .v-table { - position: relative; - background: #fafafa; - color: #464646; - overflow: hidden; -} - -.sormastheme .v-table-header table, .sormastheme .v-table-footer table, .sormastheme .v-table-table { - -webkit-box-shadow: 0 0 0 1px #d4d4d4; - box-shadow: 0 0 0 1px #d4d4d4; -} - -.v-ie8 .sormastheme .v-table-header table, .v-ie8 .sormastheme .v-table-footer table, .v-ie8 .sormastheme .v-table-table { - outline: 1px solid #d4d4d4; -} - -.sormastheme .v-table-header-wrap, .sormastheme .v-table-footer-wrap, .sormastheme .v-table-header-drag { - border: 1px solid #d4d4d4; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - white-space: nowrap; - font-size: 13px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.sormastheme .v-table-header-wrap { - position: relative; - border-bottom: none; -} - -.sormastheme .v-table-footer-wrap { - border-top: none; -} - -.sormastheme .v-table-footer td { - border-left: 1px solid #d4d4d4; -} - -.sormastheme .v-table-footer-container, .sormastheme .v-table-caption-container { - overflow: hidden; - line-height: 1; - min-height: 32px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.v-ie8 .sormastheme .v-table-footer-container, .v-ie8 .sormastheme .v-table-caption-container { - min-height: 13px; -} - -.sormastheme .v-table-footer-container { - padding: 9px 11px 10px; - float: right; -} - -.sormastheme [class^="v-table-header-cell"] { - position: relative; -} - -.sormastheme .v-table-caption-container, .sormastheme .v-table-header-drag { - padding: 10px 11px 9px; - border-left: 1px solid #d4d4d4; -} - -.sormastheme .v-table-caption-container-align-right { - padding-right: 4px; -} - -.sormastheme .v-table-resizer { - height: 32px; - width: 7px; - cursor: e-resize; - cursor: col-resize; - position: relative; - right: -4px; - z-index: 1; - margin-left: -7px; -} - -.sormastheme .v-table-cell-content { - border-left: 1px solid #d4d4d4; - overflow: hidden; - height: 32px; - vertical-align: middle; -} - -.sormastheme .v-table-cell-content:first-child { - border-left: none; - padding-left: 1px; -} - -.sormastheme .v-table-header td:first-child .v-table-caption-container, .sormastheme .v-table-footer td:first-child { - border-left-color: transparent; -} - -.sormastheme .v-table-cell-wrapper { - line-height: 1; - padding: 0 11px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - margin-right: 0 !important; -} - -.sormastheme .v-table-cell-wrapper > .v-widget { - margin: 3px -6px; -} - -.sormastheme .v-table-cell-wrapper > .v-widget.v-label, .sormastheme .v-table-cell-wrapper > .v-widget.v-checkbox, .sormastheme .v-table-cell-wrapper > .v-widget.v-select-optiongroup { - margin: 0; -} - -.sormastheme .v-table-cell-wrapper > .v-widget.v-progressbar { - margin-left: 0; - margin-right: 0; -} - -.sormastheme .v-table-body { - border: 1px solid #d4d4d4; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} - -.sormastheme .v-table-table { - background-color: white; - white-space: nowrap; -} - -.sormastheme .v-table-table td { - border-top: 1px solid #d4d4d4; -} - -.sormastheme .v-table-table tr:first-child > td { - border-top: none; -} - -.sormastheme .v-table-row { - background-color: white; - cursor: pointer; -} - -.sormastheme .v-table-row-odd { - background-color: #f5f5f5; - cursor: pointer; -} - -.sormastheme .v-table-body-noselection .v-table-row, .sormastheme .v-table-body-noselection .v-table-row-odd { - cursor: default; -} - -.sormastheme .v-table [class*="-row"].v-selected { - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - background-origin: border-box; - color: #f2f6fa; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.sormastheme .v-table [class*="-row"].v-selected + .v-selected { - background: #5491de; -} - -.sormastheme .v-table [class*="-row"].v-selected + .v-selected td { - border-top-color: #5491de; -} - -.sormastheme .v-table [class*="-row"].v-selected .v-table-cell-content { - border-color: transparent; - border-left-color: #458bdc; -} - -.sormastheme .v-table [class*="-row"].v-selected .v-table-cell-content:first-child { - border-left-color: transparent; -} - -.sormastheme .v-table-header-cell-asc .v-table-sort-indicator, .sormastheme .v-table-header-cell-desc .v-table-sort-indicator { - background: transparent; - width: 16px; - height: 32px; - line-height: 32px; - margin-left: -16px; -} - -.sormastheme .v-table-header-cell-asc .v-table-sort-indicator:before, .sormastheme .v-table-header-cell-desc .v-table-sort-indicator:before { - font-style: normal; - font-weight: normal; - display: inline-block; -} - -.sormastheme .v-table-header-cell-asc .v-table-sort-indicator:before { - content: "\f0de"; - font-family: ThemeIcons; -} - -.sormastheme .v-table-header-cell-desc .v-table-sort-indicator:before { - content: "\f0dd"; - font-family: ThemeIcons; -} - -.sormastheme [class*="rowheader"] span.v-icon { - min-width: 1em; -} - -.sormastheme .v-table-focus { - outline: 1px solid #60a0ea; - outline-offset: -1px; -} - -.sormastheme .v-drag-element.v-table-focus, .sormastheme .v-drag-element .v-table-focus { - outline: none; -} - -.sormastheme .v-table-header-drag { - position: absolute; - opacity: 0.9; - filter: alpha(opacity=90) ; - margin-top: -16px; - z-index: 30000; - line-height: 1; -} - -.sormastheme .v-table-focus-slot-right { - border-right: 3px solid #60a0ea; - right: -2px; - margin-left: -10px !important; -} - -.sormastheme .v-table-focus-slot-left { - float: left; - border-left: 3px solid #60a0ea; - left: -1px; - right: auto; - margin-left: 0 !important; - margin-right: -10px; -} - -.sormastheme .v-table-column-selector { - height: 32px; - padding: 0 14px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - position: absolute; - z-index: 2; - top: 0; - right: 0; - width: 16px; - height: 16px; - line-height: 16px; - padding: 0; - border-top-width: 0; - border-right-width: 0; - border-radius: 0 0 0 4px; - cursor: pointer; - text-align: center; - opacity: 0; - filter: alpha(opacity=0) ; - -webkit-transition: opacity 200ms 2s; - -moz-transition: opacity 200ms 2s; - transition: opacity 200ms 2s; -} - -.sormastheme .v-table-column-selector:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-table-column-selector:hover:after { - background-color: rgba(186, 186, 186, 0.1); -} - -.sormastheme .v-table-column-selector:focus:after { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-table-column-selector:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.sormastheme .v-table-column-selector:after { - content: ""; - position: absolute; - border: none; - top: 0; - right: 0; - bottom: 0; - left: 0; -} - -.sormastheme .v-table-column-selector:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.sormastheme .v-table-column-selector:before { - font-family: ThemeIcons; - content: "\f013"; -} - -.sormastheme .v-table-header-wrap:hover .v-table-column-selector { - opacity: 1; - filter: none ; - -webkit-transition-delay: 200ms; - -moz-transition-delay: 200ms; - transition-delay: 200ms; -} - -.sormastheme .v-on:before, .sormastheme .v-off:before { - content: "\f00c"; - font-family: ThemeIcons; - font-size: 0.9em; - margin-right: 5px; -} - -.sormastheme .v-on div, .sormastheme .v-off div { - display: inline; -} - -.sormastheme .v-on.v-disabled, .sormastheme .v-off.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-off:before { - visibility: hidden; -} - -.sormastheme tbody.v-drag-element { - display: block; - overflow: visible; - -webkit-box-shadow: none; - box-shadow: none; - background: transparent; - opacity: 1; - filter: none ; -} - -.sormastheme tbody.v-drag-element tr { - display: block; - - - -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); - border-radius: 4px; - overflow: hidden; - opacity: 0.5; - filter: alpha(opacity=50) ; - background: white; -} - -.sormastheme .v-table-body { - position: relative; - z-index: 1; -} - -.sormastheme .v-table-scrollposition { - position: absolute; - top: 50%; - width: 100%; - height: 32px; - line-height: 32px; - margin: -16px 0 0 !important; - text-align: center; -} - -.sormastheme .v-table-drag { - overflow: visible; -} - -.sormastheme .v-table-drag .v-table-body { - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - border-color: #60a0ea; -} - -.v-ie8 .sormastheme .v-table-drag .v-table-body { - border-color: #60a0ea; -} - -.sormastheme .v-table-drag .v-table-body .v-table-focus { - outline: none; -} - -.sormastheme .v-table-row-drag-middle .v-table-cell-content { - background-color: #dfecfa; - color: #234161; -} - -.sormastheme .v-table-row-drag-bottom td.v-table-cell-content { - border-bottom: 2px solid #60a0ea; - height: 30px; -} - -.sormastheme .v-table-row-drag-bottom .v-table-cell-wrapper { - margin-bottom: -2px; -} - -.sormastheme .v-table-row-drag-top td.v-table-cell-content { - border-top: 2px solid #60a0ea; - height: 31px; -} - -.sormastheme .v-table-row-drag-top .v-table-cell-wrapper { - margin-top: -1px; -} - -.sormastheme .v-table-no-stripes .v-table-row, .sormastheme .v-table-no-stripes .v-table-row-odd { - background: transparent; -} - -.sormastheme .v-table-no-vertical-lines .v-table-cell-content { - border-left: none; - padding-left: 1px; -} - -.sormastheme .v-table-no-vertical-lines.v-treetable .v-table-cell-content { - padding-left: 12px; -} - -.sormastheme .v-table-no-horizontal-lines .v-table-cell-content { - border-top: none; - border-bottom: none; -} - -.sormastheme .v-table-no-horizontal-lines .v-table-row-drag-top .v-table-cell-content, .sormastheme .v-table-no-horizontal-lines .v-table-row-drag-bottom .v-table-cell-content { - height: 31px; -} - -.sormastheme .v-table-no-header .v-table-header-wrap { - display: none; -} - -.sormastheme .v-table-borderless .v-table-header-wrap, .sormastheme .v-table-borderless .v-table-footer-wrap, .sormastheme .v-table-borderless .v-table-header-drag, .sormastheme .v-table-borderless .v-table-body { - border: none; -} - -.sormastheme .v-table-borderless .v-table-header-wrap { - border-bottom: 1px solid #d9d9d9; -} - -.sormastheme .v-table-borderless .v-table-footer-wrap { - border-top: 1px solid #d9d9d9; -} - -.sormastheme .v-table-compact .v-table-header-wrap, .sormastheme .v-table-compact .v-table-footer-wrap, .sormastheme .v-table-compact .v-table-header-drag, .sormastheme .v-table-small .v-table-header-wrap, .sormastheme .v-table-small .v-table-footer-wrap, .sormastheme .v-table-small .v-table-header-drag { - font-size: 13px; -} - -.sormastheme .v-table-compact .v-table-footer-container, .sormastheme .v-table-small .v-table-footer-container { - padding: 6px 7px 7px; -} - -.sormastheme .v-table-compact .v-table-caption-container, .sormastheme .v-table-compact .v-table-header-drag, .sormastheme .v-table-small .v-table-caption-container, .sormastheme .v-table-small .v-table-header-drag { - padding-top: 7px; - padding-bottom: 6px; - padding-left: 6px; - padding-right: 6px; -} - -.sormastheme .v-table-compact .v-table-caption-container-align-right, .sormastheme .v-table-small .v-table-caption-container-align-right { - padding-right: 0; -} - -.sormastheme .v-table-compact .v-table-resizer, .sormastheme .v-table-small .v-table-resizer { - height: 27px; -} - -.sormastheme .v-table-compact .v-table-cell-content, .sormastheme .v-table-small .v-table-cell-content { - height: 27px; -} - -.sormastheme .v-table-compact .v-table-cell-wrapper, .sormastheme .v-table-small .v-table-cell-wrapper { - padding-left: 6px; - padding-right: 6px; -} - -.sormastheme .v-table-compact .v-table-cell-wrapper > .v-widget, .sormastheme .v-table-small .v-table-cell-wrapper > .v-widget { - margin: 2px -3px; -} - -.sormastheme .v-table-compact .v-table-cell-wrapper > .v-widget.v-label, .sormastheme .v-table-compact .v-table-cell-wrapper > .v-widget.v-checkbox, .sormastheme .v-table-compact .v-table-cell-wrapper > .v-widget.v-select-optiongroup, .sormastheme .v-table-small .v-table-cell-wrapper > .v-widget.v-label, .sormastheme .v-table-small .v-table-cell-wrapper > .v-widget.v-checkbox, .sormastheme .v-table-small .v-table-cell-wrapper > .v-widget.v-select-optiongroup { - margin: 0; -} - -.sormastheme .v-table-compact .v-table-cell-wrapper > .v-widget.v-progressbar, .sormastheme .v-table-small .v-table-cell-wrapper > .v-widget.v-progressbar { - margin-left: 0; - margin-right: 0; -} - -.sormastheme .v-table-compact .v-table-header-cell-asc .v-table-sort-indicator, .sormastheme .v-table-compact .v-table-header-cell-desc .v-table-sort-indicator, .sormastheme .v-table-small .v-table-header-cell-asc .v-table-sort-indicator, .sormastheme .v-table-small .v-table-header-cell-desc .v-table-sort-indicator { - height: 27px; - line-height: 27px; -} - -.sormastheme .v-table-compact .v-table-header-drag, .sormastheme .v-table-small .v-table-header-drag { - margin-top: -14px; -} - -.sormastheme .v-table-compact.v-treetable .v-table-cell-wrapper, .sormastheme .v-table-small.v-treetable .v-table-cell-wrapper { - padding-left: 0; - padding-right: 0; - min-height: 15px; -} - -.sormastheme .v-table-compact.v-treetable .v-table-cell-content, .sormastheme .v-table-small.v-treetable .v-table-cell-content { - padding-left: 6px; - padding-right: 6px; -} - -.sormastheme .v-table-compact.v-treetable .v-table-cell-content:first-child, .sormastheme .v-table-small.v-treetable .v-table-cell-content:first-child { - padding-left: 7px; -} - -.sormastheme .v-table-compact.v-treetable .v-table-footer-container, .sormastheme .v-table-small.v-treetable .v-table-footer-container { - padding-left: 6px; - padding-right: 6px; -} - -.sormastheme .v-table-compact .v-table-row-drag-top .v-table-cell-content, .sormastheme .v-table-compact .v-table-row-drag-bottom .v-table-cell-content, .sormastheme .v-table-small .v-table-row-drag-top .v-table-cell-content, .sormastheme .v-table-small .v-table-row-drag-bottom .v-table-cell-content { - height: 26px; -} - -.sormastheme .v-table-small { - font-size: 13px; -} - -.sormastheme .v-table-small.v-treetable .v-table-cell-wrapper { - min-height: 13px; -} - -.sormastheme .v-treetable [class*="caption-container"], .sormastheme .v-treetable [class*="footer-container"], .sormastheme .v-treetable [class*="cell-wrapper"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - padding-left: 0; - padding-right: 0; -} - -.sormastheme .v-treetable [class*="caption-container"], .sormastheme .v-treetable [class*="footer-container"] { - min-height: 13px; -} - -.sormastheme .v-treetable [class*="cell-wrapper"] { - min-height: 15px; -} - -.sormastheme .v-treetable [class*="caption-container"] { - padding-left: 11px; -} - -.sormastheme .v-treetable [class*="caption-container-align-right"] { - padding-left: 18px; -} - -.sormastheme .v-treetable [class*="footer-container"] { - padding-right: 11px; -} - -.sormastheme .v-treetable [class*="cell-content"] { - padding-left: 11px; - padding-right: 11px; -} - -.sormastheme .v-treetable [class*="cell-content"]:first-child { - padding-left: 12px; -} - -.sormastheme .v-treetable-treespacer { - display: inline-block; - position: absolute; - width: 16px !important; - margin-left: -22px; - text-align: center; - cursor: pointer; -} - -.sormastheme .v-treetable-node-closed:before { - content: "\f0da"; - font-family: ThemeIcons; -} - -.sormastheme .v-treetable-node-open:before { - content: "\f0d7"; - font-family: ThemeIcons; -} - -.sormastheme .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter { - width: 1px; -} - -.sormastheme .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter:after { - left: -5px; - right: -5px; -} - -.sormastheme .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before { - height: 32px; - padding: 0 14px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - height: auto; - padding: 0; - border-radius: 0; - background-color: #fafafa; - background-image: -webkit-linear-gradient(left, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to right,#fafafa 2%, #efefef 98%); -} - -.sormastheme .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:hover:after { - background-color: rgba(186, 186, 186, 0.1); -} - -.sormastheme .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:focus:after { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.sormastheme .v-splitpanel-horizontal > div > .v-splitpanel-second-container { - margin-left: 1px; -} - -.sormastheme .v-splitpanel-vertical > div > .v-splitpanel-vsplitter { - height: 1px; -} - -.sormastheme .v-splitpanel-vertical > div > .v-splitpanel-vsplitter:after { - top: -5px; - bottom: -5px; -} - -.sormastheme .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before { - height: 32px; - padding: 0 14px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - height: auto; - padding: 0; - border-radius: 0; -} - -.sormastheme .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:hover:after { - background-color: rgba(186, 186, 186, 0.1); -} - -.sormastheme .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:focus:after { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.sormastheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter { - width: 11px; -} - -.sormastheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter:after { - left: 0px; - right: 0px; -} - -.sormastheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before { - height: 32px; - padding: 0 14px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - height: auto; - padding: 0; - border-radius: 0; - background-color: #fafafa; - background-image: -webkit-linear-gradient(left, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to right,#fafafa 2%, #efefef 98%); -} - -.sormastheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:hover:after { - background-color: rgba(186, 186, 186, 0.1); -} - -.sormastheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:focus:after { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.sormastheme .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:after { - content: ""; - border: 1px solid #dadada; - border-top-color: #bababa; - border-left-color: #bababa; - position: absolute; - top: 50%; - left: 50%; - width: 0; - height: 32px; - margin-left: -1px; - margin-top: -16px; -} - -.sormastheme .v-splitpanel-horizontal.large > div > .v-splitpanel-second-container { - margin-left: 11px; -} - -.sormastheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter { - height: 11px; -} - -.sormastheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter:after { - top: 0px; - bottom: 0px; -} - -.sormastheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before { - height: 32px; - padding: 0 14px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, none; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - height: auto; - padding: 0; - border-radius: 0; -} - -.sormastheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:hover:after { - background-color: rgba(186, 186, 186, 0.1); -} - -.sormastheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:focus:after { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.sormastheme .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:after { - content: ""; - border: 1px solid #dadada; - border-top-color: #bababa; - border-left-color: #bababa; - position: absolute; - top: 50%; - left: 50%; - width: 32px; - height: 0; - margin-left: -16px; - margin-top: -1px; -} - -.sormastheme .v-progressbar-wrapper { - border-radius: 4px; - height: 8px; - background-color: #d4d4d4; - background-image: -webkit-linear-gradient(bottom, #d7d7d7 2%, #c7c7c7 98%); - background-image: linear-gradient(to top,#d7d7d7 2%, #c7c7c7 98%); - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - min-width: 64px; -} - -.sormastheme .v-progressbar-indicator { - border-radius: 4px; - height: inherit; - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - - - border: 1px solid #4b7eb8; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - max-width: 100%; - min-width: 8px; - -webkit-transition: width 160ms; - -moz-transition: width 160ms; - transition: width 160ms; -} - -.sormastheme .v-progressbar-point .v-progressbar-indicator { - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - border: none; - text-align: right; - overflow: hidden; -} - -.sormastheme .v-progressbar-point .v-progressbar-indicator:before { - content: ""; - display: inline-block; - border-radius: 4px; - height: inherit; - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - - - border: 1px solid #4b7eb8; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - max-width: 100%; - width: 8px; - vertical-align: top; -} - -.sormastheme .v-progressbar-indeterminate { - height: 24px !important; - width: 24px !important; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 2px solid rgba(96, 160, 234, 0.2); - border-top-color: #60a0ea; - border-right-color: #60a0ea; - border-radius: 100%; - -webkit-animation: v-rotate-360 500ms infinite linear; - -moz-animation: v-rotate-360 500ms infinite linear; - animation: v-rotate-360 500ms infinite linear; - pointer-events: none; -} - -.v-ie8 .sormastheme .v-progressbar-indeterminate, .v-ie9 .sormastheme .v-progressbar-indeterminate { - border: none; - border-radius: 4px; - background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%; - background-size: 80%; -} - -.v-ie8 .sormastheme .v-progressbar-indeterminate { - min-width: 30px; - min-height: 30px; -} - -.sormastheme .v-progressbar-indeterminate .v-progressbar-wrapper { - display: none; -} - -.sormastheme .v-slider { - position: relative; -} - -.sormastheme .v-slider:focus { - outline: none; -} - -.sormastheme .v-slider:focus .v-slider-handle:after { - opacity: 1; -} - -.v-ie8 .sormastheme .v-slider:focus .v-slider-handle:after { - visibility: visible; -} - -.sormastheme .v-slider.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-slider-base { - border-radius: 4px; - height: 8px; - background-color: #d4d4d4; - background-image: -webkit-linear-gradient(bottom, #d7d7d7 2%, #c7c7c7 98%); - background-image: linear-gradient(to top,#d7d7d7 2%, #c7c7c7 98%); - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - min-width: 64px; - height: 4px; - margin: 14px 9px; - white-space: nowrap; - overflow: hidden; - -} - -.sormastheme .v-slider-base:before { - content: ""; - position: absolute; - top: 14px; - bottom: 14px; - left: 9px; - width: 8px; - border-radius: 4px; - border-left: 1px solid #4b7eb8; -} - -.sormastheme .v-slider-base:after { - border-radius: 4px; - height: inherit; - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - - - border: 1px solid #4b7eb8; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - max-width: 100%; - content: ""; - display: inline-block; - margin-left: -100%; - width: 100%; - vertical-align: top; -} - -.v-ie8 .sormastheme .v-slider-base:after { - position: relative; - left: -9px; -} - -.sormastheme .v-has-width > .v-slider-base { - min-width: 0; -} - -.sormastheme .v-slider-handle { - margin-top: -14px; - width: 0.1px; - display: inline-block; - vertical-align: top; -} - -.sormastheme .v-slider-handle:before { - height: 32px; - padding: 0 14px; - color: #191919; - font-weight: 500; - - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); -} - -.sormastheme .v-slider-handle:before:after { - border: inherit; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; -} - -.sormastheme .v-slider-handle:before:hover:after { - background-color: rgba(186, 186, 186, 0.1); -} - -.sormastheme .v-slider-handle:before:focus:after { - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-slider-handle:before:active:after { - background-color: rgba(125, 125, 125, 0.2); -} - -.sormastheme .v-slider-handle:after { - border: 1px solid #c5c5c5; - border-color: #60a0ea; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - opacity: 0; - -webkit-transition: opacity 200ms; - -moz-transition: opacity 200ms; - transition: opacity 200ms; -} - -.v-ie8 .sormastheme .v-slider-handle:after { - visibility: hidden; -} - -.sormastheme .v-slider-handle:before, .sormastheme .v-slider-handle:after { - content: ""; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0; - width: 18px; - height: 18px; - border-radius: 9px; - position: absolute; - z-index: 1; - margin-top: 7px; - margin-left: -9px; -} - -.sormastheme .v-slider-feedback { - background-color: #323232; - background-color: rgba(50, 50, 50, 0.9); - -webkit-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); - box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2); - color: white; - padding: 4px 8px; - border-radius: 3px; - max-width: 35em; - overflow: hidden !important; - font-size: 13px; -} - -.sormastheme .v-slider-vertical { - padding: 9px 0; - height: 82px; -} - -.sormastheme .v-slider-vertical .v-slider-base { - background-color: #d4d4d4; - background-image: -webkit-linear-gradient(right, #d7d7d7 2%, #c7c7c7 98%); - background-image: linear-gradient(to left,#d7d7d7 2%, #c7c7c7 98%); - width: 4px; - height: 100% !important; - min-width: 0; - margin: 0 14px; -} - -.sormastheme .v-slider-vertical .v-slider-base:before { - top: auto; - bottom: 9px; - left: 14px; - right: 14px; - width: auto; - height: 8px; - border-left: none; - border-bottom: 1px solid #4b7eb8; -} - -.sormastheme .v-slider-vertical .v-slider-base:after { - height: 101%; - margin-left: 0; - background-color: #60a0ea; - background-image: -webkit-linear-gradient(left, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to right,#67a7eb 2%, #5491de 98%); -} - -.v-ie8 .sormastheme .v-slider-vertical .v-slider-base:after { - top: 9px; - left: 0; - height: 130%; -} - -.sormastheme .v-slider-vertical .v-slider-handle { - width: 0; - height: 0.1px; - width: 32px; - display: block; -} - -.sormastheme .v-slider-vertical .v-slider-handle:before, .sormastheme .v-slider-vertical .v-slider-handle:after { - width: 18px; - height: 18px; - margin-top: -9px; - margin-left: -7px; -} - -.sormastheme .v-slider-no-indicator .v-slider-base:before, .sormastheme .v-slider-no-indicator .v-slider-base:after { - display: none; -} - -.sormastheme .v-tabsheet:not(.v-has-width) { - width: auto !important; -} - -.sormastheme .v-tabsheet-spacertd { - display: none !important; -} - -.sormastheme .v-tabsheet-tabcontainer { - position: relative; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.sormastheme .v-tabsheet-tabcontainer:before { - content: ""; - position: absolute; - height: 0; - border-top: 1px solid #dfdfdf; - bottom: 0; - left: 0; - right: 0; -} - -.sormastheme .v-tabsheet-tabcontainer .v-tabsheet-tabs { - position: relative; -} - -.sormastheme .v-tabsheet-tabitemcell { - vertical-align: bottom; -} - -.sormastheme .v-tabsheet-tabitemcell .v-tabsheet-tabitem { - line-height: 0; - overflow: hidden; -} - -.sormastheme .v-tabsheet-tabitemcell .v-caption { - margin-left: 16px; - padding: 0 3px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - cursor: pointer; - text-align: center; - line-height: 32px; - font-size: 14px; - font-weight: 400; - color: #696969; - width: auto !important; - overflow: hidden; - text-overflow: ellipsis; - border-bottom: 2px solid transparent; - position: relative; - -webkit-transition: border-bottom 200ms, color 200ms; - -moz-transition: border-bottom 200ms, color 200ms; - transition: border-bottom 200ms, color 200ms; -} - -.sormastheme .v-tabsheet-tabitemcell .v-caption .v-captiontext { - display: inline; -} - -.sormastheme .v-tabsheet-tabitemcell .v-caption .v-icon + .v-captiontext { - margin-left: 8px; -} - -.sormastheme .v-tabsheet-tabitemcell .v-caption:hover { - color: #60a0ea; -} - -.sormastheme .v-tabsheet-tabitemcell .v-caption.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; - cursor: default; - color: inherit !important; -} - -.sormastheme .v-tabsheet-tabitemcell:first-child .v-caption, .sormastheme .v-tabsheet-tabitemcell[aria-hidden="true"] + td .v-caption { - margin-left: 0; -} - -.sormastheme .v-tabsheet-tabitemcell:focus { - outline: none; -} - -.sormastheme .v-tabsheet-tabitemcell:focus .v-caption { - color: #60a0ea; -} - -.sormastheme .v-tabsheet-tabitemcell .v-tabsheet-tabitem-selected .v-caption.v-caption { - border-bottom-color: #60a0ea; - color: #60a0ea; -} - -.sormastheme .v-tabsheet-tabitemcell .v-caption-closable { - padding-right: 20px; -} - -.sormastheme .v-tabsheet-tabitemcell.icons-on-top .v-caption-closable { - padding-right: 3px; -} - -.sormastheme .v-tabsheet-tabitemcell .v-tabsheet-caption-close { - position: absolute; - right: 0; - top: 50%; - margin: -8px 0 0; - font-size: 17px; - line-height: 17px; - width: 17px; - text-align: center; - border-radius: 2px; - color: #969696; -} - -.sormastheme .v-tabsheet-tabitemcell .v-tabsheet-caption-close:hover { - background: rgba(0, 0, 0, 0.03); - color: #60a0ea; -} - -.sormastheme .v-tabsheet-tabitemcell .v-tabsheet-caption-close:active { - background: #60a0ea; - color: #d9e5f2; -} - -.sormastheme .v-tabsheet-scroller { - position: absolute; - top: 0; - right: 0; - bottom: 0; - padding-left: 16px; - background-color: transparent; - background-image: -webkit-linear-gradient(right, #fafafa 70%, rgba(250, 250, 250, 0) 100%); - background-image: linear-gradient(to left,#fafafa 70%, rgba(250, 250, 250, 0) 100%); - pointer-events: none; -} - -.sormastheme .v-tabsheet-scroller:after { - content: ""; - height: 1px; - position: absolute; - bottom: 0; - left: 0; - right: 0; - display: block; - background-color: transparent; - background-image: -webkit-linear-gradient(right, #dfdfdf 70%, rgba(223, 223, 223, 0) 100%); - background-image: linear-gradient(to left,#dfdfdf 70%, rgba(223, 223, 223, 0) 100%); -} - -.v-ie8 .sormastheme .v-tabsheet-scroller, .v-ie9 .sormastheme .v-tabsheet-scroller { - background-color: #fafafa; -} - -.v-ie8 .sormastheme .v-tabsheet-scroller:after, .v-ie9 .sormastheme .v-tabsheet-scroller:after { - background-color: #dfdfdf; -} - -.sormastheme .v-tabsheet-scroller button { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - border: none; - background: transparent; - font: inherit; - color: inherit; - height: 100%; - margin: 0; - padding: 0 8px; - outline: none; - cursor: pointer; - pointer-events: auto; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-tabsheet-scroller button:hover { - opacity: 1; - filter: none ; - color: #60a0ea; -} - -.sormastheme .v-tabsheet-scroller button:active { - opacity: 0.7; - filter: alpha(opacity=70) ; - color: #60a0ea; -} - -.sormastheme .v-tabsheet-scroller button::-moz-focus-inner { - padding: 0; - border: 0; -} - -.sormastheme .v-tabsheet-scroller [class*="Next"] { - padding-left: 4px; -} - -.sormastheme .v-tabsheet-scroller [class*="Next"]:before { - font-family: ThemeIcons; - content: "\f054"; -} - -.sormastheme .v-tabsheet-scroller [class*="Prev"] { - padding-right: 4px; -} - -.sormastheme .v-tabsheet-scroller [class*="Prev"]:before { - font-family: ThemeIcons; - content: "\f053"; -} - -.sormastheme .v-tabsheet-scroller [class*="disabled"] { - cursor: default; - color: inherit !important; - opacity: 0.1 !important; - filter: alpha(opacity=10) !important; -} - -.sormastheme .v-tabsheet-tabsheetpanel > .v-scrollable > .v-widget { - -webkit-animation: valo-animate-in-fade 300ms backwards; - -moz-animation: valo-animate-in-fade 300ms backwards; - animation: valo-animate-in-fade 300ms backwards; -} - -.sormastheme .v-tabsheet-deco { - height: 16px !important; - width: 16px !important; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 2px solid rgba(96, 160, 234, 0.2); - border-top-color: #60a0ea; - border-right-color: #60a0ea; - border-radius: 100%; - -webkit-animation: v-rotate-360 500ms infinite linear; - -moz-animation: v-rotate-360 500ms infinite linear; - animation: v-rotate-360 500ms infinite linear; - pointer-events: none; - display: none; - position: absolute; - z-index: 1; - bottom: 50%; - margin-bottom: -24px; - left: 50%; - margin-left: -8px; -} - -.v-ie8 .sormastheme .v-tabsheet-deco, .v-ie9 .sormastheme .v-tabsheet-deco { - border: none; - border-radius: 4px; - background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%; - background-size: 80%; -} - -.v-ie8 .sormastheme .v-tabsheet-deco { - min-width: 30px; - min-height: 30px; -} - -.sormastheme .v-tabsheet-loading .v-tabsheet-deco { - display: block; -} - -.sormastheme .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer table, .sormastheme .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer tbody, .sormastheme .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer tr { - width: 100%; -} - -.sormastheme .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer tr { - display: table; - table-layout: fixed; -} - -.sormastheme .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer td { - display: table-cell; -} - -.sormastheme .v-tabsheet-equal-width-tabs > .v-tabsheet-tabcontainer .v-caption { - margin: 0; - display: block; -} - -.sormastheme .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption { - margin-left: 3px; - padding: 0 18px; - background-color: #fafafa; - border: 1px solid transparent; - line-height: 31px; - border-radius: 4px 4px 0 0; - font-weight: 500; - -webkit-transition: background-color 160ms; - -moz-transition: background-color 160ms; - transition: background-color 160ms; -} - -.sormastheme .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption:hover { - background-color: #f2f2f2; - border-bottom-color: #dfdfdf; -} - -.sormastheme .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption.v-disabled:hover { - background-color: #fafafa; -} - -.sormastheme .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption-closable { - padding-right: 35px; -} - -.sormastheme .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-tabsheet-caption-close { - top: 4px; - right: 4px; - margin-top: 0; -} - -.sormastheme .v-tabsheet-framed > .v-tabsheet-tabcontainer td:first-child .v-caption, .sormastheme .v-tabsheet-framed > .v-tabsheet-tabcontainer [aria-hidden="true"] + td .v-caption { - margin-left: 0; -} - -.sormastheme .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-tabsheet-tabitem .v-caption { - border-color: #dfdfdf; -} - -.sormastheme .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-tabsheet-tabitem-selected .v-caption { - background: white; - border-color: #dfdfdf; - border-bottom: none; - padding-bottom: 1px; -} - -.sormastheme .v-tabsheet-framed > .v-tabsheet-content { - border: 1px solid #dfdfdf; - border-top: none; -} - -.sormastheme .v-tabsheet-framed > .v-tabsheet-content > div { - background: white; -} - -.sormastheme .v-tabsheet-framed.padded-tabbar > .v-tabsheet-tabcontainer { - border: 1px solid #dfdfdf; - border-bottom: none; - background: #fafafa; - padding-top: 5px; -} - -.sormastheme .v-tabsheet-framed.icons-on-top > .v-tabsheet-tabcontainer .v-tabsheet-tabitem-selected .v-caption { - padding-bottom: 6px; -} - -.sormastheme .v-tabsheet-centered-tabs > .v-tabsheet-tabcontainer { - text-align: center; -} - -.sormastheme .v-tabsheet-right-aligned-tabs > .v-tabsheet-tabcontainer { - text-align: right; -} - -.sormastheme .v-tabsheet-padded-tabbar > .v-tabsheet-tabcontainer .v-tabsheet-tabs { - padding: 0 8px; -} - -.sormastheme .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-caption { - padding-top: 5px; - padding-bottom: 5px; - line-height: 1.2; -} - -.sormastheme .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-icon { - display: block; -} - -.sormastheme .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-icon + .v-captiontext.v-captiontext { - margin-left: 0; -} - -.sormastheme .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-caption-closable { - padding-right: 18px; -} - -.sormastheme .v-tabsheet-icons-on-top > .v-tabsheet-tabcontainer .v-tabsheet-caption-close { - top: 4px; - margin-top: 0; -} - -.sormastheme .v-tabsheet-compact-tabbar > .v-tabsheet-tabcontainer-compact-tabbar .v-caption { - line-height: 1.8; -} - -.sormastheme .v-tabsheet-only-selected-closable > .v-tabsheet-tabcontainer .v-tabsheet-caption-close { - visibility: hidden; -} - -.sormastheme .v-tabsheet-only-selected-closable > .v-tabsheet-tabcontainer .v-tabsheet-tabitem-selected .v-tabsheet-caption-close { - visibility: visible; -} - -.sormastheme .v-colorpicker-popup.v-window { - min-width: 220px !important; -} - -.sormastheme .v-colorpicker-popup .v-tabsheet-tabs { - padding: 0 8px; -} - -.sormastheme .v-colorpicker-popup [class$="sliders"] { - padding: 11px; -} - -.sormastheme .v-colorpicker-popup [class$="sliders"] .v-widget { - width: 100% !important; - vertical-align: middle; -} - -.sormastheme .v-colorpicker-popup [class$="sliders"] .v-has-caption { - white-space: nowrap; - padding-left: 45px; -} - -.sormastheme .v-colorpicker-popup [class$="sliders"] .v-caption { - display: inline-block; - margin-left: -45px; - width: 45px; -} - -.sormastheme .v-colorpicker-popup [class$="sliders"] .v-slot-hue-slider + .v-slot .v-has-caption { - padding-left: 75px; -} - -.sormastheme .v-colorpicker-popup [class$="sliders"] .v-slot-hue-slider + .v-slot .v-caption { - margin-left: -75px; - width: 75px; -} - -.sormastheme .v-colorpicker-popup .v-slider-red .v-slider-base:after { - background: red; - border: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-colorpicker-popup .v-slider-green .v-slider-base:after { - background: green; - border: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-colorpicker-popup .v-slider-blue .v-slider-base:after { - background: blue; - border: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-colorpicker-popup .v-margin-bottom { - padding-bottom: 0; -} - -.sormastheme .v-colorpicker-popup .resize-button { - width: 100% !important; - height: auto !important; - text-align: center; - outline: none; -} - -.sormastheme .v-colorpicker-popup .resize-button:before { - font-family: ThemeIcons; - content: "\f141"; -} - -.sormastheme .v-colorpicker-popup .resize-button-caption { - display: none; -} - -.sormastheme .v-colorpicker-popup .v-horizontallayout { - height: auto !important; - padding: 8px 0; - background-color: #fafafa; - border-top: 1px solid #ededed; -} - -.sormastheme .v-colorpicker-popup .v-horizontallayout .v-expand { - overflow: visible; -} - -.sormastheme .v-colorpicker-popup .v-horizontallayout .v-button { - width: 80% !important; -} - -.sormastheme .v-colorpicker-preview { - width: 100% !important; - height: auto !important; - padding: 8px; -} - -.sormastheme .v-colorpicker-preview-textfield { - height: auto !important; - text-align: center; - border: none; -} - -.sormastheme .v-colorpicker { - width: auto; -} - -.sormastheme .v-colorpicker-button-color { - position: absolute; - top: 5px; - right: 5px; - bottom: 5px; - left: 5px; - border-radius: 3px; - border: 1px solid rgba(0, 0, 0, 0.5); - max-width: 19px; -} - -.sormastheme .v-colorpicker-button-color + .v-button-caption:not(:empty) { - margin-left: 16px; -} - -.v-ie8 .sormastheme .v-colorpicker-button-color { - position: relative; - top: auto; - right: auto; - bottom: auto; - left: auto; - width: 15px; - height: 15px; - display: inline-block; - vertical-align: middle; - margin: 0 -8px; -} - -.v-ie8 .sormastheme .v-colorpicker-button-color + .v-button-caption { - margin-left: 16px; -} - -.sormastheme .v-panel { - background: white; - color: #474747; - border-radius: 4px; - border: 1px solid #d5d5d5; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - overflow: visible !important; -} - -.sormastheme .v-panel-caption { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0 11px; - line-height: 31px; - border-bottom: 1px solid #d5d5d5; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #f6f6f6 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #f6f6f6 98%); - color: #464646; - font-weight: 400; - font-size: 14px; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #eeeeee; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #eeeeee; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - border-radius: 3px 3px 0 0; -} - -.sormastheme .v-panel-content { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 100%; - height: 100%; -} - -.sormastheme .v-panel-content > .v-margin-top { - padding-top: 11px; -} - -.sormastheme .v-panel-content > .v-margin-right { - padding-right: 11px; -} - -.sormastheme .v-panel-content > .v-margin-bottom { - padding-bottom: 11px; -} - -.sormastheme .v-panel-content > .v-margin-left { - padding-left: 11px; -} - -.sormastheme .v-panel-borderless { - background: transparent; - color: inherit; - border: none; - border-radius: 0; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-panel-borderless > div > [class*="-caption"] { - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: inherit; - padding: 0; - margin: 0 11px; - border-bottom: none; -} - -.sormastheme .v-panel-well { - background: #f5f5f5; - color: #454545; - -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); - border-radius: 4px; - border: 1px solid #c5c5c5; -} - -.sormastheme .v-panel-well > div > [class*="-caption"] { - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-panel-scroll-divider > [class*="-captionwrap"] { - position: relative; - z-index: 2; -} - -.sormastheme .v-panel-scroll-divider > [class*="-captionwrap"]:after { - content: ""; - position: absolute; - bottom: -1px; - right: 0; - left: 0; - height: 0; - border-top: 1px solid #dfdfdf; - border-color: rgba(197, 197, 197, 0.5); -} - -.sormastheme .v-panel-scroll-divider > [class*="-content"]:before { - content: ""; - position: absolute; - z-index: 2; - top: 0; - height: 0; - border-top: 1px solid #fafafa; - left: 0; - right: 0; -} - -.sormastheme .v-panel-caption.v-horizontallayout { - height: auto !important; - line-height: 0; -} - -.sormastheme .v-panel-caption.v-horizontallayout .v-slot { - vertical-align: middle; -} - -.sormastheme .v-panel-caption.v-horizontallayout .v-label { - line-height: 32px; -} - -.sormastheme .v-accordion { - background: white; - color: #474747; - border-radius: 4px; - border: 1px solid #d5d5d5; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #f4f4f4 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #f4f4f4 98%); - overflow: hidden; -} - -.sormastheme .v-accordion-item { - position: relative; -} - -.sormastheme .v-accordion-item:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} - -.sormastheme .v-accordion-item:last-child { - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} - -.sormastheme .v-accordion-item:last-child [class*="item-content"] { - border-radius: inherit; -} - -.sormastheme .v-accordion-item[class*="item-open"]:last-child > div > .v-caption { - border-radius: 0; -} - -.sormastheme .v-accordion-item:not([class*="item-open"]):last-child > div > .v-caption { - border-bottom: none; - margin-bottom: 0; -} - -.sormastheme .v-accordion-item[class*="item-open"] + [class*="item"] { - border-top: 1px solid #d9d9d9; -} - -.sormastheme .v-accordion-item-caption { - border-radius: inherit; -} - -.sormastheme .v-accordion-item-caption > .v-caption { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0 11px; - line-height: 31px; - border-bottom: 1px solid #d5d5d5; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #f6f6f6 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #f6f6f6 98%); - color: #464646; - font-weight: 400; - font-size: 14px; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #eeeeee; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #eeeeee; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - display: block; - background: transparent; - border-bottom-color: #c9c9c9; - border-radius: inherit; - cursor: pointer; - position: relative; -} - -.sormastheme .v-accordion-item-caption > .v-caption:hover:before, .sormastheme .v-accordion-item-caption > .v-caption:active:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: inherit; -} - -.sormastheme .v-accordion-item-caption > .v-caption:hover:before { - background-color: rgba(186, 186, 186, 0.1); - border: none; -} - -.sormastheme .v-accordion-item-caption > .v-caption:active:before { - background-color: rgba(125, 125, 125, 0.2); -} - -.sormastheme .v-accordion-item-content { - -webkit-box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.05); - background-color: white; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.sormastheme .v-accordion-item-content > .v-margin-top { - padding-top: 11px; -} - -.sormastheme .v-accordion-item-content > .v-margin-right { - padding-right: 11px; -} - -.sormastheme .v-accordion-item-content > .v-margin-bottom { - padding-bottom: 11px; -} - -.sormastheme .v-accordion-item-content > .v-margin-left { - padding-left: 11px; -} - -.sormastheme .v-accordion-borderless { - border: none; - border-radius: 0; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-accordion-borderless > .v-accordion-item, .sormastheme .v-accordion-borderless > .v-accordion-item > div > .v-caption, .sormastheme .v-accordion-borderless > .v-accordion-item > .v-accordion-item-content { - border-radius: 0; -} - -.sormastheme .v-select-twincol { - white-space: normal; -} - -.sormastheme .v-select-twincol select { - border: 1px solid #c5c5c5; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - color: #464646; -} - -.sormastheme .v-select-twincol select:focus { - outline: none; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-select-twincol .v-textfield, .sormastheme .v-select-twincol .v-nativebutton { - width: auto !important; - margin-top: 8px; -} - -.sormastheme .v-select-twincol .v-nativebutton { - margin-left: 8px; -} - -.sormastheme .v-select-twincol-caption-left, .sormastheme .v-select-twincol-caption-right { - font-size: 14px; - font-weight: 400; - padding-bottom: 0.3em; - padding-left: 1px; -} - -.sormastheme .v-select-twincol-buttons { - white-space: nowrap; - display: inline-block; - vertical-align: top; - position: relative; - min-width: 3.5em; -} - -.sormastheme .v-select-twincol-buttons .v-button { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - display: inline-block; - vertical-align: top; - text-align: left; - white-space: normal; - position: absolute; - left: 8px; - right: 8px; - top: 31px; - padding: 0; - text-align: center; -} - -.sormastheme .v-select-twincol-buttons .v-button:first-child { - top: 0; -} - -.sormastheme .v-select-twincol-buttons .v-button-caption { - display: none; -} - -.sormastheme .v-select-twincol-buttons .v-button:focus { - z-index: 1; -} - -.sormastheme .v-select-twincol-buttons .v-button:first-child { - border-radius: 4px 4px 0 0; -} - -.sormastheme .v-select-twincol-buttons .v-button:last-child { - border-radius: 0 0 4px 4px; -} - -.sormastheme .v-select-twincol-buttons .v-button-wrap:before { - font-family: ThemeIcons; - content: "\f053"; -} - -.sormastheme .v-select-twincol-buttons .v-button:first-child .v-button-wrap:before { - font-family: ThemeIcons; - content: "\f054"; -} - -.sormastheme .v-select-twincol-error .v-select-twincol-options, .sormastheme .v-select-twincol-error .v-select-twincol-selections { - border-color: #eb2977 !important; - background: #fffbfc; - color: #6c213f; -} - -.sormastheme .v-select select { - border: 1px solid #c5c5c5; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - color: #464646; -} - -.sormastheme .v-select select:focus { - outline: none; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-select-select { - display: block; -} - -.sormastheme .v-select-select + .v-textfield { - width: auto !important; - margin-top: 8px; -} - -.sormastheme .v-select-select + .v-textfield + .v-nativebutton { - margin-top: 8px; - margin-left: 8px; -} - -.sormastheme .v-select-error .v-select-select { - border-color: #eb2977 !important; - background: #fffbfc; - color: #6c213f; -} - -.sormastheme .v-calendar-header-day { - font-weight: 500; - text-align: center; - padding: 6px 0; -} - -.sormastheme .v-calendar-header-week .v-calendar-back, .sormastheme .v-calendar-header-week .v-calendar-next { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - background: transparent; - border: none; - padding: 0; - margin: 0; - cursor: pointer; - outline: none; - color: inherit; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-calendar-header-week .v-calendar-back:focus, .sormastheme .v-calendar-header-week .v-calendar-next:focus { - outline: none; -} - -.sormastheme .v-calendar-header-week .v-calendar-back:hover, .sormastheme .v-calendar-header-week .v-calendar-next:hover { - opacity: 1; - filter: none ; -} - -.sormastheme .v-calendar-header-week .v-calendar-back:active, .sormastheme .v-calendar-header-week .v-calendar-next:active { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-calendar-header-week .v-calendar-back:before { - font-family: ThemeIcons; - content: "\f053"; -} - -.sormastheme .v-calendar-header-week .v-calendar-next:before { - font-family: ThemeIcons; - content: "\f054"; -} - -.sormastheme .v-calendar-month { - outline: none; - overflow: hidden; -} - -.sormastheme .v-calendar-month td { - vertical-align: top; -} - -.sormastheme .v-calendar-week-number { - cursor: pointer; - width: 20px; - text-align: center; - font-size: 0.8em; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-calendar-week-number:hover { - opacity: 1; - filter: none ; -} - -.sormastheme .v-calendar-month-day { - outline: none; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - line-height: 1.2; -} - -.sormastheme .v-calendar-bottom-spacer, .sormastheme .v-calendar-spacer, .sormastheme .v-calendar-bottom-spacer-empty { - height: 18px; - margin-bottom: 3px; -} - -.sormastheme .v-calendar-bottom-spacer { - font-size: 0.8em; - padding: 0 4px; - cursor: pointer; -} - -.sormastheme .v-calendar-bottom-spacer:hover { - color: #60a0ea; -} - -.sormastheme .v-calendar-day-number { - line-height: 21px; - font-size: 15px; - text-align: right; - margin: 0 4px; - white-space: nowrap; - border-top: 1px solid #f2f2f2; - cursor: pointer; -} - -.sormastheme .v-calendar-day-number:hover { - color: #60a0ea; -} - -.sormastheme .v-calendar-month-day-today { - background: #f2f5f9; -} - -.sormastheme .v-calendar-month-day-today .v-calendar-day-number { - font-weight: 500; - color: #60a0ea; - border-top: 2px solid #60a0ea; - line-height: 20px; - margin: 0; - padding: 0 4px; -} - -.sormastheme .v-calendar-month-day-selected { - background-color: #eaf1f8; -} - -.sormastheme .v-calendar-month-day-dragemphasis { - background-color: #a8a8a8; -} - -.sormastheme .v-calendar-month-day-scrollable { - overflow-y: scroll; -} - -.sormastheme .v-calendar-weekly-longevents { - margin-left: 50px; - border-bottom: 3px solid #e0e0e0; -} - -.sormastheme .v-calendar-weekly-longevents .v-calendar-event-all-day { - height: 20px; - line-height: 1.6; - margin-bottom: 3px; -} - -.sormastheme .v-calendar-header-week td { - vertical-align: middle !important; -} - -.sormastheme .v-calendar-header-week .v-calendar-header-day { - cursor: pointer; -} - -.sormastheme .v-calendar-times { - width: 50px; - font-size: 0.77em; - line-height: 1; - white-space: nowrap; -} - -.sormastheme .v-calendar-time { - text-align: right; - padding-right: 8px; - margin-top: -6px; - padding-bottom: 6px; -} - -.sormastheme .v-calendar-day-times, .sormastheme .v-calendar-day-times-today { - outline: none; - border-right: 1px solid transparent; -} - -.sormastheme .v-calendar-day-times:focus, .sormastheme .v-calendar-day-times-today:focus { - outline: none; -} - -.sormastheme .v-calendar .v-datecellslot, .sormastheme .v-calendar .v-datecellslot-even { - border-top: 1px solid #dfdfdf; -} - -.sormastheme .v-calendar .v-datecellslot:first-child, .sormastheme .v-calendar .v-datecellslot-even:first-child { - border-top-color: transparent; -} - -.sormastheme .v-calendar .v-datecellslot { - border-top-style: dotted; -} - -.sormastheme .v-calendar .v-datecellslot, .sormastheme .v-calendar .v-datecellslot-even { - margin-right: 4px; -} - -.sormastheme .v-calendar-current-time { - background: #60a0ea; - line-height: 1px; - pointer-events: none; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-calendar-current-time:before { - content: "\2022"; - color: #60a0ea; - font-size: 22px; - margin-left: -0.07em; -} - -.sormastheme .v-calendar .v-daterange { - position: relative; -} - -.sormastheme .v-calendar .v-daterange:before { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: -1px; - left: 0; - background: #60a0ea; - opacity: 0.5; - filter: alpha(opacity=50) ; - border-radius: 4px 4px 0 0; -} - -.sormastheme .v-calendar .v-daterange + .v-daterange { - border-color: transparent; -} - -.sormastheme .v-calendar .v-daterange + .v-daterange:before { - border-radius: 0; -} - -.sormastheme .v-calendar-event { - font-size: 0.85em; - overflow: hidden; - cursor: pointer; - outline: none; - border-radius: 4px; -} - -.sormastheme .v-calendar-event:focus { - outline: none; -} - -.sormastheme .v-calendar-event-month { - padding: 0 4px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - margin-bottom: 3px; - white-space: nowrap; - text-overflow: ellipsis; - height: 18px; - line-height: 18px; -} - -.sormastheme .v-calendar-event-month .v-calendar-event-time { - float: right; - font-size: 0.9em; - line-height: 18px; - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-calendar-event-month:before { - content: "\25cf"; - margin-right: 0.2em; -} - -.sormastheme .v-calendar-event-all-day { - padding: 0 4px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - height: 18px; - line-height: 18px; - border-radius: 0; - margin-left: -1px; - white-space: nowrap; -} - -.sormastheme .v-calendar-event-all-day:before { - content: ""; -} - -.sormastheme .v-calendar-event-start { - overflow: visible; - margin-left: 0; -} - -.sormastheme .v-calendar-event-start.v-calendar-event-continued-to, .sormastheme .v-calendar-event-start.v-calendar-event-end { - overflow: hidden; - text-overflow: ellipsis; -} - -.sormastheme .v-calendar-event-start { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; - margin-left: 4px; -} - -.sormastheme .v-calendar-event-end { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - margin-right: 4px; -} - -.sormastheme .v-calendar-event-caption { - font-weight: 600; - line-height: 1.2; - padding: 4px 0; - position: absolute; - overflow: hidden; - right: 8px; - left: 4px; - bottom: 0; - top: 0; -} - -.sormastheme .v-calendar-event-caption span { - font-weight: 400; - white-space: nowrap; -} - -.sormastheme .v-calendar-week-wrapper .v-calendar-event { - overflow: visible; -} - -.sormastheme .v-calendar-week-wrapper .v-calendar-event-content { - margin-top: -1px; - border-radius: 5px; - border: 1px solid #fafafa; - padding-top: 3px; - margin-right: 4px; -} - -.sormastheme .v-calendar-event-month:before { - color: #00ace0; -} - -.sormastheme .v-calendar-event-all-day { - background-color: #c8eaf4; - background-color: rgba(200, 234, 244, 0.8); - color: #00ace0; -} - -.sormastheme .v-calendar-week-wrapper .v-calendar-event { - color: #00ace0; -} - -.sormastheme .v-calendar-week-wrapper .v-calendar-event .v-calendar-event-content { - background-color: #c8eaf4; - background-color: rgba(200, 234, 244, 0.8); -} - -.sormastheme .v-calendar-event-month[class*="color2"]:before { - color: #2d9f19; -} - -.sormastheme .v-calendar-event-all-day[class*="color2"] { - background-color: #d1e7cd; - background-color: rgba(209, 231, 205, 0.8); - color: #2d9f19; -} - -.sormastheme .v-calendar-week-wrapper .v-calendar-event[class*="color2"] { - color: #2d9f19; -} - -.sormastheme .v-calendar-week-wrapper .v-calendar-event[class*="color2"] .v-calendar-event-content { - background-color: #d1e7cd; - background-color: rgba(209, 231, 205, 0.8); -} - -.sormastheme .v-calendar-event-month[class*="color3"]:before { - color: #d18100; -} - -.sormastheme .v-calendar-event-all-day[class*="color3"] { - background-color: #f1e1c8; - background-color: rgba(241, 225, 200, 0.8); - color: #d18100; -} - -.sormastheme .v-calendar-week-wrapper .v-calendar-event[class*="color3"] { - color: #d18100; -} - -.sormastheme .v-calendar-week-wrapper .v-calendar-event[class*="color3"] .v-calendar-event-content { - background-color: #f1e1c8; - background-color: rgba(241, 225, 200, 0.8); -} - -.sormastheme .v-calendar-event-month[class*="color4"]:before { - color: #ce3812; -} - -.sormastheme .v-calendar-event-all-day[class*="color4"] { - background-color: #f1d3cb; - background-color: rgba(241, 211, 203, 0.8); - color: #ce3812; -} - -.sormastheme .v-calendar-week-wrapper .v-calendar-event[class*="color4"] { - color: #ce3812; -} - -.sormastheme .v-calendar-week-wrapper .v-calendar-event[class*="color4"] .v-calendar-event-content { - background-color: #f1d3cb; - background-color: rgba(241, 211, 203, 0.8); -} - -.sormastheme .v-calendar-event-month[class*="color5"]:before { - color: #2d55cd; -} - -.sormastheme .v-calendar-event-all-day[class*="color5"] { - background-color: #d1d9f1; - background-color: rgba(209, 217, 241, 0.8); - color: #2d55cd; -} - -.sormastheme .v-calendar-week-wrapper .v-calendar-event[class*="color5"] { - color: #2d55cd; -} - -.sormastheme .v-calendar-week-wrapper .v-calendar-event[class*="color5"] .v-calendar-event-content { - background-color: #d1d9f1; - background-color: rgba(209, 217, 241, 0.8); -} - -.sormastheme .v-calendar.v-disabled * { - cursor: default; -} - -.sormastheme .v-label { - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} - -.sormastheme .v-label.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-label-undef-w { - white-space: nowrap; -} - -.sormastheme h1, .sormastheme .v-label-h1, .sormastheme h2, .sormastheme .v-label-h2, .sormastheme h3, .sormastheme .v-label-h3 { - line-height: 1.1; - font-weight: 300; - color: #141414; -} - -.sormastheme h1, .sormastheme .v-label-h1 { - font-size: 2.4em; - margin-top: 1.4em; - margin-bottom: 1em; - - letter-spacing: -0.03em; -} - -.sormastheme h2, .sormastheme .v-label-h2 { - font-size: 1.6em; - - margin-top: 1.6em; - margin-bottom: 0.77em; - letter-spacing: -0.02em; -} - -.sormastheme h3, .sormastheme .v-label-h3 { - font-size: 1.2em; - - margin-top: 1.8em; - margin-bottom: 0.77em; - letter-spacing: 0; -} - -.sormastheme h4, .sormastheme .v-label-h4 { - line-height: 1.1; - font-weight: 600; - font-size: 13px; - color: #414141; - text-transform: uppercase; - letter-spacing: 0; - margin-top: 2.4em; - margin-bottom: 0.8em; -} - -.sormastheme .v-csslayout > h1:first-child, .sormastheme .v-csslayout > h2:first-child, .sormastheme .v-csslayout > h3:first-child, .sormastheme .v-csslayout > h4 > .v-label-h1:first-child, .sormastheme .v-csslayout > .v-label-h2:first-child, .sormastheme .v-csslayout > .v-label-h3:first-child, .sormastheme .v-csslayout > .v-label-h4:first-child { - margin-top: 15px; -} - -.sormastheme .v-verticallayout > .v-slot:first-child h1, .sormastheme .v-verticallayout > .v-slot:first-child .v-label-h1, .sormastheme .v-verticallayout > .v-slot:first-child h2, .sormastheme .v-verticallayout > .v-slot:first-child .v-label-h2, .sormastheme .v-verticallayout > .v-slot:first-child h3, .sormastheme .v-verticallayout > .v-slot:first-child .v-label-h3, .sormastheme .v-verticallayout > .v-slot:first-child h4, .sormastheme .v-verticallayout > .v-slot:first-child .v-label-h4, .sormastheme .v-verticallayout > div > .v-slot:first-child h1, .sormastheme .v-verticallayout > div > .v-slot:first-child .v-label-h1, .sormastheme .v-verticallayout > div > .v-slot:first-child h2, .sormastheme .v-verticallayout > div > .v-slot:first-child .v-label-h2, .sormastheme .v-verticallayout > div > .v-slot:first-child h3, .sormastheme .v-verticallayout > div > .v-slot:first-child .v-label-h3, .sormastheme .v-verticallayout > div > .v-slot:first-child h4, .sormastheme .v-verticallayout > div > .v-slot:first-child .v-label-h4 { - margin-top: 15px; -} - -.sormastheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h1, .sormastheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h1, .sormastheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h2, .sormastheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h2, .sormastheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h3, .sormastheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h3, .sormastheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell h4, .sormastheme .v-verticallayout > .v-slot:first-child .v-formlayout-contentcell .v-label-h4, .sormastheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h1, .sormastheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h1, .sormastheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h2, .sormastheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h2, .sormastheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h3, .sormastheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h3, .sormastheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell h4, .sormastheme .v-verticallayout > div > .v-slot:first-child .v-formlayout-contentcell .v-label-h4 { - margin-top: -0.5em; -} - -.sormastheme h1.no-margin, .sormastheme .v-label-h1.no-margin, .sormastheme h2.no-margin, .sormastheme .v-label-h2.no-margin, .sormastheme h3.no-margin, .sormastheme .v-label-h3.no-margin, .sormastheme h4.no-margin, .sormastheme .v-label-h4.no-margin { - margin: 0 !important; -} - -.sormastheme .v-label-colored { - color: #60a0ea; -} - -.sormastheme .v-label-large { - font-size: 18px; -} - -.sormastheme .v-label-small { - font-size: 13px; -} - -.sormastheme .v-label-tiny { - font-size: 12px; -} - -.sormastheme .v-label-huge { - font-size: 24px; -} - -.sormastheme .v-label-bold { - font-weight: 600; -} - -.sormastheme .v-label-light { - font-weight: 300; -} - -.sormastheme .v-label-align-right { - text-align: right; -} - -.sormastheme .v-label-align-center { - text-align: center; -} - -.sormastheme .v-label-spinner { - height: 24px !important; - width: 24px !important; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 2px solid rgba(96, 160, 234, 0.2); - border-top-color: #60a0ea; - border-right-color: #60a0ea; - border-radius: 100%; - -webkit-animation: v-rotate-360 500ms infinite linear; - -moz-animation: v-rotate-360 500ms infinite linear; - animation: v-rotate-360 500ms infinite linear; - pointer-events: none; -} - -.v-ie8 .sormastheme .v-label-spinner, .v-ie9 .sormastheme .v-label-spinner { - border: none; - border-radius: 4px; - background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%; - background-size: 80%; -} - -.v-ie8 .sormastheme .v-label-spinner { - min-width: 30px; - min-height: 30px; -} - -.sormastheme .v-label-success, .sormastheme .v-label-failure { - background: white; - color: #474747; - border: 2px solid #36b955; - border-radius: 4px; - padding: 6px 16px 6px 32px; - font-weight: 500; - font-size: 14px; -} - -.sormastheme .v-label-success:before, .sormastheme .v-label-failure:before { - font-family: ThemeIcons; - content: "\f00c"; - margin-right: 0.5em; - margin-left: -16px; - color: #36b955; -} - -.sormastheme .v-label-failure { - border-color: #eb2977; -} - -.sormastheme .v-label-failure:before { - content: "\f05e"; - color: #eb2977; -} - -.sormastheme [draggable=true] { - -khtml-user-drag: element; - -webkit-user-drag: element; -} - -.sormastheme .v-ddwrapper { - position: relative; -} - -.sormastheme .v-ddwrapper-over:before, .sormastheme .v-ddwrapper-over:after { - content: ""; - position: absolute; - z-index: 10; - top: -1px; - right: -1px; - bottom: -1px; - left: -1px; - border: 0 solid #60a0ea; -} - -.sormastheme .v-ddwrapper-over-top:before { - border-top-width: 2px; -} - -.sormastheme .v-ddwrapper-over-right:before { - border-right-width: 2px; -} - -.sormastheme .v-ddwrapper-over-bottom:before { - border-bottom-width: 2px; -} - -.sormastheme .v-ddwrapper-over-left:before { - border-left-width: 2px; -} - -.sormastheme .no-vertical-drag-hints .v-ddwrapper-over-top:before, .sormastheme .no-vertical-drag-hints.v-ddwrapper-over-top:before { - border-top-width: 0; -} - -.sormastheme .no-vertical-drag-hints .v-ddwrapper-over-top:after, .sormastheme .no-vertical-drag-hints.v-ddwrapper-over-top:after { - border-width: 2px; - border-radius: 4px; - opacity: 0.3; - filter: alpha(opacity=30.0) ; - background: #b0d0f5; -} - -.sormastheme .no-vertical-drag-hints .v-ddwrapper-over-bottom:before, .sormastheme .no-vertical-drag-hints.v-ddwrapper-over-bottom:before { - border-bottom-width: 0; -} - -.sormastheme .no-vertical-drag-hints .v-ddwrapper-over-bottom:after, .sormastheme .no-vertical-drag-hints.v-ddwrapper-over-bottom:after { - border-width: 2px; - border-radius: 4px; - opacity: 0.3; - filter: alpha(opacity=30.0) ; - background: #b0d0f5; -} - -.sormastheme .no-horizontal-drag-hints.v-ddwrapper-over-left:before, .sormastheme .no-horizontal-drag-hints .v-ddwrapper-over-left:before { - border-left-width: 0; -} - -.sormastheme .no-horizontal-drag-hints.v-ddwrapper-over-left:after, .sormastheme .no-horizontal-drag-hints .v-ddwrapper-over-left:after { - border-width: 2px; - border-radius: 4px; - opacity: 0.3; - filter: alpha(opacity=30.0) ; - background: #b0d0f5; -} - -.sormastheme .no-horizontal-drag-hints.v-ddwrapper-over-right:before, .sormastheme .no-horizontal-drag-hints .v-ddwrapper-over-right:before { - border-right-width: 0; -} - -.sormastheme .no-horizontal-drag-hints.v-ddwrapper-over-right:after, .sormastheme .no-horizontal-drag-hints .v-ddwrapper-over-right:after { - border-width: 2px; - border-radius: 4px; - opacity: 0.3; - filter: alpha(opacity=30.0) ; - background: #b0d0f5; -} - -.sormastheme .v-ddwrapper-over-middle:after, .sormastheme .v-ddwrapper-over-center:after { - border-width: 2px; - border-radius: 4px; - opacity: 0.3; - filter: alpha(opacity=30.0) ; - background: #b0d0f5; -} - -.sormastheme .no-box-drag-hints.v-ddwrapper:after, .sormastheme .no-box-drag-hints .v-ddwrapper:after { - display: none !important; - content: none; -} - -.sormastheme .v-nativebutton { - -webkit-touch-callout: none; -} - -.sormastheme .v-select select { - border: 1px solid #c5c5c5; - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - color: #464646; -} - -.sormastheme .v-select select:focus { - outline: none; - -webkit-box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); - box-shadow: 0 0 0 2px rgba(96, 160, 234, 0.5); -} - -.sormastheme .v-select-select { - display: block; -} - -.sormastheme .v-select-select + .v-textfield { - width: auto !important; - margin-top: 8px; -} - -.sormastheme .v-select-select + .v-textfield + .v-nativebutton { - margin-top: 8px; - margin-left: 8px; -} - -.sormastheme .v-select-error .v-select-select { - border-color: #eb2977 !important; - background: #fffbfc; - color: #6c213f; -} - -.sormastheme .v-popupview { - cursor: pointer; - color: #60a0ea; - text-decoration: underline; - font-weight: inherit; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.sormastheme .v-popupview:hover { - color: #8dbbf0; -} - -.sormastheme .v-popupview.v-disabled { - opacity: 0.5; - filter: alpha(opacity=50) ; -} - -.sormastheme .v-popupview-popup { - padding: 4px 4px; - border-radius: 4px; - background-color: white; - color: #474747; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.09098); - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; -} - -.sormastheme .v-popupview-popup[class*="animate-in"] { - -webkit-animation: v-popupview-animate-in 120ms; - -moz-animation: v-popupview-animate-in 120ms; - animation: v-popupview-animate-in 120ms; -} - -.sormastheme .v-popupview-popup[class*="animate-out"] { - -webkit-animation: valo-animate-out-fade 120ms; - -moz-animation: valo-animate-out-fade 120ms; - animation: valo-animate-out-fade 120ms; -} - -.sormastheme .v-popupview-popup .popupContent > .v-margin-top { - padding-top: 11px; -} - -.sormastheme .v-popupview-popup .popupContent > .v-margin-right { - padding-right: 11px; -} - -.sormastheme .v-popupview-popup .popupContent > .v-margin-bottom { - padding-bottom: 11px; -} - -.sormastheme .v-popupview-popup .popupContent > .v-margin-left { - padding-left: 11px; -} - -.sormastheme .v-popupview-loading { - margin: 18px 18px; - height: 24px !important; - width: 24px !important; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 2px solid rgba(96, 160, 234, 0.2); - border-top-color: #60a0ea; - border-right-color: #60a0ea; - border-radius: 100%; - -webkit-animation: v-rotate-360 500ms infinite linear; - -moz-animation: v-rotate-360 500ms infinite linear; - animation: v-rotate-360 500ms infinite linear; - pointer-events: none; -} - -.v-ie8 .sormastheme .v-popupview-loading, .v-ie9 .sormastheme .v-popupview-loading { - border: none; - border-radius: 4px; - background: #fff url(../valo/shared/img/spinner.gif) no-repeat 50% 50%; - background-size: 80%; -} - -.v-ie8 .sormastheme .v-popupview-loading { - min-width: 30px; - min-height: 30px; -} - -.sormastheme .v-richtextarea { - -webkit-appearance: none; - -moz-appearance: none; - -ms-appearance: none; - -o-appearance: none; - appearance: none; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - margin: 0; - font: inherit; - - font-weight: 400; - line-height: normal; - height: 32px; - border-radius: 4px; - padding: 0; - border: 1px solid #c5c5c5; - background: white; - color: #474747; - -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-transition: box-shadow 180ms, border 180ms; - -moz-transition: box-shadow 180ms, border 180ms; - transition: box-shadow 180ms, border 180ms; - height: auto; - overflow: hidden; -} - -.v-ie8 .sormastheme .v-richtextarea, .v-ie9 .sormastheme .v-richtextarea { - line-height: 32px; - padding-top: 0; - padding-bottom: 0; -} - -.sormastheme .v-richtextarea[class*="prompt"] { - color: #a3a3a3; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar { - background-color: #fafafa; - background-image: -webkit-linear-gradient(top, #fafafa 2%, #efefef 98%); - background-image: linear-gradient(to bottom,#fafafa 2%, #efefef 98%); - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #e7e7e7; - border-bottom: 1px solid #c5c5c5; - color: #464646; -} - -.sormastheme .v-richtextarea .gwt-ToggleButton, .sormastheme .v-richtextarea .gwt-PushButton { - display: inline-block; - line-height: 32px; - width: 32px; - text-align: center; - outline: none; -} - -.sormastheme .v-richtextarea .gwt-ToggleButton:hover, .sormastheme .v-richtextarea .gwt-PushButton:hover { - color: black; -} - -.sormastheme .v-richtextarea .gwt-ToggleButton-down, .sormastheme .v-richtextarea .gwt-ToggleButton-down-hovering { - background-color: #e0e0e0; - background-image: -webkit-linear-gradient(bottom, #e0e0e0 2%, #dcdcdc 98%); - background-image: linear-gradient(to top,#e0e0e0 2%, #dcdcdc 98%); -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top img { - display: none; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div:before { - font-family: ThemeIcons; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Bold"]:before { - content: "\f032"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Italic"]:before { - content: "\f033"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Underline"]:before { - content: "\f0cd"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Subscript"]:before { - content: "\f12c"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Superscript"]:before { - content: "\f12b"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Left Justify"]:before { - content: "\f036"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Center"]:before { - content: "\f037"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Right Justify"]:before { - content: "\f038"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Toggle Strikethrough"]:before { - content: "\f0cc"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Indent Right"]:before { - content: "\f03c"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Indent Left"]:before { - content: "\f03b"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Horizontal Rule"]:before { - content: "\2014"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Ordered List"]:before { - content: "\f0cb"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Unordered List"]:before { - content: "\f0ca"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Insert Image"]:before { - content: "\f03e"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Create Link"]:before { - content: "\f0c1"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Remove Link"]:before { - content: "\f127"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-top div[title="Remove Formatting"]:before { - content: "\f12d"; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-bottom { - font-size: 12px; - padding: 0 8px 8px 0; -} - -.sormastheme .v-richtextarea .gwt-RichTextToolbar-bottom select { - margin: 8px 0 0 8px; -} - -.sormastheme .v-richtextarea .gwt-RichTextArea { - background: #fff; - border: none; - display: block; -} - -.sormastheme .v-richtextarea-readonly { - padding: 4px 6px; - background: transparent; -} - -.sormastheme .v-upload .v-button { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - display: inline-block; - vertical-align: top; - text-align: left; - white-space: normal; -} - -.sormastheme .v-upload-immediate .v-button { - width: 100%; -} - -.sormastheme .v-upload-immediate input[type="file"] { - opacity: 0; - filter: alpha(opacity=0) ; - z-index: -1; - position: absolute; - right: 0; - height: 32px; - text-align: right; - border: none; - background: transparent; -} - -.sormastheme .v-Notification.v-position-top { - top: 18px; -} - -.sormastheme .v-Notification.v-position-right { - right: 18px; -} - -.sormastheme .v-Notification.v-position-bottom { - bottom: 18px; -} - -.sormastheme .v-Notification.v-position-left { - left: 18px; -} - -.sormastheme .v-Notification.v-position-assistive { - top: -9999px; - left: -9999px; -} - -.sormastheme .v-Notification-animate-in { - -webkit-animation: valo-animate-in-fade 180ms 10ms backwards; - -moz-animation: valo-animate-in-fade 180ms 10ms backwards; - animation: valo-animate-in-fade 180ms 10ms backwards; -} - -.sormastheme .v-Notification-animate-in.v-position-top { - -webkit-animation: valo-animate-in-slide-down 400ms 10ms backwards; - -moz-animation: valo-animate-in-slide-down 400ms 10ms backwards; - animation: valo-animate-in-slide-down 400ms 10ms backwards; -} - -.sormastheme .v-Notification-animate-in.v-position-bottom { - -webkit-animation: valo-animate-in-slide-up 400ms 10ms backwards; - -moz-animation: valo-animate-in-slide-up 400ms 10ms backwards; - animation: valo-animate-in-slide-up 400ms 10ms backwards; -} - -.sormastheme .v-Notification-animate-out { - -webkit-animation: valo-animate-out-fade 150ms; - -moz-animation: valo-animate-out-fade 150ms; - animation: valo-animate-out-fade 150ms; -} - -.sormastheme .v-Notification-animate-out.v-position-top, .sormastheme .v-Notification-animate-out.v-position-bottom { - -webkit-animation: valo-animate-out-slide-down-fade 200ms; - -moz-animation: valo-animate-out-slide-down-fade 200ms; - animation: valo-animate-out-slide-down-fade 200ms; -} - -.sormastheme .v-Notification { - border-radius: 4px; - text-align: center; - position: fixed !important; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - background: white; - -webkit-box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.15); - box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.15); - padding: 16px 19px; -} - -.sormastheme .v-Notification .v-Notification-caption { - color: #60a0ea; - font-size: 18px; - line-height: 1; -} - -.sormastheme .v-Notification .v-Notification-description { - line-height: 1.4; -} - -.sormastheme .v-Notification-caption { - margin: 0; - display: inline-block; - text-align: left; - font-weight: inherit; - line-height: inherit; - white-space: nowrap; - letter-spacing: 0; -} - -.sormastheme .v-Notification-description, .sormastheme .v-Notification-details { - margin: 0; - display: inline-block; - vertical-align: middle; - max-width: 30em; - text-align: left; - max-height: 20em; - overflow: auto; -} - -.sormastheme .v-Notification-caption ~ .v-Notification-description, .sormastheme .v-Notification-caption ~ .v-Notification-details { - margin-left: 23px; -} - -.sormastheme .v-icon + .v-Notification-caption { - margin-left: 15px; -} - -.sormastheme .v-Notification-system { - left: 0 !important; - right: 0; - max-width: 100%; - margin: 0 !important; - border-radius: 0; - -webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); - box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); - padding: 11px 13px; - background-color: #444; - background-color: rgba(68, 68, 68, 0.9); - font-weight: 500; - line-height: 21px; -} - -.sormastheme .v-Notification-system .v-Notification-description, .sormastheme .v-Notification-system .v-Notification-details { - max-width: 50em; -} - -.sormastheme .v-Notification-system.v-position-top { - top: 0; -} - -.sormastheme .v-Notification-system.v-position-top[class*="animate-in"] { - -webkit-animation: valo-animate-in-slide-down 300ms 10ms backwards; - -moz-animation: valo-animate-in-slide-down 300ms 10ms backwards; - animation: valo-animate-in-slide-down 300ms 10ms backwards; -} - -.sormastheme .v-Notification-system.v-position-top[class*="animate-out"] { - -webkit-animation: valo-animate-out-slide-up 200ms; - -moz-animation: valo-animate-out-slide-up 200ms; - animation: valo-animate-out-slide-up 200ms; -} - -.sormastheme .v-Notification-system.v-position-bottom { - bottom: 0; -} - -.sormastheme .v-Notification-system.v-position-bottom[class*="animate-in"] { - -webkit-animation: valo-animate-in-slide-up 300ms 10ms backwards; - -moz-animation: valo-animate-in-slide-up 300ms 10ms backwards; - animation: valo-animate-in-slide-up 300ms 10ms backwards; -} - -.sormastheme .v-Notification-system.v-position-bottom[class*="animate-out"] { - -webkit-animation: valo-animate-out-slide-down 200ms; - -moz-animation: valo-animate-out-slide-down 200ms; - animation: valo-animate-out-slide-down 200ms; -} - -.sormastheme .v-Notification-system .v-Notification-caption { - color: #fff; - vertical-align: middle; -} - -.sormastheme .v-Notification-system .v-Notification-description, .sormastheme .v-Notification-system .v-Notification-details { - color: #e6e6e6; -} - -.sormastheme .v-Notification-system u { - text-decoration: none; -} - -.sormastheme .v-Notification.tray { - text-align: left; -} - -.sormastheme .v-Notification.tray .v-Notification-caption + .v-Notification-description { - display: block; - margin: 0.5em 0 0; -} - -.sormastheme .v-Notification.warning { - background: #FFF3D2; -} - -.sormastheme .v-Notification.warning .v-Notification-caption { - color: #AC7C00; -} - -.sormastheme .v-Notification.warning .v-Notification-description { - color: #9D874D; -} - -.sormastheme .v-Notification.error { - background: #eb2977; - font-weight: 500; - -webkit-box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.25); - box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.25); -} - -.sormastheme .v-Notification.error .v-Notification-caption { - color: white; -} - -.sormastheme .v-Notification.error .v-Notification-description { - color: #f3dce5; -} - -.sormastheme .v-Notification.dark { - background-color: #444; - background-color: rgba(68, 68, 68, 0.9); - font-weight: 500; - line-height: 21px; -} - -.sormastheme .v-Notification.dark .v-Notification-caption { - color: #fff; - vertical-align: middle; -} - -.sormastheme .v-Notification.dark .v-Notification-description, .sormastheme .v-Notification.dark .v-Notification-details { - color: #e6e6e6; -} - -.sormastheme .v-Notification.bar { - left: 0 !important; - right: 0; - max-width: 100%; - margin: 0 !important; - border-radius: 0; - -webkit-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); - box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25); - padding: 11px 13px; -} - -.sormastheme .v-Notification.bar .v-Notification-description, .sormastheme .v-Notification.bar .v-Notification-details { - max-width: 50em; -} - -.sormastheme .v-Notification.bar.v-position-top { - top: 0; -} - -.sormastheme .v-Notification.bar.v-position-top[class*="animate-in"] { - -webkit-animation: valo-animate-in-slide-down 300ms 10ms backwards; - -moz-animation: valo-animate-in-slide-down 300ms 10ms backwards; - animation: valo-animate-in-slide-down 300ms 10ms backwards; -} - -.sormastheme .v-Notification.bar.v-position-top[class*="animate-out"] { - -webkit-animation: valo-animate-out-slide-up 200ms; - -moz-animation: valo-animate-out-slide-up 200ms; - animation: valo-animate-out-slide-up 200ms; -} - -.sormastheme .v-Notification.bar.v-position-bottom { - bottom: 0; -} - -.sormastheme .v-Notification.bar.v-position-bottom[class*="animate-in"] { - -webkit-animation: valo-animate-in-slide-up 300ms 10ms backwards; - -moz-animation: valo-animate-in-slide-up 300ms 10ms backwards; - animation: valo-animate-in-slide-up 300ms 10ms backwards; -} - -.sormastheme .v-Notification.bar.v-position-bottom[class*="animate-out"] { - -webkit-animation: valo-animate-out-slide-down 200ms; - -moz-animation: valo-animate-out-slide-down 200ms; - animation: valo-animate-out-slide-down 200ms; -} - -.sormastheme .v-Notification.small { - padding: 10px 11px; -} - -.sormastheme .v-Notification.small .v-Notification-caption { - font-size: 15px; -} - -.sormastheme .v-Notification.small .v-Notification-description { - font-size: 13px; -} - -.sormastheme .v-Notification.closable { - padding-right: 51px; - overflow: hidden !important; - cursor: pointer; -} - -.sormastheme .v-Notification.closable:after { - content: "\00d7"; - font-size: 1.5em; - position: absolute; - top: 50%; - margin-top: -11px; - right: 11px; - width: 21px; - height: 21px; - line-height: 20px; - cursor: pointer; - color: #000; - opacity: 0.5; - filter: alpha(opacity=50) ; - text-align: center; - border: 1px solid #000; - border-color: rgba(0, 0, 0, 0.3); - border-radius: 50%; - -webkit-transition: opacity 200ms; - -moz-transition: opacity 200ms; - transition: opacity 200ms; -} - -.sormastheme .v-Notification.closable:hover:after { - opacity: 1; - filter: none ; -} - -.sormastheme .v-Notification.closable:active:after { - background-color: #000; - color: #fff; - opacity: 0.3; - filter: alpha(opacity=30.0) ; - -webkit-transition: none 200ms; - -moz-transition: none 200ms; - transition: none 200ms; -} - -.sormastheme .v-Notification.closable.dark:after, .sormastheme .v-Notification.closable.error:after, .sormastheme .v-Notification.closable.system:after { - color: #fff; - border-color: #fff; - border-color: rgba(255, 255, 255, 0.3); -} - -.sormastheme .v-Notification.closable.dark:active:after, .sormastheme .v-Notification.closable.error:active:after, .sormastheme .v-Notification.closable.system:active:after { - background-color: #fff; - color: #000; -} - -.sormastheme .v-Notification.closable.tray:after { - top: 14px; - margin-top: 0; -} - -.sormastheme .v-Notification.success, .sormastheme .v-Notification.failure { - background: #fff; - color: #555; - border: 2px solid #36b955; -} - -.sormastheme .v-Notification.success .v-Notification-caption, .sormastheme .v-Notification.failure .v-Notification-caption { - color: #36b955; - font-weight: 500; -} - -.sormastheme .v-Notification.success .v-Notification-caption:before, .sormastheme .v-Notification.failure .v-Notification-caption:before { - font-family: ThemeIcons; - content: "\f00c"; - margin-right: 0.5em; -} - -.sormastheme .v-Notification.success.bar, .sormastheme .v-Notification.failure.bar { - margin: -2px !important; -} - -.sormastheme .v-Notification.failure { - border-color: #eb2977; -} - -.sormastheme .v-Notification.failure .v-Notification-caption { - color: #eb2977; -} - -.sormastheme .v-Notification.failure .v-Notification-caption:before { - content: "\f05e"; -} - -.sormastheme .valo-menu { - height: 100%; - background-color: #3b3f42; - background-image: -webkit-linear-gradient(right, #313537 0%, #3b3f42 8px); - background-image: linear-gradient(to left,#313537 0%, #3b3f42 8px); - color: #9b9fa3; - font-size: 14px; - line-height: 26px; - border-right: 1px solid #2e3134; - white-space: nowrap; -} - -.sormastheme .valo-menu-toggle { - display: none; - position: fixed; - z-index: 200; - top: 3px; - left: 3px; - min-width: 0; -} - -.sormastheme .valo-menu-part { - border-left: 1px solid #333739; - height: 100%; - padding-bottom: 32px; - overflow: auto; -} - -.sormastheme .valo-menu-part:first-child { - border-left: none; -} - -.sormastheme .valo-menu-title, .sormastheme .valo-menu-subtitle, .sormastheme .valo-menu-item { - display: block; - line-height: inherit; - white-space: nowrap; - position: relative; -} - -.sormastheme .valo-menu-title .valo-menu-badge, .sormastheme .valo-menu-subtitle .valo-menu-badge, .sormastheme .valo-menu-item .valo-menu-badge { - position: absolute; - right: 16px; -} - -.sormastheme .valo-menu-title { - line-height: 1.2; - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); - padding: 11px 16px; - font-size: 14px; - border-bottom: 1px solid #4b7eb8; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - text-align: center; -} - -.sormastheme .valo-menu-title .v-menubar.v-menubar { - background: transparent; - border-color: #4b7eb8; - color: inherit; - -webkit-box-shadow: none; - box-shadow: none; - text-shadow: inherit; -} - -.sormastheme .valo-menu-title .v-menubar-menuitem { - background: transparent; - -webkit-box-shadow: inset 0 1px 0 #93bbed, inset 0 -1px 0 #4f8cd8; - box-shadow: inset 0 1px 0 #93bbed, inset 0 -1px 0 #4f8cd8; - text-shadow: inherit; - font-size: 15px; - border-color: inherit; -} - -.sormastheme .valo-menu-title h1, .sormastheme .valo-menu-title .v-label-h1, .sormastheme .valo-menu-title h2, .sormastheme .valo-menu-title .v-label-h2, .sormastheme .valo-menu-title h3, .sormastheme .valo-menu-title .v-label-h3, .sormastheme .valo-menu-title h4, .sormastheme .valo-menu-title .v-label-h4 { - margin-top: 0; - margin-bottom: 0; - color: inherit; -} - -.sormastheme .v-menubar-user-menu { - border: none; - border-radius: 0; - padding: 1px; - -webkit-box-shadow: none; - box-shadow: none; - text-shadow: none; - background: transparent; - color: inherit; - margin: 16px 6px; - display: block; - overflow: hidden; - text-align: center; - height: auto; - color: inherit; -} - -.sormastheme .v-menubar-user-menu:focus:after { - display: none; -} - -.sormastheme .v-menubar-user-menu .v-menubar-menuitem { - -webkit-box-shadow: none; - box-shadow: none; - border: none; - margin-right: 1px; - border-radius: 4px; - color: #60a0ea; - padding: 0 11px; - -webkit-transition: color 140ms; - -moz-transition: color 140ms; - transition: color 140ms; -} - -.sormastheme .v-menubar-user-menu .v-menubar-menuitem:first-child, .sormastheme .v-menubar-user-menu .v-menubar-menuitem:last-child, .sormastheme .v-menubar-user-menu .v-menubar-menuitem:first-child:last-child { - border-radius: 4px; -} - -.sormastheme .v-menubar-user-menu .v-menubar-menuitem:before { - content: none; -} - -.sormastheme .v-menubar-user-menu .v-menubar-menuitem:hover { - color: #8dbbf0; -} - -.sormastheme .v-menubar-user-menu .v-menubar-menuitem:active { - color: inherit; -} - -.sormastheme .v-menubar-user-menu .v-menubar-menuitem-checked, .sormastheme .v-menubar-user-menu .v-menubar-menuitem-checked:first-child { - border: 1px solid #c5c5c5; - color: #60a0ea; -} - -.sormastheme .v-menubar-user-menu .v-menubar-menuitem-checked .v-menubar-menuitem-caption, .sormastheme .v-menubar-user-menu .v-menubar-menuitem-checked:first-child .v-menubar-menuitem-caption { - position: relative; - top: -1px; -} - -.sormastheme .v-menubar-user-menu .v-menubar-menuitem-selected { - color: #f2f6fa; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); -} - -.sormastheme .v-menubar-user-menu .v-menubar-menuitem-selected:hover { - color: #f2f6fa; -} - -.sormastheme .v-menubar-user-menu .v-menubar-menuitem-disabled, .sormastheme .v-menubar-user-menu .v-menubar-menuitem-disabled:hover { - color: inherit; -} - -.sormastheme .v-menubar-user-menu > .v-menubar-menuitem { - color: inherit; - white-space: normal; - line-height: 1.4; - margin: 0; -} - -.sormastheme .v-menubar-user-menu > .v-menubar-menuitem img.v-icon { - width: 48px; - height: 48px; - border-radius: 25px; - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - display: block; - margin: 0 auto 0.3em; - border: 1px solid #c5c5c5; -} - -.sormastheme .v-menubar-user-menu > .v-menubar-menuitem:after { - top: 0; - right: 0; - bottom: 0; - left: 0; -} - -.sormastheme .v-menubar-user-menu .v-menubar-menuitem-selected { - background: transparent; -} - -.sormastheme .valo-menu-subtitle { - color: #787f84; - margin: 6px 0 6px 16px; - border-bottom: 1px solid #585b5e; -} - -.sormastheme .valo-menu-subtitle [class*="badge"] { - color: #93b4da; -} - -.sormastheme .valo-menuitems { - display: block; -} - -.sormastheme .valo-menu-item { - outline: none; - font-weight: 500; - padding: 0 32px 0 16px; - cursor: pointer; - position: relative; - overflow: hidden; - text-shadow: 0 2px 0 rgba(0, 0, 0, 0.05); - -webkit-transition: background-color 300ms, color 60ms; - -moz-transition: background-color 300ms, color 60ms; - transition: background-color 300ms, color 60ms; -} - -.sormastheme .valo-menu-item [class*="caption"] { - vertical-align: middle; - display: inline-block; - width: 90%; - max-width: 15em; - padding-right: 16px; - text-overflow: ellipsis; - overflow: hidden; -} - -.sormastheme .valo-menu-item [class*="badge"] { - color: #60a0ea; -} - -.sormastheme .valo-menu-item.selected { - background: #34373a; -} - -.sormastheme .valo-menu-item.selected .v-icon { - color: #60a0ea; -} - -.sormastheme .valo-menu-item.selected [class*="badge"] { - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - color: #d9e5f2; -} - -.sormastheme .valo-menu-item:focus, .sormastheme .valo-menu-item:hover, .sormastheme .valo-menu-item.selected { - color: white; -} - -.sormastheme .valo-menu-item span.v-icon { - min-width: 1em; - margin-right: 16px; - text-align: center; - vertical-align: middle; - -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(black), to(rgba(0, 0, 0, 0.75))); -} - -.sormastheme .valo-menu-item span.v-icon + span { - margin-left: 0; -} - -.sormastheme .valo-menu-item [class*="badge"] { - background-color: #474c4f; - -webkit-transition: background-color 300ms; - -moz-transition: background-color 300ms; - transition: background-color 300ms; - line-height: 1; - padding: 4px 5px; - min-width: 10px; - text-align: center; - top: 2px; - border-radius: 4px; -} - -.sormastheme .valo-menu-part.large-icons { - background-color: #3b3f42; - min-width: 64px; - max-width: 96px; -} - -.sormastheme .valo-menu-part.large-icons .valo-menu-title { - font-size: 11px; -} - -.sormastheme .valo-menu-part.large-icons .valo-menu-title .v-label-undef-w { - white-space: normal; -} - -.sormastheme .valo-menu-part.large-icons .v-menubar-user-menu { - margin-left: 0; - margin-right: 0; - font-size: 11px; -} - -.sormastheme .valo-menu-part.large-icons .v-menubar-user-menu img.v-icon { - width: 25px; - height: 25px; -} - -.sormastheme .valo-menu-part.large-icons [class*="subtitle"] { - margin: 8px 0 0; - padding: 6px 21px 6px 8px; - line-height: 1; - border: none; - text-overflow: ellipsis; - overflow: hidden; - background: #2d3032; - font-size: 12px; - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); -} - -.sormastheme .valo-menu-part.large-icons [class*="subtitle"] [class*="badge"] { - right: 8px; -} - -.sormastheme .valo-menu-part.large-icons [class*="subtitle"] + .valo-menu-item { - border-top: none; -} - -.sormastheme .valo-menu-part.large-icons .valo-menu-item { - display: block; - font-size: 24px; - line-height: 1; - padding: 11px; - text-align: center; - border-top: 1px solid #464a4d; -} - -.sormastheme .valo-menu-part.large-icons .valo-menu-item:first-child { - border-top: none; -} - -.sormastheme .valo-menu-part.large-icons .valo-menu-item [class*="caption"] { - display: block; - width: auto; - margin: 0.3em 0 0; - padding: 0; - font-size: 11px; - line-height: 1.3; -} - -.sormastheme .valo-menu-part.large-icons .valo-menu-item .v-icon { - margin: 0; -} - -.sormastheme .valo-menu-part.large-icons .valo-menu-item span.v-icon { - opacity: 0.8; -} - -.sormastheme .valo-menu-part.large-icons .valo-menu-item.selected { - background: #34373a; -} - -.sormastheme .valo-menu-part.large-icons .valo-menu-item.selected .v-icon { - opacity: 1; -} - -.sormastheme .valo-menu-part.large-icons .valo-menu-item.selected [class*="badge"] { - border-color: #34373a; -} - -.sormastheme .valo-menu-part.large-icons .valo-menu-item [class*="badge"] { - padding-left: 4px; - padding-right: 4px; - top: 6px; - right: 6px; - border: 2px solid #3b3f42; -} - -.sormastheme .valo-menu-logo { - display: block; - overflow: hidden; - width: 38px !important; - height: 38px; - border-radius: 4px; - text-align: center; - background-color: #60a0ea; - background-image: -webkit-linear-gradient(top, #67a7eb 2%, #5491de 98%); - background-image: linear-gradient(to bottom,#67a7eb 2%, #5491de 98%); - color: white; - font-size: 21px; - line-height: 38px; - margin: 16px auto; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); -} - -.sormastheme .valo-menu-logo:focus { - outline: none; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part { - background-color: #3b3f42; - min-width: 64px; - max-width: 96px; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-title { - font-size: 11px; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-title .v-label-undef-w { - white-space: normal; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .v-menubar-user-menu { - margin-left: 0; - margin-right: 0; - font-size: 11px; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .v-menubar-user-menu img.v-icon { - width: 25px; - height: 25px; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part [class*="subtitle"] { - margin: 8px 0 0; - padding: 6px 21px 6px 8px; - line-height: 1; - border: none; - text-overflow: ellipsis; - overflow: hidden; - background: #2d3032; - font-size: 12px; - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part [class*="subtitle"] [class*="badge"] { - right: 8px; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part [class*="subtitle"] + .valo-menu-item { - border-top: none; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item { - display: block; - font-size: 24px; - line-height: 1; - padding: 11px; - text-align: center; - border-top: 1px solid #464a4d; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item:first-child { - border-top: none; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item [class*="caption"] { - display: block; - width: auto; - margin: 0.3em 0 0; - padding: 0; - font-size: 11px; - line-height: 1.3; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item .v-icon { - margin: 0; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item span.v-icon { - opacity: 0.8; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item.selected { - background: #34373a; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item.selected .v-icon { - opacity: 1; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item.selected [class*="badge"] { - border-color: #34373a; -} - -.sormastheme .valo-menu-responsive[width-range~="801px-1100px"] .valo-menu-part .valo-menu-item [class*="badge"] { - padding-left: 4px; - padding-right: 4px; - top: 6px; - right: 6px; - border: 2px solid #3b3f42; -} - -.sormastheme .valo-menu-responsive[width-range~="0-800px"] { - padding-top: 32px; - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -.sormastheme .valo-menu-responsive[width-range~="0-800px"] .v-loading-indicator { - top: 32px; -} - -.sormastheme .valo-menu-responsive[width-range~="0-800px"] > .v-widget { - position: relative !important; -} - -.sormastheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu { - border-right: none; -} - -.sormastheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu-part { - overflow: visible; -} - -.sormastheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu-toggle { - display: inline-block; -} - -.sormastheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu-title { - position: fixed; - z-index: 100; - top: 0; - left: 0; - right: 0; - height: 32px !important; - padding-top: 0; - padding-bottom: 0; - -webkit-backface-visibility: hidden; -} - -.sormastheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu .v-menubar-user-menu { - position: fixed; - z-index: 100; - top: 0; - right: 0; - margin: 0; - padding: 0; - height: 32px; - color: #b8d0ec; - max-width: 30%; - -webkit-backface-visibility: hidden; -} - -.sormastheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu .v-menubar-user-menu .v-menubar-menuitem { - line-height: 31px; - white-space: nowrap; -} - -.sormastheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu .v-menubar-user-menu img.v-icon { - display: inline-block; - margin: 0 5px 0 0; - width: 16px; - height: 16px; - border-radius: 8px; - border: none; -} - -.sormastheme .valo-menu-responsive[width-range~="0-800px"] .valo-menuitems { - height: 100%; - background-color: #3b3f42; - background-image: -webkit-linear-gradient(right, #313537 0%, #3b3f42 8px); - background-image: linear-gradient(to left,#313537 0%, #3b3f42 8px); - color: #9b9fa3; - font-size: 14px; - line-height: 26px; - border-right: 1px solid #2e3134; - white-space: nowrap; - position: fixed; - z-index: 9000; - top: 32px; - bottom: 0; - height: auto; - max-width: 100%; - overflow: auto; - padding: 16px 0; - -webkit-transform: translatex(-100%); - -moz-transform: translatex(-100%); - -ms-transform: translatex(-100%); - -o-transform: translatex(-100%); - transform: translatex(-100%); - -webkit-transition: all 300ms; - -moz-transition: all 300ms; - transition: all 300ms; -} - -.sormastheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu-visible .valo-menuitems, .sormastheme .valo-menu-responsive[width-range~="0-800px"] .valo-menu-hover:hover .valo-menuitems { - -webkit-transform: translatex(0%); - -moz-transform: translatex(0%); - -ms-transform: translatex(0%); - -o-transform: translatex(0%); - transform: translatex(0%); -} - -.sormastheme .valo-menu-responsive[width-range~="0-500px"] .valo-menu-toggle .v-button-caption { - display: none; -} - -.sormastheme .valo-menu-responsive[width-range~="0-500px"] .valo-menu .v-menubar-user-menu .v-menubar-menuitem-caption { - display: inline-block; - width: 16px; - overflow: hidden; -} - -.sormastheme .valo-menu { - font-size: 16px; -} - -.sormastheme .valo-menu-item { - padding-top: 8px; -} - -.sormastheme .login-screen { - background: #EFF5FC; - background-image: url(img/login-bg.png); - background-size: 960px; - background-repeat: no-repeat; - background-position: 50% 50%; - width: 100%; - height: 100%; -} - -.sormastheme .login-screen .login-form { - background: white; - color: #474747; - border-radius: 4px; - border: 1px solid #d5d5d5; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - border: none; - padding: 21px 21px 21px 21px; - -webkit-animation: valo-animate-in-fade 1s backwards; - -moz-animation: valo-animate-in-fade 1s backwards; - animation: valo-animate-in-fade 1s backwards; - margin-right: 50%; - margin-bottom: 10%; -} - -.sormastheme .login-screen .login-information { - display: inline-block; - position: absolute; - top: 0; - left: 0; - width: 300px; - height: 100%; - background: #60a0ea; - background-color: rgba(96, 160, 234, 0.7); - padding: 21px 21px 21px 21px; - color: #f2f6fa; - -webkit-animation: valo-animate-in-fade 1s 1s backwards; - -moz-animation: valo-animate-in-fade 1s 1s backwards; - animation: valo-animate-in-fade 1s 1s backwards; -} - -.sormastheme .login-screen .login-information h1 { - color: inherit; -} - -.sormastheme .login-screen .centering-layout { - display: inline-block; - width: 100%; - height: 100%; - padding-left: 300px; -} - -.sormastheme .login-screen .centering-layout .v-slot { - height: 100%; -} - -.sormastheme .v-grid-header th { - font-size: 12px; -} - -.sormastheme .v-grid-cell { - font-size: 13px; -} - -.sormastheme .v-grid-cell.priority-high { - background-color: #DFA7A5; - color: white; -} - -.sormastheme .v-grid-cell.priority-normal { - background-color: #A6BFDD; - color: white; -} - -.sormastheme .v-grid-row.status-discarded .v-grid-cell { - text-decoration: line-through; - color: #888; -} - -.sormastheme .v-grid-row.status-done .v-grid-cell { - color: #888; -} - -.sormastheme .v-grid-row.status-not .v-grid-cell { - color: #C44; -} - -.sormastheme .callout { - text-align: center; - outline: none; - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - padding: 0 14px; - color: #191919; - font-weight: 500; - border-radius: 4px; - border: 1px solid #c5c5c5; - border-left: 7px solid #60a0ea; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; -} - -.sormastheme .dashboard-key { - text-align: center; - outline: none; - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - padding: 7px; - color: #191919; - font-weight: 500; - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; -} - -.sormastheme .googlemap.no-tiles img { - opacity: 0.2; - filter: alpha(opacity=20); -} - -.sormastheme .googlemap.no-tiles .gmnoprint img { - opacity: inherit; - filter: inherit; -} - -.sormastheme .googlemap gm-style { - background-color: white; -} - -.sormastheme .valo-content { - overflow: auto; -} - -.sormastheme .v-caption { - padding-bottom: 0.1em; -} - -.sormastheme .v-widget.v-textfield, .sormastheme .v-widget.v-textarea, .sormastheme .v-widget.v-select, .sormastheme .v-widget.v-datefield, .sormastheme .v-widget.v-filterselect { - margin-bottom: 10px; -} - -.sormastheme .v-caption-row-optiongroup { - float: left; - padding-top: 7px; - height: 22px; - padding-bottom: 1px; - margin-bottom: -30px; -} - -.sormastheme .v-select-optiongroup-row-optiongroup { - text-align: right; -} - -.sormastheme .v-select-optiongroup-row-optiongroup .v-select-option, .sormastheme .v-select-optiongroup-inline-optiongroup .v-select-option { - display: inline-block; -} - -.sormastheme .v-panel { - background: inherit; - border: medium none; - border-radius: 0; - box-shadow: none; -} - -.sormastheme .crud-view { - position: relative; -} - -.sormastheme .crud-view .filter-textfield { - width: 288px; -} - -.sormastheme .v-caption { - display: block; -} - -.sormastheme .v-caption.v-caption-caption-hidden { - display: none; -} - -.sormastheme .force-caption { - margin-top: 1.5em; -} - -.sormastheme .force-caption-21 { - margin-top: 21px; -} - -.sormastheme .no-margin, .sormastheme .h1.no-margin, .sormastheme .h2.no-margin, .sormastheme .h3.no-margin, .sormastheme .h4.no-margin, .sormastheme .h5.no-margin, .sormastheme .v-checkbox.no-margin label { - margin: 0; -} - -.sormastheme .sublist-padding { - padding-top: 7px; -} - -.sormastheme .v-readonly, .sormastheme .v-caption-v-readonly { - color: #aaa; -} - -.sormastheme .about-view { - overflow: auto; -} - -.sormastheme .about-view .about-content { - background: white; - color: #474747; - border-radius: 4px; - border: 1px solid #d5d5d5; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - max-width: 500px; - padding: 32px !important; -} - -.sormastheme .v-ui[width-range~="0-800px"] .main-screen { - padding-top: 32px; -} - -.sormastheme .v-ui[width-range~="0-800px"] .login-screen { - height: auto; - min-height: 100%; -} - -.sormastheme .v-ui[width-range~="0-800px"] .login-screen .login-information { - position: static; - width: 100%; - height: auto; -} - -.sormastheme .v-ui[width-range~="0-800px"] .login-screen .login-information .v-label { - text-align: center; -} - -.sormastheme .v-ui[width-range~="0-800px"] .login-screen .login-information .v-label h1 { - margin-top: 0.4em; -} - -.sormastheme .v-ui[width-range~="0-800px"] .login-screen .centering-layout { - display: block; - width: 100%; - height: auto; - padding-left: 0; - padding-top: 60px; - padding-bottom: 60px; -} - -.sormastheme .v-ui[width-range~="0-800px"] .login-screen .login-form { - width: 400px; - max-width: 100%; -} - -.sormastheme .v-ui[width-range~="0-800px"] .login-screen .login-form table { - width: 100%; -} - -.sormastheme .v-ui[width-range~="0-800px"] .login-screen .login-form .v-textfield { - width: 100% !important; -} - -.sormastheme .v-ui[width-range~="0-800px"] .login-screen .login-form .v-formlayout-captioncell, .sormastheme .v-ui[width-range~="0-800px"] .login-screen .login-form .v-formlayout-contentcell, .sormastheme .v-ui[width-range~="0-800px"] .login-screen .login-form .v-formlayout-errorcell { - display: block; - text-align: center; - padding-top: 0; -} - -.sormastheme .v-ui[width-range~="0-800px"] .login-screen .login-form .buttons { - width: 100%; -} - -.sormastheme .v-ui[width-range~="0-800px"] .login-screen .login-form .buttons .v-button { - display: block; - text-align: center; -} - -.sormastheme .v-ui[width-range~="801px-1100px"] .valo-menu-part .v-slot-logo, .sormastheme .v-ui[width-range~="801px-1100px"] .valo-menu-part .v-slot-logo + .v-spacing { - display: none; -} - -.sormastheme .v-ui[width-range~="801px-"] .valo-menu-part .user-menu { - position: fixed; - bottom: 0; - margin-bottom: 0; -} - -.sormastheme .v-ui[width-range~="0-550px"] .crud-view .crud-main-layout { - padding: 0 0 0 0; -} - -.sormastheme .v-ui[width-range~="0-550px"] .crud-view .crud-main-layout .top-bar { - padding: 18px 18px 0 18px; -} - -.sormastheme .v-ui[width-range~="0-550px"] .crud-view .crud-main-layout .top-bar .filter-textfield { - width: 100%; -} - -.sormastheme .v-ui[width-range~="0-550px"] .about-view { - padding-bottom: 0; - padding-top: 0; - height: auto; - padding: 3.2px; -} - -.sormastheme .v-ui[width-range~="0-550px"] .about-view .v-slot-about-content { - overflow: auto; -} - -.sormastheme .v-ui[width-range~="0-550px"] .about-view .about-content { - width: 100%; - max-width: 100%; - height: auto; - vertical-align: top; - padding: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormastheme .v-ui[width-range~="0-500px"] .valo-menu .v-menubar-user-menu .v-menubar-menuitem-caption { - width: auto; -} - -.sormastheme input[type=number]::-webkit-inner-spin-button, .sormastheme input[type=number]::-webkit-outer-spin-button { - -webkit-appearance: none; - margin: 0; -} - -.sormastheme .align-right { - text-align: right; -} - -.sormastheme .v-Notification.error { - background: #C31924; -} - -.sormastheme .cursor-link { - cursor: pointer; -} - -.sormastheme .font-size-large { - font-size: 18px; -} - -.sormastheme .font-size-xlarge { - font-size: 22px; -} - -.sormastheme .font-size-xlarge li, .sormastheme .font-size-xlarge ol { - line-height: 32px; -} - -.sormastheme .font-size-small { - font-size: 12px; -} - -.sormastheme .sublist-margin { - margin-top: 50px; -} - -.sormastheme .sublist-margin-small { - margin-top: 20px; -} - -.sormastheme .info-column-margin { - margin-left: 25px; -} - -.sormastheme .color-red .v-icon { - color: #7F3300; -} - -.sormastheme .color-green .v-icon { - color: #007F0E; -} - -.sormastheme .color-grey .v-icon { - color: #A8A8A8; -} - -.sormastheme .vspace-no-filters { - margin-bottom: 16px; -} - -.sormastheme .vspace-top-24 { - margin-top: 24px; -} \ No newline at end of file From bf4c5a6ce240792245338e87f293b42b888e66d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=A9=20Strysewske?= Date: Fri, 13 Oct 2017 10:30:53 +0200 Subject: [PATCH 12/54] #358 - Added "accessGranted" config parameter, EnterPinActivity is called whenever it's set to false Corrected task notification generation Code fixes --- .../sormas/app/AbstractSormasActivity.java | 6 ++++ .../symeda/sormas/app/EnterPinActivity.java | 26 +++++++++-------- .../de/symeda/sormas/app/LoginActivity.java | 7 +++-- .../symeda/sormas/app/SormasApplication.java | 3 ++ .../app/backend/config/ConfigProvider.java | 28 +++++++++++++++++++ .../sormas/app/backend/task/TaskDao.java | 5 +++- .../sormas/app/settings/SettingsActivity.java | 1 + .../app/task/TaskNotificationService.java | 2 +- .../report/WeeklyReportFacadeEjbTest.java | 9 +----- 9 files changed, 63 insertions(+), 24 deletions(-) diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/AbstractSormasActivity.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/AbstractSormasActivity.java index 35fc0e90a77..c496b86e626 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/AbstractSormasActivity.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/AbstractSormasActivity.java @@ -51,6 +51,12 @@ public static AbstractSormasActivity getActiveActivity() { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { + // Show the Enter Pin Activity if the user doesn't have access to the app + if (!ConfigProvider.isAccessGranted()) { + Intent intent = new Intent(this, EnterPinActivity.class); + startActivity(intent); + } + super.onCreate(savedInstanceState); SormasApplication application = (SormasApplication) getApplication(); diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/EnterPinActivity.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/EnterPinActivity.java index 0518d5b9981..19c5f514ade 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/EnterPinActivity.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/EnterPinActivity.java @@ -4,6 +4,7 @@ import android.content.Intent; import android.os.Bundle; import android.support.design.widget.Snackbar; +import android.support.v4.app.NavUtils; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.view.KeyEvent; @@ -16,9 +17,11 @@ import java.util.regex.Pattern; import de.symeda.sormas.app.backend.config.ConfigProvider; +import de.symeda.sormas.app.backend.task.Task; import de.symeda.sormas.app.caze.CasesActivity; import de.symeda.sormas.app.rest.SynchronizeDataAsync; import de.symeda.sormas.app.settings.SettingsActivity; +import de.symeda.sormas.app.task.TaskEditActivity; import de.symeda.sormas.app.util.SyncCallback; /** @@ -28,12 +31,16 @@ public class EnterPinActivity extends AppCompatActivity { public static final String CALLED_FROM_SETTINGS = "calledFromSettings"; + public static final String TASK_UUID = "taskUuid"; + private String lastEnteredPIN; private boolean calledFromSettings; private boolean confirmedCurrentPIN; private boolean triedAgain; private EditText[] pinFields; + private String taskUuid; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -44,6 +51,9 @@ protected void onCreate(Bundle savedInstanceState) { if (params.containsKey(CALLED_FROM_SETTINGS)) { calledFromSettings = params.getBoolean(CALLED_FROM_SETTINGS); } + if (params.containsKey(TASK_UUID)) { + taskUuid = params.getString(TASK_UUID); + } } getWindow().setSoftInputMode( @@ -136,8 +146,9 @@ public void submit(View view) { // otherwise display an error message and restart the activity if (lastEnteredPIN.equals(enteredPIN)) { ConfigProvider.setPin(enteredPIN); + ConfigProvider.setAccessGranted(true); Snackbar.make(findViewById(R.id.base_layout), R.string.snackbar_pin_correct_loading, Snackbar.LENGTH_LONG).show(); - startMainActivity(); + finish(); } else { lastEnteredPIN = null; Snackbar.make(findViewById(R.id.base_layout), R.string.snackbar_pin_not_matching, Snackbar.LENGTH_LONG).show(); @@ -174,8 +185,9 @@ public void submit(View view) { } else { // Process the login if the PIN is correct, otherwise display an error message and restart the activity if (enteredPIN.equals(savedPIN)) { + ConfigProvider.setAccessGranted(true); Snackbar.make(findViewById(R.id.base_layout), R.string.snackbar_pin_correct_loading, Snackbar.LENGTH_LONG).show(); - startMainActivity(); + finish(); } else { Snackbar.make(findViewById(R.id.base_layout), R.string.snackbar_pin_wrong, Snackbar.LENGTH_LONG).show(); triedAgain = true; @@ -262,8 +274,7 @@ public void onClick(DialogInterface dialog, int which) { dialog.show(); } - public void enterNumber(View view) - { + public void enterNumber(View view) { enterNumber(((Button)view).getText()); } @@ -297,13 +308,6 @@ public void backToSettings(View view) { startActivity(intent); } - - - private void startMainActivity() { - Intent intent = new Intent(this, CasesActivity.class); - startActivity(intent); - } - private boolean validateNumber(String number, boolean showSnackbar) { if (number.length() != 4) { diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/LoginActivity.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/LoginActivity.java index 4a73a2a4213..a8c634b65fa 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/LoginActivity.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/LoginActivity.java @@ -16,6 +16,7 @@ import java.net.ConnectException; import de.symeda.sormas.app.backend.config.ConfigProvider; +import de.symeda.sormas.app.caze.CasesActivity; import de.symeda.sormas.app.rest.RetroProvider; import de.symeda.sormas.app.rest.SynchronizeDataAsync; import de.symeda.sormas.app.settings.SettingsActivity; @@ -80,7 +81,7 @@ public void login(View view) { public void call(boolean syncFailed, String syncFailedMessage) { // logged in? if (ConfigProvider.getUser() != null) { - Intent intent = new Intent(LoginActivity.this, EnterPinActivity.class); + Intent intent = new Intent(LoginActivity.this, CasesActivity.class); startActivity(intent); } } @@ -207,14 +208,14 @@ private void processLogin() { @Override public void call(boolean syncFailed, String syncFailedMessage) { if (ConfigProvider.getUser() != null) { - Intent intent = new Intent(LoginActivity.this, EnterPinActivity.class); + Intent intent = new Intent(LoginActivity.this, CasesActivity.class); startActivity(intent); } } }); } else { - Intent intent = new Intent(LoginActivity.this, EnterPinActivity.class); + Intent intent = new Intent(LoginActivity.this, CasesActivity.class); startActivity(intent); } } diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/SormasApplication.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/SormasApplication.java index c7180de79c7..d2d9a278ad7 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/SormasApplication.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/SormasApplication.java @@ -33,6 +33,9 @@ public void onCreate() { DatabaseHelper.init(this); ConfigProvider.init(this); + // Make sure the Enter Pin Activity is shown when the app has just started + ConfigProvider.setAccessGranted(false); + TaskNotificationService.startTaskNotificationAlarm(this); // Initialize the tracker that is used to send information to Google Analytics diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/config/ConfigProvider.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/config/ConfigProvider.java index 9f6d90961df..3f9d33a0a6e 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/config/ConfigProvider.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/config/ConfigProvider.java @@ -50,6 +50,7 @@ public final class ConfigProvider { private static String KEY_PASSWORD = "password"; private static String KEY_PIN = "pin"; private static String KEY_SERVER_REST_URL = "serverRestUrl"; + private static String KEY_ACCESS_GRANTED = "accessGranted"; private static String LAST_NOTIFICATION_DATE = "lastNotificationDate"; public static ConfigProvider instance = null; @@ -69,6 +70,7 @@ public static void init(Context context) { private String pin; private User user; private Date lastNotificationDate; + private Boolean accessGranted; private ConfigProvider(Context context) { this.context = context; @@ -403,4 +405,30 @@ public static void setLastNotificationDate(Date lastNotificationDate) { DatabaseHelper.getConfigDao().createOrUpdate(new Config(LAST_NOTIFICATION_DATE, String.valueOf(lastNotificationDate.getTime()))); } } + + public static Boolean isAccessGranted() { + if (instance.accessGranted == null) { + Config config = DatabaseHelper.getConfigDao().queryForId(KEY_ACCESS_GRANTED); + if (config != null) { + instance.accessGranted = Boolean.parseBoolean(config.getValue()); + } + } + return instance.accessGranted; + } + + public static void setAccessGranted(Boolean accessGranted) { + if (accessGranted == null) { + throw new NullPointerException("accessGranted"); + } + + if (accessGranted.equals(instance.accessGranted)) { + return; + } + + instance.accessGranted = accessGranted; + + DatabaseHelper.getConfigDao().createOrUpdate(new Config(KEY_ACCESS_GRANTED, String.valueOf(accessGranted))); + } + + } diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/task/TaskDao.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/task/TaskDao.java index bc4fa9c999d..b5966216969 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/task/TaskDao.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/task/TaskDao.java @@ -87,7 +87,10 @@ public List queryMyPendingForNotification(Date rangeStart, Date rangeEnd) where.and( where.between(Task.LOCAL_CHANGE_DATE, rangeStart, rangeEnd), where.eq(Task.MODIFIED, false), - where.raw(Task.LAST_OPENED_DATE + " < " + Task.LOCAL_CHANGE_DATE), + where.or( + where.raw(Task.LAST_OPENED_DATE + " < " + Task.LOCAL_CHANGE_DATE), + where.isNull(Task.LAST_OPENED_DATE) + ), where.le(Task.SUGGESTED_START, rangeEnd) ) ) diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/settings/SettingsActivity.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/settings/SettingsActivity.java index dcdc4e64a06..4bd6f9c0852 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/settings/SettingsActivity.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/settings/SettingsActivity.java @@ -99,6 +99,7 @@ public void openSyncLog(View view) { public void logout(View view) { ConfigProvider.clearUsernameAndPassword(); ConfigProvider.clearPin(); + ConfigProvider.setAccessGranted(false); Intent intent = new Intent(this, LoginActivity.class); startActivity(intent); } diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TaskNotificationService.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TaskNotificationService.java index 4edb374dfe1..d3fdb72c085 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TaskNotificationService.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TaskNotificationService.java @@ -117,7 +117,7 @@ public static void doTaskNotification(Context context) { EventDao eventDAO = DatabaseHelper.getEventDao(); PersonDao personDAO = DatabaseHelper.getPersonDao(); - for (Task task:taskList) { + for (Task task : taskList) { Intent notificationIntent = new Intent(context, TaskEditActivity.class); notificationIntent.putExtra(Task.UUID, task.getUuid()); diff --git a/sormas-backend/src/test/java/de/symeda/sormas/backend/report/WeeklyReportFacadeEjbTest.java b/sormas-backend/src/test/java/de/symeda/sormas/backend/report/WeeklyReportFacadeEjbTest.java index b36d9f69198..7125f5d1c19 100644 --- a/sormas-backend/src/test/java/de/symeda/sormas/backend/report/WeeklyReportFacadeEjbTest.java +++ b/sormas-backend/src/test/java/de/symeda/sormas/backend/report/WeeklyReportFacadeEjbTest.java @@ -1,6 +1,6 @@ package de.symeda.sormas.backend.report; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import java.util.Date; import java.util.List; @@ -8,17 +8,10 @@ import org.junit.Before; import org.junit.Test; -import de.symeda.sormas.api.Disease; -import de.symeda.sormas.api.caze.CaseClassification; -import de.symeda.sormas.api.caze.CaseDataDto; -import de.symeda.sormas.api.caze.InvestigationStatus; -import de.symeda.sormas.api.person.PersonDto; import de.symeda.sormas.api.region.RegionFacade; -import de.symeda.sormas.api.report.WeeklyReportDto; import de.symeda.sormas.api.report.WeeklyReportFacade; import de.symeda.sormas.api.report.WeeklyReportSummaryDto; import de.symeda.sormas.api.user.UserDto; -import de.symeda.sormas.api.user.UserFacade; import de.symeda.sormas.api.user.UserRole; import de.symeda.sormas.api.utils.DateHelper; import de.symeda.sormas.api.utils.EpiWeek; From a8d6e8da9f416a083e1858d1dbb4b6b393562c5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=A9=20Strysewske?= Date: Fri, 13 Oct 2017 10:45:37 +0200 Subject: [PATCH 13/54] #360 - Removed case reference from general tasks in task list --- .../java/de/symeda/sormas/app/task/TasksListArrayAdapter.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TasksListArrayAdapter.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TasksListArrayAdapter.java index 5588496ff40..0dfa2ee04da 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TasksListArrayAdapter.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TasksListArrayAdapter.java @@ -99,6 +99,8 @@ public View getView(int position, View convertView, ViewGroup parent) { sb.append(" (" + DataHelper.getShortUuid(task.getEvent().getUuid()) + ")"); sb.append(", " + task.getEvent().getEventDesc().substring(0, 15) + (task.getEvent().getEventDesc().length() > 15 ? "..." : "")); taskInfo.setText(sb.toString()); + } else { + taskInfo.setText(""); } TextView creatorComment = (TextView) convertView.findViewById(R.id.task_creatorComment_li); From 7c1245342d6bb02ee4e74e48fc584d617cf1a229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=A9=20Strysewske?= Date: Fri, 13 Oct 2017 11:10:53 +0200 Subject: [PATCH 14/54] #357 - Added other disease name to all Vaadin grids --- .../java/de/symeda/sormas/api/sample/SampleIndexDto.java | 8 ++++++++ .../de/symeda/sormas/backend/sample/SampleFacadeEjb.java | 1 + .../src/main/java/de/symeda/sormas/ui/caze/CaseGrid.java | 6 ++++-- .../java/de/symeda/sormas/ui/contact/ContactGrid.java | 7 +++++-- .../main/java/de/symeda/sormas/ui/events/EventGrid.java | 8 +++++--- .../main/java/de/symeda/sormas/ui/samples/SampleGrid.java | 6 ++++-- 6 files changed, 27 insertions(+), 9 deletions(-) diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/sample/SampleIndexDto.java b/sormas-api/src/main/java/de/symeda/sormas/api/sample/SampleIndexDto.java index 9ace5a03121..461f6e09d09 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/sample/SampleIndexDto.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/sample/SampleIndexDto.java @@ -16,6 +16,7 @@ public class SampleIndexDto extends SampleReferenceDto { public static final String ASSOCIATED_CASE = "associatedCase"; public static final String DISEASE = "disease"; + public static final String DISEASE_DETAILS = "diseaseDetails"; public static final String SAMPLE_CODE = "sampleCode"; public static final String LAB_SAMPLE_ID = "labSampleID"; public static final String LGA = "lga"; @@ -34,6 +35,7 @@ public class SampleIndexDto extends SampleReferenceDto { private CaseReferenceDto associatedCase; private Disease disease; + private String diseaseDetails; private String sampleCode; private String labSampleID; private DistrictReferenceDto lga; @@ -62,6 +64,12 @@ public Disease getDisease() { public void setDisease(Disease disease) { this.disease = disease; } + public String getDiseaseDetails() { + return diseaseDetails; + } + public void setDiseaseDetails(String diseaseDetails) { + this.diseaseDetails = diseaseDetails; + } public String getSampleCode() { return sampleCode; } diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/sample/SampleFacadeEjb.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/sample/SampleFacadeEjb.java index 0c93266f3fa..7dc3f738738 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/sample/SampleFacadeEjb.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/sample/SampleFacadeEjb.java @@ -216,6 +216,7 @@ public SampleIndexDto toIndexDto(Sample source) { target.setAssociatedCase(CaseFacadeEjb.toReferenceDto(source.getAssociatedCase())); target.setDisease(source.getAssociatedCase().getDisease()); + target.setDiseaseDetails(source.getAssociatedCase().getDiseaseDetails()); target.setSampleCode(source.getSampleCode()); target.setLabSampleID(source.getLabSampleID()); target.setShipmentDate(source.getShipmentDate()); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseGrid.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseGrid.java index 7aff49272e2..2111d7a42b8 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseGrid.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseGrid.java @@ -60,8 +60,10 @@ public Class getType() { @Override public String getValue(Item item, Object itemId, Object propertyId) { CaseDataDto caseDataDto = (CaseDataDto) itemId; - String diseaseName = caseDataDto.getDisease().getName(); - return Disease.valueOf(diseaseName).toShortString(); + Disease disease = caseDataDto.getDisease(); + String diseaseName = disease.getName(); + return disease == Disease.OTHER ? Disease.valueOf(diseaseName).toShortString() + " (" + caseDataDto.getDiseaseDetails() + ")" + : Disease.valueOf(diseaseName).toShortString(); } @Override public Class getType() { diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactGrid.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactGrid.java index 858278e3549..e82a0641685 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactGrid.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactGrid.java @@ -77,8 +77,11 @@ public Class getType() { @Override public String getValue(Item item, Object itemId, Object propertyId) { ContactIndexDto contactIndexDto = (ContactIndexDto) itemId; - String diseaseName = contactIndexDto.getCazeDisease().getName(); - return Disease.valueOf(diseaseName).toShortString(); + CaseDataDto contactCase = FacadeProvider.getCaseFacade().getCaseDataByUuid(contactIndexDto.getCaze().getUuid()); + Disease disease = contactCase.getDisease(); + String diseaseName = disease.getName(); + return disease == Disease.OTHER ? Disease.valueOf(diseaseName).toShortString() + " (" + contactCase.getDiseaseDetails() + ")" + : Disease.valueOf(diseaseName).toShortString(); } @Override public Class getType() { diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventGrid.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventGrid.java index 5e8e113da98..9d9220b3b11 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventGrid.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventGrid.java @@ -67,9 +67,11 @@ public Class getType() { @Override public String getValue(Item item, Object itemId, Object propertyId) { EventDto eventDto = (EventDto) itemId; - if(eventDto.getDisease() != null) { - String diseaseName = eventDto.getDisease().getName(); - return Disease.valueOf(diseaseName).toShortString(); + Disease disease = eventDto.getDisease(); + if(disease != null) { + String diseaseName = disease.getName(); + return disease == Disease.OTHER ? Disease.valueOf(diseaseName).toShortString() + " (" + eventDto.getDiseaseDetails() + ")" + : Disease.valueOf(diseaseName).toShortString(); } else { return null; } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleGrid.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleGrid.java index b18d916cdf0..c7dd6cb44f6 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleGrid.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleGrid.java @@ -66,8 +66,10 @@ public Class getType() { @Override public String getValue(Item item, Object itemId, Object propertyId) { SampleIndexDto indexDto = (SampleIndexDto) itemId; - String diseaseName = indexDto.getDisease().getName(); - return Disease.valueOf(diseaseName).toShortString(); + Disease disease = indexDto.getDisease(); + String diseaseName = disease.getName(); + return disease == Disease.OTHER ? Disease.valueOf(diseaseName).toShortString() + " (" + indexDto.getDiseaseDetails() + ")" + : Disease.valueOf(diseaseName).toShortString(); } @Override public Class getType() { From 8d622c965120c6a06703645cc50cfecc208c802b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=A9=20Strysewske?= Date: Fri, 13 Oct 2017 11:28:14 +0200 Subject: [PATCH 15/54] #354 - National users can now create officers and lab users --- .../src/main/java/de/symeda/sormas/api/user/UserRole.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/user/UserRole.java b/sormas-api/src/main/java/de/symeda/sormas/api/user/UserRole.java index 6eeb74242a3..1c67eab891f 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/user/UserRole.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/user/UserRole.java @@ -74,6 +74,10 @@ public void addAssignableRoles(Collection collection) { collection.add(SURVEILLANCE_SUPERVISOR); collection.add(CASE_SUPERVISOR); collection.add(CONTACT_SUPERVISOR); + collection.add(CASE_OFFICER); + collection.add(CONTACT_OFFICER); + collection.add(SURVEILLANCE_OFFICER); + collection.add(LAB_USER); break; case SURVEILLANCE_SUPERVISOR: collection.add(SURVEILLANCE_OFFICER); From 276e01af393064f4f85496f202c6c88adbd512c1 Mon Sep 17 00:00:00 2001 From: Martin Wahnschaffe Date: Fri, 13 Oct 2017 15:37:19 +0200 Subject: [PATCH 16/54] Update Vaadin Theme with new Design #356 use bootstrap 3 grid replace native selects with vaadin combo boxes --- .../symeda/sormas/ui/caze/CaseCreateForm.java | 3 +- .../symeda/sormas/ui/caze/CaseDataForm.java | 8 +- .../sormas/ui/dashboard/MapComponent.java | 2 +- .../sormas/ui/person/PersonEditForm.java | 17 +- .../symeda/sormas/ui/reports/ReportsView.java | 11 +- .../sormas/ui/utils/AbstractEditForm.java | 1 - .../de/symeda/sormas/ui/utils/LayoutUtil.java | 28 +- .../themes/sormas/bootstrap-grid.min.css | 14 + .../themes/sormas/bootstrap-reduced.css | 5553 ----------------- .../VAADIN/themes/sormas/font-awesome.min.css | 403 -- .../webapp/VAADIN/themes/sormas/sormas.scss | 7 +- .../webapp/VAADIN/themes/sormas/styles.css | 13 +- .../webapp/VAADIN/themes/sormas/styles.scss | 4 +- .../sormas/valo-components/valo-menu.scss | 2 +- 14 files changed, 53 insertions(+), 6013 deletions(-) create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/bootstrap-grid.min.css delete mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/bootstrap-reduced.css delete mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/font-awesome.min.css diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseCreateForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseCreateForm.java index 44f747c1d8a..0028aad8f3c 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseCreateForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseCreateForm.java @@ -3,7 +3,6 @@ import java.util.Arrays; import com.vaadin.ui.ComboBox; -import com.vaadin.ui.NativeSelect; import com.vaadin.ui.TextField; import de.symeda.sormas.api.Disease; @@ -45,7 +44,7 @@ public CaseCreateForm() { @Override protected void addFields() { - addField(CaseDataDto.DISEASE, NativeSelect.class); + addField(CaseDataDto.DISEASE, ComboBox.class); addField(CaseDataDto.DISEASE_DETAILS, TextField.class); addCustomField(FIRST_NAME, String.class, TextField.class); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java index 09bda34e41d..389307d28da 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java @@ -7,9 +7,9 @@ import com.vaadin.data.validator.RegexpValidator; import com.vaadin.data.validator.StringLengthValidator; import com.vaadin.shared.ui.label.ContentMode; +import com.vaadin.ui.AbstractSelect; import com.vaadin.ui.ComboBox; import com.vaadin.ui.Label; -import com.vaadin.ui.NativeSelect; import com.vaadin.ui.OptionGroup; import com.vaadin.ui.TextField; import com.vaadin.ui.Window; @@ -95,7 +95,7 @@ protected void addFields() { addField(CaseDataDto.CASE_CLASSIFICATION, OptionGroup.class); addField(CaseDataDto.INVESTIGATION_STATUS, OptionGroup.class); - NativeSelect diseaseField = addField(CaseDataDto.DISEASE, NativeSelect.class); + AbstractSelect diseaseField = addField(CaseDataDto.DISEASE, ComboBox.class); TextField diseaseDetailsField = addField(CaseDataDto.DISEASE_DETAILS, TextField.class); TextField healthFacilityDetails = addField(CaseDataDto.HEALTH_FACILITY_DETAILS, TextField.class); @@ -203,10 +203,10 @@ protected String createHtmlLayout() { private static class DiseaseChangeListener implements ValueChangeListener { - private NativeSelect diseaseField; + private AbstractSelect diseaseField; private Disease currentDisease; - DiseaseChangeListener(NativeSelect diseaseField, Disease currentDisease) { + DiseaseChangeListener(AbstractSelect diseaseField, Disease currentDisease) { this.diseaseField = diseaseField; this.currentDisease = currentDisease; } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/MapComponent.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/MapComponent.java index 7674d739e12..90a0a6dea5d 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/MapComponent.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/MapComponent.java @@ -429,7 +429,7 @@ private MapIcon(String imgName) { } public String getUrl() { - return "VAADIN/themes/sormastheme/mapicons/" + imgName + ".png"; + return "VAADIN/themes/sormas/mapicons/" + imgName + ".png"; }; } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonEditForm.java index 8fad802a928..685f47c12d4 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonEditForm.java @@ -12,7 +12,6 @@ import com.vaadin.ui.ComboBox; import com.vaadin.ui.DateField; import com.vaadin.ui.Field; -import com.vaadin.ui.NativeSelect; import com.vaadin.ui.TextField; import de.symeda.sormas.api.Disease; @@ -153,18 +152,18 @@ protected void addFields() { addField(PersonDto.APPROXIMATE_AGE, TextField.class); addField(PersonDto.APPROXIMATE_AGE_TYPE, ComboBox.class); - NativeSelect deathPlaceType = addField(PersonDto.DEATH_PLACE_TYPE, NativeSelect.class); + AbstractSelect deathPlaceType = addField(PersonDto.DEATH_PLACE_TYPE, ComboBox.class); deathPlaceType.setNullSelectionAllowed(true); TextField deathPlaceDesc = addField(PersonDto.DEATH_PLACE_DESCRIPTION, TextField.class); addField(PersonDto.BURIAL_DATE, DateField.class); TextField burialPlaceDesc = addField(PersonDto.BURIAL_PLACE_DESCRIPTION, TextField.class); - addField(PersonDto.BURIAL_CONDUCTOR, NativeSelect.class); + addField(PersonDto.BURIAL_CONDUCTOR, ComboBox.class); addField(PersonDto.ADDRESS, LocationEditForm.class).setCaption(null); addField(PersonDto.PHONE, TextField.class); addField(PersonDto.PHONE_OWNER, TextField.class); - addField(PersonDto.OCCUPATION_TYPE, NativeSelect.class); + addField(PersonDto.OCCUPATION_TYPE, ComboBox.class); addField(PersonDto.OCCUPATION_DETAILS, TextField.class); ComboBox facilityRegion = new ComboBox(); @@ -303,7 +302,7 @@ private void updateApproximateAge() { } private void toogleOccupationMetaFields() { - OccupationType type = (OccupationType) ((NativeSelect)getFieldGroup().getField(PersonDto.OCCUPATION_TYPE)).getValue(); + OccupationType type = (OccupationType) ((AbstractSelect)getFieldGroup().getField(PersonDto.OCCUPATION_TYPE)).getValue(); switch(type) { case BUSINESSMAN_WOMAN: case TRANSPORTER: @@ -338,7 +337,7 @@ private void toogleOccupationMetaFields() { private void toogleDeathAndBurialFields() { List deathAndBurialIds = Arrays.asList(PersonDto.DEATH_PLACE_TYPE, PersonDto.DEATH_PLACE_DESCRIPTION, PersonDto.BURIAL_DATE, PersonDto.BURIAL_PLACE_DESCRIPTION, PersonDto.BURIAL_CONDUCTOR); - PresentCondition type = (PresentCondition) ((NativeSelect)getFieldGroup().getField(PersonDto.PRESENT_CONDITION)).getValue(); + PresentCondition type = (PresentCondition) ((AbstractSelect)getFieldGroup().getField(PersonDto.PRESENT_CONDITION)).getValue(); switch (type) { case DEAD: setVisible(true, @@ -379,7 +378,7 @@ private void toogleDeathAndBurialFields() { } } - fillDeathAndBurialFields((NativeSelect)getField(PersonDto.DEATH_PLACE_TYPE), (TextField)getField(PersonDto.DEATH_PLACE_DESCRIPTION), (TextField)getField(PersonDto.BURIAL_PLACE_DESCRIPTION)); + fillDeathAndBurialFields((AbstractSelect)getField(PersonDto.DEATH_PLACE_TYPE), (TextField)getField(PersonDto.DEATH_PLACE_DESCRIPTION), (TextField)getField(PersonDto.BURIAL_PLACE_DESCRIPTION)); } private void fillFacilityFields() { @@ -403,7 +402,7 @@ private void fillFacilityFields() { } private void updateOccupationFieldCaptions() { - OccupationType type = (OccupationType) ((NativeSelect)getFieldGroup().getField(PersonDto.OCCUPATION_TYPE)).getValue(); + OccupationType type = (OccupationType) ((AbstractSelect)getFieldGroup().getField(PersonDto.OCCUPATION_TYPE)).getValue(); Field od = getFieldGroup().getField(PersonDto.OCCUPATION_DETAILS); switch(type) { case BUSINESSMAN_WOMAN: @@ -440,7 +439,7 @@ private void setItemCaptionsForMonths(AbstractSelect months) { months.setItemCaption(12, I18nProperties.getEnumCaption(Month.DECEMBER)); } - private void fillDeathAndBurialFields(NativeSelect deathPlaceType, TextField deathPlaceDesc, TextField burialPlaceDesc) { + private void fillDeathAndBurialFields(AbstractSelect deathPlaceType, TextField deathPlaceDesc, TextField burialPlaceDesc) { if (deathPlaceType.isVisible() && deathPlaceType.getValue() == null) { deathPlaceType.setValue(DeathPlaceType.OTHER); if (deathPlaceDesc.isVisible() && (deathPlaceDesc.getValue() == null || deathPlaceDesc.getValue().isEmpty())) { diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/ReportsView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/ReportsView.java index 29eac2a3f2a..d9dde3de7f6 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/ReportsView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/ReportsView.java @@ -4,11 +4,12 @@ import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.shared.ui.grid.HeightMode; +import com.vaadin.ui.AbstractSelect; import com.vaadin.ui.AbstractSelect.ItemCaptionMode; import com.vaadin.ui.Button; +import com.vaadin.ui.ComboBox; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; -import com.vaadin.ui.NativeSelect; import com.vaadin.ui.VerticalLayout; import de.symeda.sormas.api.utils.DateHelper; @@ -24,8 +25,8 @@ public class ReportsView extends AbstractView { private WeeklyReportGrid grid; private VerticalLayout gridLayout; - private NativeSelect yearFilter; - private NativeSelect epiWeekFilter; + private AbstractSelect yearFilter; + private AbstractSelect epiWeekFilter; public ReportsView() { setSizeFull(); @@ -68,7 +69,7 @@ public HorizontalLayout createFilterBar() { int year = prevEpiWeek.getYear(); int week = prevEpiWeek.getWeek(); - yearFilter = new NativeSelect(); + yearFilter = new ComboBox(); yearFilter.setWidth(200, Unit.PIXELS); yearFilter.addItems(DateHelper.getYearsToNow()); yearFilter.select(year); @@ -76,7 +77,7 @@ public HorizontalLayout createFilterBar() { yearFilter.setItemCaptionMode(ItemCaptionMode.ID_TOSTRING); filterLayout.addComponent(yearFilter); - epiWeekFilter = new NativeSelect(); + epiWeekFilter = new ComboBox(); epiWeekFilter.setWidth(200, Unit.PIXELS); epiWeekFilter.addItems(DateHelper.createWeeksList(year)); epiWeekFilter.select(week); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java index a3786529928..eb6f98e2231 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java @@ -19,7 +19,6 @@ import com.vaadin.ui.CustomLayout; import com.vaadin.ui.DateField; import com.vaadin.ui.Field; -import com.vaadin.ui.NativeSelect; import com.vaadin.ui.OptionGroup; import de.symeda.sormas.api.DataTransferObject; diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/LayoutUtil.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/LayoutUtil.java index 8ca5108c712..2acfbc01693 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/LayoutUtil.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/LayoutUtil.java @@ -168,7 +168,7 @@ public static String fluidRow(FluidColumn... columns) { public static String fluidRowCss(String cssClasses, FluidColumn... columns) { StringBuilder sb = new StringBuilder(); - sb.append("
"); return sb.toString(); - } - -// public static String escape(String stringToBeEscaped) { -// if (stringToBeEscaped == null) { -// return ""; -// } -// return StringEscapeUtils.escapeHtml4(stringToBeEscaped); -// } - + } - /** - * Erstellt eine "Drittel"-Spalte (span4). - */ public static FluidColumn oneOfThreeCol(String content) { return fluidColumnCss(null, 4, 0, content); } - /** - * Erstellt eine "Zwei-Drittel"-Spalte (span8). - */ public static FluidColumn twoOfThreeCol(String content) { return fluidColumnCss(null, 8, 0, content); } - /** - * Erstellt eine "Halb"-Spalte (span6). - */ public static FluidColumn oneOfTwoCol(String content) { return fluidColumnCss(null, 6, 0, content); } @@ -251,9 +234,6 @@ public static FluidColumn oneOfTwoCol(String cssClasses, String content) { return fluidColumnCss(cssClasses, 6, 0, content); } - /** - * Erstellt eine "Viertel"-Spalte (span3). - */ public static FluidColumn oneOfFourCol(String content) { return fluidColumnCss(null, 3, 0, content); } @@ -274,10 +254,10 @@ public FluidColumn(String cssClasses, int span, int offset, if (cssClasses != null || span > 0 || offset > 0) { sb.append(" class='"); if (span > 0) { - sb.append("span").append(span).append(' '); + sb.append("col-xs-").append(span).append(' '); } if (offset > 0) { - sb.append("offset").append(offset).append(' '); + sb.append("col-xs-offset-").append(offset).append(' '); } if (cssClasses != null) { sb.append(cssClasses); diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/bootstrap-grid.min.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/bootstrap-grid.min.css new file mode 100644 index 00000000000..edf81243c54 --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/bootstrap-grid.min.css @@ -0,0 +1,14 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2017 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! + * Generated using the Bootstrap Customizer (http://getbootstrap.com/docs/3.3/customize/?id=2be69f1368d75c043672c59325e7dd7f) + * Config saved to config.json and https://gist.github.com/2be69f1368d75c043672c59325e7dd7f + *//*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/bootstrap-reduced.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/bootstrap-reduced.css deleted file mode 100644 index e83c5a20d5a..00000000000 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/bootstrap-reduced.css +++ /dev/null @@ -1,5553 +0,0 @@ -/*! - * Bootstrap v2.3.2 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */ - -/*! - * Reduced: Hab alles rausgeschmissen, was sich mit Vaadin nicht vertr�gt. - * Martin Wahnschaffe - */ - -.clearfix { - *zoom: 1; -} - -.clearfix:before, -.clearfix:after { - display: table; - line-height: 0; - content: ""; -} - -.clearfix:after { - clear: both; -} - -.hide-text { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} - -.input-block-level { - display: block; - width: 100%; - min-height: 30px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -nav, -section { - display: block; -} - -audio, -canvas, -video { - display: inline-block; - *display: inline; - *zoom: 1; -} - -audio:not([controls]) { - display: none; -} - -html { - font-size: 100%; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} - -a:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -a:hover, -a:active { - outline: 0; -} - -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -img { - width: auto\9; - height: auto; - max-width: 100%; - vertical-align: middle; - border: 0; - -ms-interpolation-mode: bicubic; -} - -#map_canvas img, -.google-maps img { - max-width: none; -} - -button, -input, -select, -textarea { - margin: 0; - font-size: 100%; - vertical-align: middle; -} - -button, -input { - *overflow: visible; - line-height: normal; -} - -button::-moz-focus-inner, -input::-moz-focus-inner { - padding: 0; - border: 0; -} - -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; -} - -label, -select, -button, -input[type="button"], -input[type="reset"], -input[type="submit"], -input[type="radio"], -input[type="checkbox"] { - cursor: pointer; -} - -input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; -} - -input[type="search"]::-webkit-search-decoration, -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} - -textarea { - overflow: auto; - vertical-align: top; -} - -@media print { - * { - color: #000 !important; - text-shadow: none !important; - background: transparent !important; - box-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - .ir a:after, - a[href^="javascript:"]:after, - a[href^="#"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - @page { - margin: 0.5cm; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } -} - -.img-rounded { - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.img-polaroid { - padding: 4px; - background-color: #fff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); -} - -.img-circle { - -webkit-border-radius: 500px; - -moz-border-radius: 500px; - border-radius: 500px; -} - -.row { - margin-left: -20px; - *zoom: 1; -} - -.row:before, -.row:after { - display: table; - line-height: 0; - content: ""; -} - -.row:after { - clear: both; -} - -[class*="span"] { - float: left; - min-height: 1px; - margin-left: 20px; -} - -.container, -.navbar-static-top .container, -.navbar-fixed-top .container, -.navbar-fixed-bottom .container { - width: 940px; -} - -.span12 { - width: 940px; -} - -.span11 { - width: 860px; -} - -.span10 { - width: 780px; -} - -.span9 { - width: 700px; -} - -.span8 { - width: 620px; -} - -.span7 { - width: 540px; -} - -.span6 { - width: 460px; -} - -.span5 { - width: 380px; -} - -.span4 { - width: 300px; -} - -.span3 { - width: 220px; -} - -.span2 { - width: 140px; -} - -.span1 { - width: 60px; -} - -.offset12 { - margin-left: 980px; -} - -.offset11 { - margin-left: 900px; -} - -.offset10 { - margin-left: 820px; -} - -.offset9 { - margin-left: 740px; -} - -.offset8 { - margin-left: 660px; -} - -.offset7 { - margin-left: 580px; -} - -.offset6 { - margin-left: 500px; -} - -.offset5 { - margin-left: 420px; -} - -.offset4 { - margin-left: 340px; -} - -.offset3 { - margin-left: 260px; -} - -.offset2 { - margin-left: 180px; -} - -.offset1 { - margin-left: 100px; -} - -.row-fluid { - width: 100%; - *zoom: 1; -} - -.row-fluid:before, -.row-fluid:after { - display: table; - line-height: 0; - content: ""; -} - -.row-fluid:after { - clear: both; -} - -.row-fluid [class*="span"] { - display: block; - float: left; - width: 100%; - padding: 0 1px; /* Firefox Rundungs-cutoff umgehen */ - margin-left: 2.127659574468085%; - *margin-left: 2.074468085106383%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.row-fluid [class*="span"]:first-child { - margin-left: 0; -} - -.row-fluid .controls-row [class*="span"] + [class*="span"] { - margin-left: 2.127659574468085%; -} - -.row-fluid .span12 { - width: 100%; - *width: 99.94680851063829%; -} - -.row-fluid .span11 { - width: 91.48936170212765%; - *width: 91.43617021276594%; -} - -.row-fluid .span10 { - width: 82.97872340425532%; - *width: 82.92553191489361%; -} - -.row-fluid .span9 { - width: 74.46808510638297%; - *width: 74.41489361702126%; -} - -.row-fluid .span8 { - width: 65.95744680851064%; - *width: 65.90425531914893%; -} - -.row-fluid .span7 { - width: 57.44680851063829%; - *width: 57.39361702127659%; -} - -.row-fluid .span6 { - width: 48.93617021276595%; - *width: 48.88297872340425%; -} - -.row-fluid .span5 { - width: 40.42553191489362%; - *width: 40.37234042553192%; -} - -.row-fluid .span4 { - width: 31.914893617021278%; - *width: 31.861702127659576%; -} - -.row-fluid .span3 { - width: 23.404255319148934%; - *width: 23.351063829787233%; -} - -.row-fluid .span2 { - width: 14.893617021276595%; - *width: 14.840425531914894%; -} - -.row-fluid .span1 { - width: 6.382978723404255%; - *width: 6.329787234042553%; -} - -.row-fluid .offset12 { - margin-left: 104.25531914893617%; - *margin-left: 104.14893617021275%; -} - -.row-fluid .offset12:first-child { - margin-left: 102.12765957446808%; - *margin-left: 102.02127659574467%; -} - -.row-fluid .offset11 { - margin-left: 95.74468085106382%; - *margin-left: 95.6382978723404%; -} - -.row-fluid .offset11:first-child { - margin-left: 93.61702127659574%; - *margin-left: 93.51063829787232%; -} - -.row-fluid .offset10 { - margin-left: 87.23404255319149%; - *margin-left: 87.12765957446807%; -} - -.row-fluid .offset10:first-child { - margin-left: 85.1063829787234%; - *margin-left: 84.99999999999999%; -} - -.row-fluid .offset9 { - margin-left: 78.72340425531914%; - *margin-left: 78.61702127659572%; -} - -.row-fluid .offset9:first-child { - margin-left: 76.59574468085106%; - *margin-left: 76.48936170212764%; -} - -.row-fluid .offset8 { - margin-left: 70.2127659574468%; - *margin-left: 70.10638297872339%; -} - -.row-fluid .offset8:first-child { - margin-left: 68.08510638297872%; - *margin-left: 67.9787234042553%; -} - -.row-fluid .offset7 { - margin-left: 61.70212765957446%; - *margin-left: 61.59574468085106%; -} - -.row-fluid .offset7:first-child { - margin-left: 59.574468085106375%; - *margin-left: 59.46808510638297%; -} - -.row-fluid .offset6 { - margin-left: 53.191489361702125%; - *margin-left: 53.085106382978715%; -} - -.row-fluid .offset6:first-child { - margin-left: 51.063829787234035%; - *margin-left: 50.95744680851063%; -} - -.row-fluid .offset5 { - margin-left: 44.68085106382979%; - *margin-left: 44.57446808510638%; -} - -.row-fluid .offset5:first-child { - margin-left: 42.5531914893617%; - *margin-left: 42.4468085106383%; -} - -.row-fluid .offset4 { - margin-left: 36.170212765957444%; - *margin-left: 36.06382978723405%; -} - -.row-fluid .offset4:first-child { - margin-left: 34.04255319148936%; - *margin-left: 33.93617021276596%; -} - -.row-fluid .offset3 { - margin-left: 27.659574468085104%; - *margin-left: 27.5531914893617%; -} - -.row-fluid .offset3:first-child { - margin-left: 25.53191489361702%; - *margin-left: 25.425531914893618%; -} - -.row-fluid .offset2 { - margin-left: 19.148936170212764%; - *margin-left: 19.04255319148936%; -} - -.row-fluid .offset2:first-child { - margin-left: 17.02127659574468%; - *margin-left: 16.914893617021278%; -} - -.row-fluid .offset1 { - margin-left: 10.638297872340425%; - *margin-left: 10.53191489361702%; -} - -.row-fluid .offset1:first-child { - margin-left: 8.51063829787234%; - *margin-left: 8.404255319148938%; -} - -[class*="span"].hide, -.row-fluid [class*="span"].hide { - display: none; -} - -[class*="span"].pull-right, -.row-fluid [class*="span"].pull-right { - float: right; -} - -.container { - margin-right: auto; - margin-left: auto; - *zoom: 1; -} - -.container:before, -.container:after { - display: table; - line-height: 0; - content: ""; -} - -.container:after { - clear: both; -} - -.container-fluid { - padding-right: 20px; - padding-left: 20px; - *zoom: 1; -} - -.container-fluid:before, -.container-fluid:after { - display: table; - line-height: 0; - content: ""; -} - -.container-fluid:after { - clear: both; -} - -p { - margin: 0 0 10px; -} - -.lead { - margin-bottom: 20px; - font-size: 21px; - font-weight: 200; - line-height: 30px; -} - -small { - font-size: 85%; -} - -strong { - font-weight: bold; -} - -em { - font-style: italic; -} - -cite { - font-style: normal; -} - -.muted { - color: #999999; -} - -a.muted:hover, -a.muted:focus { - color: #808080; -} - -.text-warning { - color: #c09853; -} - -a.text-warning:hover, -a.text-warning:focus { - color: #a47e3c; -} - -.text-error { - color: #b94a48; -} - -a.text-error:hover, -a.text-error:focus { - color: #953b39; -} - -.text-info { - color: #3a87ad; -} - -a.text-info:hover, -a.text-info:focus { - color: #2d6987; -} - -.text-success { - color: #468847; -} - -a.text-success:hover, -a.text-success:focus { - color: #356635; -} - -.text-left { - text-align: left; -} - -.text-right { - text-align: right; -} - -.text-center { - text-align: center; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 10px 0; - font-family: inherit; - font-weight: bold; - line-height: 20px; - color: inherit; - text-rendering: optimizelegibility; -} - -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small { - font-weight: normal; - line-height: 1; - color: #999999; -} - -h1, -h2, -h3 { - line-height: 40px; -} - -h1 { - font-size: 38.5px; -} - -h2 { - font-size: 31.5px; -} - -h3 { - font-size: 24.5px; -} - -h4 { - font-size: 17.5px; -} - -h5 { - font-size: 14px; -} - -h6 { - font-size: 11.9px; -} - -h1 small { - font-size: 24.5px; -} - -h2 small { - font-size: 17.5px; -} - -h3 small { - font-size: 14px; -} - -h4 small { - font-size: 14px; -} - -.page-header { - padding-bottom: 9px; - margin: 20px 0 30px; - border-bottom: 1px solid #eeeeee; -} - -ul, -ol { - padding: 0; - margin: 0 0 10px 25px; -} - -ul ul, -ul ol, -ol ol, -ol ul { - margin-bottom: 0; -} - -li { - line-height: 20px; -} - -ul.unstyled, -ol.unstyled { - margin-left: 0; - list-style: none; -} - -ul.inline, -ol.inline { - margin-left: 0; - list-style: none; -} - -ul.inline > li, -ol.inline > li { - display: inline-block; - *display: inline; - padding-right: 5px; - padding-left: 5px; - *zoom: 1; -} - -dl { - margin-bottom: 20px; -} - -dt, -dd { - line-height: 20px; -} - -dt { - font-weight: bold; -} - -dd { - margin-left: 10px; -} - -.dl-horizontal { - *zoom: 1; -} - -.dl-horizontal:before, -.dl-horizontal:after { - display: table; - line-height: 0; - content: ""; -} - -.dl-horizontal:after { - clear: both; -} - -.dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; -} - -.dl-horizontal dd { - margin-left: 180px; -} - -hr { - margin: 20px 0; - border: 0; - border-top: 1px solid #eeeeee; - border-bottom: 1px solid #ffffff; -} - -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #999999; -} - -abbr.initialism { - font-size: 90%; - text-transform: uppercase; -} - -blockquote { - padding: 0 0 0 15px; - margin: 0 0 20px; - border-left: 5px solid #eeeeee; -} - -blockquote p { - margin-bottom: 0; - font-size: 17.5px; - font-weight: 300; - line-height: 1.25; -} - -blockquote small { - display: block; - line-height: 20px; - color: #999999; -} - -blockquote small:before { - content: '\2014 \00A0'; -} - -blockquote.pull-right { - float: right; - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #eeeeee; - border-left: 0; -} - -blockquote.pull-right p, -blockquote.pull-right small { - text-align: right; -} - -blockquote.pull-right small:before { - content: ''; -} - -blockquote.pull-right small:after { - content: '\00A0 \2014'; -} - -q:before, -q:after, -blockquote:before, -blockquote:after { - content: ""; -} - -address { - display: block; - margin-bottom: 20px; - font-style: normal; - line-height: 20px; -} - -code, -pre { - padding: 0 3px 2px; - font-family: Monaco, Menlo, Consolas, "Courier New", monospace; - font-size: 12px; - color: #333333; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -code { - padding: 2px 4px; - color: #d14; - white-space: nowrap; - background-color: #f7f7f9; - border: 1px solid #e1e1e8; -} - -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 20px; - word-break: break-all; - word-wrap: break-word; - white-space: pre; - white-space: pre-wrap; - background-color: #f5f5f5; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.15); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -pre.prettyprint { - margin-bottom: 20px; -} - -pre code { - padding: 0; - color: inherit; - white-space: pre; - white-space: pre-wrap; - background-color: transparent; - border: 0; -} - -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} - -form { - margin: 0 0 20px; -} - -fieldset { - padding: 0; - margin: 0; - border: 0; -} - -/* -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: 40px; - color: #333333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} - -legend small { - font-size: 15px; - color: #999999; -} -*/ - -label { - display: block; - margin-bottom: 5px; -} - -select, -textarea, -input[type="text"], -input[type="password"], -input[type="datetime"], -input[type="datetime-local"], -input[type="date"], -input[type="month"], -input[type="time"], -input[type="week"], -input[type="number"], -input[type="email"], -input[type="url"], -input[type="search"], -input[type="tel"], -input[type="color"], -.uneditable-input { - display: inline-block; - height: 20px; - padding: 4px 6px; - margin-bottom: 10px; - font-size: 14px; - line-height: 20px; - color: #555555; - vertical-align: middle; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -input, -textarea, -.uneditable-input { - width: 206px; -} - -textarea { - height: auto; -} - -textarea, -input[type="text"], -input[type="password"], -input[type="datetime"], -input[type="datetime-local"], -input[type="date"], -input[type="month"], -input[type="time"], -input[type="week"], -input[type="number"], -input[type="email"], -input[type="url"], -input[type="search"], -input[type="tel"], -input[type="color"], -.uneditable-input { - background-color: #ffffff; - border: 1px solid #cccccc; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; - -moz-transition: border linear 0.2s, box-shadow linear 0.2s; - -o-transition: border linear 0.2s, box-shadow linear 0.2s; - transition: border linear 0.2s, box-shadow linear 0.2s; -} - -textarea:focus, -input[type="text"]:focus, -input[type="password"]:focus, -input[type="datetime"]:focus, -input[type="datetime-local"]:focus, -input[type="date"]:focus, -input[type="month"]:focus, -input[type="time"]:focus, -input[type="week"]:focus, -input[type="number"]:focus, -input[type="email"]:focus, -input[type="url"]:focus, -input[type="search"]:focus, -input[type="tel"]:focus, -input[type="color"]:focus, -.uneditable-input:focus { - border-color: rgba(82, 168, 236, 0.8); - outline: 0; - outline: thin dotted \9; - /* IE6-9 */ - - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); -} - -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - *margin-top: 0; - line-height: normal; -} - -input[type="file"], -input[type="image"], -input[type="submit"], -input[type="reset"], -input[type="button"], -input[type="radio"], -input[type="checkbox"] { - width: auto; -} - -select, -input[type="file"] { - height: 30px; - /* In IE7, the height of the select element cannot be changed by height, only font-size */ - - *margin-top: 4px; - /* For IE7, add top margin to align select with labels */ - - line-height: 30px; -} - -select { - width: 220px; - background-color: #ffffff; - border: 1px solid #cccccc; -} - -select[multiple], -select[size] { - height: auto; -} - -select:focus, -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -.uneditable-input, -.uneditable-textarea { - color: #999999; - cursor: not-allowed; - background-color: #fcfcfc; - border-color: #cccccc; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); -} - -.uneditable-input { - overflow: hidden; - white-space: nowrap; -} - -.uneditable-textarea { - width: auto; - height: auto; -} - -input:-moz-placeholder, -textarea:-moz-placeholder { - color: #999999; -} - -input:-ms-input-placeholder, -textarea:-ms-input-placeholder { - color: #999999; -} - -input::-webkit-input-placeholder, -textarea::-webkit-input-placeholder { - color: #999999; -} - -.radio, -.checkbox { - min-height: 20px; - padding-left: 20px; -} - -.radio input[type="radio"], -.checkbox input[type="checkbox"] { - float: left; - margin-left: -20px; -} - -.controls > .radio:first-child, -.controls > .checkbox:first-child { - padding-top: 5px; -} - -.radio.inline, -.checkbox.inline { - display: inline-block; - padding-top: 5px; - margin-bottom: 0; - vertical-align: middle; -} - -.radio.inline + .radio.inline, -.checkbox.inline + .checkbox.inline { - margin-left: 10px; -} - -.input-mini { - width: 60px; -} - -.input-small { - width: 90px; -} - -.input-medium { - width: 150px; -} - -.input-large { - width: 210px; -} - -.input-xlarge { - width: 270px; -} - -.input-xxlarge { - width: 530px; -} - -input[class*="span"], -select[class*="span"], -textarea[class*="span"], -.uneditable-input[class*="span"], -.row-fluid input[class*="span"], -.row-fluid select[class*="span"], -.row-fluid textarea[class*="span"], -.row-fluid .uneditable-input[class*="span"] { - float: none; - margin-left: 0; -} - -.input-append input[class*="span"], -.input-append .uneditable-input[class*="span"], -.input-prepend input[class*="span"], -.input-prepend .uneditable-input[class*="span"], -.row-fluid input[class*="span"], -.row-fluid select[class*="span"], -.row-fluid textarea[class*="span"], -.row-fluid .uneditable-input[class*="span"], -.row-fluid .input-prepend [class*="span"], -.row-fluid .input-append [class*="span"] { - display: inline-block; -} - -input, -textarea, -.uneditable-input { - margin-left: 0; -} - -.controls-row [class*="span"] + [class*="span"] { - margin-left: 20px; -} - -input.span12, -textarea.span12, -.uneditable-input.span12 { - width: 926px; -} - -input.span11, -textarea.span11, -.uneditable-input.span11 { - width: 846px; -} - -input.span10, -textarea.span10, -.uneditable-input.span10 { - width: 766px; -} - -input.span9, -textarea.span9, -.uneditable-input.span9 { - width: 686px; -} - -input.span8, -textarea.span8, -.uneditable-input.span8 { - width: 606px; -} - -input.span7, -textarea.span7, -.uneditable-input.span7 { - width: 526px; -} - -input.span6, -textarea.span6, -.uneditable-input.span6 { - width: 446px; -} - -input.span5, -textarea.span5, -.uneditable-input.span5 { - width: 366px; -} - -input.span4, -textarea.span4, -.uneditable-input.span4 { - width: 286px; -} - -input.span3, -textarea.span3, -.uneditable-input.span3 { - width: 206px; -} - -input.span2, -textarea.span2, -.uneditable-input.span2 { - width: 126px; -} - -input.span1, -textarea.span1, -.uneditable-input.span1 { - width: 46px; -} - -.controls-row { - *zoom: 1; -} - -.controls-row:before, -.controls-row:after { - display: table; - line-height: 0; - content: ""; -} - -.controls-row:after { - clear: both; -} - -.controls-row [class*="span"], -.row-fluid .controls-row [class*="span"] { - float: left; -} - -.controls-row .checkbox[class*="span"], -.controls-row .radio[class*="span"] { - padding-top: 5px; -} - -input[disabled], -select[disabled], -textarea[disabled], -input[readonly], -select[readonly], -textarea[readonly] { - cursor: not-allowed; - background-color: #eeeeee; -} - -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"][readonly], -input[type="checkbox"][readonly] { - background-color: transparent; -} - -.control-group.warning .control-label, -.control-group.warning .help-block, -.control-group.warning .help-inline { - color: #c09853; -} - -.control-group.warning .checkbox, -.control-group.warning .radio, -.control-group.warning input, -.control-group.warning select, -.control-group.warning textarea { - color: #c09853; -} - -.control-group.warning input, -.control-group.warning select, -.control-group.warning textarea { - border-color: #c09853; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.control-group.warning input:focus, -.control-group.warning select:focus, -.control-group.warning textarea:focus { - border-color: #a47e3c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; -} - -.control-group.warning .input-prepend .add-on, -.control-group.warning .input-append .add-on { - color: #c09853; - background-color: #fcf8e3; - border-color: #c09853; -} - -.control-group.error .control-label, -.control-group.error .help-block, -.control-group.error .help-inline { - color: #b94a48; -} - -.control-group.error .checkbox, -.control-group.error .radio, -.control-group.error input, -.control-group.error select, -.control-group.error textarea { - color: #b94a48; -} - -.control-group.error input, -.control-group.error select, -.control-group.error textarea { - border-color: #b94a48; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.control-group.error input:focus, -.control-group.error select:focus, -.control-group.error textarea:focus { - border-color: #953b39; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; -} - -.control-group.error .input-prepend .add-on, -.control-group.error .input-append .add-on { - color: #b94a48; - background-color: #f2dede; - border-color: #b94a48; -} - -.control-group.success .control-label, -.control-group.success .help-block, -.control-group.success .help-inline { - color: #468847; -} - -.control-group.success .checkbox, -.control-group.success .radio, -.control-group.success input, -.control-group.success select, -.control-group.success textarea { - color: #468847; -} - -.control-group.success input, -.control-group.success select, -.control-group.success textarea { - border-color: #468847; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.control-group.success input:focus, -.control-group.success select:focus, -.control-group.success textarea:focus { - border-color: #356635; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; -} - -.control-group.success .input-prepend .add-on, -.control-group.success .input-append .add-on { - color: #468847; - background-color: #dff0d8; - border-color: #468847; -} - -.control-group.info .control-label, -.control-group.info .help-block, -.control-group.info .help-inline { - color: #3a87ad; -} - -.control-group.info .checkbox, -.control-group.info .radio, -.control-group.info input, -.control-group.info select, -.control-group.info textarea { - color: #3a87ad; -} - -.control-group.info input, -.control-group.info select, -.control-group.info textarea { - border-color: #3a87ad; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} - -.control-group.info input:focus, -.control-group.info select:focus, -.control-group.info textarea:focus { - border-color: #2d6987; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; -} - -.control-group.info .input-prepend .add-on, -.control-group.info .input-append .add-on { - color: #3a87ad; - background-color: #d9edf7; - border-color: #3a87ad; -} - -input:focus:invalid, -textarea:focus:invalid, -select:focus:invalid { - color: #b94a48; - border-color: #ee5f5b; -} - -input:focus:invalid:focus, -textarea:focus:invalid:focus, -select:focus:invalid:focus { - border-color: #e9322d; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; - box-shadow: 0 0 6px #f8b9b7; -} - -.form-actions { - padding: 19px 20px 20px; - margin-top: 20px; - margin-bottom: 20px; - background-color: #f5f5f5; - border-top: 1px solid #e5e5e5; - *zoom: 1; -} - -.form-actions:before, -.form-actions:after { - display: table; - line-height: 0; - content: ""; -} - -.form-actions:after { - clear: both; -} - -.help-block, -.help-inline { - color: #595959; -} - -.help-block { - display: block; - margin-bottom: 10px; -} - -.help-inline { - display: inline-block; - *display: inline; - padding-left: 5px; - vertical-align: middle; - *zoom: 1; -} - -.input-append, -.input-prepend { - display: inline-block; - margin-bottom: 10px; - font-size: 0; - white-space: nowrap; - vertical-align: middle; -} - -.input-append input, -.input-prepend input, -.input-append select, -.input-prepend select, -.input-append .uneditable-input, -.input-prepend .uneditable-input, -.input-append .dropdown-menu, -.input-prepend .dropdown-menu, -.input-append .popover, -.input-prepend .popover { - font-size: 14px; -} - -.input-append input, -.input-prepend input, -.input-append select, -.input-prepend select, -.input-append .uneditable-input, -.input-prepend .uneditable-input { - position: relative; - margin-bottom: 0; - *margin-left: 0; - vertical-align: top; - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.input-append input:focus, -.input-prepend input:focus, -.input-append select:focus, -.input-prepend select:focus, -.input-append .uneditable-input:focus, -.input-prepend .uneditable-input:focus { - z-index: 2; -} - -.input-append .add-on, -.input-prepend .add-on { - display: inline-block; - width: auto; - height: 20px; - min-width: 16px; - padding: 4px 5px; - font-size: 14px; - font-weight: normal; - line-height: 20px; - text-align: center; - text-shadow: 0 1px 0 #ffffff; - background-color: #eeeeee; - border: 1px solid #ccc; -} - -.input-append .add-on, -.input-prepend .add-on, -.input-append .btn, -.input-prepend .btn, -.input-append .btn-group > .dropdown-toggle, -.input-prepend .btn-group > .dropdown-toggle { - vertical-align: top; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.input-append .active, -.input-prepend .active { - background-color: #a9dba9; - border-color: #46a546; -} - -.input-prepend .add-on, -.input-prepend .btn { - margin-right: -1px; -} - -.input-prepend .add-on:first-child, -.input-prepend .btn:first-child { - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} - -.input-append input, -.input-append select, -.input-append .uneditable-input { - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} - -.input-append input + .btn-group .btn:last-child, -.input-append select + .btn-group .btn:last-child, -.input-append .uneditable-input + .btn-group .btn:last-child { - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.input-append .add-on, -.input-append .btn, -.input-append .btn-group { - margin-left: -1px; -} - -.input-append .add-on:last-child, -.input-append .btn:last-child, -.input-append .btn-group:last-child > .dropdown-toggle { - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.input-prepend.input-append input, -.input-prepend.input-append select, -.input-prepend.input-append .uneditable-input { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.input-prepend.input-append input + .btn-group .btn, -.input-prepend.input-append select + .btn-group .btn, -.input-prepend.input-append .uneditable-input + .btn-group .btn { - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.input-prepend.input-append .add-on:first-child, -.input-prepend.input-append .btn:first-child { - margin-right: -1px; - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} - -.input-prepend.input-append .add-on:last-child, -.input-prepend.input-append .btn:last-child { - margin-left: -1px; - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.input-prepend.input-append .btn-group:first-child { - margin-left: 0; -} - -input.search-query { - padding-right: 14px; - padding-right: 4px \9; - padding-left: 14px; - padding-left: 4px \9; - /* IE7-8 doesn't have border-radius, so don't indent the padding */ - - margin-bottom: 0; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} - -/* Allow for input prepend/append in search forms */ - -.form-search .input-append .search-query, -.form-search .input-prepend .search-query { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.form-search .input-append .search-query { - -webkit-border-radius: 14px 0 0 14px; - -moz-border-radius: 14px 0 0 14px; - border-radius: 14px 0 0 14px; -} - -.form-search .input-append .btn { - -webkit-border-radius: 0 14px 14px 0; - -moz-border-radius: 0 14px 14px 0; - border-radius: 0 14px 14px 0; -} - -.form-search .input-prepend .search-query { - -webkit-border-radius: 0 14px 14px 0; - -moz-border-radius: 0 14px 14px 0; - border-radius: 0 14px 14px 0; -} - -.form-search .input-prepend .btn { - -webkit-border-radius: 14px 0 0 14px; - -moz-border-radius: 14px 0 0 14px; - border-radius: 14px 0 0 14px; -} - -.form-search input, -.form-inline input, -.form-horizontal input, -.form-search textarea, -.form-inline textarea, -.form-horizontal textarea, -.form-search select, -.form-inline select, -.form-horizontal select, -.form-search .help-inline, -.form-inline .help-inline, -.form-horizontal .help-inline, -.form-search .uneditable-input, -.form-inline .uneditable-input, -.form-horizontal .uneditable-input, -.form-search .input-prepend, -.form-inline .input-prepend, -.form-horizontal .input-prepend, -.form-search .input-append, -.form-inline .input-append, -.form-horizontal .input-append { - display: inline-block; - *display: inline; - margin-bottom: 0; - vertical-align: middle; - *zoom: 1; -} - -.form-search .hide, -.form-inline .hide, -.form-horizontal .hide { - display: none; -} - -.form-search label, -.form-inline label, -.form-search .btn-group, -.form-inline .btn-group { - display: inline-block; -} - -.form-search .input-append, -.form-inline .input-append, -.form-search .input-prepend, -.form-inline .input-prepend { - margin-bottom: 0; -} - -.form-search .radio, -.form-search .checkbox, -.form-inline .radio, -.form-inline .checkbox { - padding-left: 0; - margin-bottom: 0; - vertical-align: middle; -} - -.form-search .radio input[type="radio"], -.form-search .checkbox input[type="checkbox"], -.form-inline .radio input[type="radio"], -.form-inline .checkbox input[type="checkbox"] { - float: left; - margin-right: 3px; - margin-left: 0; -} - -.control-group { - margin-bottom: 10px; -} - -legend + .control-group { - margin-top: 20px; - -webkit-margin-top-collapse: separate; -} - -.form-horizontal .control-group { - margin-bottom: 20px; - *zoom: 1; -} - -.form-horizontal .control-group:before, -.form-horizontal .control-group:after { - display: table; - line-height: 0; - content: ""; -} - -.form-horizontal .control-group:after { - clear: both; -} - -.form-horizontal .control-label { - float: left; - width: 160px; - padding-top: 5px; - text-align: right; -} - -.form-horizontal .controls { - *display: inline-block; - *padding-left: 20px; - margin-left: 180px; - *margin-left: 0; -} - -.form-horizontal .controls:first-child { - *padding-left: 180px; -} - -.form-horizontal .help-block { - margin-bottom: 0; -} - -.form-horizontal input + .help-block, -.form-horizontal select + .help-block, -.form-horizontal textarea + .help-block, -.form-horizontal .uneditable-input + .help-block, -.form-horizontal .input-prepend + .help-block, -.form-horizontal .input-append + .help-block { - margin-top: 10px; -} - -.form-horizontal .form-actions { - padding-left: 180px; -} - -table { - max-width: 100%; - background-color: transparent; - border-collapse: collapse; - border-spacing: 0; -} - -.table { - width: 100%; - margin-bottom: 20px; -} - -.table th, -.table td { - padding: 8px; - line-height: 20px; - text-align: left; - vertical-align: top; - border-top: 1px solid #dddddd; -} - -.table th { - font-weight: bold; -} - -.table thead th { - vertical-align: bottom; -} - -.table caption + thead tr:first-child th, -.table caption + thead tr:first-child td, -.table colgroup + thead tr:first-child th, -.table colgroup + thead tr:first-child td, -.table thead:first-child tr:first-child th, -.table thead:first-child tr:first-child td { - border-top: 0; -} - -.table tbody + tbody { - border-top: 2px solid #dddddd; -} - -.table .table { - background-color: #ffffff; -} - -.table-condensed th, -.table-condensed td { - padding: 4px 5px; -} - -.table-bordered { - border: 1px solid #dddddd; - border-collapse: separate; - *border-collapse: collapse; - border-left: 0; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.table-bordered th, -.table-bordered td { - border-left: 1px solid #dddddd; -} - -.table-bordered caption + thead tr:first-child th, -.table-bordered caption + tbody tr:first-child th, -.table-bordered caption + tbody tr:first-child td, -.table-bordered colgroup + thead tr:first-child th, -.table-bordered colgroup + tbody tr:first-child th, -.table-bordered colgroup + tbody tr:first-child td, -.table-bordered thead:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child td { - border-top: 0; -} - -.table-bordered thead:first-child tr:first-child > th:first-child, -.table-bordered tbody:first-child tr:first-child > td:first-child, -.table-bordered tbody:first-child tr:first-child > th:first-child { - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; -} - -.table-bordered thead:first-child tr:first-child > th:last-child, -.table-bordered tbody:first-child tr:first-child > td:last-child, -.table-bordered tbody:first-child tr:first-child > th:last-child { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; -} - -.table-bordered thead:last-child tr:last-child > th:first-child, -.table-bordered tbody:last-child tr:last-child > td:first-child, -.table-bordered tbody:last-child tr:last-child > th:first-child, -.table-bordered tfoot:last-child tr:last-child > td:first-child, -.table-bordered tfoot:last-child tr:last-child > th:first-child { - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; -} - -.table-bordered thead:last-child tr:last-child > th:last-child, -.table-bordered tbody:last-child tr:last-child > td:last-child, -.table-bordered tbody:last-child tr:last-child > th:last-child, -.table-bordered tfoot:last-child tr:last-child > td:last-child, -.table-bordered tfoot:last-child tr:last-child > th:last-child { - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; -} - -.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { - -webkit-border-bottom-left-radius: 0; - border-bottom-left-radius: 0; - -moz-border-radius-bottomleft: 0; -} - -.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { - -webkit-border-bottom-right-radius: 0; - border-bottom-right-radius: 0; - -moz-border-radius-bottomright: 0; -} - -.table-bordered caption + thead tr:first-child th:first-child, -.table-bordered caption + tbody tr:first-child td:first-child, -.table-bordered colgroup + thead tr:first-child th:first-child, -.table-bordered colgroup + tbody tr:first-child td:first-child { - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; -} - -.table-bordered caption + thead tr:first-child th:last-child, -.table-bordered caption + tbody tr:first-child td:last-child, -.table-bordered colgroup + thead tr:first-child th:last-child, -.table-bordered colgroup + tbody tr:first-child td:last-child { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; -} - -.table-striped tbody > tr:nth-child(odd) > td, -.table-striped tbody > tr:nth-child(odd) > th { - background-color: #f9f9f9; -} - -.table-hover tbody tr:hover > td, -.table-hover tbody tr:hover > th { - background-color: #f5f5f5; -} - -table td[class*="span"], -table th[class*="span"], -.row-fluid table td[class*="span"], -.row-fluid table th[class*="span"] { - display: table-cell; - float: none; - margin-left: 0; -} - -.table td.span1, -.table th.span1 { - float: none; - width: 44px; - margin-left: 0; -} - -.table td.span2, -.table th.span2 { - float: none; - width: 124px; - margin-left: 0; -} - -.table td.span3, -.table th.span3 { - float: none; - width: 204px; - margin-left: 0; -} - -.table td.span4, -.table th.span4 { - float: none; - width: 284px; - margin-left: 0; -} - -.table td.span5, -.table th.span5 { - float: none; - width: 364px; - margin-left: 0; -} - -.table td.span6, -.table th.span6 { - float: none; - width: 444px; - margin-left: 0; -} - -.table td.span7, -.table th.span7 { - float: none; - width: 524px; - margin-left: 0; -} - -.table td.span8, -.table th.span8 { - float: none; - width: 604px; - margin-left: 0; -} - -.table td.span9, -.table th.span9 { - float: none; - width: 684px; - margin-left: 0; -} - -.table td.span10, -.table th.span10 { - float: none; - width: 764px; - margin-left: 0; -} - -.table td.span11, -.table th.span11 { - float: none; - width: 844px; - margin-left: 0; -} - -.table td.span12, -.table th.span12 { - float: none; - width: 924px; - margin-left: 0; -} - -.table tbody tr.success > td { - background-color: #dff0d8; -} - -.table tbody tr.error > td { - background-color: #f2dede; -} - -.table tbody tr.warning > td { - background-color: #fcf8e3; -} - -.table tbody tr.info > td { - background-color: #d9edf7; -} - -.table-hover tbody tr.success:hover > td { - background-color: #d0e9c6; -} - -.table-hover tbody tr.error:hover > td { - background-color: #ebcccc; -} - -.table-hover tbody tr.warning:hover > td { - background-color: #faf2cc; -} - -.table-hover tbody tr.info:hover > td { - background-color: #c4e3f3; -} - -.dropup, -.dropdown { - position: relative; -} - -.dropdown-toggle { - *margin-bottom: -3px; -} - -.dropdown-toggle:active, -.open .dropdown-toggle { - outline: 0; -} - -.caret { - display: inline-block; - width: 0; - height: 0; - vertical-align: top; - border-top: 4px solid #000000; - border-right: 4px solid transparent; - border-left: 4px solid transparent; - content: ""; -} - -.dropdown .caret { - margin-top: 8px; - margin-left: 2px; -} - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - list-style: none; - background-color: #ffffff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - *border-right-width: 2px; - *border-bottom-width: 2px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.dropdown-menu .divider { - *width: 100%; - height: 1px; - margin: 9px 1px; - *margin: -5px 0 5px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; -} - -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 20px; - color: #333333; - white-space: nowrap; -} - -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus, -.dropdown-submenu:hover > a, -.dropdown-submenu:focus > a { - color: #ffffff; - text-decoration: none; - background-color: #0081c2; - background-image: -moz-linear-gradient(top, #0088cc, #0077b3); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); - background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); - background-image: -o-linear-gradient(top, #0088cc, #0077b3); - background-image: linear-gradient(to bottom, #0088cc, #0077b3); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); -} - -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #ffffff; - text-decoration: none; - background-color: #0081c2; - background-image: -moz-linear-gradient(top, #0088cc, #0077b3); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); - background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); - background-image: -o-linear-gradient(top, #0088cc, #0077b3); - background-image: linear-gradient(to bottom, #0088cc, #0077b3); - background-repeat: repeat-x; - outline: 0; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); -} - -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #999999; -} - -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - cursor: default; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.open { - *z-index: 1000; -} - -.open > .dropdown-menu { - display: block; -} - -.dropdown-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 990; -} - -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} - -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px solid #000000; - content: ""; -} - -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} - -.dropdown-submenu { - position: relative; -} - -.dropdown-submenu > .dropdown-menu { - top: 0; - left: 100%; - margin-top: -6px; - margin-left: -1px; - -webkit-border-radius: 0 6px 6px 6px; - -moz-border-radius: 0 6px 6px 6px; - border-radius: 0 6px 6px 6px; -} - -.dropdown-submenu:hover > .dropdown-menu { - display: block; -} - -.dropup .dropdown-submenu > .dropdown-menu { - top: auto; - bottom: 0; - margin-top: 0; - margin-bottom: -2px; - -webkit-border-radius: 5px 5px 5px 0; - -moz-border-radius: 5px 5px 5px 0; - border-radius: 5px 5px 5px 0; -} - -.dropdown-submenu > a:after { - display: block; - float: right; - width: 0; - height: 0; - margin-top: 5px; - margin-right: -10px; - border-color: transparent; - border-left-color: #cccccc; - border-style: solid; - border-width: 5px 0 5px 5px; - content: " "; -} - -.dropdown-submenu:hover > a:after { - border-left-color: #ffffff; -} - -.dropdown-submenu.pull-left { - float: none; -} - -.dropdown-submenu.pull-left > .dropdown-menu { - left: -100%; - margin-left: 10px; - -webkit-border-radius: 6px 0 6px 6px; - -moz-border-radius: 6px 0 6px 6px; - border-radius: 6px 0 6px 6px; -} - -.dropdown .dropdown-menu .nav-header { - padding-right: 20px; - padding-left: 20px; -} - -.typeahead { - z-index: 1051; - margin-top: 2px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} - -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} - -.well-large { - padding: 24px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.well-small { - padding: 9px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -moz-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} - -.fade.in { - opacity: 1; -} - -.collapse { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition: height 0.35s ease; - -moz-transition: height 0.35s ease; - -o-transition: height 0.35s ease; - transition: height 0.35s ease; -} - -.collapse.in { - height: auto; -} - -.close { - float: right; - font-size: 20px; - font-weight: bold; - line-height: 20px; - color: #000000; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); -} - -.close:hover, -.close:focus { - color: #000000; - text-decoration: none; - cursor: pointer; - opacity: 0.4; - filter: alpha(opacity=40); -} - -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} - -.btn { - display: inline-block; - *display: inline; - padding: 4px 12px; - margin-bottom: 0; - *margin-left: .3em; - font-size: 14px; - line-height: 20px; - color: #333333; - text-align: center; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - vertical-align: middle; - cursor: pointer; - background-color: #f5f5f5; - *background-color: #e6e6e6; - background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); - background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); - background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); - background-repeat: repeat-x; - border: 1px solid #cccccc; - *border: 0; - border-color: #e6e6e6 #e6e6e6 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - border-bottom-color: #b3b3b3; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - *zoom: 1; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn:hover, -.btn:focus, -.btn:active, -.btn.active, -.btn.disabled, -.btn[disabled] { - color: #333333; - background-color: #e6e6e6; - *background-color: #d9d9d9; -} - -.btn:active, -.btn.active { - background-color: #cccccc \9; -} - -.btn:first-child { - *margin-left: 0; -} - -.btn:hover, -.btn:focus { - color: #333333; - text-decoration: none; - background-position: 0 -15px; - -webkit-transition: background-position 0.1s linear; - -moz-transition: background-position 0.1s linear; - -o-transition: background-position 0.1s linear; - transition: background-position 0.1s linear; -} - -.btn:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} - -.btn.active, -.btn:active { - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn.disabled, -.btn[disabled] { - cursor: default; - background-image: none; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} - -.btn-large { - padding: 11px 19px; - font-size: 17.5px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.btn-large [class^="icon-"], -.btn-large [class*=" icon-"] { - margin-top: 4px; -} - -.btn-small { - padding: 2px 10px; - font-size: 11.9px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.btn-small [class^="icon-"], -.btn-small [class*=" icon-"] { - margin-top: 0; -} - -.btn-mini [class^="icon-"], -.btn-mini [class*=" icon-"] { - margin-top: -1px; -} - -.btn-mini { - padding: 0 6px; - font-size: 10.5px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.btn-block { - display: block; - width: 100%; - padding-right: 0; - padding-left: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.btn-block + .btn-block { - margin-top: 5px; -} - -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} - -.btn-primary.active, -.btn-warning.active, -.btn-danger.active, -.btn-success.active, -.btn-info.active, -.btn-inverse.active { - color: rgba(255, 255, 255, 0.75); -} - -.btn-primary { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #006dcc; - *background-color: #0044cc; - background-image: -moz-linear-gradient(top, #0088cc, #0044cc); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); - background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); - background-image: -o-linear-gradient(top, #0088cc, #0044cc); - background-image: linear-gradient(to bottom, #0088cc, #0044cc); - background-repeat: repeat-x; - border-color: #0044cc #0044cc #002a80; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-primary:hover, -.btn-primary:focus, -.btn-primary:active, -.btn-primary.active, -.btn-primary.disabled, -.btn-primary[disabled] { - color: #ffffff; - background-color: #0044cc; - *background-color: #003bb3; -} - -.btn-primary:active, -.btn-primary.active { - background-color: #003399 \9; -} - -.btn-warning { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #faa732; - *background-color: #f89406; - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(to bottom, #fbb450, #f89406); - background-repeat: repeat-x; - border-color: #f89406 #f89406 #ad6704; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-warning:hover, -.btn-warning:focus, -.btn-warning:active, -.btn-warning.active, -.btn-warning.disabled, -.btn-warning[disabled] { - color: #ffffff; - background-color: #f89406; - *background-color: #df8505; -} - -.btn-warning:active, -.btn-warning.active { - background-color: #c67605 \9; -} - -.btn-danger { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #da4f49; - *background-color: #bd362f; - background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); - background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); - background-repeat: repeat-x; - border-color: #bd362f #bd362f #802420; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-danger:hover, -.btn-danger:focus, -.btn-danger:active, -.btn-danger.active, -.btn-danger.disabled, -.btn-danger[disabled] { - color: #ffffff; - background-color: #bd362f; - *background-color: #a9302a; -} - -.btn-danger:active, -.btn-danger.active { - background-color: #942a25 \9; -} - -.btn-success { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #5bb75b; - *background-color: #51a351; - background-image: -moz-linear-gradient(top, #62c462, #51a351); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); - background-image: -webkit-linear-gradient(top, #62c462, #51a351); - background-image: -o-linear-gradient(top, #62c462, #51a351); - background-image: linear-gradient(to bottom, #62c462, #51a351); - background-repeat: repeat-x; - border-color: #51a351 #51a351 #387038; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-success:hover, -.btn-success:focus, -.btn-success:active, -.btn-success.active, -.btn-success.disabled, -.btn-success[disabled] { - color: #ffffff; - background-color: #51a351; - *background-color: #499249; -} - -.btn-success:active, -.btn-success.active { - background-color: #408140 \9; -} - -.btn-info { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #49afcd; - *background-color: #2f96b4; - background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); - background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); - background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); - background-repeat: repeat-x; - border-color: #2f96b4 #2f96b4 #1f6377; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-info:hover, -.btn-info:focus, -.btn-info:active, -.btn-info.active, -.btn-info.disabled, -.btn-info[disabled] { - color: #ffffff; - background-color: #2f96b4; - *background-color: #2a85a0; -} - -.btn-info:active, -.btn-info.active { - background-color: #24748c \9; -} - -.btn-inverse { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #363636; - *background-color: #222222; - background-image: -moz-linear-gradient(top, #444444, #222222); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); - background-image: -webkit-linear-gradient(top, #444444, #222222); - background-image: -o-linear-gradient(top, #444444, #222222); - background-image: linear-gradient(to bottom, #444444, #222222); - background-repeat: repeat-x; - border-color: #222222 #222222 #000000; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.btn-inverse:hover, -.btn-inverse:focus, -.btn-inverse:active, -.btn-inverse.active, -.btn-inverse.disabled, -.btn-inverse[disabled] { - color: #ffffff; - background-color: #222222; - *background-color: #151515; -} - -.btn-inverse:active, -.btn-inverse.active { - background-color: #080808 \9; -} - -button.btn, -input[type="submit"].btn { - *padding-top: 3px; - *padding-bottom: 3px; -} - -button.btn::-moz-focus-inner, -input[type="submit"].btn::-moz-focus-inner { - padding: 0; - border: 0; -} - -button.btn.btn-large, -input[type="submit"].btn.btn-large { - *padding-top: 7px; - *padding-bottom: 7px; -} - -button.btn.btn-small, -input[type="submit"].btn.btn-small { - *padding-top: 3px; - *padding-bottom: 3px; -} - -button.btn.btn-mini, -input[type="submit"].btn.btn-mini { - *padding-top: 1px; - *padding-bottom: 1px; -} - -.btn-link, -.btn-link:active, -.btn-link[disabled] { - background-color: transparent; - background-image: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} - -.btn-link { - /*color: #0088cc;*/ - cursor: pointer; - text-decoration: underline; - border-color: transparent; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.btn-link:active, -.btn-link[disabled] { - text-decoration: none; -} - -.btn-link:hover, -.btn-link:focus { - color: #005580; - text-decoration: underline; - background-color: transparent; -} - -.btn-link[disabled]:hover, -.btn-link[disabled]:focus { - color: #333333; - text-decoration: none; -} - -.btn-link.active, -.btn-link.active:hover, -.btn-link.active:focus, -.btn-link[disabled].active:hover, -.btn-link[disabled].active:focus, -.btn-link:active { - color: #3992be; -} - -.btn-group { - position: relative; - display: inline-block; - *display: inline; - *margin-left: .3em; - font-size: 0; - white-space: nowrap; - vertical-align: middle; - *zoom: 1; -} - -.btn-group:first-child { - *margin-left: 0; -} - -.btn-group + .btn-group { - margin-left: 5px; -} - -.btn-toolbar { - margin-top: 10px; - margin-bottom: 10px; - font-size: 0; -} - -.btn-toolbar > .btn + .btn, -.btn-toolbar > .btn-group + .btn, -.btn-toolbar > .btn + .btn-group { - margin-left: 5px; -} - -.btn-group > .btn { - position: relative; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.btn-group > .btn + .btn { - margin-left: -1px; -} - -.btn-group > .btn, -.btn-group > .dropdown-menu, -.btn-group > .popover { - font-size: 14px; -} - -.btn-group > .btn-mini { - font-size: 10.5px; -} - -.btn-group > .btn-small { - font-size: 11.9px; -} - -.btn-group > .btn-large { - font-size: 17.5px; -} - -.btn-group > .btn:first-child { - margin-left: 0; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-topleft: 4px; -} - -.btn-group > .btn:last-child, -.btn-group > .dropdown-toggle { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-bottomright: 4px; -} - -.btn-group > .btn.large:first-child { - margin-left: 0; - -webkit-border-bottom-left-radius: 6px; - border-bottom-left-radius: 6px; - -webkit-border-top-left-radius: 6px; - border-top-left-radius: 6px; - -moz-border-radius-bottomleft: 6px; - -moz-border-radius-topleft: 6px; -} - -.btn-group > .btn.large:last-child, -.btn-group > .large.dropdown-toggle { - -webkit-border-top-right-radius: 6px; - border-top-right-radius: 6px; - -webkit-border-bottom-right-radius: 6px; - border-bottom-right-radius: 6px; - -moz-border-radius-topright: 6px; - -moz-border-radius-bottomright: 6px; -} - -.btn-group > .btn:hover, -.btn-group > .btn:focus, -.btn-group > .btn:active, -.btn-group > .btn.active { - z-index: 2; -} - -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} - -.btn-group > .btn + .dropdown-toggle { - *padding-top: 5px; - padding-right: 8px; - *padding-bottom: 5px; - padding-left: 8px; - -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn-group > .btn-mini + .dropdown-toggle { - *padding-top: 2px; - padding-right: 5px; - *padding-bottom: 2px; - padding-left: 5px; -} - -.btn-group > .btn-small + .dropdown-toggle { - *padding-top: 5px; - *padding-bottom: 4px; -} - -.btn-group > .btn-large + .dropdown-toggle { - *padding-top: 7px; - padding-right: 12px; - *padding-bottom: 7px; - padding-left: 12px; -} - -.btn-group.open .dropdown-toggle { - background-image: none; - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.btn-group.open .btn.dropdown-toggle { - background-color: #e6e6e6; -} - -.btn-group.open .btn-primary.dropdown-toggle { - background-color: #0044cc; -} - -.btn-group.open .btn-warning.dropdown-toggle { - background-color: #f89406; -} - -.btn-group.open .btn-danger.dropdown-toggle { - background-color: #bd362f; -} - -.btn-group.open .btn-success.dropdown-toggle { - background-color: #51a351; -} - -.btn-group.open .btn-info.dropdown-toggle { - background-color: #2f96b4; -} - -.btn-group.open .btn-inverse.dropdown-toggle { - background-color: #222222; -} - -.btn .caret { - margin-top: 8px; - margin-left: 0; -} - -.btn-large .caret { - margin-top: 6px; -} - -.btn-large .caret { - border-top-width: 5px; - border-right-width: 5px; - border-left-width: 5px; -} - -.btn-mini .caret, -.btn-small .caret { - margin-top: 8px; -} - -.dropup .btn-large .caret { - border-bottom-width: 5px; -} - -.btn-primary .caret, -.btn-warning .caret, -.btn-danger .caret, -.btn-info .caret, -.btn-success .caret, -.btn-inverse .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} - -.btn-group-vertical { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; -} - -.btn-group-vertical > .btn { - display: block; - float: none; - max-width: 100%; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.btn-group-vertical > .btn + .btn { - margin-top: -1px; - margin-left: 0; -} - -.btn-group-vertical > .btn:first-child { - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} - -.btn-group-vertical > .btn:last-child { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} - -.btn-group-vertical > .btn-large:first-child { - -webkit-border-radius: 6px 6px 0 0; - -moz-border-radius: 6px 6px 0 0; - border-radius: 6px 6px 0 0; -} - -.btn-group-vertical > .btn-large:last-child { - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; -} - -.alert { - padding: 8px 35px 8px 14px; - margin-bottom: 20px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - background-color: #fcf8e3; - border: 1px solid #fbeed5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.alert, -.alert h4 { - color: #c09853; -} - -.alert h4 { - margin: 0; -} - -.alert .close { - position: relative; - top: -2px; - right: -21px; - line-height: 20px; -} - -.alert-success { - color: #468847; - background-color: #dff0d8; - border-color: #d6e9c6; -} - -.alert-success h4 { - color: #468847; -} - -.alert-danger, -.alert-error { - color: #b94a48; - background-color: #f2dede; - border-color: #eed3d7; -} - -.alert-danger h4, -.alert-error h4 { - color: #b94a48; -} - -.alert-info { - color: #3a87ad; - background-color: #d9edf7; - border-color: #bce8f1; -} - -.alert-info h4 { - color: #3a87ad; -} - -.alert-block { - padding-top: 14px; - padding-bottom: 14px; -} - -.alert-block > p, -.alert-block > ul { - margin-bottom: 0; -} - -.alert-block p + p { - margin-top: 5px; -} - -.nav { - margin-bottom: 20px; - margin-left: 0; - list-style: none; -} - -.nav > li > a { - display: block; -} - -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #eeeeee; -} - -.nav > li > a > img { - max-width: none; -} - -.nav > .pull-right { - float: right; -} - -.nav-header { - display: block; - padding: 3px 15px; - font-size: 11px; - font-weight: bold; - line-height: 20px; - color: #999999; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - text-transform: uppercase; -} - -.nav li + .nav-header { - margin-top: 9px; -} - -.nav-list { - padding-right: 15px; - padding-left: 15px; - margin-bottom: 0; -} - -.nav-list > li > a, -.nav-list .nav-header { - margin-right: -15px; - margin-left: -15px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} - -.nav-list > li > a { - padding: 3px 15px; -} - -.nav-list > .active > a, -.nav-list > .active > a:hover, -.nav-list > .active > a:focus { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); - background-color: #0088cc; -} - -.nav-list [class^="icon-"], -.nav-list [class*=" icon-"] { - margin-right: 2px; -} - -.nav-list .divider { - *width: 100%; - height: 1px; - margin: 9px 1px; - *margin: -5px 0 5px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; -} - -.nav-tabs, -.nav-pills { - *zoom: 1; -} - -.nav-tabs:before, -.nav-pills:before, -.nav-tabs:after, -.nav-pills:after { - display: table; - line-height: 0; - content: ""; -} - -.nav-tabs:after, -.nav-pills:after { - clear: both; -} - -.nav-tabs > li, -.nav-pills > li { - float: left; -} - -.nav-tabs > li > a, -.nav-pills > li > a { - padding-right: 12px; - padding-left: 12px; - margin-right: 2px; - line-height: 14px; -} - -.nav-tabs { - border-bottom: 1px solid #ddd; -} - -.nav-tabs > li { - margin-bottom: -1px; -} - -.nav-tabs > li > a { - padding-top: 8px; - padding-bottom: 8px; - line-height: 20px; - border: 1px solid transparent; - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} - -.nav-tabs > li > a:hover, -.nav-tabs > li > a:focus { - border-color: #eeeeee #eeeeee #dddddd; -} - -.nav-tabs > .active > a, -.nav-tabs > .active > a:hover, -.nav-tabs > .active > a:focus { - color: #555555; - cursor: default; - background-color: #ffffff; - border: 1px solid #ddd; - border-bottom-color: transparent; -} - -.nav-pills > li > a { - padding-top: 8px; - padding-bottom: 8px; - margin-top: 2px; - margin-bottom: 2px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} - -.nav-pills > .active > a, -.nav-pills > .active > a:hover, -.nav-pills > .active > a:focus { - color: #ffffff; - background-color: #0088cc; -} - -.nav-stacked > li { - float: none; -} - -.nav-stacked > li > a { - margin-right: 0; -} - -.nav-tabs.nav-stacked { - border-bottom: 0; -} - -.nav-tabs.nav-stacked > li > a { - border: 1px solid #ddd; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.nav-tabs.nav-stacked > li:first-child > a { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-topleft: 4px; -} - -.nav-tabs.nav-stacked > li:last-child > a { - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -moz-border-radius-bottomright: 4px; - -moz-border-radius-bottomleft: 4px; -} - -.nav-tabs.nav-stacked > li > a:hover, -.nav-tabs.nav-stacked > li > a:focus { - z-index: 2; - border-color: #ddd; -} - -.nav-pills.nav-stacked > li > a { - margin-bottom: 3px; -} - -.nav-pills.nav-stacked > li:last-child > a { - margin-bottom: 1px; -} - -.nav-tabs .dropdown-menu { - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; -} - -.nav-pills .dropdown-menu { - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.nav .dropdown-toggle .caret { - margin-top: 6px; - border-top-color: #0088cc; - border-bottom-color: #0088cc; -} - -.nav .dropdown-toggle:hover .caret, -.nav .dropdown-toggle:focus .caret { - border-top-color: #005580; - border-bottom-color: #005580; -} - -/* move down carets for tabs */ - -.nav-tabs .dropdown-toggle .caret { - margin-top: 8px; -} - -.nav .active .dropdown-toggle .caret { - border-top-color: #fff; - border-bottom-color: #fff; -} - -.nav-tabs .active .dropdown-toggle .caret { - border-top-color: #555555; - border-bottom-color: #555555; -} - -.nav > .dropdown.active > a:hover, -.nav > .dropdown.active > a:focus { - cursor: pointer; -} - -.nav-tabs .open .dropdown-toggle, -.nav-pills .open .dropdown-toggle, -.nav > li.dropdown.open.active > a:hover, -.nav > li.dropdown.open.active > a:focus { - color: #ffffff; - background-color: #999999; - border-color: #999999; -} - -.nav li.dropdown.open .caret, -.nav li.dropdown.open.active .caret, -.nav li.dropdown.open a:hover .caret, -.nav li.dropdown.open a:focus .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; - opacity: 1; - filter: alpha(opacity=100); -} - -.tabs-stacked .open > a:hover, -.tabs-stacked .open > a:focus { - border-color: #999999; -} - -.tabbable { - *zoom: 1; -} - -.tabbable:before, -.tabbable:after { - display: table; - line-height: 0; - content: ""; -} - -.tabbable:after { - clear: both; -} - -.tab-content { - overflow: auto; -} - -.tabs-below > .nav-tabs, -.tabs-right > .nav-tabs, -.tabs-left > .nav-tabs { - border-bottom: 0; -} - -.tab-content > .tab-pane, -.pill-content > .pill-pane { - display: none; -} - -.tab-content > .active, -.pill-content > .active { - display: block; -} - -.tabs-below > .nav-tabs { - border-top: 1px solid #ddd; -} - -.tabs-below > .nav-tabs > li { - margin-top: -1px; - margin-bottom: 0; -} - -.tabs-below > .nav-tabs > li > a { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} - -.tabs-below > .nav-tabs > li > a:hover, -.tabs-below > .nav-tabs > li > a:focus { - border-top-color: #ddd; - border-bottom-color: transparent; -} - -.tabs-below > .nav-tabs > .active > a, -.tabs-below > .nav-tabs > .active > a:hover, -.tabs-below > .nav-tabs > .active > a:focus { - border-color: transparent #ddd #ddd #ddd; -} - -.tabs-left > .nav-tabs > li, -.tabs-right > .nav-tabs > li { - float: none; -} - -.tabs-left > .nav-tabs > li > a, -.tabs-right > .nav-tabs > li > a { - min-width: 74px; - margin-right: 0; - margin-bottom: 3px; -} - -.tabs-left > .nav-tabs { - float: left; - margin-right: 19px; - border-right: 1px solid #ddd; -} - -.tabs-left > .nav-tabs > li > a { - margin-right: -1px; - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} - -.tabs-left > .nav-tabs > li > a:hover, -.tabs-left > .nav-tabs > li > a:focus { - border-color: #eeeeee #dddddd #eeeeee #eeeeee; -} - -.tabs-left > .nav-tabs .active > a, -.tabs-left > .nav-tabs .active > a:hover, -.tabs-left > .nav-tabs .active > a:focus { - border-color: #ddd transparent #ddd #ddd; - *border-right-color: #ffffff; -} - -.tabs-right > .nav-tabs { - float: right; - margin-left: 19px; - border-left: 1px solid #ddd; -} - -.tabs-right > .nav-tabs > li > a { - margin-left: -1px; - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} - -.tabs-right > .nav-tabs > li > a:hover, -.tabs-right > .nav-tabs > li > a:focus { - border-color: #eeeeee #eeeeee #eeeeee #dddddd; -} - -.tabs-right > .nav-tabs .active > a, -.tabs-right > .nav-tabs .active > a:hover, -.tabs-right > .nav-tabs .active > a:focus { - border-color: #ddd #ddd #ddd transparent; - *border-left-color: #ffffff; -} - -.nav > .disabled > a { - color: #999999; -} - -.nav > .disabled > a:hover, -.nav > .disabled > a:focus { - text-decoration: none; - cursor: default; - background-color: transparent; -} - -.navbar { - *position: relative; - *z-index: 2; - margin-bottom: 20px; - overflow: visible; -} - -.navbar-inner { - min-height: 40px; - padding-right: 20px; - padding-left: 20px; - background-color: #fafafa; - background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); - background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); - background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); - background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); - background-repeat: repeat-x; - border: 1px solid #d4d4d4; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); - *zoom: 1; - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); -} - -.navbar-inner:before, -.navbar-inner:after { - display: table; - line-height: 0; - content: ""; -} - -.navbar-inner:after { - clear: both; -} - -.navbar .container { - width: auto; -} - -.nav-collapse.collapse { - height: auto; - overflow: visible; -} - -.navbar .brand { - display: block; - float: left; - padding: 10px 20px 10px; - margin-left: -20px; - font-size: 20px; - font-weight: 200; - color: #777777; - text-shadow: 0 1px 0 #ffffff; -} - -.navbar .brand:hover, -.navbar .brand:focus { - text-decoration: none; -} - -.navbar-text { - margin-bottom: 0; - line-height: 40px; - color: #777777; -} - -.navbar-link { - color: #777777; -} - -.navbar-link:hover, -.navbar-link:focus { - color: #333333; -} - -.navbar .divider-vertical { - height: 40px; - margin: 0 9px; - border-right: 1px solid #ffffff; - border-left: 1px solid #f2f2f2; -} - -.navbar .btn, -.navbar .btn-group { - margin-top: 5px; -} - -.navbar .btn-group .btn, -.navbar .input-prepend .btn, -.navbar .input-append .btn, -.navbar .input-prepend .btn-group, -.navbar .input-append .btn-group { - margin-top: 0; -} - -.navbar-form { - margin-bottom: 0; - *zoom: 1; -} - -.navbar-form:before, -.navbar-form:after { - display: table; - line-height: 0; - content: ""; -} - -.navbar-form:after { - clear: both; -} - -.navbar-form input, -.navbar-form select, -.navbar-form .radio, -.navbar-form .checkbox { - margin-top: 5px; -} - -.navbar-form input, -.navbar-form select, -.navbar-form .btn { - display: inline-block; - margin-bottom: 0; -} - -.navbar-form input[type="image"], -.navbar-form input[type="checkbox"], -.navbar-form input[type="radio"] { - margin-top: 3px; -} - -.navbar-form .input-append, -.navbar-form .input-prepend { - margin-top: 5px; - white-space: nowrap; -} - -.navbar-form .input-append input, -.navbar-form .input-prepend input { - margin-top: 0; -} - -.navbar-search { - position: relative; - float: left; - margin-top: 5px; - margin-bottom: 0; -} - -.navbar-search .search-query { - padding: 4px 14px; - margin-bottom: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - font-weight: normal; - line-height: 1; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} - -.navbar-static-top { - position: static; - margin-bottom: 0; -} - -.navbar-static-top .navbar-inner { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; - margin-bottom: 0; -} - -.navbar-fixed-top .navbar-inner, -.navbar-static-top .navbar-inner { - border-width: 0 0 1px; -} - -.navbar-fixed-bottom .navbar-inner { - border-width: 1px 0 0; -} - -.navbar-fixed-top .navbar-inner, -.navbar-fixed-bottom .navbar-inner { - padding-right: 0; - padding-left: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} - -.navbar-static-top .container, -.navbar-fixed-top .container, -.navbar-fixed-bottom .container { - width: 940px; -} - -.navbar-fixed-top { - top: 0; -} - -.navbar-fixed-top .navbar-inner, -.navbar-static-top .navbar-inner { - -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); -} - -.navbar-fixed-bottom { - bottom: 0; -} - -.navbar-fixed-bottom .navbar-inner { - -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); - box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); -} - -.navbar .nav { - position: relative; - left: 0; - display: block; - float: left; - margin: 0 10px 0 0; -} - -.navbar .nav.pull-right { - float: right; - margin-right: 0; -} - -.navbar .nav > li { - float: left; -} - -.navbar .nav > li > a { - float: none; - padding: 10px 15px 10px; - color: #777777; - text-decoration: none; - text-shadow: 0 1px 0 #ffffff; -} - -.navbar .nav .dropdown-toggle .caret { - margin-top: 8px; -} - -.navbar .nav > li > a:focus, -.navbar .nav > li > a:hover { - color: #333333; - text-decoration: none; - background-color: transparent; -} - -.navbar .nav > .active > a, -.navbar .nav > .active > a:hover, -.navbar .nav > .active > a:focus { - color: #555555; - text-decoration: none; - background-color: #e5e5e5; - -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); - -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); -} - -.navbar .btn-navbar { - display: none; - float: right; - padding: 7px 10px; - margin-right: 5px; - margin-left: 5px; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #ededed; - *background-color: #e5e5e5; - background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); - background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); - background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); - background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); - background-repeat: repeat-x; - border-color: #e5e5e5 #e5e5e5 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); -} - -.navbar .btn-navbar:hover, -.navbar .btn-navbar:focus, -.navbar .btn-navbar:active, -.navbar .btn-navbar.active, -.navbar .btn-navbar.disabled, -.navbar .btn-navbar[disabled] { - color: #ffffff; - background-color: #e5e5e5; - *background-color: #d9d9d9; -} - -.navbar .btn-navbar:active, -.navbar .btn-navbar.active { - background-color: #cccccc \9; -} - -.navbar .btn-navbar .icon-bar { - display: block; - width: 18px; - height: 2px; - background-color: #f5f5f5; - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px; - -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); -} - -.btn-navbar .icon-bar + .icon-bar { - margin-top: 3px; -} - -.navbar .nav > li > .dropdown-menu:before { - position: absolute; - top: -7px; - left: 9px; - display: inline-block; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-left: 7px solid transparent; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.navbar .nav > li > .dropdown-menu:after { - position: absolute; - top: -6px; - left: 10px; - display: inline-block; - border-right: 6px solid transparent; - border-bottom: 6px solid #ffffff; - border-left: 6px solid transparent; - content: ''; -} - -.navbar-fixed-bottom .nav > li > .dropdown-menu:before { - top: auto; - bottom: -7px; - border-top: 7px solid #ccc; - border-bottom: 0; - border-top-color: rgba(0, 0, 0, 0.2); -} - -.navbar-fixed-bottom .nav > li > .dropdown-menu:after { - top: auto; - bottom: -6px; - border-top: 6px solid #ffffff; - border-bottom: 0; -} - -.navbar .nav li.dropdown > a:hover .caret, -.navbar .nav li.dropdown > a:focus .caret { - border-top-color: #333333; - border-bottom-color: #333333; -} - -.navbar .nav li.dropdown.open > .dropdown-toggle, -.navbar .nav li.dropdown.active > .dropdown-toggle, -.navbar .nav li.dropdown.open.active > .dropdown-toggle { - color: #555555; - background-color: #e5e5e5; -} - -.navbar .nav li.dropdown > .dropdown-toggle .caret { - border-top-color: #777777; - border-bottom-color: #777777; -} - -.navbar .nav li.dropdown.open > .dropdown-toggle .caret, -.navbar .nav li.dropdown.active > .dropdown-toggle .caret, -.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { - border-top-color: #555555; - border-bottom-color: #555555; -} - -.navbar .pull-right > li > .dropdown-menu, -.navbar .nav > li > .dropdown-menu.pull-right { - right: 0; - left: auto; -} - -.navbar .pull-right > li > .dropdown-menu:before, -.navbar .nav > li > .dropdown-menu.pull-right:before { - right: 12px; - left: auto; -} - -.navbar .pull-right > li > .dropdown-menu:after, -.navbar .nav > li > .dropdown-menu.pull-right:after { - right: 13px; - left: auto; -} - -.navbar .pull-right > li > .dropdown-menu .dropdown-menu, -.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { - right: 100%; - left: auto; - margin-right: -1px; - margin-left: 0; - -webkit-border-radius: 6px 0 6px 6px; - -moz-border-radius: 6px 0 6px 6px; - border-radius: 6px 0 6px 6px; -} - -.navbar-inverse .navbar-inner { - background-color: #1b1b1b; - background-image: -moz-linear-gradient(top, #222222, #111111); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); - background-image: -webkit-linear-gradient(top, #222222, #111111); - background-image: -o-linear-gradient(top, #222222, #111111); - background-image: linear-gradient(to bottom, #222222, #111111); - background-repeat: repeat-x; - border-color: #252525; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); -} - -.navbar-inverse .brand, -.navbar-inverse .nav > li > a { - color: #999999; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} - -.navbar-inverse .brand:hover, -.navbar-inverse .nav > li > a:hover, -.navbar-inverse .brand:focus, -.navbar-inverse .nav > li > a:focus { - color: #ffffff; -} - -.navbar-inverse .brand { - color: #999999; -} - -.navbar-inverse .navbar-text { - color: #999999; -} - -.navbar-inverse .nav > li > a:focus, -.navbar-inverse .nav > li > a:hover { - color: #ffffff; - background-color: transparent; -} - -.navbar-inverse .nav .active > a, -.navbar-inverse .nav .active > a:hover, -.navbar-inverse .nav .active > a:focus { - color: #ffffff; - background-color: #111111; -} - -.navbar-inverse .navbar-link { - color: #999999; -} - -.navbar-inverse .navbar-link:hover, -.navbar-inverse .navbar-link:focus { - color: #ffffff; -} - -.navbar-inverse .divider-vertical { - border-right-color: #222222; - border-left-color: #111111; -} - -.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, -.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, -.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { - color: #ffffff; - background-color: #111111; -} - -.navbar-inverse .nav li.dropdown > a:hover .caret, -.navbar-inverse .nav li.dropdown > a:focus .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} - -.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { - border-top-color: #999999; - border-bottom-color: #999999; -} - -.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, -.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, -.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} - -.navbar-inverse .navbar-search .search-query { - color: #ffffff; - background-color: #515151; - border-color: #111111; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; -} - -.navbar-inverse .navbar-search .search-query:-moz-placeholder { - color: #cccccc; -} - -.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { - color: #cccccc; -} - -.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { - color: #cccccc; -} - -.navbar-inverse .navbar-search .search-query:focus, -.navbar-inverse .navbar-search .search-query.focused { - padding: 5px 15px; - color: #333333; - text-shadow: 0 1px 0 #ffffff; - background-color: #ffffff; - border: 0; - outline: 0; - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); -} - -.navbar-inverse .btn-navbar { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #0e0e0e; - *background-color: #040404; - background-image: -moz-linear-gradient(top, #151515, #040404); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); - background-image: -webkit-linear-gradient(top, #151515, #040404); - background-image: -o-linear-gradient(top, #151515, #040404); - background-image: linear-gradient(to bottom, #151515, #040404); - background-repeat: repeat-x; - border-color: #040404 #040404 #000000; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} - -.navbar-inverse .btn-navbar:hover, -.navbar-inverse .btn-navbar:focus, -.navbar-inverse .btn-navbar:active, -.navbar-inverse .btn-navbar.active, -.navbar-inverse .btn-navbar.disabled, -.navbar-inverse .btn-navbar[disabled] { - color: #ffffff; - background-color: #040404; - *background-color: #000000; -} - -.navbar-inverse .btn-navbar:active, -.navbar-inverse .btn-navbar.active { - background-color: #000000 \9; -} - -.breadcrumb { - padding: 8px 15px; - margin: 0 0 20px; - list-style: none; - background-color: #f5f5f5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.breadcrumb > li { - display: inline-block; - *display: inline; - text-shadow: 0 1px 0 #ffffff; - *zoom: 1; -} - -.breadcrumb > li > .divider { - padding: 0 5px; - color: #ccc; -} - -.breadcrumb > .active { - color: #999999; -} - -.pagination { - margin: 20px 0; -} - -.pagination ul { - display: inline-block; - *display: inline; - margin-bottom: 0; - margin-left: 0; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - *zoom: 1; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); -} - -.pagination ul > li { - display: inline; -} - -.pagination ul > li > a, -.pagination ul > li > span { - float: left; - padding: 4px 12px; - line-height: 20px; - text-decoration: none; - background-color: #ffffff; - border: 1px solid #dddddd; - border-left-width: 0; -} - -.pagination ul > li > a:hover, -.pagination ul > li > a:focus, -.pagination ul > .active > a, -.pagination ul > .active > span { - background-color: #f5f5f5; -} - -.pagination ul > .active > a, -.pagination ul > .active > span { - color: #999999; - cursor: default; -} - -.pagination ul > .disabled > span, -.pagination ul > .disabled > a, -.pagination ul > .disabled > a:hover, -.pagination ul > .disabled > a:focus { - color: #999999; - cursor: default; - background-color: transparent; -} - -.pagination ul > li:first-child > a, -.pagination ul > li:first-child > span { - border-left-width: 1px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-topleft: 4px; -} - -.pagination ul > li:last-child > a, -.pagination ul > li:last-child > span { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-bottomright: 4px; -} - -.pagination-centered { - text-align: center; -} - -.pagination-right { - text-align: right; -} - -.pagination-large ul > li > a, -.pagination-large ul > li > span { - padding: 11px 19px; - font-size: 17.5px; -} - -.pagination-large ul > li:first-child > a, -.pagination-large ul > li:first-child > span { - -webkit-border-bottom-left-radius: 6px; - border-bottom-left-radius: 6px; - -webkit-border-top-left-radius: 6px; - border-top-left-radius: 6px; - -moz-border-radius-bottomleft: 6px; - -moz-border-radius-topleft: 6px; -} - -.pagination-large ul > li:last-child > a, -.pagination-large ul > li:last-child > span { - -webkit-border-top-right-radius: 6px; - border-top-right-radius: 6px; - -webkit-border-bottom-right-radius: 6px; - border-bottom-right-radius: 6px; - -moz-border-radius-topright: 6px; - -moz-border-radius-bottomright: 6px; -} - -.pagination-mini ul > li:first-child > a, -.pagination-small ul > li:first-child > a, -.pagination-mini ul > li:first-child > span, -.pagination-small ul > li:first-child > span { - -webkit-border-bottom-left-radius: 3px; - border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-top-left-radius: 3px; - -moz-border-radius-bottomleft: 3px; - -moz-border-radius-topleft: 3px; -} - -.pagination-mini ul > li:last-child > a, -.pagination-small ul > li:last-child > a, -.pagination-mini ul > li:last-child > span, -.pagination-small ul > li:last-child > span { - -webkit-border-top-right-radius: 3px; - border-top-right-radius: 3px; - -webkit-border-bottom-right-radius: 3px; - border-bottom-right-radius: 3px; - -moz-border-radius-topright: 3px; - -moz-border-radius-bottomright: 3px; -} - -.pagination-small ul > li > a, -.pagination-small ul > li > span { - padding: 2px 10px; - font-size: 11.9px; -} - -.pagination-mini ul > li > a, -.pagination-mini ul > li > span { - padding: 0 6px; - font-size: 10.5px; -} - -.pager { - margin: 20px 0; - text-align: center; - list-style: none; - *zoom: 1; -} - -.pager:before, -.pager:after { - display: table; - line-height: 0; - content: ""; -} - -.pager:after { - clear: both; -} - -.pager li { - display: inline; -} - -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} - -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #f5f5f5; -} - -.pager .next > a, -.pager .next > span { - float: right; -} - -.pager .previous > a, -.pager .previous > span { - float: left; -} - -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #999999; - cursor: default; - background-color: #fff; -} - -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000000; -} - -.modal-backdrop.fade { - opacity: 0; -} - -.modal-backdrop, -.modal-backdrop.fade.in { - opacity: 0.8; - filter: alpha(opacity=80); -} - -.modal { - position: fixed; - top: 10%; - left: 50%; - z-index: 1050; - width: 560px; - margin-left: -280px; - background-color: #ffffff; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.3); - *border: 1px solid #999; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - outline: none; - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} - -.modal.fade { - top: -25%; - -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; - -moz-transition: opacity 0.3s linear, top 0.3s ease-out; - -o-transition: opacity 0.3s linear, top 0.3s ease-out; - transition: opacity 0.3s linear, top 0.3s ease-out; -} - -.modal.fade.in { - top: 10%; -} - -.modal-header { - padding: 9px 15px; - border-bottom: 1px solid #eee; -} - -.modal-header .close { - margin-top: 2px; -} - -.modal-header h3 { - margin: 0; - line-height: 30px; -} - -.modal-body { - position: relative; - max-height: 400px; - padding: 15px; - overflow-y: auto; -} - -.modal-form { - margin-bottom: 0; -} - -.modal-footer { - padding: 14px 15px 15px; - margin-bottom: 0; - text-align: right; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; - *zoom: 1; - -webkit-box-shadow: inset 0 1px 0 #ffffff; - -moz-box-shadow: inset 0 1px 0 #ffffff; - box-shadow: inset 0 1px 0 #ffffff; -} - -.modal-footer:before, -.modal-footer:after { - display: table; - line-height: 0; - content: ""; -} - -.modal-footer:after { - clear: both; -} - -.modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; -} - -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} - -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} - -.tooltip { - position: absolute; - z-index: 1030; - display: block; - font-size: 11px; - line-height: 1.4; - opacity: 0; - filter: alpha(opacity=0); - visibility: visible; -} - -.tooltip.in { - opacity: 0.8; - filter: alpha(opacity=80); -} - -.tooltip.top { - padding: 5px 0; - margin-top: -3px; -} - -.tooltip.right { - padding: 0 5px; - margin-left: 3px; -} - -.tooltip.bottom { - padding: 5px 0; - margin-top: 3px; -} - -.tooltip.left { - padding: 0 5px; - margin-left: -3px; -} - -.tooltip-inner { - max-width: 200px; - padding: 8px; - color: #ffffff; - text-align: center; - text-decoration: none; - background-color: #000000; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-top-color: #000000; - border-width: 5px 5px 0; -} - -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-right-color: #000000; - border-width: 5px 5px 5px 0; -} - -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-left-color: #000000; - border-width: 5px 0 5px 5px; -} - -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-bottom-color: #000000; - border-width: 0 5px 5px; -} - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - max-width: 276px; - padding: 1px; - text-align: left; - white-space: normal; - background-color: #ffffff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -.popover.top { - margin-top: -10px; -} - -.popover.right { - margin-left: 10px; -} - -.popover.bottom { - margin-top: 10px; -} - -.popover.left { - margin-left: -10px; -} - -.popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - font-weight: normal; - line-height: 18px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - -webkit-border-radius: 5px 5px 0 0; - -moz-border-radius: 5px 5px 0 0; - border-radius: 5px 5px 0 0; -} - -.popover-title:empty { - display: none; -} - -.popover-content { - padding: 9px 14px; -} - -.popover .arrow, -.popover .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} - -.popover .arrow { - border-width: 11px; -} - -.popover .arrow:after { - border-width: 10px; - content: ""; -} - -.popover.top .arrow { - bottom: -11px; - left: 50%; - margin-left: -11px; - border-top-color: #999; - border-top-color: rgba(0, 0, 0, 0.25); - border-bottom-width: 0; -} - -.popover.top .arrow:after { - bottom: 1px; - margin-left: -10px; - border-top-color: #ffffff; - border-bottom-width: 0; -} - -.popover.right .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-right-color: #999; - border-right-color: rgba(0, 0, 0, 0.25); - border-left-width: 0; -} - -.popover.right .arrow:after { - bottom: -10px; - left: 1px; - border-right-color: #ffffff; - border-left-width: 0; -} - -.popover.bottom .arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-bottom-color: #999; - border-bottom-color: rgba(0, 0, 0, 0.25); - border-top-width: 0; -} - -.popover.bottom .arrow:after { - top: 1px; - margin-left: -10px; - border-bottom-color: #ffffff; - border-top-width: 0; -} - -.popover.left .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-left-color: #999; - border-left-color: rgba(0, 0, 0, 0.25); - border-right-width: 0; -} - -.popover.left .arrow:after { - right: 1px; - bottom: -10px; - border-left-color: #ffffff; - border-right-width: 0; -} - -.thumbnails { - margin-left: -20px; - list-style: none; - *zoom: 1; -} - -.thumbnails:before, -.thumbnails:after { - display: table; - line-height: 0; - content: ""; -} - -.thumbnails:after { - clear: both; -} - -.row-fluid .thumbnails { - margin-left: 0; -} - -.thumbnails > li { - float: left; - margin-bottom: 20px; - margin-left: 20px; -} - -.thumbnail { - display: block; - padding: 4px; - line-height: 20px; - border: 1px solid #ddd; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} - -a.thumbnail:hover, -a.thumbnail:focus { - border-color: #0088cc; - -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); -} - -.thumbnail > img { - display: block; - max-width: 100%; - margin-right: auto; - margin-left: auto; -} - -.thumbnail .caption { - padding: 9px; - color: #555555; -} - -.media, -.media-body { - overflow: hidden; - *overflow: visible; - zoom: 1; -} - -.media, -.media .media { - margin-top: 15px; -} - -.media:first-child { - margin-top: 0; -} - -.media-object { - display: block; -} - -.media-heading { - margin: 0 0 5px; -} - -.media > .pull-left { - margin-right: 10px; -} - -.media > .pull-right { - margin-left: 10px; -} - -.media-list { - margin-left: 0; - list-style: none; -} - -.label, -.badge { - display: inline-block; - padding: 2px 4px; - font-size: 11.844px; - font-weight: bold; - line-height: 14px; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - white-space: nowrap; - vertical-align: baseline; - background-color: #999999; -} - -.label { - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.badge { - padding-right: 9px; - padding-left: 9px; - -webkit-border-radius: 9px; - -moz-border-radius: 9px; - border-radius: 9px; -} - -.label:empty, -.badge:empty { - display: none; -} - -a.label:hover, -a.label:focus, -a.badge:hover, -a.badge:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} - -.label-important, -.badge-important { - background-color: #b94a48; -} - -.label-important[href], -.badge-important[href] { - background-color: #953b39; -} - -.label-warning, -.badge-warning { - background-color: #f89406; -} - -.label-warning[href], -.badge-warning[href] { - background-color: #c67605; -} - -.label-success, -.badge-success { - background-color: #468847; -} - -.label-success[href], -.badge-success[href] { - background-color: #356635; -} - -.label-info, -.badge-info { - background-color: #3a87ad; -} - -.label-info[href], -.badge-info[href] { - background-color: #2d6987; -} - -.label-inverse, -.badge-inverse { - background-color: #333333; -} - -.label-inverse[href], -.badge-inverse[href] { - background-color: #1a1a1a; -} - -.btn .label, -.btn .badge { - position: relative; - top: -1px; -} - -.btn-mini .label, -.btn-mini .badge { - top: 0; -} - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-moz-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-ms-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -@-o-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} - -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} - -.progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f7f7f7; - background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); - background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); - background-repeat: repeat-x; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} - -.progress .bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - color: #ffffff; - text-align: center; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #0e90d2; - background-image: -moz-linear-gradient(top, #149bdf, #0480be); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); - background-image: -webkit-linear-gradient(top, #149bdf, #0480be); - background-image: -o-linear-gradient(top, #149bdf, #0480be); - background-image: linear-gradient(to bottom, #149bdf, #0480be); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-transition: width 0.6s ease; - -moz-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} - -.progress .bar + .bar { - -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); -} - -.progress-striped .bar { - background-color: #149bdf; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - -webkit-background-size: 40px 40px; - -moz-background-size: 40px 40px; - -o-background-size: 40px 40px; - background-size: 40px 40px; -} - -.progress.active .bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -moz-animation: progress-bar-stripes 2s linear infinite; - -ms-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} - -.progress-danger .bar, -.progress .bar-danger { - background-color: #dd514c; - background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); - background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); -} - -.progress-danger.progress-striped .bar, -.progress-striped .bar-danger { - background-color: #ee5f5b; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-success .bar, -.progress .bar-success { - background-color: #5eb95e; - background-image: -moz-linear-gradient(top, #62c462, #57a957); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); - background-image: -webkit-linear-gradient(top, #62c462, #57a957); - background-image: -o-linear-gradient(top, #62c462, #57a957); - background-image: linear-gradient(to bottom, #62c462, #57a957); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); -} - -.progress-success.progress-striped .bar, -.progress-striped .bar-success { - background-color: #62c462; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-info .bar, -.progress .bar-info { - background-color: #4bb1cf; - background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); - background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); - background-image: -o-linear-gradient(top, #5bc0de, #339bb9); - background-image: linear-gradient(to bottom, #5bc0de, #339bb9); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); -} - -.progress-info.progress-striped .bar, -.progress-striped .bar-info { - background-color: #5bc0de; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.progress-warning .bar, -.progress .bar-warning { - background-color: #faa732; - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(to bottom, #fbb450, #f89406); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); -} - -.progress-warning.progress-striped .bar, -.progress-striped .bar-warning { - background-color: #fbb450; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} - -.accordion { - margin-bottom: 20px; -} - -.accordion-group { - margin-bottom: 2px; - border: 1px solid #e5e5e5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.accordion-heading { - border-bottom: 0; -} - -.accordion-heading .accordion-toggle { - display: block; - padding: 8px 15px; -} - -.accordion-toggle { - cursor: pointer; -} - -.accordion-inner { - padding: 9px 15px; - border-top: 1px solid #e5e5e5; -} - -.carousel { - position: relative; - margin-bottom: 20px; - line-height: 1; -} - -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} - -.carousel-inner > .item { - position: relative; - display: none; - -webkit-transition: 0.6s ease-in-out left; - -moz-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} - -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - line-height: 1; -} - -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} - -.carousel-inner > .active { - left: 0; -} - -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} - -.carousel-inner > .next { - left: 100%; -} - -.carousel-inner > .prev { - left: -100%; -} - -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} - -.carousel-inner > .active.left { - left: -100%; -} - -.carousel-inner > .active.right { - left: 100%; -} - -.carousel-control { - position: absolute; - top: 40%; - left: 15px; - width: 40px; - height: 40px; - margin-top: -20px; - font-size: 60px; - font-weight: 100; - line-height: 30px; - color: #ffffff; - text-align: center; - background: #222222; - border: 3px solid #ffffff; - -webkit-border-radius: 23px; - -moz-border-radius: 23px; - border-radius: 23px; - opacity: 0.5; - filter: alpha(opacity=50); -} - -.carousel-control.right { - right: 15px; - left: auto; -} - -.carousel-control:hover, -.carousel-control:focus { - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} - -.carousel-indicators { - position: absolute; - top: 15px; - right: 15px; - z-index: 5; - margin: 0; - list-style: none; -} - -.carousel-indicators li { - display: block; - float: left; - width: 10px; - height: 10px; - margin-left: 5px; - text-indent: -999px; - background-color: #ccc; - background-color: rgba(255, 255, 255, 0.25); - border-radius: 5px; -} - -.carousel-indicators .active { - background-color: #fff; -} - -.carousel-caption { - position: absolute; - right: 0; - bottom: 0; - left: 0; - padding: 15px; - background: #333333; - background: rgba(0, 0, 0, 0.75); -} - -.carousel-caption h4, -.carousel-caption p { - line-height: 20px; - color: #ffffff; -} - -.carousel-caption h4 { - margin: 0 0 5px; -} - -.carousel-caption p { - margin-bottom: 0; -} - -.hero-unit { - padding: 60px; - margin-bottom: 30px; - font-size: 18px; - font-weight: 200; - line-height: 30px; - color: inherit; - background-color: #eeeeee; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} - -.hero-unit h1 { - margin-bottom: 0; - font-size: 60px; - line-height: 1; - letter-spacing: -1px; - color: inherit; -} - -.hero-unit li { - line-height: 30px; -} - -.pull-right { - float: right; -} - -.pull-left { - float: left; -} - -.hide { - display: none; -} - -.show { - display: block; -} - -.invisible { - visibility: hidden; -} - -.affix { - position: fixed; -} diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/font-awesome.min.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/font-awesome.min.css deleted file mode 100644 index eefd54d1ba0..00000000000 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/font-awesome.min.css +++ /dev/null @@ -1,403 +0,0 @@ -@font-face{font-family:'FontAwesome';src:url('../font/fontawesome-webfont.eot?v=3.2.1');src:url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'),url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'),url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');font-weight:normal;font-style:normal;}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em;} -[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none;} -.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em;} -a [class^="icon-"],a [class*=" icon-"]{display:inline;} -[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.1428571428571428em;text-align:right;padding-right:0.2857142857142857em;}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.4285714285714286em;} -.icons-ul{margin-left:2.142857142857143em;list-style-type:none;}.icons-ul>li{position:relative;} -.icons-ul .icon-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;text-align:center;line-height:inherit;} -[class^="icon-"].hide,[class*=" icon-"].hide{display:none;} -.icon-muted{color:#eeeeee;} -.icon-light{color:#ffffff;} -.icon-dark{color:#333333;} -.icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} -.icon-2x{font-size:2em;}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} -.icon-3x{font-size:3em;}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} -.icon-4x{font-size:4em;}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} -.icon-5x{font-size:5em;}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;} -.pull-right{float:right;} -.pull-left{float:left;} -[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em;} -[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em;} -[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0;} -.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none;} -.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large{line-height:.9em;} -.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block;} -.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em;} -.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.18em;} -.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{line-height:.8em;} -.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.25em;} -.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0;}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.05em;} -.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x{margin-right:.2em;} -.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-left:.2em;} -.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit;} -.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%;}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em;} -.icon-stack .icon-stack-base{font-size:2em;*line-height:1em;} -.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;} -a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none;} -@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);} 100%{-moz-transform:rotate(359deg);}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);} 100%{-webkit-transform:rotate(359deg);}}@-o-keyframes spin{0%{-o-transform:rotate(0deg);} 100%{-o-transform:rotate(359deg);}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg);} 100%{-ms-transform:rotate(359deg);}}@keyframes spin{0%{transform:rotate(0deg);} 100%{transform:rotate(359deg);}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);} -.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);} -.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);} -.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1);} -.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1);} -a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block;} -.icon-glass:before{content:"\f000";} -.icon-music:before{content:"\f001";} -.icon-search:before{content:"\f002";} -.icon-envelope-alt:before{content:"\f003";} -.icon-heart:before{content:"\f004";} -.icon-star:before{content:"\f005";} -.icon-star-empty:before{content:"\f006";} -.icon-user:before{content:"\f007";} -.icon-film:before{content:"\f008";} -.icon-th-large:before{content:"\f009";} -.icon-th:before{content:"\f00a";} -.icon-th-list:before{content:"\f00b";} -.icon-ok:before{content:"\f00c";} -.icon-remove:before{content:"\f00d";} -.icon-zoom-in:before{content:"\f00e";} -.icon-zoom-out:before{content:"\f010";} -.icon-power-off:before,.icon-off:before{content:"\f011";} -.icon-signal:before{content:"\f012";} -.icon-gear:before,.icon-cog:before{content:"\f013";} -.icon-trash:before{content:"\f014";} -.icon-home:before{content:"\f015";} -.icon-file-alt:before{content:"\f016";} -.icon-time:before{content:"\f017";} -.icon-road:before{content:"\f018";} -.icon-download-alt:before{content:"\f019";} -.icon-download:before{content:"\f01a";} -.icon-upload:before{content:"\f01b";} -.icon-inbox:before{content:"\f01c";} -.icon-play-circle:before{content:"\f01d";} -.icon-rotate-right:before,.icon-repeat:before{content:"\f01e";} -.icon-refresh:before{content:"\f021";} -.icon-list-alt:before{content:"\f022";} -.icon-lock:before{content:"\f023";} -.icon-flag:before{content:"\f024";} -.icon-headphones:before{content:"\f025";} -.icon-volume-off:before{content:"\f026";} -.icon-volume-down:before{content:"\f027";} -.icon-volume-up:before{content:"\f028";} -.icon-qrcode:before{content:"\f029";} -.icon-barcode:before{content:"\f02a";} -.icon-tag:before{content:"\f02b";} -.icon-tags:before{content:"\f02c";} -.icon-book:before{content:"\f02d";} -.icon-bookmark:before{content:"\f02e";} -.icon-print:before{content:"\f02f";} -.icon-camera:before{content:"\f030";} -.icon-font:before{content:"\f031";} -.icon-bold:before{content:"\f032";} -.icon-italic:before{content:"\f033";} -.icon-text-height:before{content:"\f034";} -.icon-text-width:before{content:"\f035";} -.icon-align-left:before{content:"\f036";} -.icon-align-center:before{content:"\f037";} -.icon-align-right:before{content:"\f038";} -.icon-align-justify:before{content:"\f039";} -.icon-list:before{content:"\f03a";} -.icon-indent-left:before{content:"\f03b";} -.icon-indent-right:before{content:"\f03c";} -.icon-facetime-video:before{content:"\f03d";} -.icon-picture:before{content:"\f03e";} -.icon-pencil:before{content:"\f040";} -.icon-map-marker:before{content:"\f041";} -.icon-adjust:before{content:"\f042";} -.icon-tint:before{content:"\f043";} -.icon-edit:before{content:"\f044";} -.icon-share:before{content:"\f045";} -.icon-check:before{content:"\f046";} -.icon-move:before{content:"\f047";} -.icon-step-backward:before{content:"\f048";} -.icon-fast-backward:before{content:"\f049";} -.icon-backward:before{content:"\f04a";} -.icon-play:before{content:"\f04b";} -.icon-pause:before{content:"\f04c";} -.icon-stop:before{content:"\f04d";} -.icon-forward:before{content:"\f04e";} -.icon-fast-forward:before{content:"\f050";} -.icon-step-forward:before{content:"\f051";} -.icon-eject:before{content:"\f052";} -.icon-chevron-left:before{content:"\f053";} -.icon-chevron-right:before{content:"\f054";} -.icon-plus-sign:before{content:"\f055";} -.icon-minus-sign:before{content:"\f056";} -.icon-remove-sign:before{content:"\f057";} -.icon-ok-sign:before{content:"\f058";} -.icon-question-sign:before{content:"\f059";} -.icon-info-sign:before{content:"\f05a";} -.icon-screenshot:before{content:"\f05b";} -.icon-remove-circle:before{content:"\f05c";} -.icon-ok-circle:before{content:"\f05d";} -.icon-ban-circle:before{content:"\f05e";} -.icon-arrow-left:before{content:"\f060";} -.icon-arrow-right:before{content:"\f061";} -.icon-arrow-up:before{content:"\f062";} -.icon-arrow-down:before{content:"\f063";} -.icon-mail-forward:before,.icon-share-alt:before{content:"\f064";} -.icon-resize-full:before{content:"\f065";} -.icon-resize-small:before{content:"\f066";} -.icon-plus:before{content:"\f067";} -.icon-minus:before{content:"\f068";} -.icon-asterisk:before{content:"\f069";} -.icon-exclamation-sign:before{content:"\f06a";} -.icon-gift:before{content:"\f06b";} -.icon-leaf:before{content:"\f06c";} -.icon-fire:before{content:"\f06d";} -.icon-eye-open:before{content:"\f06e";} -.icon-eye-close:before{content:"\f070";} -.icon-warning-sign:before{content:"\f071";} -.icon-plane:before{content:"\f072";} -.icon-calendar:before{content:"\f073";} -.icon-random:before{content:"\f074";} -.icon-comment:before{content:"\f075";} -.icon-magnet:before{content:"\f076";} -.icon-chevron-up:before{content:"\f077";} -.icon-chevron-down:before{content:"\f078";} -.icon-retweet:before{content:"\f079";} -.icon-shopping-cart:before{content:"\f07a";} -.icon-folder-close:before{content:"\f07b";} -.icon-folder-open:before{content:"\f07c";} -.icon-resize-vertical:before{content:"\f07d";} -.icon-resize-horizontal:before{content:"\f07e";} -.icon-bar-chart:before{content:"\f080";} -.icon-twitter-sign:before{content:"\f081";} -.icon-facebook-sign:before{content:"\f082";} -.icon-camera-retro:before{content:"\f083";} -.icon-key:before{content:"\f084";} -.icon-gears:before,.icon-cogs:before{content:"\f085";} -.icon-comments:before{content:"\f086";} -.icon-thumbs-up-alt:before{content:"\f087";} -.icon-thumbs-down-alt:before{content:"\f088";} -.icon-star-half:before{content:"\f089";} -.icon-heart-empty:before{content:"\f08a";} -.icon-signout:before{content:"\f08b";} -.icon-linkedin-sign:before{content:"\f08c";} -.icon-pushpin:before{content:"\f08d";} -.icon-external-link:before{content:"\f08e";} -.icon-signin:before{content:"\f090";} -.icon-trophy:before{content:"\f091";} -.icon-github-sign:before{content:"\f092";} -.icon-upload-alt:before{content:"\f093";} -.icon-lemon:before{content:"\f094";} -.icon-phone:before{content:"\f095";} -.icon-unchecked:before,.icon-check-empty:before{content:"\f096";} -.icon-bookmark-empty:before{content:"\f097";} -.icon-phone-sign:before{content:"\f098";} -.icon-twitter:before{content:"\f099";} -.icon-facebook:before{content:"\f09a";} -.icon-github:before{content:"\f09b";} -.icon-unlock:before{content:"\f09c";} -.icon-credit-card:before{content:"\f09d";} -.icon-rss:before{content:"\f09e";} -.icon-hdd:before{content:"\f0a0";} -.icon-bullhorn:before{content:"\f0a1";} -.icon-bell:before{content:"\f0a2";} -.icon-certificate:before{content:"\f0a3";} -.icon-hand-right:before{content:"\f0a4";} -.icon-hand-left:before{content:"\f0a5";} -.icon-hand-up:before{content:"\f0a6";} -.icon-hand-down:before{content:"\f0a7";} -.icon-circle-arrow-left:before{content:"\f0a8";} -.icon-circle-arrow-right:before{content:"\f0a9";} -.icon-circle-arrow-up:before{content:"\f0aa";} -.icon-circle-arrow-down:before{content:"\f0ab";} -.icon-globe:before{content:"\f0ac";} -.icon-wrench:before{content:"\f0ad";} -.icon-tasks:before{content:"\f0ae";} -.icon-filter:before{content:"\f0b0";} -.icon-briefcase:before{content:"\f0b1";} -.icon-fullscreen:before{content:"\f0b2";} -.icon-group:before{content:"\f0c0";} -.icon-link:before{content:"\f0c1";} -.icon-cloud:before{content:"\f0c2";} -.icon-beaker:before{content:"\f0c3";} -.icon-cut:before{content:"\f0c4";} -.icon-copy:before{content:"\f0c5";} -.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6";} -.icon-save:before{content:"\f0c7";} -.icon-sign-blank:before{content:"\f0c8";} -.icon-reorder:before{content:"\f0c9";} -.icon-list-ul:before{content:"\f0ca";} -.icon-list-ol:before{content:"\f0cb";} -.icon-strikethrough:before{content:"\f0cc";} -.icon-underline:before{content:"\f0cd";} -.icon-table:before{content:"\f0ce";} -.icon-magic:before{content:"\f0d0";} -.icon-truck:before{content:"\f0d1";} -.icon-pinterest:before{content:"\f0d2";} -.icon-pinterest-sign:before{content:"\f0d3";} -.icon-google-plus-sign:before{content:"\f0d4";} -.icon-google-plus:before{content:"\f0d5";} -.icon-money:before{content:"\f0d6";} -.icon-caret-down:before{content:"\f0d7";} -.icon-caret-up:before{content:"\f0d8";} -.icon-caret-left:before{content:"\f0d9";} -.icon-caret-right:before{content:"\f0da";} -.icon-columns:before{content:"\f0db";} -.icon-sort:before{content:"\f0dc";} -.icon-sort-down:before{content:"\f0dd";} -.icon-sort-up:before{content:"\f0de";} -.icon-envelope:before{content:"\f0e0";} -.icon-linkedin:before{content:"\f0e1";} -.icon-rotate-left:before,.icon-undo:before{content:"\f0e2";} -.icon-legal:before{content:"\f0e3";} -.icon-dashboard:before{content:"\f0e4";} -.icon-comment-alt:before{content:"\f0e5";} -.icon-comments-alt:before{content:"\f0e6";} -.icon-bolt:before{content:"\f0e7";} -.icon-sitemap:before{content:"\f0e8";} -.icon-umbrella:before{content:"\f0e9";} -.icon-paste:before{content:"\f0ea";} -.icon-lightbulb:before{content:"\f0eb";} -.icon-exchange:before{content:"\f0ec";} -.icon-cloud-download:before{content:"\f0ed";} -.icon-cloud-upload:before{content:"\f0ee";} -.icon-user-md:before{content:"\f0f0";} -.icon-stethoscope:before{content:"\f0f1";} -.icon-suitcase:before{content:"\f0f2";} -.icon-bell-alt:before{content:"\f0f3";} -.icon-coffee:before{content:"\f0f4";} -.icon-food:before{content:"\f0f5";} -.icon-file-text-alt:before{content:"\f0f6";} -.icon-building:before{content:"\f0f7";} -.icon-hospital:before{content:"\f0f8";} -.icon-ambulance:before{content:"\f0f9";} -.icon-medkit:before{content:"\f0fa";} -.icon-fighter-jet:before{content:"\f0fb";} -.icon-beer:before{content:"\f0fc";} -.icon-h-sign:before{content:"\f0fd";} -.icon-plus-sign-alt:before{content:"\f0fe";} -.icon-double-angle-left:before{content:"\f100";} -.icon-double-angle-right:before{content:"\f101";} -.icon-double-angle-up:before{content:"\f102";} -.icon-double-angle-down:before{content:"\f103";} -.icon-angle-left:before{content:"\f104";} -.icon-angle-right:before{content:"\f105";} -.icon-angle-up:before{content:"\f106";} -.icon-angle-down:before{content:"\f107";} -.icon-desktop:before{content:"\f108";} -.icon-laptop:before{content:"\f109";} -.icon-tablet:before{content:"\f10a";} -.icon-mobile-phone:before{content:"\f10b";} -.icon-circle-blank:before{content:"\f10c";} -.icon-quote-left:before{content:"\f10d";} -.icon-quote-right:before{content:"\f10e";} -.icon-spinner:before{content:"\f110";} -.icon-circle:before{content:"\f111";} -.icon-mail-reply:before,.icon-reply:before{content:"\f112";} -.icon-github-alt:before{content:"\f113";} -.icon-folder-close-alt:before{content:"\f114";} -.icon-folder-open-alt:before{content:"\f115";} -.icon-expand-alt:before{content:"\f116";} -.icon-collapse-alt:before{content:"\f117";} -.icon-smile:before{content:"\f118";} -.icon-frown:before{content:"\f119";} -.icon-meh:before{content:"\f11a";} -.icon-gamepad:before{content:"\f11b";} -.icon-keyboard:before{content:"\f11c";} -.icon-flag-alt:before{content:"\f11d";} -.icon-flag-checkered:before{content:"\f11e";} -.icon-terminal:before{content:"\f120";} -.icon-code:before{content:"\f121";} -.icon-reply-all:before{content:"\f122";} -.icon-mail-reply-all:before{content:"\f122";} -.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123";} -.icon-location-arrow:before{content:"\f124";} -.icon-crop:before{content:"\f125";} -.icon-code-fork:before{content:"\f126";} -.icon-unlink:before{content:"\f127";} -.icon-question:before{content:"\f128";} -.icon-info:before{content:"\f129";} -.icon-exclamation:before{content:"\f12a";} -.icon-superscript:before{content:"\f12b";} -.icon-subscript:before{content:"\f12c";} -.icon-eraser:before{content:"\f12d";} -.icon-puzzle-piece:before{content:"\f12e";} -.icon-microphone:before{content:"\f130";} -.icon-microphone-off:before{content:"\f131";} -.icon-shield:before{content:"\f132";} -.icon-calendar-empty:before{content:"\f133";} -.icon-fire-extinguisher:before{content:"\f134";} -.icon-rocket:before{content:"\f135";} -.icon-maxcdn:before{content:"\f136";} -.icon-chevron-sign-left:before{content:"\f137";} -.icon-chevron-sign-right:before{content:"\f138";} -.icon-chevron-sign-up:before{content:"\f139";} -.icon-chevron-sign-down:before{content:"\f13a";} -.icon-html5:before{content:"\f13b";} -.icon-css3:before{content:"\f13c";} -.icon-anchor:before{content:"\f13d";} -.icon-unlock-alt:before{content:"\f13e";} -.icon-bullseye:before{content:"\f140";} -.icon-ellipsis-horizontal:before{content:"\f141";} -.icon-ellipsis-vertical:before{content:"\f142";} -.icon-rss-sign:before{content:"\f143";} -.icon-play-sign:before{content:"\f144";} -.icon-ticket:before{content:"\f145";} -.icon-minus-sign-alt:before{content:"\f146";} -.icon-check-minus:before{content:"\f147";} -.icon-level-up:before{content:"\f148";} -.icon-level-down:before{content:"\f149";} -.icon-check-sign:before{content:"\f14a";} -.icon-edit-sign:before{content:"\f14b";} -.icon-external-link-sign:before{content:"\f14c";} -.icon-share-sign:before{content:"\f14d";} -.icon-compass:before{content:"\f14e";} -.icon-collapse:before{content:"\f150";} -.icon-collapse-top:before{content:"\f151";} -.icon-expand:before{content:"\f152";} -.icon-euro:before,.icon-eur:before{content:"\f153";} -.icon-gbp:before{content:"\f154";} -.icon-dollar:before,.icon-usd:before{content:"\f155";} -.icon-rupee:before,.icon-inr:before{content:"\f156";} -.icon-yen:before,.icon-jpy:before{content:"\f157";} -.icon-renminbi:before,.icon-cny:before{content:"\f158";} -.icon-won:before,.icon-krw:before{content:"\f159";} -.icon-bitcoin:before,.icon-btc:before{content:"\f15a";} -.icon-file:before{content:"\f15b";} -.icon-file-text:before{content:"\f15c";} -.icon-sort-by-alphabet:before{content:"\f15d";} -.icon-sort-by-alphabet-alt:before{content:"\f15e";} -.icon-sort-by-attributes:before{content:"\f160";} -.icon-sort-by-attributes-alt:before{content:"\f161";} -.icon-sort-by-order:before{content:"\f162";} -.icon-sort-by-order-alt:before{content:"\f163";} -.icon-thumbs-up:before{content:"\f164";} -.icon-thumbs-down:before{content:"\f165";} -.icon-youtube-sign:before{content:"\f166";} -.icon-youtube:before{content:"\f167";} -.icon-xing:before{content:"\f168";} -.icon-xing-sign:before{content:"\f169";} -.icon-youtube-play:before{content:"\f16a";} -.icon-dropbox:before{content:"\f16b";} -.icon-stackexchange:before{content:"\f16c";} -.icon-instagram:before{content:"\f16d";} -.icon-flickr:before{content:"\f16e";} -.icon-adn:before{content:"\f170";} -.icon-bitbucket:before{content:"\f171";} -.icon-bitbucket-sign:before{content:"\f172";} -.icon-tumblr:before{content:"\f173";} -.icon-tumblr-sign:before{content:"\f174";} -.icon-long-arrow-down:before{content:"\f175";} -.icon-long-arrow-up:before{content:"\f176";} -.icon-long-arrow-left:before{content:"\f177";} -.icon-long-arrow-right:before{content:"\f178";} -.icon-apple:before{content:"\f179";} -.icon-windows:before{content:"\f17a";} -.icon-android:before{content:"\f17b";} -.icon-linux:before{content:"\f17c";} -.icon-dribbble:before{content:"\f17d";} -.icon-skype:before{content:"\f17e";} -.icon-foursquare:before{content:"\f180";} -.icon-trello:before{content:"\f181";} -.icon-female:before{content:"\f182";} -.icon-male:before{content:"\f183";} -.icon-gittip:before{content:"\f184";} -.icon-sun:before{content:"\f185";} -.icon-moon:before{content:"\f186";} -.icon-archive:before{content:"\f187";} -.icon-bug:before{content:"\f188";} -.icon-vk:before{content:"\f189";} -.icon-weibo:before{content:"\f18a";} -.icon-renren:before{content:"\f18b";} diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss index f072415747f..91d7c5f166f 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss @@ -104,7 +104,7 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; } .v-radiobutton { - margin: 4px 0 4px -2px !important; + margin: 0 0 10px -2px !important; padding: 0 !important; border: $v-border; border-radius: 0; @@ -113,6 +113,7 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; &:first-child { border-radius: 4px 0 0 4px; + margin-left: 0 !important; } &:last-child { border-radius: 0 4px 4px 0; @@ -123,7 +124,9 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; & ~ label { margin-bottom: 0; - padding: 3px 12px; + padding: 4px 8px; + height: 28px; + line-height: 20px; } &:checked ~ label { diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css index caa62e2bd0e..dd7249aa448 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css @@ -1,6 +1,4 @@ -@import "font-awesome.min.css"; - -@import "bootstrap-reduced.css"; +@import "bootstrap-grid.min.css"; @import "general.css"; @@ -12847,7 +12845,7 @@ div.v-layout.v-horizontal.v-widget { font-weight: bold; font-size: 32px; line-height: 32px; - font-family: Source Sans Pro; + font-family: "Source Sans Pro"; letter-spacing: -1px; border-bottom: 3px solid #E10002; } @@ -12973,7 +12971,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-radiobutton { - margin: 4px 0 4px -2px !important; + margin: 0 0 10px -2px !important; padding: 0 !important; border: 2px solid #CDD8EC; border-radius: 0; @@ -12983,6 +12981,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-radiobutton:first-child { border-radius: 4px 0 0 4px; + margin-left: 0 !important; } .sormas .v-radiobutton:last-child { @@ -12995,7 +12994,9 @@ div.v-layout.v-horizontal.v-widget { :root .sormas .v-radiobutton > input ~ label { margin-bottom: 0; - padding: 3px 12px; + padding: 4px 8px; + height: 28px; + line-height: 20px; } :root .sormas .v-radiobutton > input:checked ~ label { diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.scss index cd0c0d7e4d8..95feb774c71 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.scss @@ -1,5 +1,5 @@ -@import "font-awesome.min.css"; -@import "bootstrap-reduced.css"; + +@import "bootstrap-grid.min.css"; @import "general.css"; @import "sormas.scss"; diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/valo-menu.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/valo-menu.scss index 8b2dc0d0b40..472c37ba118 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/valo-menu.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/valo-menu.scss @@ -15,7 +15,7 @@ font-weight: bold; font-size: 32px; line-height: 32px; - font-family: Source Sans Pro; + font-family: 'Source Sans Pro'; letter-spacing: -1px; border-bottom: 3px solid #E10002; } From 3bf7adbcd1834b151c02665c8db1bd39988d34f3 Mon Sep 17 00:00:00 2001 From: Martin Wahnschaffe Date: Fri, 13 Oct 2017 17:17:18 +0200 Subject: [PATCH 17/54] Update Vaadin Theme with new Design #356: button, checkbox, commit/discard --- .../sormas/ui/dashboard/DashboardView.java | 2 +- .../sormas/ui/samples/SampleCreateForm.java | 4 +- .../sormas/ui/samples/SampleEditForm.java | 4 +- .../utils/CommitDiscardWrapperComponent.java | 18 +- .../de/symeda/sormas/ui/utils/CssStyles.java | 42 +- .../webapp/VAADIN/themes/sormas/sormas.scss | 63 +- .../webapp/VAADIN/themes/sormas/styles.css | 552 +++++++++--------- .../{valo-menu.scss => menu.scss} | 1 - .../sormas/valo-components/optiongroup.scss | 40 ++ .../sormas/valo-components/textfield.scss | 13 + 10 files changed, 381 insertions(+), 358 deletions(-) rename sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/{valo-menu.scss => menu.scss} (94%) create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/optiongroup.scss create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/textfield.scss diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/DashboardView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/DashboardView.java index f13cd45bccd..b24800bbace 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/DashboardView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/DashboardView.java @@ -176,7 +176,7 @@ public void buttonClick(ClickEvent event) { refreshDashboard(); } }); - applyButton.addStyleName(CssStyles.FORCE_CAPTION_21); + applyButton.addStyleName(CssStyles.FORCE_CAPTION); dateFromFilter.setDateFormat(DateHelper.getShortDateFormat().toLocalizedPattern()); dateFromFilter.setWidth(200, Unit.PIXELS); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleCreateForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleCreateForm.java index b7afc485c1b..53e86ff9409 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleCreateForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleCreateForm.java @@ -33,11 +33,11 @@ public class SampleCreateForm extends AbstractEditForm { LayoutUtil.fluidRowLocs(SampleDto.SAMPLE_SOURCE, ""), LayoutUtil.fluidRowLocs(SampleDto.SUGGESTED_TYPE_OF_TEST, SampleDto.LAB) ), - LayoutUtil.locCss(CssStyles.VSPACE_TOP_24, SampleDto.SHIPPED), + LayoutUtil.locCss(CssStyles.VSPACETOP3, SampleDto.SHIPPED), LayoutUtil.div( LayoutUtil.fluidRowLocs(SampleDto.SHIPMENT_DATE, SampleDto.SHIPMENT_DETAILS) ), - LayoutUtil.locCss(CssStyles.VSPACE_TOP_24, SampleDto.RECEIVED), + LayoutUtil.locCss(CssStyles.VSPACETOP3, SampleDto.RECEIVED), LayoutUtil.div( LayoutUtil.fluidRowLocs(SampleDto.RECEIVED_DATE, SampleDto.LAB_SAMPLE_ID), LayoutUtil.fluidRowLocs(SampleDto.SPECIMEN_CONDITION, SampleDto.NO_TEST_POSSIBLE_REASON), diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleEditForm.java index 76de7dff847..5eba2aeae39 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleEditForm.java @@ -44,11 +44,11 @@ public class SampleEditForm extends AbstractEditForm { LayoutUtil.fluidRowLocs(SampleDto.SAMPLE_SOURCE, ""), LayoutUtil.fluidRowLocs(SampleDto.SUGGESTED_TYPE_OF_TEST, SampleDto.LAB) ), - LayoutUtil.locCss(CssStyles.VSPACE_TOP_24, SampleDto.SHIPPED), + LayoutUtil.locCss(CssStyles.VSPACETOP3, SampleDto.SHIPPED), LayoutUtil.div( LayoutUtil.fluidRowLocs(SampleDto.SHIPMENT_DATE, SampleDto.SHIPMENT_DETAILS) ), - LayoutUtil.locCss(CssStyles.VSPACE_TOP_24, SampleDto.RECEIVED), + LayoutUtil.locCss(CssStyles.VSPACETOP3, SampleDto.RECEIVED), LayoutUtil.div( LayoutUtil.fluidRowLocs(SampleDto.RECEIVED_DATE, SampleDto.LAB_SAMPLE_ID), LayoutUtil.fluidRowLocs(SampleDto.SPECIMEN_CONDITION, SampleDto.NO_TEST_POSSIBLE_REASON), diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CommitDiscardWrapperComponent.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CommitDiscardWrapperComponent.java index 2bb873311cc..3d76e6607da 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CommitDiscardWrapperComponent.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CommitDiscardWrapperComponent.java @@ -131,19 +131,18 @@ protected void setWrappedComponent(C component, FieldGroup fieldGroup) { buttonsPanel = new HorizontalLayout(); buttonsPanel.setMargin(false); + buttonsPanel.setSpacing(true); buttonsPanel.setWidth(100, Unit.PERCENTAGE); - Button discardButton = getDiscardButton(); - buttonsPanel.addComponent(discardButton); - buttonsPanel.setComponentAlignment(discardButton, - Alignment.BOTTOM_RIGHT); - buttonsPanel.setExpandRatio(discardButton, 1); - Button commitButton = getCommitButton(); buttonsPanel.addComponent(commitButton); - buttonsPanel - .setComponentAlignment(commitButton, Alignment.BOTTOM_RIGHT); - buttonsPanel.setExpandRatio(commitButton, 0); + buttonsPanel.setComponentAlignment(commitButton, Alignment.BOTTOM_RIGHT); + buttonsPanel.setExpandRatio(commitButton, 1); + + Button discardButton = getDiscardButton(); + buttonsPanel.addComponent(discardButton); + buttonsPanel.setComponentAlignment(discardButton, Alignment.BOTTOM_RIGHT); + buttonsPanel.setExpandRatio(discardButton, 0); addComponent(buttonsPanel); setComponentAlignment(buttonsPanel, Alignment.BOTTOM_RIGHT); @@ -327,7 +326,6 @@ public void buttonClick(ClickEvent event) { public Button getDiscardButton() { if (discardButton == null) { discardButton = new Button("discard"); - discardButton.addStyleName(ValoTheme.BUTTON_LINK); discardButton.addClickListener(new ClickListener() { private static final long serialVersionUID = 1L; diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java index 8e586f8f406..5dd5ec6636c 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java @@ -26,7 +26,6 @@ public final class CssStyles { public static final String VSPACE_NO_FILTERS = "vspace-no-filters"; public static final String VSPACETOP3 = "vspacetop3"; public static final String VSPACETOP4 = "vspacetop4"; - public static final String VSPACE_TOP_24 = "vspace-top-24"; public static final String SELECTABLE = "selectable"; @@ -71,7 +70,6 @@ public final class CssStyles { * Stellt sicher, dass CM-Checkboxen dieselbe Höhe wie Textfelder etc. haben */ public static final String FORCE_CAPTION = "force-caption"; - public static final String FORCE_CAPTION_21 = "force-caption-21"; public static final String CAPTION_HIDDEN = "caption-hidden"; public static final String FONT_CROSSED = "font-crossed"; @@ -118,31 +116,13 @@ public static void stylePrimary(Component component, String primaryStyle, String component.addStyleName(style); } -// public static void style(CommitDiscardWrapperComponent component) { -// component.getCommitButton().setPrimaryStyleName(CssStyles.BUTTON); -// component.getCommitButton().addStyleName(CssStyles.BUTTON_PRIMARY); -// -// component.getDiscardButton().setPrimaryStyleName(CssStyles.BUTTON); -// component.getDiscardButton().addStyleName(CssStyles.BUTTON_LINK); -// -// ConfirmationComponent deleteConfirmationComponent = component.getDeleteConfirmationComponent(); -// NativeButton cancelButton = deleteConfirmationComponent.getCancelButton(); -// stylePrimary(cancelButton, CssStyles.BUTTON, CssStyles.BUTTON_LINK); -// -// NativeButton commitButton = deleteConfirmationComponent.getConfirmButton(); -// stylePrimary(commitButton, CssStyles.BUTTON, CssStyles.BUTTON_PRIMARY); -// -// NativeButton deleteButton = component.getDeleteButton(); -// stylePrimary(deleteButton, CssStyles.BUTTON, CssStyles.BUTTON_LINK); -// } - /** - * Stylt und (de-)aktiviert die übergebenen Buttons. + * Styles and (de-)activates the given buttons. * * @param activeButton - * Dieser Button wird als aktiv gestylt, aber disabled. + * This button is styled as active but disabled. * @param allOrOtherButtons - * Diese Buttons verlieren das Aktiv-Styling und werden enabled. {@code activeButton} darf hier enthalten sein. + * These buttons lose their active styling and become enabled. {@code activeButton} may be included here. */ public static void styleSectionFilterButton(Button activeButton, Button... allOrOtherButtons) { @@ -150,12 +130,12 @@ public static void styleSectionFilterButton(Button activeButton, Button... allOr } /** - * Stylt und (de-)aktiviert die übergebenen Buttons. + * Styles and (de-)activates the given buttons. * * @param activeButton - * Dieser Button wird als aktiv gestylt, aber disabled. + * This button is styled as active but disabled. * @param allOrOtherButtons - * Diese Buttons verlieren das Aktiv-Styling und werden enabled. {@code activeButton} darf hier enthalten sein. + * These buttons lose their active styling and become enabled. {@code activeButton} may be included here. */ public static void styleSectionFilterButton(Button activeButton, Iterable allOrOtherButtons) { @@ -167,14 +147,4 @@ public static void styleSectionFilterButton(Button activeButt activeButton.setEnabled(false); activeButton.addStyleName(CssStyles.LINK_ACTIVE); } - -// /** -// * Konkateniert die css-Klassen -// * -// * @param classes -// * @return -// */ -// public static String all(String... classes) { -// return org.apache.commons.lang3.StringUtils.join(classes, " "); -// } } diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss index 91d7c5f166f..713ac52d875 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss @@ -8,11 +8,14 @@ $v-luminance-threshold: 180 !default; $v-background-color: #ffffff !default; +$v-app-background-color: #ffffff !default; $v-font-color: #394C5B !default; +$v-selection-color: #005A9C !default; $v-focus-color: #CDD8EC !default; $v-error-indicator-color: #eb2977 !default; $v-friendly-color: rgb(54, 185, 85); +$v-font-family: "Open Sans", sans-serif, "Source Sans Pro"; $v-font-size: 12px !default; $v-font-weight: 400 !default; $v-font-weight--header: 400 !default; @@ -23,7 +26,7 @@ $v-link-font-color: #1565A2; $v-unit-size: 32px !default; $v-gradient: false; -$v-border: 2px solid $v-selection-color; +$v-border: 2px solid $v-focus-color; $v-caption-font-weight: 600 !default; $valo-menu-background-color: #6691C4 !default; @@ -49,18 +52,30 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; @import "../valo/valo.scss"; -@import "valo-components/valo-menu.scss"; +@import "valo-components/menu.scss"; +@import "valo-components/optiongroup.scss"; +@import "valo-components/textfield.scss"; @import "views/login.scss"; @function valo-font-color ($bg-color, $contrast: $v-font-color-contrast) { - @return #374B5A; + @if type-of($bg-color) == color { + @if is-dark-color($bg-color) { + @return #FEFEFE; + } @else { + @return #374B59; + } + } + @return #374B59; } @mixin sormas { @include valo; + @include sormas-valo-menu; + @include sormas-valo-optiongroup; + @include sormas-valo-textfield; @include login; @@ -85,6 +100,7 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; .v-button { text-transform: uppercase; + border-color: $v-selection-color; } .v-filterselect [class$="button"] { @@ -103,43 +119,6 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; } } - .v-radiobutton { - margin: 0 0 10px -2px !important; - padding: 0 !important; - border: $v-border; - border-radius: 0; - font-size: 11px; - text-transform: uppercase; - - &:first-child { - border-radius: 4px 0 0 4px; - margin-left: 0 !important; - } - &:last-child { - border-radius: 0 4px 4px 0; - } - - :root & > input { - display: none; - - & ~ label { - margin-bottom: 0; - padding: 4px 8px; - height: 28px; - line-height: 20px; - } - - &:checked ~ label { - background: $v-selection-color; - } - - & ~ label:before, - & ~ label:after { - content: none; - } - } - } - h3 { margin-bottom: 16px; @@ -269,9 +248,7 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; .force-caption { margin-top: 1.5em; } - .force-caption-21 { - margin-top: 21px; - } + .no-margin, .h1.no-margin, .h2.no-margin, .h3.no-margin, .h4.no-margin, .h5.no-margin, .v-checkbox.no-margin label { margin: 0; } diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css index dd7249aa448..bcede1caa7e 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css @@ -379,6 +379,30 @@ font-style: normal; } +@font-face { + font-family: "Source Sans Pro"; + src: url(../valo/fonts/source-sans-pro/sourcesanspro-light.eot); + src: url(../valo/fonts/source-sans-pro/sourcesanspro-light.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/source-sans-pro/sourcesanspro-light.woff) format("woff"), url(../valo/fonts/source-sans-pro/sourcesanspro-light.ttf) format("truetype"); + font-weight: 300; + font-style: normal; +} + +@font-face { + font-family: "Source Sans Pro"; + src: url(../valo/fonts/source-sans-pro/sourcesanspro-regular.eot); + src: url(../valo/fonts/source-sans-pro/sourcesanspro-regular.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/source-sans-pro/sourcesanspro-regular.woff) format("woff"), url(../valo/fonts/source-sans-pro/sourcesanspro-regular.ttf) format("truetype"); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: "Source Sans Pro"; + src: url(../valo/fonts/source-sans-pro/sourcesanspro-semibold.eot); + src: url(../valo/fonts/source-sans-pro/sourcesanspro-semibold.eot?#iefix) format("embedded-opentype"), url(../valo/fonts/source-sans-pro/sourcesanspro-semibold.woff) format("woff"), url(../valo/fonts/source-sans-pro/sourcesanspro-semibold.ttf) format("truetype"); + font-weight: 600; + font-style: normal; +} + @-webkit-keyframes v-rotate-360 { to { -webkit-transform: rotate(360deg); @@ -1562,7 +1586,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas.v-app, .sormas.v-app-loading { - font: 400 12px/1.55 "Open Sans", sans-serif; + font: 400 12px/1.55 "Open Sans", sans-serif, "Source Sans Pro"; color: #394C5B; background-color: #ffffff; cursor: default; @@ -1715,7 +1739,7 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; background: #ffffff; - color: #374B5A; + color: #374B59; } .sormas select:focus { @@ -1755,7 +1779,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-drag-element { background: #ffffff; - color: #374B5A; + color: #374B59; -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); border-radius: 4px; @@ -1815,7 +1839,7 @@ div.v-layout.v-horizontal.v-widget { padding: 4px 4px; border-radius: 4px; background-color: white; - color: #374B5A; + color: #374B59; -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); -webkit-backface-visibility: hidden; @@ -1859,7 +1883,7 @@ div.v-layout.v-horizontal.v-widget { right: 0; bottom: 0; left: 0; - background: #5185e3; + background: #003f6d; opacity: 0.15; filter: alpha(opacity=15.0) ; pointer-events: none; @@ -1873,9 +1897,9 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-contextmenu .gwt-MenuItem-selected { - background: #CDD8EC; - color: #374B5A; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + background: #005A9C; + color: #FEFEFE; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); } .sormas .v-reconnect-dialog { @@ -1973,7 +1997,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-verticallayout-well, .sormas .v-horizontallayout-well { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); border-radius: 4px; @@ -2004,7 +2028,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-verticallayout-card, .sormas .v-horizontallayout-card { background: white; - color: #374B5A; + color: #374B59; border-radius: 4px; border: 2px solid #CDD8EC; -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); @@ -2049,7 +2073,7 @@ div.v-layout.v-horizontal.v-widget { cursor: pointer; height: 32px; padding: 0 14px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -2138,16 +2162,16 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-button-primary { height: 32px; padding: 0 14px; - color: #374B5A; + color: #FEFEFE; font-weight: 500; border-radius: 4px; border: 2px solid #CDD8EC; - background: #CDD8EC; - -webkit-box-shadow: inset 0 1px 0 #ebeef4, inset 0 -1px 0 #c4d0e7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 #ebeef4, inset 0 -1px 0 #c4d0e7, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + background: #005A9C; + -webkit-box-shadow: inset 0 1px 0 #0f6eb7, inset 0 -1px 0 #005694, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 #0f6eb7, inset 0 -1px 0 #005694, 0 2px 3px rgba(0, 0, 0, 0.05); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); padding: 0 16px; font-weight: bold; min-width: 70px; @@ -2162,7 +2186,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-button-primary:hover:after { - background-color: rgba(113, 144, 201, 0.1); + background-color: rgba(0, 134, 233, 0.1); } .sormas .v-button-primary:focus:after { @@ -2172,7 +2196,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-button-primary:active:after { - background-color: rgba(33, 88, 187, 0.2); + background-color: rgba(0, 45, 78, 0.2); } .v-ie8 .sormas .v-button-primary { @@ -2182,7 +2206,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-button-friendly { height: 32px; padding: 0 14px; - color: #374B5A; + color: #FEFEFE; font-weight: 500; @@ -2191,7 +2215,7 @@ div.v-layout.v-horizontal.v-widget { background: #36b955; -webkit-box-shadow: inset 0 1px 0 #5cc672, inset 0 -1px 0 #36b053, 0 2px 3px rgba(0, 0, 0, 0.05); box-shadow: inset 0 1px 0 #5cc672, inset 0 -1px 0 #36b053, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); } .sormas .v-button-friendly:after { @@ -2219,7 +2243,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-button-danger { height: 32px; padding: 0 14px; - color: #374B5A; + color: #FEFEFE; font-weight: 500; @@ -2228,7 +2252,7 @@ div.v-layout.v-horizontal.v-widget { background: #eb2977; -webkit-box-shadow: inset 0 1px 0 #ed5b90, inset 0 -1px 0 #e42773, 0 2px 3px rgba(0, 0, 0, 0.05); box-shadow: inset 0 1px 0 #ed5b90, inset 0 -1px 0 #e42773, 0 2px 3px rgba(0, 0, 0, 0.05); - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); } .sormas .v-button-danger:after { @@ -2279,11 +2303,11 @@ div.v-layout.v-horizontal.v-widget { -webkit-box-shadow: none; box-shadow: none; background: transparent; - color: #CDD8EC; + color: #005A9C; } .sormas .v-button-borderless-colored:hover { - color: #f2f5fa; + color: #0077cf; } .sormas .v-button-borderless-colored:hover:after { @@ -2355,7 +2379,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-button-tiny { height: 24px; padding: 0 11px; - color: #374B5A; + color: #374B59; font-size: 9px; @@ -2373,7 +2397,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-button-small { height: 27px; padding: 0 12px; - color: #374B5A; + color: #374B59; font-size: 11px; @@ -2391,7 +2415,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-button-large { height: 38px; padding: 0 17px; - color: #374B5A; + color: #374B59; font-size: 15px; @@ -2409,7 +2433,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-button-huge { height: 51px; padding: 0 22px; - color: #374B5A; + color: #374B59; font-size: 20px; @@ -2540,7 +2564,7 @@ div.v-layout.v-horizontal.v-widget { :root .sormas .v-checkbox > input ~ label:before { height: 16px; padding: 0 8px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -2568,7 +2592,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-checkbox > input:checked ~ label:after { - color: #CDD8EC; + color: #005A9C; } .sormas .v-checkbox > .v-icon, .sormas .v-checkbox > label .v-icon { @@ -2666,7 +2690,7 @@ div.v-layout.v-horizontal.v-widget { :root .sormas .v-checkbox-small > input ~ label:before { height: 13.5px; padding: 0 7px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -2694,7 +2718,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-checkbox-small > input:checked ~ label:after { - color: #CDD8EC; + color: #005A9C; } .sormas .v-checkbox-small > .v-icon, .sormas .v-checkbox-small > label .v-icon { @@ -2792,7 +2816,7 @@ div.v-layout.v-horizontal.v-widget { :root .sormas .v-checkbox-large > input ~ label:before { height: 19px; padding: 0 9px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -2820,7 +2844,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-checkbox-large > input:checked ~ label:after { - color: #CDD8EC; + color: #005A9C; } .sormas .v-checkbox-large > .v-icon, .sormas .v-checkbox-large > label .v-icon { @@ -2891,7 +2915,7 @@ div.v-layout.v-horizontal.v-widget { padding: 4px 8px; border: 2px solid #CDD8EC; background: white; - color: #374B5A; + color: #374B59; -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); -webkit-transition: box-shadow 180ms, border 180ms; @@ -2939,7 +2963,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-filterselect span.v-icon { - color: #374B5A; + color: #374B59; width: 32px; line-height: 1; padding-top: 0.12em; @@ -2982,7 +3006,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-filterselect [class$="button"]:hover:before { - color: #374B5A; + color: #374B59; } .sormas .v-filterselect [class$="button"]:active:after { @@ -3012,7 +3036,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-filterselect.v-readonly [class*="input"] { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: none; box-shadow: none; } @@ -3039,7 +3063,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-filterselect-error .v-filterselect-input { border-color: #eb2977 !important; background: #fffbfc; - color: #374B5A; + color: #374B59; } .sormas .v-filterselect-error .v-filterselect-button { @@ -3061,7 +3085,7 @@ div.v-layout.v-horizontal.v-widget { padding: 4px 4px; border-radius: 4px; background-color: white; - color: #374B5A; + color: #374B59; -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); -webkit-backface-visibility: hidden; @@ -3106,7 +3130,7 @@ div.v-layout.v-horizontal.v-widget { right: 0; bottom: 0; left: 0; - background: #5185e3; + background: #003f6d; opacity: 0.15; filter: alpha(opacity=15.0) ; pointer-events: none; @@ -3120,16 +3144,16 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-filterselect-suggestpopup .gwt-MenuItem-selected { - background: #CDD8EC; - color: #374B5A; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + background: #005A9C; + color: #FEFEFE; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); } .sormas .v-filterselect-suggestpopup [class$="status"] { position: absolute; right: 4px; background: rgba(217, 217, 217, 0.9); - color: #374B5A; + color: #374B59; border-radius: 0 0 4px 4px; height: 20px; bottom: -20px; @@ -3144,7 +3168,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-filterselect-suggestpopup [class$="status"] > * { - color: #374B5A; + color: #374B59; text-decoration: none; } @@ -3168,7 +3192,7 @@ div.v-layout.v-horizontal.v-widget { -ms-transform: scale(0.8); -o-transform: scale(0.8); transform: scale(0.8); - color: #374B5A; + color: #374B59; } .sormas .v-filterselect-suggestpopup div[class*="page"]:after { @@ -3369,7 +3393,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-filterselect-tiny span.v-icon { - color: #374B5A; + color: #374B59; width: 24px; line-height: 1; padding-top: 0.12em; @@ -3424,7 +3448,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-filterselect-tiny.v-readonly [class*="input"] { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: none; box-shadow: none; } @@ -3496,7 +3520,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-filterselect-compact span.v-icon, .sormas .v-filterselect-small span.v-icon { - color: #374B5A; + color: #374B59; width: 27px; line-height: 1; padding-top: 0.12em; @@ -3551,7 +3575,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-filterselect-compact.v-readonly [class*="input"], .sormas .v-filterselect-small.v-readonly [class*="input"] { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: none; box-shadow: none; } @@ -3628,7 +3652,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-filterselect-large span.v-icon { - color: #374B5A; + color: #374B59; width: 38px; line-height: 1; padding-top: 0.12em; @@ -3683,7 +3707,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-filterselect-large.v-readonly [class*="input"] { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: none; box-shadow: none; } @@ -3756,7 +3780,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-filterselect-huge span.v-icon { - color: #374B5A; + color: #374B59; width: 51px; line-height: 1; padding-top: 0.12em; @@ -3811,7 +3835,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-filterselect-huge.v-readonly [class*="input"] { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: none; box-shadow: none; } @@ -3832,7 +3856,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-csslayout-well { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); border-radius: 4px; @@ -3863,7 +3887,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-csslayout-card { background: white; - color: #374B5A; + color: #374B59; border-radius: 4px; border: 2px solid #CDD8EC; -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); @@ -4028,7 +4052,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-formlayout.light > table > tbody > tr > [class*="captioncell"] { - color: #374B5A; + color: #374B59; text-align: right; padding-left: 11px; line-height: 32px; @@ -4319,7 +4343,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid .header-drag-table .v-grid-header > .v-grid-drop-marker { - background-color: #CDD8EC; + background-color: #005A9C; position: absolute; width: 3px; } @@ -4448,7 +4472,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid-row-selected > td { - background: #CDD8EC; + background: #005A9C; } .sormas .v-grid-row-focused > td { @@ -4571,7 +4595,7 @@ div.v-layout.v-horizontal.v-widget { right: 0; bottom: 0; left: 0; - border: 2px solid #CDD8EC; + border: 2px solid #005A9C; display: none; pointer-events: none; } @@ -4761,7 +4785,7 @@ div.v-layout.v-horizontal.v-widget { top: 0; left: 0; width: 4px; - background-color: #CDD8EC; + background-color: #005A9C; position: absolute; height: 100%; pointer-events: none; @@ -4819,14 +4843,14 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid-row-selected > .v-grid-cell { - background: #CDD8EC; - color: #374B5A; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); - border-color: #b4c2dc; + background: #005A9C; + color: #FEFEFE; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); + border-color: #05426f; } .sormas .v-grid-row-selected > .v-grid-cell-focused:before { - border-color: white; + border-color: #0394ff; } .sormas .v-grid-editor { @@ -5005,7 +5029,7 @@ div.v-layout.v-horizontal.v-widget { padding: 4px 8px; border: 2px solid #CDD8EC; background: white; - color: #374B5A; + color: #374B59; -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); -webkit-transition: box-shadow 180ms, border 180ms; @@ -5042,7 +5066,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-textfield-readonly { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: none; box-shadow: none; } @@ -5055,7 +5079,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-textfield-error { border-color: #eb2977 !important; background: #fffbfc; - color: #374B5A; + color: #374B59; } .sormas .v-textfield-borderless { @@ -5471,7 +5495,7 @@ div.v-layout.v-horizontal.v-widget { padding: 5px; border: 2px solid #CDD8EC; background: white; - color: #374B5A; + color: #374B59; -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); -webkit-transition: box-shadow 180ms, border 180ms; @@ -5517,7 +5541,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-textarea-readonly { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: none; box-shadow: none; } @@ -5530,7 +5554,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-textarea-error { border-color: #eb2977 !important; background: #fffbfc; - color: #374B5A; + color: #374B59; } .sormas .v-textarea-borderless { @@ -5759,7 +5783,7 @@ div.v-layout.v-horizontal.v-widget { padding: 4px 8px; border: 2px solid #CDD8EC; background: white; - color: #374B5A; + color: #374B59; -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); -webkit-transition: box-shadow 180ms, border 180ms; @@ -5826,7 +5850,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-datefield [class*="button"]:hover { - color: #374B5A; + color: #374B59; } .sormas .v-datefield [class*="button"]:before { @@ -5864,7 +5888,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-datefield.v-readonly [class*="textfield"] { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: none; box-shadow: none; } @@ -5886,7 +5910,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-datefield-error .v-datefield-textfield { border-color: #eb2977 !important; background: #fffbfc; - color: #374B5A; + color: #374B59; } .sormas .v-datefield-error .v-datefield-button { @@ -5914,7 +5938,7 @@ div.v-layout.v-horizontal.v-widget { padding: 4px 4px; border-radius: 4px; background-color: white; - color: #374B5A; + color: #374B59; -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); -webkit-backface-visibility: hidden; @@ -5982,7 +6006,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-datefield-popup .v-datefield-calendarpanel-day:hover { - color: #CDD8EC; + color: #005A9C; } .sormas .v-datefield-popup .v-datefield-calendarpanel-day-offmonth { @@ -5991,14 +6015,14 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-datefield-popup .v-datefield-calendarpanel-day-today { - color: #374B5A; + color: #374B59; font-weight: 600; - border-color: #374B5A; + border-color: #374B59; } .sormas .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected, .sormas .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected:hover { - color: #374B5A; - background: #CDD8EC; + color: #FEFEFE; + background: #005A9C; border: none; font-weight: 600; } @@ -6097,7 +6121,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-datefield-popup td.v-datefield-calendarpanel-month { width: 128px; - color: #CDD8EC; + color: #005A9C; } .sormas .v-datefield-popup .v-datefield-calendarpanel-year td.v-datefield-calendarpanel-month { @@ -6173,7 +6197,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-datefield-calendarpanel-day:hover { - color: #CDD8EC; + color: #005A9C; } .sormas .v-datefield-calendarpanel-day-offmonth { @@ -6182,14 +6206,14 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-datefield-calendarpanel-day-today { - color: #374B5A; + color: #374B59; font-weight: 600; - border-color: #374B5A; + border-color: #374B59; } .sormas .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected, .sormas .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-selected:hover { - color: #374B5A; - background: #CDD8EC; + color: #FEFEFE; + background: #005A9C; border: none; font-weight: 600; } @@ -6288,7 +6312,7 @@ div.v-layout.v-horizontal.v-widget { .sormas td.v-datefield-calendarpanel-month { width: 128px; - color: #CDD8EC; + color: #005A9C; } .sormas .v-datefield-calendarpanel-year td.v-datefield-calendarpanel-month { @@ -6464,7 +6488,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-datefield-tiny.v-readonly [class*="textfield"] { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: none; box-shadow: none; } @@ -6579,7 +6603,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-datefield-compact.v-readonly [class*="textfield"], .sormas .v-datefield-small.v-readonly [class*="textfield"] { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: none; box-shadow: none; } @@ -6699,7 +6723,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-datefield-large.v-readonly [class*="textfield"] { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: none; box-shadow: none; } @@ -6815,7 +6839,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-datefield-huge.v-readonly [class*="textfield"] { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: none; box-shadow: none; } @@ -6866,7 +6890,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-inline-datefield-calendarpanel-day:hover { - color: #CDD8EC; + color: #005A9C; } .sormas .v-inline-datefield-calendarpanel-day-offmonth { @@ -6875,14 +6899,14 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-inline-datefield-calendarpanel-day-today { - color: #374B5A; + color: #374B59; font-weight: 600; - border-color: #374B5A; + border-color: #374B59; } .sormas .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-selected, .sormas .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-selected:hover { - color: #374B5A; - background: #CDD8EC; + color: #FEFEFE; + background: #005A9C; border: none; font-weight: 600; } @@ -6981,7 +7005,7 @@ div.v-layout.v-horizontal.v-widget { .sormas td.v-inline-datefield-calendarpanel-month { width: 128px; - color: #CDD8EC; + color: #005A9C; } .sormas .v-inline-datefield-calendarpanel-year td.v-inline-datefield-calendarpanel-month { @@ -7062,7 +7086,7 @@ div.v-layout.v-horizontal.v-widget { cursor: pointer; height: 32px; padding: 0 14px; - color: #374B5A; + color: #374B59; font-weight: 500; cursor: default; @@ -7217,7 +7241,7 @@ div.v-layout.v-horizontal.v-widget { background-color: #f2f2f2; background-image: -webkit-linear-gradient(bottom, #f2f2f2 0%, #f2f2f2 100%); background-image: linear-gradient(to top,#f2f2f2 0%, #f2f2f2 100%); - color: #374B5A; + color: #374B59; } .sormas .v-disabled > .v-menubar-menuitem, .sormas .v-menubar > .v-menubar-menuitem-disabled { @@ -7234,16 +7258,16 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-menubar > .v-menubar-menuitem-selected { - color: #374B5A; + color: #FEFEFE; border-radius: 0; border: 2px solid #CDD8EC; - background: #CDD8EC; - -webkit-box-shadow: inset 0 1px 0 #ebeef4, inset 0 -1px 0 #c4d0e7; - box-shadow: inset 0 1px 0 #ebeef4, inset 0 -1px 0 #c4d0e7; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + background: #005A9C; + -webkit-box-shadow: inset 0 1px 0 #0f6eb7, inset 0 -1px 0 #005694; + box-shadow: inset 0 1px 0 #0f6eb7, inset 0 -1px 0 #005694; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); border-top-width: 0; border-left-width: 0; border-bottom-width: 0; @@ -7275,7 +7299,7 @@ div.v-layout.v-horizontal.v-widget { padding: 4px 4px; border-radius: 4px; background-color: white; - color: #374B5A; + color: #374B59; -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); -webkit-backface-visibility: hidden; @@ -7323,7 +7347,7 @@ div.v-layout.v-horizontal.v-widget { right: 0; bottom: 0; left: 0; - background: #5185e3; + background: #003f6d; opacity: 0.15; filter: alpha(opacity=15.0) ; pointer-events: none; @@ -7349,9 +7373,9 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-menubar-popup .v-menubar-menuitem-selected { - background: #CDD8EC; - color: #374B5A; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + background: #005A9C; + color: #FEFEFE; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); } .sormas .v-menubar-popup .v-menubar-separator { @@ -7380,7 +7404,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-menubar-small { height: 27px; padding: 0 12px; - color: #374B5A; + color: #374B59; font-weight: 500; cursor: default; @@ -7428,7 +7452,7 @@ div.v-layout.v-horizontal.v-widget { border: none; margin-right: 2px; border-radius: 4px; - color: #CDD8EC; + color: #005A9C; padding: 0 11px; -webkit-transition: color 140ms; -moz-transition: color 140ms; @@ -7444,7 +7468,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-menubar-borderless .v-menubar-menuitem:hover { - color: #f2f5fa; + color: #0077cf; } .sormas .v-menubar-borderless .v-menubar-menuitem:active { @@ -7453,7 +7477,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-menubar-borderless .v-menubar-menuitem-checked, .sormas .v-menubar-borderless .v-menubar-menuitem-checked:first-child { border: 2px solid #CDD8EC; - color: #CDD8EC; + color: #005A9C; } .sormas .v-menubar-borderless .v-menubar-menuitem-checked .v-menubar-menuitem-caption, .sormas .v-menubar-borderless .v-menubar-menuitem-checked:first-child .v-menubar-menuitem-caption { @@ -7462,12 +7486,12 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-menubar-borderless .v-menubar-menuitem-selected { - color: #374B5A; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + color: #FEFEFE; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); } .sormas .v-menubar-borderless .v-menubar-menuitem-selected:hover { - color: #374B5A; + color: #FEFEFE; } .sormas .v-menubar-borderless .v-menubar-menuitem-disabled, .sormas .v-menubar-borderless .v-menubar-menuitem-disabled:hover { @@ -7531,7 +7555,7 @@ div.v-layout.v-horizontal.v-widget { :root .sormas .v-radiobutton > input ~ label:before { height: 16px; padding: 0 8px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -7559,7 +7583,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-radiobutton > input:checked ~ label:after { - color: #CDD8EC; + color: #005A9C; } .sormas .v-radiobutton > .v-icon, .sormas .v-radiobutton > label .v-icon { @@ -7604,7 +7628,7 @@ div.v-layout.v-horizontal.v-widget { height: 6px; top: 5px; left: 5px; - background: #CDD8EC; + background: #005A9C; } :root .sormas .v-radiobutton > input ~ label:before, :root .sormas .v-radiobutton > input ~ label:after { @@ -7690,7 +7714,7 @@ div.v-layout.v-horizontal.v-widget { :root .sormas .v-select-optiongroup-small .v-checkbox > input ~ label:before { height: 13.5px; padding: 0 7px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -7718,7 +7742,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-select-optiongroup-small .v-checkbox > input:checked ~ label:after { - color: #CDD8EC; + color: #005A9C; } .sormas .v-select-optiongroup-small .v-checkbox > .v-icon, .sormas .v-select-optiongroup-small .v-checkbox > label .v-icon { @@ -7815,7 +7839,7 @@ div.v-layout.v-horizontal.v-widget { :root .sormas .v-select-optiongroup-small .v-radiobutton > input ~ label:before { height: 13.5px; padding: 0 7px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -7843,7 +7867,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-select-optiongroup-small .v-radiobutton > input:checked ~ label:after { - color: #CDD8EC; + color: #005A9C; } .sormas .v-select-optiongroup-small .v-radiobutton > .v-icon, .sormas .v-select-optiongroup-small .v-radiobutton > label .v-icon { @@ -7888,7 +7912,7 @@ div.v-layout.v-horizontal.v-widget { height: 5px; top: 5px; left: 5px; - background: #CDD8EC; + background: #005A9C; } :root .sormas .v-select-optiongroup-small .v-radiobutton > input ~ label:before, :root .sormas .v-select-optiongroup-small .v-radiobutton > input ~ label:after { @@ -7974,7 +7998,7 @@ div.v-layout.v-horizontal.v-widget { :root .sormas .v-select-optiongroup-large .v-checkbox > input ~ label:before { height: 19px; padding: 0 9px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -8002,7 +8026,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-select-optiongroup-large .v-checkbox > input:checked ~ label:after { - color: #CDD8EC; + color: #005A9C; } .sormas .v-select-optiongroup-large .v-checkbox > .v-icon, .sormas .v-select-optiongroup-large .v-checkbox > label .v-icon { @@ -8099,7 +8123,7 @@ div.v-layout.v-horizontal.v-widget { :root .sormas .v-select-optiongroup-large .v-radiobutton > input ~ label:before { height: 19px; padding: 0 9px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -8127,7 +8151,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-select-optiongroup-large .v-radiobutton > input:checked ~ label:after { - color: #CDD8EC; + color: #005A9C; } .sormas .v-select-optiongroup-large .v-radiobutton > .v-icon, .sormas .v-select-optiongroup-large .v-radiobutton > label .v-icon { @@ -8172,7 +8196,7 @@ div.v-layout.v-horizontal.v-widget { height: 7px; top: 6px; left: 6px; - background: #CDD8EC; + background: #005A9C; } :root .sormas .v-select-optiongroup-large .v-radiobutton > input ~ label:before, :root .sormas .v-select-optiongroup-large .v-radiobutton > input ~ label:after { @@ -8257,7 +8281,7 @@ div.v-layout.v-horizontal.v-widget { padding: 4px 4px; border-radius: 4px; background-color: white; - color: #374B5A; + color: #374B59; -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); -webkit-backface-visibility: hidden; @@ -8358,7 +8382,7 @@ div.v-layout.v-horizontal.v-widget { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; - color: #73818b; + color: #73818a; } .sormas .v-window-restorebox-disabled ~ .v-window-closebox ~ .v-window-header, .sormas .v-window-maximizebox-disabled ~ .v-window-closebox ~ .v-window-header { @@ -8384,7 +8408,7 @@ div.v-layout.v-horizontal.v-widget { text-align: center; cursor: pointer; font-size: 16px; - color: #374B5A; + color: #374B59; -webkit-transition: color 140ms; -moz-transition: color 140ms; transition: color 140ms; @@ -8397,7 +8421,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-window-closebox:hover, .sormas .v-window-maximizebox:hover, .sormas .v-window-restorebox:hover { opacity: 1; filter: none ; - color: #CDD8EC; + color: #005A9C; } .sormas .v-window-closebox:active, .sormas .v-window-maximizebox:active, .sormas .v-window-restorebox:active { @@ -8749,18 +8773,18 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-tree-node-selected { - color: #374B5A; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + color: #FEFEFE; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); } .sormas .v-tree-node-selected:after { opacity: 1; - background: #CDD8EC; + background: #005A9C; border: none; } .v-ie8 .sormas .v-tree-node-selected { - background: #CDD8EC; + background: #005A9C; } .sormas .v-tree-node-children { @@ -8813,7 +8837,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-table { position: relative; background: #ffffff; - color: #374B5A; + color: #374B59; overflow: hidden; } @@ -8969,23 +8993,23 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-table [class*="-row"].v-selected { - background: #CDD8EC; + background: #005A9C; background-origin: border-box; - color: #374B5A; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + color: #FEFEFE; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); } .sormas .v-table [class*="-row"].v-selected + .v-selected { - background: #CDD8EC; + background: #005A9C; } .sormas .v-table [class*="-row"].v-selected + .v-selected td { - border-top-color: #CDD8EC; + border-top-color: #005A9C; } .sormas .v-table [class*="-row"].v-selected .v-table-cell-content { border-color: transparent; - border-left-color: #b4c2dc; + border-left-color: #05426f; } .sormas .v-table [class*="-row"].v-selected .v-table-cell-content:first-child { @@ -9056,7 +9080,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-table-column-selector { height: 32px; padding: 0 14px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -9168,7 +9192,7 @@ div.v-layout.v-horizontal.v-widget { .sormas tbody.v-drag-element tr { display: block; - color: #374B5A; + color: #374B59; -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); border-radius: 4px; @@ -9212,7 +9236,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-table-row-drag-middle .v-table-cell-content { background-color: #f5f7fb; - color: #374B5A; + color: #374B59; } .sormas .v-table-row-drag-bottom td.v-table-cell-content { @@ -9425,7 +9449,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before { height: 32px; padding: 0 14px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -9479,7 +9503,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before { height: 32px; padding: 0 14px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -9528,7 +9552,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before { height: 32px; padding: 0 14px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -9596,7 +9620,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before { height: 32px; padding: 0 14px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -9660,7 +9684,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-progressbar-indicator { border-radius: 4px; height: inherit; - background: #CDD8EC; + background: #005A9C; border: 2px solid #CDD8EC; @@ -9688,7 +9712,7 @@ div.v-layout.v-horizontal.v-widget { display: inline-block; border-radius: 4px; height: inherit; - background: #CDD8EC; + background: #005A9C; border: 2px solid #CDD8EC; @@ -9782,7 +9806,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-slider-base:after { border-radius: 4px; height: inherit; - background: #CDD8EC; + background: #005A9C; border: 2px solid #CDD8EC; @@ -9816,7 +9840,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-slider-handle:before { height: 32px; padding: 0 14px; - color: #374B5A; + color: #374B59; font-weight: 500; @@ -9920,7 +9944,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-slider-vertical .v-slider-base:after { height: 101%; margin-left: 0; - background: #CDD8EC; + background: #005A9C; } .v-ie8 .sormas .v-slider-vertical .v-slider-base:after { @@ -9996,7 +10020,7 @@ div.v-layout.v-horizontal.v-widget { line-height: 32px; font-size: 11px; font-weight: 400; - color: #374B5A; + color: #374B59; width: auto !important; overflow: hidden; text-overflow: ellipsis; @@ -10016,7 +10040,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-tabsheet-tabitemcell .v-caption:hover { - color: #CDD8EC; + color: #005A9C; } .sormas .v-tabsheet-tabitemcell .v-caption.v-disabled { @@ -10035,12 +10059,12 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-tabsheet-tabitemcell:focus .v-caption { - color: #CDD8EC; + color: #005A9C; } .sormas .v-tabsheet-tabitemcell .v-tabsheet-tabitem-selected .v-caption.v-caption { - border-bottom-color: #CDD8EC; - color: #CDD8EC; + border-bottom-color: #005A9C; + color: #005A9C; } .sormas .v-tabsheet-tabitemcell .v-caption-closable { @@ -10061,17 +10085,17 @@ div.v-layout.v-horizontal.v-widget { width: 13px; text-align: center; border-radius: 2px; - color: #374B5A; + color: #374B59; } .sormas .v-tabsheet-tabitemcell .v-tabsheet-caption-close:hover { background: rgba(0, 0, 0, 0.03); - color: #CDD8EC; + color: #005A9C; } .sormas .v-tabsheet-tabitemcell .v-tabsheet-caption-close:active { - background: #CDD8EC; - color: #374B5A; + background: #005A9C; + color: #FEFEFE; } .sormas .v-tabsheet-scroller { @@ -10130,13 +10154,13 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-tabsheet-scroller button:hover { opacity: 1; filter: none ; - color: #CDD8EC; + color: #005A9C; } .sormas .v-tabsheet-scroller button:active { opacity: 0.7; filter: alpha(opacity=70) ; - color: #CDD8EC; + color: #005A9C; } .sormas .v-tabsheet-scroller button::-moz-focus-inner { @@ -10489,7 +10513,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-panel { background: white; - color: #374B5A; + color: #374B59; border-radius: 4px; border: 2px solid #CDD8EC; -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); @@ -10507,7 +10531,7 @@ div.v-layout.v-horizontal.v-widget { background-color: #ffffff; background-image: -webkit-linear-gradient(top, #ffffff 0%, #ffffff 100%); background-image: linear-gradient(to bottom,#ffffff 0%, #ffffff 100%); - color: #374B5A; + color: #374B59; font-weight: 600; font-size: 11px; -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; @@ -10561,7 +10585,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-panel-well { background: #fafafa; - color: #374B5A; + color: #374B59; -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); border-radius: 4px; @@ -10616,7 +10640,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-accordion { background: white; - color: #374B5A; + color: #374B59; border-radius: 4px; border: 2px solid #CDD8EC; -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); @@ -10672,7 +10696,7 @@ div.v-layout.v-horizontal.v-widget { background-color: #ffffff; background-image: -webkit-linear-gradient(top, #ffffff 0%, #ffffff 100%); background-image: linear-gradient(to bottom,#ffffff 0%, #ffffff 100%); - color: #374B5A; + color: #374B59; font-weight: 600; font-size: 11px; -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; @@ -10748,7 +10772,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-select-twincol select { border: 2px solid #CDD8EC; background: #ffffff; - color: #374B5A; + color: #374B59; } .sormas .v-select-twincol select:focus { @@ -10830,13 +10854,13 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-select-twincol-error .v-select-twincol-options, .sormas .v-select-twincol-error .v-select-twincol-selections { border-color: #eb2977 !important; background: #fffbfc; - color: #374B5A; + color: #374B59; } .sormas .v-select select { border: 2px solid #CDD8EC; background: #ffffff; - color: #374B5A; + color: #374B59; } .sormas .v-select select:focus { @@ -10862,7 +10886,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-select-error .v-select-select { border-color: #eb2977 !important; background: #fffbfc; - color: #374B5A; + color: #374B59; } .sormas .v-calendar-header-day { @@ -10986,7 +11010,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-calendar-month-day-selected { - background-color: #fafbfd; + background-color: #e5eef5; } .sormas .v-calendar-month-day-dragemphasis { @@ -11081,7 +11105,7 @@ div.v-layout.v-horizontal.v-widget { right: 0; bottom: -1px; left: 0; - background: #CDD8EC; + background: #005A9C; opacity: 0.5; filter: alpha(opacity=50) ; border-radius: 4px 4px 0 0; @@ -11317,7 +11341,7 @@ div.v-layout.v-horizontal.v-widget { .sormas h1, .sormas .v-label-h1, .sormas h2, .sormas .v-label-h2, .sormas h3, .sormas .v-label-h3 { line-height: 1.1; font-weight: 400; - color: #374B5A; + color: #374B59; } .sormas h1, .sormas .v-label-h1 { @@ -11348,7 +11372,7 @@ div.v-layout.v-horizontal.v-widget { line-height: 1.1; font-weight: 600; font-size: 11px; - color: #374B5A; + color: #374B59; text-transform: uppercase; letter-spacing: 0; margin-top: 2.4em; @@ -11372,7 +11396,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-label-colored { - color: #CDD8EC; + color: #005A9C; } .sormas .v-label-large { @@ -11437,7 +11461,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-label-success, .sormas .v-label-failure { background: white; - color: #374B5A; + color: #374B59; border: 2px solid #36b955; border-radius: 4px; padding: 6px 16px 6px 32px; @@ -11566,7 +11590,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-select select { border: 2px solid #CDD8EC; background: #ffffff; - color: #374B5A; + color: #374B59; } .sormas .v-select select:focus { @@ -11592,7 +11616,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-select-error .v-select-select { border-color: #eb2977 !important; background: #fffbfc; - color: #374B5A; + color: #374B59; } .sormas .v-popupview { @@ -11618,7 +11642,7 @@ div.v-layout.v-horizontal.v-widget { padding: 4px 4px; border-radius: 4px; background-color: white; - color: #374B5A; + color: #374B59; -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); -webkit-backface-visibility: hidden; @@ -11704,7 +11728,7 @@ div.v-layout.v-horizontal.v-widget { padding: 0; border: 2px solid #CDD8EC; background: white; - color: #374B5A; + color: #374B59; -webkit-box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 0 #f7f7f7, 0 1px 0 rgba(255, 255, 255, 0.1); -webkit-transition: box-shadow 180ms, border 180ms; @@ -11729,7 +11753,7 @@ div.v-layout.v-horizontal.v-widget { -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; border-bottom: 2px solid #CDD8EC; - color: #374B5A; + color: #374B59; } .sormas .v-richtextarea .gwt-ToggleButton, .sormas .v-richtextarea .gwt-PushButton { @@ -11741,7 +11765,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-richtextarea .gwt-ToggleButton:hover, .sormas .v-richtextarea .gwt-PushButton:hover { - color: #374B5A; + color: #374B59; } .sormas .v-richtextarea .gwt-ToggleButton-down, .sormas .v-richtextarea .gwt-ToggleButton-down-hovering { @@ -12072,11 +12096,11 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-Notification.error .v-Notification-caption { - color: #374B5A; + color: #FEFEFE; } .sormas .v-Notification.error .v-Notification-description { - color: #374B5A; + color: #FEFEFE; } .sormas .v-Notification.dark { @@ -12252,7 +12276,7 @@ div.v-layout.v-horizontal.v-widget { background-color: #6691C4; background-image: -webkit-linear-gradient(right, #6691c4 0%, #6691C4 8px); background-image: linear-gradient(to left,#6691c4 0%, #6691C4 8px); - color: #374B5A; + color: #FEFEFE; font-size: 11px; line-height: 26px; border-right: 2px solid #CDD8EC; @@ -12293,9 +12317,9 @@ div.v-layout.v-horizontal.v-widget { .sormas .valo-menu-title { line-height: 1.2; - background: #CDD8EC; - color: #374B5A; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + background: #005A9C; + color: #FEFEFE; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); padding: 11px 16px; font-size: 11px; border-bottom: 2px solid #CDD8EC; @@ -12315,8 +12339,8 @@ div.v-layout.v-horizontal.v-widget { .sormas .valo-menu-title .v-menubar-menuitem { background: transparent; - -webkit-box-shadow: inset 0 1px 0 #ebeef4, inset 0 -1px 0 #c4d0e7; - box-shadow: inset 0 1px 0 #ebeef4, inset 0 -1px 0 #c4d0e7; + -webkit-box-shadow: inset 0 1px 0 #0f6eb7, inset 0 -1px 0 #005694; + box-shadow: inset 0 1px 0 #0f6eb7, inset 0 -1px 0 #005694; text-shadow: inherit; font-size: 12px; border-color: inherit; @@ -12355,7 +12379,7 @@ div.v-layout.v-horizontal.v-widget { border: none; margin-right: 2px; border-radius: 4px; - color: #CDD8EC; + color: #005A9C; padding: 0 11px; -webkit-transition: color 140ms; -moz-transition: color 140ms; @@ -12371,7 +12395,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-menubar-user-menu .v-menubar-menuitem:hover { - color: #f2f5fa; + color: #0077cf; } .sormas .v-menubar-user-menu .v-menubar-menuitem:active { @@ -12380,7 +12404,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-menubar-user-menu .v-menubar-menuitem-checked, .sormas .v-menubar-user-menu .v-menubar-menuitem-checked:first-child { border: 2px solid #CDD8EC; - color: #CDD8EC; + color: #005A9C; } .sormas .v-menubar-user-menu .v-menubar-menuitem-checked .v-menubar-menuitem-caption, .sormas .v-menubar-user-menu .v-menubar-menuitem-checked:first-child .v-menubar-menuitem-caption { @@ -12389,12 +12413,12 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-menubar-user-menu .v-menubar-menuitem-selected { - color: #374B5A; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + color: #FEFEFE; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); } .sormas .v-menubar-user-menu .v-menubar-menuitem-selected:hover { - color: #374B5A; + color: #FEFEFE; } .sormas .v-menubar-user-menu .v-menubar-menuitem-disabled, .sormas .v-menubar-user-menu .v-menubar-menuitem-disabled:hover { @@ -12430,13 +12454,13 @@ div.v-layout.v-horizontal.v-widget { } .sormas .valo-menu-subtitle { - color: #374B5A; + color: #FEFEFE; margin: 6px 0 6px 16px; border-bottom: 2px solid #7ca1cc; } .sormas .valo-menu-subtitle [class*="badge"] { - color: #8291a3; + color: #7faccd; } .sormas .valo-menuitems { @@ -12450,7 +12474,7 @@ div.v-layout.v-horizontal.v-widget { cursor: pointer; position: relative; overflow: hidden; - text-shadow: 0 -2px 0 rgba(255, 255, 255, 0.05); + text-shadow: 0 2px 0 rgba(0, 0, 0, 0.05); -webkit-transition: background-color 300ms, color 60ms; -moz-transition: background-color 300ms, color 60ms; transition: background-color 300ms, color 60ms; @@ -12467,7 +12491,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .valo-menu-item [class*="badge"] { - color: #CDD8EC; + color: #005A9C; } .sormas .valo-menu-item.selected { @@ -12475,16 +12499,16 @@ div.v-layout.v-horizontal.v-widget { } .sormas .valo-menu-item.selected .v-icon { - color: #CDD8EC; + color: #005A9C; } .sormas .valo-menu-item.selected [class*="badge"] { - background: #CDD8EC; - color: #374B5A; + background: #005A9C; + color: #FEFEFE; } .sormas .valo-menu-item:focus, .sormas .valo-menu-item:hover, .sormas .valo-menu-item.selected { - color: #374B5A; + color: #FEFEFE; } .sormas .valo-menu-item span.v-icon { @@ -12613,8 +12637,8 @@ div.v-layout.v-horizontal.v-widget { height: 38px; border-radius: 4px; text-align: center; - background: #CDD8EC; - color: #374B5A; + background: #005A9C; + color: #FEFEFE; font-size: 21px; line-height: 38px; margin: 16px auto; @@ -12767,7 +12791,7 @@ div.v-layout.v-horizontal.v-widget { margin: 0; padding: 0; height: 32px; - color: #374B5A; + color: #FEFEFE; max-width: 30%; -webkit-backface-visibility: hidden; } @@ -12791,7 +12815,7 @@ div.v-layout.v-horizontal.v-widget { background-color: #6691C4; background-image: -webkit-linear-gradient(right, #6691c4 0%, #6691C4 8px); background-image: linear-gradient(to left,#6691c4 0%, #6691C4 8px); - color: #374B5A; + color: #FEFEFE; font-size: 11px; line-height: 26px; border-right: 2px solid #CDD8EC; @@ -12873,6 +12897,48 @@ div.v-layout.v-horizontal.v-widget { color: #005A9C !important; } +.sormas .v-radiobutton { + margin: 0 0 10px -2px !important; + padding: 0 !important; + border: 2px solid #CDD8EC; + border-radius: 0; + font-size: 11px; + text-transform: uppercase; +} + +.sormas .v-radiobutton:first-child { + border-radius: 4px 0 0 4px; + margin-left: 0 !important; +} + +.sormas .v-radiobutton:last-child { + border-radius: 0 4px 4px 0; +} + +:root .sormas .v-radiobutton > input { + display: none; +} + +:root .sormas .v-radiobutton > input ~ label { + margin-bottom: 0; + padding: 4px 8px; + height: 28px; + line-height: 20px; +} + +:root .sormas .v-radiobutton > input:checked ~ label { + background: #CDD8EC; +} + +:root .sormas .v-radiobutton > input ~ label:before, :root .sormas .v-radiobutton > input ~ label:after { + content: none; +} + +.sormas .v-textfield.v-readonly { + border: none; + padding-left: 0; +} + .sormas .login-screen { background: #EFF5FC; background-image: url(views/img/login-bg.png); @@ -12885,7 +12951,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .login-screen .login-form { background: white; - color: #374B5A; + color: #374B59; border-radius: 4px; border: 2px solid #CDD8EC; -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); @@ -12906,10 +12972,10 @@ div.v-layout.v-horizontal.v-widget { left: 0; width: 300px; height: 100%; - background: #CDD8EC; - background-color: rgba(205, 216, 236, 0.7); + background: #005A9C; + background-color: rgba(0, 90, 156, 0.7); padding: 21px 21px 21px 21px; - color: #374B5A; + color: #FEFEFE; -webkit-animation: valo-animate-in-fade 1s 1s backwards; -moz-animation: valo-animate-in-fade 1s 1s backwards; animation: valo-animate-in-fade 1s 1s backwards; @@ -12952,6 +13018,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-button { text-transform: uppercase; + border-color: #005A9C; } .sormas .v-filterselect [class$="button"] { @@ -12970,43 +13037,6 @@ div.v-layout.v-horizontal.v-widget { color: #394C5B; } -.sormas .v-radiobutton { - margin: 0 0 10px -2px !important; - padding: 0 !important; - border: 2px solid #CDD8EC; - border-radius: 0; - font-size: 11px; - text-transform: uppercase; -} - -.sormas .v-radiobutton:first-child { - border-radius: 4px 0 0 4px; - margin-left: 0 !important; -} - -.sormas .v-radiobutton:last-child { - border-radius: 0 4px 4px 0; -} - -:root .sormas .v-radiobutton > input { - display: none; -} - -:root .sormas .v-radiobutton > input ~ label { - margin-bottom: 0; - padding: 4px 8px; - height: 28px; - line-height: 20px; -} - -:root .sormas .v-radiobutton > input:checked ~ label { - background: #CDD8EC; -} - -:root .sormas .v-radiobutton > input ~ label:before, :root .sormas .v-radiobutton > input ~ label:after { - content: none; -} - .sormas h3 { margin-bottom: 16px; } @@ -13136,10 +13166,6 @@ div.v-layout.v-horizontal.v-widget { margin-top: 1.5em; } -.sormas .force-caption-21 { - margin-top: 21px; -} - .sormas .no-margin, .sormas .h1.no-margin, .sormas .h2.no-margin, .sormas .h3.no-margin, .sormas .h4.no-margin, .sormas .h5.no-margin, .sormas .v-checkbox.no-margin label { margin: 0; } @@ -13158,7 +13184,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .about-view .about-content { background: white; - color: #374B5A; + color: #374B59; border-radius: 4px; border: 2px solid #CDD8EC; -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/valo-menu.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/menu.scss similarity index 94% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/valo-menu.scss rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/menu.scss index 472c37ba118..d7e03464935 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/valo-menu.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/menu.scss @@ -1,5 +1,4 @@ - @mixin sormas-valo-menu { .valo-menu { diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/optiongroup.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/optiongroup.scss new file mode 100644 index 00000000000..a4fe7ffaa48 --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/optiongroup.scss @@ -0,0 +1,40 @@ + +@mixin sormas-valo-optiongroup { + + .v-radiobutton { + margin: 0 0 10px -2px !important; + padding: 0 !important; + border: $v-border; + border-radius: 0; + font-size: 11px; + text-transform: uppercase; + + &:first-child { + border-radius: 4px 0 0 4px; + margin-left: 0 !important; + } + &:last-child { + border-radius: 0 4px 4px 0; + } + + :root & > input { + display: none; + + & ~ label { + margin-bottom: 0; + padding: 4px 8px; + height: 28px; + line-height: 20px; + } + + &:checked ~ label { + background: $v-focus-color; + } + + & ~ label:before, + & ~ label:after { + content: none; + } + } + } +} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/textfield.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/textfield.scss new file mode 100644 index 00000000000..d3654f465c9 --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/textfield.scss @@ -0,0 +1,13 @@ + +$v-textfield-background-color--readonly: $v-app-background-color !default; + +@mixin sormas-valo-textfield { + + .v-textfield { + + &.v-readonly { + border: none; + padding-left: 0; + } + } +} \ No newline at end of file From 26f76937b49a234f34f4f3cbd48aee26ebb7d17b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C3=A9=20Strysewske?= Date: Mon, 16 Oct 2017 09:55:45 +0200 Subject: [PATCH 18/54] #340 - "Contacts" tab is hidden for diseases that don't have follow-up, created helper method and changed app tab calculation logic for cases --- .../java/de/symeda/sormas/api/Disease.java | 4 ++ .../sormas/app/AbstractSormasActivity.java | 13 ++--- .../sormas/app/AbstractTabActivity.java | 22 -------- .../sormas/app/caze/CaseEditActivity.java | 54 +++++++++++-------- .../sormas/app/caze/CaseEditPagerAdapter.java | 23 ++++++-- .../symeda/sormas/app/caze/CaseEditTabs.java | 4 -- .../backend/contact/ContactFacadeEjb.java | 6 +++ .../sormas/ui/caze/AbstractCaseView.java | 5 +- 8 files changed, 72 insertions(+), 59 deletions(-) diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/Disease.java b/sormas-api/src/main/java/de/symeda/sormas/api/Disease.java index f435837a148..40529943000 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/Disease.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/Disease.java @@ -23,4 +23,8 @@ public String toShortString() { public String getName() { return this.name(); } + + public boolean hasContactFollowUp() { + return this == EVD || this == LASSA || this == AVIAN_INFLUENCA; + } } diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/AbstractSormasActivity.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/AbstractSormasActivity.java index c496b86e626..ee2a868833f 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/AbstractSormasActivity.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/AbstractSormasActivity.java @@ -51,12 +51,6 @@ public static AbstractSormasActivity getActiveActivity() { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { - // Show the Enter Pin Activity if the user doesn't have access to the app - if (!ConfigProvider.isAccessGranted()) { - Intent intent = new Intent(this, EnterPinActivity.class); - startActivity(intent); - } - super.onCreate(savedInstanceState); SormasApplication application = (SormasApplication) getApplication(); @@ -68,6 +62,13 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true); } + + // Show the Enter Pin Activity if the user doesn't have access to the app + if (!ConfigProvider.isAccessGranted()) { + Intent intent = new Intent(this, EnterPinActivity.class); + startActivity(intent); + return; + } } @Override diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/AbstractTabActivity.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/AbstractTabActivity.java index 27ab10f9a73..53d374e3aa0 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/AbstractTabActivity.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/AbstractTabActivity.java @@ -1,33 +1,11 @@ package de.symeda.sormas.app; -import android.accounts.AuthenticatorException; -import android.content.Intent; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.design.widget.Snackbar; -import android.support.v4.app.Fragment; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.view.ViewPager; -import android.support.v4.widget.SwipeRefreshLayout; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; -import android.view.View; - -import com.google.android.gms.analytics.Tracker; - -import java.net.ConnectException; import de.symeda.sormas.app.backend.common.AbstractDomainObject; -import de.symeda.sormas.app.backend.common.DatabaseHelper; -import de.symeda.sormas.app.backend.config.ConfigProvider; -import de.symeda.sormas.app.backend.synclog.SyncLogDao; -import de.symeda.sormas.app.caze.CaseEditTabs; -import de.symeda.sormas.app.component.SyncLogDialog; -import de.symeda.sormas.app.rest.RetroProvider; -import de.symeda.sormas.app.rest.SynchronizeDataAsync; import de.symeda.sormas.app.util.FormTab; import de.symeda.sormas.app.util.SlidingTabLayout; -import de.symeda.sormas.app.util.SyncCallback; public abstract class AbstractTabActivity extends AbstractSormasActivity { diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditActivity.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditActivity.java index 09aa0298bc2..2f0140a4b4d 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditActivity.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditActivity.java @@ -16,8 +16,10 @@ import android.view.View; import android.widget.LinearLayout; +import java.util.Arrays; import java.util.List; +import de.symeda.sormas.app.AbstractEditTabActivity; import de.symeda.sormas.app.R; import de.symeda.sormas.app.backend.caze.Case; import de.symeda.sormas.app.backend.caze.CaseDao; @@ -34,7 +36,6 @@ import de.symeda.sormas.app.backend.sample.Sample; import de.symeda.sormas.app.backend.sample.SampleDao; import de.symeda.sormas.app.backend.symptoms.Symptoms; -import de.symeda.sormas.app.AbstractEditTabActivity; import de.symeda.sormas.app.backend.task.Task; import de.symeda.sormas.app.backend.task.TaskDao; import de.symeda.sormas.app.component.FacilityChangeDialogBuilder; @@ -52,7 +53,6 @@ import de.symeda.sormas.app.task.TasksListFragment; import de.symeda.sormas.app.util.Consumer; import de.symeda.sormas.app.util.ErrorReportingHelper; -import de.symeda.sormas.app.validation.CaseValidator; import de.symeda.sormas.app.validation.PersonValidator; import de.symeda.sormas.app.validation.SymptomsValidator; @@ -89,11 +89,12 @@ protected void onCreate(Bundle savedInstanceState) { getSupportActionBar().setTitle(getResources().getText(R.string.headline_case) + " - " + ConfigProvider.getUser().getUserRole().toShortString()); } + Case initialEntity = null; Bundle params = getIntent().getExtras(); if (params != null) { if (params.containsKey(KEY_CASE_UUID)) { caseUuid = params.getString(KEY_CASE_UUID); - Case initialEntity = DatabaseHelper.getCaseDao().queryUuid(caseUuid); + initialEntity = DatabaseHelper.getCaseDao().queryUuid(caseUuid); // If the case has been removed from the database in the meantime, redirect the user to the cases overview // TODO add Snackbar and test if (initialEntity == null) { @@ -116,7 +117,7 @@ protected void onCreate(Bundle savedInstanceState) { } } - setAdapter(); + setAdapter(initialEntity); } @Override @@ -134,7 +135,7 @@ protected void onResume() { if (currentEntity.isUnreadOrChildUnread()) { // Resetting the adapter will reload the form and therefore also override any unsaved changes DatabaseHelper.getCaseDao().markAsRead(currentEntity); - setAdapter(); + setAdapter(currentEntity); final Snackbar snackbar = Snackbar.make(findViewById(R.id.base_layout), String.format(getResources().getString(R.string.snackbar_entity_overridden), getResources().getString(R.string.entity_case)), Snackbar.LENGTH_INDEFINITE); snackbar.setAction(R.string.snackbar_okay, new View.OnClickListener() { @@ -173,7 +174,7 @@ public boolean onCreateOptionsMenu(Menu menu) { @Override public boolean onPrepareOptionsMenu(Menu menu) { - CaseEditTabs tab = CaseEditTabs.values()[currentTab]; + CaseEditTabs tab = adapter.getTabForPosition(currentTab); switch (tab) { case CASE_DATA: updateActionBarGroups(menu, false, false, true, false, true); @@ -214,8 +215,8 @@ public boolean onPrepareOptionsMenu(Menu menu) { @Override public boolean onOptionsItemSelected(MenuItem item) { setCurrentTab(pager.getCurrentItem()); - CaseEditTabs tab = CaseEditTabs.values()[currentTab]; - Case caze = (Case) getData(CaseEditTabs.CASE_DATA.ordinal()); + CaseEditTabs tab = adapter.getTabForPosition(currentTab); + Case caze = (Case) getData(adapter.getPositionOfTab(CaseEditTabs.CASE_DATA)); CaseDao caseDao = DatabaseHelper.getCaseDao(); switch (item.getItemId()) { // Respond to the action bar's Up/Home button @@ -338,8 +339,19 @@ public boolean onOptionsItemSelected(MenuItem item) { return super.onOptionsItemSelected(item); } - public void setAdapter() { - adapter = new CaseEditPagerAdapter(getSupportFragmentManager(), caseUuid); + public void setAdapter(Case caze) { + List visibleTabs; + if (caze != null && !caze.getDisease().hasContactFollowUp()) { + visibleTabs = Arrays.asList(CaseEditTabs.CASE_DATA, CaseEditTabs.PATIENT, + CaseEditTabs.HOSPITALIZATION, CaseEditTabs.SYMPTOMS, CaseEditTabs.EPIDATA, + CaseEditTabs.SAMPLES, CaseEditTabs.TASKS); + } else { + visibleTabs = Arrays.asList(CaseEditTabs.CASE_DATA, CaseEditTabs.PATIENT, + CaseEditTabs.HOSPITALIZATION, CaseEditTabs.SYMPTOMS, CaseEditTabs.EPIDATA, + CaseEditTabs.CONTACTS, CaseEditTabs.SAMPLES, CaseEditTabs.TASKS); + } + + adapter = new CaseEditPagerAdapter(getSupportFragmentManager(), caseUuid, visibleTabs); createTabViews(adapter); pager.setCurrentItem(currentTab); @@ -347,7 +359,7 @@ public void setAdapter() { public void moveCase(View v) { if (saveCase()) { - final CaseDataFragmentLayoutBinding caseBinding = ((CaseEditDataForm)getTabByPosition(CaseEditTabs.CASE_DATA.ordinal())).getBinding(); + final CaseDataFragmentLayoutBinding caseBinding = ((CaseEditDataForm)getTabByPosition(adapter.getPositionOfTab(CaseEditTabs.CASE_DATA))).getBinding(); final Consumer positiveCallback = new Consumer() { @Override @@ -361,7 +373,7 @@ public void accept(Object success) { Snackbar.make(findViewById(R.id.base_layout), getResources().getString(R.string.snackbar_case_moved_error), Snackbar.LENGTH_LONG).show(); } - setAdapter(); + setAdapter(updatedCase); } }; @@ -376,24 +388,24 @@ private boolean saveCase() { // PATIENT LocationDao locLocationDao = DatabaseHelper.getLocationDao(); PersonDao personDao = DatabaseHelper.getPersonDao(); - Person person = (Person) getData(CaseEditTabs.PATIENT.ordinal()); + Person person = (Person) getData(adapter.getPositionOfTab(CaseEditTabs.PATIENT)); // SYMPTOMS - Symptoms symptoms = (Symptoms) getData(CaseEditTabs.SYMPTOMS.ordinal()); + Symptoms symptoms = (Symptoms) getData(adapter.getPositionOfTab(CaseEditTabs.SYMPTOMS)); // HOSPITALIZATION - Hospitalization hospitalization = (Hospitalization) getData(CaseEditTabs.HOSPITALIZATION.ordinal()); + Hospitalization hospitalization = (Hospitalization) getData(adapter.getPositionOfTab(CaseEditTabs.HOSPITALIZATION)); // EPI DATA - EpiData epiData = (EpiData) getData(CaseEditTabs.EPIDATA.ordinal()); + EpiData epiData = (EpiData) getData(adapter.getPositionOfTab(CaseEditTabs.EPIDATA)); // CASE_DATA - Case caze = (Case) getData(CaseEditTabs.CASE_DATA.ordinal()); + Case caze = (Case) getData(adapter.getPositionOfTab(CaseEditTabs.CASE_DATA)); // Validations have to be processed from last tab to first to make sure that the user will be re-directed // to the first tab with a validation error - PersonEditFragmentLayoutBinding personBinding = ((PersonEditForm)getTabByPosition(CaseEditTabs.PATIENT.ordinal())).getBinding(); - CaseSymptomsFragmentLayoutBinding symptomsBinding = ((SymptomsEditForm)getTabByPosition(CaseEditTabs.SYMPTOMS.ordinal())).getBinding(); + PersonEditFragmentLayoutBinding personBinding = ((PersonEditForm)getTabByPosition(adapter.getPositionOfTab(CaseEditTabs.PATIENT))).getBinding(); + CaseSymptomsFragmentLayoutBinding symptomsBinding = ((SymptomsEditForm)getTabByPosition(adapter.getPositionOfTab(CaseEditTabs.SYMPTOMS))).getBinding(); // Necessary because the entry could've been automatically set, in which case the setValue method of the // custom field has not been called @@ -405,10 +417,10 @@ private boolean saveCase() { int validationErrorTab = -1; if (!SymptomsValidator.validateCaseSymptoms(symptoms, symptomsBinding)) { - validationErrorTab = CaseEditTabs.SYMPTOMS.ordinal(); + validationErrorTab = adapter.getPositionOfTab(CaseEditTabs.SYMPTOMS); } if (!PersonValidator.validatePersonData(person, personBinding)) { - validationErrorTab = CaseEditTabs.PATIENT.ordinal(); + validationErrorTab = adapter.getPositionOfTab(CaseEditTabs.PATIENT); } if (validationErrorTab >= 0) { diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditPagerAdapter.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditPagerAdapter.java index 721ecdabdac..87275101edd 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditPagerAdapter.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditPagerAdapter.java @@ -5,6 +5,8 @@ import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; +import java.util.List; + import de.symeda.sormas.app.backend.caze.Case; import de.symeda.sormas.app.backend.epidata.EpiData; import de.symeda.sormas.app.backend.hospitalization.Hospitalization; @@ -28,20 +30,22 @@ public class CaseEditPagerAdapter extends FragmentStatePagerAdapter { private Bundle caseEditBundle; // this bundle contains the uuids + private List visibleTabs; // Build a Constructor and assign the passed Values to appropriate values in the class - public CaseEditPagerAdapter(FragmentManager fm, String caseUuid) { + public CaseEditPagerAdapter(FragmentManager fm, String caseUuid, List visibleTabs) { super(fm); caseEditBundle = new Bundle(); caseEditBundle.putString(Case.UUID, caseUuid); + this.visibleTabs = visibleTabs; } // This method return the fragment for the every position in the View Pager @Override public Fragment getItem(int position) { Fragment frag = null; - CaseEditTabs tab = CaseEditTabs.values()[position]; - Case caze = null; + CaseEditTabs tab = visibleTabs.get(position); + Case caze; switch (tab) { case CASE_DATA: frag = new CaseEditDataForm(); @@ -109,12 +113,21 @@ public Fragment getItem(int position) { // This method return the titles for the Tabs in the Tab Strip @Override public CharSequence getPageTitle(int position) { - return CaseEditTabs.values()[position].toString(); + return visibleTabs.get(position).toString(); } // This method return the Number of tabs for the tabs Strip @Override public int getCount() { - return CaseEditTabs.values().length; + return visibleTabs.size(); + } + + public CaseEditTabs getTabForPosition(int position) { + return visibleTabs.get(position); } + + public int getPositionOfTab(CaseEditTabs tab) { + return visibleTabs.indexOf(tab); + } + } diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditTabs.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditTabs.java index 48614ff2406..c731f2d0aa6 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditTabs.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/CaseEditTabs.java @@ -14,10 +14,6 @@ public enum CaseEditTabs { TASKS, ; - public static CaseEditTabs fromInt(int x) { - return CaseEditTabs.values()[x]; - } - public String toString() { return I18nProperties.getFieldCaption(CaseDataDto.I18N_PREFIX+"."+this.name()); }; diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java index 9e88364adcd..29d9d6cfc0d 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java @@ -15,6 +15,7 @@ import javax.validation.ValidationException; import javax.validation.constraints.NotNull; +import org.jboss.weld.exceptions.UnsupportedOperationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -162,6 +163,11 @@ public ContactReferenceDto getReferenceByUuid(String uuid) { @Override public ContactDto saveContact(ContactDto dto) { Contact entity = fromDto(dto); + + if (!entity.getCaze().getDisease().hasContactFollowUp()) { + throw new UnsupportedOperationException("Contact creation is not allowed for diseases that don't have contact follow-up."); + } + contactService.ensurePersisted(entity); contactService.updateFollowUpUntilAndStatus(entity); return toDto(entity); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/AbstractCaseView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/AbstractCaseView.java index bd4956e1535..aec7708564c 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/AbstractCaseView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/AbstractCaseView.java @@ -25,6 +25,7 @@ protected AbstractCaseView(String viewName) { public void refreshMenu(SubNavigationMenu menu, Label infoLabel, Label infoLabelSub, String params) { caseRef = FacadeProvider.getCaseFacade().getReferenceByUuid(params); + CaseDataDto caze = FacadeProvider.getCaseFacade().getCaseDataByUuid(caseRef.getUuid()); menu.removeAllViews(); menu.addView(CasesView.VIEW_NAME, "Cases list"); @@ -33,7 +34,9 @@ public void refreshMenu(SubNavigationMenu menu, Label infoLabel, Label infoLabel menu.addView(CaseHospitalizationView.VIEW_NAME, I18nProperties.getPrefixFieldCaption(CaseDataDto.I18N_PREFIX, "hospitalization"), params); menu.addView(CaseSymptomsView.VIEW_NAME, I18nProperties.getPrefixFieldCaption(CaseDataDto.I18N_PREFIX, CaseDataDto.SYMPTOMS), params); menu.addView(EpiDataView.VIEW_NAME, I18nProperties.getPrefixFieldCaption(CaseDataDto.I18N_PREFIX, "epiData"), params); - menu.addView(CaseContactsView.VIEW_NAME, I18nProperties.getPrefixFieldCaption(CaseDataDto.I18N_PREFIX, "contacts"), params); + if (caze.getDisease().hasContactFollowUp()) { + menu.addView(CaseContactsView.VIEW_NAME, I18nProperties.getPrefixFieldCaption(CaseDataDto.I18N_PREFIX, "contacts"), params); + } infoLabel.setValue(caseRef.getCaption()); CaseDataDto caseDto = FacadeProvider.getCaseFacade().getCaseDataByUuid(params); From 66d7dc439253cf291fe2bd1aaf93ddef20d71643 Mon Sep 17 00:00:00 2001 From: Martin Wahnschaffe Date: Mon, 16 Oct 2017 15:05:44 +0200 Subject: [PATCH 19/54] Update Vaadin Theme with new Design #356: read-only controls -> labels; split scss files --- .../symeda/sormas/ui/caze/CaseDataForm.java | 26 ++--- .../sormas/ui/utils/AbstractEditForm.java | 4 + .../webapp/VAADIN/themes/sormas/sormas.scss | 36 ++----- .../webapp/VAADIN/themes/sormas/styles.css | 97 +++++++++++++------ .../themes/sormas/valo-components/button.scss | 8 ++ .../sormas/valo-components/combobox.scss | 31 ++++++ .../sormas/valo-components/datefield.scss | 31 ++++++ .../sormas/valo-components/optiongroup.scss | 4 + .../themes/sormas/valo-components/panel.scss | 9 ++ .../sormas/valo-components/textfield.scss | 5 +- 10 files changed, 175 insertions(+), 76 deletions(-) create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/button.scss create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/combobox.scss create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/datefield.scss create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/panel.scss diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java index 389307d28da..9304c86bf40 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java @@ -26,7 +26,6 @@ import de.symeda.sormas.api.person.Sex; import de.symeda.sormas.api.user.UserRole; import de.symeda.sormas.api.utils.DataHelper; -import de.symeda.sormas.api.utils.DateHelper; import de.symeda.sormas.api.utils.Diseases.DiseasesConfiguration; import de.symeda.sormas.ui.login.LoginHelper; import de.symeda.sormas.ui.utils.AbstractEditForm; @@ -41,7 +40,6 @@ public class CaseDataForm extends AbstractEditForm { private static final String MEDICAL_INFORMATION_LOC = "medicalInformationLoc"; - private static final String REPORT_INFO_LOC = "reportInfoLoc"; public static final String NONE_HEALTH_FACILITY_DETAILS = "noneHealthFacilityDetails"; private static final String HTML_LAYOUT = @@ -51,7 +49,9 @@ public class CaseDataForm extends AbstractEditForm { LayoutUtil.fluidRowLocs(CaseDataDto.CASE_CLASSIFICATION) + LayoutUtil.fluidRowLocs(CaseDataDto.INVESTIGATION_STATUS) + LayoutUtil.fluidRowCss(CssStyles.VSPACE4, - LayoutUtil.fluidRowLocs(CaseDataDto.UUID, REPORT_INFO_LOC) + + LayoutUtil.fluidRow( + LayoutUtil.loc(CaseDataDto.UUID), + LayoutUtil.fluidRowLocs(CaseDataDto.REPORT_DATE, CaseDataDto.REPORTING_USER)) + LayoutUtil.fluidRowLocs(CaseDataDto.EPID_NUMBER, CaseDataDto.DISEASE) + LayoutUtil.fluidRowLocs("", CaseDataDto.DISEASE_DETAILS) + LayoutUtil.fluidRowLocs(CaseDataDto.REGION, CaseDataDto.DISTRICT) + @@ -70,7 +70,6 @@ public class CaseDataForm extends AbstractEditForm { private final PersonDto person; private final Disease disease; - private Label reportInfoLabel; public CaseDataForm(PersonDto person, Disease disease) { super(CaseDataDto.class, CaseDataDto.I18N_PREFIX); @@ -85,7 +84,7 @@ protected void addFields() { return; } - addField(CaseDataDto.UUID, TextField.class); + addFields(CaseDataDto.UUID, CaseDataDto.REPORT_DATE, CaseDataDto.REPORTING_USER); TextField epidField = addField(CaseDataDto.EPID_NUMBER, TextField.class); epidField.addValidator(new RegexpValidator(DataHelper.getEpidNumberRegexp(), true, @@ -117,7 +116,8 @@ protected void addFields() { setRequired(true, CaseDataDto.CASE_CLASSIFICATION, CaseDataDto.INVESTIGATION_STATUS, CaseDataDto.REGION, CaseDataDto.DISTRICT, CaseDataDto.COMMUNITY, CaseDataDto.HEALTH_FACILITY); - setReadOnly(true, CaseDataDto.UUID, CaseDataDto.INVESTIGATION_STATUS, CaseDataDto.REGION, + setReadOnly(true, CaseDataDto.UUID, CaseDataDto.REPORT_DATE, CaseDataDto.REPORTING_USER, + CaseDataDto.INVESTIGATION_STATUS, CaseDataDto.REGION, CaseDataDto.DISTRICT, CaseDataDto.COMMUNITY, CaseDataDto.HEALTH_FACILITY); if (!UserRole.isSupervisor(LoginHelper.getCurrentUserRoles())) { setReadOnly(true, CaseDataDto.DISEASE); @@ -154,13 +154,7 @@ protected void addFields() { } } - reportInfoLabel = new Label(); - reportInfoLabel.setContentMode(ContentMode.HTML); - reportInfoLabel.setCaption(I18nProperties.getPrefixFieldCaption(CaseDataDto.I18N_PREFIX, REPORT_INFO_LOC)); - getContent().addComponent(reportInfoLabel, REPORT_INFO_LOC); - addValueChangeListener(e -> { - updateReportInfo(); diseaseField.addValueChangeListener(new DiseaseChangeListener(diseaseField, getValue().getDisease())); }); @@ -188,14 +182,6 @@ protected void addFields() { }); } - private void updateReportInfo() { - CaseDataDto caseDto = getValue(); - StringBuilder sb = new StringBuilder(); - sb.append(DateHelper.formatShortDateTime(caseDto.getReportDate()) + ", "); - sb.append(caseDto.getReportingUser().toString()); - reportInfoLabel.setValue(sb.toString()); - } - @Override protected String createHtmlLayout() { return HTML_LAYOUT; diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java index eb6f98e2231..735cc1c314f 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java @@ -23,6 +23,7 @@ import de.symeda.sormas.api.DataTransferObject; import de.symeda.sormas.api.I18nProperties; +import de.symeda.sormas.api.ReferenceDto; import de.symeda.sormas.api.symptoms.SymptomState; import de.symeda.sormas.api.utils.DateHelper; import de.symeda.sormas.ui.epidata.EpiDataBurialsField; @@ -108,6 +109,9 @@ else if (Date.class.isAssignableFrom(type)) { field.setDateFormat(DateHelper.getDateFormat().toPattern()); return (T) field; } + else if (ReferenceDto.class.isAssignableFrom(type)) { + return (T) new ComboBox(); + } return super.createField(type, fieldType); } diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss index 713ac52d875..82cca879a46 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss @@ -52,8 +52,12 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; @import "../valo/valo.scss"; +@import "valo-components/button.scss"; +@import "valo-components/combobox.scss"; +@import "valo-components/datefield.scss"; @import "valo-components/menu.scss"; @import "valo-components/optiongroup.scss"; +@import "valo-components/panel.scss"; @import "valo-components/textfield.scss"; @import "views/login.scss"; @@ -73,8 +77,12 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; @mixin sormas { @include valo; + @include sormas-valo-button; + @include sormas-valo-combobox; + @include sormas-valo-datefield; @include sormas-valo-menu; @include sormas-valo-optiongroup; + @include sormas-valo-panel; @include sormas-valo-textfield; @include login; @@ -91,34 +99,8 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; .v-caption.v-caption-caption-hidden { display: none; } - - .v-panel { - border: none; - box-shadow: none; - border-radius: 0; - } - - .v-button { - text-transform: uppercase; - border-color: $v-selection-color; - } - - .v-filterselect [class$="button"] { - border-left: none; - - &::before { - color: $v-font-color; - } - } - .v-datefield [class$="button"] { - border-right: none; - - &::before { - color: $v-font-color; - } - } - + h3 { margin-bottom: 16px; diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css index bcede1caa7e..77fc76b3dd0 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css @@ -12856,6 +12856,61 @@ div.v-layout.v-horizontal.v-widget { overflow: hidden; } +.sormas .v-button { + text-transform: uppercase; + border-color: #005A9C; +} + +.sormas .v-filterselect [class$="button"] { + border-left: none; +} + +.sormas .v-filterselect [class$="button"]::before { + color: #394C5B; +} + +.sormas .v-filterselect.v-readonly { + height: inherit; + background: inherit; + color: inherit; +} + +.sormas .v-filterselect.v-readonly .v-filterselect-input { + border: none; + padding: 0; + background: inherit; + color: inherit; +} + +.sormas .v-filterselect.v-readonly .v-filterselect-button { + display: none; +} + +.sormas .v-datefield [class$="button"] { + border-right: none; +} + +.sormas .v-datefield [class$="button"]::before { + color: #394C5B; +} + +.sormas .v-datefield.v-readonly { + height: inherit; + background: inherit; + color: inherit; +} + +.sormas .v-datefield.v-readonly .v-datefield-textfield { + border: none; + padding: 0; + background: inherit; + color: inherit; +} + +.sormas .v-datefield.v-readonly .v-datefield-button { + display: none; +} + .sormas .valo-menu { font-size: 16px; vertical-align: middle; @@ -12915,6 +12970,10 @@ div.v-layout.v-horizontal.v-widget { border-radius: 0 4px 4px 0; } +.sormas .v-radiobutton.v-radiobutton-disabled label { + cursor: default; +} + :root .sormas .v-radiobutton > input { display: none; } @@ -12934,9 +12993,18 @@ div.v-layout.v-horizontal.v-widget { content: none; } +.sormas .v-panel { + border: none; + box-shadow: none; + border-radius: 0; +} + .sormas .v-textfield.v-readonly { border: none; - padding-left: 0; + padding: 0; + background: inherit; + color: inherit; + height: inherit; } .sormas .login-screen { @@ -13010,33 +13078,6 @@ div.v-layout.v-horizontal.v-widget { display: none; } -.sormas .v-panel { - border: none; - box-shadow: none; - border-radius: 0; -} - -.sormas .v-button { - text-transform: uppercase; - border-color: #005A9C; -} - -.sormas .v-filterselect [class$="button"] { - border-left: none; -} - -.sormas .v-filterselect [class$="button"]::before { - color: #394C5B; -} - -.sormas .v-datefield [class$="button"] { - border-right: none; -} - -.sormas .v-datefield [class$="button"]::before { - color: #394C5B; -} - .sormas h3 { margin-bottom: 16px; } diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/button.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/button.scss new file mode 100644 index 00000000000..c6df642cb78 --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/button.scss @@ -0,0 +1,8 @@ + +@mixin sormas-valo-button { + + .v-button { + text-transform: uppercase; + border-color: $v-selection-color; + } +} diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/combobox.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/combobox.scss new file mode 100644 index 00000000000..5f51d03cb2d --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/combobox.scss @@ -0,0 +1,31 @@ + +@mixin sormas-valo-combobox { + + .v-filterselect { + + [class$="button"] { + border-left: none; + + &::before { + color: $v-font-color; + } + } + + &.v-readonly { + height: inherit; + background: inherit; + color: inherit; + + .v-filterselect-input { + border: none; + padding: 0; + background: inherit; + color: inherit; + } + + .v-filterselect-button { + display: none; + } + } + } +} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/datefield.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/datefield.scss new file mode 100644 index 00000000000..e0f9d824003 --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/datefield.scss @@ -0,0 +1,31 @@ + +@mixin sormas-valo-datefield { + + .v-datefield { + + [class$="button"] { + border-right: none; + + &::before { + color: $v-font-color; + } + } + + &.v-readonly { + height: inherit; + background: inherit; + color: inherit; + + .v-datefield-textfield { + border: none; + padding: 0; + background: inherit; + color: inherit; + } + + .v-datefield-button { + display: none; + } + } + } +} diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/optiongroup.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/optiongroup.scss index a4fe7ffaa48..8c7f1053c51 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/optiongroup.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/optiongroup.scss @@ -17,6 +17,10 @@ border-radius: 0 4px 4px 0; } + &.v-radiobutton-disabled label { + cursor: default; + } + :root & > input { display: none; diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/panel.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/panel.scss new file mode 100644 index 00000000000..9924cb9257b --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/panel.scss @@ -0,0 +1,9 @@ + +@mixin sormas-valo-panel { + + .v-panel { + border: none; + box-shadow: none; + border-radius: 0; + } +} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/textfield.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/textfield.scss index d3654f465c9..e60d72ecd46 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/textfield.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/textfield.scss @@ -7,7 +7,10 @@ $v-textfield-background-color--readonly: $v-app-background-color !default; &.v-readonly { border: none; - padding-left: 0; + padding: 0; + background: inherit; + color: inherit; + height: inherit; } } } \ No newline at end of file From a30ec4b12d5c71430eebb43b542d0524790e6614 Mon Sep 17 00:00:00 2001 From: Martin Wahnschaffe Date: Mon, 16 Oct 2017 17:16:01 +0200 Subject: [PATCH 20/54] Update Vaadin Theme with new Design #356: grid, popup window --- .../de/symeda/sormas/ui/task/TaskGrid.java | 2 +- .../de/symeda/sormas/ui/utils/CssStyles.java | 4 +- .../button.scss | 2 +- .../combobox.scss | 2 +- .../datefield.scss | 2 +- .../VAADIN/themes/sormas/components/grid.scss | 73 ++ .../{valo-components => components}/menu.scss | 20 +- .../optiongroup.scss | 2 +- .../panel.scss | 2 +- .../textfield.scss | 2 +- .../themes/sormas/components/window.scss | 38 + .../webapp/VAADIN/themes/sormas/sormas.scss | 96 +-- .../webapp/VAADIN/themes/sormas/styles.css | 778 ++++++++++-------- .../VAADIN/themes/sormas/views/login.scss | 6 + 14 files changed, 589 insertions(+), 440 deletions(-) rename sormas-ui/src/main/webapp/VAADIN/themes/sormas/{valo-components => components}/button.scss (72%) rename sormas-ui/src/main/webapp/VAADIN/themes/sormas/{valo-components => components}/combobox.scss (88%) rename sormas-ui/src/main/webapp/VAADIN/themes/sormas/{valo-components => components}/datefield.scss (87%) create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/grid.scss rename sormas-ui/src/main/webapp/VAADIN/themes/sormas/{valo-components => components}/menu.scss (55%) rename sormas-ui/src/main/webapp/VAADIN/themes/sormas/{valo-components => components}/optiongroup.scss (90%) rename sormas-ui/src/main/webapp/VAADIN/themes/sormas/{valo-components => components}/panel.scss (70%) rename sormas-ui/src/main/webapp/VAADIN/themes/sormas/{valo-components => components}/textfield.scss (83%) create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/window.scss diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskGrid.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskGrid.java index d31fe1a658b..45d0a827424 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskGrid.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskGrid.java @@ -81,7 +81,7 @@ public String getStyle(CellReference cell) { else if (TaskDto.DUE_DATE.equals(cell.getPropertyId())) { Date dueDate = (Date)cell.getProperty().getValue(); if (dueDate != null && dueDate.before(new Date())) { - return CssStyles.PRIORITY_HIGH; + return CssStyles.WARNING; } } return null; diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java index 5dd5ec6636c..473fa689a78 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java @@ -81,7 +81,9 @@ public final class CssStyles { public static final String PRIORITY_HIGH = "priority-high"; public static final String PRIORITY_NORMAL = "priority-normal"; public static final String PRIORITY_LOW = "priority-low"; - + + public static final String WARNING = "warning"; + public static final String STATUS_DISCARDED = "status-discarded"; public static final String STATUS_NOT = "status-not"; public static final String STATUS_DONE = "status-done"; diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/button.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/button.scss similarity index 72% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/button.scss rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/button.scss index c6df642cb78..4e0ed3a0cd9 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/button.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/button.scss @@ -1,5 +1,5 @@ -@mixin sormas-valo-button { +@mixin sormas-button { .v-button { text-transform: uppercase; diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/combobox.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/combobox.scss similarity index 88% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/combobox.scss rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/combobox.scss index 5f51d03cb2d..ae2f40cf724 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/combobox.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/combobox.scss @@ -1,5 +1,5 @@ -@mixin sormas-valo-combobox { +@mixin sormas-combobox { .v-filterselect { diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/datefield.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/datefield.scss similarity index 87% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/datefield.scss rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/datefield.scss index e0f9d824003..430d384c1d6 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/datefield.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/datefield.scss @@ -1,5 +1,5 @@ -@mixin sormas-valo-datefield { +@mixin sormas-datefield { .v-datefield { diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/grid.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/grid.scss new file mode 100644 index 00000000000..edd1eeb9a0d --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/grid.scss @@ -0,0 +1,73 @@ + +$v-grid-border: 1px solid $v-focus-color !default; +$v-grid-row-stripe-background-color: $v-grid-row-background-color !default; +$v-grid-row-selected-background-color: $v-focus-color !default; +$v-grid-cell-vertical-border: none !default; +$v-grid-cell-horizontal-border: $v-grid-border !default; +$v-grid-cell-focused-border: none !default; + + +@mixin sormas-grid { + + .v-grid { + + .v-grid-tablewrapper, .v-grid-header-deco, .v-grid-footer-deco, .v-grid-scroller { + border-left: none; + border-right: none; + } + .v-grid-scroller { + border-top: none; + } + + .v-grid-row { + + .v-grid-cell { + + padding: 3px 6px; + + &:first-child { + padding-left: 0; + } + &:last-child { + padding-right: 0; + } + + &.priority-high { + color: $s-warning-color; + } + &.priority-normal { + color: $s-default-color; + } + &.warning { + color: $s-warning-color; + font-weight: 600; + } + } + + &.status-discarded .v-grid-cell { + text-decoration: line-through; + color: #888; + } + &.status-done .v-grid-cell { + color: #888; + } + &.status-not .v-grid-cell { + color: #C44; + } + } + + .v-grid-header { + + .v-grid-cell { + border-left: none; + border-bottom: none; + } + + .v-grid-column-header-content { + text-transform: uppercase; + font-weight: 600; + border-bottom: $v-border; + } + } + } +} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/menu.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss similarity index 55% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/menu.scss rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss index d7e03464935..2cfd8d94ab8 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/menu.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss @@ -1,39 +1,41 @@ -@mixin sormas-valo-menu { +$valo-menu-background-color: $s-default-color !default; + +@mixin sormas-menu { .valo-menu { font-size: 16px; vertical-align: middle; - border-right-color: #E6E8EB; + border-right-color: $v-focus-color; } .valo-menu-title { padding: 16px; - background: #ffffff; - color: #6791C5; + background: $v-background-color; + color: $s-default-color; font-weight: bold; font-size: 32px; line-height: 32px; font-family: 'Source Sans Pro'; letter-spacing: -1px; - border-bottom: 3px solid #E10002; + border-bottom: 3px solid $s-warning-color; } .valo-menu-item { - color: #FEFEFE; + color: inherit; text-shadow: none; padding: 12px 16px; line-height: 36px; .v-icon { - color: #FEFEFE; + color: inherit; font-size: 28px; min-width: 36px; } &.selected { - background: #FAFBFC !important; - color: #005A9C !important; + background: $v-background-color !important; + color: $v-selection-color !important; text-shadow: none !important; .v-icon { diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/optiongroup.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/optiongroup.scss similarity index 90% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/optiongroup.scss rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/optiongroup.scss index 8c7f1053c51..79d74a95244 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/optiongroup.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/optiongroup.scss @@ -1,5 +1,5 @@ -@mixin sormas-valo-optiongroup { +@mixin sormas-optiongroup { .v-radiobutton { margin: 0 0 10px -2px !important; diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/panel.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/panel.scss similarity index 70% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/panel.scss rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/panel.scss index 9924cb9257b..06f186cf34d 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/panel.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/panel.scss @@ -1,5 +1,5 @@ -@mixin sormas-valo-panel { +@mixin sormas-panel { .v-panel { border: none; diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/textfield.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/textfield.scss similarity index 83% rename from sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/textfield.scss rename to sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/textfield.scss index e60d72ecd46..38ee010ad19 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/valo-components/textfield.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/textfield.scss @@ -1,7 +1,7 @@ $v-textfield-background-color--readonly: $v-app-background-color !default; -@mixin sormas-valo-textfield { +@mixin sormas-textfield { .v-textfield { diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/window.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/window.scss new file mode 100644 index 00000000000..67616a4224d --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/window.scss @@ -0,0 +1,38 @@ + +@mixin sormas-window { + + .v-window { + + .v-window-outerheader { + + border-bottom: 3px solid $v-focus-color; + + .v-window-header { + padding: 16px 32px 8px 32px; + font-size: 24px; + font-weight: 600; + color: $s-primary-color; + } + + &::after { + content: null; + } + } + + .v-window-contents > .v-scrollable > .v-layout { + + &.v-margin-left { + padding-left: 32px; + } + &.v-margin-right { + padding-right: 32px; + } + &.v-margin-top { + padding-top: 32px; + } + &.v-margin-bottom { + padding-bottom: 32px; + } + } + } +} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss index 82cca879a46..e73a1aeb47c 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss @@ -7,13 +7,17 @@ $v-luminance-threshold: 180 !default; -$v-background-color: #ffffff !default; -$v-app-background-color: #ffffff !default; +$s-warning-color: #E10002; +$s-primary-color: #005A9C; +$s-default-color: #6691C4; + +$v-background-color: #FEFEFE !default; +$v-app-background-color: $v-background-color !default; $v-font-color: #394C5B !default; -$v-selection-color: #005A9C !default; +$v-selection-color: $s-primary-color !default; $v-focus-color: #CDD8EC !default; -$v-error-indicator-color: #eb2977 !default; -$v-friendly-color: rgb(54, 185, 85); +$v-error-indicator-color: $s-warning-color !default; +$v-friendly-color: $s-default-color !default; $v-font-family: "Open Sans", sans-serif, "Source Sans Pro"; $v-font-size: 12px !default; @@ -29,13 +33,13 @@ $v-gradient: false; $v-border: 2px solid $v-focus-color; $v-caption-font-weight: 600 !default; -$valo-menu-background-color: #6691C4 !default; +$v-layout-margin-top: round($v-unit-size / 1.5) !default; +$v-layout-margin-right: $v-layout-margin-top !default; +$v-layout-margin-bottom: $v-layout-margin-top !default; +$v-layout-margin-left: $v-layout-margin-top !default; +$v-layout-spacing-vertical: round($v-unit-size / 1.8) !default; +$v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; -$login-info-width: 300px !default; -$login-info-opacity: 0.7 !default; -$login-background-color: $editor-background-color !default; -// Get more background images from unsplash.com (remember to optimize the filesize) -$login-background-image: "img/login-bg.png" !default; $editor-shadow: 0 0 10px 10px rgba(0,0,0,.1) !default; $editor-background-color: #6691C4 !default; @@ -43,25 +47,21 @@ $editor-embed-background-color: darken($editor-background-color, 5%) !default; $editor-raised-background-color: lighten($editor-background-color, 10%) !default; $editor-caption-font-color: valo-font-color($editor-background-color, 0.5) !default; -$v-layout-margin-top: round($v-unit-size / 1.5) !default; -$v-layout-margin-right: $v-layout-margin-top !default; -$v-layout-margin-bottom: $v-layout-margin-top !default; -$v-layout-margin-left: $v-layout-margin-top !default; -$v-layout-spacing-vertical: round($v-unit-size / 1.8) !default; -$v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; - -@import "../valo/valo.scss"; -@import "valo-components/button.scss"; -@import "valo-components/combobox.scss"; -@import "valo-components/datefield.scss"; -@import "valo-components/menu.scss"; -@import "valo-components/optiongroup.scss"; -@import "valo-components/panel.scss"; -@import "valo-components/textfield.scss"; +@import "components/button.scss"; +@import "components/combobox.scss"; +@import "components/datefield.scss"; +@import "components/grid.scss"; +@import "components/menu.scss"; +@import "components/optiongroup.scss"; +@import "components/panel.scss"; +@import "components/textfield.scss"; +@import "components/window.scss"; @import "views/login.scss"; +@import "../valo/valo.scss"; + @function valo-font-color ($bg-color, $contrast: $v-font-color-contrast) { @if type-of($bg-color) == color { @@ -77,13 +77,15 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; @mixin sormas { @include valo; - @include sormas-valo-button; - @include sormas-valo-combobox; - @include sormas-valo-datefield; - @include sormas-valo-menu; - @include sormas-valo-optiongroup; - @include sormas-valo-panel; - @include sormas-valo-textfield; + @include sormas-button; + @include sormas-combobox; + @include sormas-datefield; + @include sormas-grid; + @include sormas-menu; + @include sormas-optiongroup; + @include sormas-panel; + @include sormas-textfield; + @include sormas-window; @include login; @@ -121,34 +123,6 @@ $v-layout-spacing-horizontal: round($v-unit-size / 1.8) !default; } } - .v-grid-header th { - font-size: 12px; - } - - .v-grid-cell { - font-size: 13px; - } - - .v-grid-cell.priority-high { - background-color: #DFA7A5; - color: white; - } - .v-grid-cell.priority-normal { - background-color: #A6BFDD; - color: white; - } - - .v-grid-row.status-discarded .v-grid-cell { - text-decoration: line-through; - color: #888; - } - .v-grid-row.status-done .v-grid-cell { - color: #888; - } - .v-grid-row.status-not .v-grid-cell { - color: #C44; - } - .callout { text-align: center; outline: none; diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css index 77fc76b3dd0..2a754dd786f 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css @@ -759,28 +759,28 @@ @-webkit-keyframes valo-grid-editor-footer-animate-in-alt { 0% { - margin-bottom: -34px; + margin-bottom: -33px; } 100% { - margin-bottom: -2px; + margin-bottom: -1px; } } @-moz-keyframes valo-grid-editor-footer-animate-in-alt { 0% { - margin-bottom: -34px; + margin-bottom: -33px; } 100% { - margin-bottom: -2px; + margin-bottom: -1px; } } @keyframes valo-grid-editor-footer-animate-in-alt { 0% { - margin-bottom: -34px; + margin-bottom: -33px; } 100% { - margin-bottom: -2px; + margin-bottom: -1px; } } @@ -1588,14 +1588,14 @@ div.v-layout.v-horizontal.v-widget { .sormas.v-app, .sormas.v-app-loading { font: 400 12px/1.55 "Open Sans", sans-serif, "Source Sans Pro"; color: #394C5B; - background-color: #ffffff; + background-color: #FEFEFE; cursor: default; } .sormas .v-app-loading { width: 100%; height: 100%; - background: #ffffff; + background: #FEFEFE; } .sormas .v-app-loading:before { @@ -1715,7 +1715,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-errorindicator { - color: #eb2977; + color: #E10002; font-weight: 600; width: 16px; text-align: center; @@ -1726,7 +1726,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-required-field-indicator { - color: #eb2977; + color: #E10002; padding: 0 0.2em; } @@ -1738,7 +1738,7 @@ div.v-layout.v-horizontal.v-widget { margin: 0; border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; + background: #FEFEFE; color: #374B59; } @@ -1778,7 +1778,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-drag-element { - background: #ffffff; + background: #FEFEFE; color: #374B59; -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); @@ -1808,7 +1808,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-tooltip .v-errormessage { background-color: white; background-color: #fff; - color: #eb2977; + color: #E10002; margin: -4px -8px; padding: 4px 8px; max-height: 10em; @@ -1840,8 +1840,8 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; background-color: white; color: #374B59; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.0902); + box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.0902); -webkit-backface-visibility: hidden; -moz-backface-visibility: hidden; -ms-backface-visibility: hidden; @@ -1996,7 +1996,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-verticallayout-well, .sormas .v-horizontallayout-well { - background: #fafafa; + background: #f9f9f9; color: #374B59; -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); @@ -2079,9 +2079,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); } @@ -2146,7 +2146,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-button:hover:after { - background-color: rgba(191, 191, 191, 0.1); + background-color: rgba(190, 190, 190, 0.1); } .sormas .v-button:focus:after { @@ -2156,7 +2156,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-button:active:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } .sormas .v-button-primary { @@ -2212,9 +2212,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #36b955; - -webkit-box-shadow: inset 0 1px 0 #5cc672, inset 0 -1px 0 #36b053, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 #5cc672, inset 0 -1px 0 #36b053, 0 2px 3px rgba(0, 0, 0, 0.05); + background: #6691C4; + -webkit-box-shadow: inset 0 1px 0 #8fa6c8, inset 0 -1px 0 #628cbf, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 #8fa6c8, inset 0 -1px 0 #628cbf, 0 2px 3px rgba(0, 0, 0, 0.05); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); } @@ -2227,7 +2227,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-button-friendly:hover:after { - background-color: rgba(104, 211, 130, 0.1); + background-color: rgba(157, 185, 217, 0.1); } .sormas .v-button-friendly:focus:after { @@ -2237,7 +2237,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-button-friendly:active:after { - background-color: rgba(12, 107, 35, 0.2); + background-color: rgba(23, 70, 126, 0.2); } .sormas .v-button-danger { @@ -2249,9 +2249,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #eb2977; - -webkit-box-shadow: inset 0 1px 0 #ed5b90, inset 0 -1px 0 #e42773, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 #ed5b90, inset 0 -1px 0 #e42773, 0 2px 3px rgba(0, 0, 0, 0.05); + background: #E10002; + -webkit-box-shadow: inset 0 1px 0 #f61b1d, inset 0 -1px 0 #d50002, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 #f61b1d, inset 0 -1px 0 #d50002, 0 2px 3px rgba(0, 0, 0, 0.05); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); } @@ -2264,7 +2264,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-button-danger:hover:after { - background-color: rgba(242, 111, 163, 0.1); + background-color: rgba(255, 47, 48, 0.1); } .sormas .v-button-danger:focus:after { @@ -2274,7 +2274,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-button-danger:active:after { - background-color: rgba(136, 2, 56, 0.2); + background-color: rgba(112, 0, 1, 0.2); } .sormas .v-button-borderless { @@ -2541,8 +2541,8 @@ div.v-layout.v-horizontal.v-widget { border: 2px solid #CDD8EC; -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); } :root .sormas .v-checkbox > input ~ label:before, :root .sormas .v-checkbox > input ~ label:after { @@ -2570,9 +2570,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); padding: 0; height: 16px; @@ -2588,7 +2588,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-checkbox > input:active ~ label:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } :root .sormas .v-checkbox > input:checked ~ label:after { @@ -2667,8 +2667,8 @@ div.v-layout.v-horizontal.v-widget { border: 2px solid #CDD8EC; -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); } :root .sormas .v-checkbox-small > input ~ label:before, :root .sormas .v-checkbox-small > input ~ label:after { @@ -2696,9 +2696,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); padding: 0; height: 14px; @@ -2714,7 +2714,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-checkbox-small > input:active ~ label:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } :root .sormas .v-checkbox-small > input:checked ~ label:after { @@ -2793,8 +2793,8 @@ div.v-layout.v-horizontal.v-widget { border: 2px solid #CDD8EC; -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); } :root .sormas .v-checkbox-large > input ~ label:before, :root .sormas .v-checkbox-large > input ~ label:after { @@ -2822,9 +2822,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); padding: 0; height: 19px; @@ -2840,7 +2840,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-checkbox-large > input:active ~ label:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } :root .sormas .v-checkbox-large > input:checked ~ label:after { @@ -3061,14 +3061,14 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-filterselect-error .v-filterselect-input { - border-color: #eb2977 !important; - background: #fffbfc; + border-color: #E10002 !important; + background: #fff9f9; color: #374B59; } .sormas .v-filterselect-error .v-filterselect-button { - color: #eb2977; - border-color: #eb2977; + color: #E10002; + border-color: #E10002; } .sormas .v-filterselect-suggestpopup { @@ -3086,8 +3086,8 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; background-color: white; color: #374B59; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.0902); + box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.0902); -webkit-backface-visibility: hidden; -moz-backface-visibility: hidden; -ms-backface-visibility: hidden; @@ -3152,7 +3152,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-filterselect-suggestpopup [class$="status"] { position: absolute; right: 4px; - background: rgba(217, 217, 217, 0.9); + background: rgba(216, 216, 216, 0.9); color: #374B59; border-radius: 0 0 4px 4px; height: 20px; @@ -3205,7 +3205,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-filterselect-suggestpopup div[class*="page"]:hover { opacity: 1; filter: none ; - background: rgba(255, 255, 255, 0.5); + background: rgba(254, 254, 254, 0.5); } .sormas .v-filterselect-suggestpopup div[class*="page"]:hover:after { @@ -3269,10 +3269,10 @@ div.v-layout.v-horizontal.v-widget { -moz-user-select: none; -ms-user-select: none; user-select: none; - background: #ffffff; + background: #FEFEFE; cursor: inherit; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); border: 2px solid #CDD8EC; text-shadow: inherit; text-overflow: ellipsis; @@ -3284,8 +3284,8 @@ div.v-layout.v-horizontal.v-widget { -webkit-transition: none; -moz-transition: none; transition: none; - -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); } @@ -3855,7 +3855,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-csslayout-well { - background: #fafafa; + background: #f9f9f9; color: #374B59; -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); @@ -4308,7 +4308,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid-scroller-vertical, .sormas .v-grid-scroller-horizontal { - border: 2px solid #CDD8EC; + border: 1px solid #CDD8EC; } .sormas .v-grid-scroller-vertical { @@ -4320,7 +4320,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid-tablewrapper { - border: 2px solid #CDD8EC; + border: 1px solid #CDD8EC; } .sormas .v-grid .header-drag-table { @@ -4335,7 +4335,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid .header-drag-table .v-grid-header > .v-grid-cell { - border: 2px solid #CDD8EC; + border: 1px solid #CDD8EC; margin-top: -10px; opacity: 0.9; filter: alpha(opacity=90); @@ -4343,7 +4343,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid .header-drag-table .v-grid-header > .v-grid-drop-marker { - background-color: #005A9C; + background-color: #CDD8EC; position: absolute; width: 3px; } @@ -4355,8 +4355,8 @@ div.v-layout.v-horizontal.v-widget { position: absolute; top: 0; right: 0; - background-color: #ffffff; - border: 2px solid #CDD8EC; + background-color: #FEFEFE; + border: 1px solid #CDD8EC; padding: 0; z-index: 5; } @@ -4444,16 +4444,12 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-grid-cell.frozen { -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - border-right: 2px solid #CDD8EC; -} - -.sormas .v-grid-cell.frozen + th, .sormas .v-grid-cell.frozen + td { - border-left: none; + border-right: none; } .sormas .v-grid-row > td, .sormas .v-grid-editor-cells > div { - border-left: 2px solid #CDD8EC; - border-bottom: 2px solid #CDD8EC; + border-left: none; + border-bottom: 1px solid #CDD8EC; } .sormas .v-grid-row > td:first-child, .sormas .v-grid-editor-cells > div:first-child { @@ -4463,16 +4459,16 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-grid-editor-cells.frozen > div { -webkit-box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); box-shadow: 1px 0 2px rgba(0, 0, 0, 0.1); - border-right: 2px solid #CDD8EC; + border-right: none; border-left: none; } .sormas .v-grid-row-stripe > td { - background-color: #f5f5f5; + background-color: white; } .sormas .v-grid-row-selected > td { - background: #005A9C; + background: #CDD8EC; } .sormas .v-grid-row-focused > td { @@ -4481,11 +4477,11 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-grid-header th { position: relative; - background-color: #ffffff; + background-color: #FEFEFE; font-size: 10px; font-weight: inherit; - border-left: 2px solid #CDD8EC; - border-bottom: 2px solid #CDD8EC; + border-left: 1px solid #CDD8EC; + border-bottom: 1px solid #CDD8EC; text-align: left; } @@ -4541,11 +4537,11 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid-footer td { - background-color: #ffffff; + background-color: #FEFEFE; font-size: 10px; font-weight: inherit; - border-left: 2px solid #CDD8EC; - border-top: 2px solid #CDD8EC; + border-left: 1px solid #CDD8EC; + border-top: 1px solid #CDD8EC; border-bottom: none; } @@ -4567,20 +4563,20 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid-header-deco { - border-top: 2px solid #CDD8EC; - border-right: 2px solid #CDD8EC; - background-color: #ffffff; + border-top: 1px solid #CDD8EC; + border-right: 1px solid #CDD8EC; + background-color: #FEFEFE; } .sormas .v-grid-footer-deco { - border-bottom: 2px solid #CDD8EC; - border-right: 2px solid #CDD8EC; - background-color: #ffffff; + border-bottom: 1px solid #CDD8EC; + border-right: 1px solid #CDD8EC; + background-color: #FEFEFE; } .sormas .v-grid-horizontal-scrollbar-deco { - background-color: #ffffff; - border: 2px solid #CDD8EC; + background-color: #FEFEFE; + border: 1px solid #CDD8EC; border-top: none; } @@ -4595,7 +4591,7 @@ div.v-layout.v-horizontal.v-widget { right: 0; bottom: 0; left: 0; - border: 2px solid #005A9C; + border: none; display: none; pointer-events: none; } @@ -4618,10 +4614,10 @@ div.v-layout.v-horizontal.v-widget { overflow: hidden; left: 0; right: 0; - border: 2px solid #CDD8EC; + border: 1px solid #CDD8EC; box-sizing: border-box; -moz-box-sizing: border-box; - margin-top: -2px; + margin-top: -1px; -webkit-box-shadow: 0 0 9px rgba(0, 0, 0, 0.2); box-shadow: 0 0 9px rgba(0, 0, 0, 0.2); } @@ -4714,22 +4710,22 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-grid-editor-footer { display: table; height: 32px; - border-top: 2px solid #CDD8EC; - margin-top: -2px; + border-top: 1px solid #CDD8EC; + margin-top: -1px; background: white; padding: 0 5px; } .sormas .v-grid-editor-footer + .v-grid-editor-cells > div { border-bottom: none; - border-top: 2px solid #CDD8EC; + border-top: 1px solid #CDD8EC; } .sormas .v-grid-editor-footer:first-child { border-top: none; margin-top: 0; - border-bottom: 2px solid #CDD8EC; - margin-bottom: -2px; + border-bottom: 1px solid #CDD8EC; + margin-bottom: -1px; } .sormas .v-grid-editor-message, .sormas .v-grid-editor-buttons { @@ -4757,7 +4753,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid-spacer { - padding-left: 3px; + padding-left: 1px; } .sormas .v-grid-spacer > td { @@ -4765,13 +4761,13 @@ div.v-layout.v-horizontal.v-widget { padding: 0; background-color: white; border-top: 2px solid #CDD8EC; - border-bottom: 2px solid #CDD8EC; + border-bottom: 1px solid #CDD8EC; } .sormas .v-grid-spacer.stripe > td { - background-color: #f5f5f5; + background-color: white; border-top: 2px solid #CDD8EC; - border-bottom: 2px solid #CDD8EC; + border-bottom: 1px solid #CDD8EC; } .sormas .v-grid-spacer-deco-container { @@ -4784,7 +4780,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-grid-spacer-deco { top: 0; left: 0; - width: 4px; + width: 2px; background-color: #005A9C; position: absolute; height: 100%; @@ -4804,7 +4800,7 @@ div.v-layout.v-horizontal.v-widget { -moz-user-select: text; -ms-user-select: text; user-select: text; - background-color: #ffffff; + background-color: #FEFEFE; } .sormas .v-grid.v-disabled { @@ -4813,7 +4809,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid-header .v-grid-cell { - background: #ffffff; + background: #FEFEFE; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); } @@ -4830,27 +4826,27 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid-footer .v-grid-cell { - background: #ffffff; + background: #FEFEFE; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); } .sormas .v-grid-header-deco { - background: #ffffff; + background: #FEFEFE; } .sormas .v-grid-footer-deco, .sormas .v-grid-horizontal-scrollbar-deco { - background: #ffffff; + background: #FEFEFE; } .sormas .v-grid-row-selected > .v-grid-cell { - background: #005A9C; - color: #FEFEFE; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); - border-color: #05426f; + background: #CDD8EC; + color: #374B59; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + border-color: #b4c2dc; } .sormas .v-grid-row-selected > .v-grid-cell-focused:before { - border-color: #0394ff; + border-color: white; } .sormas .v-grid-editor { @@ -4862,7 +4858,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-grid-editor-footer { font-size: 11px; padding: 0 9px; - background: #ffffff; + background: #FEFEFE; -webkit-animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; -moz-animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; animation: valo-grid-editor-footer-animate-in 200ms 120ms backwards; @@ -4890,20 +4886,20 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid-editor-cells > div .error::before { - border-top: 8px solid #eb2977; + border-top: 8px solid #E10002; border-right: 8px solid transparent; } .sormas .v-grid-editor-cells > div .error, .sormas .v-grid-editor-cells > div .error > input { - background-color: #fffbfc; + background-color: #fff9f9; } .sormas .v-grid-editor-cells > div .v-textfield, .sormas .v-grid-editor-cells > div .v-textfield-focus, .sormas .v-grid-editor-cells > div .v-datefield, .sormas .v-grid-editor-cells > div .v-datefield .v-textfield-focus, .sormas .v-grid-editor-cells > div .v-filterselect-input, .sormas .v-grid-editor-cells > div .v-filterselect-input:focus { border: none; border-radius: 0; background: transparent; - -webkit-box-shadow: inset 0 1px 0 #f7f7f7; - box-shadow: inset 0 1px 0 #f7f7f7; + -webkit-box-shadow: inset 0 1px 0 #f6f6f6; + box-shadow: inset 0 1px 0 #f6f6f6; } .sormas .v-grid-editor-cells > div input[type="text"].v-datefield-textfield { @@ -4941,7 +4937,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-grid-editor-message > div:before { display: inline-block; - color: #eb2977; + color: #E10002; font-weight: 600; width: 16px; text-align: center; @@ -4975,7 +4971,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid-spacer { - margin-top: -2px; + margin-top: -1px; } .sormas .v-grid-sidebar.v-contextmenu.open .v-grid-sidebar-content { @@ -4986,7 +4982,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-grid-sidebar.v-contextmenu.closed { - background: #ffffff; + background: #FEFEFE; } .sormas .v-grid-scroller::-webkit-scrollbar { @@ -5077,8 +5073,8 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-textfield-error { - border-color: #eb2977 !important; - background: #fffbfc; + border-color: #E10002 !important; + background: #fff9f9; color: #374B59; } @@ -5552,8 +5548,8 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-textarea-error { - border-color: #eb2977 !important; - background: #fffbfc; + border-color: #E10002 !important; + background: #fff9f9; color: #374B59; } @@ -5908,14 +5904,14 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-datefield-error .v-datefield-textfield { - border-color: #eb2977 !important; - background: #fffbfc; + border-color: #E10002 !important; + background: #fff9f9; color: #374B59; } .sormas .v-datefield-error .v-datefield-button { - color: #eb2977; - border-color: #eb2977; + color: #E10002; + border-color: #E10002; } .sormas .v-datefield-full { @@ -5939,8 +5935,8 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; background-color: white; color: #374B59; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.0902); + box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.0902); -webkit-backface-visibility: hidden; -moz-backface-visibility: hidden; -ms-backface-visibility: hidden; @@ -5993,7 +5989,7 @@ div.v-layout.v-horizontal.v-widget { line-height: 22px; text-align: center; font-size: 11px; - background: #ffffff; + background: #FEFEFE; border-radius: 2px; -webkit-transition: color 200ms; -moz-transition: color 200ms; @@ -6010,7 +6006,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-datefield-popup .v-datefield-calendarpanel-day-offmonth { - color: #9ba5ac; + color: #9aa4ab; background: transparent; } @@ -6038,13 +6034,13 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range, .sormas .v-datefield-popup .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range:hover { - color: #9ba5ac; + color: #9aa4ab; cursor: not-allowed; } .sormas .v-datefield-popup .v-datefield-calendarpanel-weekdays { height: 22px; - color: rgba(125, 138, 147, 0.85); + color: rgba(124, 137, 146, 0.85); } .sormas .v-datefield-popup .v-datefield-calendarpanel-weekdays strong { @@ -6077,7 +6073,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-datefield-popup td[class*="year"] button:before, .sormas .v-datefield-popup td[class*="month"] button:before { - color: #9ba5ac; + color: #9aa4ab; font-size: 16px; line-height: 18px; -webkit-transition: color 200ms; @@ -6096,7 +6092,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-datefield-popup td[class*="year"] button.outside-range:hover:before, .sormas .v-datefield-popup td[class*="month"] button.outside-range:hover:before { - color: #9ba5ac; + color: #9aa4ab; } .sormas .v-datefield-popup .v-button-prevyear:before { @@ -6130,7 +6126,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-datefield-popup .v-datefield-calendarpanel-weeknumber, .sormas .v-datefield-popup .v-datefield-calendarpanel-weekdays.v-datefield-calendarpanel-weeknumbers td:first-child { width: 26px; - color: rgba(125, 138, 147, 0.85); + color: rgba(124, 137, 146, 0.85); font-size: 11px; display: inline-block; text-align: left; @@ -6151,7 +6147,7 @@ div.v-layout.v-horizontal.v-widget { border-right: 2px solid #CDD8EC; border-top-right-radius: 4px; border-bottom-left-radius: 4px; - background: #ffffff; + background: #FEFEFE; } .sormas .v-datefield-popup td.v-datefield-calendarpanel-time { @@ -6184,7 +6180,7 @@ div.v-layout.v-horizontal.v-widget { line-height: 22px; text-align: center; font-size: 11px; - background: #ffffff; + background: #FEFEFE; border-radius: 2px; -webkit-transition: color 200ms; -moz-transition: color 200ms; @@ -6201,7 +6197,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-datefield-calendarpanel-day-offmonth { - color: #9ba5ac; + color: #9aa4ab; background: transparent; } @@ -6229,13 +6225,13 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range, .sormas .v-datefield-calendarpanel-day.v-datefield-calendarpanel-day-outside-range:hover { - color: #9ba5ac; + color: #9aa4ab; cursor: not-allowed; } .sormas .v-datefield-calendarpanel-weekdays { height: 22px; - color: rgba(125, 138, 147, 0.85); + color: rgba(124, 137, 146, 0.85); } .sormas .v-datefield-calendarpanel-weekdays strong { @@ -6268,7 +6264,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas td[class*="year"] button:before, .sormas td[class*="month"] button:before { - color: #9ba5ac; + color: #9aa4ab; font-size: 16px; line-height: 18px; -webkit-transition: color 200ms; @@ -6287,7 +6283,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas td[class*="year"] button.outside-range:hover:before, .sormas td[class*="month"] button.outside-range:hover:before { - color: #9ba5ac; + color: #9aa4ab; } .sormas .v-button-prevyear:before { @@ -6321,7 +6317,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-datefield-calendarpanel-weeknumber, .sormas .v-datefield-calendarpanel-weekdays.v-datefield-calendarpanel-weeknumbers td:first-child { width: 26px; - color: rgba(125, 138, 147, 0.85); + color: rgba(124, 137, 146, 0.85); font-size: 11px; display: inline-block; text-align: left; @@ -6342,7 +6338,7 @@ div.v-layout.v-horizontal.v-widget { border-right: 2px solid #CDD8EC; border-top-right-radius: 4px; border-bottom-left-radius: 4px; - background: #ffffff; + background: #FEFEFE; } .sormas td.v-datefield-calendarpanel-time { @@ -6877,7 +6873,7 @@ div.v-layout.v-horizontal.v-widget { line-height: 22px; text-align: center; font-size: 11px; - background: #ffffff; + background: #FEFEFE; border-radius: 2px; -webkit-transition: color 200ms; -moz-transition: color 200ms; @@ -6894,7 +6890,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-inline-datefield-calendarpanel-day-offmonth { - color: #9ba5ac; + color: #9aa4ab; background: transparent; } @@ -6922,13 +6918,13 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-outside-range, .sormas .v-inline-datefield-calendarpanel-day.v-inline-datefield-calendarpanel-day-outside-range:hover { - color: #9ba5ac; + color: #9aa4ab; cursor: not-allowed; } .sormas .v-inline-datefield-calendarpanel-weekdays { height: 22px; - color: rgba(125, 138, 147, 0.85); + color: rgba(124, 137, 146, 0.85); } .sormas .v-inline-datefield-calendarpanel-weekdays strong { @@ -6961,7 +6957,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas td[class*="year"] button:before, .sormas td[class*="month"] button:before { - color: #9ba5ac; + color: #9aa4ab; font-size: 16px; line-height: 18px; -webkit-transition: color 200ms; @@ -6980,7 +6976,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas td[class*="year"] button.outside-range:hover:before, .sormas td[class*="month"] button.outside-range:hover:before { - color: #9ba5ac; + color: #9aa4ab; } .sormas .v-button-prevyear:before { @@ -7014,7 +7010,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-inline-datefield-calendarpanel-weeknumber, .sormas .v-inline-datefield-calendarpanel-weekdays.v-inline-datefield-calendarpanel-weeknumbers td:first-child { width: 26px; - color: rgba(125, 138, 147, 0.85); + color: rgba(124, 137, 146, 0.85); font-size: 11px; display: inline-block; text-align: left; @@ -7035,7 +7031,7 @@ div.v-layout.v-horizontal.v-widget { border-right: 2px solid #CDD8EC; border-top-right-radius: 4px; border-bottom-left-radius: 4px; - background: #ffffff; + background: #FEFEFE; } .sormas td.v-inline-datefield-calendarpanel-time { @@ -7092,9 +7088,9 @@ div.v-layout.v-horizontal.v-widget { cursor: default; border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); padding: 0; text-align: left; @@ -7170,9 +7166,9 @@ div.v-layout.v-horizontal.v-widget { cursor: pointer; border-radius: 0; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6; background: transparent; -webkit-box-shadow: none; box-shadow: none; @@ -7213,12 +7209,12 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-menubar > .v-menubar-menuitem:hover:before { - background-color: rgba(191, 191, 191, 0.1); + background-color: rgba(190, 190, 190, 0.1); border: none; } .sormas .v-menubar > .v-menubar-menuitem:active:before { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } .sormas .v-menubar > .v-menubar-menuitem .v-icon { @@ -7238,9 +7234,9 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-menubar > .v-menubar-menuitem-checked { -webkit-box-shadow: none; box-shadow: none; - background-color: #f2f2f2; - background-image: -webkit-linear-gradient(bottom, #f2f2f2 0%, #f2f2f2 100%); - background-image: linear-gradient(to top,#f2f2f2 0%, #f2f2f2 100%); + background-color: #f1f1f1; + background-image: -webkit-linear-gradient(bottom, #f1f1f1 0%, #f1f1f1 100%); + background-image: linear-gradient(to top,#f1f1f1 0%, #f1f1f1 100%); color: #374B59; } @@ -7300,8 +7296,8 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; background-color: white; color: #374B59; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.0902); + box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.0902); -webkit-backface-visibility: hidden; -moz-backface-visibility: hidden; -ms-backface-visibility: hidden; @@ -7532,8 +7528,8 @@ div.v-layout.v-horizontal.v-widget { border: 2px solid #CDD8EC; -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); } :root .sormas .v-radiobutton > input ~ label:before, :root .sormas .v-radiobutton > input ~ label:after { @@ -7561,9 +7557,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); padding: 0; height: 16px; @@ -7579,7 +7575,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-radiobutton > input:active ~ label:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } :root .sormas .v-radiobutton > input:checked ~ label:after { @@ -7691,8 +7687,8 @@ div.v-layout.v-horizontal.v-widget { border: 2px solid #CDD8EC; -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); } :root .sormas .v-select-optiongroup-small .v-checkbox > input ~ label:before, :root .sormas .v-select-optiongroup-small .v-checkbox > input ~ label:after { @@ -7720,9 +7716,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); padding: 0; height: 14px; @@ -7738,7 +7734,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-select-optiongroup-small .v-checkbox > input:active ~ label:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } :root .sormas .v-select-optiongroup-small .v-checkbox > input:checked ~ label:after { @@ -7816,8 +7812,8 @@ div.v-layout.v-horizontal.v-widget { border: 2px solid #CDD8EC; -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); } :root .sormas .v-select-optiongroup-small .v-radiobutton > input ~ label:before, :root .sormas .v-select-optiongroup-small .v-radiobutton > input ~ label:after { @@ -7845,9 +7841,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); padding: 0; height: 14px; @@ -7863,7 +7859,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-select-optiongroup-small .v-radiobutton > input:active ~ label:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } :root .sormas .v-select-optiongroup-small .v-radiobutton > input:checked ~ label:after { @@ -7975,8 +7971,8 @@ div.v-layout.v-horizontal.v-widget { border: 2px solid #CDD8EC; -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); } :root .sormas .v-select-optiongroup-large .v-checkbox > input ~ label:before, :root .sormas .v-select-optiongroup-large .v-checkbox > input ~ label:after { @@ -8004,9 +8000,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); padding: 0; height: 19px; @@ -8022,7 +8018,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-select-optiongroup-large .v-checkbox > input:active ~ label:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } :root .sormas .v-select-optiongroup-large .v-checkbox > input:checked ~ label:after { @@ -8100,8 +8096,8 @@ div.v-layout.v-horizontal.v-widget { border: 2px solid #CDD8EC; -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5); - -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 2px rgba(205, 216, 236, 0.5), inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); } :root .sormas .v-select-optiongroup-large .v-radiobutton > input ~ label:before, :root .sormas .v-select-optiongroup-large .v-radiobutton > input ~ label:after { @@ -8129,9 +8125,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); padding: 0; height: 19px; @@ -8147,7 +8143,7 @@ div.v-layout.v-horizontal.v-widget { } :root .sormas .v-select-optiongroup-large .v-radiobutton > input:active ~ label:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } :root .sormas .v-select-optiongroup-large .v-radiobutton > input:checked ~ label:after { @@ -8282,14 +8278,14 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; background-color: white; color: #374B59; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.0902); + box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.0902); -webkit-backface-visibility: hidden; -moz-backface-visibility: hidden; -ms-backface-visibility: hidden; backface-visibility: hidden; - -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1), 0 16px 80px -6px rgba(0, 0, 0, 0.15), 0 0 0 2px rgba(0, 0, 0, 0.09); - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1), 0 16px 80px -6px rgba(0, 0, 0, 0.15), 0 0 0 2px rgba(0, 0, 0, 0.09); + -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1), 0 16px 80px -6px rgba(0, 0, 0, 0.15), 0 0 0 2px rgba(0, 0, 0, 0.0902); + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1), 0 16px 80px -6px rgba(0, 0, 0, 0.15), 0 0 0 2px rgba(0, 0, 0, 0.0902); padding: 0; min-width: 128px !important; min-height: 32px !important; @@ -8591,7 +8587,7 @@ div.v-layout.v-horizontal.v-widget { z-index: 2; border-top: 2px solid #CDD8EC; border-bottom: 2px solid #CDD8EC; - background-color: #ffffff; + background-color: #FEFEFE; } .sormas .v-window-top-toolbar.v-menubar { @@ -8606,9 +8602,9 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-window-bottom-toolbar.v-layout { padding: 6px 11px; - background-color: #ffffff; - background-image: -webkit-linear-gradient(top, white 0, #ffffff 3px); - background-image: linear-gradient(to bottom,white 0, #ffffff 3px); + background-color: #FEFEFE; + background-image: -webkit-linear-gradient(top, #fefefe 0, #FEFEFE 3px); + background-image: linear-gradient(to bottom,#fefefe 0, #FEFEFE 3px); border-top: 2px solid #CDD8EC; border-radius: 0 0 4px 4px; } @@ -8806,7 +8802,7 @@ div.v-layout.v-horizontal.v-widget { line-height: 2px; color: #CDD8EC; text-indent: -3px; - text-shadow: 0 0 1px #ffffff, 0 0 1px #ffffff; + text-shadow: 0 0 1px #FEFEFE, 0 0 1px #FEFEFE; opacity: 1; visibility: visible; } @@ -8836,7 +8832,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-table { position: relative; - background: #ffffff; + background: #FEFEFE; color: #374B59; overflow: hidden; } @@ -8852,7 +8848,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-table-header-wrap, .sormas .v-table-footer-wrap, .sormas .v-table-header-drag { border: 2px solid #CDD8EC; - background: #ffffff; + background: #FEFEFE; white-space: nowrap; font-size: 10px; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); @@ -9086,9 +9082,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); position: absolute; z-index: 2; @@ -9119,7 +9115,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-table-column-selector:hover:after { - background-color: rgba(191, 191, 191, 0.1); + background-color: rgba(190, 190, 190, 0.1); } .sormas .v-table-column-selector:focus:after { @@ -9129,7 +9125,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-table-column-selector:active:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } .sormas .v-table-column-selector:after { @@ -9143,7 +9139,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-table-column-selector:active:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } .sormas .v-table-column-selector:before { @@ -9455,14 +9451,14 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, none; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, none; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); height: auto; padding: 0; border-radius: 0; - background: #ffffff; + background: #FEFEFE; } .sormas .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:after { @@ -9474,7 +9470,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:hover:after { - background-color: rgba(191, 191, 191, 0.1); + background-color: rgba(190, 190, 190, 0.1); } .sormas .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:focus:after { @@ -9484,7 +9480,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-splitpanel-horizontal > div > .v-splitpanel-hsplitter div:before:active:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } .sormas .v-splitpanel-horizontal > div > .v-splitpanel-second-container { @@ -9509,9 +9505,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, none; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, none; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); height: auto; padding: 0; @@ -9527,7 +9523,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:hover:after { - background-color: rgba(191, 191, 191, 0.1); + background-color: rgba(190, 190, 190, 0.1); } .sormas .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:focus:after { @@ -9537,7 +9533,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-splitpanel-vertical > div > .v-splitpanel-vsplitter div:before:active:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } .sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter { @@ -9558,14 +9554,14 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, none; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, none; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); height: auto; padding: 0; border-radius: 0; - background: #ffffff; + background: #FEFEFE; } .sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:after { @@ -9577,7 +9573,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:hover:after { - background-color: rgba(191, 191, 191, 0.1); + background-color: rgba(190, 190, 190, 0.1); } .sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:focus:after { @@ -9587,7 +9583,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:before:active:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } .sormas .v-splitpanel-horizontal.large > div > .v-splitpanel-hsplitter div:after { @@ -9626,9 +9622,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, none; + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, none; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, none; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); height: auto; padding: 0; @@ -9644,7 +9640,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:hover:after { - background-color: rgba(191, 191, 191, 0.1); + background-color: rgba(190, 190, 190, 0.1); } .sormas .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:focus:after { @@ -9654,7 +9650,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:before:active:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } .sormas .v-splitpanel-vertical.large > div > .v-splitpanel-vsplitter div:after { @@ -9674,7 +9670,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-progressbar-wrapper { border-radius: 4px; height: 8px; - background: #d9d9d9; + background: #d8d8d8; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; @@ -9780,7 +9776,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-slider-base { border-radius: 4px; height: 8px; - background: #d9d9d9; + background: #d8d8d8; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; @@ -9846,9 +9842,9 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; border: 2px solid #CDD8EC; - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7, 0 2px 3px rgba(0, 0, 0, 0.05); + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6, 0 2px 3px rgba(0, 0, 0, 0.05); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); } @@ -9861,7 +9857,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-slider-handle:before:hover:after { - background-color: rgba(191, 191, 191, 0.1); + background-color: rgba(190, 190, 190, 0.1); } .sormas .v-slider-handle:before:focus:after { @@ -9871,7 +9867,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-slider-handle:before:active:after { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } .sormas .v-slider-handle:after { @@ -9923,7 +9919,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-slider-vertical .v-slider-base { - background: #d9d9d9; + background: #d8d8d8; width: 4px; height: 100% !important; min-width: 0; @@ -10105,8 +10101,8 @@ div.v-layout.v-horizontal.v-widget { bottom: 0; padding-left: 16px; background-color: transparent; - background-image: -webkit-linear-gradient(right, #ffffff 70%, rgba(255, 255, 255, 0) 100%); - background-image: linear-gradient(to left,#ffffff 70%, rgba(255, 255, 255, 0) 100%); + background-image: -webkit-linear-gradient(right, #FEFEFE 70%, rgba(254, 254, 254, 0) 100%); + background-image: linear-gradient(to left,#FEFEFE 70%, rgba(254, 254, 254, 0) 100%); pointer-events: none; } @@ -10124,7 +10120,7 @@ div.v-layout.v-horizontal.v-widget { } .v-ie8 .sormas .v-tabsheet-scroller, .v-ie9 .sormas .v-tabsheet-scroller { - background-color: #ffffff; + background-color: #FEFEFE; } .v-ie8 .sormas .v-tabsheet-scroller:after, .v-ie9 .sormas .v-tabsheet-scroller:after { @@ -10259,7 +10255,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption { margin-left: 3px; padding: 0 18px; - background-color: #ffffff; + background-color: #FEFEFE; border: 2px solid transparent; line-height: 30px; border-radius: 4px 4px 0 0; @@ -10270,12 +10266,12 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption:hover { - background-color: #f7f7f7; + background-color: #f6f6f6; border-bottom-color: #CDD8EC; } .sormas .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption.v-disabled:hover { - background-color: #ffffff; + background-color: #FEFEFE; } .sormas .v-tabsheet-framed > .v-tabsheet-tabcontainer .v-caption-closable { @@ -10315,7 +10311,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-tabsheet-framed.padded-tabbar > .v-tabsheet-tabcontainer { border: 2px solid #CDD8EC; border-bottom: none; - background: #ffffff; + background: #FEFEFE; padding-top: 5px; } @@ -10451,8 +10447,8 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-colorpicker-popup .v-horizontallayout { height: auto !important; padding: 8px 0; - background-color: #ffffff; - border-top: 2px solid #f2f2f2; + background-color: #FEFEFE; + border-top: 2px solid #f1f1f1; } .sormas .v-colorpicker-popup .v-horizontallayout .v-expand { @@ -10528,14 +10524,14 @@ div.v-layout.v-horizontal.v-widget { padding: 0 11px; line-height: 30px; border-bottom: 2px solid #CDD8EC; - background-color: #ffffff; - background-image: -webkit-linear-gradient(top, #ffffff 0%, #ffffff 100%); - background-image: linear-gradient(to bottom,#ffffff 0%, #ffffff 100%); + background-color: #FEFEFE; + background-image: -webkit-linear-gradient(top, #FEFEFE 0%, #FEFEFE 100%); + background-image: linear-gradient(to bottom,#FEFEFE 0%, #FEFEFE 100%); color: #374B59; font-weight: 600; font-size: 11px; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); border-radius: 2px 2px 0 0; } @@ -10584,7 +10580,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-panel-well { - background: #fafafa; + background: #f9f9f9; color: #374B59; -webkit-box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.05), inset 0 2px 3px rgba(0, 0, 0, 0.05); @@ -10620,7 +10616,7 @@ div.v-layout.v-horizontal.v-widget { z-index: 2; top: 0; height: 0; - border-top: 2px solid #ffffff; + border-top: 2px solid #FEFEFE; left: 0; right: 0; } @@ -10645,9 +10641,9 @@ div.v-layout.v-horizontal.v-widget { border: 2px solid #CDD8EC; -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - background-color: #ffffff; - background-image: -webkit-linear-gradient(top, #ffffff 0%, #ffffff 100%); - background-image: linear-gradient(to bottom,#ffffff 0%, #ffffff 100%); + background-color: #FEFEFE; + background-image: -webkit-linear-gradient(top, #FEFEFE 0%, #FEFEFE 100%); + background-image: linear-gradient(to bottom,#FEFEFE 0%, #FEFEFE 100%); overflow: hidden; } @@ -10693,14 +10689,14 @@ div.v-layout.v-horizontal.v-widget { padding: 0 11px; line-height: 30px; border-bottom: 2px solid #CDD8EC; - background-color: #ffffff; - background-image: -webkit-linear-gradient(top, #ffffff 0%, #ffffff 100%); - background-image: linear-gradient(to bottom,#ffffff 0%, #ffffff 100%); + background-color: #FEFEFE; + background-image: -webkit-linear-gradient(top, #FEFEFE 0%, #FEFEFE 100%); + background-image: linear-gradient(to bottom,#FEFEFE 0%, #FEFEFE 100%); color: #374B59; font-weight: 600; font-size: 11px; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); display: block; background: transparent; @@ -10721,12 +10717,12 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-accordion-item-caption > .v-caption:hover:before { - background-color: rgba(191, 191, 191, 0.1); + background-color: rgba(190, 190, 190, 0.1); border: none; } .sormas .v-accordion-item-caption > .v-caption:active:before { - background-color: rgba(128, 128, 128, 0.2); + background-color: rgba(127, 127, 127, 0.2); } .sormas .v-accordion-item-content { @@ -10771,7 +10767,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-select-twincol select { border: 2px solid #CDD8EC; - background: #ffffff; + background: #FEFEFE; color: #374B59; } @@ -10852,14 +10848,14 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-select-twincol-error .v-select-twincol-options, .sormas .v-select-twincol-error .v-select-twincol-selections { - border-color: #eb2977 !important; - background: #fffbfc; + border-color: #E10002 !important; + background: #fff9f9; color: #374B59; } .sormas .v-select select { border: 2px solid #CDD8EC; - background: #ffffff; + background: #FEFEFE; color: #374B59; } @@ -10884,8 +10880,8 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-select-error .v-select-select { - border-color: #eb2977 !important; - background: #fffbfc; + border-color: #E10002 !important; + background: #fff9f9; color: #374B59; } @@ -10988,7 +10984,7 @@ div.v-layout.v-horizontal.v-widget { text-align: right; margin: 0 4px; white-space: nowrap; - border-top: 1px solid #f7f7f7; + border-top: 1px solid #f6f6f6; cursor: pointer; } @@ -10997,7 +10993,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-calendar-month-day-today { - background: #fcfdfe; + background: #fbfcfd; } .sormas .v-calendar-month-day-today .v-calendar-day-number { @@ -11010,7 +11006,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-calendar-month-day-selected { - background-color: #e5eef5; + background-color: #e4edf4; } .sormas .v-calendar-month-day-dragemphasis { @@ -11023,7 +11019,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-calendar-weekly-longevents { margin-left: 50px; - border-bottom: 3px solid #e6e6e6; + border-bottom: 3px solid #e5e5e5; } .sormas .v-calendar-weekly-longevents .v-calendar-event-all-day { @@ -11218,7 +11214,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-calendar-week-wrapper .v-calendar-event-content { margin-top: -1px; border-radius: 5px; - border: 1px solid #ffffff; + border: 1px solid #FEFEFE; padding-top: 3px; margin-right: 4px; } @@ -11228,8 +11224,8 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-calendar-event-all-day { - background-color: #cceef8; - background-color: rgba(204, 238, 248, 0.8); + background-color: #cbedf8; + background-color: rgba(203, 237, 248, 0.8); color: #00ace0; } @@ -11238,8 +11234,8 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-calendar-week-wrapper .v-calendar-event .v-calendar-event-content { - background-color: #cceef8; - background-color: rgba(204, 238, 248, 0.8); + background-color: #cbedf8; + background-color: rgba(203, 237, 248, 0.8); } .sormas .v-calendar-event-month[class*="color2"]:before { @@ -11247,8 +11243,8 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-calendar-event-all-day[class*="color2"] { - background-color: #d5ebd1; - background-color: rgba(213, 235, 209, 0.8); + background-color: #d4ebd0; + background-color: rgba(212, 235, 208, 0.8); color: #2d9f19; } @@ -11257,8 +11253,8 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-calendar-week-wrapper .v-calendar-event[class*="color2"] .v-calendar-event-content { - background-color: #d5ebd1; - background-color: rgba(213, 235, 209, 0.8); + background-color: #d4ebd0; + background-color: rgba(212, 235, 208, 0.8); } .sormas .v-calendar-event-month[class*="color3"]:before { @@ -11266,8 +11262,8 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-calendar-event-all-day[class*="color3"] { - background-color: #f5e5cc; - background-color: rgba(245, 229, 204, 0.8); + background-color: #f5e5cb; + background-color: rgba(245, 229, 203, 0.8); color: #d18100; } @@ -11276,8 +11272,8 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-calendar-week-wrapper .v-calendar-event[class*="color3"] .v-calendar-event-content { - background-color: #f5e5cc; - background-color: rgba(245, 229, 204, 0.8); + background-color: #f5e5cb; + background-color: rgba(245, 229, 203, 0.8); } .sormas .v-calendar-event-month[class*="color4"]:before { @@ -11285,8 +11281,8 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-calendar-event-all-day[class*="color4"] { - background-color: #f5d7cf; - background-color: rgba(245, 215, 207, 0.8); + background-color: #f4d6ce; + background-color: rgba(244, 214, 206, 0.8); color: #ce3812; } @@ -11295,8 +11291,8 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-calendar-week-wrapper .v-calendar-event[class*="color4"] .v-calendar-event-content { - background-color: #f5d7cf; - background-color: rgba(245, 215, 207, 0.8); + background-color: #f4d6ce; + background-color: rgba(244, 214, 206, 0.8); } .sormas .v-calendar-event-month[class*="color5"]:before { @@ -11304,8 +11300,8 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-calendar-event-all-day[class*="color5"] { - background-color: #d5ddf5; - background-color: rgba(213, 221, 245, 0.8); + background-color: #d4dcf4; + background-color: rgba(212, 220, 244, 0.8); color: #2d55cd; } @@ -11314,8 +11310,8 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-calendar-week-wrapper .v-calendar-event[class*="color5"] .v-calendar-event-content { - background-color: #d5ddf5; - background-color: rgba(213, 221, 245, 0.8); + background-color: #d4dcf4; + background-color: rgba(212, 220, 244, 0.8); } .sormas .v-calendar.v-disabled * { @@ -11462,7 +11458,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-label-success, .sormas .v-label-failure { background: white; color: #374B59; - border: 2px solid #36b955; + border: 2px solid #6691C4; border-radius: 4px; padding: 6px 16px 6px 32px; font-weight: 500; @@ -11474,16 +11470,16 @@ div.v-layout.v-horizontal.v-widget { content: "\f00c"; margin-right: 0.5em; margin-left: -16px; - color: #36b955; + color: #6691C4; } .sormas .v-label-failure { - border-color: #eb2977; + border-color: #E10002; } .sormas .v-label-failure:before { content: "\f05e"; - color: #eb2977; + color: #E10002; } .sormas [draggable=true] { @@ -11589,7 +11585,7 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-select select { border: 2px solid #CDD8EC; - background: #ffffff; + background: #FEFEFE; color: #374B59; } @@ -11614,8 +11610,8 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-select-error .v-select-select { - border-color: #eb2977 !important; - background: #fffbfc; + border-color: #E10002 !important; + background: #fff9f9; color: #374B59; } @@ -11643,8 +11639,8 @@ div.v-layout.v-horizontal.v-widget { border-radius: 4px; background-color: white; color: #374B59; - -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); - box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.09); + -webkit-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.0902); + box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1), 0 3px 5px 0 rgba(0, 0, 0, 0.05), 0 0 0 2px rgba(0, 0, 0, 0.0902); -webkit-backface-visibility: hidden; -moz-backface-visibility: hidden; -ms-backface-visibility: hidden; @@ -11749,9 +11745,9 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-richtextarea .gwt-RichTextToolbar { - background: #ffffff; - -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; - box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f7f7f7; + background: #FEFEFE; + -webkit-box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6; + box-shadow: inset 0 1px 0 white, inset 0 -1px 0 #f6f6f6; border-bottom: 2px solid #CDD8EC; color: #374B59; } @@ -11769,9 +11765,9 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-richtextarea .gwt-ToggleButton-down, .sormas .v-richtextarea .gwt-ToggleButton-down-hovering { - background-color: #e6e6e6; - background-image: -webkit-linear-gradient(bottom, #e6e6e6 0%, #e6e6e6 100%); - background-image: linear-gradient(to top,#e6e6e6 0%, #e6e6e6 100%); + background-color: #e5e5e5; + background-image: -webkit-linear-gradient(bottom, #e5e5e5 0%, #e5e5e5 100%); + background-image: linear-gradient(to top,#e5e5e5 0%, #e5e5e5 100%); } .sormas .v-richtextarea .gwt-RichTextToolbar-top img { @@ -12089,7 +12085,7 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-Notification.error { - background: #eb2977; + background: #E10002; font-weight: 500; -webkit-box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.25); @@ -12241,11 +12237,11 @@ div.v-layout.v-horizontal.v-widget { .sormas .v-Notification.success, .sormas .v-Notification.failure { background: #fff; color: #555; - border: 2px solid #36b955; + border: 2px solid #6691C4; } .sormas .v-Notification.success .v-Notification-caption, .sormas .v-Notification.failure .v-Notification-caption { - color: #36b955; + color: #6691C4; font-weight: 500; } @@ -12260,11 +12256,11 @@ div.v-layout.v-horizontal.v-widget { } .sormas .v-Notification.failure { - border-color: #eb2977; + border-color: #E10002; } .sormas .v-Notification.failure .v-Notification-caption { - color: #eb2977; + color: #E10002; } .sormas .v-Notification.failure .v-Notification-caption:before { @@ -12911,16 +12907,74 @@ div.v-layout.v-horizontal.v-widget { display: none; } +.sormas .v-grid .v-grid-tablewrapper, .sormas .v-grid .v-grid-header-deco, .sormas .v-grid .v-grid-footer-deco, .sormas .v-grid .v-grid-scroller { + border-left: none; + border-right: none; +} + +.sormas .v-grid .v-grid-scroller { + border-top: none; +} + +.sormas .v-grid .v-grid-row .v-grid-cell { + padding: 3px 6px; +} + +.sormas .v-grid .v-grid-row .v-grid-cell:first-child { + padding-left: 0; +} + +.sormas .v-grid .v-grid-row .v-grid-cell:last-child { + padding-right: 0; +} + +.sormas .v-grid .v-grid-row .v-grid-cell.priority-high { + color: #E10002; +} + +.sormas .v-grid .v-grid-row .v-grid-cell.priority-normal { + color: #6691C4; +} + +.sormas .v-grid .v-grid-row .v-grid-cell.warning { + color: #E10002; + font-weight: 600; +} + +.sormas .v-grid .v-grid-row.status-discarded .v-grid-cell { + text-decoration: line-through; + color: #888; +} + +.sormas .v-grid .v-grid-row.status-done .v-grid-cell { + color: #888; +} + +.sormas .v-grid .v-grid-row.status-not .v-grid-cell { + color: #C44; +} + +.sormas .v-grid .v-grid-header .v-grid-cell { + border-left: none; + border-bottom: none; +} + +.sormas .v-grid .v-grid-header .v-grid-column-header-content { + text-transform: uppercase; + font-weight: 600; + border-bottom: 2px solid #CDD8EC; +} + .sormas .valo-menu { font-size: 16px; vertical-align: middle; - border-right-color: #E6E8EB; + border-right-color: #CDD8EC; } .sormas .valo-menu-title { padding: 16px; - background: #ffffff; - color: #6791C5; + background: #FEFEFE; + color: #6691C4; font-weight: bold; font-size: 32px; line-height: 32px; @@ -12930,20 +12984,20 @@ div.v-layout.v-horizontal.v-widget { } .sormas .valo-menu-item { - color: #FEFEFE; + color: inherit; text-shadow: none; padding: 12px 16px; line-height: 36px; } .sormas .valo-menu-item .v-icon { - color: #FEFEFE; + color: inherit; font-size: 28px; min-width: 36px; } .sormas .valo-menu-item.selected { - background: #FAFBFC !important; + background: #FEFEFE !important; color: #005A9C !important; text-shadow: none !important; } @@ -13007,6 +13061,37 @@ div.v-layout.v-horizontal.v-widget { height: inherit; } +.sormas .v-window .v-window-outerheader { + border-bottom: 3px solid #CDD8EC; +} + +.sormas .v-window .v-window-outerheader .v-window-header { + padding: 16px 32px 8px 32px; + font-size: 24px; + font-weight: 600; + color: #005A9C; +} + +.sormas .v-window .v-window-outerheader::after { + +} + +.sormas .v-window .v-window-contents > .v-scrollable > .v-layout.v-margin-left { + padding-left: 32px; +} + +.sormas .v-window .v-window-contents > .v-scrollable > .v-layout.v-margin-right { + padding-right: 32px; +} + +.sormas .v-window .v-window-contents > .v-scrollable > .v-layout.v-margin-top { + padding-top: 32px; +} + +.sormas .v-window .v-window-contents > .v-scrollable > .v-layout.v-margin-bottom { + padding-bottom: 32px; +} + .sormas .login-screen { background: #EFF5FC; background-image: url(views/img/login-bg.png); @@ -13098,37 +13183,6 @@ div.v-layout.v-horizontal.v-widget { padding-right: 8px; } -.sormas .v-grid-header th { - font-size: 12px; -} - -.sormas .v-grid-cell { - font-size: 13px; -} - -.sormas .v-grid-cell.priority-high { - background-color: #DFA7A5; - color: white; -} - -.sormas .v-grid-cell.priority-normal { - background-color: #A6BFDD; - color: white; -} - -.sormas .v-grid-row.status-discarded .v-grid-cell { - text-decoration: line-through; - color: #888; -} - -.sormas .v-grid-row.status-done .v-grid-cell { - color: #888; -} - -.sormas .v-grid-row.status-not .v-grid-cell { - color: #C44; -} - .sormas .callout { text-align: center; outline: none; diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/login.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/login.scss index 0632259cd86..e2eb6a8e81c 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/login.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/login.scss @@ -1,4 +1,10 @@ +$login-info-width: 300px !default; +$login-info-opacity: 0.7 !default; +$login-background-color: $editor-background-color !default; +$login-background-image: "img/login-bg.png" !default; + + @mixin login { // login screen - for small screens, see below .login-screen { From 0a2ef74ec0e14f75268940133587a6d6d2b519d2 Mon Sep 17 00:00:00 2001 From: Martin Wahnschaffe Date: Mon, 16 Oct 2017 18:03:58 +0200 Subject: [PATCH 21/54] Show menu selection in sub views #356 --- .../src/main/java/de/symeda/sormas/ui/Menu.java | 8 ++++++++ .../webapp/VAADIN/themes/sormas/components/menu.scss | 12 +++++++++++- .../src/main/webapp/VAADIN/themes/sormas/styles.css | 10 ++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java index ea424e9aaa0..3f70b1a169a 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java @@ -175,10 +175,18 @@ public void setActiveView(String viewName) { for (Button button : viewButtons.values()) { button.removeStyleName("selected"); } + Button selected = viewButtons.get(viewName); + if (selected == null && viewName.contains("/")) { + // might be a sub-view + viewName = viewName.substring(0, viewName.indexOf('/')); + selected = viewButtons.get(viewName); + } + if (selected != null) { selected.addStyleName("selected"); } + menuPart.removeStyleName(VALO_MENU_VISIBLE); } } diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss index 2cfd8d94ab8..224009437b2 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss @@ -41,6 +41,16 @@ $valo-menu-background-color: $s-default-color !default; .v-icon { color: #005A9C !important; } + + &::before { + position: absolute; + top: -12px; + right: 0px; + width: 4px; + height: 74px; + background-color: $v-selection-color; + content: ""; + } } } -} \ No newline at end of file +} diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css index 2a754dd786f..340ba87ec14 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css @@ -13006,6 +13006,16 @@ div.v-layout.v-horizontal.v-widget { color: #005A9C !important; } +.sormas .valo-menu-item.selected::before { + position: absolute; + top: -12px; + right: 0px; + width: 4px; + height: 74px; + background-color: #005A9C; + content: ""; +} + .sormas .v-radiobutton { margin: 0 0 10px -2px !important; padding: 0 !important; From dc26981180bd65ced3169d3c98e5d5afdcacd4d0 Mon Sep 17 00:00:00 2001 From: Martin Wahnschaffe Date: Tue, 17 Oct 2017 13:40:44 +0200 Subject: [PATCH 22/54] Fix for broken CI build --- .../java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java | 1 - 1 file changed, 1 deletion(-) diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java index 29d9d6cfc0d..5fa2208276f 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/contact/ContactFacadeEjb.java @@ -15,7 +15,6 @@ import javax.validation.ValidationException; import javax.validation.constraints.NotNull; -import org.jboss.weld.exceptions.UnsupportedOperationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; From 2961e974e984e68704c5afd6fe838d30163bc727 Mon Sep 17 00:00:00 2001 From: Martin Wahnschaffe Date: Wed, 18 Oct 2017 16:15:46 +0200 Subject: [PATCH 23/54] Update Vaadin Theme with new Design #356 view header sub menu header styles clean up of CssStyles view names in fragements.properties --- .../de/symeda/sormas/api/I18nProperties.java | 30 +- .../de/symeda/sormas/api/task/TaskStatus.java | 4 - .../main/resources/buttonCaptions.properties | 19 - .../src/main/resources/fragments.properties | 42 ++ .../main/java/de/symeda/sormas/ui/Menu.java | 3 +- .../symeda/sormas/ui/SubNavigationMenu.java | 3 + .../sormas/ui/caze/AbstractTableField.java | 2 +- .../sormas/ui/caze/CaseContactsView.java | 5 +- .../symeda/sormas/ui/caze/CaseCreateForm.java | 2 +- .../symeda/sormas/ui/caze/CaseDataForm.java | 25 +- .../symeda/sormas/ui/caze/CaseDataView.java | 13 +- .../symeda/sormas/ui/caze/CasePersonView.java | 4 +- .../de/symeda/sormas/ui/caze/CasesView.java | 31 +- .../sormas/ui/contact/ContactCreateForm.java | 2 +- .../sormas/ui/contact/ContactDataForm.java | 14 +- .../sormas/ui/contact/ContactDataView.java | 5 +- .../sormas/ui/contact/ContactVisitsView.java | 4 +- .../sormas/ui/contact/ContactsView.java | 40 +- .../sormas/ui/dashboard/DashboardView.java | 33 +- .../ui/dashboard/SituationReportTable.java | 19 +- .../symeda/sormas/ui/epidata/EpiDataForm.java | 12 +- .../sormas/ui/events/EventDataForm.java | 26 +- .../sormas/ui/events/EventDataView.java | 4 +- .../ui/events/EventParticipantsView.java | 4 +- .../symeda/sormas/ui/events/EventsView.java | 32 +- .../CaseHospitalizationForm.java | 4 +- .../sormas/ui/person/PersonCreateForm.java | 4 +- .../sormas/ui/person/PersonEditForm.java | 26 +- .../sormas/ui/person/PersonSelectField.java | 4 +- .../symeda/sormas/ui/reports/ReportsView.java | 11 +- .../sormas/ui/samples/SampleCreateForm.java | 4 +- .../sormas/ui/samples/SampleDataView.java | 4 +- .../sormas/ui/samples/SampleEditForm.java | 8 +- .../ui/samples/SampleListComponent.java | 29 +- .../ui/samples/SampleTestsComponent.java | 18 +- .../symeda/sormas/ui/samples/SamplesView.java | 4 +- .../sormas/ui/symptoms/SymptomsForm.java | 14 +- .../sormas/ui/task/AbstractTaskView.java | 5 - .../de/symeda/sormas/ui/task/TaskGrid.java | 16 +- .../sormas/ui/task/TaskListComponent.java | 40 +- .../de/symeda/sormas/ui/task/TasksView.java | 5 +- .../symeda/sormas/ui/user/UserEditForm.java | 12 +- .../de/symeda/sormas/ui/user/UsersView.java | 28 +- .../sormas/ui/utils/AbstractEditForm.java | 27 +- .../ui/utils/AbstractSubNavigationView.java | 39 +- .../symeda/sormas/ui/utils/AbstractView.java | 57 ++ .../utils/CommitDiscardWrapperComponent.java | 1 + .../de/symeda/sormas/ui/utils/CssStyles.java | 105 +--- .../de/symeda/sormas/ui/utils/LayoutUtil.java | 16 - .../VAADIN/themes/sormas/components/menu.scss | 23 + .../themes/sormas/components/optiongroup.scss | 14 + .../themes/sormas/components/tabsheet.scss | 47 ++ .../themes/sormas/components/textfield.scss | 10 +- .../VAADIN/themes/sormas/deprecated.scss | 20 + .../webapp/VAADIN/themes/sormas/general.css | 53 -- .../webapp/VAADIN/themes/sormas/global.scss | 118 ++++ .../webapp/VAADIN/themes/sormas/sormas.scss | 364 +----------- .../webapp/VAADIN/themes/sormas/styles.css | 525 +++++++++--------- .../webapp/VAADIN/themes/sormas/styles.scss | 1 - .../VAADIN/themes/sormas/views/about.scss | 40 ++ .../VAADIN/themes/sormas/views/dashboard.scss | 32 ++ .../VAADIN/themes/sormas/views/login.scss | 65 ++- .../VAADIN/themes/sormas/views/view.scss | 12 + 63 files changed, 1047 insertions(+), 1136 deletions(-) delete mode 100644 sormas-api/src/main/resources/buttonCaptions.properties create mode 100644 sormas-api/src/main/resources/fragments.properties delete mode 100644 sormas-ui/src/main/java/de/symeda/sormas/ui/task/AbstractTaskView.java create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/tabsheet.scss create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/deprecated.scss delete mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/general.css create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/global.scss create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/about.scss create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/dashboard.scss create mode 100644 sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/view.scss diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/I18nProperties.java b/sormas-api/src/main/java/de/symeda/sormas/api/I18nProperties.java index cd6186943ed..02d3e23c9da 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/I18nProperties.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/I18nProperties.java @@ -10,7 +10,7 @@ public class I18nProperties { private final Properties fieldCaptionProperties; private final Properties fieldDescriptionProperties; - private final Properties buttonCaptionProperties; + private final Properties fragmentProperties; private final Properties enumProperties; private static I18nProperties getInstance() { @@ -44,14 +44,32 @@ public static String getEnumCaption(Enum value, String addition) { /** * Uses key as default value */ - public static String getButtonCaption(String key) { - return getButtonCaption(key, key); + public static String getFragment(String key) { + return getFragment(key, key); } - public static String getButtonCaption(String key, String defaultValue) { - return getInstance().buttonCaptionProperties.getProperty(key, defaultValue); + public static String getFragment(String key, String defaultValue) { + return getInstance().fragmentProperties.getProperty(key, defaultValue); } + /** + * Uses key as default value + */ + public static String getPrefixFragment(String prefix, String key) { + return getPrefixFragment(prefix, key, key); + } + + public static String getPrefixFragment(String prefix, String key, String defaultValue) { + String result = null; + if (prefix != null) { + result = getInstance().fragmentProperties.getProperty(prefix+"."+key); + } + if (result == null) { + result = getFragment(key, defaultValue); + } + return result; + } + /** * Uses key as default value */ @@ -110,7 +128,7 @@ public static String getPrefixFieldDescription(String prefix, String key, String private I18nProperties() { fieldCaptionProperties = loadProperties("/fieldCaptions.properties"); fieldDescriptionProperties = loadProperties("/fieldDescriptions.properties"); - buttonCaptionProperties = loadProperties("/buttonCaptions.properties"); + fragmentProperties = loadProperties("/fragments.properties"); enumProperties = loadProperties("/enum.properties"); } diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/task/TaskStatus.java b/sormas-api/src/main/java/de/symeda/sormas/api/task/TaskStatus.java index 97ff5d6c053..039cb473bb4 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/task/TaskStatus.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/task/TaskStatus.java @@ -12,8 +12,4 @@ public enum TaskStatus { public String toString() { return I18nProperties.getEnumCaption(this); } - - public String getChangeString() { - return I18nProperties.getButtonCaption(getClass().getSimpleName() + "." + name(), name()); - } } diff --git a/sormas-api/src/main/resources/buttonCaptions.properties b/sormas-api/src/main/resources/buttonCaptions.properties deleted file mode 100644 index 7bc4a64e36e..00000000000 --- a/sormas-api/src/main/resources/buttonCaptions.properties +++ /dev/null @@ -1,19 +0,0 @@ - -Person.createNew = Create a new person -Person.select = Select a matching person - -Contact.cancelFollowUp = cancel follow-up -Contact.lostToFollowUp = lost to follow-up -Contact.resumeFollowUp = resume follow-up - -CaseStatus.POSSIBLE=Needs further investigation -CaseStatus.INVESTIGATED=Case investigation done -CaseStatus.SUSPECT=Is suspected case -CaseStatus.PROBABLE=Is probable case -CaseStatus.CONFIRMED=Is confirmed case -CaseStatus.NO_CASE=Is not a case -CaseStatus.RECOVERED=Is recovered -CaseStatus.DECEASED=Is deceased - -TaskStatus.DONE=Done -TaskStatus.NOT_EXECUTABLE=Not executable diff --git a/sormas-api/src/main/resources/fragments.properties b/sormas-api/src/main/resources/fragments.properties new file mode 100644 index 00000000000..63c15d0eb44 --- /dev/null +++ b/sormas-api/src/main/resources/fragments.properties @@ -0,0 +1,42 @@ + +Contact.cancelFollowUp = cancel follow-up +Contact.lostToFollowUp = lost to follow-up +Contact.resumeFollowUp = resume follow-up + +Person.createNew = Create a new person +Person.select = Select a matching person + +View.cases = Case Directory +View.cases.sub = +View.cases.data = Case Information +View.cases.person = Case Person +View.cases.hospitalization = Case Hospitalization +View.cases.symptoms = Case Symptoms +View.cases.epidata = Case Epidemiological Data +View.cases.contacts = Case Contacts + +View.contacts = Contact Directory +View.contacts.sub = +View.contacts.data = Contact Information +View.contacts.person = Contact Person +View.contacts.visits = Contact Visits + +View.dashboard = Dashboard + +View.events = Alert Directory +View.events.sub = +View.events.data = Alert Information +View.events.eventparticipants = Alert Participants + +View.reports = Weekly Reports +View.reports.sub = + +View.samples = Sample Directory +View.samples.sub = +View.samples.data = Sample Information + +View.tasks = Task Management +View.tasks.sub = + +View.users = User Management +View.users.sub = \ No newline at end of file diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java index 3f70b1a169a..3550a60bc0b 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java @@ -55,8 +55,7 @@ public Menu(Navigator navigator) { title.setSizeUndefined(); Image image = new Image(null, new ThemeResource("img/sormas-logo.png")); image.setHeight(32, Unit.PIXELS); - image.setStyleName("logo"); - image.addStyleName(CssStyles.CURSOR_LINK); + CssStyles.style(image, ValoTheme.MENU_LOGO, ValoTheme.BUTTON_LINK); image.addClickListener(new com.vaadin.event.MouseEvents.ClickListener() { @Override public void click(com.vaadin.event.MouseEvents.ClickEvent event) { diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/SubNavigationMenu.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/SubNavigationMenu.java index afc190b4f74..cff52ad4d27 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/SubNavigationMenu.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/SubNavigationMenu.java @@ -50,6 +50,9 @@ public void addView(final String name, String caption, String params, boolean is CssLayout tabItem = new CssLayout(); tabItem.setSizeUndefined(); tabItem.setPrimaryStyleName("v-tabsheet-tabitem"); + if (isBackNavigation) { + tabItem.addStyleName("back"); + } tabItemCell.addComponent(tabItem); Link link = new Link(caption, new ExternalResource(target)); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/AbstractTableField.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/AbstractTableField.java index 0abceceb906..6e46e82abba 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/AbstractTableField.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/AbstractTableField.java @@ -110,7 +110,7 @@ protected void applyTablePageLength() { protected Component initContent() { this.addStyleName(CssStyles.CAPTION_HIDDEN); - this.addStyleName(CssStyles.VSPACE2); + this.addStyleName(CssStyles.VSPACE_2); layout = new VerticalLayout(); layout.setSpacing(false); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseContactsView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseContactsView.java index 687cc647fbc..49c85d0408c 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseContactsView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseContactsView.java @@ -2,7 +2,6 @@ import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.server.FontAwesome; -import com.vaadin.shared.ui.MarginInfo; import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; import com.vaadin.ui.ComboBox; @@ -47,7 +46,7 @@ public CaseContactsView() { gridLayout.addComponent(createTopBar()); gridLayout.addComponent(createFilterBar()); gridLayout.addComponent(grid); - gridLayout.setMargin(new MarginInfo(true, false, false, false)); + gridLayout.setMargin(true); gridLayout.setSpacing(false); gridLayout.setSizeFull(); gridLayout.setExpandRatio(grid, 1); @@ -63,7 +62,7 @@ public HorizontalLayout createTopBar() { Label header = new Label("Case contacts"); header.setSizeUndefined(); - CssStyles.style(header, CssStyles.H2, CssStyles.NO_MARGIN); + CssStyles.style(header, CssStyles.H2, CssStyles.VSPACE_NONE); topLayout.addComponent(header); Button statusAll = new Button("all", e -> grid.setClassificationFilter(null)); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseCreateForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseCreateForm.java index 0028aad8f3c..7c2793d38fb 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseCreateForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseCreateForm.java @@ -28,7 +28,7 @@ public class CaseCreateForm extends AbstractEditForm { public static final String NONE_HEALTH_FACILITY_DETAILS = "noneHealthFacilityDetails"; private static final String HTML_LAYOUT = - LayoutUtil.divCss(CssStyles.VSPACE2, + LayoutUtil.divCss(CssStyles.VSPACE_2, LayoutUtil.fluidRowLocs(CaseDataDto.DISEASE, CaseDataDto.DISEASE_DETAILS), LayoutUtil.fluidRowLocs(FIRST_NAME, LAST_NAME), LayoutUtil.fluidRowLocs(CaseDataDto.REGION, CaseDataDto.DISTRICT), diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java index 9304c86bf40..e82c370a463 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataForm.java @@ -43,21 +43,20 @@ public class CaseDataForm extends AbstractEditForm { public static final String NONE_HEALTH_FACILITY_DETAILS = "noneHealthFacilityDetails"; private static final String HTML_LAYOUT = - LayoutUtil.h3(CssStyles.VSPACE3, "Case data")+ + LayoutUtil.h3(CssStyles.VSPACE_3, "Case data")+ - LayoutUtil.div( + LayoutUtil.divCss(CssStyles.VSPACE_4, + LayoutUtil.fluidRow( + LayoutUtil.loc(CaseDataDto.UUID), + LayoutUtil.fluidRowLocs(CaseDataDto.REPORT_DATE, CaseDataDto.REPORTING_USER)) + LayoutUtil.fluidRowLocs(CaseDataDto.CASE_CLASSIFICATION) + LayoutUtil.fluidRowLocs(CaseDataDto.INVESTIGATION_STATUS) + - LayoutUtil.fluidRowCss(CssStyles.VSPACE4, - LayoutUtil.fluidRow( - LayoutUtil.loc(CaseDataDto.UUID), - LayoutUtil.fluidRowLocs(CaseDataDto.REPORT_DATE, CaseDataDto.REPORTING_USER)) + - LayoutUtil.fluidRowLocs(CaseDataDto.EPID_NUMBER, CaseDataDto.DISEASE) + - LayoutUtil.fluidRowLocs("", CaseDataDto.DISEASE_DETAILS) + - LayoutUtil.fluidRowLocs(CaseDataDto.REGION, CaseDataDto.DISTRICT) + - LayoutUtil.fluidRowLocs(CaseDataDto.COMMUNITY, CaseDataDto.HEALTH_FACILITY) + - LayoutUtil.fluidRowLocs("", CaseDataDto.HEALTH_FACILITY_DETAILS) + - LayoutUtil.fluidRowLocs(CaseDataDto.SURVEILLANCE_OFFICER, "")) + LayoutUtil.fluidRowLocs(CaseDataDto.EPID_NUMBER, CaseDataDto.DISEASE) + + LayoutUtil.fluidRowLocs("", CaseDataDto.DISEASE_DETAILS) + + LayoutUtil.fluidRowLocs(CaseDataDto.REGION, CaseDataDto.DISTRICT) + + LayoutUtil.fluidRowLocs(CaseDataDto.COMMUNITY, CaseDataDto.HEALTH_FACILITY) + + LayoutUtil.fluidRowLocs("", CaseDataDto.HEALTH_FACILITY_DETAILS) + + LayoutUtil.fluidRowLocs(CaseDataDto.SURVEILLANCE_OFFICER, "") )+ LayoutUtil.loc(MEDICAL_INFORMATION_LOC) + LayoutUtil.fluidRow( @@ -146,7 +145,7 @@ protected void addFields() { for (String medicalInformationField : medicalInformationFields) { if (getFieldGroup().getField(medicalInformationField).isVisible()) { - String medicalInformationCaptionLayout = LayoutUtil.h3(CssStyles.VSPACE3, "Additional medical information"); + String medicalInformationCaptionLayout = LayoutUtil.h3(CssStyles.VSPACE_3, "Additional medical information"); Label medicalInformationCaptionLabel = new Label(medicalInformationCaptionLayout); medicalInformationCaptionLabel.setContentMode(ContentMode.HTML); getContent().addComponent(medicalInformationCaptionLabel, MEDICAL_INFORMATION_LOC); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataView.java index dc682962a82..5f97cad984a 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CaseDataView.java @@ -6,7 +6,7 @@ import de.symeda.sormas.ui.ControllerProvider; import de.symeda.sormas.ui.samples.SampleListComponent; import de.symeda.sormas.ui.task.TaskListComponent; -import de.symeda.sormas.ui.utils.CssStyles; +import de.symeda.sormas.ui.utils.CommitDiscardWrapperComponent; /** * CaseDataView for reading and editing the case data fields. @@ -28,16 +28,17 @@ public CaseDataView() { public void enter(ViewChangeEvent event) { super.enter(event); setHeightUndefined(); - setSubComponent(ControllerProvider.getCaseController().getCaseDataEditComponent(getCaseRef().getUuid())); + CommitDiscardWrapperComponent caseDataEditComponent = ControllerProvider.getCaseController().getCaseDataEditComponent(getCaseRef().getUuid()); + setSubComponent(caseDataEditComponent); TaskListComponent taskListComponent = new TaskListComponent(TaskContext.CASE, getCaseRef()); - taskListComponent.addStyleName(CssStyles.SUBLIST_MARGIN); + taskListComponent.setMargin(true); addComponent(taskListComponent); - taskListComponent.enter(event); + taskListComponent.reload(); SampleListComponent sampleListComponent = new SampleListComponent(getCaseRef()); - sampleListComponent.addStyleName(CssStyles.SUBLIST_MARGIN_SMALL); + sampleListComponent.setMargin(true); addComponent(sampleListComponent); - sampleListComponent.enter(event); + sampleListComponent.reload(); } } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CasePersonView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CasePersonView.java index 1016c51f38d..a8508e6028f 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CasePersonView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CasePersonView.java @@ -6,6 +6,7 @@ import de.symeda.sormas.api.caze.CaseDataDto; import de.symeda.sormas.ui.ControllerProvider; import de.symeda.sormas.ui.person.PersonEditForm; +import de.symeda.sormas.ui.utils.CommitDiscardWrapperComponent; /** * View for reading and editing the patient information fields. @@ -26,6 +27,7 @@ public CasePersonView() { public void enter(ViewChangeEvent event) { super.enter(event); CaseDataDto caseData = FacadeProvider.getCaseFacade().getCaseDataByUuid(getCaseRef().getUuid()); - setSubComponent(ControllerProvider.getPersonController().getPersonEditComponent(caseData.getPerson().getUuid(), caseData.getDisease())); + CommitDiscardWrapperComponent personEditComponent = ControllerProvider.getPersonController().getPersonEditComponent(caseData.getPerson().getUuid(), caseData.getDisease()); + setSubComponent(personEditComponent); } } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CasesView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CasesView.java index ba9169b8d7e..91dc1dbdf3b 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CasesView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/caze/CasesView.java @@ -2,7 +2,6 @@ import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.server.FontAwesome; -import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; import com.vaadin.ui.ComboBox; import com.vaadin.ui.HorizontalLayout; @@ -46,8 +45,13 @@ public class CasesView extends AbstractView { private VerticalLayout gridLayout; public CasesView() { - setSizeFull(); - addStyleName("crud-view"); + super(VIEW_NAME); + + createButton = new Button("New case"); + createButton.addStyleName(ValoTheme.BUTTON_PRIMARY); + createButton.setIcon(FontAwesome.PLUS_CIRCLE); + createButton.addClickListener(e -> ControllerProvider.getCaseController().create()); + addHeaderComponent(createButton); grid = new CaseGrid(); @@ -68,13 +72,8 @@ public CasesView() { public HorizontalLayout createTopBar() { HorizontalLayout topLayout = new HorizontalLayout(); topLayout.setSpacing(true); - topLayout.setWidth(100, Unit.PERCENTAGE); - topLayout.addStyleName(CssStyles.VSPACE3); - - Label header = new Label("Cases"); - header.setSizeUndefined(); - CssStyles.style(header, CssStyles.H2, CssStyles.NO_MARGIN); - topLayout.addComponent(header); + topLayout.setSizeUndefined(); + topLayout.addStyleName(CssStyles.VSPACE_3); Button statusAll = new Button("all", e -> grid.setInvestigationFilter(null)); statusAll.setStyleName(ValoTheme.BUTTON_LINK); @@ -85,15 +84,7 @@ public HorizontalLayout createTopBar() { statusButton.setStyleName(ValoTheme.BUTTON_LINK); topLayout.addComponent(statusButton); } - - createButton = new Button("New case"); - createButton.addStyleName(ValoTheme.BUTTON_PRIMARY); - createButton.setIcon(FontAwesome.PLUS_CIRCLE); - createButton.addClickListener(e -> ControllerProvider.getCaseController().create()); - topLayout.addComponent(createButton); - topLayout.setComponentAlignment(createButton, Alignment.MIDDLE_RIGHT); - topLayout.setExpandRatio(createButton, 1); - + return topLayout; } @@ -101,7 +92,7 @@ public HorizontalLayout createFilterBar() { HorizontalLayout filterLayout = new HorizontalLayout(); filterLayout.setSpacing(true); filterLayout.setSizeUndefined(); - filterLayout.addStyleName(CssStyles.VSPACE3); + filterLayout.addStyleName(CssStyles.VSPACE_3); ComboBox diseaseFilter = new ComboBox(); diseaseFilter.setWidth(200, Unit.PIXELS); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactCreateForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactCreateForm.java index b319eda07c3..3e669ddb9df 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactCreateForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactCreateForm.java @@ -26,7 +26,7 @@ public class ContactCreateForm extends AbstractEditForm { private static final String LAST_NAME = "lastName"; private static final String HTML_LAYOUT = - LayoutUtil.divCss(CssStyles.VSPACE2, + LayoutUtil.divCss(CssStyles.VSPACE_2, LayoutUtil.fluidRowLocs(ContactDto.CAZE, ContactDto.LAST_CONTACT_DATE), LayoutUtil.fluidRowLocs(FIRST_NAME, LAST_NAME), LayoutUtil.fluidRowLocs(ContactDto.CONTACT_PROXIMITY), diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactDataForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactDataForm.java index 65037298288..306be78bb46 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactDataForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactDataForm.java @@ -44,12 +44,12 @@ public class ContactDataForm extends AbstractEditForm { private static final String LOST_FOLLOW_UP_BTN_LOC = "lostFollowUpBtnLoc"; private static final String HTML_LAYOUT = - LayoutUtil.h3(CssStyles.VSPACE3, "Contact data")+ + LayoutUtil.h3(CssStyles.VSPACE_3, "Contact data")+ - LayoutUtil.divCss(CssStyles.VSPACE2, - LayoutUtil.fluidRowCss(CssStyles.VSPACE4, + LayoutUtil.divCss(CssStyles.VSPACE_2, + LayoutUtil.fluidRowCss(CssStyles.VSPACE_4, LayoutUtil.fluidRowLocs(ContactDto.CONTACT_CLASSIFICATION) + - LayoutUtil.locCss(CssStyles.VSPACE3, TO_CASE_BTN_LOC) + + LayoutUtil.locCss(CssStyles.VSPACE_3, TO_CASE_BTN_LOC) + LayoutUtil.fluidRowLocs(ContactDto.LAST_CONTACT_DATE, ContactDto.UUID) + LayoutUtil.fluidRowLocs(ContactDto.REPORTING_USER, ContactDto.REPORT_DATE_TIME) + LayoutUtil.fluidRowLocs(ContactDto.CONTACT_PROXIMITY) + @@ -136,7 +136,7 @@ private void updateFollowUpStatusComponents() { FollowUpStatus followUpStatus = statusField.getValue(); if (followUpStatus == FollowUpStatus.FOLLOW_UP) { - Button cancelButton = new Button(I18nProperties.getButtonCaption("Contact.cancelFollowUp")); + Button cancelButton = new Button(I18nProperties.getFragment("Contact.cancelFollowUp")); cancelButton.addStyleName(CssStyles.FORCE_CAPTION); cancelButton.setWidth(100, Unit.PERCENTAGE); cancelButton.addClickListener(new ClickListener() { @@ -151,7 +151,7 @@ public void buttonClick(ClickEvent event) { }); getContent().addComponent(cancelButton, CANCEL_OR_RESUME_FOLLOW_UP_BTN_LOC); - Button lostButton = new Button(I18nProperties.getButtonCaption("Contact.lostToFollowUp")); + Button lostButton = new Button(I18nProperties.getFragment("Contact.lostToFollowUp")); lostButton.addStyleName(CssStyles.FORCE_CAPTION); lostButton.setWidth(100, Unit.PERCENTAGE); lostButton.addClickListener(new ClickListener() { @@ -169,7 +169,7 @@ public void buttonClick(ClickEvent event) { } else if (followUpStatus == FollowUpStatus.CANCELED || followUpStatus == FollowUpStatus.LOST) { - Button resumeButton = new Button(I18nProperties.getButtonCaption("Contact.resumeFollowUp")); + Button resumeButton = new Button(I18nProperties.getFragment("Contact.resumeFollowUp")); resumeButton.addStyleName(CssStyles.FORCE_CAPTION); resumeButton.setWidth(100, Unit.PERCENTAGE); resumeButton.addClickListener(new ClickListener() { diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactDataView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactDataView.java index 65a4a6329d4..b0e39d7f39f 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactDataView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactDataView.java @@ -12,7 +12,6 @@ import de.symeda.sormas.ui.caze.CaseDataForm; import de.symeda.sormas.ui.caze.CaseInfoLayout; import de.symeda.sormas.ui.task.TaskListComponent; -import de.symeda.sormas.ui.utils.CssStyles; /** * CaseDataView for reading and editing the case data fields. @@ -43,13 +42,11 @@ public void enter(ViewChangeEvent event) { layout.addComponent(ControllerProvider.getContactController().getContactDataEditComponent(getContactRef().getUuid())); CaseInfoLayout caseInfoLayout = new CaseInfoLayout(caseDto); caseInfoLayout.setMargin(new MarginInfo(true, false, false, true)); - caseInfoLayout.addStyleName(CssStyles.INFO_COLUMN_MARGIN); layout.addComponent(caseInfoLayout); addComponent(layout); TaskListComponent taskListComponent = new TaskListComponent(TaskContext.CONTACT, getContactRef()); - taskListComponent.addStyleName(CssStyles.SUBLIST_MARGIN); addComponent(taskListComponent); - taskListComponent.enter(event); + taskListComponent.reload(); } } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactVisitsView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactVisitsView.java index c9c73fbb847..a9b0a5a1bda 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactVisitsView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactVisitsView.java @@ -53,7 +53,7 @@ public HorizontalLayout createTopBar() { Label header = new Label("Follow-up visits"); header.setSizeUndefined(); - CssStyles.style(header, CssStyles.H2, CssStyles.NO_MARGIN); + CssStyles.style(header, CssStyles.H2, CssStyles.VSPACE_NONE); topLayout.addComponent(header); Button contactButton = new Button("contact related", e -> { @@ -80,7 +80,7 @@ public HorizontalLayout createTopBar() { topLayout.setComponentAlignment(newButton, Alignment.MIDDLE_RIGHT); topLayout.setExpandRatio(newButton, 1); - topLayout.addStyleName(CssStyles.VSPACE3); + topLayout.addStyleName(CssStyles.VSPACE_3); return topLayout; } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactsView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactsView.java index d6b518bf397..12c913741d9 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactsView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/contact/ContactsView.java @@ -4,7 +4,6 @@ import com.vaadin.ui.Button; import com.vaadin.ui.ComboBox; import com.vaadin.ui.HorizontalLayout; -import com.vaadin.ui.Label; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.themes.ValoTheme; @@ -39,9 +38,8 @@ public class ContactsView extends AbstractView { private VerticalLayout gridLayout; public ContactsView() { - setSizeFull(); - addStyleName("crud-view"); - + super(VIEW_NAME); + grid = new ContactGrid(); gridLayout = new VerticalLayout(); @@ -61,28 +59,18 @@ public ContactsView() { public HorizontalLayout createTopBar() { HorizontalLayout topLayout = new HorizontalLayout(); topLayout.setSpacing(true); - topLayout.setWidth(100, Unit.PERCENTAGE); - topLayout.addStyleName(CssStyles.VSPACE3); - - Label header = new Label("Contacts"); - header.setSizeUndefined(); - CssStyles.style(header, CssStyles.H2, CssStyles.NO_MARGIN); - topLayout.addComponent(header); + topLayout.setSizeUndefined(); + topLayout.addStyleName(CssStyles.VSPACE_3); - HorizontalLayout buttonFilterLayout = new HorizontalLayout(); - { - Button statusAll = new Button("all", e -> grid.setClassificationFilter(null)); - statusAll.setStyleName(ValoTheme.BUTTON_LINK); - buttonFilterLayout.addComponent(statusAll); - - for (ContactClassification status : ContactClassification.values()) { - Button statusButton = new Button(status.toString(), e -> grid.setClassificationFilter(status)); - statusButton.setStyleName(ValoTheme.BUTTON_LINK); - buttonFilterLayout.addComponent(statusButton); - } - } - topLayout.addComponent(buttonFilterLayout); - topLayout.setExpandRatio(buttonFilterLayout, 1); + Button statusAll = new Button("all", e -> grid.setClassificationFilter(null)); + statusAll.setStyleName(ValoTheme.BUTTON_LINK); + topLayout.addComponent(statusAll); + + for (ContactClassification status : ContactClassification.values()) { + Button statusButton = new Button(status.toString(), e -> grid.setClassificationFilter(status)); + statusButton.setStyleName(ValoTheme.BUTTON_LINK); + topLayout.addComponent(statusButton); + } return topLayout; } @@ -91,7 +79,7 @@ public HorizontalLayout createFilterBar() { HorizontalLayout filterLayout = new HorizontalLayout(); filterLayout.setSpacing(true); filterLayout.setSizeUndefined(); - filterLayout.addStyleName(CssStyles.VSPACE3); + filterLayout.addStyleName(CssStyles.VSPACE_3); ComboBox diseaseFilter = new ComboBox(); diseaseFilter.setWidth(200, Unit.PIXELS); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/DashboardView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/DashboardView.java index b24800bbace..8fd4034ffae 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/DashboardView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/DashboardView.java @@ -110,9 +110,8 @@ public class DashboardView extends AbstractView { private RegionMapVisualization regionMapVisualization = RegionMapVisualization.CASE_COUNT; public DashboardView() { - setSizeFull(); - addStyleName("crud-view"); - + super(VIEW_NAME); + if (LoginHelper.isUserInRole(UserRole.NATIONAL_USER)) { showRegions = true; } else { @@ -141,11 +140,11 @@ private HorizontalLayout createTopBar() { HorizontalLayout topLayout = new HorizontalLayout(); topLayout.setSpacing(true); topLayout.setWidth(100, Unit.PERCENTAGE); - topLayout.addStyleName(CssStyles.VSPACE_NO_FILTERS); + topLayout.addStyleName(CssStyles.VSPACE_3); Label header = new Label("Dashboard"); header.setSizeUndefined(); - CssStyles.style(header, CssStyles.H2, CssStyles.NO_MARGIN); + CssStyles.style(header, CssStyles.H2, CssStyles.VSPACE_NONE); topLayout.addComponent(header); return topLayout; @@ -155,7 +154,7 @@ private HorizontalLayout createFilterBar() { HorizontalLayout filterLayout = new HorizontalLayout(); filterLayout.setSpacing(true); filterLayout.setSizeUndefined(); - filterLayout.addStyleName(CssStyles.VSPACE3); + filterLayout.addStyleName(CssStyles.VSPACE_3); Calendar c = Calendar.getInstance(); c.setTime(new Date()); @@ -322,7 +321,7 @@ private VerticalLayout createMapLayout(ClickListener expandListener, ClickListen // Add check boxes and apply button to popupLayout { CheckBox dateFilterForMap = new CheckBox(); - dateFilterForMap.addStyleName(CssStyles.NO_MARGIN); + dateFilterForMap.addStyleName(CssStyles.VSPACE_NONE); dateFilterForMap.setCaption(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, DATE_FILTER_FOR_MAP)); dateFilterForMap.addValueChangeListener(e -> { useDateFilterForMap = dateFilterForMap.getValue(); @@ -330,7 +329,7 @@ private VerticalLayout createMapLayout(ClickListener expandListener, ClickListen popupLayout.addComponent(dateFilterForMap); CheckBox showCasesCheckBox = new CheckBox(); - showCasesCheckBox.addStyleName(CssStyles.NO_MARGIN); + showCasesCheckBox.addStyleName(CssStyles.VSPACE_NONE); showCasesCheckBox.setCaption(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, SHOW_CASES)); showCasesCheckBox.setValue(showCases); showCasesCheckBox.addValueChangeListener(e -> { @@ -342,7 +341,7 @@ private VerticalLayout createMapLayout(ClickListener expandListener, ClickListen CheckBox showUnconfirmedContactsCheckBox = new CheckBox(); CheckBox showContactsCheckBox = new CheckBox(); - showContactsCheckBox.addStyleName(CssStyles.NO_MARGIN); + showContactsCheckBox.addStyleName(CssStyles.VSPACE_NONE); showContactsCheckBox.setCaption(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, SHOW_CONTACTS)); showContactsCheckBox.setValue(showContacts); showContactsCheckBox.addValueChangeListener(e -> { @@ -354,7 +353,7 @@ private VerticalLayout createMapLayout(ClickListener expandListener, ClickListen }); popupLayout.addComponent(showContactsCheckBox); - showConfirmedContactsCheckBox.addStyleName(CssStyles.NO_MARGIN); + showConfirmedContactsCheckBox.addStyleName(CssStyles.VSPACE_NONE); showConfirmedContactsCheckBox.setCaption(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, SHOW_CONFIRMED_CONTACTS)); showConfirmedContactsCheckBox.setValue(showConfirmedContacts); showConfirmedContactsCheckBox.addValueChangeListener(e -> { @@ -362,7 +361,7 @@ private VerticalLayout createMapLayout(ClickListener expandListener, ClickListen }); popupLayout.addComponent(showConfirmedContactsCheckBox); - showUnconfirmedContactsCheckBox.addStyleName(CssStyles.NO_MARGIN); + showUnconfirmedContactsCheckBox.addStyleName(CssStyles.VSPACE_NONE); showUnconfirmedContactsCheckBox.setCaption(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, SHOW_UNCONFIRMED_CONTACTS)); showUnconfirmedContactsCheckBox.setValue(showUnconfirmedContacts); showUnconfirmedContactsCheckBox.addValueChangeListener(e -> { @@ -372,7 +371,7 @@ private VerticalLayout createMapLayout(ClickListener expandListener, ClickListen if (LoginHelper.isUserInRole(UserRole.NATIONAL_USER)) { CheckBox showRegionsCheckBox = new CheckBox(); - showRegionsCheckBox.addStyleName(CssStyles.NO_MARGIN); + showRegionsCheckBox.addStyleName(CssStyles.VSPACE_NONE); showRegionsCheckBox.setCaption("Show regions"); showRegionsCheckBox.setValue(showRegions); showRegionsCheckBox.addValueChangeListener(e -> { @@ -382,7 +381,7 @@ private VerticalLayout createMapLayout(ClickListener expandListener, ClickListen } Button applyButton = new Button(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, APPLY)); - applyButton.addStyleName(CssStyles.VSPACETOP4); + applyButton.addStyleName(CssStyles.VSPACE_TOP_4); applyButton.addClickListener(new ClickListener() { @Override public void buttonClick(ClickEvent event) { @@ -398,10 +397,10 @@ public void buttonClick(ClickEvent event) { Button expandMap = new Button(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, EXPAND), FontAwesome.EXPAND); expandMap.setStyleName(ValoTheme.BUTTON_LINK); - expandMap.addStyleName(CssStyles.NO_MARGIN); + expandMap.addStyleName(CssStyles.VSPACE_NONE); Button collapseMap = new Button(I18nProperties.getPrefixFieldCaption(I18N_PREFIX, COLLAPSE), FontAwesome.COMPRESS); collapseMap.setStyleName(ValoTheme.BUTTON_LINK); - collapseMap.addStyleName(CssStyles.NO_MARGIN); + collapseMap.addStyleName(CssStyles.VSPACE_NONE); expandMap.addClickListener(new ClickListener() { @Override @@ -440,7 +439,7 @@ public void buttonClick(ClickEvent event) { { mapCaseFooterLayout.setWidth(100, Unit.PERCENTAGE); mapCaseFooterLayout.setSpacing(true); - mapCaseFooterLayout.addStyleName(CssStyles.VSPACETOP3); + mapCaseFooterLayout.addStyleName(CssStyles.VSPACE_TOP_3); HorizontalLayout legendLayout = new HorizontalLayout(); legendLayout.setWidth(100, Unit.PERCENTAGE); @@ -628,7 +627,7 @@ private HorizontalLayout createLegendEntry(String iconThemeResource, String labe entry.addComponent(spacer); Label label = new Label(labelCaption); label.setSizeUndefined(); - label.addStyleName(CssStyles.LABEL_SMALL); + label.addStyleName(ValoTheme.LABEL_SMALL); entry.addComponent(label); return entry; } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/SituationReportTable.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/SituationReportTable.java index de71b19d542..a669845ab29 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/SituationReportTable.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/dashboard/SituationReportTable.java @@ -24,7 +24,6 @@ import de.symeda.sormas.api.person.PersonDto; import de.symeda.sormas.api.utils.DateHelper; import de.symeda.sormas.ui.login.LoginHelper; -import de.symeda.sormas.ui.utils.CssStyles; @SuppressWarnings("serial") public class SituationReportTable extends Table { @@ -201,23 +200,23 @@ private void addRowToTable(Label heading, Label subHeading, Integer queryPeriod, Label arrow; if (previousPeriod > queryPeriod) { arrow = new Label(FontAwesome.ARROW_DOWN.getHtml(), ContentMode.HTML); - arrow.addStyleName(CssStyles.COLOR_GREEN); + //arrow.addStyleName(CssStyles.COLOR_GREEN); } else if (previousPeriod < queryPeriod) { arrow = new Label(FontAwesome.ARROW_UP.getHtml(), ContentMode.HTML); - arrow.addStyleName(CssStyles.COLOR_RED); + //arrow.addStyleName(CssStyles.COLOR_RED); } else { arrow = new Label(FontAwesome.ARROW_RIGHT.getHtml(), ContentMode.HTML); - arrow.addStyleName(CssStyles.COLOR_GREY); + //arrow.addStyleName(CssStyles.COLOR_GREY); } previousPeriodLayout.addComponent(number); previousPeriodLayout.addComponent(arrow); } - // Display the contents of the row in a small font size when the respective attribute is set - if (smallRow) { - previousPeriodLayout.addStyleName(CssStyles.FONT_SIZE_SMALL); - queryPeriodLabel.addStyleName(CssStyles.FONT_SIZE_SMALL); - } +// // Display the contents of the row in a small font size when the respective attribute is set +// if (smallRow) { +// previousPeriodLayout.addStyleName(CssStyles.FONT_SIZE_SMALL); +// queryPeriodLabel.addStyleName(CssStyles.FONT_SIZE_SMALL); +// } addItem(new Object[]{heading, subHeading, queryPeriodLayout, previousPeriodLayout}, position); } @@ -228,7 +227,7 @@ private void addRowToTable(Label heading, Label subHeading, Integer queryPeriod, */ private Label createHcwLabel() { Label hcwLabel = new Label("" + I18nProperties.getPrefixFieldCaption(DashboardView.I18N_PREFIX, DashboardView.HCWS) + "", ContentMode.HTML); - hcwLabel.addStyleName(CssStyles.FONT_SIZE_SMALL); + hcwLabel.addStyleName(ValoTheme.LABEL_SMALL); return hcwLabel; } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataForm.java index a2184153fec..ccd74d940cc 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/epidata/EpiDataForm.java @@ -28,7 +28,7 @@ public class EpiDataForm extends AbstractEditForm { private static final String ENVIRONMENTAL_LOC = "environmentalLoc"; private static final String HTML_LAYOUT = - LayoutUtil.h3(CssStyles.VSPACE3, "Epidemiological data") + + LayoutUtil.h3(CssStyles.VSPACE_3, "Epidemiological data") + LayoutUtil.fluidRowLocs(EpiDataDto.BURIAL_ATTENDED) + LayoutUtil.fluidRowLocs(EpiDataDto.BURIALS) + LayoutUtil.fluidRowLocs(EpiDataDto.GATHERING_ATTENDED) + @@ -38,7 +38,7 @@ public class EpiDataForm extends AbstractEditForm { LayoutUtil.loc(ANIMAL_CAPTION_LOC) + LayoutUtil.fluidRow( LayoutUtil.fluidColumn(6, 0, - LayoutUtil.locsCss(CssStyles.VSPACE3, + LayoutUtil.locsCss(CssStyles.VSPACE_3, EpiDataDto.RODENTS, EpiDataDto.BATS, EpiDataDto.PRIMATES, EpiDataDto.SWINE, EpiDataDto.BIRDS, EpiDataDto.POULTRY_EAT, EpiDataDto.POULTRY, EpiDataDto.POULTRY_DETAILS, @@ -47,7 +47,7 @@ public class EpiDataForm extends AbstractEditForm { ) ), LayoutUtil.fluidColumn(6, 0, - LayoutUtil.locsCss(CssStyles.VSPACE3, + LayoutUtil.locsCss(CssStyles.VSPACE_3, EpiDataDto.CATTLE, EpiDataDto.OTHER_ANIMALS, EpiDataDto.OTHER_ANIMALS_DETAILS, EpiDataDto.WILDBIRDS, EpiDataDto.WILDBIRDS_DETAILS, EpiDataDto.WILDBIRDS_DATE, EpiDataDto.WILDBIRDS_LOCATION @@ -110,7 +110,7 @@ protected void addFields() { getFieldGroup().getField(propertyId).setVisible(visible); } - styleAsRow(Arrays.asList(EpiDataDto.RODENTS, EpiDataDto.BATS, EpiDataDto.PRIMATES, EpiDataDto.SWINE, EpiDataDto.CATTLE, + styleAsOptionGroupHorizontal(Arrays.asList(EpiDataDto.RODENTS, EpiDataDto.BATS, EpiDataDto.PRIMATES, EpiDataDto.SWINE, EpiDataDto.CATTLE, EpiDataDto.OTHER_ANIMALS, EpiDataDto.BIRDS, EpiDataDto.POULTRY_EAT, EpiDataDto.WILDBIRDS)); FieldHelper.setVisibleWhen(getFieldGroup(), Arrays.asList(EpiDataDto.POULTRY_DETAILS), EpiDataDto.POULTRY, Arrays.asList(YesNoUnknown.YES), true); @@ -130,7 +130,7 @@ protected void addFields() { for (String animalContact : animalContacts) { if (getFieldGroup().getField(animalContact).isVisible()) { - String animalCaptionLayout = LayoutUtil.h3(CssStyles.VSPACE3, "Animal contacts") + LayoutUtil.divCss(CssStyles.VSPACE3, I18nProperties.getFieldCaption("EpiData.hint")); + String animalCaptionLayout = LayoutUtil.h3(CssStyles.VSPACE_3, "Animal contacts") + LayoutUtil.divCss(CssStyles.VSPACE_3, I18nProperties.getFieldCaption("EpiData.hint")); Label animalCaptionLabel = new Label(animalCaptionLayout); animalCaptionLabel.setContentMode(ContentMode.HTML); getContent().addComponent(animalCaptionLabel, ANIMAL_CAPTION_LOC); @@ -142,7 +142,7 @@ protected void addFields() { for (String environmentalExp : environmentalExposures) { if (getFieldGroup().getField(environmentalExp).isVisible()) { - String environmentalCaptionLayout = LayoutUtil.h3(CssStyles.VSPACE3, "Environmental exposure"); + String environmentalCaptionLayout = LayoutUtil.h3(CssStyles.VSPACE_3, "Environmental exposure"); Label environmentalCaptionLabel = new Label(environmentalCaptionLayout); environmentalCaptionLabel.setContentMode(ContentMode.HTML); getContent().addComponent(environmentalCaptionLabel, ENVIRONMENTAL_LOC); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataForm.java index d5cb79ff1e7..880772d1f17 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataForm.java @@ -34,32 +34,32 @@ public class EventDataForm extends AbstractEditForm { private static final String STATUS_CHANGE = "statusChange"; private static final String HTML_LAYOUT = - LayoutUtil.h3(CssStyles.VSPACE3, "Alert data") + - LayoutUtil.divCss(CssStyles.VSPACE2, - LayoutUtil.fluidRowCss(CssStyles.VSPACE4, + LayoutUtil.h3(CssStyles.VSPACE_3, "Alert data") + + LayoutUtil.divCss(CssStyles.VSPACE_2, + LayoutUtil.fluidRowCss(CssStyles.VSPACE_4, LayoutUtil.fluidColumn(12, 0, LayoutUtil.fluidRowLocs(EventDto.UUID, EventDto.EVENT_TYPE) ) ) + - LayoutUtil.fluidRowCss(CssStyles.VSPACE4, + LayoutUtil.fluidRowCss(CssStyles.VSPACE_4, LayoutUtil.fluidColumn(12, 0, LayoutUtil.fluidRowLocs(EventDto.DISEASE, EventDto.DISEASE_DETAILS) ) ) + - LayoutUtil.fluidRowCss(CssStyles.VSPACE4, + LayoutUtil.fluidRowCss(CssStyles.VSPACE_4, LayoutUtil.fluidColumnCss(null, 4, 0, LayoutUtil.fluidRowLocs(EventDto.EVENT_DATE)), LayoutUtil.fluidColumnCss(null, 8, 0, LayoutUtil.fluidRowLocs(EventDto.EVENT_STATUS)) ) + - LayoutUtil.fluidRowCss(CssStyles.VSPACE4, + LayoutUtil.fluidRowCss(CssStyles.VSPACE_4, LayoutUtil.fluidColumn(12, 0, LayoutUtil.fluidRowLocs(EventDto.EVENT_DESC)) ) ) + - LayoutUtil.h3(CssStyles.VSPACE3, "Source of information") + - LayoutUtil.divCss(CssStyles.VSPACE2, - LayoutUtil.fluidRowCss(CssStyles.VSPACE4, + LayoutUtil.h3(CssStyles.VSPACE_3, "Source of information") + + LayoutUtil.divCss(CssStyles.VSPACE_2, + LayoutUtil.fluidRowCss(CssStyles.VSPACE_4, LayoutUtil.fluidColumn(12, 0, LayoutUtil.fluidRowLocs(EventDto.SRC_FIRST_NAME, EventDto.SRC_LAST_NAME) + LayoutUtil.fluidRowLocs(EventDto.SRC_TEL_NO, EventDto.SRC_EMAIL) @@ -67,9 +67,9 @@ public class EventDataForm extends AbstractEditForm { ) ) + - LayoutUtil.h3(CssStyles.VSPACE3, "Location") + - LayoutUtil.divCss(CssStyles.VSPACE2, - LayoutUtil.fluidRowCss(CssStyles.VSPACE4, + LayoutUtil.h3(CssStyles.VSPACE_3, "Location") + + LayoutUtil.divCss(CssStyles.VSPACE_2, + LayoutUtil.fluidRowCss(CssStyles.VSPACE_4, LayoutUtil.fluidColumn(8, 0, LayoutUtil.fluidRowLocs(EventDto.EVENT_LOCATION) ), @@ -79,7 +79,7 @@ public class EventDataForm extends AbstractEditForm { ) ) ) + - LayoutUtil.fluidRowCss(CssStyles.VSPACE4, + LayoutUtil.fluidRowCss(CssStyles.VSPACE_4, LayoutUtil.fluidColumn(12, 0, LayoutUtil.fluidRowLocs(EventDto.SURVEILLANCE_OFFICER, EventDto.REPORT_DATE_TIME, EventDto.REPORTING_USER) ) diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataView.java index bf6f8df1c1d..93216a327a5 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventDataView.java @@ -5,7 +5,6 @@ import de.symeda.sormas.api.task.TaskContext; import de.symeda.sormas.ui.ControllerProvider; import de.symeda.sormas.ui.task.TaskListComponent; -import de.symeda.sormas.ui.utils.CssStyles; public class EventDataView extends AbstractEventView { @@ -24,9 +23,8 @@ public void enter(ViewChangeEvent event) { setSubComponent(ControllerProvider.getEventController().getEventDataEditComponent(getEventRef().getUuid())); TaskListComponent taskListComponent = new TaskListComponent(TaskContext.EVENT, getEventRef()); - taskListComponent.addStyleName(CssStyles.SUBLIST_MARGIN); addComponent(taskListComponent); - taskListComponent.enter(event); + taskListComponent.reload(); } } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventParticipantsView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventParticipantsView.java index 3acf1bf3afd..359b589d2e1 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventParticipantsView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventParticipantsView.java @@ -52,7 +52,7 @@ public HorizontalLayout createTopBar() { Label header = new Label(I18nProperties.getPrefixFieldCaption(EventDto.I18N_PREFIX, EventDto.EVENT_PERSONS)); header.setSizeUndefined(); - CssStyles.style(header, CssStyles.H2, CssStyles.NO_MARGIN); + CssStyles.style(header, CssStyles.H2, CssStyles.VSPACE_NONE); topLayout.addComponent(header); addButton = new Button("Add person"); @@ -66,7 +66,7 @@ public HorizontalLayout createTopBar() { topLayout.setComponentAlignment(addButton, Alignment.MIDDLE_RIGHT); topLayout.setExpandRatio(addButton, 1); - topLayout.addStyleName(CssStyles.VSPACE3); + topLayout.addStyleName(CssStyles.VSPACE_3); return topLayout; } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventsView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventsView.java index fcb004fb738..b321163a18b 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventsView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/events/EventsView.java @@ -2,11 +2,9 @@ import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.server.FontAwesome; -import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; import com.vaadin.ui.ComboBox; import com.vaadin.ui.HorizontalLayout; -import com.vaadin.ui.Label; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.themes.ValoTheme; @@ -31,9 +29,8 @@ public class EventsView extends AbstractView { private VerticalLayout gridLayout; public EventsView() { - setSizeFull(); - addStyleName("crud-view"); - + super(VIEW_NAME); + grid = new EventGrid(); gridLayout = new VerticalLayout(); @@ -47,18 +44,19 @@ public EventsView() { gridLayout.setStyleName("crud-main-layout"); addComponent(gridLayout); + + createButton = new Button("New alert"); + createButton.addStyleName(ValoTheme.BUTTON_PRIMARY); + createButton.setIcon(FontAwesome.PLUS_CIRCLE); + createButton.addClickListener(e -> ControllerProvider.getEventController().create()); + addHeaderComponent(createButton); } public HorizontalLayout createTopBar() { HorizontalLayout topLayout = new HorizontalLayout(); topLayout.setSpacing(true); - topLayout.setWidth(100, Unit.PERCENTAGE); - topLayout.addStyleName(CssStyles.VSPACE3); - - Label header = new Label("Alerts"); - header.setSizeUndefined(); - CssStyles.style(header, CssStyles.H2, CssStyles.NO_MARGIN); - topLayout.addComponent(header); + topLayout.setSizeUndefined(); + topLayout.addStyleName(CssStyles.VSPACE_3); Button statusAll = new Button("all", e -> grid.setStatusFilter(null)); statusAll.setStyleName(ValoTheme.BUTTON_LINK); @@ -70,14 +68,6 @@ public HorizontalLayout createTopBar() { topLayout.addComponent(statusButton); } - createButton = new Button("New alert"); - createButton.addStyleName(ValoTheme.BUTTON_PRIMARY); - createButton.setIcon(FontAwesome.PLUS_CIRCLE); - createButton.addClickListener(e -> ControllerProvider.getEventController().create()); - topLayout.addComponent(createButton); - topLayout.setComponentAlignment(createButton, Alignment.MIDDLE_RIGHT); - topLayout.setExpandRatio(createButton, 1); - return topLayout; } @@ -85,7 +75,7 @@ public HorizontalLayout createFilterBar() { HorizontalLayout filterLayout = new HorizontalLayout(); filterLayout.setSpacing(true); filterLayout.setSizeUndefined(); - filterLayout.addStyleName(CssStyles.VSPACE3); + filterLayout.addStyleName(CssStyles.VSPACE_3); ComboBox typeFilter = new ComboBox(); typeFilter.setWidth(200, Unit.PIXELS); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/hospitalization/CaseHospitalizationForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/hospitalization/CaseHospitalizationForm.java index f289908448f..a38a446238c 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/hospitalization/CaseHospitalizationForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/hospitalization/CaseHospitalizationForm.java @@ -22,10 +22,10 @@ public class CaseHospitalizationForm extends AbstractEditForm { private static final String HTML_LAYOUT = - LayoutUtil.h3(CssStyles.VSPACE3, "Create new person")+ - LayoutUtil.divCss(CssStyles.VSPACE2, + LayoutUtil.h3(CssStyles.VSPACE_3, "Create new person")+ + LayoutUtil.divCss(CssStyles.VSPACE_2, LayoutUtil.fluidRowLocs(PersonReferenceDto.FIRST_NAME, PersonReferenceDto.LAST_NAME), LayoutUtil.fluidRowLocs(PersonReferenceDto.UUID, "") ); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonEditForm.java index 685f47c12d4..8add4e84059 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonEditForm.java @@ -49,20 +49,20 @@ public class PersonEditForm extends AbstractEditForm { private Disease disease; private static final String HTML_LAYOUT = - LayoutUtil.h3(CssStyles.VSPACE3, "Person information")+ + LayoutUtil.h3(CssStyles.VSPACE_3, "Person information")+ LayoutUtil.div( LayoutUtil.fluidRowCss( - CssStyles.VSPACE4, + CssStyles.VSPACE_4, LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.FIRST_NAME)), LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.LAST_NAME)) ), LayoutUtil.fluidRowCss( - CssStyles.VSPACE4, + CssStyles.VSPACE_4, LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.NICKNAME)), LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.MOTHERS_MAIDEN_NAME)) ), LayoutUtil.fluidRowCss( - CssStyles.VSPACE4, + CssStyles.VSPACE_4, LayoutUtil.oneOfTwoCol( LayoutUtil.fluidRowCss(null, LayoutUtil.oneOfThreeCol(LayoutUtil.loc(PersonDto.BIRTH_DATE_YYYY)), @@ -74,45 +74,45 @@ public class PersonEditForm extends AbstractEditForm { LayoutUtil.oneOfTwoCol(LayoutUtil.fluidRowLocs(PersonDto.APPROXIMATE_AGE, PersonDto.APPROXIMATE_AGE_TYPE)) ), LayoutUtil.fluidRowCss( - CssStyles.VSPACE4, + CssStyles.VSPACE_4, LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.SEX)), LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.PRESENT_CONDITION)) ), LayoutUtil.fluidRowCss( - CssStyles.VSPACE4, + CssStyles.VSPACE_4, LayoutUtil.oneOfFourCol(LayoutUtil.loc(PersonDto.DEATH_DATE)), LayoutUtil.oneOfFourCol(LayoutUtil.loc(PersonDto.DEATH_PLACE_TYPE)), LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.DEATH_PLACE_DESCRIPTION)) ), LayoutUtil.fluidRowCss( - CssStyles.VSPACE4, + CssStyles.VSPACE_4, LayoutUtil.oneOfFourCol(LayoutUtil.loc(PersonDto.BURIAL_DATE)), LayoutUtil.oneOfFourCol(LayoutUtil.loc(PersonDto.BURIAL_CONDUCTOR)), LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.BURIAL_PLACE_DESCRIPTION)) ), LayoutUtil.fluidRowCss( - CssStyles.VSPACE4, + CssStyles.VSPACE_4, LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.PHONE)), LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.PHONE_OWNER)) )) + - LayoutUtil.h3(CssStyles.VSPACE3, "Occupation")+ + LayoutUtil.h3(CssStyles.VSPACE_3, "Occupation")+ LayoutUtil.div( LayoutUtil.fluidRowCss( - CssStyles.VSPACE4, + CssStyles.VSPACE_4, LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.OCCUPATION_TYPE)), LayoutUtil.oneOfTwoCol(LayoutUtil.loc(PersonDto.OCCUPATION_DETAILS)) ), LayoutUtil.fluidRowCss( - CssStyles.VSPACE4, + CssStyles.VSPACE_4, LayoutUtil.oneOfFourCol(LayoutUtil.loc(FACILITY_REGION)), LayoutUtil.oneOfFourCol(LayoutUtil.loc(FACILITY_DISTRICT)), LayoutUtil.oneOfFourCol(LayoutUtil.loc(FACILITY_COMMUNITY)), LayoutUtil.oneOfFourCol(LayoutUtil.loc(PersonDto.OCCUPATION_FACILITY)) ) ) + - LayoutUtil.h3(CssStyles.VSPACE3, "Permanent residence of person")+ + LayoutUtil.h3(CssStyles.VSPACE_3, "Permanent residence of person")+ LayoutUtil.div( - LayoutUtil.fluidRowLocsCss(CssStyles.VSPACE4, PersonDto.ADDRESS) + LayoutUtil.fluidRowLocsCss(CssStyles.VSPACE_4, PersonDto.ADDRESS) ); public PersonEditForm(Disease disease) { diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonSelectField.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonSelectField.java index aa30e8154ae..e90461be3ef 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonSelectField.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/person/PersonSelectField.java @@ -67,7 +67,7 @@ protected Component initContent() { createNewPerson = new OptionGroup(null); createNewPerson.addItem(CREATE_PERSON); - createNewPerson.setItemCaption(CREATE_PERSON, I18nProperties.getButtonCaption("Person.createNew")); + createNewPerson.setItemCaption(CREATE_PERSON, I18nProperties.getFragment("Person.createNew")); // unselect grid when "create new" is selected createNewPerson.addValueChangeListener(e -> { if (e.getProperty().getValue() != null) { @@ -86,7 +86,7 @@ private void initPersonGrid() { if (personGrid == null) { personGrid = new PersonGrid(); personGrid.setHeightByRows(6); - personGrid.setCaption(I18nProperties.getButtonCaption("Person.select")); + personGrid.setCaption(I18nProperties.getFragment("Person.select")); personGrid.setSelectionMode(SelectionMode.SINGLE); personGrid.setFirstNameFilter(firstNameField.getValue()); personGrid.setLastNameFilter(lastNameField.getValue()); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/ReportsView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/ReportsView.java index d9dde3de7f6..68b53efb5f4 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/ReportsView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/reports/ReportsView.java @@ -29,9 +29,8 @@ public class ReportsView extends AbstractView { private AbstractSelect epiWeekFilter; public ReportsView() { - setSizeFull(); - addStyleName("crud-view"); - + super(VIEW_NAME); + grid = new WeeklyReportGrid(); grid.setHeightMode(HeightMode.UNDEFINED); @@ -50,11 +49,11 @@ public ReportsView() { public HorizontalLayout createTopBar() { HorizontalLayout topLayout = new HorizontalLayout(); - topLayout.addStyleName(CssStyles.VSPACE3); + topLayout.addStyleName(CssStyles.VSPACE_3); Label header = new Label("Reports"); header.setSizeUndefined(); - CssStyles.style(header, CssStyles.H2, CssStyles.NO_MARGIN); + CssStyles.style(header, CssStyles.H2, CssStyles.VSPACE_NONE); topLayout.addComponent(header); return topLayout; @@ -63,7 +62,7 @@ public HorizontalLayout createTopBar() { public HorizontalLayout createFilterBar() { HorizontalLayout filterLayout = new HorizontalLayout(); filterLayout.setSpacing(true); - filterLayout.addStyleName(CssStyles.VSPACE3); + filterLayout.addStyleName(CssStyles.VSPACE_3); EpiWeek prevEpiWeek = DateHelper.getPreviousEpiWeek(new Date()); int year = prevEpiWeek.getYear(); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleCreateForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleCreateForm.java index 53e86ff9409..ca92c99808e 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleCreateForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleCreateForm.java @@ -33,11 +33,11 @@ public class SampleCreateForm extends AbstractEditForm { LayoutUtil.fluidRowLocs(SampleDto.SAMPLE_SOURCE, ""), LayoutUtil.fluidRowLocs(SampleDto.SUGGESTED_TYPE_OF_TEST, SampleDto.LAB) ), - LayoutUtil.locCss(CssStyles.VSPACETOP3, SampleDto.SHIPPED), + LayoutUtil.locCss(CssStyles.VSPACE_TOP_3, SampleDto.SHIPPED), LayoutUtil.div( LayoutUtil.fluidRowLocs(SampleDto.SHIPMENT_DATE, SampleDto.SHIPMENT_DETAILS) ), - LayoutUtil.locCss(CssStyles.VSPACETOP3, SampleDto.RECEIVED), + LayoutUtil.locCss(CssStyles.VSPACE_TOP_3, SampleDto.RECEIVED), LayoutUtil.div( LayoutUtil.fluidRowLocs(SampleDto.RECEIVED_DATE, SampleDto.LAB_SAMPLE_ID), LayoutUtil.fluidRowLocs(SampleDto.SPECIMEN_CONDITION, SampleDto.NO_TEST_POSSIBLE_REASON), diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleDataView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleDataView.java index 669b97ae032..c51c2bfef03 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleDataView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleDataView.java @@ -9,7 +9,6 @@ import de.symeda.sormas.api.sample.SampleDto; import de.symeda.sormas.ui.ControllerProvider; import de.symeda.sormas.ui.caze.CaseInfoLayout; -import de.symeda.sormas.ui.utils.CssStyles; public class SampleDataView extends AbstractSampleView { @@ -34,13 +33,12 @@ public void enter(ViewChangeEvent event) { layout.addComponent(ControllerProvider.getSampleController().getSampleEditComponent(sampleDto.getUuid())); CaseInfoLayout caseInfoLayout = new CaseInfoLayout(caseDto); caseInfoLayout.setMargin(new MarginInfo(true, false, false, true)); - caseInfoLayout.addStyleName(CssStyles.INFO_COLUMN_MARGIN); layout.addComponent(caseInfoLayout); addComponent(layout); if (sampleDto.isReceived()) { SampleTestsComponent sampleTestsComponent = new SampleTestsComponent(getSampleRef()); - sampleTestsComponent.addStyleName(CssStyles.SUBLIST_MARGIN); + sampleTestsComponent.setMargin(true); addComponent(sampleTestsComponent); } } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleEditForm.java index 5eba2aeae39..264a2b131bd 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleEditForm.java @@ -37,18 +37,18 @@ public class SampleEditForm extends AbstractEditForm { private static final String HTML_LAYOUT = LayoutUtil.h3(null, "Laboratory sample") + LayoutUtil.div( - LayoutUtil.locCss(CssStyles.VSPACE2, REPORT_INFORMATION_LOC) + + LayoutUtil.locCss(CssStyles.VSPACE_2, REPORT_INFORMATION_LOC) + LayoutUtil.div( LayoutUtil.fluidRowLocs(SampleDto.SAMPLE_DATE_TIME, SampleDto.SAMPLE_CODE), LayoutUtil.fluidRowLocs(SampleDto.SAMPLE_MATERIAL, SampleDto.SAMPLE_MATERIAL_TEXT), LayoutUtil.fluidRowLocs(SampleDto.SAMPLE_SOURCE, ""), LayoutUtil.fluidRowLocs(SampleDto.SUGGESTED_TYPE_OF_TEST, SampleDto.LAB) ), - LayoutUtil.locCss(CssStyles.VSPACETOP3, SampleDto.SHIPPED), + LayoutUtil.locCss(CssStyles.VSPACE_TOP_3, SampleDto.SHIPPED), LayoutUtil.div( LayoutUtil.fluidRowLocs(SampleDto.SHIPMENT_DATE, SampleDto.SHIPMENT_DETAILS) ), - LayoutUtil.locCss(CssStyles.VSPACETOP3, SampleDto.RECEIVED), + LayoutUtil.locCss(CssStyles.VSPACE_TOP_3, SampleDto.RECEIVED), LayoutUtil.div( LayoutUtil.fluidRowLocs(SampleDto.RECEIVED_DATE, SampleDto.LAB_SAMPLE_ID), LayoutUtil.fluidRowLocs(SampleDto.SPECIMEN_CONDITION, SampleDto.NO_TEST_POSSIBLE_REASON), @@ -142,7 +142,7 @@ protected void addFields() { SampleDto referredFrom = FacadeProvider.getSampleFacade().getSampleByUuid(referredFromRef.getUuid()); Button referredButton = new Button("Referred from " + referredFrom.getLab().toString()); referredButton.addStyleName(ValoTheme.BUTTON_LINK); - referredButton.addStyleName(CssStyles.NO_MARGIN); + referredButton.addStyleName(CssStyles.VSPACE_NONE); referredButton.addClickListener(s -> ControllerProvider.getSampleController().navigateToData(referredFrom.getUuid())); reportInfoLayout.addComponent(referredButton); } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleListComponent.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleListComponent.java index 01e994d0914..b25b3796617 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleListComponent.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleListComponent.java @@ -1,6 +1,5 @@ package de.symeda.sormas.ui.samples; -import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.server.FontAwesome; import com.vaadin.shared.ui.MarginInfo; import com.vaadin.shared.ui.grid.HeightMode; @@ -8,7 +7,6 @@ import com.vaadin.ui.Button; import com.vaadin.ui.ComboBox; import com.vaadin.ui.HorizontalLayout; -import com.vaadin.ui.Label; import com.vaadin.ui.TextField; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.themes.ValoTheme; @@ -22,11 +20,10 @@ import de.symeda.sormas.api.user.UserDto; import de.symeda.sormas.ui.ControllerProvider; import de.symeda.sormas.ui.login.LoginHelper; -import de.symeda.sormas.ui.utils.AbstractView; import de.symeda.sormas.ui.utils.CssStyles; @SuppressWarnings("serial") -public class SampleListComponent extends AbstractView { +public class SampleListComponent extends VerticalLayout { public static final String LGA = "lga"; public static final String SEARCH_FIELD = "searchField"; @@ -37,7 +34,6 @@ public class SampleListComponent extends AbstractView { public SampleListComponent() { setSizeFull(); - addStyleName("crud-view"); grid = new SampleGrid(); @@ -54,7 +50,6 @@ public SampleListComponent() { public SampleListComponent(CaseReferenceDto caseRef) { setSizeFull(); - addStyleName("crud-view"); grid = new SampleGrid(caseRef); grid.setHeightMode(HeightMode.ROW); @@ -72,13 +67,8 @@ public SampleListComponent(CaseReferenceDto caseRef) { public HorizontalLayout createTopBar() { HorizontalLayout topLayout = new HorizontalLayout(); topLayout.setSpacing(true); - topLayout.setWidth(100, Unit.PERCENTAGE); - topLayout.addStyleName(CssStyles.VSPACE3); - - Label header = new Label("Laboratory samples"); - header.setSizeUndefined(); - CssStyles.style(header, CssStyles.H2, CssStyles.NO_MARGIN); - topLayout.addComponent(header); + topLayout.setSizeUndefined(); + topLayout.addStyleName(CssStyles.VSPACE_3); HorizontalLayout buttonFilterLayout = new HorizontalLayout(); { @@ -101,7 +91,6 @@ public HorizontalLayout createTopBar() { } topLayout.addComponent(buttonFilterLayout); - topLayout.setExpandRatio(buttonFilterLayout, 1); return topLayout; } @@ -110,12 +99,7 @@ public HorizontalLayout createTopBarForCase(CaseReferenceDto caseRef) { HorizontalLayout topLayout = new HorizontalLayout(); topLayout.setSpacing(true); topLayout.setWidth(100, Unit.PERCENTAGE); - topLayout.addStyleName(CssStyles.VSPACE3); - - Label header = new Label("Laboratory samples"); - header.setSizeUndefined(); - CssStyles.style(header, CssStyles.H3, CssStyles.NO_MARGIN, CssStyles.SUBLIST_PADDING); - topLayout.addComponent(header); + topLayout.addStyleName(CssStyles.VSPACE_3); HorizontalLayout buttonFilterLayout = new HorizontalLayout(); { @@ -153,7 +137,7 @@ public HorizontalLayout createFilterBar() { HorizontalLayout filterLayout = new HorizontalLayout(); filterLayout.setSpacing(true); filterLayout.setSizeUndefined(); - filterLayout.addStyleName(CssStyles.VSPACE3); + filterLayout.addStyleName(CssStyles.VSPACE_3); UserDto user = LoginHelper.getCurrentUser(); if(user.getRegion() != null) { @@ -181,8 +165,7 @@ public HorizontalLayout createFilterBar() { return filterLayout; } - @Override - public void enter(ViewChangeEvent event) { + public void reload() { grid.reload(); } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleTestsComponent.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleTestsComponent.java index 6f886e83679..433ae6d4214 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleTestsComponent.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SampleTestsComponent.java @@ -1,23 +1,20 @@ package de.symeda.sormas.ui.samples; -import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.server.FontAwesome; import com.vaadin.shared.ui.MarginInfo; import com.vaadin.shared.ui.grid.HeightMode; import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; import com.vaadin.ui.HorizontalLayout; -import com.vaadin.ui.Label; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.themes.ValoTheme; import de.symeda.sormas.api.sample.SampleReferenceDto; import de.symeda.sormas.ui.ControllerProvider; -import de.symeda.sormas.ui.utils.AbstractView; import de.symeda.sormas.ui.utils.CssStyles; @SuppressWarnings("serial") -public class SampleTestsComponent extends AbstractView { +public class SampleTestsComponent extends VerticalLayout { private SampleTestGrid grid; @@ -46,12 +43,7 @@ public HorizontalLayout createTopBar(SampleReferenceDto sampleRef) { HorizontalLayout topLayout = new HorizontalLayout(); topLayout.setSpacing(true); topLayout.setWidth(100, Unit.PERCENTAGE); - topLayout.addStyleName(CssStyles.VSPACE3); - - Label header = new Label("Laboratory results"); - header.setSizeUndefined(); - CssStyles.style(header, CssStyles.H3, CssStyles.NO_MARGIN, CssStyles.SUBLIST_PADDING); - topLayout.addComponent(header); + topLayout.addStyleName(CssStyles.VSPACE_3); Button createButton = new Button("New result"); createButton.addStyleName(ValoTheme.BUTTON_PRIMARY); @@ -64,9 +56,7 @@ public HorizontalLayout createTopBar(SampleReferenceDto sampleRef) { return topLayout; } - @Override - public void enter(ViewChangeEvent event) { + public void reload() { grid.reload(); } - -} +} \ No newline at end of file diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SamplesView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SamplesView.java index 472047384ae..ebe347fbcff 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SamplesView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/samples/SamplesView.java @@ -12,6 +12,8 @@ public class SamplesView extends AbstractView { private final SampleListComponent sampleListComponent; public SamplesView() { + super(VIEW_NAME); + sampleListComponent = new SampleListComponent(); setSizeFull(); addComponent(sampleListComponent); @@ -19,7 +21,7 @@ public SamplesView() { @Override public void enter(ViewChangeEvent event) { - sampleListComponent.enter(event); + sampleListComponent.reload(); } } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/symptoms/SymptomsForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/symptoms/SymptomsForm.java index fdc62e69f63..f9b8c25c692 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/symptoms/SymptomsForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/symptoms/SymptomsForm.java @@ -35,19 +35,19 @@ public class SymptomsForm extends AbstractEditForm { private static final String BUTTONS_LOC = "buttonsLoc"; - private static final String HTML_LAYOUT = LayoutUtil.h3(CssStyles.VSPACE3, "Clinical Signs and Symptoms") - + LayoutUtil.divCss(CssStyles.VSPACE3, + private static final String HTML_LAYOUT = LayoutUtil.h3(CssStyles.VSPACE_3, "Clinical Signs and Symptoms") + + LayoutUtil.divCss(CssStyles.VSPACE_3, LayoutUtil.fluidRowLocs(SymptomsDto.TEMPERATURE, SymptomsDto.TEMPERATURE_SOURCE)) - + LayoutUtil.divCss(CssStyles.VSPACE3, + + LayoutUtil.divCss(CssStyles.VSPACE_3, LayoutUtil.fluidRowLocs(SymptomsDto.ONSET_DATE, SymptomsDto.ONSET_SYMPTOM)) - + LayoutUtil.fluidRowCss(CssStyles.VSPACE3, + + LayoutUtil.fluidRowCss(CssStyles.VSPACE_3, LayoutUtil.fluidColumn(8, 0, LayoutUtil.div(I18nProperties.getFieldCaption("Symptoms.hint"))), LayoutUtil.fluidColumn(4, 0, LayoutUtil.locCss(CssStyles.ALIGN_RIGHT, BUTTONS_LOC))) + LayoutUtil.fluidRow( LayoutUtil.fluidColumn(6, 0, - LayoutUtil.locsCss(CssStyles.VSPACE3, + LayoutUtil.locsCss(CssStyles.VSPACE_3, SymptomsDto.ABDOMINAL_PAIN, SymptomsDto.HEARINGLOSS, SymptomsDto.ALTERED_CONSCIOUSNESS, SymptomsDto.ANOREXIA_APPETITE_LOSS, SymptomsDto.BACKACHE, SymptomsDto.STOMACH_BLEEDING, SymptomsDto.BLOOD_IN_STOOL, SymptomsDto.CHEST_PAIN, SymptomsDto.CONFUSED_DISORIENTED, SymptomsDto.CONJUNCTIVITIS, SymptomsDto.SEIZURES, SymptomsDto.COUGH, @@ -58,7 +58,7 @@ public class SymptomsForm extends AbstractEditForm { SymptomsDto.NAUSEA, SymptomsDto.NECK_STIFFNESS, SymptomsDto.RAPID_BREATHING, SymptomsDto.REFUSAL_FEEDOR_DRINK, SymptomsDto.RUNNY_NOSE)), LayoutUtil.fluidColumn(6, 0, - LayoutUtil.locsCss(CssStyles.VSPACE3, + LayoutUtil.locsCss(CssStyles.VSPACE_3, SymptomsDto.SHOCK, SymptomsDto.SKIN_RASH, SymptomsDto.SORE_THROAT, SymptomsDto.SWOLLEN_GLANDS, SymptomsDto.THROBOCYTOPENIA, SymptomsDto.UNEXPLAINED_BLEEDING, SymptomsDto.INJECTION_SITE_BLEEDING, SymptomsDto.BLEEDING_VAGINA, SymptomsDto.GUMS_BLEEDING, @@ -66,7 +66,7 @@ public class SymptomsForm extends AbstractEditForm { SymptomsDto.DIGESTED_BLOOD_VOMIT, SymptomsDto.RED_BLOOD_VOMIT, SymptomsDto.NOSE_BLEEDING, SymptomsDto.OTHER_HEMORRHAGIC_SYMPTOMS, SymptomsDto.OTHER_HEMORRHAGIC_SYMPTOMS_TEXT, SymptomsDto.VOMITING, SymptomsDto.OTHER_NON_HEMORRHAGIC_SYMPTOMS, SymptomsDto.OTHER_NON_HEMORRHAGIC_SYMPTOMS_TEXT) - + LayoutUtil.locsCss(CssStyles.VSPACE3, + + LayoutUtil.locsCss(CssStyles.VSPACE_3, SymptomsDto.SYMPTOMS_COMMENTS)) ); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/task/AbstractTaskView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/task/AbstractTaskView.java deleted file mode 100644 index 087204a11ba..00000000000 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/task/AbstractTaskView.java +++ /dev/null @@ -1,5 +0,0 @@ -package de.symeda.sormas.ui.task; - -public class AbstractTaskView { - -} diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskGrid.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskGrid.java index 45d0a827424..dff04630828 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskGrid.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskGrid.java @@ -45,13 +45,13 @@ public String getStyle(RowReference row) { if (task != null && task.getTaskStatus() != null) { switch (task.getTaskStatus()) { case REMOVED: - return CssStyles.STATUS_DISCARDED; + return CssStyles.GRID_ROW_STATUS_DISCARDED; case NOT_EXECUTABLE: - return CssStyles.STATUS_NOT; + return CssStyles.GRID_ROW_STATUS_NOT; case DONE: - return CssStyles.STATUS_DONE; + return CssStyles.GRID_ROW_STATUS_DONE; case PENDING: - return CssStyles.STATUS_PENDING; + return CssStyles.GRID_ROW_STATUS_PENDING; default: throw new IndexOutOfBoundsException(task.getTaskStatus().toString()); } @@ -68,11 +68,11 @@ public String getStyle(CellReference cell) { if (priority != null) { switch (priority) { case HIGH: - return CssStyles.PRIORITY_HIGH; + return CssStyles.GRID_CELL_PRIORITY_HIGH; case NORMAL: - return CssStyles.PRIORITY_NORMAL; + return CssStyles.GRID_CELL_PRIORITY_NORMAL; case LOW: - return CssStyles.PRIORITY_LOW; + return CssStyles.GRID_CELL_PRIORITY_LOW; default: throw new IndexOutOfBoundsException(priority.toString()); } @@ -81,7 +81,7 @@ public String getStyle(CellReference cell) { else if (TaskDto.DUE_DATE.equals(cell.getPropertyId())) { Date dueDate = (Date)cell.getProperty().getValue(); if (dueDate != null && dueDate.before(new Date())) { - return CssStyles.WARNING; + return CssStyles.GRID_CELL_WARNING; } } return null; diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskListComponent.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskListComponent.java index 33d9e09bf1e..fdb1cba04d4 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskListComponent.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TaskListComponent.java @@ -1,6 +1,5 @@ package de.symeda.sormas.ui.task; -import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.server.FontAwesome; import com.vaadin.shared.ui.MarginInfo; import com.vaadin.shared.ui.grid.HeightMode; @@ -8,7 +7,6 @@ import com.vaadin.ui.Button; import com.vaadin.ui.ComboBox; import com.vaadin.ui.HorizontalLayout; -import com.vaadin.ui.Label; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.themes.ValoTheme; @@ -19,11 +17,10 @@ import de.symeda.sormas.api.task.TaskStatus; import de.symeda.sormas.ui.ControllerProvider; import de.symeda.sormas.ui.login.LoginHelper; -import de.symeda.sormas.ui.utils.AbstractView; import de.symeda.sormas.ui.utils.CssStyles; @SuppressWarnings("serial") -public class TaskListComponent extends AbstractView { +public class TaskListComponent extends VerticalLayout { private TaskGrid grid; private Button createButton; @@ -32,7 +29,6 @@ public class TaskListComponent extends AbstractView { public TaskListComponent() { setSizeFull(); - addStyleName("crud-view"); grid = new TaskGrid(); @@ -68,12 +64,7 @@ public HorizontalLayout createTopBar() { HorizontalLayout topLayout = new HorizontalLayout(); topLayout.setSpacing(true); topLayout.setWidth(100, Unit.PERCENTAGE); - topLayout.addStyleName(CssStyles.VSPACE3); - - Label header = new Label("Tasks"); - header.setSizeUndefined(); - CssStyles.style(header, CssStyles.H2, CssStyles.NO_MARGIN); - topLayout.addComponent(header); + topLayout.addStyleName(CssStyles.VSPACE_3); HorizontalLayout buttonFilterLayout = new HorizontalLayout(); { @@ -106,27 +97,7 @@ public HorizontalLayout createTopBarForEntity(TaskContext context, ReferenceDto HorizontalLayout topLayout = new HorizontalLayout(); topLayout.setSpacing(true); topLayout.setWidth(100, Unit.PERCENTAGE); - topLayout.addStyleName(CssStyles.VSPACE3); - - Label header; - switch(context) { - case CASE: - header = new Label("Case tasks"); - break; - case CONTACT: - header = new Label("Contact tasks"); - break; - case EVENT: - header = new Label("Alert tasks"); - break; - default: - header = new Label("Tasks"); - break; - } - - header.setSizeUndefined(); - CssStyles.style(header, CssStyles.H3, CssStyles.NO_MARGIN, CssStyles.SUBLIST_PADDING); - topLayout.addComponent(header); + topLayout.addStyleName(CssStyles.VSPACE_3); HorizontalLayout buttonFilterLayout = new HorizontalLayout(); { @@ -157,7 +128,7 @@ public HorizontalLayout createFilterBar() { HorizontalLayout filterLayout = new HorizontalLayout(); filterLayout.setSpacing(true); filterLayout.setSizeUndefined(); - filterLayout.addStyleName(CssStyles.VSPACE3); + filterLayout.addStyleName(CssStyles.VSPACE_3); ComboBox statusFilter = new ComboBox(); statusFilter.setWidth(200, Unit.PIXELS); @@ -170,8 +141,7 @@ public HorizontalLayout createFilterBar() { return filterLayout; } - @Override - public void enter(ViewChangeEvent event) { + public void reload() { grid.reload(); } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TasksView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TasksView.java index 2fb6e958cfc..92976094b07 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TasksView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/task/TasksView.java @@ -12,13 +12,14 @@ public class TasksView extends AbstractView { private final TaskListComponent taskListComponent; public TasksView() { + super(VIEW_NAME); + taskListComponent = new TaskListComponent(); - setSizeFull(); addComponent(taskListComponent); } @Override public void enter(ViewChangeEvent event) { - taskListComponent.enter(event); + taskListComponent.reload(); } } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/user/UserEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/user/UserEditForm.java index 66f2aa43b0c..f4b5f6b5b84 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/user/UserEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/user/UserEditForm.java @@ -25,17 +25,17 @@ public class UserEditForm extends AbstractEditForm { private static final String HTML_LAYOUT = - LayoutUtil.h3(CssStyles.VSPACE3, "Person data")+ - LayoutUtil.divCss(CssStyles.VSPACE2, + LayoutUtil.h3(CssStyles.VSPACE_3, "Person data")+ + LayoutUtil.divCss(CssStyles.VSPACE_2, LayoutUtil.fluidRowLocs(UserDto.FIRST_NAME, UserDto.LAST_NAME), LayoutUtil.fluidRowLocs(UserDto.USER_EMAIL, UserDto.PHONE) )+ - LayoutUtil.h3(CssStyles.VSPACE3, "Adress")+ - LayoutUtil.divCss(CssStyles.VSPACE2, + LayoutUtil.h3(CssStyles.VSPACE_3, "Adress")+ + LayoutUtil.divCss(CssStyles.VSPACE_2, LayoutUtil.fluidRowLocs(UserDto.ADDRESS) )+ - LayoutUtil.h3(CssStyles.VSPACE3, "User data")+ - LayoutUtil.divCss(CssStyles.VSPACE2, + LayoutUtil.h3(CssStyles.VSPACE_3, "User data")+ + LayoutUtil.divCss(CssStyles.VSPACE_2, LayoutUtil.fluidRowLocs(UserDto.ACTIVE), LayoutUtil.fluidRowLocs(UserDto.USER_NAME, UserDto.USER_ROLES), LayoutUtil.fluidRowLocs(UserDto.REGION, UserDto.DISTRICT), diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/user/UsersView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/user/UsersView.java index f1aa609bd95..a85b5d1b1ca 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/user/UsersView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/user/UsersView.java @@ -42,14 +42,12 @@ public class UsersView extends AbstractView { private VerticalLayout gridLayout; public UsersView() { - setSizeFull(); - addStyleName("crud-view"); - + super(VIEW_NAME); + grid = new UserGrid(); grid.addItemClickListener(e -> ControllerProvider.getUserController().edit((UserDto)e.getItemId())); gridLayout = new VerticalLayout(); - gridLayout.addComponent(createTopBar()); gridLayout.addComponent(createFilterBar()); gridLayout.addComponent(grid); gridLayout.setMargin(true); @@ -59,35 +57,19 @@ public UsersView() { gridLayout.setStyleName("crud-main-layout"); addComponent(gridLayout); - } - - public HorizontalLayout createTopBar() { - HorizontalLayout topLayout = new HorizontalLayout(); - topLayout.setSpacing(true); - topLayout.setWidth(100, Unit.PERCENTAGE); - topLayout.addStyleName(CssStyles.VSPACE3); - - Label header = new Label("Users"); - header.setSizeUndefined(); - CssStyles.style(header, CssStyles.H2, CssStyles.NO_MARGIN); - topLayout.addComponent(header); - + createButton = new Button("New user"); createButton.addStyleName(ValoTheme.BUTTON_PRIMARY); createButton.setIcon(FontAwesome.PLUS_CIRCLE); createButton.addClickListener(e -> ControllerProvider.getUserController().create()); - topLayout.addComponent(createButton); - topLayout.setComponentAlignment(createButton, Alignment.MIDDLE_RIGHT); - topLayout.setExpandRatio(createButton, 1); - - return topLayout; + addHeaderComponent(createButton); } public HorizontalLayout createFilterBar() { HorizontalLayout filterLayout = new HorizontalLayout(); filterLayout.setSpacing(true); filterLayout.setSizeUndefined(); - filterLayout.addStyleName(CssStyles.VSPACE3); + filterLayout.addStyleName(CssStyles.VSPACE_3); ComboBox activeFilter = new ComboBox(); activeFilter.setWidth(200, Unit.PIXELS); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java index 735cc1c314f..a8d4ecd2428 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractEditForm.java @@ -20,6 +20,7 @@ import com.vaadin.ui.DateField; import com.vaadin.ui.Field; import com.vaadin.ui.OptionGroup; +import com.vaadin.ui.themes.ValoTheme; import de.symeda.sormas.api.DataTransferObject; import de.symeda.sormas.api.I18nProperties; @@ -70,7 +71,7 @@ public T createField(Class type, Class fieldType) { if (type.isEnum()) { if (SymptomState.class.isAssignableFrom(type)) { OptionGroup field = super.createField(type, OptionGroup.class); - CssStyles.style(field, CssStyles.ROW_OPTIONGROUP); + CssStyles.style(field, ValoTheme.OPTIONGROUP_HORIZONTAL, CssStyles.OPTIONGROUP_CAPTION_INLINE); return (T) field; } else { if (!AbstractSelect.class.isAssignableFrom(fieldType)) { @@ -78,7 +79,7 @@ public T createField(Class type, Class fieldType) { } T field = super.createField(type, fieldType); if (OptionGroup.class.isAssignableFrom(fieldType)) { - CssStyles.style(field, CssStyles.INLINE_OPTIONGROUP); + CssStyles.style(field, ValoTheme.OPTIONGROUP_HORIZONTAL); } return field; } @@ -104,13 +105,17 @@ else if (EpiDataGatheringsField.class.isAssignableFrom(fieldType)) { else if (EpiDataTravelsField.class.isAssignableFrom(fieldType)) { return (T) new EpiDataTravelsField(); } - else if (Date.class.isAssignableFrom(type)) { - DateField field = super.createField(type, DateField.class); - field.setDateFormat(DateHelper.getDateFormat().toPattern()); - return (T) field; - } - else if (ReferenceDto.class.isAssignableFrom(type)) { - return (T) new ComboBox(); + else if (fieldType.equals(Field.class)) { + // no specific field type defined -> fallbacks + + if (Date.class.isAssignableFrom(type)) { + DateField field = super.createField(type, DateField.class); + field.setDateFormat(DateHelper.getDateFormat().toPattern()); + return (T) field; + } + else if (ReferenceDto.class.isAssignableFrom(type)) { + return (T) new ComboBox(); + } } return super.createField(type, fieldType); @@ -258,9 +263,9 @@ protected Field getField(String fieldOrPropertyId) { return field; } - protected void styleAsRow(List fields) { + protected void styleAsOptionGroupHorizontal(List fields) { for(String field : fields) { - CssStyles.style(getFieldGroup().getField(field), CssStyles.ROW_OPTIONGROUP); + CssStyles.style((OptionGroup)getFieldGroup().getField(field), ValoTheme.OPTIONGROUP_HORIZONTAL); } } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractSubNavigationView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractSubNavigationView.java index c832d63028c..ab489e3d808 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractSubNavigationView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractSubNavigationView.java @@ -1,19 +1,16 @@ package de.symeda.sormas.ui.utils; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; -import com.vaadin.ui.Alignment; import com.vaadin.ui.Component; -import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; import com.vaadin.ui.VerticalLayout; +import com.vaadin.ui.themes.ValoTheme; import de.symeda.sormas.ui.SubNavigationMenu; @SuppressWarnings("serial") public abstract class AbstractSubNavigationView extends AbstractView { - protected final String viewName; - private SubNavigationMenu subNavigationMenu; private Label infoLabel; private Label infoLabelSub; @@ -21,35 +18,21 @@ public abstract class AbstractSubNavigationView extends AbstractView { private String params; protected AbstractSubNavigationView(String viewName) { - setWidth(100, Unit.PERCENTAGE); - setHeight(100, Unit.PERCENTAGE); - setMargin(true); - this.viewName = viewName; + super(viewName); - HorizontalLayout layout = new HorizontalLayout(); - layout.setWidth(100, Unit.PERCENTAGE); - layout.setSpacing(true); - subNavigationMenu = new SubNavigationMenu(); - layout.addComponent(subNavigationMenu); - - VerticalLayout vLayout = new VerticalLayout(); - vLayout.setSizeUndefined(); - CssStyles.stylePrimary(vLayout, CssStyles.CALLOUT); + addComponent(subNavigationMenu); + setExpandRatio(subNavigationMenu, 0); + VerticalLayout infoLayout = new VerticalLayout(); + infoLayout.setSizeUndefined(); + CssStyles.stylePrimary(infoLayout, CssStyles.CALLOUT); infoLabel = new Label(""); infoLabelSub = new Label(""); - CssStyles.style(infoLabelSub, CssStyles.LABEL_SMALL); - - vLayout.addComponent(infoLabel); - vLayout.addComponent(infoLabelSub); - layout.addComponent(vLayout); - layout.setComponentAlignment(vLayout, Alignment.MIDDLE_RIGHT); - - layout.setExpandRatio(subNavigationMenu, 1); - layout.setExpandRatio(vLayout, 0); - - addComponent(layout); + CssStyles.style(infoLabelSub, ValoTheme.LABEL_SMALL); + infoLayout.addComponent(infoLabel); + infoLayout.addComponent(infoLabelSub); + addHeaderComponent(infoLayout); } @Override diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractView.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractView.java index dc7696aa8b9..75206c9e7a8 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractView.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/AbstractView.java @@ -2,12 +2,69 @@ import com.vaadin.navigator.View; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; +import com.vaadin.shared.ui.MarginInfo; +import com.vaadin.ui.Alignment; +import com.vaadin.ui.Component; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.Label; import com.vaadin.ui.VerticalLayout; +import de.symeda.sormas.api.I18nProperties; + public abstract class AbstractView extends VerticalLayout implements View { private static final long serialVersionUID = -1L; + protected final String viewName; + private final HorizontalLayout viewHeader; + + protected AbstractView(String viewName) { + this.viewName = viewName; + + setSizeFull(); + setMargin(false); + setSpacing(false); + + viewHeader = new HorizontalLayout(); + viewHeader.setWidth(100, Unit.PERCENTAGE); + viewHeader.setHeightUndefined(); + viewHeader.setMargin(new MarginInfo(false, true)); + CssStyles.style(viewHeader, "view-header"); + + VerticalLayout viewTitleLayout = new VerticalLayout(); + { + viewTitleLayout.setSizeUndefined(); + viewTitleLayout.setSpacing(false); + + // note: splitting title and subtitle into labels does not work with the css + String viewTitle = I18nProperties.getPrefixFragment("View", viewName.replaceAll("/", ".")); + String viewSubTitle = I18nProperties.getPrefixFragment("View", viewName.replaceAll("/", ".") + ".sub", ""); + Label viewTitleLabel = new Label(viewTitle); + CssStyles.style(viewTitleLabel, CssStyles.H1, CssStyles.VSPACE_NONE); + viewTitleLayout.addComponent(viewTitleLabel); + Label viewSubTitleLabel = new Label(viewSubTitle); + CssStyles.style(viewSubTitleLabel, CssStyles.H4, CssStyles.VSPACE_TOP_NONE); + viewTitleLayout.addComponent(viewSubTitleLabel); + } + viewHeader.addComponent(viewTitleLayout); + viewHeader.setExpandRatio(viewTitleLayout, 1); + + addComponent(viewHeader); + setExpandRatio(viewHeader, 0); + } + + protected void addHeaderComponent(Component c) { + viewHeader.addComponent(c); + viewHeader.setComponentAlignment(c, Alignment.MIDDLE_RIGHT); + } + + @Override + public void addComponent(Component c) { + super.addComponent(c); + // set expansion to 1 by default + setExpandRatio(c, 1); + } + @Override public abstract void enter(ViewChangeEvent event); } diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CommitDiscardWrapperComponent.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CommitDiscardWrapperComponent.java index 3d76e6607da..b294a401dbd 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CommitDiscardWrapperComponent.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CommitDiscardWrapperComponent.java @@ -121,6 +121,7 @@ protected void setWrappedComponent(C component, FieldGroup fieldGroup) { } setSpacing(false); + setMargin(true); setSizeUndefined(); contentPanel = new Panel(component); diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java index 473fa689a78..6a847cd14ee 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/CssStyles.java @@ -13,58 +13,24 @@ public final class CssStyles { public static final String H3 = "h3"; public static final String H4 = "h4"; public static final String H5 = "h5"; - public static final String NO_MARGIN = "no-margin"; - - public static final String SUBLIST_PADDING = "sublist-padding"; - - public static final String VSPACE0 = "vspace0"; - public static final String VSPACE1 = "vspace1"; - public static final String VSPACE2 = "vspace2"; - public static final String VSPACE3 = "vspace3"; - public static final String VSPACE4 = "vspace4"; - public static final String VSPACE5 = "vspace5"; - public static final String VSPACE_NO_FILTERS = "vspace-no-filters"; - public static final String VSPACETOP3 = "vspacetop3"; - public static final String VSPACETOP4 = "vspacetop4"; - - public static final String SELECTABLE = "selectable"; - - public static final String PULL_LEFT = "pull-left"; - public static final String PULL_RIGHT = "pull-right"; - - public static final String BUTTON = "btn"; - public static final String BUTTON_LINK = "btn-link"; - public static final String BUTTON_LINK_FIRST = "btn-link-first"; - public static final String BUTTON_LINK_LAST = "btn-link-last"; - public static final String BUTTON_PRIMARY = "btn-primary"; - public static final String BUTTON_LARGE = "btn-large"; - public static final String BUTTON_SMALL = "btn-small"; - public static final String BUTTON_MINI = "btn-mini"; - /** - * Receives same margins as a field - */ - public static final String BUTTON_FIELD = "btn-field"; - /** - * Puts the options right aligned in line with the caption - */ - public static final String ROW_OPTIONGROUP = "row-optiongroup"; - /** - * Puts the options in one line - */ - public static final String INLINE_OPTIONGROUP = "inline-optiongroup"; - - public static final String LINK_ACTIVE = "active"; - - public static final String LABEL_SMALL = "small"; - public static final String LABEL_MEDIUM = "medium"; - public static final String LABEL_PROMPT = "prompt"; - - public static final String BADGE = "badge"; - public static final String BADGE_INFO = "badge-info"; - public static final String BUTTON_UPLOAD = "button-upload"; + public static final String VSPACE_0 = "vspace-0"; + public static final String VSPACE_1 = "vspace-1"; + public static final String VSPACE_2 = "vspace-2"; + public static final String VSPACE_3 = "vspace-3"; + public static final String VSPACE_4 = "vspace-4"; + public static final String VSPACE_5 = "vspace-5"; + public static final String VSPACE_NONE = "vspace-none"; + + public static final String VSPACE_TOP_0 = "vspace-top-0"; + public static final String VSPACE_TOP_1 = "vspace-top-1"; + public static final String VSPACE_TOP_2 = "vspace-top-2"; + public static final String VSPACE_TOP_3 = "vspace-top-3"; + public static final String VSPACE_TOP_4 = "vspace-top-4"; + public static final String VSPACE_TOP_5 = "vspace-top-5"; + public static final String VSPACE_TOP_NONE = "vspace-top-none"; - public static final String FLOW_LAYOUT = "flow-layout"; + public static final String LINK_ACTIVE = "active"; /** * Stellt sicher, dass CM-Checkboxen dieselbe Höhe wie Textfelder etc. haben @@ -72,40 +38,23 @@ public final class CssStyles { public static final String FORCE_CAPTION = "force-caption"; public static final String CAPTION_HIDDEN = "caption-hidden"; - public static final String FONT_CROSSED = "font-crossed"; - public static final String ALIGN_RIGHT = "align-right"; - public static final String ALIGN_CENTERED = "align-centered"; - - public static final String PRIORITY_HIGH = "priority-high"; - public static final String PRIORITY_NORMAL = "priority-normal"; - public static final String PRIORITY_LOW = "priority-low"; + public static final String OPTIONGROUP_CAPTION_INLINE = "caption-inline"; + + public static final String GRID_CELL_PRIORITY_HIGH = "priority-high"; + public static final String GRID_CELL_PRIORITY_NORMAL = "priority-normal"; + public static final String GRID_CELL_PRIORITY_LOW = "priority-low"; - public static final String WARNING = "warning"; + public static final String GRID_CELL_WARNING = "warning"; - public static final String STATUS_DISCARDED = "status-discarded"; - public static final String STATUS_NOT = "status-not"; - public static final String STATUS_DONE = "status-done"; - public static final String STATUS_PENDING = "status-pending"; + public static final String GRID_ROW_STATUS_DISCARDED = "status-discarded"; + public static final String GRID_ROW_STATUS_NOT = "status-not"; + public static final String GRID_ROW_STATUS_DONE = "status-done"; + public static final String GRID_ROW_STATUS_PENDING = "status-pending"; + @Deprecated public static final String CALLOUT = "callout"; - public static final String DASHBOARD_KEY = "dashboard-key"; - - public static final String CURSOR_LINK = "cursor-link"; - - public static final String FONT_SIZE_LARGE = "font-size-large"; - public static final String FONT_SIZE_XLARGE = "font-size-xlarge"; - public static final String FONT_SIZE_SMALL = "font-size-small"; - - public static final String SUBLIST_MARGIN = "sublist-margin"; - public static final String SUBLIST_MARGIN_SMALL = "sublist-margin-small"; - public static final String INFO_COLUMN_MARGIN = "info-column-margin"; - - public static final String COLOR_RED = "color-red"; - public static final String COLOR_GREEN = "color-green"; - public static final String COLOR_GREY = "color-grey"; - public static void style(Component component, String... styles) { for (String style : styles) diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/LayoutUtil.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/LayoutUtil.java index 2acfbc01693..67f758b9294 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/LayoutUtil.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/utils/LayoutUtil.java @@ -26,14 +26,6 @@ public static String loc(String location) { return locCss(null, location); } - public static String flow(String... htmls) { - StringBuilder sb = new StringBuilder(); - for (String html : htmls) { - sb.append("
").append(html).append("
\n"); - } - return sb.toString(); - } - public static String locs(String... locations) { StringBuilder sb = new StringBuilder(); for (String location : locations) { @@ -46,14 +38,6 @@ public static String locsCss(String css, String... locations) { return divCss(css, locs(locations)); } - public static String flowLocs(String... locations) { - StringBuilder sb = new StringBuilder(); - for (String location : locations) { - sb.append("
\n"); - } - return sb.toString(); - } - /** * Ein Html-Element * diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss index 224009437b2..2d245d7167d 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss @@ -53,4 +53,27 @@ $valo-menu-background-color: $s-default-color !default; } } } + // Move logout button to the bottom of the menu on large screens + .v-ui[width-range~="801px-"] .valo-menu-part { + .user-menu { + position: fixed; + bottom: 0; + margin-bottom: 0; + } + } + + // hide the logo for a more compact header when the menu is narrow + .v-ui[width-range~="801px-1100px"] .valo-menu-part { + .v-slot-logo, + .v-slot-logo + .v-spacing { + display: none; + } + } + + // Override valo default narrow menu button on small screens to have the full logout text visible + .v-ui[width-range~="0-500px"] { + .valo-menu .v-menubar-user-menu .v-menubar-menuitem-caption { + width: auto; + } + } } diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/optiongroup.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/optiongroup.scss index 79d74a95244..a8e000dae6d 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/optiongroup.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/optiongroup.scss @@ -41,4 +41,18 @@ } } } + + .v-select-optiongroup-caption-inline { + text-align: right; + } + + .v-caption-caption-inline { + float: left; + padding-top: 7px; + margin-bottom: -30px; + font-weight: 500; + font-size: 12px; + text-transform: none; + } + } \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/tabsheet.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/tabsheet.scss new file mode 100644 index 00000000000..92c1f29a075 --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/tabsheet.scss @@ -0,0 +1,47 @@ + +@mixin sormas-tabsheet { + + .v-tabsheet { + + margin-top: -3px; + + .v-tabsheet-tabitemcell { + + border-top: $v-border; + border-top-width: 3px; + + .v-tabsheet-tabitem { + + overflow: visible; + + .v-caption { + margin-top: -3px; + border-bottom: none; + border-top: $v-border; + border-top-width: 3px; + color: $v-selection-color; + font-weight: 600; + text-decoration: none; + } + + &.back { + border-right: $v-border; + border-right-width: 3px; + padding-right: 16px; + } + + &.selected .v-caption { + border-top-color: $v-selection-color; + } + } + + &:first-child { + margin-left: 20px; + } + } + + .v-tabsheet-tabcontainer::before { + content: none; + } + } +} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/textfield.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/textfield.scss index 38ee010ad19..1b9d17289dc 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/textfield.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/textfield.scss @@ -11,6 +11,14 @@ $v-textfield-background-color--readonly: $v-app-background-color !default; background: inherit; color: inherit; height: inherit; - } + } + + } + + // Hide spinner buttons from number input + input[type=number]::-webkit-inner-spin-button, + input[type=number]::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; } } \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/deprecated.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/deprecated.scss new file mode 100644 index 00000000000..a53e9d0ccf0 --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/deprecated.scss @@ -0,0 +1,20 @@ + +@mixin sormas-deprecated { + + .callout { + text-align: center; + outline: none; + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + padding: 0 14px; + color: #191919; + font-weight: 500; + + border-radius: 4px; + border: 1px solid #c5c5c5; + border-left: 7px solid #60a0ea; + border-top-color: #c5c5c5; + border-bottom-color: #bcbcbc; + background-color: #fafafa; + } +} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/general.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/general.css deleted file mode 100644 index 2ab33654700..00000000000 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/general.css +++ /dev/null @@ -1,53 +0,0 @@ -@CHARSET "ISO-8859-1"; - -.vspace0 { - margin-bottom: 64px; -} - -.vspace1 { - margin-bottom: 36px; -} - -.vspace2 { - margin-bottom: 20px; -} - -.vspace3 { - margin-bottom: 10px; -} - -.vspace4 { - margin-bottom: 6px; -} - -.vspace5 { - margin-bottom: 2px; -} - -.vspacetop0 { - margin-top: 64px; -} - -.vspacetop1 { - margin-top: 36px; -} - -.vspacetop2 { - margin-top: 20px; -} - -.vspacetop3 { - margin-top: 10px; -} - -.vspacetop4 { - margin-top: 6px; -} - -.vspacetop5 { - margin-top: 2px; -} - -.captionspace { - margin-top: 21px; -} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/global.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/global.scss new file mode 100644 index 00000000000..b3e1a954370 --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/global.scss @@ -0,0 +1,118 @@ + +@mixin sormas-global { + + .v-caption { + text-transform: uppercase; + display: block; + padding-bottom: 0.1em; + + &.v-caption-caption-hidden { + display: none; + } + } + + .force-caption { + margin-top: 1.5em; + } + + .v-widget.v-textfield, + .v-widget.v-textarea, + .v-widget.v-select, + .v-widget.v-datefield, + .v-widget.v-filterselect { + margin-bottom: 10px; + } + + + /** HEADER STYLES **/ + + h1, .h1 { + color: $s-primary-color; + font-weight: 600; + } + + h2, .h2 { + color: $s-secondary-color; + font-weight: 600; + } + + h3, .h3 { + margin-bottom: 16px; + + &::before { + background: #EEF2F8; + content: ""; + display: block; + position: relative; + top: 15px; + height: 2px; + width: 100%; + } + + span { + background: #FFF; + position: relative; + padding-right: 8px; + } + } + + h4, .h4 { + color: $s-secondary-color; + font-weight: 600; + } + + + + /** CUSTOM STYLES **/ + + .vspace-0 { + margin-bottom: 64px; + } + .vspace-1 { + margin-bottom: 36px; + } + .vspace-2 { + margin-bottom: 20px; + } + .vspace-3 { + margin-bottom: 10px; + } + .vspace-4 { + margin-bottom: 6px; + } + .vspace-5 { + margin-bottom: 2px; + } + .vspace-none { + margin-bottom: 0 !important; + } + + .vspace-top-0 { + margin-top: 64px; + } + .vspace-top-1 { + margin-top: 36px; + } + .vspace-top-2 { + margin-top: 20px; + } + .vspace-top-3 { + margin-top: 10px; + } + .vspace-top-4 { + margin-top: 6px; + } + .vspace-top-5 { + margin-top: 2px; + } + .vspace-top-none { + margin-top: 0 !important; + } + + // For aligning in bootstrap grid + .align-right { + text-align: right; + } + + +} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss index e73a1aeb47c..9bce9eb2f13 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/sormas.scss @@ -9,6 +9,7 @@ $v-luminance-threshold: 180 !default; $s-warning-color: #E10002; $s-primary-color: #005A9C; +$s-secondary-color: #6591C4; $s-default-color: #6691C4; $v-background-color: #FEFEFE !default; @@ -48,6 +49,9 @@ $editor-raised-background-color: lighten($editor-background-color, 10%) !default $editor-caption-font-color: valo-font-color($editor-background-color, 0.5) !default; +@import "global.scss"; +@import "deprecated.scss"; + @import "components/button.scss"; @import "components/combobox.scss"; @import "components/datefield.scss"; @@ -55,9 +59,13 @@ $editor-caption-font-color: valo-font-color($editor-background-color, 0.5) !defa @import "components/menu.scss"; @import "components/optiongroup.scss"; @import "components/panel.scss"; +@import "components/tabsheet.scss"; @import "components/textfield.scss"; @import "components/window.scss"; +@import "views/view.scss"; +@import "views/about.scss"; +@import "views/dashboard.scss"; @import "views/login.scss"; @import "../valo/valo.scss"; @@ -66,7 +74,7 @@ $editor-caption-font-color: valo-font-color($editor-background-color, 0.5) !defa @function valo-font-color ($bg-color, $contrast: $v-font-color-contrast) { @if type-of($bg-color) == color { @if is-dark-color($bg-color) { - @return #FEFEFE; + @return $v-background-color; } @else { @return #374B59; } @@ -77,6 +85,8 @@ $editor-caption-font-color: valo-font-color($editor-background-color, 0.5) !defa @mixin sormas { @include valo; + @include sormas-global; + @include sormas-button; @include sormas-combobox; @include sormas-datefield; @@ -84,354 +94,14 @@ $editor-caption-font-color: valo-font-color($editor-background-color, 0.5) !defa @include sormas-menu; @include sormas-optiongroup; @include sormas-panel; + @include sormas-tabsheet; @include sormas-textfield; @include sormas-window; - @include login; - - .valo-content { - overflow: auto; - } - - .v-caption { - text-transform: uppercase; - display: block; - padding-bottom: 0.1em; - } - .v-caption.v-caption-caption-hidden { - display: none; - } - - - h3 { - margin-bottom: 16px; - - &::before { - background: #EEF2F8; - content: ""; - display: block; - position: relative; - top: 15px; - height: 2px; - width: 100%; - } - - span { - background: #FFF; - position: relative; - padding-right: 8px; - } - } - - .callout { - text-align: center; - outline: none; - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - padding: 0 14px; - color: #191919; - font-weight: 500; - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-left: 7px solid #60a0ea; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - } - - .dashboard-key { - text-align: center; - outline: none; - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - padding: 7px; - color: #191919; - font-weight: 500; - - border-radius: 4px; - border: 1px solid #c5c5c5; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; - } - - /* "hack" to hide map tiles in google maps component */ - .googlemap.no-tiles img { - opacity: 0.2; - filter: alpha(opacity=20); /* For IE8 and earlier */ - } - .googlemap.no-tiles .gmnoprint img { - opacity: inherit; - filter: inherit; - } - .googlemap gm-style { - background-color: white; - } - - .v-widget.v-textfield, .v-widget.v-textarea, .v-widget.v-select, .v-widget.v-datefield, - .v-widget.v-filterselect { - margin-bottom: 10px; - } - - .v-caption-row-optiongroup { - float: left; - padding-top: 7px; - margin-bottom: -30px; - font-weight: 500; - font-size: 12px; - text-transform: none; - } - - .v-select-optiongroup-row-optiongroup { - text-align: right; - } - - .v-select-optiongroup-row-optiongroup .v-select-option, - .v-select-optiongroup-inline-optiongroup .v-select-option { - display: inline-block; - } - - // makes the CRUD view keep the sidebar editor within the view as sidebar is absolutely positioned - .crud-view { - position: relative; - - .filter-textfield { - width: round($v-unit-size * 9); - } - } - - .force-caption { - margin-top: 1.5em; - } - - .no-margin, .h1.no-margin, .h2.no-margin, .h3.no-margin, .h4.no-margin, .h5.no-margin, .v-checkbox.no-margin label { - margin: 0; - } - .sublist-padding { - padding-top: 7px; - } - - .v-readonly, .v-caption-v-readonly { - color: #aaa; - } + @include sormas-view; + @include sormas-about-view; + @include sormas-dashboard-view; + @include sormas-login-view; - // About view - - .about-view { - overflow: auto; - - .about-content { - @include valo-panel-style; - max-width: 500px; - // Override the default of CustomLayout - padding: $v-unit-size !important; - } - } - - // Style rules for smaller display sizes - - // No top menu on the login view, login screen layout changes - .v-ui[width-range~="0-800px"] { - - .main-screen { - padding-top: $v-unit-size; - } - // TODO also move loading indicator if using the hack above - - // More compact login screen - .login-screen { - height: auto; - min-height: 100%; - - .login-information { - position: static; - width: 100%; - height: auto; - - .v-label { - text-align: center; - - h1 { - margin-top: .4em; - } - - } - } - - .centering-layout { - display: block; - width: 100%; - height: auto; - padding-left: 0; - padding-top: 60px; - padding-bottom: 60px; - } - - .login-form { - width: 400px; - max-width: 100%; - - table { - width: 100%; - } - - .v-textfield { - width: 100% !important; - } - - .v-formlayout-captioncell, - .v-formlayout-contentcell, - .v-formlayout-errorcell { - display: block; - text-align: center; - padding-top: 0; - } - .buttons { - width: 100%; - .v-button { - display: block; - text-align: center; - } - } - } - } - } - - // hide the logo for a more compact header when the menu is narrow - .v-ui[width-range~="801px-1100px"] .valo-menu-part { - .v-slot-logo, - .v-slot-logo + .v-spacing { - display: none; - } - } - - // Move logout button to the bottom of the menu on large screens - .v-ui[width-range~="801px-"] .valo-menu-part { - .user-menu { - position: fixed; - bottom: 0; - margin-bottom: 0; - } - } - - // Editor should take whole browser width when we are under 550px in width. - .v-ui[width-range~="0-550px"] { - - // Remove margins around the grid and reduce top bar margins on small screens - .crud-view .crud-main-layout { - padding: 0 0 0 0; - - .top-bar { - // Use spacing to the grid below as the margin - smaller than default margin - padding: $v-layout-spacing-vertical $v-layout-spacing-horizontal 0 $v-layout-spacing-horizontal; - - .filter-textfield { - width: 100%; - } - } - } - - // About view fills the display on small screens - .about-view { - padding-bottom: 0; - padding-top: 0; - height: auto; - padding: 0.1 * $v-unit-size; - - .v-slot-about-content { - overflow: auto; - } - - .about-content { - width: 100%; - max-width: 100%; - height: auto; - vertical-align: top; - padding: 0; - background: transparent; - @include box-shadow(none); - } - } - } - - // Override valo default narrow menu button on small screens to have the full logout text visible - .v-ui[width-range~="0-500px"] { - .valo-menu .v-menubar-user-menu .v-menubar-menuitem-caption { - width: auto; - } - } - - // Hide spinner buttons from number input - input[type=number]::-webkit-inner-spin-button, - input[type=number]::-webkit-outer-spin-button { - -webkit-appearance: none; - margin: 0; - } - - // For aligning in grid until #15438 is done - .align-right { - text-align: right; - } - - .v-Notification.error { - background: #C31924; - } - - .cursor-link { - cursor: pointer; - } - - .font-size-large { - font-size: 18px; - } - - .font-size-xlarge { - font-size: 22px; - li, ol { - line-height: 32px; - } - } - - .font-size-small { - font-size: 12px; - } - - .sublist-margin { - margin-top: 50px; - } - - .sublist-margin-small { - margin-top: 20px; - } - - .info-column-margin { - margin-left: 25px; - } - - .color-red { - .v-icon { - color: #7F3300; - } - } - - .color-green { - .v-icon { - color: #007F0E; - } - } - - .color-grey { - .v-icon { - color: #A8A8A8; - } - } - - .vspace-no-filters { - margin-bottom: 16px; - } - - .vspace-top-24 { - margin-top: 24px; - } + @include sormas-deprecated; } diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css index 340ba87ec14..3ccf373f385 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css @@ -1,7 +1,5 @@ @import "bootstrap-grid.min.css"; -@import "general.css"; - /** * Checks if a list contains a certain value. * @@ -12852,6 +12850,119 @@ div.v-layout.v-horizontal.v-widget { overflow: hidden; } +.sormas .v-caption { + text-transform: uppercase; + display: block; + padding-bottom: 0.1em; +} + +.sormas .v-caption.v-caption-caption-hidden { + display: none; +} + +.sormas .force-caption { + margin-top: 1.5em; +} + +.sormas .v-widget.v-textfield, .sormas .v-widget.v-textarea, .sormas .v-widget.v-select, .sormas .v-widget.v-datefield, .sormas .v-widget.v-filterselect { + margin-bottom: 10px; +} + +.sormas h1, .sormas .h1 { + color: #005A9C; + font-weight: 600; +} + +.sormas h2, .sormas .h2 { + color: #6591C4; + font-weight: 600; +} + +.sormas h3, .sormas .h3 { + margin-bottom: 16px; +} + +.sormas h3::before, .sormas .h3::before { + background: #EEF2F8; + content: ""; + display: block; + position: relative; + top: 15px; + height: 2px; + width: 100%; +} + +.sormas h3 span, .sormas .h3 span { + background: #FFF; + position: relative; + padding-right: 8px; +} + +.sormas h4, .sormas .h4 { + color: #6591C4; + font-weight: 600; +} + +.sormas .vspace-0 { + margin-bottom: 64px; +} + +.sormas .vspace-1 { + margin-bottom: 36px; +} + +.sormas .vspace-2 { + margin-bottom: 20px; +} + +.sormas .vspace-3 { + margin-bottom: 10px; +} + +.sormas .vspace-4 { + margin-bottom: 6px; +} + +.sormas .vspace-5 { + margin-bottom: 2px; +} + +.sormas .vspace-none { + margin-bottom: 0 !important; +} + +.sormas .vspace-top-0 { + margin-top: 64px; +} + +.sormas .vspace-top-1 { + margin-top: 36px; +} + +.sormas .vspace-top-2 { + margin-top: 20px; +} + +.sormas .vspace-top-3 { + margin-top: 10px; +} + +.sormas .vspace-top-4 { + margin-top: 6px; +} + +.sormas .vspace-top-5 { + margin-top: 2px; +} + +.sormas .vspace-top-none { + margin-top: 0 !important; +} + +.sormas .align-right { + text-align: right; +} + .sormas .v-button { text-transform: uppercase; border-color: #005A9C; @@ -13016,6 +13127,20 @@ div.v-layout.v-horizontal.v-widget { content: ""; } +.sormas .v-ui[width-range~="801px-"] .valo-menu-part .user-menu { + position: fixed; + bottom: 0; + margin-bottom: 0; +} + +.sormas .v-ui[width-range~="801px-1100px"] .valo-menu-part .v-slot-logo, .sormas .v-ui[width-range~="801px-1100px"] .valo-menu-part .v-slot-logo + .v-spacing { + display: none; +} + +.sormas .v-ui[width-range~="0-500px"] .valo-menu .v-menubar-user-menu .v-menubar-menuitem-caption { + width: auto; +} + .sormas .v-radiobutton { margin: 0 0 10px -2px !important; padding: 0 !important; @@ -13057,12 +13182,66 @@ div.v-layout.v-horizontal.v-widget { content: none; } +.sormas .v-select-optiongroup-caption-inline { + text-align: right; +} + +.sormas .v-caption-caption-inline { + float: left; + padding-top: 7px; + margin-bottom: -30px; + font-weight: 500; + font-size: 12px; + text-transform: none; +} + .sormas .v-panel { border: none; box-shadow: none; border-radius: 0; } +.sormas .v-tabsheet { + margin-top: -3px; +} + +.sormas .v-tabsheet .v-tabsheet-tabitemcell { + border-top: 2px solid #CDD8EC; + border-top-width: 3px; +} + +.sormas .v-tabsheet .v-tabsheet-tabitemcell .v-tabsheet-tabitem { + overflow: visible; +} + +.sormas .v-tabsheet .v-tabsheet-tabitemcell .v-tabsheet-tabitem .v-caption { + margin-top: -3px; + border-bottom: none; + border-top: 2px solid #CDD8EC; + border-top-width: 3px; + color: #005A9C; + font-weight: 600; + text-decoration: none; +} + +.sormas .v-tabsheet .v-tabsheet-tabitemcell .v-tabsheet-tabitem.back { + border-right: 2px solid #CDD8EC; + border-right-width: 3px; + padding-right: 16px; +} + +.sormas .v-tabsheet .v-tabsheet-tabitemcell .v-tabsheet-tabitem.selected .v-caption { + border-top-color: #005A9C; +} + +.sormas .v-tabsheet .v-tabsheet-tabitemcell:first-child { + margin-left: 20px; +} + +.sormas .v-tabsheet .v-tabsheet-tabcontainer::before { + content: none; +} + .sormas .v-textfield.v-readonly { border: none; padding: 0; @@ -13071,6 +13250,11 @@ div.v-layout.v-horizontal.v-widget { height: inherit; } +.sormas input[type=number]::-webkit-inner-spin-button, .sormas input[type=number]::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} + .sormas .v-window .v-window-outerheader { border-bottom: 3px solid #CDD8EC; } @@ -13102,111 +13286,50 @@ div.v-layout.v-horizontal.v-widget { padding-bottom: 32px; } -.sormas .login-screen { - background: #EFF5FC; - background-image: url(views/img/login-bg.png); - background-size: 960px; - background-repeat: no-repeat; - background-position: 50% 50%; - width: 100%; - height: 100%; +.sormas .view-header { + border-bottom: 2px solid #CDD8EC; + border-bottom-width: 3px; } -.sormas .login-screen .login-form { +.sormas .view-header .h1-sub { + margin-bottom: 8px; +} + +.sormas .about-view { + overflow: auto; +} + +.sormas .about-view .about-content { background: white; color: #374B59; border-radius: 4px; border: 2px solid #CDD8EC; -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - border: none; - padding: 21px 21px 21px 21px; - -webkit-animation: valo-animate-in-fade 1s backwards; - -moz-animation: valo-animate-in-fade 1s backwards; - animation: valo-animate-in-fade 1s backwards; - margin-right: 50%; - margin-bottom: 10%; -} - -.sormas .login-screen .login-information { - display: inline-block; - position: absolute; - top: 0; - left: 0; - width: 300px; - height: 100%; - background: #005A9C; - background-color: rgba(0, 90, 156, 0.7); - padding: 21px 21px 21px 21px; - color: #FEFEFE; - -webkit-animation: valo-animate-in-fade 1s 1s backwards; - -moz-animation: valo-animate-in-fade 1s 1s backwards; - animation: valo-animate-in-fade 1s 1s backwards; -} - -.sormas .login-screen .login-information h1 { - color: inherit; -} - -.sormas .login-screen .centering-layout { - display: inline-block; - width: 100%; - height: 100%; - padding-left: 300px; + max-width: 500px; + padding: 32px !important; } -.sormas .login-screen .centering-layout .v-slot { - height: 100%; +.sormas .v-ui[width-range~="0-550px"] .about-view { + padding-bottom: 0; + padding-top: 0; + height: auto; + padding: 3.2px; } -.sormas .valo-content { +.sormas .v-ui[width-range~="0-550px"] .about-view .v-slot-about-content { overflow: auto; } -.sormas .v-caption { - text-transform: uppercase; - display: block; - padding-bottom: 0.1em; -} - -.sormas .v-caption.v-caption-caption-hidden { - display: none; -} - -.sormas h3 { - margin-bottom: 16px; -} - -.sormas h3::before { - background: #EEF2F8; - content: ""; - display: block; - position: relative; - top: 15px; - height: 2px; +.sormas .v-ui[width-range~="0-550px"] .about-view .about-content { width: 100%; -} - -.sormas h3 span { - background: #FFF; - position: relative; - padding-right: 8px; -} - -.sormas .callout { - text-align: center; - outline: none; - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - padding: 0 14px; - color: #191919; - font-weight: 500; - border-radius: 4px; - border: 1px solid #c5c5c5; - border-left: 7px solid #60a0ea; - border-top-color: #c5c5c5; - border-bottom-color: #bcbcbc; - background-color: #fafafa; + max-width: 100%; + height: auto; + vertical-align: top; + padding: 0; + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; } .sormas .dashboard-key { @@ -13238,68 +13361,61 @@ div.v-layout.v-horizontal.v-widget { background-color: white; } -.sormas .v-widget.v-textfield, .sormas .v-widget.v-textarea, .sormas .v-widget.v-select, .sormas .v-widget.v-datefield, .sormas .v-widget.v-filterselect { - margin-bottom: 10px; -} - -.sormas .v-caption-row-optiongroup { - float: left; - padding-top: 7px; - margin-bottom: -30px; - font-weight: 500; - font-size: 12px; - text-transform: none; +.sormas .login-screen { + background: #EFF5FC; + background-image: url(views/img/login-bg.png); + background-size: 960px; + background-repeat: no-repeat; + background-position: 50% 50%; + width: 100%; + height: 100%; } -.sormas .v-select-optiongroup-row-optiongroup { - text-align: right; +.sormas .login-screen .login-form { + background: white; + color: #374B59; + border-radius: 4px; + border: 2px solid #CDD8EC; + -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); + border: none; + padding: 21px 21px 21px 21px; + -webkit-animation: valo-animate-in-fade 1s backwards; + -moz-animation: valo-animate-in-fade 1s backwards; + animation: valo-animate-in-fade 1s backwards; + margin-right: 50%; + margin-bottom: 10%; } -.sormas .v-select-optiongroup-row-optiongroup .v-select-option, .sormas .v-select-optiongroup-inline-optiongroup .v-select-option { +.sormas .login-screen .login-information { display: inline-block; + position: absolute; + top: 0; + left: 0; + width: 300px; + height: 100%; + background: #005A9C; + background-color: rgba(0, 90, 156, 0.7); + padding: 21px 21px 21px 21px; + color: #FEFEFE; + -webkit-animation: valo-animate-in-fade 1s 1s backwards; + -moz-animation: valo-animate-in-fade 1s 1s backwards; + animation: valo-animate-in-fade 1s 1s backwards; } -.sormas .crud-view { - position: relative; -} - -.sormas .crud-view .filter-textfield { - width: 288px; -} - -.sormas .force-caption { - margin-top: 1.5em; -} - -.sormas .no-margin, .sormas .h1.no-margin, .sormas .h2.no-margin, .sormas .h3.no-margin, .sormas .h4.no-margin, .sormas .h5.no-margin, .sormas .v-checkbox.no-margin label { - margin: 0; -} - -.sormas .sublist-padding { - padding-top: 7px; -} - -.sormas .v-readonly, .sormas .v-caption-v-readonly { - color: #aaa; -} - -.sormas .about-view { - overflow: auto; +.sormas .login-screen .login-information h1 { + color: inherit; } -.sormas .about-view .about-content { - background: white; - color: #374B59; - border-radius: 4px; - border: 2px solid #CDD8EC; - -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.05); - max-width: 500px; - padding: 32px !important; +.sormas .login-screen .centering-layout { + display: inline-block; + width: 100%; + height: 100%; + padding-left: 300px; } -.sormas .v-ui[width-range~="0-800px"] .main-screen { - padding-top: 32px; +.sormas .login-screen .centering-layout .v-slot { + height: 100%; } .sormas .v-ui[width-range~="0-800px"] .login-screen { @@ -13358,115 +13474,18 @@ div.v-layout.v-horizontal.v-widget { text-align: center; } -.sormas .v-ui[width-range~="801px-1100px"] .valo-menu-part .v-slot-logo, .sormas .v-ui[width-range~="801px-1100px"] .valo-menu-part .v-slot-logo + .v-spacing { - display: none; -} - -.sormas .v-ui[width-range~="801px-"] .valo-menu-part .user-menu { - position: fixed; - bottom: 0; - margin-bottom: 0; -} - -.sormas .v-ui[width-range~="0-550px"] .crud-view .crud-main-layout { - padding: 0 0 0 0; -} - -.sormas .v-ui[width-range~="0-550px"] .crud-view .crud-main-layout .top-bar { - padding: 18px 18px 0 18px; -} - -.sormas .v-ui[width-range~="0-550px"] .crud-view .crud-main-layout .top-bar .filter-textfield { - width: 100%; -} - -.sormas .v-ui[width-range~="0-550px"] .about-view { - padding-bottom: 0; - padding-top: 0; - height: auto; - padding: 3.2px; -} - -.sormas .v-ui[width-range~="0-550px"] .about-view .v-slot-about-content { - overflow: auto; -} - -.sormas .v-ui[width-range~="0-550px"] .about-view .about-content { - width: 100%; - max-width: 100%; - height: auto; - vertical-align: top; - padding: 0; - background: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} - -.sormas .v-ui[width-range~="0-500px"] .valo-menu .v-menubar-user-menu .v-menubar-menuitem-caption { - width: auto; -} - -.sormas input[type=number]::-webkit-inner-spin-button, .sormas input[type=number]::-webkit-outer-spin-button { - -webkit-appearance: none; - margin: 0; -} - -.sormas .align-right { - text-align: right; -} - -.sormas .v-Notification.error { - background: #C31924; -} - -.sormas .cursor-link { - cursor: pointer; -} - -.sormas .font-size-large { - font-size: 18px; -} - -.sormas .font-size-xlarge { - font-size: 22px; -} - -.sormas .font-size-xlarge li, .sormas .font-size-xlarge ol { - line-height: 32px; -} - -.sormas .font-size-small { - font-size: 12px; -} - -.sormas .sublist-margin { - margin-top: 50px; -} - -.sormas .sublist-margin-small { - margin-top: 20px; -} - -.sormas .info-column-margin { - margin-left: 25px; -} - -.sormas .color-red .v-icon { - color: #7F3300; -} - -.sormas .color-green .v-icon { - color: #007F0E; -} - -.sormas .color-grey .v-icon { - color: #A8A8A8; -} - -.sormas .vspace-no-filters { - margin-bottom: 16px; -} - -.sormas .vspace-top-24 { - margin-top: 24px; +.sormas .callout { + text-align: center; + outline: none; + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + padding: 0 14px; + color: #191919; + font-weight: 500; + border-radius: 4px; + border: 1px solid #c5c5c5; + border-left: 7px solid #60a0ea; + border-top-color: #c5c5c5; + border-bottom-color: #bcbcbc; + background-color: #fafafa; } \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.scss index 95feb774c71..ee4c85312a2 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.scss @@ -1,6 +1,5 @@ @import "bootstrap-grid.min.css"; -@import "general.css"; @import "sormas.scss"; @import "addons.scss"; diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/about.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/about.scss new file mode 100644 index 00000000000..d6c1c5c9220 --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/about.scss @@ -0,0 +1,40 @@ + +@mixin sormas-about-view { + + .about-view { + overflow: auto; + + .about-content { + @include valo-panel-style; + max-width: 500px; + // Override the default of CustomLayout + padding: $v-unit-size !important; + } + } + + // Editor should take whole browser width when we are under 550px in width. + .v-ui[width-range~="0-550px"] { + + // About view fills the display on small screens + .about-view { + padding-bottom: 0; + padding-top: 0; + height: auto; + padding: 0.1 * $v-unit-size; + + .v-slot-about-content { + overflow: auto; + } + + .about-content { + width: 100%; + max-width: 100%; + height: auto; + vertical-align: top; + padding: 0; + background: transparent; + @include box-shadow(none); + } + } + } +} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/dashboard.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/dashboard.scss new file mode 100644 index 00000000000..f768c7ecc1c --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/dashboard.scss @@ -0,0 +1,32 @@ + +@mixin sormas-dashboard-view { + + .dashboard-key { + text-align: center; + outline: none; + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; + padding: 7px; + color: #191919; + font-weight: 500; + + border-radius: 4px; + border: 1px solid #c5c5c5; + border-top-color: #c5c5c5; + border-bottom-color: #bcbcbc; + background-color: #fafafa; + } + + /* "hack" to hide map tiles in google maps component */ + .googlemap.no-tiles img { + opacity: 0.2; + filter: alpha(opacity=20); /* For IE8 and earlier */ + } + .googlemap.no-tiles .gmnoprint img { + opacity: inherit; + filter: inherit; + } + .googlemap gm-style { + background-color: white; + } +} \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/login.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/login.scss index e2eb6a8e81c..f650cda18ff 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/login.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/login.scss @@ -5,8 +5,8 @@ $login-background-color: $editor-background-color !default; $login-background-image: "img/login-bg.png" !default; -@mixin login { - // login screen - for small screens, see below +@mixin sormas-login-view { + .login-screen { background: #EFF5FC; @@ -58,4 +58,65 @@ $login-background-image: "img/login-bg.png" !default; } } } + + // No top menu on the login view, login screen layout changes + .v-ui[width-range~="0-800px"] { + + .login-screen { + height: auto; + min-height: 100%; + + .login-information { + position: static; + width: 100%; + height: auto; + + .v-label { + text-align: center; + + h1 { + margin-top: .4em; + } + + } + } + + .centering-layout { + display: block; + width: 100%; + height: auto; + padding-left: 0; + padding-top: 60px; + padding-bottom: 60px; + } + + .login-form { + width: 400px; + max-width: 100%; + + table { + width: 100%; + } + + .v-textfield { + width: 100% !important; + } + + .v-formlayout-captioncell, + .v-formlayout-contentcell, + .v-formlayout-errorcell { + display: block; + text-align: center; + padding-top: 0; + } + .buttons { + width: 100%; + .v-button { + display: block; + text-align: center; + } + } + } + } + } } \ No newline at end of file diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/view.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/view.scss new file mode 100644 index 00000000000..70a041f8c89 --- /dev/null +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/views/view.scss @@ -0,0 +1,12 @@ + +@mixin sormas-view { + + .view-header { + border-bottom: $v-border; + border-bottom-width: 3px; + + .h1-sub { + margin-bottom: 8px; + } + } +} \ No newline at end of file From fa10750fbdc6640be63811d49e1bd5766f23f47c Mon Sep 17 00:00:00 2001 From: Martin Wahnschaffe Date: Wed, 18 Oct 2017 17:09:39 +0200 Subject: [PATCH 24/54] #356 logo fix --- .../main/java/de/symeda/sormas/ui/Menu.java | 1 - .../VAADIN/themes/sormas/components/menu.scss | 92 ++++++++++--------- .../webapp/VAADIN/themes/sormas/styles.css | 22 +++-- 3 files changed, 65 insertions(+), 50 deletions(-) diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java index 3550a60bc0b..1fe1974bd28 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/Menu.java @@ -54,7 +54,6 @@ public Menu(Navigator navigator) { Label title = new Label("SORMAS"); title.setSizeUndefined(); Image image = new Image(null, new ThemeResource("img/sormas-logo.png")); - image.setHeight(32, Unit.PIXELS); CssStyles.style(image, ValoTheme.MENU_LOGO, ValoTheme.BUTTON_LINK); image.addClickListener(new com.vaadin.event.MouseEvents.ClickListener() { @Override diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss index 2d245d7167d..1c395278cb4 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/components/menu.scss @@ -7,53 +7,62 @@ $valo-menu-background-color: $s-default-color !default; font-size: 16px; vertical-align: middle; border-right-color: $v-focus-color; - } - .valo-menu-title { - padding: 16px; - background: $v-background-color; - color: $s-default-color; - font-weight: bold; - font-size: 32px; - line-height: 32px; - font-family: 'Source Sans Pro'; - letter-spacing: -1px; - border-bottom: 3px solid $s-warning-color; - } + .valo-menu-title { + padding: 16px; + background: $v-background-color; + color: $s-default-color; + font-weight: bold; + font-size: 32px; + line-height: 32px; + font-family: 'Source Sans Pro'; + letter-spacing: -1px; + border-bottom: 3px solid $s-warning-color; + } + + .valo-menu-logo { + height: 32px !important; + width: auto !important; + background: none; + box-shadow: none; + margin: 0; + } - .valo-menu-item { - color: inherit; - text-shadow: none; - padding: 12px 16px; - line-height: 36px; - - .v-icon { + .valo-menu-item { color: inherit; - font-size: 28px; - min-width: 36px; - } - - &.selected { - background: $v-background-color !important; - color: $v-selection-color !important; - text-shadow: none !important; - + text-shadow: none; + padding: 12px 16px; + line-height: 36px; + .v-icon { - color: #005A9C !important; + color: inherit; + font-size: 28px; + min-width: 36px; } - - &::before { - position: absolute; - top: -12px; - right: 0px; - width: 4px; - height: 74px; - background-color: $v-selection-color; - content: ""; + + &.selected { + background: $v-background-color !important; + color: $v-selection-color !important; + text-shadow: none !important; + + .v-icon { + color: #005A9C !important; + } + + &::before { + position: absolute; + top: -12px; + right: 0px; + width: 4px; + height: 74px; + background-color: $v-selection-color; + content: ""; + } } } } - // Move logout button to the bottom of the menu on large screens + + // Move logout button to the bottom of the menu on large screens .v-ui[width-range~="801px-"] .valo-menu-part { .user-menu { position: fixed; @@ -62,10 +71,9 @@ $valo-menu-background-color: $s-default-color !default; } } - // hide the logo for a more compact header when the menu is narrow + // hide the title for a more compact header when the menu is narrow .v-ui[width-range~="801px-1100px"] .valo-menu-part { - .v-slot-logo, - .v-slot-logo + .v-spacing { + .valo-menu-title .v-label { display: none; } } diff --git a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css index 3ccf373f385..73f1c2ef980 100644 --- a/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css +++ b/sormas-ui/src/main/webapp/VAADIN/themes/sormas/styles.css @@ -13082,7 +13082,7 @@ div.v-layout.v-horizontal.v-widget { border-right-color: #CDD8EC; } -.sormas .valo-menu-title { +.sormas .valo-menu .valo-menu-title { padding: 16px; background: #FEFEFE; color: #6691C4; @@ -13094,30 +13094,38 @@ div.v-layout.v-horizontal.v-widget { border-bottom: 3px solid #E10002; } -.sormas .valo-menu-item { +.sormas .valo-menu .valo-menu-logo { + height: 32px !important; + width: auto !important; + background: none; + box-shadow: none; + margin: 0; +} + +.sormas .valo-menu .valo-menu-item { color: inherit; text-shadow: none; padding: 12px 16px; line-height: 36px; } -.sormas .valo-menu-item .v-icon { +.sormas .valo-menu .valo-menu-item .v-icon { color: inherit; font-size: 28px; min-width: 36px; } -.sormas .valo-menu-item.selected { +.sormas .valo-menu .valo-menu-item.selected { background: #FEFEFE !important; color: #005A9C !important; text-shadow: none !important; } -.sormas .valo-menu-item.selected .v-icon { +.sormas .valo-menu .valo-menu-item.selected .v-icon { color: #005A9C !important; } -.sormas .valo-menu-item.selected::before { +.sormas .valo-menu .valo-menu-item.selected::before { position: absolute; top: -12px; right: 0px; @@ -13133,7 +13141,7 @@ div.v-layout.v-horizontal.v-widget { margin-bottom: 0; } -.sormas .v-ui[width-range~="801px-1100px"] .valo-menu-part .v-slot-logo, .sormas .v-ui[width-range~="801px-1100px"] .valo-menu-part .v-slot-logo + .v-spacing { +.sormas .v-ui[width-range~="801px-1100px"] .valo-menu-part .valo-menu-title .v-label { display: none; } From c5faf62caad1a0cbd4b06da1b9c4ccb8d9cbe93a Mon Sep 17 00:00:00 2001 From: Martin Wahnschaffe Date: Thu, 19 Oct 2017 13:56:57 +0200 Subject: [PATCH 25/54] Bugfixes for #347 and #356 --- .../symeda/sormas/app/backend/symptoms/Symptoms.java | 11 +++++++---- .../main/java/de/symeda/sormas/app/task/TaskForm.java | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/symptoms/Symptoms.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/symptoms/Symptoms.java index 7613cc7366d..f1cd051cbf0 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/symptoms/Symptoms.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/symptoms/Symptoms.java @@ -36,11 +36,14 @@ public class Symptoms extends AbstractDomainObject { @DatabaseField private Boolean symptomatic; - @DatabaseField(foreign = true) - private Location illLocation; - @DatabaseField + @Deprecated + @DatabaseField(columnName = "illLocation_id") + private Long illLocationId; + @Deprecated + @DatabaseField(dataType = DataType.DATE_LONG) private Date illLocationFrom; - @DatabaseField + @Deprecated + @DatabaseField(dataType = DataType.DATE_LONG) private Date illLocationTo; @Column(columnDefinition = "float8") diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TaskForm.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TaskForm.java index fcdc8065a4f..57570eb75c8 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TaskForm.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/task/TaskForm.java @@ -87,7 +87,7 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, if (possibleStatusChanges.contains(TaskStatus.NOT_EXECUTABLE)) { binding.taskNotExecutableBtn.setVisibility(View.VISIBLE); - binding.taskNotExecutableBtn.setText(TaskStatus.NOT_EXECUTABLE.getChangeString()); + binding.taskNotExecutableBtn.setText(TaskStatus.NOT_EXECUTABLE.toString()); binding.taskNotExecutableBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -118,7 +118,7 @@ public void call() { if (possibleStatusChanges.contains(TaskStatus.DONE)) { binding.taskDoneBtn.setVisibility(View.VISIBLE); - binding.taskDoneBtn.setText(TaskStatus.DONE.getChangeString()); + binding.taskDoneBtn.setText(TaskStatus.DONE.toString()); binding.taskDoneBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { From 88945340494d347cf56d3b339b5807be4838ce09 Mon Sep 17 00:00:00 2001 From: Martin Wahnschaffe Date: Thu, 19 Oct 2017 15:29:43 +0200 Subject: [PATCH 26/54] Bugfix for #171 and failed unit test. Removed not needed nextReportDate from helper method --- .../symeda/sormas/api/utils/DateHelper.java | 52 +++++++------------ .../api/utils/EpiWeekCalculationTest.java | 10 +++- .../sormas/app/backend/caze/CaseDao.java | 11 ++-- .../sormas/app/reports/WeeklyReportForm.java | 7 ++- 4 files changed, 38 insertions(+), 42 deletions(-) diff --git a/sormas-api/src/main/java/de/symeda/sormas/api/utils/DateHelper.java b/sormas-api/src/main/java/de/symeda/sormas/api/utils/DateHelper.java index 4b7a220dee3..249bef178d0 100644 --- a/sormas-api/src/main/java/de/symeda/sormas/api/utils/DateHelper.java +++ b/sormas-api/src/main/java/de/symeda/sormas/api/utils/DateHelper.java @@ -210,6 +210,7 @@ public static Calendar getEpiCalendar() { Calendar calendar = Calendar.getInstance(); calendar.setFirstDayOfWeek(Calendar.MONDAY); calendar.setMinimalDaysInFirstWeek(1); + calendar.clear(); // this is necessary, because in some old java versions there a problems updating the fields based on the date return calendar; } @@ -340,44 +341,31 @@ public static List createWeeksList(int year) { * @param epiWeek The epi week to calculate the dates for * @param weeklyReportDate The date of report of the report for the given epi week, or null if none is available * @param prevWeeklyReportDate The date of report of the report for the week before the given epi week, or null if none is available - * @param nextWeeklyReportDate The date of report of the report for the week after the given epi week, or null if none is available * @return An array of size 2, containing the start date at index 0 and the end date at index 1 */ - public static Date[] calculateEpiWeekReportStartAndEnd(EpiWeek epiWeek, Date weeklyReportDate, Date prevWeeklyReportDate, Date nextWeeklyReportDate) { - Date epiWeekStart = getEpiWeekStart(epiWeek); - Date epiWeekEnd = getEpiWeekEnd(epiWeek); - EpiWeek currentEpiWeek = getEpiWeek(new Date()); - Date[] dates = new Date[2]; - + public static Date[] calculateEpiWeekReportStartAndEnd(EpiWeek epiWeek, Date weeklyReportDate, Date prevWeeklyReportDate) { + + Date[] reportStartAndEnd = new Date[2]; + + // start date: + if (prevWeeklyReportDate != null) { + // .. is the previous report date + reportStartAndEnd[0] = prevWeeklyReportDate; + } else { + // .. or the start of this week + reportStartAndEnd[0] = getEpiWeekStart(epiWeek); + } + + // end date: if (weeklyReportDate != null) { - if (prevWeeklyReportDate != null) { - dates[0] = prevWeeklyReportDate; - dates[1] = weeklyReportDate; - } else { - dates[0] = epiWeekStart; - dates[1] = weeklyReportDate; - } + // .. is the report date + reportStartAndEnd[1] = weeklyReportDate; } else { - if (prevWeeklyReportDate != null) { - if (nextWeeklyReportDate != null) { - dates[0] = prevWeeklyReportDate; - dates[1] = nextWeeklyReportDate; - } else { - dates[0] = prevWeeklyReportDate; - dates[1] = DateHelper.getPreviousEpiWeek(currentEpiWeek).equals(epiWeek) ? new Date() : epiWeekEnd; - } - } else { - if (nextWeeklyReportDate != null) { - dates[0] = epiWeekStart; - dates[1] = nextWeeklyReportDate; - } else { - dates[0] = epiWeekStart; - dates[1] = DateHelper.getPreviousEpiWeek(currentEpiWeek).equals(epiWeek) ? new Date() : epiWeekEnd; - } - } + // .. or the end of this week + reportStartAndEnd[1] = getEpiWeekEnd(epiWeek); } - return dates; + return reportStartAndEnd; } } diff --git a/sormas-api/src/test/java/de/symeda/sormas/api/utils/EpiWeekCalculationTest.java b/sormas-api/src/test/java/de/symeda/sormas/api/utils/EpiWeekCalculationTest.java index 4393841e7ee..262a2f80835 100644 --- a/sormas-api/src/test/java/de/symeda/sormas/api/utils/EpiWeekCalculationTest.java +++ b/sormas-api/src/test/java/de/symeda/sormas/api/utils/EpiWeekCalculationTest.java @@ -25,20 +25,26 @@ public void testCalculateNextEpiWeek() { assertEquals(nextEpiWeek.getWeek(), 1); } + /** + * TODO this test is not stable, because calculateEpiWeekReportStartAndEnd uses the current date for comparisons. + * Add a "now" param to calculateEpiWeekReportStartAndEnd + */ @Test public void testCalculateEpiWeekReportStartAndEnd() { EpiWeek epiWeek = new EpiWeek(2017, 42); Calendar calendar = Calendar.getInstance(); + calendar.clear(); calendar.set(2017, 10, 11); Date weeklyReportDate = calendar.getTime(); + calendar.clear(); calendar.set(2017, 10, 10); Date previousWeeklyReportDate = calendar.getTime(); - Date[] startAndEnd = DateHelper.calculateEpiWeekReportStartAndEnd(epiWeek, weeklyReportDate, previousWeeklyReportDate, null); + Date[] startAndEnd = DateHelper.calculateEpiWeekReportStartAndEnd(epiWeek, weeklyReportDate, previousWeeklyReportDate); assertTrue(startAndEnd[0].equals(previousWeeklyReportDate)); assertFalse(startAndEnd[1].after(weeklyReportDate)); - startAndEnd = DateHelper.calculateEpiWeekReportStartAndEnd(epiWeek, null, previousWeeklyReportDate, null); + startAndEnd = DateHelper.calculateEpiWeekReportStartAndEnd(epiWeek, null, previousWeeklyReportDate); assertTrue(startAndEnd[0].equals(previousWeeklyReportDate)); assertTrue(startAndEnd[1].equals(DateHelper.getEpiWeekEnd(epiWeek))); } diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/caze/CaseDao.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/caze/CaseDao.java index 59239973cb4..11cb6197163 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/caze/CaseDao.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/caze/CaseDao.java @@ -224,19 +224,18 @@ public int getNumberOfCasesForEpiWeekAndDisease(EpiWeek epiWeek, Disease disease WeeklyReport epiWeekReport = DatabaseHelper.getWeeklyReportDao().queryForEpiWeek(epiWeek, informant); WeeklyReport previousEpiWeekReport = DatabaseHelper.getWeeklyReportDao().queryForEpiWeek(DateHelper.getPreviousEpiWeek(epiWeek), informant); - WeeklyReport nextEpiWeekReport = DatabaseHelper.getWeeklyReportDao().queryForEpiWeek(DateHelper.getNextEpiWeek(epiWeek), informant); - Date[] dates = DateHelper.calculateEpiWeekReportStartAndEnd(epiWeek, epiWeekReport != null ? epiWeekReport.getReportDateTime() : null, - previousEpiWeekReport != null ? previousEpiWeekReport.getReportDateTime() : null, - nextEpiWeekReport != null ? nextEpiWeekReport.getReportDateTime() : null); + Date[] reportStartAndEnd = DateHelper.calculateEpiWeekReportStartAndEnd(epiWeek, + epiWeekReport != null ? epiWeekReport.getReportDateTime() : null, + previousEpiWeekReport != null ? previousEpiWeekReport.getReportDateTime() : null); try { QueryBuilder builder = queryBuilder(); Where where = builder.where(); where.and( where.eq(Case.REPORTING_USER + "_id", informant), - where.ge(Case.REPORT_DATE, dates[0]), - where.le(Case.REPORT_DATE, dates[1]) + where.ge(Case.REPORT_DATE, reportStartAndEnd[0]), + where.le(Case.REPORT_DATE, reportStartAndEnd[1]) ); if (disease != null) { diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/reports/WeeklyReportForm.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/reports/WeeklyReportForm.java index 9d0df97fd3e..aed30389fb8 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/reports/WeeklyReportForm.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/reports/WeeklyReportForm.java @@ -183,7 +183,8 @@ public void onNothingSelected(AdapterView adapterView) { binding.weeklyReportShowLastWeek.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - EpiWeek epiWeek = DateHelper.getPreviousEpiWeek(new Date()); + Date now = new Date(); + EpiWeek epiWeek = DateHelper.getPreviousEpiWeek(now); binding.weeklyReportYear.setValue(epiWeek.getYear()); binding.weeklyReportWeek.setValue(epiWeek.getWeek()); } @@ -191,7 +192,9 @@ public void onClick(View view) { binding.weeklyReportShowThisWeek.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - EpiWeek epiWeek = DateHelper.getEpiWeek(new Date()); + Calendar epiCalendar = DateHelper.getEpiCalendar(); + Date now = new Date(); + EpiWeek epiWeek = DateHelper.getEpiWeek(now); binding.weeklyReportYear.setValue(epiWeek.getYear()); binding.weeklyReportWeek.setValue(epiWeek.getWeek()); } From c1c7fe063d49490c651fed4e583ece272902d086 Mon Sep 17 00:00:00 2001 From: Martin Wahnschaffe Date: Thu, 19 Oct 2017 17:18:25 +0200 Subject: [PATCH 27/54] Allow officers to pick current GPS for an address #184 App: add a Label "GPS: 8.423, 9.4223" or "No GPS coordinates picked" that shows below the current fields in the LocationForm App: add a "Pick GPS" button right next to it. Will set the lat/lon of the bound Location and update the label UI: add editable lat and lon fields to LocationForm. --- .../main/resources/fieldCaptions.properties | 1 + .../sormas/app/backend/location/Location.java | 22 +++++-- .../sormas/app/caze/SymptomsEditForm.java | 5 -- .../sormas/app/component/LabelField.java | 31 +++++++++- ...Dialog.java => LocationDialogBuilder.java} | 59 ++++++++++++++++--- .../sormas/app/epidata/EpiDataBurialForm.java | 11 +--- .../app/epidata/EpiDataGatheringForm.java | 13 +--- .../sormas/app/event/EventEditDataForm.java | 4 +- .../sormas/app/person/PersonEditForm.java | 4 +- .../res/layout/location_fragment_layout.xml | 52 ++++++---------- .../app/src/main/res/values/strings.xml | 2 + .../sormas/ui/location/LocationEditForm.java | 14 +++-- 12 files changed, 137 insertions(+), 81 deletions(-) rename sormas-app/app/src/main/java/de/symeda/sormas/app/component/{LocationDialog.java => LocationDialogBuilder.java} (72%) diff --git a/sormas-api/src/main/resources/fieldCaptions.properties b/sormas-api/src/main/resources/fieldCaptions.properties index 6cf1098e30b..131a487f515 100644 --- a/sormas-api/src/main/resources/fieldCaptions.properties +++ b/sormas-api/src/main/resources/fieldCaptions.properties @@ -326,6 +326,7 @@ Location.city=City Location.region=State Location.district=LGA Location.community=Ward +Location.latLon=GPS lat, lon Location.latitude=GPS latitude Location.longitude=GPS longitude diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/location/Location.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/location/Location.java index fa81ba87865..b41e135b383 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/location/Location.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/backend/location/Location.java @@ -105,8 +105,8 @@ public void setLongitude(Float longitude) { this.longitude = longitude; } - @Override - public String toString() { + public String getCompleteString() { + StringBuilder sb = new StringBuilder(); if (getAddress() != null && !getAddress().isEmpty()) { sb.append(getAddress()); @@ -134,13 +134,27 @@ public String toString() { } sb.append(getDetails()); } - if (sb.length() == 0) { - sb.append(super.toString()); + + if (getLatitude() != null && getLongitude() != null) { + if (sb.length() > 0) { + sb.append(" "); + } + sb.append("(").append(getLatitude()).append(", ").append(getLongitude()).append(")"); } return sb.toString(); } + @Override + public String toString() { + + String result = getCompleteString(); + if (!result.isEmpty()) { + return result; + } + return super.toString(); + } + public boolean isEmptyLocation() { return address == null && details == null && city == null && region == null && district == null && community == null; diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/SymptomsEditForm.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/SymptomsEditForm.java index 29607a97427..d582a1f90ff 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/SymptomsEditForm.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/caze/SymptomsEditForm.java @@ -3,7 +3,6 @@ import android.databinding.DataBindingUtil; import android.os.Bundle; import android.support.annotation.Nullable; -import android.text.format.DateUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -20,19 +19,15 @@ import de.symeda.sormas.api.symptoms.SymptomsDto; import de.symeda.sormas.api.symptoms.SymptomsHelper; import de.symeda.sormas.api.symptoms.TemperatureSource; -import de.symeda.sormas.api.utils.Diseases; import de.symeda.sormas.app.R; import de.symeda.sormas.app.backend.caze.Case; import de.symeda.sormas.app.backend.common.AbstractDomainObject; import de.symeda.sormas.app.backend.common.DatabaseHelper; -import de.symeda.sormas.app.backend.location.Location; import de.symeda.sormas.app.backend.symptoms.Symptoms; import de.symeda.sormas.app.component.FieldHelper; -import de.symeda.sormas.app.component.LocationDialog; import de.symeda.sormas.app.component.PropertyField; import de.symeda.sormas.app.component.SymptomStateField; import de.symeda.sormas.app.databinding.CaseSymptomsFragmentLayoutBinding; -import de.symeda.sormas.app.util.Consumer; import de.symeda.sormas.app.util.DataUtils; import de.symeda.sormas.app.util.FormTab; import de.symeda.sormas.app.util.Item; diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/component/LabelField.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/component/LabelField.java index d2452a1dcdc..aaee080af50 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/component/LabelField.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/component/LabelField.java @@ -233,12 +233,18 @@ public static void setSampleTestResult(LabelField labelField, String sampleUuid) @BindingAdapter("location") public static void setLocationForLabel(LabelField labelField, Location location) { - if(location == null || location.toString().isEmpty()) { + if (location == null ) { labelField.setValue(labelField.getContext().getString(R.string.label_enter_location)); labelField.setTextColor(Color.LTGRAY); } else { - labelField.setValue(location.toString()); - labelField.setTextColor(Color.BLACK); + String locationString = location.getCompleteString(); + if (!locationString.isEmpty()) { + labelField.setValue(locationString); + labelField.setTextColor(Color.BLACK); + } else { + labelField.setValue(labelField.getContext().getString(R.string.label_enter_location)); + labelField.setTextColor(Color.LTGRAY); + } } } @@ -262,6 +268,25 @@ public static void setFacilityForLabel(LabelField labelField, Facility facility) labelField.setValue(facility!=null?facility.toString():""); } + @BindingAdapter("number") + public static void setNumberForLabel(LabelField labelField, Number number) { + labelField.setValue(number!=null?number.toString():""); + } + + @BindingAdapter("locationLatLon") + public static void setLocationLatLonForLabel(LabelField labelField, Location location) { + setLatLonForLabel(labelField, location != null ? location.getLatitude() : null, location != null ? location.getLongitude() : null); + } + + public static void setLatLonForLabel(LabelField labelField, Float latitude, Float longitude) { + if (latitude == null || longitude == null) { + labelField.setValue(labelField.getContext().getString(R.string.label_pick_gps)); + } + else { + labelField.setValue(latitude + ", " + longitude); + } + } + @Override protected void requestFocusForContentView(View nextView) { ((LabelField) nextView).textContent.requestFocus(); diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/component/LocationDialog.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/component/LocationDialogBuilder.java similarity index 72% rename from sormas-app/app/src/main/java/de/symeda/sormas/app/component/LocationDialog.java rename to sormas-app/app/src/main/java/de/symeda/sormas/app/component/LocationDialogBuilder.java index 1bf12d386ec..59148481baf 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/component/LocationDialog.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/component/LocationDialogBuilder.java @@ -1,20 +1,22 @@ package de.symeda.sormas.app.component; import android.content.DialogInterface; -import android.graphics.Color; +import android.graphics.Rect; import android.support.v4.app.FragmentActivity; import android.support.v7.app.AlertDialog; import android.view.View; +import android.view.Window; import android.widget.AdapterView; +import android.widget.Button; import android.widget.ImageButton; +import android.widget.TextView; import java.util.ArrayList; +import java.util.Date; import java.util.List; import de.symeda.sormas.app.R; -import de.symeda.sormas.app.backend.common.DaoException; import de.symeda.sormas.app.backend.common.DatabaseHelper; -import de.symeda.sormas.app.backend.facility.Facility; import de.symeda.sormas.app.backend.location.Location; import de.symeda.sormas.app.backend.region.Community; import de.symeda.sormas.app.backend.region.District; @@ -22,14 +24,29 @@ import de.symeda.sormas.app.util.Callback; import de.symeda.sormas.app.util.DataUtils; import de.symeda.sormas.app.util.Consumer; +import de.symeda.sormas.app.util.LocationService; -public class LocationDialog extends AlertDialog.Builder { +public class LocationDialogBuilder extends AlertDialog.Builder { - public LocationDialog(FragmentActivity activity, final Location location, final Consumer positiveCallback , final Callback negativeCallback) { + private final View dialogView; + + private Float latitude; + private Float longitude; + + public LocationDialogBuilder(FragmentActivity activity, final Location location, final Consumer positiveCallback , final Callback negativeCallback) { super(activity); this.setTitle(activity.getResources().getString(R.string.headline_location)); - final View dialogView = activity.getLayoutInflater().inflate(R.layout.location_fragment_layout, null); + + latitude = location.getLatitude(); + longitude = location.getLongitude(); + + dialogView = activity.getLayoutInflater().inflate(R.layout.location_fragment_layout, null); this.setView(dialogView); + // retrieve display dimensions + Rect displayRectangle = new Rect(); + Window window = activity.getWindow(); + window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle); + dialogView.setMinimumWidth((int)(0.9f * displayRectangle.width())); final List emptyList = new ArrayList<>(); final List districtsByRegion = DataUtils.toItems(location.getRegion() != null ? DatabaseHelper.getDistrictDao().getByRegion(location.getRegion()) : DataUtils.toItems(emptyList), true); @@ -96,6 +113,25 @@ public void onNothingSelected(AdapterView parent) { ((TextField) dialogView.findViewById(R.id.location_city)).setValue(location.getCity()); } + Button gpsButton = (Button)dialogView.findViewById(R.id.form_loc_btn_gps); + gpsButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View arg0) { + + LocationService locationService = LocationService.getLocationService(DatabaseHelper.getContext()); + android.location.Location gpsLocation = locationService.getLocation(); + if (gpsLocation != null) { + // Use the geo-coordinates of the current location object if it's not older than 15 minutes + if (new Date().getTime() <= gpsLocation.getTime() + (1000 * 60 * 15)) { + latitude = (float) gpsLocation.getLatitude(); + longitude = (float) gpsLocation.getLongitude(); + } + } + updateGpsTextView(); + } + }); + + this.setPositiveButton(activity.getResources().getString(R.string.action_done), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { @@ -110,6 +146,9 @@ public void onClick(DialogInterface dialog, int id) { location.setDistrict((District)((SpinnerField) dialogView.findViewById(R.id.location_district)).getValue()); location.setCommunity((Community)((SpinnerField) dialogView.findViewById(R.id.location_community)).getValue()); + location.setLatitude(latitude); + location.setLongitude(longitude); + if(positiveCallback!=null) { positiveCallback.accept(location); } @@ -123,7 +162,11 @@ public void onClick(DialogInterface dialog, int id) { } } }); + } + private void updateGpsTextView() { + LabelField gpsLabelField = (LabelField)dialogView.findViewById(R.id.location_latLon); + LabelField.setLatLonForLabel(gpsLabelField, latitude, longitude); } public static void addLocationField(final FragmentActivity activity, final Location location, final LabelField locationText, ImageButton btn, final Consumer positiveCallback) { @@ -140,7 +183,7 @@ public void accept(Object parameter) { btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { - final LocationDialog dialogBuilder = new LocationDialog(activity, location, wrappedPositiveCallback, null); + final LocationDialogBuilder dialogBuilder = new LocationDialogBuilder(activity, location, wrappedPositiveCallback, null); AlertDialog newPersonDialog = dialogBuilder.create(); newPersonDialog.show(); } @@ -149,7 +192,7 @@ public void onClick(View arg0) { locationText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { - final LocationDialog dialogBuilder = new LocationDialog(activity, location, wrappedPositiveCallback, null); + final LocationDialogBuilder dialogBuilder = new LocationDialogBuilder(activity, location, wrappedPositiveCallback, null); AlertDialog newPersonDialog = dialogBuilder.create(); newPersonDialog.show(); } diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/epidata/EpiDataBurialForm.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/epidata/EpiDataBurialForm.java index 00849348c85..a2da647cc71 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/epidata/EpiDataBurialForm.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/epidata/EpiDataBurialForm.java @@ -6,22 +6,15 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.Toast; - -import com.google.android.gms.analytics.Tracker; import de.symeda.sormas.app.R; -import de.symeda.sormas.app.SormasApplication; import de.symeda.sormas.app.backend.common.AbstractDomainObject; -import de.symeda.sormas.app.backend.config.ConfigProvider; import de.symeda.sormas.app.backend.epidata.EpiDataBurial; import de.symeda.sormas.app.backend.location.Location; import de.symeda.sormas.app.component.AbstractFormDialogFragment; -import de.symeda.sormas.app.component.LocationDialog; +import de.symeda.sormas.app.component.LocationDialogBuilder; import de.symeda.sormas.app.databinding.EpidataBurialEditFragmentLayoutBinding; import de.symeda.sormas.app.util.Consumer; -import de.symeda.sormas.app.util.DataUtils; -import de.symeda.sormas.app.util.ErrorReportingHelper; /** * Created by Mate Strysewske on 09.03.2017. @@ -47,7 +40,7 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { binding.burialTo.initialize(this); EpiDataBurial burial = binding.getEpiDataBurial(); - LocationDialog.addLocationField(getActivity(), burial.getBurialAddress(), binding.burialAddress, binding.formCpBtnAddress, new Consumer() { + LocationDialogBuilder.addLocationField(getActivity(), burial.getBurialAddress(), binding.burialAddress, binding.formCpBtnAddress, new Consumer() { @Override public void accept(Object parameter) { if (parameter instanceof Location) { diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/epidata/EpiDataGatheringForm.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/epidata/EpiDataGatheringForm.java index f46ba97d803..3e8ef9f3fc6 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/epidata/EpiDataGatheringForm.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/epidata/EpiDataGatheringForm.java @@ -6,24 +6,15 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.Toast; - -import com.google.android.gms.analytics.Tracker; import de.symeda.sormas.app.R; -import de.symeda.sormas.app.SormasApplication; import de.symeda.sormas.app.backend.common.AbstractDomainObject; -import de.symeda.sormas.app.backend.config.ConfigProvider; -import de.symeda.sormas.app.backend.epidata.EpiDataBurial; import de.symeda.sormas.app.backend.epidata.EpiDataGathering; import de.symeda.sormas.app.backend.location.Location; import de.symeda.sormas.app.component.AbstractFormDialogFragment; -import de.symeda.sormas.app.component.LocationDialog; -import de.symeda.sormas.app.databinding.EpidataBurialEditFragmentLayoutBinding; +import de.symeda.sormas.app.component.LocationDialogBuilder; import de.symeda.sormas.app.databinding.EpidataGatheringEditFragmentLayoutBinding; import de.symeda.sormas.app.util.Consumer; -import de.symeda.sormas.app.util.DataUtils; -import de.symeda.sormas.app.util.ErrorReportingHelper; /** * Created by Mate Strysewske on 09.03.2017. @@ -48,7 +39,7 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { binding.gatherDate.initialize(this); EpiDataGathering gathering = binding.getEpiDataGathering(); - LocationDialog.addLocationField(getActivity(), gathering.getGatheringAddress(), binding.gatherAddress, binding.formCpBtnAddress, new Consumer() { + LocationDialogBuilder.addLocationField(getActivity(), gathering.getGatheringAddress(), binding.gatherAddress, binding.formCpBtnAddress, new Consumer() { @Override public void accept(Object parameter) { if (parameter instanceof Location) { diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/event/EventEditDataForm.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/event/EventEditDataForm.java index 645e8e63aa0..7464775fba4 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/event/EventEditDataForm.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/event/EventEditDataForm.java @@ -17,7 +17,7 @@ import de.symeda.sormas.app.backend.event.EventDao; import de.symeda.sormas.app.backend.location.Location; import de.symeda.sormas.app.component.FieldHelper; -import de.symeda.sormas.app.component.LocationDialog; +import de.symeda.sormas.app.component.LocationDialogBuilder; import de.symeda.sormas.app.component.PropertyField; import de.symeda.sormas.app.databinding.EventDataFragmentLayoutBinding; import de.symeda.sormas.app.util.FormTab; @@ -63,7 +63,7 @@ public void onChange(PropertyField field) { FieldHelper.initSpinnerField(binding.eventDisease, Disease.class); - LocationDialog.addLocationField(getActivity(), event.getEventLocation(), binding.eventEventLocation, binding.eventEventLocationBtn, new Consumer() { + LocationDialogBuilder.addLocationField(getActivity(), event.getEventLocation(), binding.eventEventLocation, binding.eventEventLocationBtn, new Consumer() { @Override public void accept(Object parameter) { if(parameter instanceof Location) { diff --git a/sormas-app/app/src/main/java/de/symeda/sormas/app/person/PersonEditForm.java b/sormas-app/app/src/main/java/de/symeda/sormas/app/person/PersonEditForm.java index b8085ba1e3b..b176e0cf399 100644 --- a/sormas-app/app/src/main/java/de/symeda/sormas/app/person/PersonEditForm.java +++ b/sormas-app/app/src/main/java/de/symeda/sormas/app/person/PersonEditForm.java @@ -40,7 +40,7 @@ import de.symeda.sormas.app.backend.region.District; import de.symeda.sormas.app.backend.region.Region; import de.symeda.sormas.app.component.FieldHelper; -import de.symeda.sormas.app.component.LocationDialog; +import de.symeda.sormas.app.component.LocationDialogBuilder; import de.symeda.sormas.app.component.PropertyField; import de.symeda.sormas.app.component.SpinnerField; import de.symeda.sormas.app.component.TextField; @@ -140,7 +140,7 @@ public void onNothingSelected(AdapterView parent) { updateApproximateAgeField(); // ================ Address ================ - LocationDialog.addLocationField(getActivity(), person.getAddress(), binding.personAddress, binding.formCpBtnAddress, new Consumer() { + LocationDialogBuilder.addLocationField(getActivity(), person.getAddress(), binding.personAddress, binding.formCpBtnAddress, new Consumer() { @Override public void accept(Object parameter) { if(parameter instanceof Location) { diff --git a/sormas-app/app/src/main/res/layout/location_fragment_layout.xml b/sormas-app/app/src/main/res/layout/location_fragment_layout.xml index c63cbf6405d..437ae030803 100644 --- a/sormas-app/app/src/main/res/layout/location_fragment_layout.xml +++ b/sormas-app/app/src/main/res/layout/location_fragment_layout.xml @@ -1,6 +1,7 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + android:descendantFocusability="beforeDescendants"> @@ -86,45 +87,30 @@ - \ No newline at end of file diff --git a/sormas-app/app/src/main/res/values/strings.xml b/sormas-app/app/src/main/res/values/strings.xml index 123bb4448b9..ba86802269d 100644 --- a/sormas-app/app/src/main/res/values/strings.xml +++ b/sormas-app/app/src/main/res/values/strings.xml @@ -40,6 +40,7 @@ Create a new case for this contact Send Report Problem + Pick GPS coordinates Options Login Submit @@ -159,6 +160,7 @@ Person ill / Body touched Body not touched + No GPS coordinates picked Shipment status Not shipped diff --git a/sormas-ui/src/main/java/de/symeda/sormas/ui/location/LocationEditForm.java b/sormas-ui/src/main/java/de/symeda/sormas/ui/location/LocationEditForm.java index 8f182003591..26fa6bdbcfb 100644 --- a/sormas-ui/src/main/java/de/symeda/sormas/ui/location/LocationEditForm.java +++ b/sormas-ui/src/main/java/de/symeda/sormas/ui/location/LocationEditForm.java @@ -16,8 +16,14 @@ public class LocationEditForm extends AbstractEditForm { private static final String HTML_LAYOUT = LayoutUtil.div( - LayoutUtil.fluidRowLocs(LocationDto.ADDRESS, LocationDto.DETAILS), - LayoutUtil.fluidRowLocs(LocationDto.REGION, LocationDto.DISTRICT, LocationDto.COMMUNITY, LocationDto.CITY) + LayoutUtil.fluidRow( + LayoutUtil.loc(LocationDto.ADDRESS), + LayoutUtil.div( + LayoutUtil.fluidRowLocs(LocationDto.REGION, LocationDto.DISTRICT), + LayoutUtil.fluidRowLocs(LocationDto.COMMUNITY, LocationDto.CITY))), + LayoutUtil.fluidRow( + LayoutUtil.loc(LocationDto.DETAILS), + LayoutUtil.fluidRowLocs(LocationDto.LATITUDE, LocationDto.LONGITUDE)) ); public LocationEditForm() { @@ -33,8 +39,8 @@ protected void addFields() { addField(LocationDto.ADDRESS, TextArea.class).setRows(2); addField(LocationDto.DETAILS, TextField.class); addField(LocationDto.CITY, TextField.class); -// addField(LocationDto.LATITUDE, TextField.class); -// addField(LocationDto.LONGITUDE, TextField.class); + addField(LocationDto.LATITUDE, TextField.class); + addField(LocationDto.LONGITUDE, TextField.class); ComboBox region = addField(LocationDto.REGION, ComboBox.class); ComboBox district = addField(LocationDto.DISTRICT, ComboBox.class); From 20bdbe97de5163f1f53f85ed1f14987b6b8a4b41 Mon Sep 17 00:00:00 2001 From: Martin Wahnschaffe Date: Thu, 19 Oct 2017 17:45:09 +0200 Subject: [PATCH 28/54] Update to Android 24 (7.0) Allow app users to show the currently entered password in the login form #343 - done using TextInputLayout of the design suppport library --- sormas-app/app/build.gradle | 10 ++--- .../res/layout/user_login_activity_layout.xml | 44 ++++++++++--------- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/sormas-app/app/build.gradle b/sormas-app/app/build.gradle index c7bd2fb4935..1338da38131 100644 --- a/sormas-app/app/build.gradle +++ b/sormas-app/app/build.gradle @@ -11,12 +11,12 @@ android { // storePassword 'SunkSesa' // } // } - compileSdkVersion 23 + compileSdkVersion 24 buildToolsVersion '25.0.3' defaultConfig { applicationId "de.symeda.sormas.app" minSdkVersion 19 - targetSdkVersion 23 + targetSdkVersion 24 versionCode buildVersionCode() versionName "$sormasVersion" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" @@ -59,8 +59,8 @@ configurations.all { dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') // https://mvnrepository.com/artifact/com.googlecode/openbeans - compile 'com.android.support:appcompat-v7:23.3.0' - compile 'com.android.support:design:23.3.0' + compile 'com.android.support:appcompat-v7:24.2.0' + compile 'com.android.support:design:24.2.0' compile 'com.squareup.retrofit2:retrofit:2.3.0' compile 'com.squareup.retrofit2:converter-gson:2.3.0' compile 'com.j256.ormlite:ormlite-core:4.48' @@ -73,7 +73,7 @@ dependencies { testCompile 'org.hamcrest:hamcrest-library:1.1' testCompile 'org.robolectric:robolectric:3.0' testCompile 'org.mockito:mockito-core:1.10.19' - androidTestCompile 'com.android.support:support-annotations:23.3.0' + androidTestCompile 'com.android.support:support-annotations:24.2.0' androidTestCompile 'com.android.support.test:runner:0.5' androidTestCompile 'com.android.support.test:rules:0.5' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' diff --git a/sormas-app/app/src/main/res/layout/user_login_activity_layout.xml b/sormas-app/app/src/main/res/layout/user_login_activity_layout.xml index 0f9d5b76372..b7c4ac013d0 100644 --- a/sormas-app/app/src/main/res/layout/user_login_activity_layout.xml +++ b/sormas-app/app/src/main/res/layout/user_login_activity_layout.xml @@ -2,6 +2,7 @@ - - + android:layout_marginBottom="12dp" + > + + - - + android:layout_marginBottom="24dp" + app:passwordToggleEnabled="true" + > + +