|
@ -0,0 +1,12 @@
|
|||
Thumbs.db
|
||||
.DS_Store
|
||||
.gradle
|
||||
build/
|
||||
out/
|
||||
.idea
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
.project
|
||||
.settings
|
||||
.classpath
|
|
@ -0,0 +1,80 @@
|
|||
buildscript {
|
||||
repositories {
|
||||
mavenLocal()
|
||||
maven { url "https://repo.grails.org/grails/core" }
|
||||
}
|
||||
dependencies {
|
||||
classpath "org.grails:grails-gradle-plugin:$grailsVersion"
|
||||
classpath "org.grails.plugins:hibernate5:${gormVersion-".RELEASE"}"
|
||||
classpath "com.bertramlabs.plugins:asset-pipeline-gradle:2.14.8"
|
||||
}
|
||||
}
|
||||
|
||||
version "0.1"
|
||||
group "grails"
|
||||
|
||||
apply plugin:"eclipse"
|
||||
apply plugin:"idea"
|
||||
apply plugin:"war"
|
||||
apply plugin:"org.grails.grails-web"
|
||||
apply plugin:"asset-pipeline"
|
||||
apply plugin:"org.grails.grails-gsp"
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
maven { url "https://repo.grails.org/grails/core" }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile "org.springframework.boot:spring-boot-starter-logging"
|
||||
compile "org.springframework.boot:spring-boot-autoconfigure"
|
||||
compile "org.grails:grails-core"
|
||||
compile "org.springframework.boot:spring-boot-starter-actuator"
|
||||
compile "org.springframework.boot:spring-boot-starter-tomcat"
|
||||
compile "org.grails:grails-web-boot"
|
||||
compile "org.grails:grails-logging"
|
||||
compile "org.grails:grails-plugin-rest"
|
||||
compile "org.grails:grails-plugin-databinding"
|
||||
compile "org.grails:grails-plugin-i18n"
|
||||
compile "org.grails:grails-plugin-services"
|
||||
compile "org.grails:grails-plugin-url-mappings"
|
||||
compile "org.grails:grails-plugin-interceptors"
|
||||
compile "org.grails.plugins:cache"
|
||||
compile "org.grails.plugins:async"
|
||||
compile "org.grails.plugins:scaffolding"
|
||||
compile "org.grails.plugins:events"
|
||||
compile "org.grails.plugins:hibernate5"
|
||||
compile "org.hibernate:hibernate-core:5.1.5.Final"
|
||||
compile "org.grails.plugins:gsp"
|
||||
console "org.grails:grails-console"
|
||||
profile "org.grails.profiles:web"
|
||||
runtime "org.glassfish.web:el-impl:2.1.2-b03"
|
||||
runtime "com.h2database:h2"
|
||||
runtime "org.apache.tomcat:tomcat-jdbc"
|
||||
runtime "com.bertramlabs.plugins:asset-pipeline-grails:2.14.8"
|
||||
testCompile "org.grails:grails-gorm-testing-support"
|
||||
testCompile "org.grails:grails-web-testing-support"
|
||||
testCompile "org.grails.plugins:geb:1.1.2"
|
||||
testRuntime "org.seleniumhq.selenium:selenium-chrome-driver:2.47.1"
|
||||
testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.1"
|
||||
testRuntime "net.sourceforge.htmlunit:htmlunit:2.18"
|
||||
}
|
||||
|
||||
bootRun {
|
||||
jvmArgs('-Dspring.output.ansi.enabled=always')
|
||||
addResources = true
|
||||
String springProfilesActive = 'spring.profiles.active'
|
||||
systemProperty springProfilesActive, System.getProperty(springProfilesActive)
|
||||
}
|
||||
|
||||
tasks.withType(Test) {
|
||||
systemProperty "geb.env", System.getProperty('geb.env')
|
||||
systemProperty "geb.build.reportsDir", reporting.file("geb/integrationTest")
|
||||
systemProperty "webdriver.chrome.driver", System.getProperty('webdriver.chrome.driver')
|
||||
systemProperty "webdriver.gecko.driver", System.getProperty('webdriver.gecko.driver')
|
||||
}
|
||||
|
||||
assets {
|
||||
minifyJs = true
|
||||
minifyCss = true
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
grailsVersion=3.3.3
|
||||
gormVersion=6.1.9.RELEASE
|
||||
gradleWrapperVersion=3.5
|
|
@ -0,0 +1,6 @@
|
|||
#Fri Nov 27 23:09:32 CET 2015
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-bin.zip
|
|
@ -0,0 +1,160 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## Gradle start up script for UN*X
|
||||
##
|
||||
##############################################################################
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS=""
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn ( ) {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die ( ) {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
esac
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
# Need this for relative symlinks.
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG=`dirname "$PRG"`"/$link"
|
||||
fi
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >/dev/null
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD="java"
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
MAX_FD="$MAX_FD_LIMIT"
|
||||
fi
|
||||
ulimit -n $MAX_FD
|
||||
if [ $? -ne 0 ] ; then
|
||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
||||
fi
|
||||
else
|
||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For Darwin, add options to specify how the application appears in the dock
|
||||
if $darwin; then
|
||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
SEP=""
|
||||
for dir in $ROOTDIRSRAW ; do
|
||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||
SEP="|"
|
||||
done
|
||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||
# Add a user-defined pattern to the cygpath arguments
|
||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
||||
fi
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
i=0
|
||||
for arg in "$@" ; do
|
||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||
|
||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
done
|
||||
case $i in
|
||||
(0) set -- ;;
|
||||
(1) set -- "$args0" ;;
|
||||
(2) set -- "$args0" "$args1" ;;
|
||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
|
||||
function splitJvmOpts() {
|
||||
JVM_OPTS=("$@")
|
||||
}
|
||||
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
|
||||
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
|
||||
|
||||
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
|
|
@ -0,0 +1,90 @@
|
|||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS=
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windowz variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
if "%@eval[2+2]" == "4" goto 4NT_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
goto execute
|
||||
|
||||
:4NT_args
|
||||
@rem Get arguments from the 4NT Shell from JP Software
|
||||
set CMD_LINE_ARGS=%$
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 5.4 KiB |
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0"?>
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000" height="500">
|
||||
<desc iVinci="yes" version="4.5" gridStep="20" showGrid="no" snapToGrid="no" codePlatform="0"/>
|
||||
<g id="Layer1" opacity="1">
|
||||
<g id="Shape1">
|
||||
<desc shapeID="1" type="0" basicInfo-basicType="0" basicInfo-roundedRectRadius="12" basicInfo-polygonSides="6" basicInfo-starPoints="5" bounding="rect(-74.3391,-50.75,148.678,101.5)" text="" font-familyName="" font-pixelSize="20" font-bold="0" font-underline="0" font-alignment="1" strokeStyle="0" markerStart="0" markerEnd="0" shadowEnabled="0" shadowOffsetX="0" shadowOffsetY="2" shadowBlur="4" shadowOpacity="160" blurEnabled="0" blurRadius="4" transform="matrix(4.79624,0,0,4.79624,500,250)" pers-center="0,0" pers-size="0,0" pers-start="0,0" pers-end="0,0" locked="0" mesh="" flag=""/>
|
||||
<path id="shapePath1" d="M527.264,491.011 C544.051,488.613 563.236,483.817 572.829,479.021 C582.421,474.224 589.615,467.03 589.615,462.234 C589.615,462.234 587.217,457.438 584.819,452.641 C580.023,445.447 575.227,435.854 563.236,409.475 C558.44,397.484 547.589,366.072 544.051,351.92 C540.386,330.773 540.051,308.254 544.051,287.171 C547.531,274.839 552.314,262.919 560.838,253.597 C570.402,240.945 581.622,228.467 596.81,222.422 C644.094,203.599 699.929,162.469 728.707,116.904 C738.299,100.117 742.876,92.923 746.372,83.3305 C755.023,59.5988 762.66,34.3876 762.28,8.98871 L762.28,6.59059 L498.487,6.59059 L232.295,6.59059 L232.295,11.3868 C231.901,74.2274 269.048,130.868 313.831,172.061 C337.813,193.644 366.59,210.431 400.164,222.422 C412.154,227.218 416.951,229.616 426.543,239.208 C438.534,253.597 448.126,270.384 452.923,289.569 C455.827,317.286 453.654,346.577 445.728,373.503 L440.932,387.892 C438.534,397.484 431.339,411.873 419.349,435.854 C407.358,459.836 407.358,462.234 407.358,464.632 C412.154,479.021 440.932,488.613 484.098,493.409 C493.691,493.409 508.079,493.409 527.264,491.011 M325.822,409.475 C342.609,407.077 356.998,402.281 361.794,395.086 L361.794,392.688 L359.396,385.494 C342.609,354.318 333.016,327.939 333.016,301.56 C333.016,287.171 335.415,279.977 340.211,267.986 C347.405,255.995 349.803,252.125 361.794,247.329 C366.59,244.876 372.313,243.95 374.711,242.478 C380.979,240.625 388.173,236.81 388.173,236.81 C388.173,236.81 383.868,235.884 379.016,233.486 C364.628,228.69 359.396,224.82 347.405,217.625 C309.035,196.042 285.054,174.459 261.073,143.284 C253.878,131.293 250.156,125.996 246.684,121.163 L244.286,116.904 C241.888,114.506 145.963,114.506 143.565,116.904 C141.939,150.478 158.03,180.057 179.536,205.635 C204.661,235.514 225.101,244.005 244.286,248.801 C261.073,253.597 263.471,255.995 270.665,265.588 C275.462,277.578 277.86,284.773 277.86,299.161 C280.258,320.745 273.063,342.328 258.675,373.503 C253.878,383.096 249.082,392.688 249.082,392.688 C249.082,395.086 253.878,399.883 258.675,402.281 C270.665,409.475 304.239,414.271 325.822,409.475 M716.716,409.475 C735.901,407.077 747.892,402.281 750.29,395.086 C750.29,392.688 750.29,390.29 743.095,375.901 C728.008,346.118 717.597,310.72 726.308,277.578 C731.287,264.162 737.689,250.182 752.688,247.852 C776.669,240.658 795.854,229.616 819.835,205.635 C834.224,191.246 847.61,166.971 851.369,152.876 C854.382,141.577 858.172,128.066 855.807,116.904 C853.409,114.506 755.086,114.506 752.688,116.904 C752.688,116.904 750.29,119.302 747.892,121.7 C745.493,128.895 735.901,143.284 728.707,150.478 C719.114,162.469 690.337,191.246 680.744,198.44 C663.057,216.559 629.114,228.768 611.199,236.81 C613.597,239.208 625.587,246.403 635.18,248.801 C654.365,255.995 654.365,255.995 661.559,267.986 C666.355,279.977 668.754,287.171 668.754,301.56 C670.08,334.844 653.109,365.67 639.976,392.688 C657.022,411.883 692.824,411.394 716.716,409.475 Z" style="stroke:none;fill-rule:evenodd;fill:#ffffff;fill-opacity:1;"/>
|
||||
</g>
|
||||
<g id="Shape2">
|
||||
<desc shapeID="2" type="0" basicInfo-basicType="0" basicInfo-roundedRectRadius="12" basicInfo-polygonSides="6" basicInfo-starPoints="5" bounding="rect(-3.75,-28,7.5,56)" text="" font-familyName="" font-pixelSize="20" font-bold="0" font-underline="0" font-alignment="1" strokeStyle="0" markerStart="0" markerEnd="0" shadowEnabled="0" shadowOffsetX="0" shadowOffsetY="2" shadowBlur="4" shadowOpacity="160" blurEnabled="0" blurRadius="4" transform="matrix(1,0,0,1,417.25,99.5)" pers-center="0,0" pers-size="0,0" pers-start="0,0" pers-end="0,0" locked="0" mesh="" flag=""/>
|
||||
<path id="shapePath2" d="M413.5,127.5 C414,126.5 416,123 416.5,122.5 C416,123 414,126.5 413.5,127.5 M421,71.5 " style="stroke:none;fill-rule:evenodd;fill:#669020;fill-opacity:1;"/>
|
||||
</g>
|
||||
<g id="Shape3">
|
||||
<desc shapeID="3" type="0" basicInfo-basicType="0" basicInfo-roundedRectRadius="12" basicInfo-polygonSides="6" basicInfo-starPoints="5" bounding="rect(0,0,0,0)" text="" font-familyName="" font-pixelSize="20" font-bold="0" font-underline="0" font-alignment="1" strokeStyle="0" markerStart="0" markerEnd="0" shadowEnabled="0" shadowOffsetX="0" shadowOffsetY="2" shadowBlur="4" shadowOpacity="160" blurEnabled="0" blurRadius="4" transform="matrix(1,0,0,1,0,0)" pers-center="0,0" pers-size="0,0" pers-start="0,0" pers-end="0,0" locked="0" mesh="" flag=""/>
|
||||
<path id="shapePath3" d="M0,0 Z" style="stroke:none;fill-rule:evenodd;fill:#4c4c4c;fill-opacity:1;"/>
|
||||
</g>
|
||||
<g id="Shape4">
|
||||
<desc shapeID="4" type="0" basicInfo-basicType="0" basicInfo-roundedRectRadius="12" basicInfo-polygonSides="6" basicInfo-starPoints="5" bounding="rect(0,0,0,0)" text="" font-familyName="" font-pixelSize="20" font-bold="0" font-underline="0" font-alignment="1" strokeStyle="0" markerStart="0" markerEnd="0" shadowEnabled="0" shadowOffsetX="0" shadowOffsetY="2" shadowBlur="4" shadowOpacity="160" blurEnabled="0" blurRadius="4" transform="matrix(1,0,0,1,0,0)" pers-center="0,0" pers-size="0,0" pers-start="0,0" pers-end="0,0" locked="0" mesh="" flag=""/>
|
||||
<path id="shapePath4" d="M0,0 Z" style="stroke:none;fill-rule:evenodd;fill:#000000;fill-opacity:1;"/>
|
||||
</g>
|
||||
<g id="Shape5">
|
||||
<desc shapeID="5" type="0" basicInfo-basicType="0" basicInfo-roundedRectRadius="12" basicInfo-polygonSides="6" basicInfo-starPoints="5" bounding="rect(-84.6928,-47.6497,169.386,95.2993)" text="" font-familyName="" font-pixelSize="20" font-bold="0" font-underline="0" font-alignment="1" strokeStyle="0" markerStart="0" markerEnd="0" shadowEnabled="0" shadowOffsetX="0" shadowOffsetY="2" shadowBlur="4" shadowOpacity="160" blurEnabled="0" blurRadius="4" transform="matrix(1,0,0,1,90.9499,90.9738)" pers-center="0,0" pers-size="0,0" pers-start="0,0" pers-end="0,0" locked="0" mesh="" flag=""/>
|
||||
<path id="shapePath5" d="M0,0 Z" style="stroke:none;fill-rule:evenodd;fill:#0d0d0d;fill-opacity:1;"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 658 B |
After Width: | Height: | Size: 659 B |
After Width: | Height: | Size: 767 B |
After Width: | Height: | Size: 755 B |
After Width: | Height: | Size: 726 B |
After Width: | Height: | Size: 701 B |
After Width: | Height: | Size: 806 B |
After Width: | Height: | Size: 778 B |
After Width: | Height: | Size: 300 B |
After Width: | Height: | Size: 835 B |
After Width: | Height: | Size: 834 B |
After Width: | Height: | Size: 2.0 KiB |
|
@ -0,0 +1,21 @@
|
|||
// This is a manifest file that'll be compiled into application.js.
|
||||
//
|
||||
// Any JavaScript file within this directory can be referenced here using a relative path.
|
||||
//
|
||||
// You're free to add application-wide JavaScript to this file, but it's generally better
|
||||
// to create separate JavaScript files as needed.
|
||||
//
|
||||
//= require jquery-2.2.0.min
|
||||
//= require bootstrap
|
||||
//= require_tree .
|
||||
//= require_self
|
||||
|
||||
if (typeof jQuery !== 'undefined') {
|
||||
(function($) {
|
||||
$(document).ajaxStart(function() {
|
||||
$('#spinner').fadeIn();
|
||||
}).ajaxStop(function() {
|
||||
$('#spinner').fadeOut();
|
||||
});
|
||||
})(jQuery);
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
||||
* listed below.
|
||||
*
|
||||
* Any CSS file within this directory can be referenced here using a relative path.
|
||||
*
|
||||
* You're free to add application-wide styles to this file and they'll appear at the top of the
|
||||
* compiled file, but it's generally better to create a new file per style scope.
|
||||
*
|
||||
*= require bootstrap
|
||||
*= require grails
|
||||
*= require main
|
||||
*= require mobile
|
||||
*= require_self
|
||||
*/
|
|
@ -0,0 +1,109 @@
|
|||
h1, h2 {
|
||||
margin: 10px 25px 5px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.filename {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.exceptionMessage {
|
||||
margin: 10px;
|
||||
border: 1px solid #000;
|
||||
padding: 5px;
|
||||
background-color: #E9E9E9;
|
||||
}
|
||||
|
||||
.stack,
|
||||
.snippet {
|
||||
margin: 0 25px 10px;
|
||||
}
|
||||
|
||||
.stack,
|
||||
.snippet {
|
||||
border: 1px solid #ccc;
|
||||
-mox-box-shadow: 0 0 2px rgba(0,0,0,0.2);
|
||||
-webkit-box-shadow: 0 0 2px rgba(0,0,0,0.2);
|
||||
box-shadow: 0 0 2px rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
/* error details */
|
||||
.error-details {
|
||||
border-top: 1px solid #FFAAAA;
|
||||
-mox-box-shadow: 0 0 2px rgba(0,0,0,0.2);
|
||||
-webkit-box-shadow: 0 0 2px rgba(0,0,0,0.2);
|
||||
box-shadow: 0 0 2px rgba(0,0,0,0.2);
|
||||
border-bottom: 1px solid #FFAAAA;
|
||||
-mox-box-shadow: 0 0 2px rgba(0,0,0,0.2);
|
||||
-webkit-box-shadow: 0 0 2px rgba(0,0,0,0.2);
|
||||
box-shadow: 0 0 2px rgba(0,0,0,0.2);
|
||||
background-color:#FFF3F3;
|
||||
line-height: 1.5;
|
||||
overflow: hidden;
|
||||
padding: 5px;
|
||||
padding-left:25px;
|
||||
}
|
||||
|
||||
.error-details dt {
|
||||
clear: left;
|
||||
float: left;
|
||||
font-weight: bold;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.error-details dt:after {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
.error-details dd {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* stack trace */
|
||||
.stack {
|
||||
padding: 5px;
|
||||
overflow: auto;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
/* code snippet */
|
||||
.snippet {
|
||||
background-color: #fff;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.snippet .line {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.snippet .lineNumber {
|
||||
background-color: #ddd;
|
||||
color: #999;
|
||||
display: inline-block;
|
||||
margin-right: 5px;
|
||||
padding: 0 3px;
|
||||
text-align: right;
|
||||
width: 3em;
|
||||
}
|
||||
|
||||
.snippet .error {
|
||||
background-color: #fff3f3;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.snippet .error .lineNumber {
|
||||
background-color: #faa;
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.snippet .line:first-child .lineNumber {
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
.snippet .line:last-child .lineNumber {
|
||||
padding-bottom: 5px;
|
||||
}
|
|
@ -0,0 +1,574 @@
|
|||
/* FONT STACK */
|
||||
body,
|
||||
input, select, textarea {
|
||||
font-family: "Open Sans", "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
/* BASE LAYOUT */
|
||||
|
||||
html {
|
||||
background-color: #ddd;
|
||||
background-image: -moz-linear-gradient(center top, #aaa, #ddd);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #aaa), color-stop(1, #ddd));
|
||||
background-image: linear-gradient(top, #aaa, #ddd);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr = '#aaaaaa', EndColorStr = '#dddddd');
|
||||
background-repeat: no-repeat;
|
||||
height: 100%;
|
||||
/* change the box model to exclude the padding from the calculation of 100% height (IE8+) */
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html.no-cssgradients {
|
||||
background-color: #aaa;
|
||||
}
|
||||
|
||||
html * {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #F5F5F5;
|
||||
color: #333333;
|
||||
overflow-x: hidden; /* prevents box-shadow causing a horizontal scrollbar in firefox when viewport < 960px wide */
|
||||
-moz-box-shadow: 0 0 0.3em #424649;
|
||||
-webkit-box-shadow: 0 0 0.3em #424649;
|
||||
box-shadow: 0 0 0.3em #424649;
|
||||
}
|
||||
|
||||
#grailsLogo {
|
||||
background-color: #feb672;
|
||||
}
|
||||
|
||||
a:hover, a:active {
|
||||
outline: none; /* prevents outline in webkit on active links but retains it for tab focus */
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
font-weight: normal;
|
||||
font-size: 1.25em;
|
||||
margin: 0.8em 0 0.3em 0;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
img {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
/* GENERAL */
|
||||
|
||||
#grailsLogo a {
|
||||
display: inline-block;
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
.content {
|
||||
}
|
||||
|
||||
.content h1 {
|
||||
border-bottom: 1px solid #CCCCCC;
|
||||
margin: 0.8em 1em 0.3em;
|
||||
padding: 0 0.25em;
|
||||
}
|
||||
|
||||
.scaffold-list h1 {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.footer {
|
||||
background: #424649;
|
||||
color: #ffffff;
|
||||
clear: both;
|
||||
font-size: 0.8em;
|
||||
margin-top: 1.5em;
|
||||
padding: 1em;
|
||||
min-height: 1em;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: #feb672;
|
||||
}
|
||||
|
||||
.spinner {
|
||||
background: url(../images/spinner.gif) 50% 50% no-repeat transparent;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
padding: 0.5em;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
text-indent: -9999px;
|
||||
}
|
||||
|
||||
/* NAVIGATION MENU */
|
||||
|
||||
.nav {
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
.nav ul {
|
||||
overflow: hidden;
|
||||
padding-left: 0;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
.nav li {
|
||||
display: block;
|
||||
float: left;
|
||||
list-style-type: none;
|
||||
margin-right: 0.5em;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.nav a {
|
||||
color: #666666;
|
||||
display: block;
|
||||
padding: 0.25em 0.7em;
|
||||
text-decoration: none;
|
||||
-moz-border-radius: 0.3em;
|
||||
-webkit-border-radius: 0.3em;
|
||||
border-radius: 0.3em;
|
||||
}
|
||||
|
||||
.nav a:active, .nav a:visited {
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
.nav a:focus, .nav a:hover {
|
||||
background-color: #999999;
|
||||
color: #ffffff;
|
||||
outline: none;
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8);
|
||||
}
|
||||
|
||||
.no-borderradius .nav a:focus, .no-borderradius .nav a:hover {
|
||||
background-color: transparent;
|
||||
color: #444444;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.nav a.home, .nav a.list, .nav a.create {
|
||||
background-position: 0.7em center;
|
||||
background-repeat: no-repeat;
|
||||
text-indent: 25px;
|
||||
}
|
||||
|
||||
.nav a.home {
|
||||
background-image: url(../images/skin/house.png);
|
||||
}
|
||||
|
||||
.nav a.list {
|
||||
background-image: url(../images/skin/database_table.png);
|
||||
}
|
||||
|
||||
.nav a.create {
|
||||
background-image: url(../images/skin/database_add.png);
|
||||
}
|
||||
|
||||
.nav li.dropdown.open ul.dropdown-menu {
|
||||
background-color: #424649;
|
||||
}
|
||||
|
||||
/* CREATE/EDIT FORMS AND SHOW PAGES */
|
||||
|
||||
fieldset,
|
||||
.property-list {
|
||||
margin: 0.6em 1.25em 0 1.25em;
|
||||
padding: 0.3em 1.8em 1.25em;
|
||||
position: relative;
|
||||
zoom: 1;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.property-list .fieldcontain {
|
||||
list-style: none;
|
||||
overflow: hidden;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
.fieldcontain {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.fieldcontain label,
|
||||
.fieldcontain .property-label {
|
||||
color: #666666;
|
||||
text-align: right;
|
||||
width: 25%;
|
||||
}
|
||||
|
||||
.fieldcontain .property-label {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.fieldcontain .property-value {
|
||||
display: block;
|
||||
margin-left: 27%;
|
||||
}
|
||||
|
||||
label {
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
margin: 0 0.25em 0 0;
|
||||
}
|
||||
|
||||
input, select, textarea {
|
||||
background-color: #fcfcfc;
|
||||
border: 1px solid #cccccc;
|
||||
font-size: 1em;
|
||||
padding: 0.2em 0.4em;
|
||||
}
|
||||
|
||||
select {
|
||||
padding: 0.2em 0.2em 0.2em 0;
|
||||
}
|
||||
|
||||
select[multiple] {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
textarea {
|
||||
width: 250px;
|
||||
height: 150px;
|
||||
overflow: auto; /* IE always renders vertical scrollbar without this */
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
input[type=checkbox], input[type=radio] {
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
input:focus, select:focus, textarea:focus {
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #eeeeee;
|
||||
outline: 0;
|
||||
-moz-box-shadow: 0 0 0.5em #ffffff;
|
||||
-webkit-box-shadow: 0 0 0.5em #ffffff;
|
||||
box-shadow: 0 0 0.5em #ffffff;
|
||||
}
|
||||
|
||||
.required-indicator {
|
||||
color: #cc0000;
|
||||
display: inline-block;
|
||||
font-weight: bold;
|
||||
margin-left: 0.3em;
|
||||
position: relative;
|
||||
top: 0.1em;
|
||||
}
|
||||
|
||||
ul.one-to-many {
|
||||
display: inline-block;
|
||||
list-style-position: inside;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
ul.one-to-many li.add {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
/* EMBEDDED PROPERTIES */
|
||||
|
||||
fieldset.embedded {
|
||||
background-color: transparent;
|
||||
border: 1px solid #CCCCCC;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
-moz-box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
fieldset.embedded legend {
|
||||
margin: 0 1em;
|
||||
}
|
||||
|
||||
/* MESSAGES AND ERRORS */
|
||||
|
||||
.errors,
|
||||
.message {
|
||||
font-size: 0.8em;
|
||||
line-height: 2;
|
||||
margin: 1em 2em;
|
||||
padding: 0.25em;
|
||||
}
|
||||
|
||||
.message {
|
||||
background: #f3f3ff;
|
||||
border: 1px solid #b2d1ff;
|
||||
color: #006dba;
|
||||
-moz-box-shadow: 0 0 0.25em #b2d1ff;
|
||||
-webkit-box-shadow: 0 0 0.25em #b2d1ff;
|
||||
box-shadow: 0 0 0.25em #b2d1ff;
|
||||
}
|
||||
|
||||
.errors {
|
||||
background: #fff3f3;
|
||||
border: 1px solid #ffaaaa;
|
||||
color: #cc0000;
|
||||
-moz-box-shadow: 0 0 0.25em #ff8888;
|
||||
-webkit-box-shadow: 0 0 0.25em #ff8888;
|
||||
box-shadow: 0 0 0.25em #ff8888;
|
||||
}
|
||||
|
||||
.errors ul,
|
||||
.message {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.errors li {
|
||||
list-style: none;
|
||||
background: transparent url(../images/skin/exclamation.png) 0.5em 50% no-repeat;
|
||||
text-indent: 2.2em;
|
||||
}
|
||||
|
||||
.message {
|
||||
background: transparent url(../images/skin/information.png) 0.5em 50% no-repeat;
|
||||
text-indent: 2.2em;
|
||||
}
|
||||
|
||||
/* form fields with errors */
|
||||
|
||||
.error input, .error select, .error textarea {
|
||||
background: #fff3f3;
|
||||
border-color: #ffaaaa;
|
||||
color: #cc0000;
|
||||
}
|
||||
|
||||
.error input:focus, .error select:focus, .error textarea:focus {
|
||||
-moz-box-shadow: 0 0 0.5em #ffaaaa;
|
||||
-webkit-box-shadow: 0 0 0.5em #ffaaaa;
|
||||
box-shadow: 0 0 0.5em #ffaaaa;
|
||||
}
|
||||
|
||||
/* same effects for browsers that support HTML5 client-side validation (these have to be specified separately or IE will ignore the entire rule) */
|
||||
|
||||
input:invalid, select:invalid, textarea:invalid {
|
||||
background: #fff3f3;
|
||||
border-color: #ffaaaa;
|
||||
color: #cc0000;
|
||||
}
|
||||
|
||||
input:invalid:focus, select:invalid:focus, textarea:invalid:focus {
|
||||
-moz-box-shadow: 0 0 0.5em #ffaaaa;
|
||||
-webkit-box-shadow: 0 0 0.5em #ffaaaa;
|
||||
box-shadow: 0 0 0.5em #ffaaaa;
|
||||
}
|
||||
|
||||
/* TABLES */
|
||||
|
||||
table {
|
||||
border-top: 1px solid #DFDFDF;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
tr {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
tr>td:first-child, tr>th:first-child {
|
||||
padding-left: 1.25em;
|
||||
}
|
||||
|
||||
tr>td:last-child, tr>th:last-child {
|
||||
padding-right: 1.25em;
|
||||
}
|
||||
|
||||
td, th {
|
||||
line-height: 1.5em;
|
||||
padding: 0.5em 0.6em;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
th {
|
||||
background-color: #efefef;
|
||||
background-image: -moz-linear-gradient(top, #ffffff, #eaeaea);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ffffff), color-stop(1, #eaeaea));
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr = '#ffffff', EndColorStr = '#eaeaea');
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', EndColorStr='#eaeaea')";
|
||||
color: #666666;
|
||||
font-weight: bold;
|
||||
line-height: 1.7em;
|
||||
padding: 0.2em 0.6em;
|
||||
}
|
||||
|
||||
thead th {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
th a {
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
th a:link, th a:visited {
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
th a:hover, th a:focus {
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
th.sortable a {
|
||||
background-position: right;
|
||||
background-repeat: no-repeat;
|
||||
padding-right: 1.1em;
|
||||
}
|
||||
|
||||
th.asc a {
|
||||
background-image: url(../images/skin/sorted_asc.gif);
|
||||
}
|
||||
|
||||
th.desc a {
|
||||
background-image: url(../images/skin/sorted_desc.gif);
|
||||
}
|
||||
|
||||
.odd {
|
||||
background: #f7f7f7;
|
||||
}
|
||||
|
||||
.even {
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
th:hover, tr:hover {
|
||||
background: #f5f5f5;
|
||||
}
|
||||
|
||||
/* PAGINATION */
|
||||
|
||||
.pagination {
|
||||
border-top: 0;
|
||||
margin: 0.8em 1em 0.3em;
|
||||
padding: 0.3em 0.2em;
|
||||
text-align: center;
|
||||
-moz-box-shadow: 0 0 3px 1px #AAAAAA;
|
||||
-webkit-box-shadow: 0 0 3px 1px #AAAAAA;
|
||||
box-shadow: 0 0 3px 1px #AAAAAA;
|
||||
background-color: #EFEFEF;
|
||||
}
|
||||
|
||||
.pagination a,
|
||||
.pagination .currentStep {
|
||||
color: #666666;
|
||||
display: inline-block;
|
||||
margin: 0 0.1em;
|
||||
padding: 0.25em 0.7em;
|
||||
text-decoration: none;
|
||||
-moz-border-radius: 0.3em;
|
||||
-webkit-border-radius: 0.3em;
|
||||
border-radius: 0.3em;
|
||||
}
|
||||
|
||||
.pagination a:hover, .pagination a:focus,
|
||||
.pagination .currentStep {
|
||||
background-color: #999999;
|
||||
color: #ffffff;
|
||||
outline: none;
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8);
|
||||
}
|
||||
|
||||
.no-borderradius .pagination a:hover, .no-borderradius .pagination a:focus,
|
||||
.no-borderradius .pagination .currentStep {
|
||||
background-color: transparent;
|
||||
color: #444444;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* ACTION BUTTONS */
|
||||
|
||||
.buttons {
|
||||
background-color: #efefef;
|
||||
overflow: hidden;
|
||||
padding: 0.3em;
|
||||
-moz-box-shadow: 0 0 3px 1px #aaaaaa;
|
||||
-webkit-box-shadow: 0 0 3px 1px #aaaaaa;
|
||||
box-shadow: 0 0 3px 1px #aaaaaa;
|
||||
margin: 0.1em 0 0 0;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.buttons input,
|
||||
.buttons a {
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
color: #666666;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
margin: 0 0.25em 0;
|
||||
overflow: visible;
|
||||
padding: 0.25em 0.7em;
|
||||
text-decoration: none;
|
||||
|
||||
-moz-border-radius: 0.3em;
|
||||
-webkit-border-radius: 0.3em;
|
||||
border-radius: 0.3em;
|
||||
}
|
||||
|
||||
.buttons input:hover, .buttons input:focus,
|
||||
.buttons a:hover, .buttons a:focus {
|
||||
background-color: #999999;
|
||||
color: #ffffff;
|
||||
outline: none;
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.8);
|
||||
-moz-box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.no-borderradius .buttons input:hover, .no-borderradius .buttons input:focus,
|
||||
.no-borderradius .buttons a:hover, .no-borderradius .buttons a:focus {
|
||||
background-color: transparent;
|
||||
color: #444444;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.buttons .delete, .buttons .edit, .buttons .save {
|
||||
background-position: 0.7em center;
|
||||
background-repeat: no-repeat;
|
||||
text-indent: 25px;
|
||||
}
|
||||
|
||||
.buttons .delete {
|
||||
background-image: url(../images/skin/database_delete.png);
|
||||
}
|
||||
|
||||
.buttons .edit {
|
||||
background-image: url(../images/skin/database_edit.png);
|
||||
}
|
||||
|
||||
.buttons .save {
|
||||
background-image: url(../images/skin/database_save.png);
|
||||
}
|
||||
|
||||
a.skip {
|
||||
position: absolute;
|
||||
left: -9999px;
|
||||
}
|
||||
|
||||
.grails-logo-container {
|
||||
background: #7c7c7c no-repeat 50% 30%;
|
||||
margin-bottom: 20px;
|
||||
color: white;
|
||||
height:300px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
img.grails-logo {
|
||||
height:340px;
|
||||
margin-top:-10px;
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
/* Styles for mobile devices */
|
||||
|
||||
@media screen and (max-width: 480px) {
|
||||
.nav {
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.nav li {
|
||||
margin: 0 0.5em 0 0;
|
||||
padding: 0.25em;
|
||||
}
|
||||
|
||||
/* Hide individual steps in pagination, just have next & previous */
|
||||
.pagination .step, .pagination .currentStep {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.pagination .prevLink {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.pagination .nextLink {
|
||||
float: right;
|
||||
}
|
||||
|
||||
/* pagination needs to wrap around floated buttons */
|
||||
.pagination {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* slightly smaller margin around content body */
|
||||
fieldset,
|
||||
.property-list {
|
||||
padding: 0.3em 1em 1em;
|
||||
}
|
||||
|
||||
input, textarea {
|
||||
width: 100%;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
select, input[type=checkbox], input[type=radio], input[type=submit], input[type=button], input[type=reset] {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
/* hide all but the first column of list tables */
|
||||
.scaffold-list td:not(:first-child),
|
||||
.scaffold-list th:not(:first-child) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.scaffold-list thead th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* stack form elements */
|
||||
.fieldcontain {
|
||||
margin-top: 0.6em;
|
||||
}
|
||||
|
||||
.fieldcontain label,
|
||||
.fieldcontain .property-label,
|
||||
.fieldcontain .property-value {
|
||||
display: block;
|
||||
float: none;
|
||||
margin: 0 0 0.25em 0;
|
||||
text-align: left;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.errors ul,
|
||||
.message p {
|
||||
margin: 0.5em;
|
||||
}
|
||||
|
||||
.error ul {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,128 @@
|
|||
---
|
||||
grails:
|
||||
profile: web
|
||||
codegen:
|
||||
defaultPackage: grails
|
||||
gorm:
|
||||
reactor:
|
||||
# Whether to translate GORM events into Reactor events
|
||||
# Disabled by default for performance reasons
|
||||
events: false
|
||||
info:
|
||||
app:
|
||||
name: '@info.app.name@'
|
||||
version: '@info.app.version@'
|
||||
grailsVersion: '@info.app.grailsVersion@'
|
||||
spring:
|
||||
main:
|
||||
banner-mode: "off"
|
||||
groovy:
|
||||
template:
|
||||
check-template-location: false
|
||||
|
||||
# Spring Actuator Endpoints are Disabled by Default
|
||||
endpoints:
|
||||
enabled: false
|
||||
jmx:
|
||||
enabled: true
|
||||
|
||||
---
|
||||
grails:
|
||||
mime:
|
||||
disable:
|
||||
accept:
|
||||
header:
|
||||
userAgents:
|
||||
- Gecko
|
||||
- WebKit
|
||||
- Presto
|
||||
- Trident
|
||||
types:
|
||||
all: '*/*'
|
||||
atom: application/atom+xml
|
||||
css: text/css
|
||||
csv: text/csv
|
||||
form: application/x-www-form-urlencoded
|
||||
html:
|
||||
- text/html
|
||||
- application/xhtml+xml
|
||||
js: text/javascript
|
||||
json:
|
||||
- application/json
|
||||
- text/json
|
||||
multipartForm: multipart/form-data
|
||||
pdf: application/pdf
|
||||
rss: application/rss+xml
|
||||
text: text/plain
|
||||
hal:
|
||||
- application/hal+json
|
||||
- application/hal+xml
|
||||
xml:
|
||||
- text/xml
|
||||
- application/xml
|
||||
urlmapping:
|
||||
cache:
|
||||
maxsize: 1000
|
||||
controllers:
|
||||
defaultScope: singleton
|
||||
converters:
|
||||
encoding: UTF-8
|
||||
views:
|
||||
default:
|
||||
codec: html
|
||||
gsp:
|
||||
encoding: UTF-8
|
||||
htmlcodec: xml
|
||||
codecs:
|
||||
expression: html
|
||||
scriptlets: html
|
||||
taglib: none
|
||||
staticparts: none
|
||||
endpoints:
|
||||
jmx:
|
||||
unique-names: true
|
||||
|
||||
---
|
||||
hibernate:
|
||||
cache:
|
||||
queries: false
|
||||
use_second_level_cache: false
|
||||
use_query_cache: false
|
||||
dataSource:
|
||||
pooled: true
|
||||
jmxExport: true
|
||||
driverClassName: org.h2.Driver
|
||||
username: sa
|
||||
password: ''
|
||||
|
||||
environments:
|
||||
development:
|
||||
dataSource:
|
||||
dbCreate: create-drop
|
||||
url: jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
|
||||
test:
|
||||
dataSource:
|
||||
dbCreate: update
|
||||
url: jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
|
||||
production:
|
||||
dataSource:
|
||||
dbCreate: none
|
||||
url: jdbc:h2:./prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
|
||||
properties:
|
||||
jmxEnabled: true
|
||||
initialSize: 5
|
||||
maxActive: 50
|
||||
minIdle: 5
|
||||
maxIdle: 25
|
||||
maxWait: 10000
|
||||
maxAge: 600000
|
||||
timeBetweenEvictionRunsMillis: 5000
|
||||
minEvictableIdleTimeMillis: 60000
|
||||
validationQuery: SELECT 1
|
||||
validationQueryTimeout: 3
|
||||
validationInterval: 15000
|
||||
testOnBorrow: true
|
||||
testWhileIdle: true
|
||||
testOnReturn: false
|
||||
jdbcInterceptors: ConnectionState
|
||||
defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED
|
|
@ -0,0 +1,36 @@
|
|||
import grails.util.BuildSettings
|
||||
import grails.util.Environment
|
||||
import org.springframework.boot.logging.logback.ColorConverter
|
||||
import org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter
|
||||
|
||||
import java.nio.charset.Charset
|
||||
|
||||
conversionRule 'clr', ColorConverter
|
||||
conversionRule 'wex', WhitespaceThrowableProxyConverter
|
||||
|
||||
// See http://logback.qos.ch/manual/groovy.html for details on configuration
|
||||
appender('STDOUT', ConsoleAppender) {
|
||||
encoder(PatternLayoutEncoder) {
|
||||
charset = Charset.forName('UTF-8')
|
||||
|
||||
pattern =
|
||||
'%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} ' + // Date
|
||||
'%clr(%5p) ' + // Log level
|
||||
'%clr(---){faint} %clr([%15.15t]){faint} ' + // Thread
|
||||
'%clr(%-40.40logger{39}){cyan} %clr(:){faint} ' + // Logger
|
||||
'%m%n%wex' // Message
|
||||
}
|
||||
}
|
||||
|
||||
def targetDir = BuildSettings.TARGET_DIR
|
||||
if (Environment.isDevelopmentMode() && targetDir != null) {
|
||||
appender("FULL_STACKTRACE", FileAppender) {
|
||||
file = "${targetDir}/stacktrace.log"
|
||||
append = true
|
||||
encoder(PatternLayoutEncoder) {
|
||||
pattern = "%level %logger - %msg%n"
|
||||
}
|
||||
}
|
||||
logger("StackTrace", ERROR, ['FULL_STACKTRACE'], false)
|
||||
}
|
||||
root(ERROR, ['STDOUT'])
|
|
@ -0,0 +1,3 @@
|
|||
// Place your Spring DSL code here
|
||||
beans = {
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package com.baeldung.grails
|
||||
|
||||
class StudentController {
|
||||
|
||||
StudentService studentService
|
||||
|
||||
static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]
|
||||
|
||||
def index() {
|
||||
respond studentService.list()
|
||||
}
|
||||
|
||||
def show(Long id) {
|
||||
respond studentService.get(id)
|
||||
}
|
||||
|
||||
def create() {
|
||||
respond new Student(params)
|
||||
}
|
||||
|
||||
def save(Student student) {
|
||||
studentService.save(student)
|
||||
redirect action:"index", method:"GET"
|
||||
}
|
||||
|
||||
def delete(Long id) {
|
||||
studentService.delete(id)
|
||||
redirect action:"index", method:"GET"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package grails
|
||||
|
||||
class UrlMappings {
|
||||
|
||||
static mappings = {
|
||||
"/$controller/$action?/$id?(.$format)?"{
|
||||
constraints {
|
||||
// apply constraints here
|
||||
}
|
||||
}
|
||||
|
||||
"/"(view:"/index")
|
||||
"500"(view:'/error')
|
||||
"404"(view:'/notFound')
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
package com.baeldung.grails
|
||||
|
||||
class Student {
|
||||
String firstName
|
||||
String lastName
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
default.doesnt.match.message=Property [{0}] of class [{1}] with value [{2}] does not match the required pattern [{3}]
|
||||
default.invalid.url.message=Property [{0}] of class [{1}] with value [{2}] is not a valid URL
|
||||
default.invalid.creditCard.message=Property [{0}] of class [{1}] with value [{2}] is not a valid credit card number
|
||||
default.invalid.email.message=Property [{0}] of class [{1}] with value [{2}] is not a valid e-mail address
|
||||
default.invalid.range.message=Property [{0}] of class [{1}] with value [{2}] does not fall within the valid range from [{3}] to [{4}]
|
||||
default.invalid.size.message=Property [{0}] of class [{1}] with value [{2}] does not fall within the valid size range from [{3}] to [{4}]
|
||||
default.invalid.max.message=Property [{0}] of class [{1}] with value [{2}] exceeds maximum value [{3}]
|
||||
default.invalid.min.message=Property [{0}] of class [{1}] with value [{2}] is less than minimum value [{3}]
|
||||
default.invalid.max.size.message=Property [{0}] of class [{1}] with value [{2}] exceeds the maximum size of [{3}]
|
||||
default.invalid.min.size.message=Property [{0}] of class [{1}] with value [{2}] is less than the minimum size of [{3}]
|
||||
default.invalid.validator.message=Property [{0}] of class [{1}] with value [{2}] does not pass custom validation
|
||||
default.not.inlist.message=Property [{0}] of class [{1}] with value [{2}] is not contained within the list [{3}]
|
||||
default.blank.message=Property [{0}] of class [{1}] cannot be blank
|
||||
default.not.equal.message=Property [{0}] of class [{1}] with value [{2}] cannot equal [{3}]
|
||||
default.null.message=Property [{0}] of class [{1}] cannot be null
|
||||
default.not.unique.message=Property [{0}] of class [{1}] with value [{2}] must be unique
|
||||
|
||||
default.paginate.prev=Previous
|
||||
default.paginate.next=Next
|
||||
default.boolean.true=True
|
||||
default.boolean.false=False
|
||||
default.date.format=yyyy-MM-dd HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} created
|
||||
default.updated.message={0} {1} updated
|
||||
default.deleted.message={0} {1} deleted
|
||||
default.not.deleted.message={0} {1} could not be deleted
|
||||
default.not.found.message={0} not found with id {1}
|
||||
default.optimistic.locking.failure=Another user has updated this {0} while you were editing
|
||||
|
||||
default.home.label=Home
|
||||
default.list.label={0} List
|
||||
default.add.label=Add {0}
|
||||
default.new.label=New {0}
|
||||
default.create.label=Create {0}
|
||||
default.show.label=Show {0}
|
||||
default.edit.label=Edit {0}
|
||||
|
||||
default.button.create.label=Create
|
||||
default.button.edit.label=Edit
|
||||
default.button.update.label=Update
|
||||
default.button.delete.label=Delete
|
||||
default.button.delete.confirm.message=Are you sure?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=Property {0} must be a valid URL
|
||||
typeMismatch.java.net.URI=Property {0} must be a valid URI
|
||||
typeMismatch.java.util.Date=Property {0} must be a valid Date
|
||||
typeMismatch.java.lang.Double=Property {0} must be a valid number
|
||||
typeMismatch.java.lang.Integer=Property {0} must be a valid number
|
||||
typeMismatch.java.lang.Long=Property {0} must be a valid number
|
||||
typeMismatch.java.lang.Short=Property {0} must be a valid number
|
||||
typeMismatch.java.math.BigDecimal=Property {0} must be a valid number
|
||||
typeMismatch.java.math.BigInteger=Property {0} must be a valid number
|
||||
typeMismatch=Property {0} is type-mismatched
|
|
@ -0,0 +1,55 @@
|
|||
default.doesnt.match.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] neodpovídá požadovanému vzoru [{3}]
|
||||
default.invalid.url.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není validní URL
|
||||
default.invalid.creditCard.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není validní číslo kreditní karty
|
||||
default.invalid.email.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není validní emailová adresa
|
||||
default.invalid.range.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není v povoleném rozmezí od [{3}] do [{4}]
|
||||
default.invalid.size.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není v povoleném rozmezí od [{3}] do [{4}]
|
||||
default.invalid.max.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] překračuje maximální povolenou hodnotu [{3}]
|
||||
default.invalid.min.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] je menší než minimální povolená hodnota [{3}]
|
||||
default.invalid.max.size.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] překračuje maximální velikost [{3}]
|
||||
default.invalid.min.size.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] je menší než minimální velikost [{3}]
|
||||
default.invalid.validator.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] neprošla validací
|
||||
default.not.inlist.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] není obsažena v seznamu [{3}]
|
||||
default.blank.message=Položka [{0}] třídy [{1}] nemůže být prázdná
|
||||
default.not.equal.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] nemůže být stejná jako [{3}]
|
||||
default.null.message=Položka [{0}] třídy [{1}] nemůže být prázdná
|
||||
default.not.unique.message=Položka [{0}] třídy [{1}] o hodnotě [{2}] musí být unikátní
|
||||
|
||||
default.paginate.prev=Předcházející
|
||||
default.paginate.next=Následující
|
||||
default.boolean.true=Pravda
|
||||
default.boolean.false=Nepravda
|
||||
default.date.format=dd. MM. yyyy HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} vytvořeno
|
||||
default.updated.message={0} {1} aktualizováno
|
||||
default.deleted.message={0} {1} smazáno
|
||||
default.not.deleted.message={0} {1} nelze smazat
|
||||
default.not.found.message={0} nenalezen s id {1}
|
||||
default.optimistic.locking.failure=Jiný uživatel aktualizoval záznam {0}, právě když byl vámi editován
|
||||
|
||||
default.home.label=Domů
|
||||
default.list.label={0} Seznam
|
||||
default.add.label=Přidat {0}
|
||||
default.new.label=Nový {0}
|
||||
default.create.label=Vytvořit {0}
|
||||
default.show.label=Ukázat {0}
|
||||
default.edit.label=Editovat {0}
|
||||
|
||||
default.button.create.label=Vytvoř
|
||||
default.button.edit.label=Edituj
|
||||
default.button.update.label=Aktualizuj
|
||||
default.button.delete.label=Smaž
|
||||
default.button.delete.confirm.message=Jste si jistý?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=Položka {0} musí být validní URL
|
||||
typeMismatch.java.net.URI=Položka {0} musí být validní URI
|
||||
typeMismatch.java.util.Date=Položka {0} musí být validní datum
|
||||
typeMismatch.java.lang.Double=Položka {0} musí být validní desetinné číslo
|
||||
typeMismatch.java.lang.Integer=Položka {0} musí být validní číslo
|
||||
typeMismatch.java.lang.Long=Položka {0} musí být validní číslo
|
||||
typeMismatch.java.lang.Short=Položka {0} musí být validní číslo
|
||||
typeMismatch.java.math.BigDecimal=Položka {0} musí být validní číslo
|
||||
typeMismatch.java.math.BigInteger=Položka {0} musí být validní číslo
|
|
@ -0,0 +1,56 @@
|
|||
default.doesnt.match.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] overholder ikke mønsteret [{3}]
|
||||
default.invalid.url.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] er ikke en gyldig URL
|
||||
default.invalid.creditCard.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] er ikke et gyldigt kreditkortnummer
|
||||
default.invalid.email.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] er ikke en gyldig e-mail adresse
|
||||
default.invalid.range.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] ligger ikke inden for intervallet fra [{3}] til [{4}]
|
||||
default.invalid.size.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] ligger ikke inden for størrelsen fra [{3}] til [{4}]
|
||||
default.invalid.max.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] overstiger den maksimale værdi [{3}]
|
||||
default.invalid.min.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] er under den minimale værdi [{3}]
|
||||
default.invalid.max.size.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] overstiger den maksimale størrelse på [{3}]
|
||||
default.invalid.min.size.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] er under den minimale størrelse på [{3}]
|
||||
default.invalid.validator.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] overholder ikke den brugerdefinerede validering
|
||||
default.not.inlist.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] findes ikke i listen [{3}]
|
||||
default.blank.message=Feltet [{0}] i klassen [{1}] kan ikke være tom
|
||||
default.not.equal.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] må ikke være [{3}]
|
||||
default.null.message=Feltet [{0}] i klassen [{1}] kan ikke være null
|
||||
default.not.unique.message=Feltet [{0}] i klassen [{1}] som har værdien [{2}] skal være unik
|
||||
|
||||
default.paginate.prev=Forrige
|
||||
default.paginate.next=Næste
|
||||
default.boolean.true=Sand
|
||||
default.boolean.false=Falsk
|
||||
default.date.format=yyyy-MM-dd HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} oprettet
|
||||
default.updated.message={0} {1} opdateret
|
||||
default.deleted.message={0} {1} slettet
|
||||
default.not.deleted.message={0} {1} kunne ikke slettes
|
||||
default.not.found.message={0} med id {1} er ikke fundet
|
||||
default.optimistic.locking.failure=En anden bruger har opdateret denne {0} imens du har lavet rettelser
|
||||
|
||||
default.home.label=Hjem
|
||||
default.list.label={0} Liste
|
||||
default.add.label=Tilføj {0}
|
||||
default.new.label=Ny {0}
|
||||
default.create.label=Opret {0}
|
||||
default.show.label=Vis {0}
|
||||
default.edit.label=Ret {0}
|
||||
|
||||
default.button.create.label=Opret
|
||||
default.button.edit.label=Ret
|
||||
default.button.update.label=Opdater
|
||||
default.button.delete.label=Slet
|
||||
default.button.delete.confirm.message=Er du sikker?
|
||||
|
||||
# Databindingsfejl. Brug "typeMismatch.$className.$propertyName for at passe til en given klasse (f.eks typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=Feltet {0} skal være en valid URL
|
||||
typeMismatch.java.net.URI=Feltet {0} skal være en valid URI
|
||||
typeMismatch.java.util.Date=Feltet {0} skal være en valid Dato
|
||||
typeMismatch.java.lang.Double=Feltet {0} skal være et valid tal
|
||||
typeMismatch.java.lang.Integer=Feltet {0} skal være et valid tal
|
||||
typeMismatch.java.lang.Long=Feltet {0} skal være et valid tal
|
||||
typeMismatch.java.lang.Short=Feltet {0} skal være et valid tal
|
||||
typeMismatch.java.math.BigDecimal=Feltet {0} skal være et valid tal
|
||||
typeMismatch.java.math.BigInteger=Feltet {0} skal være et valid tal
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
default.doesnt.match.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] entspricht nicht dem vorgegebenen Muster [{3}]
|
||||
default.invalid.url.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige URL
|
||||
default.invalid.creditCard.message=Das Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige Kreditkartennummer
|
||||
default.invalid.email.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist keine gültige E-Mail Adresse
|
||||
default.invalid.range.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht im Wertebereich von [{3}] bis [{4}]
|
||||
default.invalid.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht im Wertebereich von [{3}] bis [{4}]
|
||||
default.invalid.max.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist größer als der Höchstwert von [{3}]
|
||||
default.invalid.min.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist kleiner als der Mindestwert von [{3}]
|
||||
default.invalid.max.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] übersteigt den Höchstwert von [{3}]
|
||||
default.invalid.min.size.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] unterschreitet den Mindestwert von [{3}]
|
||||
default.invalid.validator.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist ungültig
|
||||
default.not.inlist.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] ist nicht in der Liste [{3}] enthalten.
|
||||
default.blank.message=Die Eigenschaft [{0}] des Typs [{1}] darf nicht leer sein
|
||||
default.not.equal.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] darf nicht gleich [{3}] sein
|
||||
default.null.message=Die Eigenschaft [{0}] des Typs [{1}] darf nicht null sein
|
||||
default.not.unique.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] darf nur einmal vorkommen
|
||||
|
||||
default.paginate.prev=Vorherige
|
||||
default.paginate.next=Nächste
|
||||
default.boolean.true=Wahr
|
||||
default.boolean.false=Falsch
|
||||
default.date.format=dd.MM.yyyy HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} wurde angelegt
|
||||
default.updated.message={0} {1} wurde geändert
|
||||
default.deleted.message={0} {1} wurde gelöscht
|
||||
default.not.deleted.message={0} {1} konnte nicht gelöscht werden
|
||||
default.not.found.message={0} mit der id {1} wurde nicht gefunden
|
||||
default.optimistic.locking.failure=Ein anderer Benutzer hat das {0} Object geändert während Sie es bearbeitet haben
|
||||
|
||||
default.home.label=Home
|
||||
default.list.label={0} Liste
|
||||
default.add.label={0} hinzufügen
|
||||
default.new.label={0} anlegen
|
||||
default.create.label={0} anlegen
|
||||
default.show.label={0} anzeigen
|
||||
default.edit.label={0} bearbeiten
|
||||
|
||||
default.button.create.label=Anlegen
|
||||
default.button.edit.label=Bearbeiten
|
||||
default.button.update.label=Aktualisieren
|
||||
default.button.delete.label=Löschen
|
||||
default.button.delete.confirm.message=Sind Sie sicher?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=Die Eigenschaft {0} muss eine gültige URL sein
|
||||
typeMismatch.java.net.URI=Die Eigenschaft {0} muss eine gültige URI sein
|
||||
typeMismatch.java.util.Date=Die Eigenschaft {0} muss ein gültiges Datum sein
|
||||
typeMismatch.java.lang.Double=Die Eigenschaft {0} muss eine gültige Zahl sein
|
||||
typeMismatch.java.lang.Integer=Die Eigenschaft {0} muss eine gültige Zahl sein
|
||||
typeMismatch.java.lang.Long=Die Eigenschaft {0} muss eine gültige Zahl sein
|
||||
typeMismatch.java.lang.Short=Die Eigenschaft {0} muss eine gültige Zahl sein
|
||||
typeMismatch.java.math.BigDecimal=Die Eigenschaft {0} muss eine gültige Zahl sein
|
||||
typeMismatch.java.math.BigInteger=Die Eigenschaft {0} muss eine gültige Zahl sein
|
|
@ -0,0 +1,55 @@
|
|||
default.doesnt.match.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no corresponde al patrón [{3}]
|
||||
default.invalid.url.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no es una URL válida
|
||||
default.invalid.creditCard.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no es un número de tarjeta de crédito válida
|
||||
default.invalid.email.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no es una dirección de correo electrónico válida
|
||||
default.invalid.range.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no entra en el rango válido de [{3}] a [{4}]
|
||||
default.invalid.size.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no entra en el tamaño válido de [{3}] a [{4}]
|
||||
default.invalid.max.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] excede el valor máximo [{3}]
|
||||
default.invalid.min.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] es menos que el valor mínimo [{3}]
|
||||
default.invalid.max.size.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] excede el tamaño máximo de [{3}]
|
||||
default.invalid.min.size.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] es menor que el tamaño mínimo de [{3}]
|
||||
default.invalid.validator.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no es válido
|
||||
default.not.inlist.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no esta contenido dentro de la lista [{3}]
|
||||
default.blank.message=La propiedad [{0}] de la clase [{1}] no puede ser vacía
|
||||
default.not.equal.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] no puede igualar a [{3}]
|
||||
default.null.message=La propiedad [{0}] de la clase [{1}] no puede ser nulo
|
||||
default.not.unique.message=La propiedad [{0}] de la clase [{1}] con valor [{2}] debe ser única
|
||||
|
||||
default.paginate.prev=Anterior
|
||||
default.paginate.next=Siguiente
|
||||
default.boolean.true=Verdadero
|
||||
default.boolean.false=Falso
|
||||
default.date.format=yyyy-MM-dd HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} creado
|
||||
default.updated.message={0} {1} actualizado
|
||||
default.deleted.message={0} {1} eliminado
|
||||
default.not.deleted.message={0} {1} no puede eliminarse
|
||||
default.not.found.message=No se encuentra {0} con id {1}
|
||||
default.optimistic.locking.failure=Mientras usted editaba, otro usuario ha actualizado su {0}
|
||||
|
||||
default.home.label=Principal
|
||||
default.list.label={0} Lista
|
||||
default.add.label=Agregar {0}
|
||||
default.new.label=Nuevo {0}
|
||||
default.create.label=Crear {0}
|
||||
default.show.label=Mostrar {0}
|
||||
default.edit.label=Editar {0}
|
||||
|
||||
default.button.create.label=Crear
|
||||
default.button.edit.label=Editar
|
||||
default.button.update.label=Actualizar
|
||||
default.button.delete.label=Eliminar
|
||||
default.button.delete.confirm.message=¿Está usted seguro?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=La propiedad {0} debe ser una URL válida
|
||||
typeMismatch.java.net.URI=La propiedad {0} debe ser una URI válida
|
||||
typeMismatch.java.util.Date=La propiedad {0} debe ser una fecha válida
|
||||
typeMismatch.java.lang.Double=La propiedad {0} debe ser un número válido
|
||||
typeMismatch.java.lang.Integer=La propiedad {0} debe ser un número válido
|
||||
typeMismatch.java.lang.Long=La propiedad {0} debe ser un número válido
|
||||
typeMismatch.java.lang.Short=La propiedad {0} debe ser un número válido
|
||||
typeMismatch.java.math.BigDecimal=La propiedad {0} debe ser un número válido
|
||||
typeMismatch.java.math.BigInteger=La propiedad {0} debe ser un número válido
|
|
@ -0,0 +1,19 @@
|
|||
default.doesnt.match.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne correspond pas au pattern [{3}]
|
||||
default.invalid.url.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas une URL valide
|
||||
default.invalid.creditCard.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas un numéro de carte de crédit valide
|
||||
default.invalid.email.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas une adresse e-mail valide
|
||||
default.invalid.range.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas contenue dans l'intervalle [{3}] à [{4}]
|
||||
default.invalid.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas contenue dans l'intervalle [{3}] à [{4}]
|
||||
default.invalid.max.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est supérieure à la valeur maximum [{3}]
|
||||
default.invalid.min.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est inférieure à la valeur minimum [{3}]
|
||||
default.invalid.max.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est supérieure à la valeur maximum [{3}]
|
||||
default.invalid.min.size.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] est inférieure à la valeur minimum [{3}]
|
||||
default.invalid.validator.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] n'est pas valide
|
||||
default.not.inlist.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne fait pas partie de la liste [{3}]
|
||||
default.blank.message=La propriété [{0}] de la classe [{1}] ne peut pas être vide
|
||||
default.not.equal.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] ne peut pas être égale à [{3}]
|
||||
default.null.message=La propriété [{0}] de la classe [{1}] ne peut pas être nulle
|
||||
default.not.unique.message=La propriété [{0}] de la classe [{1}] avec la valeur [{2}] doit être unique
|
||||
|
||||
default.paginate.prev=Précédent
|
||||
default.paginate.next=Suivant
|
|
@ -0,0 +1,55 @@
|
|||
default.doesnt.match.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non corrisponde al pattern [{3}]
|
||||
default.invalid.url.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un URL valido
|
||||
default.invalid.creditCard.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un numero di carta di credito valido
|
||||
default.invalid.email.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è un indirizzo email valido
|
||||
default.invalid.range.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non rientra nell'intervallo valido da [{3}] a [{4}]
|
||||
default.invalid.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non rientra nell'intervallo di dimensioni valide da [{3}] a [{4}]
|
||||
default.invalid.max.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è maggiore di [{3}]
|
||||
default.invalid.min.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è minore di [{3}]
|
||||
default.invalid.max.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è maggiore di [{3}]
|
||||
default.invalid.min.size.message=La proprietà [{0}] della classe [{1}] con valore [{2}] è minore di [{3}]
|
||||
default.invalid.validator.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è valida
|
||||
default.not.inlist.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non è contenuta nella lista [{3}]
|
||||
default.blank.message=La proprietà [{0}] della classe [{1}] non può essere vuota
|
||||
default.not.equal.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non può essere uguale a [{3}]
|
||||
default.null.message=La proprietà [{0}] della classe [{1}] non può essere null
|
||||
default.not.unique.message=La proprietà [{0}] della classe [{1}] con valore [{2}] deve essere unica
|
||||
|
||||
default.paginate.prev=Precedente
|
||||
default.paginate.next=Successivo
|
||||
default.boolean.true=Vero
|
||||
default.boolean.false=Falso
|
||||
default.date.format=dd/MM/yyyy HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} creato
|
||||
default.updated.message={0} {1} aggiornato
|
||||
default.deleted.message={0} {1} eliminato
|
||||
default.not.deleted.message={0} {1} non può essere eliminato
|
||||
default.not.found.message={0} non trovato con id {1}
|
||||
default.optimistic.locking.failure=Un altro utente ha aggiornato questo {0} mentre si era in modifica
|
||||
|
||||
default.home.label=Home
|
||||
default.list.label={0} Elenco
|
||||
default.add.label=Aggiungi {0}
|
||||
default.new.label=Nuovo {0}
|
||||
default.create.label=Crea {0}
|
||||
default.show.label=Mostra {0}
|
||||
default.edit.label=Modifica {0}
|
||||
|
||||
default.button.create.label=Crea
|
||||
default.button.edit.label=Modifica
|
||||
default.button.update.label=Aggiorna
|
||||
default.button.delete.label=Elimina
|
||||
default.button.delete.confirm.message=Si è sicuri?
|
||||
|
||||
# Data binding errors. Usa "typeMismatch.$className.$propertyName per la personalizzazione (es typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=La proprietà {0} deve essere un URL valido
|
||||
typeMismatch.java.net.URI=La proprietà {0} deve essere un URI valido
|
||||
typeMismatch.java.util.Date=La proprietà {0} deve essere una data valida
|
||||
typeMismatch.java.lang.Double=La proprietà {0} deve essere un numero valido
|
||||
typeMismatch.java.lang.Integer=La proprietà {0} deve essere un numero valido
|
||||
typeMismatch.java.lang.Long=La proprietà {0} deve essere un numero valido
|
||||
typeMismatch.java.lang.Short=La proprietà {0} deve essere un numero valido
|
||||
typeMismatch.java.math.BigDecimal=La proprietà {0} deve essere un numero valido
|
||||
typeMismatch.java.math.BigInteger=La proprietà {0} deve essere un numero valido
|
|
@ -0,0 +1,55 @@
|
|||
default.doesnt.match.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]パターンと一致していません。
|
||||
default.invalid.url.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なURLではありません。
|
||||
default.invalid.creditCard.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なクレジットカード番号ではありません。
|
||||
default.invalid.email.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なメールアドレスではありません。
|
||||
default.invalid.range.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]から[{4}]範囲内を指定してください。
|
||||
default.invalid.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]から[{4}]以内を指定してください。
|
||||
default.invalid.max.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最大値[{3}]より大きいです。
|
||||
default.invalid.min.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最小値[{3}]より小さいです。
|
||||
default.invalid.max.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最大値[{3}]より大きいです。
|
||||
default.invalid.min.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最小値[{3}]より小さいです。
|
||||
default.invalid.validator.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、カスタムバリデーションを通過できません。
|
||||
default.not.inlist.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]リスト内に存在しません。
|
||||
default.blank.message=[{1}]クラスのプロパティ[{0}]の空白は許可されません。
|
||||
default.not.equal.message=クラス[{1}]プロパティ[{0}]の値[{2}]に[{3}]は許可されません。
|
||||
default.null.message=[{1}]クラスのプロパティ[{0}]にnullは許可されません。
|
||||
default.not.unique.message=クラス[{1}]プロパティ[{0}]の値[{2}]は既に使用されています。
|
||||
|
||||
default.paginate.prev=戻る
|
||||
default.paginate.next=次へ
|
||||
default.boolean.true=はい
|
||||
default.boolean.false=いいえ
|
||||
default.date.format=yyyy/MM/dd HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0}(id:{1})を作成しました。
|
||||
default.updated.message={0}(id:{1})を更新しました。
|
||||
default.deleted.message={0}(id:{1})を削除しました。
|
||||
default.not.deleted.message={0}(id:{1})は削除できませんでした。
|
||||
default.not.found.message={0}(id:{1})は見つかりませんでした。
|
||||
default.optimistic.locking.failure=この{0}は編集中に他のユーザによって先に更新されています。
|
||||
|
||||
default.home.label=ホーム
|
||||
default.list.label={0}リスト
|
||||
default.add.label={0}を追加
|
||||
default.new.label={0}を新規作成
|
||||
default.create.label={0}を作成
|
||||
default.show.label={0}詳細
|
||||
default.edit.label={0}を編集
|
||||
|
||||
default.button.create.label=作成
|
||||
default.button.edit.label=編集
|
||||
default.button.update.label=更新
|
||||
default.button.delete.label=削除
|
||||
default.button.delete.confirm.message=本当に削除してよろしいですか?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL={0}は有効なURLでなければなりません。
|
||||
typeMismatch.java.net.URI={0}は有効なURIでなければなりません。
|
||||
typeMismatch.java.util.Date={0}は有効な日付でなければなりません。
|
||||
typeMismatch.java.lang.Double={0}は有効な数値でなければなりません。
|
||||
typeMismatch.java.lang.Integer={0}は有効な数値でなければなりません。
|
||||
typeMismatch.java.lang.Long={0}は有効な数値でなければなりません。
|
||||
typeMismatch.java.lang.Short={0}は有効な数値でなければなりません。
|
||||
typeMismatch.java.math.BigDecimal={0}は有効な数値でなければなりません。
|
||||
typeMismatch.java.math.BigInteger={0}は有効な数値でなければなりません。
|
|
@ -0,0 +1,56 @@
|
|||
default.doesnt.match.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] overholder ikke mønsteret [{3}]
|
||||
default.invalid.url.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] er ikke en gyldig URL
|
||||
default.invalid.creditCard.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] er ikke et gyldig kredittkortnummer
|
||||
default.invalid.email.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] er ikke en gyldig epostadresse
|
||||
default.invalid.range.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] er ikke innenfor intervallet [{3}] til [{4}]
|
||||
default.invalid.size.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] er ikke innenfor intervallet [{3}] til [{4}]
|
||||
default.invalid.max.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] overstiger maksimumsverdien på [{3}]
|
||||
default.invalid.min.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] er under minimumsverdien på [{3}]
|
||||
default.invalid.max.size.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] overstiger maksimumslengden på [{3}]
|
||||
default.invalid.min.size.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] er kortere enn minimumslengden på [{3}]
|
||||
default.invalid.validator.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] overholder ikke den brukerdefinerte valideringen
|
||||
default.not.inlist.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] finnes ikke i listen [{3}]
|
||||
default.blank.message=Feltet [{0}] i klassen [{1}] kan ikke være tom
|
||||
default.not.equal.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] kan ikke være [{3}]
|
||||
default.null.message=Feltet [{0}] i klassen [{1}] kan ikke være null
|
||||
default.not.unique.message=Feltet [{0}] i klassen [{1}] med verdien [{2}] må være unik
|
||||
|
||||
default.paginate.prev=Forrige
|
||||
default.paginate.next=Neste
|
||||
default.boolean.true=Ja
|
||||
default.boolean.false=Nei
|
||||
default.date.format=dd.MM.yyyy HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} opprettet
|
||||
default.updated.message={0} {1} oppdatert
|
||||
default.deleted.message={0} {1} slettet
|
||||
default.not.deleted.message={0} {1} kunne ikke slettes
|
||||
default.not.found.message={0} med id {1} ble ikke funnet
|
||||
default.optimistic.locking.failure=En annen bruker har oppdatert denne {0} mens du redigerte
|
||||
|
||||
default.home.label=Hjem
|
||||
default.list.label={0}liste
|
||||
default.add.label=Legg til {0}
|
||||
default.new.label=Ny {0}
|
||||
default.create.label=Opprett {0}
|
||||
default.show.label=Vis {0}
|
||||
default.edit.label=Endre {0}
|
||||
|
||||
default.button.create.label=Opprett
|
||||
default.button.edit.label=Endre
|
||||
default.button.update.label=Oppdater
|
||||
default.button.delete.label=Slett
|
||||
default.button.delete.confirm.message=Er du sikker?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=Feltet {0} må være en gyldig URL
|
||||
typeMismatch.java.net.URI=Feltet {0} må være en gyldig URI
|
||||
typeMismatch.java.util.Date=Feltet {0} må være en gyldig dato
|
||||
typeMismatch.java.lang.Double=Feltet {0} må være et gyldig tall
|
||||
typeMismatch.java.lang.Integer=Feltet {0} må være et gyldig heltall
|
||||
typeMismatch.java.lang.Long=Feltet {0} må være et gyldig heltall
|
||||
typeMismatch.java.lang.Short=Feltet {0} må være et gyldig heltall
|
||||
typeMismatch.java.math.BigDecimal=Feltet {0} må være et gyldig tall
|
||||
typeMismatch.java.math.BigInteger=Feltet {0} må være et gyldig heltall
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
default.doesnt.match.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] komt niet overeen met het vereiste patroon [{3}]
|
||||
default.invalid.url.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is geen geldige URL
|
||||
default.invalid.creditCard.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is geen geldig credit card nummer
|
||||
default.invalid.email.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is geen geldig e-mailadres
|
||||
default.invalid.range.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] valt niet in de geldige waardenreeks van [{3}] tot [{4}]
|
||||
default.invalid.size.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] valt niet in de geldige grootte van [{3}] tot [{4}]
|
||||
default.invalid.max.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] overschrijdt de maximumwaarde [{3}]
|
||||
default.invalid.min.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is minder dan de minimumwaarde [{3}]
|
||||
default.invalid.max.size.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] overschrijdt de maximumgrootte van [{3}]
|
||||
default.invalid.min.size.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is minder dan minimumgrootte van [{3}]
|
||||
default.invalid.validator.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is niet geldig
|
||||
default.not.inlist.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] komt niet voor in de lijst [{3}]
|
||||
default.blank.message=Attribuut [{0}] van entiteit [{1}] mag niet leeg zijn
|
||||
default.not.equal.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] mag niet gelijk zijn aan [{3}]
|
||||
default.null.message=Attribuut [{0}] van entiteit [{1}] mag niet leeg zijn
|
||||
default.not.unique.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] moet uniek zijn
|
||||
|
||||
default.paginate.prev=Vorige
|
||||
default.paginate.next=Volgende
|
||||
default.boolean.true=Ja
|
||||
default.boolean.false=Nee
|
||||
default.date.format=dd-MM-yyyy HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} ingevoerd
|
||||
default.updated.message={0} {1} gewijzigd
|
||||
default.deleted.message={0} {1} verwijderd
|
||||
default.not.deleted.message={0} {1} kon niet worden verwijderd
|
||||
default.not.found.message={0} met id {1} kon niet worden gevonden
|
||||
default.optimistic.locking.failure=Een andere gebruiker heeft deze {0} al gewijzigd
|
||||
|
||||
default.home.label=Home
|
||||
default.list.label={0} Overzicht
|
||||
default.add.label=Toevoegen {0}
|
||||
default.new.label=Invoeren {0}
|
||||
default.create.label=Invoeren {0}
|
||||
default.show.label=Details {0}
|
||||
default.edit.label=Wijzigen {0}
|
||||
|
||||
default.button.create.label=Invoeren
|
||||
default.button.edit.label=Wijzigen
|
||||
default.button.update.label=Opslaan
|
||||
default.button.delete.label=Verwijderen
|
||||
default.button.delete.confirm.message=Weet je het zeker?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=Attribuut {0} is geen geldige URL
|
||||
typeMismatch.java.net.URI=Attribuut {0} is geen geldige URI
|
||||
typeMismatch.java.util.Date=Attribuut {0} is geen geldige datum
|
||||
typeMismatch.java.lang.Double=Attribuut {0} is geen geldig nummer
|
||||
typeMismatch.java.lang.Integer=Attribuut {0} is geen geldig nummer
|
||||
typeMismatch.java.lang.Long=Attribuut {0} is geen geldig nummer
|
||||
typeMismatch.java.lang.Short=Attribuut {0} is geen geldig nummer
|
||||
typeMismatch.java.math.BigDecimal=Attribuut {0} is geen geldig nummer
|
||||
typeMismatch.java.math.BigInteger=Attribuut {0} is geen geldig nummer
|
|
@ -0,0 +1,59 @@
|
|||
#
|
||||
# Translated by Matthias Hryniszak - padcom@gmail.com
|
||||
#
|
||||
|
||||
default.doesnt.match.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] nie pasuje do wymaganego wzorca [{3}]
|
||||
default.invalid.url.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] jest niepoprawnym adresem URL
|
||||
default.invalid.creditCard.message=Właściwość [{0}] klasy [{1}] with value [{2}] nie jest poprawnym numerem karty kredytowej
|
||||
default.invalid.email.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] nie jest poprawnym adresem e-mail
|
||||
default.invalid.range.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] nie zawiera się zakładanym zakresie od [{3}] do [{4}]
|
||||
default.invalid.size.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] nie zawiera się w zakładanym zakresie rozmiarów od [{3}] do [{4}]
|
||||
default.invalid.max.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] przekracza maksymalną wartość [{3}]
|
||||
default.invalid.min.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] jest mniejsza niż minimalna wartość [{3}]
|
||||
default.invalid.max.size.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] przekracza maksymalny rozmiar [{3}]
|
||||
default.invalid.min.size.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] jest mniejsza niż minimalny rozmiar [{3}]
|
||||
default.invalid.validator.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] nie spełnia założonych niestandardowych warunków
|
||||
default.not.inlist.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] nie zawiera się w liście [{3}]
|
||||
default.blank.message=Właściwość [{0}] klasy [{1}] nie może być pusta
|
||||
default.not.equal.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] nie może równać się [{3}]
|
||||
default.null.message=Właściwość [{0}] klasy [{1}] nie może być null
|
||||
default.not.unique.message=Właściwość [{0}] klasy [{1}] o wartości [{2}] musi być unikalna
|
||||
|
||||
default.paginate.prev=Poprzedni
|
||||
default.paginate.next=Następny
|
||||
default.boolean.true=Prawda
|
||||
default.boolean.false=Fałsz
|
||||
default.date.format=yyyy-MM-dd HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message=Utworzono {0} {1}
|
||||
default.updated.message=Zaktualizowano {0} {1}
|
||||
default.deleted.message=Usunięto {0} {1}
|
||||
default.not.deleted.message={0} {1} nie mógł zostać usunięty
|
||||
default.not.found.message=Nie znaleziono {0} o id {1}
|
||||
default.optimistic.locking.failure=Inny użytkownik zaktualizował ten obiekt {0} w trakcie twoich zmian
|
||||
|
||||
default.home.label=Strona domowa
|
||||
default.list.label=Lista {0}
|
||||
default.add.label=Dodaj {0}
|
||||
default.new.label=Utwórz {0}
|
||||
default.create.label=Utwórz {0}
|
||||
default.show.label=Pokaż {0}
|
||||
default.edit.label=Edytuj {0}
|
||||
|
||||
default.button.create.label=Utwórz
|
||||
default.button.edit.label=Edytuj
|
||||
default.button.update.label=Zaktualizuj
|
||||
default.button.delete.label=Usuń
|
||||
default.button.delete.confirm.message=Czy jesteś pewien?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=Właściwość {0} musi być poprawnym adresem URL
|
||||
typeMismatch.java.net.URI=Właściwość {0} musi być poprawnym adresem URI
|
||||
typeMismatch.java.util.Date=Właściwość {0} musi być poprawną datą
|
||||
typeMismatch.java.lang.Double=Właściwość {0} musi być poprawnyą liczbą
|
||||
typeMismatch.java.lang.Integer=Właściwość {0} musi być poprawnyą liczbą
|
||||
typeMismatch.java.lang.Long=Właściwość {0} musi być poprawnyą liczbą
|
||||
typeMismatch.java.lang.Short=Właściwość {0} musi być poprawnyą liczbą
|
||||
typeMismatch.java.math.BigDecimal=Właściwość {0} musi być poprawnyą liczbą
|
||||
typeMismatch.java.math.BigInteger=Właściwość {0} musi być poprawnyą liczbą
|
|
@ -0,0 +1,59 @@
|
|||
#
|
||||
# Translated by Lucas Teixeira - lucastex@gmail.com
|
||||
#
|
||||
|
||||
default.doesnt.match.message=O campo [{0}] da classe [{1}] com o valor [{2}] não atende ao padrão definido [{3}]
|
||||
default.invalid.url.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é uma URL válida
|
||||
default.invalid.creditCard.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um número válido de cartão de crédito
|
||||
default.invalid.email.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um endereço de email válido.
|
||||
default.invalid.range.message=O campo [{0}] da classe [{1}] com o valor [{2}] não está entre a faixa de valores válida de [{3}] até [{4}]
|
||||
default.invalid.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] não está na faixa de tamanho válida de [{3}] até [{4}]
|
||||
default.invalid.max.message=O campo [{0}] da classe [{1}] com o valor [{2}] ultrapassa o valor máximo [{3}]
|
||||
default.invalid.min.message=O campo [{0}] da classe [{1}] com o valor [{2}] não atinge o valor mínimo [{3}]
|
||||
default.invalid.max.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] ultrapassa o tamanho máximo de [{3}]
|
||||
default.invalid.min.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] não atinge o tamanho mínimo de [{3}]
|
||||
default.invalid.validator.message=O campo [{0}] da classe [{1}] com o valor [{2}] não passou na validação
|
||||
default.not.inlist.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um valor dentre os permitidos na lista [{3}]
|
||||
default.blank.message=O campo [{0}] da classe [{1}] não pode ficar em branco
|
||||
default.not.equal.message=O campo [{0}] da classe [{1}] com o valor [{2}] não pode ser igual a [{3}]
|
||||
default.null.message=O campo [{0}] da classe [{1}] não pode ser vazio
|
||||
default.not.unique.message=O campo [{0}] da classe [{1}] com o valor [{2}] deve ser único
|
||||
|
||||
default.paginate.prev=Anterior
|
||||
default.paginate.next=Próximo
|
||||
default.boolean.true=Sim
|
||||
default.boolean.false=Não
|
||||
default.date.format=dd/MM/yyyy HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} criado
|
||||
default.updated.message={0} {1} atualizado
|
||||
default.deleted.message={0} {1} removido
|
||||
default.not.deleted.message={0} {1} não pode ser removido
|
||||
default.not.found.message={0} não foi encontrado com o id {1}
|
||||
default.optimistic.locking.failure=Outro usuário atualizou este [{0}] enquanto você tentou salvá-lo
|
||||
|
||||
default.home.label=Principal
|
||||
default.list.label={0} Listagem
|
||||
default.add.label=Adicionar {0}
|
||||
default.new.label=Novo {0}
|
||||
default.create.label=Criar {0}
|
||||
default.show.label=Ver {0}
|
||||
default.edit.label=Editar {0}
|
||||
|
||||
default.button.create.label=Criar
|
||||
default.button.edit.label=Editar
|
||||
default.button.update.label=Alterar
|
||||
default.button.delete.label=Remover
|
||||
default.button.delete.confirm.message=Tem certeza?
|
||||
|
||||
# Mensagens de erro em atribuição de valores. Use "typeMismatch.$className.$propertyName" para customizar (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=O campo {0} deve ser uma URL válida.
|
||||
typeMismatch.java.net.URI=O campo {0} deve ser uma URI válida.
|
||||
typeMismatch.java.util.Date=O campo {0} deve ser uma data válida
|
||||
typeMismatch.java.lang.Double=O campo {0} deve ser um número válido.
|
||||
typeMismatch.java.lang.Integer=O campo {0} deve ser um número válido.
|
||||
typeMismatch.java.lang.Long=O campo {0} deve ser um número válido.
|
||||
typeMismatch.java.lang.Short=O campo {0} deve ser um número válido.
|
||||
typeMismatch.java.math.BigDecimal=O campo {0} deve ser um número válido.
|
||||
typeMismatch.java.math.BigInteger=O campo {0} deve ser um número válido.
|
|
@ -0,0 +1,34 @@
|
|||
#
|
||||
# translation by miguel.ping@gmail.com, based on pt_BR translation by Lucas Teixeira - lucastex@gmail.com
|
||||
#
|
||||
|
||||
default.doesnt.match.message=O campo [{0}] da classe [{1}] com o valor [{2}] não corresponde ao padrão definido [{3}]
|
||||
default.invalid.url.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um URL válido
|
||||
default.invalid.creditCard.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um número válido de cartão de crédito
|
||||
default.invalid.email.message=O campo [{0}] da classe [{1}] com o valor [{2}] não é um endereço de email válido.
|
||||
default.invalid.range.message=O campo [{0}] da classe [{1}] com o valor [{2}] não está dentro dos limites de valores válidos de [{3}] a [{4}]
|
||||
default.invalid.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] está fora dos limites de tamanho válido de [{3}] a [{4}]
|
||||
default.invalid.max.message=O campo [{0}] da classe [{1}] com o valor [{2}] ultrapassa o valor máximo [{3}]
|
||||
default.invalid.min.message=O campo [{0}] da classe [{1}] com o valor [{2}] não atinge o valor mínimo [{3}]
|
||||
default.invalid.max.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] ultrapassa o tamanho máximo de [{3}]
|
||||
default.invalid.min.size.message=O campo [{0}] da classe [{1}] com o valor [{2}] não atinge o tamanho mínimo de [{3}]
|
||||
default.invalid.validator.message=O campo [{0}] da classe [{1}] com o valor [{2}] não passou na validação
|
||||
default.not.inlist.message=O campo [{0}] da classe [{1}] com o valor [{2}] não se encontra nos valores permitidos da lista [{3}]
|
||||
default.blank.message=O campo [{0}] da classe [{1}] não pode ser vazio
|
||||
default.not.equal.message=O campo [{0}] da classe [{1}] com o valor [{2}] não pode ser igual a [{3}]
|
||||
default.null.message=O campo [{0}] da classe [{1}] não pode ser vazio
|
||||
default.not.unique.message=O campo [{0}] da classe [{1}] com o valor [{2}] deve ser único
|
||||
|
||||
default.paginate.prev=Anterior
|
||||
default.paginate.next=Próximo
|
||||
|
||||
# Mensagens de erro em atribuição de valores. Use "typeMismatch.$className.$propertyName" para personalizar(eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=O campo {0} deve ser um URL válido.
|
||||
typeMismatch.java.net.URI=O campo {0} deve ser um URI válido.
|
||||
typeMismatch.java.util.Date=O campo {0} deve ser uma data válida
|
||||
typeMismatch.java.lang.Double=O campo {0} deve ser um número válido.
|
||||
typeMismatch.java.lang.Integer=O campo {0} deve ser um número válido.
|
||||
typeMismatch.java.lang.Long=O campo {0} deve ser um número valido.
|
||||
typeMismatch.java.lang.Short=O campo {0} deve ser um número válido.
|
||||
typeMismatch.java.math.BigDecimal=O campo {0} deve ser um número válido.
|
||||
typeMismatch.java.math.BigInteger=O campo {0} deve ser um número válido.
|
|
@ -0,0 +1,31 @@
|
|||
default.doesnt.match.message=Значение [{2}] поля [{0}] класса [{1}] не соответствует образцу [{3}]
|
||||
default.invalid.url.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым URL-адресом
|
||||
default.invalid.creditCard.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым номером кредитной карты
|
||||
default.invalid.email.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым e-mail адресом
|
||||
default.invalid.range.message=Значение [{2}] поля [{0}] класса [{1}] не попадает в допустимый интервал от [{3}] до [{4}]
|
||||
default.invalid.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) не попадает в допустимый интервал от [{3}] до [{4}]
|
||||
default.invalid.max.message=Значение [{2}] поля [{0}] класса [{1}] больше чем максимально допустимое значение [{3}]
|
||||
default.invalid.min.message=Значение [{2}] поля [{0}] класса [{1}] меньше чем минимально допустимое значение [{3}]
|
||||
default.invalid.max.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) больше чем максимально допустимый размер [{3}]
|
||||
default.invalid.min.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) меньше чем минимально допустимый размер [{3}]
|
||||
default.invalid.validator.message=Значение [{2}] поля [{0}] класса [{1}] не допустимо
|
||||
default.not.inlist.message=Значение [{2}] поля [{0}] класса [{1}] не попадает в список допустимых значений [{3}]
|
||||
default.blank.message=Поле [{0}] класса [{1}] не может быть пустым
|
||||
default.not.equal.message=Значение [{2}] поля [{0}] класса [{1}] не может быть равно [{3}]
|
||||
default.null.message=Поле [{0}] класса [{1}] не может иметь значение null
|
||||
default.not.unique.message=Значение [{2}] поля [{0}] класса [{1}] должно быть уникальным
|
||||
|
||||
default.paginate.prev=Предыдушая страница
|
||||
default.paginate.next=Следующая страница
|
||||
|
||||
# Ошибки при присвоении данных. Для точной настройки для полей классов используйте
|
||||
# формат "typeMismatch.$className.$propertyName" (например, typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=Значение поля {0} не является допустимым URL
|
||||
typeMismatch.java.net.URI=Значение поля {0} не является допустимым URI
|
||||
typeMismatch.java.util.Date=Значение поля {0} не является допустимой датой
|
||||
typeMismatch.java.lang.Double=Значение поля {0} не является допустимым числом
|
||||
typeMismatch.java.lang.Integer=Значение поля {0} не является допустимым числом
|
||||
typeMismatch.java.lang.Long=Значение поля {0} не является допустимым числом
|
||||
typeMismatch.java.lang.Short=Значение поля {0} не является допустимым числом
|
||||
typeMismatch.java.math.BigDecimal=Значение поля {0} не является допустимым числом
|
||||
typeMismatch.java.math.BigInteger=Значение поля {0} не является допустимым числом
|
|
@ -0,0 +1,56 @@
|
|||
default.doesnt.match.message=Položka [{0}] triedy [{1}] s hodnotou [{2}] nezodpovedá požadovanému formátu [{3}]
|
||||
default.invalid.url.message=Položka [{0}] triedy [{1}] s hodnotou [{2}] nie je platná URL adresa
|
||||
default.invalid.creditCard.message=Položka [{0}] triedy [{1}] s hodnotou [{2}] nie je platné číslo kreditnej karty
|
||||
default.invalid.email.message=Položka [{0}] triedy [{1}] s hodnotou [{2}] nie je platná emailová adresa
|
||||
default.invalid.range.message=Položka [{0}] triedy [{1}] s hodnotou [{2}] nie je v povolenom rozmedzí od [{3}] do [{4}]
|
||||
default.invalid.size.message=Položka [{0}] triedy [{1}] s hodnotou [{2}] nie je v povolenom rozmedzí od [{3}] do [{4}]
|
||||
default.invalid.max.message=Položka [{0}] triedy [{1}] s hodnotou [{2}] prekračuje maximálnu povolenú hodnotu [{3}]
|
||||
default.invalid.min.message=Položka [{0}] triedy [{1}] s hodnotou [{2}] je menšia ako minimálna povolená hodnota [{3}]
|
||||
default.invalid.max.size.message=Položka [{0}] triedy [{1}] s hodnotou [{2}] prekračuje maximálnu veľkosť [{3}]
|
||||
default.invalid.min.size.message=Položka [{0}] triedy [{1}] s hodnotou [{2}] je menšia ako minimálna veľkosť [{3}]
|
||||
default.invalid.validator.message=Položka [{0}] triedy [{1}] s hodnotou [{2}] neprešla validáciou
|
||||
default.not.inlist.message=Položka [{0}] triedy [{1}] s hodnotou [{2}] nie je obsiahnutá v zozname [{3}]
|
||||
default.blank.message=Položka [{0}] triedy [{1}] nemôže byť prázdna
|
||||
default.not.equal.message=Položka [{0}] triedy [{1}] s hodnotou [{2}] nemôže byť rovnaká ako [{3}]
|
||||
default.null.message=Položka [{0}] triedy [{1}] nemôže byť prázdna
|
||||
default.not.unique.message=Položka [{0}] triedy [{1}] s hodnotou [{2}] musí byť unikátna
|
||||
|
||||
default.paginate.prev=Predchádzajúce
|
||||
default.paginate.next=Nasledujúce
|
||||
default.boolean.true=Pravda
|
||||
default.boolean.false=Nepravda
|
||||
default.date.format=dd. MM. yyyy HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} vytvorené
|
||||
default.updated.message={0} {1} aktualizované
|
||||
default.deleted.message={0} {1} vymazané
|
||||
default.not.deleted.message={0} {1} nemožno zmazať
|
||||
default.not.found.message={0} nenájdené s id {1}
|
||||
default.optimistic.locking.failure=Iný používateľ aktualizoval záznam {0}, práve keď bol vami editovaný
|
||||
|
||||
default.home.label=Domov
|
||||
default.list.label={0} Zoznam
|
||||
default.add.label=Pridať {0}
|
||||
default.new.label=Nový {0}
|
||||
default.create.label=Vytvoriť {0}
|
||||
default.show.label=Ukázať {0}
|
||||
default.edit.label=Editovať {0}
|
||||
|
||||
default.button.create.label=Vytvor
|
||||
default.button.edit.label=Edituj
|
||||
default.button.update.label=Aktualizuj
|
||||
default.button.delete.label=Zmaž
|
||||
default.button.delete.confirm.message=Ste si istý?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=Položka {0} musí byť platná URL adresa
|
||||
typeMismatch.java.net.URI=Položka {0} musí byť platná URI adresa
|
||||
typeMismatch.java.util.Date=Položka {0} musí byť platný dátum
|
||||
typeMismatch.java.lang.Double=Položka {0} musí byť desatinné číslo
|
||||
typeMismatch.java.lang.Integer=Položka {0} musí byť celé číslo
|
||||
typeMismatch.java.lang.Long=Položka {0} musí byť celé číslo
|
||||
typeMismatch.java.lang.Short=Položka {0} musí byť celé číslo
|
||||
typeMismatch.java.math.BigDecimal=Položka {0} musí byť desatinné číslo
|
||||
typeMismatch.java.math.BigInteger=Položka {0} musí byť celé číslo
|
||||
typeMismatch=Položka {0} má nezhodný typ
|
|
@ -0,0 +1,55 @@
|
|||
default.doesnt.match.message=Attributet [{0}] för klassen [{1}] med värde [{2}] matchar inte mot uttrycket [{3}]
|
||||
default.invalid.url.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är inte en giltig URL
|
||||
default.invalid.creditCard.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är inte ett giltigt kreditkortsnummer
|
||||
default.invalid.email.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är inte en giltig e-postadress
|
||||
default.invalid.range.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är inte inom intervallet [{3}] till [{4}]
|
||||
default.invalid.size.message=Attributet [{0}] för klassen [{1}] med värde [{2}] har en storlek som inte är inom [{3}] till [{4}]
|
||||
default.invalid.max.message=Attributet [{0}] för klassen [{1}] med värde [{2}] överskrider maxvärdet [{3}]
|
||||
default.invalid.min.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är mindre än minimivärdet [{3}]
|
||||
default.invalid.max.size.message=Attributet [{0}] för klassen [{1}] med värde [{2}] överskrider maxstorleken [{3}]
|
||||
default.invalid.min.size.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är mindre än minimistorleken [{3}]
|
||||
default.invalid.validator.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är inte giltigt enligt anpassad regel
|
||||
default.not.inlist.message=Attributet [{0}] för klassen [{1}] med värde [{2}] är inte giltigt, måste vara ett av [{3}]
|
||||
default.blank.message=Attributet [{0}] för klassen [{1}] får inte vara tomt
|
||||
default.not.equal.message=Attributet [{0}] för klassen [{1}] med värde [{2}] får inte vara lika med [{3}]
|
||||
default.null.message=Attributet [{0}] för klassen [{1}] får inte vara tomt
|
||||
default.not.unique.message=Attributet [{0}] för klassen [{1}] med värde [{2}] måste vara unikt
|
||||
|
||||
default.paginate.prev=Föregående
|
||||
default.paginate.next=Nästa
|
||||
default.boolean.true=Sant
|
||||
default.boolean.false=Falskt
|
||||
default.date.format=yyyy-MM-dd HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} skapades
|
||||
default.updated.message={0} {1} uppdaterades
|
||||
default.deleted.message={0} {1} borttagen
|
||||
default.not.deleted.message={0} {1} kunde inte tas bort
|
||||
default.not.found.message={0} med id {1} kunde inte hittas
|
||||
default.optimistic.locking.failure=En annan användare har uppdaterat det här {0} objektet medan du redigerade det
|
||||
|
||||
default.home.label=Hem
|
||||
default.list.label= {0} - Lista
|
||||
default.add.label=Lägg till {0}
|
||||
default.new.label=Skapa {0}
|
||||
default.create.label=Skapa {0}
|
||||
default.show.label=Visa {0}
|
||||
default.edit.label=Ändra {0}
|
||||
|
||||
default.button.create.label=Skapa
|
||||
default.button.edit.label=Ändra
|
||||
default.button.update.label=Uppdatera
|
||||
default.button.delete.label=Ta bort
|
||||
default.button.delete.confirm.message=Är du säker?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=Värdet för {0} måste vara en giltig URL
|
||||
typeMismatch.java.net.URI=Värdet för {0} måste vara en giltig URI
|
||||
typeMismatch.java.util.Date=Värdet {0} måste vara ett giltigt datum
|
||||
typeMismatch.java.lang.Double=Värdet {0} måste vara ett giltigt nummer
|
||||
typeMismatch.java.lang.Integer=Värdet {0} måste vara ett giltigt heltal
|
||||
typeMismatch.java.lang.Long=Värdet {0} måste vara ett giltigt heltal
|
||||
typeMismatch.java.lang.Short=Värdet {0} måste vara ett giltigt heltal
|
||||
typeMismatch.java.math.BigDecimal=Värdet {0} måste vara ett giltigt nummer
|
||||
typeMismatch.java.math.BigInteger=Värdet {0} måste vara ett giltigt heltal
|
|
@ -0,0 +1,55 @@
|
|||
default.doesnt.match.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบที่กำหนดไว้ใน [{3}]
|
||||
default.invalid.url.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบ URL
|
||||
default.invalid.creditCard.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบหมายเลขบัตรเครดิต
|
||||
default.invalid.email.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบอีเมล์
|
||||
default.invalid.range.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้มีค่าที่ถูกต้องในช่วงจาก [{3}] ถึง [{4}]
|
||||
default.invalid.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้มีขนาดที่ถูกต้องในช่วงจาก [{3}] ถึง [{4}]
|
||||
default.invalid.max.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีค่าเกิดกว่าค่ามากสุด [{3}]
|
||||
default.invalid.min.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีค่าน้อยกว่าค่าต่ำสุด [{3}]
|
||||
default.invalid.max.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีขนาดเกินกว่าขนาดมากสุดของ [{3}]
|
||||
default.invalid.min.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีขนาดต่ำกว่าขนาดต่ำสุดของ [{3}]
|
||||
default.invalid.validator.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ผ่านการทวนสอบค่าที่ตั้งขึ้น
|
||||
default.not.inlist.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้อยู่ในรายการต่อไปนี้ [{3}]
|
||||
default.blank.message=คุณสมบัติ [{0}] ของคลาส [{1}] ไม่สามารถเป็นค่าว่างได้
|
||||
default.not.equal.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่สามารถเท่ากับ [{3}] ได้
|
||||
default.null.message=คุณสมบัติ [{0}] ของคลาส [{1}] ไม่สามารถเป็น null ได้
|
||||
default.not.unique.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] จะต้องไม่ซ้ำ (unique)
|
||||
|
||||
default.paginate.prev=ก่อนหน้า
|
||||
default.paginate.next=ถัดไป
|
||||
default.boolean.true=จริง
|
||||
default.boolean.false=เท็จ
|
||||
default.date.format=dd-MM-yyyy HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message=สร้าง {0} {1} เรียบร้อยแล้ว
|
||||
default.updated.message=ปรับปรุง {0} {1} เรียบร้อยแล้ว
|
||||
default.deleted.message=ลบ {0} {1} เรียบร้อยแล้ว
|
||||
default.not.deleted.message=ไม่สามารถลบ {0} {1}
|
||||
default.not.found.message=ไม่พบ {0} ด้วย id {1} นี้
|
||||
default.optimistic.locking.failure=มีผู้ใช้ท่านอื่นปรับปรุง {0} ขณะที่คุณกำลังแก้ไขข้อมูลอยู่
|
||||
|
||||
default.home.label=หน้าแรก
|
||||
default.list.label=รายการ {0}
|
||||
default.add.label=เพิ่ม {0}
|
||||
default.new.label=สร้าง {0} ใหม่
|
||||
default.create.label=สร้าง {0}
|
||||
default.show.label=แสดง {0}
|
||||
default.edit.label=แก้ไข {0}
|
||||
|
||||
default.button.create.label=สร้าง
|
||||
default.button.edit.label=แก้ไข
|
||||
default.button.update.label=ปรับปรุง
|
||||
default.button.delete.label=ลบ
|
||||
default.button.delete.confirm.message=คุณแน่ใจหรือไม่ ?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=คุณสมบัติ '{0}' จะต้องเป็นค่า URL ที่ถูกต้อง
|
||||
typeMismatch.java.net.URI=คุณสมบัติ '{0}' จะต้องเป็นค่า URI ที่ถูกต้อง
|
||||
typeMismatch.java.util.Date=คุณสมบัติ '{0}' จะต้องมีค่าเป็นวันที่
|
||||
typeMismatch.java.lang.Double=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Double
|
||||
typeMismatch.java.lang.Integer=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Integer
|
||||
typeMismatch.java.lang.Long=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Long
|
||||
typeMismatch.java.lang.Short=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Short
|
||||
typeMismatch.java.math.BigDecimal=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท BigDecimal
|
||||
typeMismatch.java.math.BigInteger=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท BigInteger
|
|
@ -0,0 +1,18 @@
|
|||
default.blank.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u4E0D\u80FD\u4E3A\u7A7A
|
||||
default.doesnt.match.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0E\u5B9A\u4E49\u7684\u6A21\u5F0F [{3}]\u4E0D\u5339\u914D
|
||||
default.invalid.creditCard.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u4FE1\u7528\u5361\u53F7
|
||||
default.invalid.email.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u5408\u6CD5\u7684\u7535\u5B50\u90AE\u4EF6\u5730\u5740
|
||||
default.invalid.max.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u6BD4\u6700\u5927\u503C [{3}]\u8FD8\u5927
|
||||
default.invalid.max.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u6BD4\u6700\u5927\u503C [{3}]\u8FD8\u5927
|
||||
default.invalid.min.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u6BD4\u6700\u5C0F\u503C [{3}]\u8FD8\u5C0F
|
||||
default.invalid.min.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u6BD4\u6700\u5C0F\u503C [{3}]\u8FD8\u5C0F
|
||||
default.invalid.range.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u5728\u5408\u6CD5\u7684\u8303\u56F4\u5185( [{3}] \uFF5E [{4}] )
|
||||
default.invalid.size.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u7684\u5927\u5C0F\u4E0D\u5728\u5408\u6CD5\u7684\u8303\u56F4\u5185( [{3}] \uFF5E [{4}] )
|
||||
default.invalid.url.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u662F\u4E00\u4E2A\u5408\u6CD5\u7684URL
|
||||
default.invalid.validator.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u672A\u80FD\u901A\u8FC7\u81EA\u5B9A\u4E49\u7684\u9A8C\u8BC1
|
||||
default.not.equal.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0E[{3}]\u4E0D\u76F8\u7B49
|
||||
default.not.inlist.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u4E0D\u5728\u5217\u8868\u7684\u53D6\u503C\u8303\u56F4\u5185
|
||||
default.not.unique.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u7684\u503C[{2}]\u5FC5\u987B\u662F\u552F\u4E00\u7684
|
||||
default.null.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u4E0D\u80FD\u4E3Anull
|
||||
default.paginate.next=\u4E0B\u9875
|
||||
default.paginate.prev=\u4E0A\u9875
|
|
@ -0,0 +1,10 @@
|
|||
package grails
|
||||
|
||||
import grails.boot.GrailsApp
|
||||
import grails.boot.config.GrailsAutoConfiguration
|
||||
|
||||
class Application extends GrailsAutoConfiguration {
|
||||
static void main(String[] args) {
|
||||
GrailsApp.run(Application, args)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package grails
|
||||
|
||||
class BootStrap {
|
||||
|
||||
def init = { servletContext ->
|
||||
}
|
||||
def destroy = {
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.baeldung.grails
|
||||
|
||||
import grails.gorm.transactions.Transactional
|
||||
|
||||
@Transactional
|
||||
class StudentService {
|
||||
|
||||
def get(id){
|
||||
Student.get(id)
|
||||
}
|
||||
|
||||
def list() {
|
||||
Student.list()
|
||||
}
|
||||
|
||||
def save(student){
|
||||
student.save()
|
||||
}
|
||||
|
||||
def delete(id){
|
||||
Student.get(id).delete()
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title><g:if env="development">Grails Runtime Exception</g:if><g:else>Error</g:else></title>
|
||||
<meta name="layout" content="main">
|
||||
<g:if env="development"><asset:stylesheet src="errors.css"/></g:if>
|
||||
</head>
|
||||
<body>
|
||||
<g:if env="development">
|
||||
<g:if test="${Throwable.isInstance(exception)}">
|
||||
<g:renderException exception="${exception}" />
|
||||
</g:if>
|
||||
<g:elseif test="${request.getAttribute('javax.servlet.error.exception')}">
|
||||
<g:renderException exception="${request.getAttribute('javax.servlet.error.exception')}" />
|
||||
</g:elseif>
|
||||
<g:else>
|
||||
<ul class="errors">
|
||||
<li>An error has occurred</li>
|
||||
<li>Exception: ${exception}</li>
|
||||
<li>Message: ${message}</li>
|
||||
<li>Path: ${path}</li>
|
||||
</ul>
|
||||
</g:else>
|
||||
</g:if>
|
||||
<g:else>
|
||||
<ul class="errors">
|
||||
<li>An error has occurred</li>
|
||||
</ul>
|
||||
</g:else>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,77 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="layout" content="main"/>
|
||||
<title>Welcome to Grails</title>
|
||||
</head>
|
||||
<body>
|
||||
<content tag="nav">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Application Status <span class="caret"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Environment: ${grails.util.Environment.current.name}</a></li>
|
||||
<li><a href="#">App profile: ${grailsApplication.config.grails?.profile}</a></li>
|
||||
<li><a href="#">App version:
|
||||
<g:meta name="info.app.version"/></a>
|
||||
</li>
|
||||
<li role="separator" class="divider"></li>
|
||||
<li><a href="#">Grails version:
|
||||
<g:meta name="info.app.grailsVersion"/></a>
|
||||
</li>
|
||||
<li><a href="#">Groovy version: ${GroovySystem.getVersion()}</a></li>
|
||||
<li><a href="#">JVM version: ${System.getProperty('java.version')}</a></li>
|
||||
<li role="separator" class="divider"></li>
|
||||
<li><a href="#">Reloading active: ${grails.util.Environment.reloadingAgentEnabled}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Artefacts <span class="caret"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Controllers: ${grailsApplication.controllerClasses.size()}</a></li>
|
||||
<li><a href="#">Domains: ${grailsApplication.domainClasses.size()}</a></li>
|
||||
<li><a href="#">Services: ${grailsApplication.serviceClasses.size()}</a></li>
|
||||
<li><a href="#">Tag Libraries: ${grailsApplication.tagLibClasses.size()}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Installed Plugins <span class="caret"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
<g:each var="plugin" in="${applicationContext.getBean('pluginManager').allPlugins}">
|
||||
<li><a href="#">${plugin.name} - ${plugin.version}</a></li>
|
||||
</g:each>
|
||||
</ul>
|
||||
</li>
|
||||
</content>
|
||||
|
||||
<div class="svg" role="presentation">
|
||||
<div class="grails-logo-container">
|
||||
<asset:image src="grails-cupsonly-logo-white.svg" class="grails-logo"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="content" role="main">
|
||||
<section class="row colset-2-its">
|
||||
<h1>Welcome to Grails</h1>
|
||||
|
||||
<p>
|
||||
Congratulations, you have successfully started your first Grails application! At the moment
|
||||
this is the default page, feel free to modify it to either redirect to a controller or display
|
||||
whatever content you may choose. Below is a list of controllers that are currently deployed in
|
||||
this application, click on each to execute its default action:
|
||||
</p>
|
||||
|
||||
<div id="controllers" role="navigation">
|
||||
<h2>Available Controllers:</h2>
|
||||
<ul>
|
||||
<g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }">
|
||||
<li class="controller">
|
||||
<g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link>
|
||||
</li>
|
||||
</g:each>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,50 @@
|
|||
<!doctype html>
|
||||
<html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||
<title>
|
||||
<g:layoutTitle default="Grails"/>
|
||||
</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<asset:link rel="icon" href="favicon.ico" type="image/x-ico" />
|
||||
|
||||
<asset:stylesheet src="application.css"/>
|
||||
|
||||
<g:layoutHead/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="navbar navbar-default navbar-static-top" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/#">
|
||||
<asset:image src="grails.svg" alt="Grails Logo"/>
|
||||
</a>
|
||||
</div>
|
||||
<div class="navbar-collapse collapse" aria-expanded="false" style="height: 0.8px;">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<g:pageProperty name="page.nav" />
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<g:layoutBody/>
|
||||
|
||||
<div class="footer" role="contentinfo"></div>
|
||||
|
||||
<div id="spinner" class="spinner" style="display:none;">
|
||||
<g:message code="spinner.alt" default="Loading…"/>
|
||||
</div>
|
||||
|
||||
<asset:javascript src="application.js"/>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,14 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Page Not Found</title>
|
||||
<meta name="layout" content="main">
|
||||
<g:if env="development"><asset:stylesheet src="errors.css"/></g:if>
|
||||
</head>
|
||||
<body>
|
||||
<ul class="errors">
|
||||
<li>Error: Page Not Found (404)</li>
|
||||
<li>Path: ${request.forwardURI}</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,18 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="layout" content="main" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="create-student" class="content scaffold-create" role="main">
|
||||
<g:form resource="${this.student}" method="POST">
|
||||
<fieldset class="form">
|
||||
<f:all bean="student"/>
|
||||
</fieldset>
|
||||
<fieldset class="buttons">
|
||||
<g:submitButton name="create" class="save" value="Create" />
|
||||
</fieldset>
|
||||
</g:form>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="layout" content="main" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav" role="navigation">
|
||||
<ul>
|
||||
<li><g:link class="create" action="create">Create</g:link></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="list-student" class="content scaffold-list" role="main">
|
||||
<f:table collection="${studentList}" properties="['firstName', 'lastName']" />
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="layout" content="main" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav" role="navigation">
|
||||
<ul>
|
||||
<li><g:link class="list" action="index">Students list</g:link></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="show-student" class="content scaffold-show" role="main">
|
||||
<f:display bean="student" />
|
||||
<g:form resource="${this.student}" method="DELETE">
|
||||
<fieldset class="buttons">
|
||||
<input class="delete" type="submit" value="delete" />
|
||||
</fieldset>
|
||||
</g:form>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,152 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## Grails start up script for UN*X
|
||||
##
|
||||
##############################################################################
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRAILS_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-XX:+TieredCompilation" "-XX:TieredStopAtLevel=1" "-XX:CICompilerCount=3"'
|
||||
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn ( ) {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die ( ) {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
esac
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
# Need this for relative symlinks.
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG=`dirname "$PRG"`"/$link"
|
||||
fi
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >/dev/null
|
||||
|
||||
JAR_PATH=$APP_HOME/grails-wrapper.jar
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD="java"
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
MAX_FD="$MAX_FD_LIMIT"
|
||||
fi
|
||||
ulimit -n $MAX_FD
|
||||
if [ $? -ne 0 ] ; then
|
||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
||||
fi
|
||||
else
|
||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
JAR_PATH=`cygpath --path --mixed "$JAR_PATH"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
SEP=""
|
||||
for dir in $ROOTDIRSRAW ; do
|
||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||
SEP="|"
|
||||
done
|
||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||
# Add a user-defined pattern to the cygpath arguments
|
||||
if [ "$GRAILS_CYGPATTERN" != "" ] ; then
|
||||
OURCYGPATTERN="$OURCYGPATTERN|($GRAILS_CYGPATTERN)"
|
||||
fi
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
i=0
|
||||
for arg in "$@" ; do
|
||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||
|
||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
done
|
||||
case $i in
|
||||
(0) set -- ;;
|
||||
(1) set -- "$args0" ;;
|
||||
(2) set -- "$args0" "$args1" ;;
|
||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Split up the JVM_OPTS And GRAILS_OPTS values into an array, following the shell quoting and substitution rules
|
||||
function splitJvmOpts() {
|
||||
JVM_OPTS=("$@")
|
||||
}
|
||||
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRAILS_OPTS
|
||||
|
||||
exec "$JAVACMD" -jar "${JVM_OPTS[@]}" "$JAR_PATH" "$@"
|
|
@ -0,0 +1,89 @@
|
|||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Grails startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRAILS_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-XX:+TieredCompilation" "-XX:TieredStopAtLevel=1" "-XX:CICompilerCount=3"
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windowz variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
if "%@eval[2+2]" == "4" goto 4NT_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
goto execute
|
||||
|
||||
:4NT_args
|
||||
@rem Get arguments from the 4NT Shell from JP Software
|
||||
set CMD_LINE_ARGS=%$
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
set JAR_PATH=%APP_HOME%/grails-wrapper.jar
|
||||
|
||||
@rem Execute Grails
|
||||
"%JAVA_EXE%" -jar %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRAILS_OPTS% %JAR_PATH% %CMD_LINE_ARGS%
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRAILS_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRAILS_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
|
@ -0,0 +1,67 @@
|
|||
package com.baeldung.grails
|
||||
|
||||
import grails.testing.mixin.integration.Integration
|
||||
import grails.gorm.transactions.Rollback
|
||||
import spock.lang.Specification
|
||||
import org.hibernate.SessionFactory
|
||||
|
||||
@Integration
|
||||
@Rollback
|
||||
class StudentIntegrationSpec extends Specification {
|
||||
|
||||
StudentService studentService
|
||||
SessionFactory sessionFactory
|
||||
|
||||
private Long setupData() {
|
||||
new Student(firstName: 'John',lastName: 'Doe').save(flush: true, failOnError: true)
|
||||
new Student(firstName: 'Max',lastName: 'Foo').save(flush: true, failOnError: true)
|
||||
Student student = new Student(firstName: 'Alex',lastName: 'Bar').save(flush: true, failOnError: true)
|
||||
student.id
|
||||
}
|
||||
|
||||
void "test get"() {
|
||||
Long id = setupData()
|
||||
|
||||
expect:
|
||||
Student student = studentService.get(id)
|
||||
student.firstName == 'Alex'
|
||||
student.lastName == 'Bar'
|
||||
}
|
||||
|
||||
void "test list"() {
|
||||
setupData()
|
||||
|
||||
when:
|
||||
List<Student> studentList = studentService.list()
|
||||
|
||||
then:
|
||||
studentList.size() == 3
|
||||
studentList[0].lastName == 'Doe'
|
||||
studentList[1].lastName == 'Foo'
|
||||
studentList[2].lastName == 'Bar'
|
||||
}
|
||||
|
||||
|
||||
void "test delete"() {
|
||||
Long id = setupData()
|
||||
|
||||
expect:
|
||||
studentService.list().size() == 3
|
||||
|
||||
when:
|
||||
studentService.delete(id)
|
||||
sessionFactory.currentSession.flush()
|
||||
|
||||
then:
|
||||
studentService.list().size() == 2
|
||||
}
|
||||
|
||||
void "test save"() {
|
||||
when:
|
||||
Student student = new Student(firstName: 'John',lastName: 'Doe')
|
||||
studentService.save(student)
|
||||
|
||||
then:
|
||||
student.id != null
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
import org.openqa.selenium.chrome.ChromeDriver
|
||||
import org.openqa.selenium.chrome.ChromeOptions
|
||||
import org.openqa.selenium.htmlunit.HtmlUnitDriver
|
||||
|
||||
environments {
|
||||
|
||||
// run via “./gradlew -Dgeb.env=chrome -Dwebdriver.chrome.driver=/Applications/chromedriver iT”
|
||||
chrome {
|
||||
driver = { new ChromeDriver() }
|
||||
}
|
||||
|
||||
// run via “./gradlew -Dgeb.env=chromeHeadless -Dwebdriver.chrome.driver=/Applications/chromedriver iT”
|
||||
chromeHeadless {
|
||||
driver = {
|
||||
ChromeOptions o = new ChromeOptions()
|
||||
o.addArguments('headless')
|
||||
new ChromeDriver(o)
|
||||
}
|
||||
}
|
||||
|
||||
// run via “./gradlew -Dgeb.env=htmlUnit iT”
|
||||
htmlUnit {
|
||||
driver = { new HtmlUnitDriver() }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
package com.baeldung.grails
|
||||
|
||||
import grails.testing.gorm.DomainUnitTest
|
||||
import grails.testing.web.controllers.ControllerUnitTest
|
||||
import spock.lang.*
|
||||
|
||||
class StudentControllerSpec extends Specification implements ControllerUnitTest<StudentController>, DomainUnitTest<Student> {
|
||||
|
||||
void "Test the index action returns the correct model"() {
|
||||
given:
|
||||
controller.studentService = Mock(StudentService) {
|
||||
list() >> [new Student(firstName: 'John',lastName: 'Doe')]
|
||||
}
|
||||
|
||||
when:"The index action is executed"
|
||||
controller.index()
|
||||
|
||||
then:"The model is correct"
|
||||
model.studentList.size() == 1
|
||||
model.studentList[0].firstName == 'John'
|
||||
model.studentList[0].lastName == 'Doe'
|
||||
}
|
||||
|
||||
void "Test the create action returns the correct model"() {
|
||||
when:"The create action is executed"
|
||||
controller.create()
|
||||
|
||||
then:"The model is correctly created"
|
||||
model.student!= null
|
||||
}
|
||||
|
||||
|
||||
void "Test the show action with a null id"() {
|
||||
given:
|
||||
controller.studentService = Mock(StudentService) {
|
||||
1 * get(null) >> null
|
||||
}
|
||||
|
||||
when:"The show action is executed with a null domain"
|
||||
controller.show(null)
|
||||
|
||||
then:"A 404 error is returned"
|
||||
response.status == 404
|
||||
}
|
||||
|
||||
void "Test the show action with a valid id"() {
|
||||
given:
|
||||
controller.studentService = Mock(StudentService) {
|
||||
1 * get(2) >> new Student(firstName: 'John',lastName: 'Doe')
|
||||
}
|
||||
|
||||
when:"A domain instance is passed to the show action"
|
||||
controller.show(2)
|
||||
|
||||
then:"A model is populated containing the domain instance"
|
||||
model.student instanceof Student
|
||||
and:"And student is John Doe"
|
||||
model.student.firstName == 'John'
|
||||
model.student.lastName == 'Doe'
|
||||
}
|
||||
|
||||
void "Test the delete action with an instance"() {
|
||||
given:
|
||||
controller.studentService = Mock(StudentService) {
|
||||
1 * delete(2)
|
||||
}
|
||||
|
||||
when:"The domain instance is passed to the delete action"
|
||||
request.contentType = FORM_CONTENT_TYPE
|
||||
request.method = 'DELETE'
|
||||
controller.delete(2)
|
||||
|
||||
then:"The user is redirected to index"
|
||||
response.redirectedUrl == '/student/index'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|