exemple-mvc-cxf
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/58589f74 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/58589f74 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/58589f74 Branch: refs/heads/master Commit: 58589f7459f4b321b3302bd702f0ca3cc7ab0689 Parents: c1f9d19 Author: Daniel Dias <[email protected]> Authored: Wed Dec 5 11:17:30 2018 -0200 Committer: Daniel Dias <[email protected]> Committed: Thu Dec 6 19:23:27 2018 -0200 ---------------------------------------------------------------------- examples/mvc-cxf/README.md | 23 + examples/mvc-cxf/pom.xml | 135 + .../superbiz/application/MVCApplication.java | 7 + .../org/superbiz/controller/HomeController.java | 15 + .../superbiz/controller/PersonController.java | 144 + .../main/java/org/superbiz/model/Address.java | 57 + .../main/java/org/superbiz/model/Errors.java | 34 + .../main/java/org/superbiz/model/Messages.java | 23 + .../main/java/org/superbiz/model/Person.java | 109 + .../superbiz/persistence/PersonProducer.java | 25 + .../superbiz/persistence/PersonRepository.java | 13 + .../src/main/resources/META-INF/beans.xml | 7 + .../src/main/resources/META-INF/persistence.xml | 22 + .../src/main/webapp/WEB-INF/views/change.jsp | 112 + .../src/main/webapp/WEB-INF/views/home.jsp | 20 + .../src/main/webapp/WEB-INF/views/insert.jsp | 109 + .../src/main/webapp/WEB-INF/views/list.jsp | 72 + examples/mvc-cxf/src/main/webapp/index.jsp | 11 + .../bootstrap/css/bootstrap-datepicker.css | 471 ++ .../resources/bootstrap/css/bootstrap-theme.css | 587 ++ .../bootstrap/css/bootstrap-theme.css.map | 1 + .../bootstrap/css/bootstrap-theme.min.css | 6 + .../bootstrap/css/bootstrap-theme.min.css.map | 1 + .../resources/bootstrap/css/bootstrap.css | 6757 ++++++++++++++++++ .../resources/bootstrap/css/bootstrap.css.map | 1 + .../resources/bootstrap/css/bootstrap.min.css | 6 + .../bootstrap/css/bootstrap.min.css.map | 1 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes .../bootstrap/js/bootstrap-datepicker.js | 2096 ++++++ .../js/bootstrap-datepicker.pt-BR.min.js | 1 + .../webapp/resources/bootstrap/js/bootstrap.js | 2377 ++++++ .../resources/bootstrap/js/bootstrap.min.js | 7 + .../webapp/resources/bootstrap/js/jquery.min.js | 4 + .../main/webapp/resources/bootstrap/js/npm.js | 13 + .../src/main/webapp/resources/images/tomee.png | Bin 0 -> 6217 bytes .../src/main/webapp/templates/footer.jsp | 33 + .../mvc-cxf/src/main/webapp/templates/menu.jsp | 36 + examples/pom.xml | 1 + 42 files changed, 13625 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/README.md ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/README.md b/examples/mvc-cxf/README.md new file mode 100644 index 0000000..0d09b4d --- /dev/null +++ b/examples/mvc-cxf/README.md @@ -0,0 +1,23 @@ +index-group=Misc +type=page +status=published +title=MVC-CXF +~~~~~~ + + +Simple example of using [JSR-371](http://mvc-spec.org) together with Deltaspike-Data to do CRUD operations. + +<h2>Steps to run the example</h2> + +Build and start the demo: + + mvn clean package + +Open: + + http://localhost:8080/mvc-cxf + +<h2>Intro of Eclipse Krazo</h2> + +[Eclipse Krazo](https://projects.eclipse.org/proposals/eclipse-krazo) is an implementation of action-based MVC specifiec by MVC 1.0 (JSR-371). +It builds on top of JAX-RS and currently contains support for RESTEasy, Jersey and CXF with a well-defined SPI for other imlementations. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/pom.xml ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/pom.xml b/examples/mvc-cxf/pom.xml new file mode 100644 index 0000000..49001d8 --- /dev/null +++ b/examples/mvc-cxf/pom.xml @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>org.superbiz</groupId> + <artifactId>mvc-cxf</artifactId> + <packaging>war</packaging> + + <name>mvc-cxf</name> + <description>OpenEJB :: Web Examples :: MVC 1.0 - Deltaspike</description> + <version>8.0.0-SNAPSHOT</version> + <url>http://tomee.apache.org</url> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <tomee.version>8.0.0-SNAPSHOT</tomee.version> + <version.deltaspike>1.9.0</version.deltaspike> + <version.ozark>1.0.0-m04</version.ozark> + </properties> + + <build> + <finalName>mvc-cxf</finalName> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.5.1</version> + <configuration> + <source>1.8</source> + <target>1.8</target> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-war-plugin</artifactId> + <version>3.1.0</version> + </plugin> + </plugins> + </build> + + <repositories> + <repository> + <id>apache-m2-snapshot</id> + <name>Apache Snapshot Repository</name> + <url>https://repository.apache.org/content/groups/snapshots</url> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + </repositories> + + <dependencies> + <dependency> + <groupId>org.apache.tomee</groupId> + <artifactId>javaee-api</artifactId> + <version>8.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.deltaspike.modules</groupId> + <artifactId>deltaspike-data-module-api</artifactId> + <version>${version.deltaspike}</version> + </dependency> + <dependency> + <groupId>org.apache.deltaspike.modules</groupId> + <artifactId>deltaspike-data-module-impl</artifactId> + <version>${version.deltaspike}</version> + </dependency> + <dependency> + <groupId>org.apache.deltaspike.cdictrl</groupId> + <artifactId>deltaspike-cdictrl-api</artifactId> + <version>${version.deltaspike}</version> + </dependency> + + <!-- MVC 1.0(JSR 371) --> + <dependency> + <groupId>org.mvc-spec.ozark</groupId> + <artifactId>ozark-core</artifactId> + <version>${version.ozark}</version> + </dependency> + <dependency> + <groupId>org.mvc-spec.ozark</groupId> + <artifactId>ozark-cxf</artifactId> + <version>${version.ozark}</version> + </dependency> + + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>jstl</artifactId> + <version>1.2</version> + </dependency> + + <dependency> + <groupId>org.eclipse.persistence</groupId> + <artifactId>eclipselink</artifactId> + <version>2.6.3</version> + </dependency> + </dependencies> + + <!-- + This section allows you to configure where to publish libraries for sharing. + It is not required and may be deleted. For more information see: + http://maven.apache.org/plugins/maven-deploy-plugin/ + --> + <distributionManagement> + <repository> + <id>localhost</id> + <url>file://${basedir}/target/repo/</url> + </repository> + <snapshotRepository> + <id>localhost</id> + <url>file://${basedir}/target/snapshot-repo/</url> + </snapshotRepository> + </distributionManagement> + +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/java/org/superbiz/application/MVCApplication.java ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/java/org/superbiz/application/MVCApplication.java b/examples/mvc-cxf/src/main/java/org/superbiz/application/MVCApplication.java new file mode 100644 index 0000000..1639854 --- /dev/null +++ b/examples/mvc-cxf/src/main/java/org/superbiz/application/MVCApplication.java @@ -0,0 +1,7 @@ +package org.superbiz.application; + +import javax.ws.rs.ApplicationPath; +import javax.ws.rs.core.Application; + +@ApplicationPath("app") +public class MVCApplication extends Application { } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/java/org/superbiz/controller/HomeController.java ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/java/org/superbiz/controller/HomeController.java b/examples/mvc-cxf/src/main/java/org/superbiz/controller/HomeController.java new file mode 100644 index 0000000..e8a96be --- /dev/null +++ b/examples/mvc-cxf/src/main/java/org/superbiz/controller/HomeController.java @@ -0,0 +1,15 @@ +package org.superbiz.controller; + +import javax.mvc.Controller; +import javax.mvc.View; +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +@Controller +@Path("home") +public class HomeController { + + @GET + @View("home.jsp") + public void homePage() {} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/java/org/superbiz/controller/PersonController.java ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/java/org/superbiz/controller/PersonController.java b/examples/mvc-cxf/src/main/java/org/superbiz/controller/PersonController.java new file mode 100644 index 0000000..0f8ff5a --- /dev/null +++ b/examples/mvc-cxf/src/main/java/org/superbiz/controller/PersonController.java @@ -0,0 +1,144 @@ +package org.superbiz.controller; + +import static java.util.stream.Collectors.toList; +import static javax.ws.rs.core.Response.Status.NOT_FOUND; + +import java.util.Arrays; +import java.util.List; +import java.util.Locale; +import java.util.Optional; +import java.util.function.Supplier; +import java.util.stream.Collectors; + +import javax.inject.Inject; +import javax.mvc.Models; +import javax.mvc.Controller; +import javax.mvc.View; +import javax.mvc.binding.BindingResult; +import javax.mvc.binding.ValidationError; +import javax.validation.Valid; +import javax.validation.executable.ExecutableType; +import javax.validation.executable.ValidateOnExecution; +import javax.ws.rs.BeanParam; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.WebApplicationException; + + +import org.mvcspec.ozark.engine.Viewable; +import org.superbiz.model.Errors; +import org.superbiz.model.Messages; +import org.superbiz.model.Person; +import org.superbiz.persistence.PersonRepository; + + + +@Controller +@Path("mvc") +public class PersonController { + + private static final Supplier<WebApplicationException> NOT_FOUND_EXCEPTION = () -> new WebApplicationException(NOT_FOUND); + + @Inject + private Models models; + + @Inject + private Messages message; + + @Inject + private Errors erros; + + @Inject + private BindingResult bindingResult; + + @Inject + private PersonRepository repository; + + @GET + @Path("new") + public Viewable newElement() { + this.models.put("countries", getCountries()); + return new Viewable("insert.jsp"); + } + + @GET + @Path("show") + @View("list.jsp") + public void list() { + this.models.put("list", repository.findAll()); + } + + @POST + @Path("add") + @ValidateOnExecution(type=ExecutableType.NONE) + public String add(@Valid @BeanParam Person person) { + if (bindingResult.isFailed()) { + + this.getErros(); + this.models.put("countries", getCountries()); + this.models.put("person", person); + return "insert.jsp"; + + } + repository.save(person); + message.setMessageRedirect("The " + person.getName() + " was successfully registered ! "); + return "redirect:mvc/show"; + } + + @POST + @Path("update") + @ValidateOnExecution(type=ExecutableType.NONE) + public String update(@Valid @BeanParam Person person) { + if (bindingResult.isFailed()) { + + this.getErros(); + this.models.put("countries", getCountries()); + this.models.put("person", person); + return "change.jsp"; + + } + repository.save(person); + message.setMessageRedirect("The " + person.getName() + " was changed successfully ! "); + return "redirect:mvc/show"; + } + + @GET + @Path("update/{id}") + public Viewable update(@PathParam("id") Long id) { + + Optional<Person> person = repository.findById(id); + this.models.put("person", person.orElseThrow(NOT_FOUND_EXCEPTION)); + this.models.put("countries", getCountries()); + return new Viewable("change.jsp", models); + } + + @GET + @Path("remove/{id}") + public String delete(@PathParam("id") Long id) { + Optional<Person> person = repository.findById(id); + repository.remove(person.orElseThrow(NOT_FOUND_EXCEPTION)); + message.setMessageRedirect("The register was successfully Excluded ! "); + return "redirect:mvc/show"; + } + + private String getCountryName(String country) { + return new Locale(country,country).getDisplayCountry(Locale.ENGLISH); + } + + private List<String> getCountries() { + return Arrays.stream(Locale.getISOCountries()) + .map(country -> getCountryName(country)) + .sorted((a, b) -> a.compareTo(b)) + .collect(Collectors.toList()); + } + + private void getErros() { + erros.setErrors( + bindingResult.getAllErrors().stream() + .collect(toList())); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/java/org/superbiz/model/Address.java ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/java/org/superbiz/model/Address.java b/examples/mvc-cxf/src/main/java/org/superbiz/model/Address.java new file mode 100644 index 0000000..a53ba2c --- /dev/null +++ b/examples/mvc-cxf/src/main/java/org/superbiz/model/Address.java @@ -0,0 +1,57 @@ +package org.superbiz.model; + +import java.util.Objects; + +import javax.mvc.binding.MvcBinding; +import javax.persistence.Embeddable; +import javax.validation.constraints.NotEmpty; +import javax.ws.rs.FormParam; + +@Embeddable +public class Address { + + @FormParam("country") + @NotEmpty(message="can not be empty") + @MvcBinding + private String country; + + @FormParam("state") + @NotEmpty(message="can not be empty") + @MvcBinding + private String state; + + public String getCountry() { + return country; + } + + public String getState() { + return state; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Address address = (Address) o; + return Objects.equals(country, address.country) && + Objects.equals(state, address.state); + } + + @Override + public int hashCode() { + return Objects.hash(country, state); + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("Address{"); + sb.append("country='").append(country).append('\''); + sb.append(", state='").append(state).append('\''); + sb.append('}'); + return sb.toString(); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/java/org/superbiz/model/Errors.java ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/java/org/superbiz/model/Errors.java b/examples/mvc-cxf/src/main/java/org/superbiz/model/Errors.java new file mode 100644 index 0000000..1e37d40 --- /dev/null +++ b/examples/mvc-cxf/src/main/java/org/superbiz/model/Errors.java @@ -0,0 +1,34 @@ +package org.superbiz.model; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import javax.enterprise.context.RequestScoped; +import javax.inject.Named; +import javax.mvc.binding.ParamError; + +@Named("error") +@RequestScoped +public class Errors { + + private List<ParamError> errors = new ArrayList<>(); + + public void setErrors(List<ParamError> messages) { + this.errors = messages; + } + + public String getErrors() { + return errors.stream() + .map(ParamError::getMessage) + .collect(Collectors.joining("<br>")); + } + + public String getMessage(String param) { + return errors.stream() + .filter(v -> v.getParamName().equals(param)) + .map(ParamError::getMessage) + .findFirst() + .orElse(""); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/java/org/superbiz/model/Messages.java ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/java/org/superbiz/model/Messages.java b/examples/mvc-cxf/src/main/java/org/superbiz/model/Messages.java new file mode 100644 index 0000000..0344c31 --- /dev/null +++ b/examples/mvc-cxf/src/main/java/org/superbiz/model/Messages.java @@ -0,0 +1,23 @@ +package org.superbiz.model; + +import java.io.Serializable; + +import javax.inject.Named; +import javax.mvc.RedirectScoped; + +@Named("message") +@RedirectScoped +public class Messages implements Serializable { + + private static final long serialVersionUID = 1L; + + private String messageRedirect; + + public String getMessageRedirect() { + return messageRedirect; + } + + public void setMessageRedirect(String messageRedirect) { + this.messageRedirect = messageRedirect; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/java/org/superbiz/model/Person.java ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/java/org/superbiz/model/Person.java b/examples/mvc-cxf/src/main/java/org/superbiz/model/Person.java new file mode 100644 index 0000000..a016c31 --- /dev/null +++ b/examples/mvc-cxf/src/main/java/org/superbiz/model/Person.java @@ -0,0 +1,109 @@ +package org.superbiz.model; + +import java.util.Objects; + +import javax.mvc.binding.MvcBinding; +import javax.persistence.Column; +import javax.persistence.Embedded; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.validation.Valid; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import javax.ws.rs.BeanParam; +import javax.ws.rs.FormParam; + +@Entity +public class Person { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @FormParam("id") + private Long id; + + @FormParam("name") + @NotEmpty(message="can not be empty") + @Size(min = 1, max = 20) + @MvcBinding + private String name; + + @FormParam("age") + @MvcBinding + @Min(18) + private int age; + + @BeanParam + @Valid + @Embedded + private Address address; + + @FormParam("server") + @NotNull + @MvcBinding + private String server; + + @FormParam("description") + @Column + @NotEmpty(message="can not be empty") + @MvcBinding + @Size(min = 10, max = 20) + private String description; + + public Long getId() { + return id; + } + + public String getName() { + return name; + } + + public int getAge() { + return age; + } + + public Address getAddress() { + return address; + } + + public String getServer() { + return server; + } + + public String getDescription() { + return description; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Person person = (Person) o; + return Objects.equals(id, person.id); + } + + @Override + public int hashCode() { + return Objects.hashCode(id); + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("Person{"); + sb.append("id='").append(id).append('\''); + sb.append(", name='").append(name).append('\''); + sb.append(", age=").append(age); + sb.append(", address=").append(address); + sb.append(", server='").append(server).append('\''); + sb.append(", description='").append(description).append('\''); + sb.append('}'); + return sb.toString(); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/java/org/superbiz/persistence/PersonProducer.java ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/java/org/superbiz/persistence/PersonProducer.java b/examples/mvc-cxf/src/main/java/org/superbiz/persistence/PersonProducer.java new file mode 100644 index 0000000..7a0e28e --- /dev/null +++ b/examples/mvc-cxf/src/main/java/org/superbiz/persistence/PersonProducer.java @@ -0,0 +1,25 @@ +package org.superbiz.persistence; + +import javax.enterprise.context.ApplicationScoped; +import javax.enterprise.inject.Disposes; +import javax.enterprise.inject.Produces; +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.PersistenceUnit; + +@ApplicationScoped +public class PersonProducer { + + @PersistenceUnit + private EntityManagerFactory emf; + + @Produces + @ApplicationScoped + public EntityManager createEntityManager() { + return emf.createEntityManager(); + } + + public void closeEntityManager(@Disposes EntityManager manager) { + if (manager.isOpen()) { manager.close(); } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/java/org/superbiz/persistence/PersonRepository.java ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/java/org/superbiz/persistence/PersonRepository.java b/examples/mvc-cxf/src/main/java/org/superbiz/persistence/PersonRepository.java new file mode 100644 index 0000000..3d96a45 --- /dev/null +++ b/examples/mvc-cxf/src/main/java/org/superbiz/persistence/PersonRepository.java @@ -0,0 +1,13 @@ +package org.superbiz.persistence; + +import java.util.Optional; + +import org.apache.deltaspike.data.api.EntityRepository; +import org.apache.deltaspike.data.api.Repository; +import org.superbiz.model.Person; + +@Repository +public interface PersonRepository extends EntityRepository<Person, Long> { + + Optional<Person> findById(Long id); +} http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/resources/META-INF/beans.xml ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/resources/META-INF/beans.xml b/examples/mvc-cxf/src/main/resources/META-INF/beans.xml new file mode 100644 index 0000000..8ae1a57 --- /dev/null +++ b/examples/mvc-cxf/src/main/resources/META-INF/beans.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_2_0.xsd" + bean-discovery-mode="all" + version="2.0"> +</beans> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/resources/META-INF/persistence.xml ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/resources/META-INF/persistence.xml b/examples/mvc-cxf/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..116c21d --- /dev/null +++ b/examples/mvc-cxf/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<persistence xmlns="http://java.sun.com/xml/ns/persistence" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + version="2.0" + xsi:schemaLocation="http://java.sun.com/xml/ns/persistence + http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> + + <persistence-unit name="mvc-demo" transaction-type="RESOURCE_LOCAL"> + + <non-jta-data-source>mvc-demo</non-jta-data-source> + + <class>org.superbiz.model.Address</class> + <class>org.superbiz.model.Person</class> + + <properties> + <property name="eclipselink.target-database" value="org.eclipse.persistence.platform.database.H2Platform"/> + <property name="eclipselink.ddl-generation" value="create-tables"/> + <property name="eclipselink.ddl-generation.output-mode" value="database"/> + </properties> + </persistence-unit> + +</persistence> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/webapp/WEB-INF/views/change.jsp ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/webapp/WEB-INF/views/change.jsp b/examples/mvc-cxf/src/main/webapp/WEB-INF/views/change.jsp new file mode 100644 index 0000000..dde3417 --- /dev/null +++ b/examples/mvc-cxf/src/main/webapp/WEB-INF/views/change.jsp @@ -0,0 +1,112 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>MVC 1.0 DEMO</title> +</head> +<body> + +<div class="container"> + <c:if test="${error.errors.length() != 0}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-danger">${error.errors}</p> + </div> + </div> + </c:if> + <div class="row"> + <div class="col-md-4 col-md-offset-4"> + <form action="${mvc.basePath}/mvc/update" method="post"> + <h2>Change Registration</h2> + <div class="form-group"> + + <input type="text" name="id" value="${person.id}" hidden="true"> + + <label for="name">Name:</label> + <input id="name" name="name" class="form-control" autofocus value="${person.name}"> + <c:if test="${mvc.encoders.html(error.getMessage('name').length() != 0)}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-danger">${mvc.encoders.html(error.getMessage("name"))}</p> + </div> + </div> + </c:if> + </div> + <div class="form-group"> + <label for="age">Age:</label> + <input type="number" id="age" name="age" class="form-control" value="${person.age}"> + <c:if test="${mvc.encoders.html(error.getMessage('age').length() != 0)}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-danger">${mvc.encoders.html(error.getMessage("age"))}</p> + </div> + </div> + </c:if> + </div> + + <div class="form-group"> + <label for="state">State:</label> + <input type="text" id="state" name="state" class="form-control" value="${person.address.state}"> + <c:if test="${mvc.encoders.html(error.getMessage('state').length() != 0)}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-danger">${mvc.encoders.html(error.getMessage("state"))}</p> + </div> + </div> + </c:if> + </div> + <div class="form-group"> + <label for="state">Application Server:</label> <br /> + <label class="radio-inline"><input type="radio" name="server" value="TomEE" class="form-check-input ">TomEE</label> + <label class="radio-inline"><input type="radio" name="server" value="Wildfly" class="form-check-input"/>Wildfly</label> + <label class="radio-inline"><input type="radio" name="server" value="Payara" class="form-check-input"/>Payara</label> + <c:if test="${mvc.encoders.html(error.getMessage('server').length() != 0)}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-danger">${mvc.encoders.html(error.getMessage("server"))}</p> + </div> + </div> + </c:if> + </div> + <div class="form-group"> + <label for="country">Country:</label> + + <select id="country" name="country" class="form-control"> + <option value="${person.address.country}">${person.address.country}</option> + <c:forEach var="countries" items="${countries}"> + <option>${countries}</option> + </c:forEach> + </select> + <c:if test="${mvc.encoders.html(error.getMessage('country').length() != 0)}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-danger">${mvc.encoders.html(error.getMessage("country"))}</p> + </div> + </div> + </c:if> + </div> + <div class="form-group"> + <label for="description">Description:</label> + <textarea type="" id="description" name="description" class="form-control">${person.description}</textarea> + <c:if test="${mvc.encoders.html(error.getMessage('description').length() != 0)}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-danger">${mvc.encoders.html(error.getMessage("description"))}</p> + </div> + </div> + </c:if> + </div> + <button class="btn btn-primary btn-block" type="submit">Register</button> + </form> + </div> + </div> +</div> +<br /> +<br /> +<jsp:include page="/templates/footer.jsp"></jsp:include> +</body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/webapp/WEB-INF/views/home.jsp ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/webapp/WEB-INF/views/home.jsp b/examples/mvc-cxf/src/main/webapp/WEB-INF/views/home.jsp new file mode 100644 index 0000000..0faca4d --- /dev/null +++ b/examples/mvc-cxf/src/main/webapp/WEB-INF/views/home.jsp @@ -0,0 +1,20 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>MVC 1.0 DEMO</title> +</head> +<body> + <jsp:include page="/templates/menu.jsp"></jsp:include> + + <h1 align="center">Be welcome!</h1> + + <div align="center"> + <img src="${pageContext.request.contextPath}/resources/images/tomee.png" class="img-responsive"/> + </div> + <br /> + <br /> + <jsp:include page="/templates/footer.jsp"></jsp:include> +</body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/webapp/WEB-INF/views/insert.jsp ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/webapp/WEB-INF/views/insert.jsp b/examples/mvc-cxf/src/main/webapp/WEB-INF/views/insert.jsp new file mode 100644 index 0000000..6d64357 --- /dev/null +++ b/examples/mvc-cxf/src/main/webapp/WEB-INF/views/insert.jsp @@ -0,0 +1,109 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>MVC 1.0 DEMO</title> +</head> +<body> + +<div class="container"> + <c:if test="${error.errors.length() != 0}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-danger">${error.errors}</p> + </div> + </div> + </c:if> + <div class="row"> + <div class="col-md-4 col-md-offset-4"> + <form action="add" method="post"> + <h2>New register</h2> + <div class="form-group"> + <label for="name">Name:</label> + <input id="name" name="name" class="form-control" autofocus value="${person.name}"> + <c:if test="${mvc.encoders.html(error.getMessage('name').length() != 0)}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-danger">${mvc.encoders.html(error.getMessage("name"))}</p> + </div> + </div> + </c:if> + </div> + <div class="form-group"> + <label for="age">Age:</label> + <input type="number" id="age" name="age" class="form-control" value="${person.age}"> + <c:if test="${mvc.encoders.html(error.getMessage('age').length() != 0)}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-danger">${mvc.encoders.html(error.getMessage("age"))}</p> + </div> + </div> + </c:if> + </div> + + <div class="form-group"> + <label for="state">State:</label> + <input type="text" id="state" name="state" class="form-control" value="${person.address.state}"> + <c:if test="${mvc.encoders.html(error.getMessage('state').length() != 0)}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-danger">${mvc.encoders.html(error.getMessage("state"))}</p> + </div> + </div> + </c:if> + </div> + <div class="form-group"> + <label for="state">Application Server:</label> <br /> + <label class="radio-inline"><input type="radio" name="server" value="TomEE" class="form-check-input ">TomEE</label> + <label class="radio-inline"><input type="radio" name="server" value="Wildfly" class="form-check-input"/>Wildfly</label> + <label class="radio-inline"><input type="radio" name="server" value="Payara" class="form-check-input"/>Payara</label> + <c:if test="${mvc.encoders.html(error.getMessage('server').length() != 0)}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-danger">${mvc.encoders.html(error.getMessage("server"))}</p> + </div> + </div> + </c:if> + </div> + <div class="form-group"> + <label for="country">Country:</label> + + <select id="country" name="country" class="form-control"> + <option value="${person.address.country}">${person.address.country}</option> + <c:forEach var="countries" items="${countries}"> + <option>${countries}</option> + </c:forEach> + </select> + <c:if test="${mvc.encoders.html(error.getMessage('country').length() != 0)}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-danger">${mvc.encoders.html(error.getMessage("country"))}</p> + </div> + </div> + </c:if> + </div> + <div class="form-group"> + <label for="description">Description:</label> + <textarea type="" id="description" name="description" class="form-control">${person.description}</textarea> + <c:if test="${mvc.encoders.html(error.getMessage('description').length() != 0)}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-danger">${mvc.encoders.html(error.getMessage("description"))}</p> + </div> + </div> + </c:if> + </div> + <button class="btn btn-primary btn-block" type="submit">Register</button> + </form> + </div> + </div> +</div> +<br /> +<br /> +<jsp:include page="/templates/footer.jsp"></jsp:include> +</body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/webapp/WEB-INF/views/list.jsp ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/webapp/WEB-INF/views/list.jsp b/examples/mvc-cxf/src/main/webapp/WEB-INF/views/list.jsp new file mode 100644 index 0000000..a0389c1 --- /dev/null +++ b/examples/mvc-cxf/src/main/webapp/WEB-INF/views/list.jsp @@ -0,0 +1,72 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <title>MVC 1.0 DEMO</title> +</head> +<body> + +<jsp:include page="/templates/menu.jsp"></jsp:include> + + +<div class="container"> + <c:if test="${message.messageRedirect != null}"> + <div class="row"> + <div class="col-md-12"> + <p class="alert alert-success" id="success-alert">${message.messageRedirect}</p> + </div> + </div> + </c:if> + <div class="row"> + <a class="btn btn-primary" href="new">Add Registres</a> + <hr /> + <table id="tableData" class="table table-bordered table-hover"> + <thead> + <tr> + <th>Name</th> + <th>Age</th> + <th>Country</th> + <th>State</th> + <th>Application Server</th> + <th>Description</th> + <th></th> + <th></th> + </tr> + </thead> + <tbody> + <tr> + <c:forEach items="${list}" var="person"> + <td>${person.name}</td> + <td>${person.age}</td> + <td>${person.address.country}</td> + <td>${person.address.state}</td> + <td>${person.server}</td> + <td>${person.description}</td> + <td><a href="update/${person.id}" class="btn btn-info" >Edit</a></td> + <td><a href="remove/${person.id}"><span class="glyphicon glyphicon-trash"></span> Delete </a></td> + </tr> + </c:forEach> + </tbody> + </table> +</div> +</div> + + <br /> + <br /> + <script type="text/javascript"> + + $(document).ready(function() { + $("#success-alert").hide(); + $().ready(function showAlert() { + $("#success-alert").fadeTo(2000, 500).slideUp(500, function() { + $("#success-alert").slideUp(500); + }); + }); + }); + </script> + <jsp:include page="/templates/footer.jsp"></jsp:include> +</body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/webapp/index.jsp ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/webapp/index.jsp b/examples/mvc-cxf/src/main/webapp/index.jsp new file mode 100644 index 0000000..980157d --- /dev/null +++ b/examples/mvc-cxf/src/main/webapp/index.jsp @@ -0,0 +1,11 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<title>MVC 1.0 DEMO</title> +<meta http-equiv="refresh" content="1;url=app/home"> +</head> +<body> +</body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/webapp/resources/bootstrap/css/bootstrap-datepicker.css ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/webapp/resources/bootstrap/css/bootstrap-datepicker.css b/examples/mvc-cxf/src/main/webapp/resources/bootstrap/css/bootstrap-datepicker.css new file mode 100644 index 0000000..a6c8899 --- /dev/null +++ b/examples/mvc-cxf/src/main/webapp/resources/bootstrap/css/bootstrap-datepicker.css @@ -0,0 +1,471 @@ +/*! + * Datepicker for Bootstrap v1.6.4 (https://github.com/eternicode/bootstrap-datepicker) + * + * Copyright 2012 Stefan Petre + * Improvements by Andrew Rowls + * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) + */ +.datepicker { + padding: 4px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + direction: ltr; +} +.datepicker-inline { + width: 220px; +} +.datepicker.datepicker-rtl { + direction: rtl; +} +.datepicker.datepicker-rtl table tr td span { + float: right; +} +.datepicker-dropdown { + top: 0; + left: 0; +} +.datepicker-dropdown:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #999; + border-top: 0; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; +} +.datepicker-dropdown:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #fff; + border-top: 0; + position: absolute; +} +.datepicker-dropdown.datepicker-orient-left:before { + left: 6px; +} +.datepicker-dropdown.datepicker-orient-left:after { + left: 7px; +} +.datepicker-dropdown.datepicker-orient-right:before { + right: 6px; +} +.datepicker-dropdown.datepicker-orient-right:after { + right: 7px; +} +.datepicker-dropdown.datepicker-orient-bottom:before { + top: -7px; +} +.datepicker-dropdown.datepicker-orient-bottom:after { + top: -6px; +} +.datepicker-dropdown.datepicker-orient-top:before { + bottom: -7px; + border-bottom: 0; + border-top: 7px solid #999; +} +.datepicker-dropdown.datepicker-orient-top:after { + bottom: -6px; + border-bottom: 0; + border-top: 6px solid #fff; +} +.datepicker table { + margin: 0; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.datepicker td, +.datepicker th { + text-align: center; + width: 20px; + height: 20px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + border: none; +} +.table-striped .datepicker table tr td, +.table-striped .datepicker table tr th { + background-color: transparent; +} +.datepicker table tr td.day:hover, +.datepicker table tr td.day.focused { + background: #eee; + cursor: pointer; +} +.datepicker table tr td.old, +.datepicker table tr td.new { + color: #999; +} +.datepicker table tr td.disabled, +.datepicker table tr td.disabled:hover { + background: none; + color: #999; + cursor: default; +} +.datepicker table tr td.highlighted { + background: #d9edf7; + border-radius: 0; +} +.datepicker table tr td.today, +.datepicker table tr td.today:hover, +.datepicker table tr td.today.disabled, +.datepicker table tr td.today.disabled:hover { + background-color: #fde19a; + background-image: -moz-linear-gradient(to bottom, #fdd49a, #fdf59a); + background-image: -ms-linear-gradient(to bottom, #fdd49a, #fdf59a); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a)); + background-image: -webkit-linear-gradient(to bottom, #fdd49a, #fdf59a); + background-image: -o-linear-gradient(to bottom, #fdd49a, #fdf59a); + background-image: linear-gradient(to bottom, #fdd49a, #fdf59a); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0); + border-color: #fdf59a #fdf59a #fbed50; + 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(enabled=false); + color: #000; +} +.datepicker table tr td.today:hover, +.datepicker table tr td.today:hover:hover, +.datepicker table tr td.today.disabled:hover, +.datepicker table tr td.today.disabled:hover:hover, +.datepicker table tr td.today:active, +.datepicker table tr td.today:hover:active, +.datepicker table tr td.today.disabled:active, +.datepicker table tr td.today.disabled:hover:active, +.datepicker table tr td.today.active, +.datepicker table tr td.today:hover.active, +.datepicker table tr td.today.disabled.active, +.datepicker table tr td.today.disabled:hover.active, +.datepicker table tr td.today.disabled, +.datepicker table tr td.today:hover.disabled, +.datepicker table tr td.today.disabled.disabled, +.datepicker table tr td.today.disabled:hover.disabled, +.datepicker table tr td.today[disabled], +.datepicker table tr td.today:hover[disabled], +.datepicker table tr td.today.disabled[disabled], +.datepicker table tr td.today.disabled:hover[disabled] { + background-color: #fdf59a; +} +.datepicker table tr td.today:active, +.datepicker table tr td.today:hover:active, +.datepicker table tr td.today.disabled:active, +.datepicker table tr td.today.disabled:hover:active, +.datepicker table tr td.today.active, +.datepicker table tr td.today:hover.active, +.datepicker table tr td.today.disabled.active, +.datepicker table tr td.today.disabled:hover.active { + background-color: #fbf069 \9; +} +.datepicker table tr td.today:hover:hover { + color: #000; +} +.datepicker table tr td.today.active:hover { + color: #fff; +} +.datepicker table tr td.range, +.datepicker table tr td.range:hover, +.datepicker table tr td.range.disabled, +.datepicker table tr td.range.disabled:hover { + background: #eee; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.datepicker table tr td.range.today, +.datepicker table tr td.range.today:hover, +.datepicker table tr td.range.today.disabled, +.datepicker table tr td.range.today.disabled:hover { + background-color: #f3d17a; + background-image: -moz-linear-gradient(to bottom, #f3c17a, #f3e97a); + background-image: -ms-linear-gradient(to bottom, #f3c17a, #f3e97a); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a)); + background-image: -webkit-linear-gradient(to bottom, #f3c17a, #f3e97a); + background-image: -o-linear-gradient(to bottom, #f3c17a, #f3e97a); + background-image: linear-gradient(to bottom, #f3c17a, #f3e97a); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0); + border-color: #f3e97a #f3e97a #edde34; + 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(enabled=false); + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.datepicker table tr td.range.today:hover, +.datepicker table tr td.range.today:hover:hover, +.datepicker table tr td.range.today.disabled:hover, +.datepicker table tr td.range.today.disabled:hover:hover, +.datepicker table tr td.range.today:active, +.datepicker table tr td.range.today:hover:active, +.datepicker table tr td.range.today.disabled:active, +.datepicker table tr td.range.today.disabled:hover:active, +.datepicker table tr td.range.today.active, +.datepicker table tr td.range.today:hover.active, +.datepicker table tr td.range.today.disabled.active, +.datepicker table tr td.range.today.disabled:hover.active, +.datepicker table tr td.range.today.disabled, +.datepicker table tr td.range.today:hover.disabled, +.datepicker table tr td.range.today.disabled.disabled, +.datepicker table tr td.range.today.disabled:hover.disabled, +.datepicker table tr td.range.today[disabled], +.datepicker table tr td.range.today:hover[disabled], +.datepicker table tr td.range.today.disabled[disabled], +.datepicker table tr td.range.today.disabled:hover[disabled] { + background-color: #f3e97a; +} +.datepicker table tr td.range.today:active, +.datepicker table tr td.range.today:hover:active, +.datepicker table tr td.range.today.disabled:active, +.datepicker table tr td.range.today.disabled:hover:active, +.datepicker table tr td.range.today.active, +.datepicker table tr td.range.today:hover.active, +.datepicker table tr td.range.today.disabled.active, +.datepicker table tr td.range.today.disabled:hover.active { + background-color: #efe24b \9; +} +.datepicker table tr td.selected, +.datepicker table tr td.selected:hover, +.datepicker table tr td.selected.disabled, +.datepicker table tr td.selected.disabled:hover { + background-color: #9e9e9e; + background-image: -moz-linear-gradient(to bottom, #b3b3b3, #808080); + background-image: -ms-linear-gradient(to bottom, #b3b3b3, #808080); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080)); + background-image: -webkit-linear-gradient(to bottom, #b3b3b3, #808080); + background-image: -o-linear-gradient(to bottom, #b3b3b3, #808080); + background-image: linear-gradient(to bottom, #b3b3b3, #808080); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0); + border-color: #808080 #808080 #595959; + 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(enabled=false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td.selected:hover, +.datepicker table tr td.selected:hover:hover, +.datepicker table tr td.selected.disabled:hover, +.datepicker table tr td.selected.disabled:hover:hover, +.datepicker table tr td.selected:active, +.datepicker table tr td.selected:hover:active, +.datepicker table tr td.selected.disabled:active, +.datepicker table tr td.selected.disabled:hover:active, +.datepicker table tr td.selected.active, +.datepicker table tr td.selected:hover.active, +.datepicker table tr td.selected.disabled.active, +.datepicker table tr td.selected.disabled:hover.active, +.datepicker table tr td.selected.disabled, +.datepicker table tr td.selected:hover.disabled, +.datepicker table tr td.selected.disabled.disabled, +.datepicker table tr td.selected.disabled:hover.disabled, +.datepicker table tr td.selected[disabled], +.datepicker table tr td.selected:hover[disabled], +.datepicker table tr td.selected.disabled[disabled], +.datepicker table tr td.selected.disabled:hover[disabled] { + background-color: #808080; +} +.datepicker table tr td.selected:active, +.datepicker table tr td.selected:hover:active, +.datepicker table tr td.selected.disabled:active, +.datepicker table tr td.selected.disabled:hover:active, +.datepicker table tr td.selected.active, +.datepicker table tr td.selected:hover.active, +.datepicker table tr td.selected.disabled.active, +.datepicker table tr td.selected.disabled:hover.active { + background-color: #666666 \9; +} +.datepicker table tr td.active, +.datepicker table tr td.active:hover, +.datepicker table tr td.active.disabled, +.datepicker table tr td.active.disabled:hover { + background-color: #006dcc; + background-image: -moz-linear-gradient(to bottom, #08c, #0044cc); + background-image: -ms-linear-gradient(to bottom, #08c, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc)); + background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc); + background-image: -o-linear-gradient(to bottom, #08c, #0044cc); + background-image: linear-gradient(to bottom, #08c, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0); + 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(enabled=false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td.active:hover, +.datepicker table tr td.active:hover:hover, +.datepicker table tr td.active.disabled:hover, +.datepicker table tr td.active.disabled:hover:hover, +.datepicker table tr td.active:active, +.datepicker table tr td.active:hover:active, +.datepicker table tr td.active.disabled:active, +.datepicker table tr td.active.disabled:hover:active, +.datepicker table tr td.active.active, +.datepicker table tr td.active:hover.active, +.datepicker table tr td.active.disabled.active, +.datepicker table tr td.active.disabled:hover.active, +.datepicker table tr td.active.disabled, +.datepicker table tr td.active:hover.disabled, +.datepicker table tr td.active.disabled.disabled, +.datepicker table tr td.active.disabled:hover.disabled, +.datepicker table tr td.active[disabled], +.datepicker table tr td.active:hover[disabled], +.datepicker table tr td.active.disabled[disabled], +.datepicker table tr td.active.disabled:hover[disabled] { + background-color: #0044cc; +} +.datepicker table tr td.active:active, +.datepicker table tr td.active:hover:active, +.datepicker table tr td.active.disabled:active, +.datepicker table tr td.active.disabled:hover:active, +.datepicker table tr td.active.active, +.datepicker table tr td.active:hover.active, +.datepicker table tr td.active.disabled.active, +.datepicker table tr td.active.disabled:hover.active { + background-color: #003399 \9; +} +.datepicker table tr td span { + display: block; + width: 23%; + height: 54px; + line-height: 54px; + float: left; + margin: 1%; + cursor: pointer; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.datepicker table tr td span:hover, +.datepicker table tr td span.focused { + background: #eee; +} +.datepicker table tr td span.disabled, +.datepicker table tr td span.disabled:hover { + background: none; + color: #999; + cursor: default; +} +.datepicker table tr td span.active, +.datepicker table tr td span.active:hover, +.datepicker table tr td span.active.disabled, +.datepicker table tr td span.active.disabled:hover { + background-color: #006dcc; + background-image: -moz-linear-gradient(to bottom, #08c, #0044cc); + background-image: -ms-linear-gradient(to bottom, #08c, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc)); + background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc); + background-image: -o-linear-gradient(to bottom, #08c, #0044cc); + background-image: linear-gradient(to bottom, #08c, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0); + 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(enabled=false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td span.active:hover, +.datepicker table tr td span.active:hover:hover, +.datepicker table tr td span.active.disabled:hover, +.datepicker table tr td span.active.disabled:hover:hover, +.datepicker table tr td span.active:active, +.datepicker table tr td span.active:hover:active, +.datepicker table tr td span.active.disabled:active, +.datepicker table tr td span.active.disabled:hover:active, +.datepicker table tr td span.active.active, +.datepicker table tr td span.active:hover.active, +.datepicker table tr td span.active.disabled.active, +.datepicker table tr td span.active.disabled:hover.active, +.datepicker table tr td span.active.disabled, +.datepicker table tr td span.active:hover.disabled, +.datepicker table tr td span.active.disabled.disabled, +.datepicker table tr td span.active.disabled:hover.disabled, +.datepicker table tr td span.active[disabled], +.datepicker table tr td span.active:hover[disabled], +.datepicker table tr td span.active.disabled[disabled], +.datepicker table tr td span.active.disabled:hover[disabled] { + background-color: #0044cc; +} +.datepicker table tr td span.active:active, +.datepicker table tr td span.active:hover:active, +.datepicker table tr td span.active.disabled:active, +.datepicker table tr td span.active.disabled:hover:active, +.datepicker table tr td span.active.active, +.datepicker table tr td span.active:hover.active, +.datepicker table tr td span.active.disabled.active, +.datepicker table tr td span.active.disabled:hover.active { + background-color: #003399 \9; +} +.datepicker table tr td span.old, +.datepicker table tr td span.new { + color: #999; +} +.datepicker .datepicker-switch { + width: 145px; +} +.datepicker .datepicker-switch, +.datepicker .prev, +.datepicker .next, +.datepicker tfoot tr th { + cursor: pointer; +} +.datepicker .datepicker-switch:hover, +.datepicker .prev:hover, +.datepicker .next:hover, +.datepicker tfoot tr th:hover { + background: #eee; +} +.datepicker .cw { + font-size: 10px; + width: 12px; + padding: 0 2px 0 5px; + vertical-align: middle; +} +.input-append.date .add-on, +.input-prepend.date .add-on { + cursor: pointer; +} +.input-append.date .add-on i, +.input-prepend.date .add-on i { + margin-top: 3px; +} +.input-daterange input { + text-align: center; +} +.input-daterange input:first-child { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-daterange input:last-child { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.input-daterange .add-on { + display: inline-block; + width: auto; + min-width: 16px; + height: 18px; + padding: 4px 5px; + font-weight: normal; + line-height: 18px; + text-align: center; + text-shadow: 0 1px 0 #fff; + vertical-align: middle; + background-color: #eee; + border: 1px solid #ccc; + margin-left: -5px; + margin-right: -5px; +} +/*# sourceMappingURL=bootstrap-datepicker.css.map */ \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tomee/blob/58589f74/examples/mvc-cxf/src/main/webapp/resources/bootstrap/css/bootstrap-theme.css ---------------------------------------------------------------------- diff --git a/examples/mvc-cxf/src/main/webapp/resources/bootstrap/css/bootstrap-theme.css b/examples/mvc-cxf/src/main/webapp/resources/bootstrap/css/bootstrap-theme.css new file mode 100644 index 0000000..31d8882 --- /dev/null +++ b/examples/mvc-cxf/src/main/webapp/resources/bootstrap/css/bootstrap-theme.css @@ -0,0 +1,587 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +.btn-default, +.btn-primary, +.btn-success, +.btn-info, +.btn-warning, +.btn-danger { + text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); +} +.btn-default:active, +.btn-primary:active, +.btn-success:active, +.btn-info:active, +.btn-warning:active, +.btn-danger:active, +.btn-default.active, +.btn-primary.active, +.btn-success.active, +.btn-info.active, +.btn-warning.active, +.btn-danger.active { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn-default.disabled, +.btn-primary.disabled, +.btn-success.disabled, +.btn-info.disabled, +.btn-warning.disabled, +.btn-danger.disabled, +.btn-default[disabled], +.btn-primary[disabled], +.btn-success[disabled], +.btn-info[disabled], +.btn-warning[disabled], +.btn-danger[disabled], +fieldset[disabled] .btn-default, +fieldset[disabled] .btn-primary, +fieldset[disabled] .btn-success, +fieldset[disabled] .btn-info, +fieldset[disabled] .btn-warning, +fieldset[disabled] .btn-danger { + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-default .badge, +.btn-primary .badge, +.btn-success .badge, +.btn-info .badge, +.btn-warning .badge, +.btn-danger .badge { + text-shadow: none; +} +.btn:active, +.btn.active { + background-image: none; +} +.btn-default { + text-shadow: 0 1px 0 #fff; + background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); + background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0)); + background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #dbdbdb; + border-color: #ccc; +} +.btn-default:hover, +.btn-default:focus { + background-color: #e0e0e0; + background-position: 0 -15px; +} +.btn-default:active, +.btn-default.active { + background-color: #e0e0e0; + border-color: #dbdbdb; +} +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #e0e0e0; + background-image: none; +} +.btn-primary { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88)); + background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #245580; +} +.btn-primary:hover, +.btn-primary:focus { + background-color: #265a88; + background-position: 0 -15px; +} +.btn-primary:active, +.btn-primary.active { + background-color: #265a88; + border-color: #245580; +} +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #265a88; + background-image: none; +} +.btn-success { + background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); + background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); + background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #3e8f3e; +} +.btn-success:hover, +.btn-success:focus { + background-color: #419641; + background-position: 0 -15px; +} +.btn-success:active, +.btn-success.active { + background-color: #419641; + border-color: #3e8f3e; +} +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #419641; + background-image: none; +} +.btn-info { + background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); + background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); + background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #28a4c9; +} +.btn-info:hover, +.btn-info:focus { + background-color: #2aabd2; + background-position: 0 -15px; +} +.btn-info:active, +.btn-info.active { + background-color: #2aabd2; + border-color: #28a4c9; +} +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #2aabd2; + background-image: none; +} +.btn-warning { + background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); + background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #e38d13; +} +.btn-warning:hover, +.btn-warning:focus { + background-color: #eb9316; + background-position: 0 -15px; +} +.btn-warning:active, +.btn-warning.active { + background-color: #eb9316; + border-color: #e38d13; +} +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #eb9316; + background-image: none; +} +.btn-danger { + background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); + background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); + background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #b92c28; +} +.btn-danger:hover, +.btn-danger:focus { + background-color: #c12e2a; + background-position: 0 -15px; +} +.btn-danger:active, +.btn-danger.active { + background-color: #c12e2a; + border-color: #b92c28; +} +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #c12e2a; + background-image: none; +} +.thumbnail, +.img-thumbnail { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); + box-shadow: 0 1px 2px rgba(0, 0, 0, .075); +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + background-color: #e8e8e8; + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); + background-repeat: repeat-x; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + background-color: #2e6da4; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; +} +.navbar-default { + background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%); + background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8)); + background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .active > a { + background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); + background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); + background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); + box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); +} +.navbar-brand, +.navbar-nav > li > a { + text-shadow: 0 1px 0 rgba(255, 255, 255, .25); +} +.navbar-inverse { + background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); + background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); + background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-radius: 4px; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .active > a { + background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); + background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); + background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); + box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); +} +.navbar-inverse .navbar-brand, +.navbar-inverse .navbar-nav > li > a { + text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); +} +.navbar-static-top, +.navbar-fixed-top, +.navbar-fixed-bottom { + border-radius: 0; +} +@media (max-width: 767px) { + .navbar .navbar-nav .open .dropdown-menu > .active > a, + .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; + } +} +.alert { + text-shadow: 0 1px 0 rgba(255, 255, 255, .2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); +} +.alert-success { + background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); + background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); + background-repeat: repeat-x; + border-color: #b2dba1; +} +.alert-info { + background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); + background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); + background-repeat: repeat-x; + border-color: #9acfea; +} +.alert-warning { + background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); + background-repeat: repeat-x; + border-color: #f5e79e; +} +.alert-danger { + background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); + background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); + background-repeat: repeat-x; + border-color: #dca7a7; +} +.progress { + background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); + background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); + background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-success { + background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); + background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-info { + background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); + background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-warning { + background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-danger { + background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); + background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.list-group { + border-radius: 4px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); + box-shadow: 0 1px 2px rgba(0, 0, 0, .075); +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + text-shadow: 0 -1px 0 #286090; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); + background-repeat: repeat-x; + border-color: #2b669a; +} +.list-group-item.active .badge, +.list-group-item.active:hover .badge, +.list-group-item.active:focus .badge { + text-shadow: none; +} +.panel { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05); + box-shadow: 0 1px 2px rgba(0, 0, 0, .05); +} +.panel-default > .panel-heading { + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); + background-repeat: repeat-x; +} +.panel-primary > .panel-heading { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; +} +.panel-success > .panel-heading { + background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); + background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); + background-repeat: repeat-x; +} +.panel-info > .panel-heading { + background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); + background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); + background-repeat: repeat-x; +} +.panel-warning > .panel-heading { + background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); + background-repeat: repeat-x; +} +.panel-danger > .panel-heading { + background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); + background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); + background-repeat: repeat-x; +} +.well { + background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); + background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); + background-repeat: repeat-x; + border-color: #dcdcdc; + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); +} +/*# sourceMappingURL=bootstrap-theme.css.map */
