- upgrade bigbluebutton-web to grails 2.3.6
This commit is contained in:
parent
944f7a15c4
commit
6cf30e9f07
0
bigbluebutton-web/COPYING.LESSER
Normal file → Executable file
0
bigbluebutton-web/COPYING.LESSER
Normal file → Executable file
0
bigbluebutton-web/INSTALL
Normal file → Executable file
0
bigbluebutton-web/INSTALL
Normal file → Executable file
@ -1,4 +0,0 @@
|
|||||||
|
|
||||||
Testing:
|
|
||||||
How to run the presentation conversion unit tests.
|
|
||||||
grails test-app org.bigbluebutton.presentation.imp.*
|
|
@ -1,76 +0,0 @@
|
|||||||
|
|
||||||
println "meetme begin"
|
|
||||||
|
|
||||||
|
|
||||||
number = channel.getData("conf-getconfno", 10000, 10)
|
|
||||||
conf = db.firstRow("SELECT * FROM conference WHERE conference_number=$number")
|
|
||||||
if (conf) println "found one! " + conf.conference_name
|
|
||||||
|
|
||||||
if (conf) {
|
|
||||||
pin = channel.getData("conf-getpin", 10000)
|
|
||||||
println pin
|
|
||||||
println conf.pin
|
|
||||||
if (pin.toInteger() == conf.pin) {
|
|
||||||
channel.streamFile("conf-placeintoconf")
|
|
||||||
channel.exec("Meetme", "$number|dMq")
|
|
||||||
} else {
|
|
||||||
channel.streamFile("conf-invalidpin")
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
channel.streamFile("conf-invalid")
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
//channel.streamFile("conf-adminmenu")
|
|
||||||
//channel.streamFile("conf-banned")
|
|
||||||
//channel.streamFile("conf-enteringno")
|
|
||||||
//channel.streamFile("conference-call")
|
|
||||||
//channel.streamFile("conference")
|
|
||||||
//channel.streamFile("conference-reservations")
|
|
||||||
//channel.streamFile("conf-errormenu")
|
|
||||||
channel.streamFile("conf-full")
|
|
||||||
//channel.streamFile("conf-getchannel")
|
|
||||||
|
|
||||||
channel.streamFile("conf-getpin")
|
|
||||||
//channel.streamFile("conf-hasentered")
|
|
||||||
//channel.streamFile("conf-hasjoin")
|
|
||||||
//channel.streamFile("conf-hasleft")
|
|
||||||
channel.streamFile("conf-invalid")
|
|
||||||
|
|
||||||
channel.streamFile("confirm-number-is")
|
|
||||||
//channel.streamFile("conf-kicked")
|
|
||||||
//channel.streamFile("conf-leaderhasleft")
|
|
||||||
//channel.streamFile("conf-locked")
|
|
||||||
//channel.streamFile("conf-lockednow")
|
|
||||||
//channel.streamFile("conf-muted")
|
|
||||||
//channel.streamFile("conf-noempty")
|
|
||||||
//channel.streamFile("conf-onlyone")
|
|
||||||
//channel.streamFile("conf-onlyperson")
|
|
||||||
//channel.streamFile("conf-onlypersonleft")
|
|
||||||
//channel.streamFile("conf-otherinparty")
|
|
||||||
//channel.streamFile("conf-peopleinconf")
|
|
||||||
|
|
||||||
//channel.streamFile("conf-recordings")
|
|
||||||
//channel.streamFile("conf-sysop")
|
|
||||||
//channel.streamFile("conf-sysopreqcancelled")
|
|
||||||
//channel.streamFile("conf-sysopreq")
|
|
||||||
channel.streamFile("conf-thereare")
|
|
||||||
//channel.streamFile("conf-unlockednow")
|
|
||||||
//channel.streamFile("conf-unmuted")
|
|
||||||
//channel.streamFile("conf-usermenu")
|
|
||||||
//channel.streamFile("conf-userswilljoin")
|
|
||||||
//channel.streamFile("conf-userwilljoin")
|
|
||||||
channel.streamFile("conf-waitforleader")
|
|
||||||
channel.streamFile("conf-youareinconfnum")
|
|
||||||
*/
|
|
||||||
|
|
||||||
println "meetme end"
|
|
||||||
|
|
||||||
|
|
||||||
def getDigits(int number) {
|
|
||||||
StringBuffer sb = new StringBuffer()
|
|
||||||
for (int t = 0; t < number; t++) {
|
|
||||||
sb.append(channel.waitForDigit(10000))
|
|
||||||
}
|
|
||||||
return sb.toString()
|
|
||||||
}
|
|
@ -1,7 +1,6 @@
|
|||||||
#Grails Metadata file
|
#Grails Metadata file
|
||||||
#Thu Jun 06 12:32:30 PDT 2013
|
#Tue Feb 25 00:47:48 UTC 2014
|
||||||
app.grails.version=1.3.9
|
app.grails.version=2.3.6
|
||||||
app.name=bigbluebutton
|
app.name=bigbluebutton
|
||||||
app.servlet.version=2.4
|
app.servlet.version=3.0
|
||||||
app.version=0.70dev
|
app.version=0.1
|
||||||
plugins.tomcat=1.3.9
|
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
|
||||||
<listEntry value="/bigbluebutton"/>
|
|
||||||
</listAttribute>
|
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
|
||||||
<listEntry value="4"/>
|
|
||||||
</listAttribute>
|
|
||||||
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
|
|
||||||
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
|
|
||||||
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry containerPath="org.eclipse.jdt.launching.JRE_CONTAINER" javaProject="bigbluebutton" path="1" type="4"/> "/>
|
|
||||||
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry containerPath="GRAILS_HOME/dist/grails-bootstrap-1.1.1.jar" path="3" type="3"/> "/>
|
|
||||||
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry containerPath="GRAILS_HOME/lib/groovy-all-1.6.3.jar" path="3" type="3"/> "/>
|
|
||||||
</listAttribute>
|
|
||||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="grails.util.GrailsMain"/>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="bigbluebutton"/>
|
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dbase.dir="${project_loc:bigbluebutton}" -Dserver.port=8080 -Dgrails.env=development"/>
|
|
||||||
</launchConfiguration>
|
|
@ -1,73 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>documents</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>filename</key>
|
|
||||||
<string>bigbluebutton.launch</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>filename</key>
|
|
||||||
<string>build.xml</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>name</key>
|
|
||||||
<string>grails-app</string>
|
|
||||||
<key>regexFolderFilter</key>
|
|
||||||
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
|
|
||||||
<key>sourceDirectory</key>
|
|
||||||
<string>grails-app</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>name</key>
|
|
||||||
<string>test</string>
|
|
||||||
<key>regexFolderFilter</key>
|
|
||||||
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
|
|
||||||
<key>sourceDirectory</key>
|
|
||||||
<string>test</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>name</key>
|
|
||||||
<string>lib</string>
|
|
||||||
<key>regexFolderFilter</key>
|
|
||||||
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
|
|
||||||
<key>sourceDirectory</key>
|
|
||||||
<string>lib</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>name</key>
|
|
||||||
<string>scripts</string>
|
|
||||||
<key>regexFolderFilter</key>
|
|
||||||
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
|
|
||||||
<key>sourceDirectory</key>
|
|
||||||
<string>scripts</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>name</key>
|
|
||||||
<string>src</string>
|
|
||||||
<key>regexFolderFilter</key>
|
|
||||||
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
|
|
||||||
<key>sourceDirectory</key>
|
|
||||||
<string>src</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>name</key>
|
|
||||||
<string>web-app</string>
|
|
||||||
<key>regexFolderFilter</key>
|
|
||||||
<string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
|
|
||||||
<key>sourceDirectory</key>
|
|
||||||
<string>web-app</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>fileHierarchyDrawerWidth</key>
|
|
||||||
<integer>200</integer>
|
|
||||||
<key>metaData</key>
|
|
||||||
<dict/>
|
|
||||||
<key>showFileHierarchyDrawer</key>
|
|
||||||
<true/>
|
|
||||||
<key>windowFrame</key>
|
|
||||||
<string>{{237, 127}, {742, 553}}</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
@ -1,10 +1,10 @@
|
|||||||
usePlugin 'java'
|
apply plugin: 'java'
|
||||||
usePlugin 'eclipse'
|
apply plugin: 'eclipse'
|
||||||
|
|
||||||
task resolveDeps(dependsOn: configurations.default.buildArtifacts, type: Copy) {
|
task resolveDeps(type: Copy) {
|
||||||
into('lib')
|
into('lib')
|
||||||
from configurations.default
|
from configurations.default
|
||||||
from configurations.default.allArtifacts*.file
|
from configurations.default.allArtifacts.file
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
@ -42,9 +42,15 @@ dependencies {
|
|||||||
compile 'commons-pool:commons-pool:1.5.6'
|
compile 'commons-pool:commons-pool:1.5.6'
|
||||||
compile 'commons-lang:commons-lang:2.5'
|
compile 'commons-lang:commons-lang:2.5'
|
||||||
compile 'com.google.code.gson:gson:1.7.1'
|
compile 'com.google.code.gson:gson:1.7.1'
|
||||||
|
|
||||||
compile 'org.springframework.amqp:spring-rabbit:1.2.0.RELEASE@jar'
|
|
||||||
|
|
||||||
|
// Logging
|
||||||
|
// compile 'ch.qos.logback:logback-core:1.0.9@jar'
|
||||||
|
// compile 'ch.qos.logback:logback-classic:1.0.9@jar'
|
||||||
|
// compile 'org.slf4j:log4j-over-slf4j:1.7.2@jar'
|
||||||
|
// compile 'org.slf4j:jcl-over-slf4j:1.7.2@jar'
|
||||||
|
// compile 'org.slf4j:jul-to-slf4j:1.7.2@jar'
|
||||||
|
// compile 'org.slf4j:slf4j-api:1.7.2@jar'
|
||||||
|
|
||||||
//junit
|
//junit
|
||||||
compile 'junit:junit:4.8.2'
|
compile 'junit:junit:4.8.2'
|
||||||
}
|
}
|
||||||
|
@ -1,62 +0,0 @@
|
|||||||
<project name="bigbluebutton" default="run">
|
|
||||||
|
|
||||||
<condition property="grails" value="grails.bat">
|
|
||||||
<os family="windows"/>
|
|
||||||
</condition>
|
|
||||||
<property name="grails" value="grails" />
|
|
||||||
|
|
||||||
<!-- =================================
|
|
||||||
target: clean
|
|
||||||
================================= -->
|
|
||||||
<target name="clean" description="--> Cleans a Grails application">
|
|
||||||
<exec executable="${grails}" failonerror="true">
|
|
||||||
<arg value="clean"/>
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<!-- =================================
|
|
||||||
target: war
|
|
||||||
================================= -->
|
|
||||||
<target name="war" description="--> Creates a WAR of a Grails application">
|
|
||||||
<exec executable="${grails}" failonerror="true">
|
|
||||||
<arg value="war"/>
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<!-- =================================
|
|
||||||
target: test
|
|
||||||
================================= -->
|
|
||||||
<target name="test" description="--> Run a Grails applications unit tests">
|
|
||||||
<exec executable="${grails}" failonerror="true">
|
|
||||||
<arg value="test-app"/>
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<!-- =================================
|
|
||||||
target: run
|
|
||||||
================================= -->
|
|
||||||
|
|
||||||
<!-- Check whether Tomcat is running -->
|
|
||||||
<target name="check-port-8080" description="Check whether tomcat6 is running">
|
|
||||||
<echo message="Checking whether tomcat6 is running before doing 'grails run-app'"/>
|
|
||||||
<condition property="tomcat.running">
|
|
||||||
<socket server="127.0.0.1" port="8080"/>
|
|
||||||
</condition>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<target name="run" depends="check-port-8080" description="--> Run a Grails applications unit tests">
|
|
||||||
|
|
||||||
<fail message="Detected that tomcat6 is running on port 8080. Stop tomcat6 then try again." if="tomcat.running" />
|
|
||||||
<echo message="Running grails ..." />
|
|
||||||
<exec executable="${grails}" failonerror="true">
|
|
||||||
<arg value="run-app"/>
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<!-- =================================
|
|
||||||
target: deploy
|
|
||||||
================================= -->
|
|
||||||
<target name="deploy" depends="war" description="--> The deploy target (initially empty)">
|
|
||||||
<!-- TODO -->
|
|
||||||
</target>
|
|
||||||
</project>
|
|
5
bigbluebutton-web/grails-app/conf/ApplicationResources.groovy
Executable file
5
bigbluebutton-web/grails-app/conf/ApplicationResources.groovy
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
modules = {
|
||||||
|
application {
|
||||||
|
resource url:'js/application.js'
|
||||||
|
}
|
||||||
|
}
|
@ -1,30 +1,7 @@
|
|||||||
/**
|
|
||||||
* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
|
|
||||||
*
|
|
||||||
* Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify it under the
|
|
||||||
* terms of the GNU Lesser General Public License as published by the Free Software
|
|
||||||
* Foundation; either version 3.0 of the License, or (at your option) any later
|
|
||||||
* version.
|
|
||||||
*
|
|
||||||
* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
||||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
||||||
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License along
|
|
||||||
* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
class BootStrap {
|
class BootStrap {
|
||||||
def jmsContainer
|
|
||||||
|
def init = { servletContext ->
|
||||||
def init = { servletContext ->
|
}
|
||||||
log.debug "Bootstrapping bbb-web"
|
def destroy = {
|
||||||
}
|
}
|
||||||
|
}
|
||||||
def destroy = {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -1,35 +1,72 @@
|
|||||||
/**
|
grails.servlet.version = "3.0" // Change depending on target container compliance (2.5 or 3.0)
|
||||||
* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
|
grails.project.class.dir = "target/classes"
|
||||||
*
|
grails.project.test.class.dir = "target/test-classes"
|
||||||
* Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
|
grails.project.test.reports.dir = "target/test-reports"
|
||||||
*
|
grails.project.work.dir = "target/work"
|
||||||
* This program is free software; you can redistribute it and/or modify it under the
|
grails.project.target.level = 1.6
|
||||||
* terms of the GNU Lesser General Public License as published by the Free Software
|
grails.project.source.level = 1.6
|
||||||
* Foundation; either version 3.0 of the License, or (at your option) any later
|
//grails.project.war.file = "target/${appName}-${appVersion}.war"
|
||||||
* version.
|
|
||||||
*
|
grails.project.fork = [
|
||||||
* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
// configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required
|
||||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
// compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
|
||||||
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
|
||||||
*
|
// configure settings for the test-app JVM, uses the daemon by default
|
||||||
* You should have received a copy of the GNU Lesser General Public License along
|
test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
|
||||||
* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
// configure settings for the run-app JVM
|
||||||
*
|
run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
|
||||||
*/
|
// configure settings for the run-war JVM
|
||||||
|
war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
|
||||||
|
// configure settings for the Console UI JVM
|
||||||
// This closure is to enable logging in production.
|
console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
|
||||||
// This closure is passed the location of the staging directory that
|
]
|
||||||
// is zipped up to make the WAR file, and the command line arguments.
|
|
||||||
// Here we copy over oug log4j.properties file while the web.xml is
|
grails.project.dependency.resolver = "maven" // or ivy
|
||||||
// overridden from what's in src/templates/war/web.xml.
|
grails.project.dependency.resolution = {
|
||||||
// (ralam, jan 7, 2010)
|
// inherit Grails' default dependencies
|
||||||
grails.war.resources = {stagingDir, args ->
|
inherits("global") {
|
||||||
//println '*** Copying our custom web.xml and log4j.properties as workaround for logging problem. ***'
|
// specify dependency exclusions here; for example, uncomment this to disable ehcache:
|
||||||
//println '*** Copying our custom web.xml as workaround for logging problem. ***'
|
// excludes 'ehcache'
|
||||||
//copy(file: "grails-app/conf/custom-web.xml", tofile: "${stagingDir}/WEB-INF/web.xml")
|
}
|
||||||
println '*** Copying our custom log4j.properties as workaround for logging problem. ***'
|
log "error" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
|
||||||
copy(file: "grails-app/conf/log4j.properties", tofile: "${stagingDir}/WEB-INF/classes/log4j.properties")
|
checksums true // Whether to verify checksums on resolve
|
||||||
}
|
legacyResolve false // whether to do a secondary resolve on plugin installation, not advised and here for backwards compatibility
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
inherits true // Whether to inherit repository definitions from plugins
|
||||||
|
|
||||||
|
grailsPlugins()
|
||||||
|
grailsHome()
|
||||||
|
mavenLocal()
|
||||||
|
grailsCentral()
|
||||||
|
mavenCentral()
|
||||||
|
// uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories
|
||||||
|
//mavenRepo "http://repository.codehaus.org"
|
||||||
|
//mavenRepo "http://download.java.net/maven/2/"
|
||||||
|
//mavenRepo "http://repository.jboss.com/maven2/"
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
// specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.
|
||||||
|
// runtime 'mysql:mysql-connector-java:5.1.24'
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
// plugins for the build system only
|
||||||
|
build ":tomcat:7.0.42"
|
||||||
|
|
||||||
|
// plugins for the compile step
|
||||||
|
compile ":scaffolding:2.0.0"
|
||||||
|
compile ':cache:1.1.1'
|
||||||
|
|
||||||
|
// plugins needed at runtime but not for compilation
|
||||||
|
runtime ":hibernate:3.6.10.1" // or ":hibernate4:4.1.11.1"
|
||||||
|
runtime ":database-migration:1.3.5"
|
||||||
|
runtime ":jquery:1.10.2"
|
||||||
|
runtime ":resources:1.2"
|
||||||
|
// Uncomment these (or add new ones) to enable additional resources capabilities
|
||||||
|
//runtime ":zipped-resources:1.0.1"
|
||||||
|
//runtime ":cached-resources:1.1"
|
||||||
|
//runtime ":yui-minify-resources:0.1.5"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -1,99 +1,117 @@
|
|||||||
/**
|
// locations to search for config files that get merged into the main config;
|
||||||
* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
|
// config files can be ConfigSlurper scripts, Java properties files, or classes
|
||||||
*
|
// in the classpath in ConfigSlurper format
|
||||||
* Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify it under the
|
|
||||||
* terms of the GNU Lesser General Public License as published by the Free Software
|
|
||||||
* Foundation; either version 3.0 of the License, or (at your option) any later
|
|
||||||
* version.
|
|
||||||
*
|
|
||||||
* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
||||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
||||||
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License along
|
|
||||||
* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
// locations to search for config files that get merged into the main config
|
|
||||||
// config files can either be Java properties files or ConfigSlurper scripts
|
|
||||||
|
|
||||||
// grails.config.locations = [ "classpath:${appName}-config.properties",
|
// grails.config.locations = [ "classpath:${appName}-config.properties",
|
||||||
// "classpath:${appName}-config.groovy",
|
// "classpath:${appName}-config.groovy",
|
||||||
// "file:${userHome}/.grails/${appName}-config.properties",
|
// "file:${userHome}/.grails/${appName}-config.properties",
|
||||||
// "file:${userHome}/.grails/${appName}-config.groovy"]
|
// "file:${userHome}/.grails/${appName}-config.groovy"]
|
||||||
|
|
||||||
grails.config.locations = [ "classpath:bigbluebutton.properties"]
|
// if (System.properties["${appName}.config.location"]) {
|
||||||
// grails.config.locations = [ "classpath:bigbluebutton.properties"]
|
|
||||||
// if(System.properties["${appName}.config.location"]) {
|
|
||||||
// grails.config.locations << "file:" + System.properties["${appName}.config.location"]
|
// grails.config.locations << "file:" + System.properties["${appName}.config.location"]
|
||||||
// }
|
// }
|
||||||
grails.mime.file.extensions = true // enables the parsing of file extensions from URLs into the request format
|
grails.config.locations = [ "classpath:bigbluebutton.properties"]
|
||||||
grails.mime.types = [ html: ['text/html','application/xhtml+xml'],
|
|
||||||
xml: ['text/xml', 'application/xml'],
|
|
||||||
text: 'text-plain',
|
|
||||||
js: 'text/javascript',
|
|
||||||
rss: 'application/rss+xml',
|
|
||||||
atom: 'application/atom+xml',
|
|
||||||
css: 'text/css',
|
|
||||||
csv: 'text/csv',
|
|
||||||
all: '*/*',
|
|
||||||
json: ['application/json','text/json'],
|
|
||||||
form: 'application/x-www-form-urlencoded',
|
|
||||||
multipartForm: 'multipart/form-data'
|
|
||||||
]
|
|
||||||
// The default codec used to encode data with ${}
|
|
||||||
grails.views.default.codec="none" // none, html, base64
|
|
||||||
grails.views.gsp.encoding="UTF-8"
|
|
||||||
grails.converters.encoding="UTF-8"
|
|
||||||
|
|
||||||
|
grails.project.groupId = appName // change this to alter the default package name and Maven publishing destination
|
||||||
|
|
||||||
|
// The ACCEPT header will not be used for content negotiation for user agents containing the following strings (defaults to the 4 major rendering engines)
|
||||||
|
grails.mime.disable.accept.header.userAgents = ['Gecko', 'WebKit', 'Presto', 'Trident']
|
||||||
|
grails.mime.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',
|
||||||
|
rss: 'application/rss+xml',
|
||||||
|
text: 'text/plain',
|
||||||
|
hal: ['application/hal+json','application/hal+xml'],
|
||||||
|
xml: ['text/xml', 'application/xml']
|
||||||
|
]
|
||||||
|
|
||||||
|
// URL Mapping Cache Max Size, defaults to 5000
|
||||||
|
//grails.urlmapping.cache.maxsize = 1000
|
||||||
|
|
||||||
|
// What URL patterns should be processed by the resources plugin
|
||||||
|
grails.resources.adhoc.patterns = ['/images/*', '/css/*', '/js/*', '/plugins/*']
|
||||||
|
|
||||||
|
// Legacy setting for codec used to encode data with ${}
|
||||||
|
grails.views.default.codec = "html"
|
||||||
|
|
||||||
|
// The default scope for controllers. May be prototype, session or singleton.
|
||||||
|
// If unspecified, controllers are prototype scoped.
|
||||||
|
grails.controllers.defaultScope = 'singleton'
|
||||||
|
|
||||||
|
// GSP settings
|
||||||
|
grails {
|
||||||
|
views {
|
||||||
|
gsp {
|
||||||
|
encoding = 'UTF-8'
|
||||||
|
htmlcodec = 'xml' // use xml escaping instead of HTML4 escaping
|
||||||
|
codecs {
|
||||||
|
expression = 'html' // escapes values inside ${}
|
||||||
|
scriptlet = 'html' // escapes output from scriptlets in GSPs
|
||||||
|
taglib = 'none' // escapes output from taglibs
|
||||||
|
staticparts = 'none' // escapes output from static template parts
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// escapes all not-encoded output at final stage of outputting
|
||||||
|
filteringCodecForContentType {
|
||||||
|
//'text/html' = 'html'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
grails.converters.encoding = "UTF-8"
|
||||||
|
// scaffolding templates configuration
|
||||||
|
grails.scaffolding.templates.domainSuffix = 'Instance'
|
||||||
|
|
||||||
|
// Set to false to use the new Grails 1.2 JSONBuilder in the render method
|
||||||
|
grails.json.legacy.builder = false
|
||||||
// enabled native2ascii conversion of i18n properties files
|
// enabled native2ascii conversion of i18n properties files
|
||||||
grails.enable.native2ascii = true
|
grails.enable.native2ascii = true
|
||||||
|
// packages to include in Spring bean scanning
|
||||||
|
grails.spring.bean.packages = []
|
||||||
|
// whether to disable processing of multi part requests
|
||||||
|
grails.web.disable.multipart=false
|
||||||
|
|
||||||
|
// request parameters to mask when logging exceptions
|
||||||
|
grails.exceptionresolver.params.exclude = ['password']
|
||||||
|
|
||||||
|
// configure auto-caching of queries by default (if false you can cache individual queries with 'cache: true')
|
||||||
|
grails.hibernate.cache.queries = false
|
||||||
|
|
||||||
environments {
|
environments {
|
||||||
development {
|
development {
|
||||||
grails.serverURL = "http://localhost:8080"
|
grails.logging.jul.usebridge = true
|
||||||
}
|
}
|
||||||
production {
|
production {
|
||||||
grails.serverURL = "http://localhost:8080"
|
grails.logging.jul.usebridge = false
|
||||||
}
|
// TODO: grails.serverURL = "http://www.changeme.com"
|
||||||
test {
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use own log4j.properties for logging as it seems there is a
|
// log4j configuration
|
||||||
// problem with logging on production using the DSL. This works
|
|
||||||
// ok when ran using "grails run-war"
|
|
||||||
// (ralam - jan 7, 2010)
|
|
||||||
|
|
||||||
//log4j configuration
|
|
||||||
log4j = {
|
log4j = {
|
||||||
appenders {
|
// Example of changing the log pattern for the default console appender:
|
||||||
rollingFile name:'logfileAppender', maxFileSize:500000, file:"/tmp/bbb-web.log"
|
//
|
||||||
console name:'consoleAppender', layout:pattern(conversionPattern: '%d{[dd.MM.yy HH:mm:ss.SSS]} %-5p %c %x - %m%n')
|
//appenders {
|
||||||
}
|
// console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
|
||||||
|
//}
|
||||||
|
|
||||||
root {
|
error 'org.codehaus.groovy.grails.web.servlet', // controllers
|
||||||
warn 'logfileAppender', 'consoleAppender'
|
'org.codehaus.groovy.grails.web.pages', // GSP
|
||||||
additivity = true
|
'org.codehaus.groovy.grails.web.sitemesh', // layouts
|
||||||
}
|
'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
|
||||||
|
'org.codehaus.groovy.grails.web.mapping', // URL mapping
|
||||||
warn 'org.codehaus.groovy.grails.web.servlet', // controllers
|
'org.codehaus.groovy.grails.commons', // core / classloading
|
||||||
'org.codehaus.groovy.grails.web.pages', // GSP
|
'org.codehaus.groovy.grails.plugins', // plugins
|
||||||
'org.codehaus.groovy.grails.web.sitemesh', // layouts
|
'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
|
||||||
'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
|
'org.springframework',
|
||||||
'org.codehaus.groovy.grails.web.mapping', // URL mapping
|
'org.hibernate',
|
||||||
'org.codehaus.groovy.grails.commons', // core / classloading
|
'net.sf.ehcache.hibernate'
|
||||||
'org.codehaus.groovy.grails.plugins', // plugins
|
debug 'org.bigbluebutton'
|
||||||
'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
|
|
||||||
'org.springframework',
|
|
||||||
'org.hibernate',
|
|
||||||
'org.mortbay.log'
|
|
||||||
debug 'grails.app',
|
|
||||||
'org.bigbluebutton'
|
|
||||||
|
|
||||||
// additivity.StackTrace=false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
27
bigbluebutton-web/grails-app/conf/DataSource.groovy
Normal file → Executable file
27
bigbluebutton-web/grails-app/conf/DataSource.groovy
Normal file → Executable file
@ -1,32 +1,45 @@
|
|||||||
dataSource {
|
dataSource {
|
||||||
pooled = true
|
pooled = true
|
||||||
driverClassName = "org.hsqldb.jdbcDriver"
|
driverClassName = "org.h2.Driver"
|
||||||
username = "sa"
|
username = "sa"
|
||||||
password = ""
|
password = ""
|
||||||
}
|
}
|
||||||
hibernate {
|
hibernate {
|
||||||
cache.use_second_level_cache = true
|
cache.use_second_level_cache = true
|
||||||
cache.use_query_cache = true
|
cache.use_query_cache = false
|
||||||
cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider'
|
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
|
||||||
|
// cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
|
||||||
}
|
}
|
||||||
|
|
||||||
// environment specific settings
|
// environment specific settings
|
||||||
environments {
|
environments {
|
||||||
development {
|
development {
|
||||||
dataSource {
|
dataSource {
|
||||||
dbCreate = "create-drop" // one of 'create', 'create-drop','update'
|
dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
|
||||||
url = "jdbc:hsqldb:mem:devDB"
|
url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
test {
|
test {
|
||||||
dataSource {
|
dataSource {
|
||||||
dbCreate = "update"
|
dbCreate = "update"
|
||||||
url = "jdbc:hsqldb:mem:testDb"
|
url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
production {
|
production {
|
||||||
dataSource {
|
dataSource {
|
||||||
dbCreate = "update"
|
dbCreate = "update"
|
||||||
url = "jdbc:hsqldb:file:prodDb;shutdown=true"
|
url = "jdbc:h2:prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
|
||||||
|
properties {
|
||||||
|
maxActive = -1
|
||||||
|
minEvictableIdleTimeMillis=1800000
|
||||||
|
timeBetweenEvictionRunsMillis=1800000
|
||||||
|
numTestsPerEvictionRun=3
|
||||||
|
testOnBorrow=true
|
||||||
|
testWhileIdle=true
|
||||||
|
testOnReturn=false
|
||||||
|
validationQuery="SELECT 1"
|
||||||
|
jdbcInterceptors="ConnectionState"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,73 +1,53 @@
|
|||||||
/**
|
class UrlMappings {
|
||||||
* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
|
|
||||||
*
|
static mappings = {
|
||||||
* Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
|
"/presentation/upload"(controller:"presentation") {
|
||||||
*
|
action = [GET:'show', POST:'upload', DELETE:'delete']
|
||||||
* This program is free software; you can redistribute it and/or modify it under the
|
}
|
||||||
* terms of the GNU Lesser General Public License as published by the Free Software
|
|
||||||
* Foundation; either version 3.0 of the License, or (at your option) any later
|
"/presentation/test-convert"(controller:"presentation") {
|
||||||
* version.
|
action = [GET:'testConversion']
|
||||||
*
|
}
|
||||||
* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
||||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
"/presentation/$conference/$room/$presentation_name/slides"(controller:"presentation") {
|
||||||
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
action = [GET:'numberOfSlides']
|
||||||
*
|
}
|
||||||
* You should have received a copy of the GNU Lesser General Public License along
|
|
||||||
* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
"/presentation/$conference/$room/$presentation_name/slide/$id"(controller:"presentation") {
|
||||||
*
|
action = [GET:'showSlide']
|
||||||
*/
|
}
|
||||||
|
|
||||||
class UrlMappings {
|
"/presentation/$conference/$room/$presentation_name/thumbnails"(controller:"presentation") {
|
||||||
static mappings = {
|
action = [GET:'numberOfThumbnails']
|
||||||
|
}
|
||||||
"/presentation/upload"(controller:"presentation") {
|
|
||||||
action = [GET:'show', POST:'upload', DELETE:'delete']
|
"/presentation/$conference/$room/$presentation_name/thumbnail/$id"(controller:"presentation") {
|
||||||
}
|
action = [GET:'showThumbnail']
|
||||||
|
}
|
||||||
"/presentation/test-convert"(controller:"presentation") {
|
|
||||||
action = [GET:'testConversion']
|
"/presentation/$conference/$room/$presentation_name/textfiles"(controller:"presentation") {
|
||||||
}
|
action = [GET:'numberOfTextfiles']
|
||||||
|
}
|
||||||
"/presentation/$conference/$room/$presentation_name/slides"(controller:"presentation") {
|
|
||||||
action = [GET:'numberOfSlides']
|
"/presentation/$conference/$room/$presentation_name/textfile/$id"(controller:"presentation") {
|
||||||
}
|
action = [GET:'showTextfile']
|
||||||
|
}
|
||||||
"/presentation/$conference/$room/$presentation_name/slide/$id"(controller:"presentation") {
|
|
||||||
action = [GET:'showSlide']
|
"/api/setConfigXML"(controller:"api") {
|
||||||
}
|
action = [POST:'setConfigXML']
|
||||||
|
}
|
||||||
"/presentation/$conference/$room/$presentation_name/thumbnails"(controller:"presentation") {
|
|
||||||
action = [GET:'numberOfThumbnails']
|
"/api/setPollXML"(controller:"api") {
|
||||||
}
|
action = [POST:'setPollXML']
|
||||||
|
}
|
||||||
"/presentation/$conference/$room/$presentation_name/thumbnail/$id"(controller:"presentation") {
|
|
||||||
action = [GET:'showThumbnail']
|
"/$controller/$action?/$id?(.${format})?"{
|
||||||
}
|
constraints {
|
||||||
|
// apply constraints here
|
||||||
"/presentation/$conference/$room/$presentation_name/textfiles"(controller:"presentation") {
|
}
|
||||||
action = [GET:'numberOfTextfiles']
|
}
|
||||||
}
|
|
||||||
|
"/"(view:"/index")
|
||||||
"/presentation/$conference/$room/$presentation_name/textfile/$id"(controller:"presentation") {
|
"500"(view:'/error')
|
||||||
action = [GET:'showTextfile']
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
"/api/setConfigXML"(controller:"api") {
|
|
||||||
action = [POST:'setConfigXML']
|
|
||||||
}
|
|
||||||
|
|
||||||
"/api/setPollXML"(controller:"api") {
|
|
||||||
action = [POST:'setPollXML']
|
|
||||||
}
|
|
||||||
|
|
||||||
"/$controller/$action?/$id?"{
|
|
||||||
constraints {
|
|
||||||
// apply constraints here
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"500"(view:'/error')
|
|
||||||
|
|
||||||
"/" (controller: 'conference', action: 'list')
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -1,180 +1,180 @@
|
|||||||
#
|
#
|
||||||
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
|
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
|
||||||
#
|
#
|
||||||
# Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
|
# Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it under the
|
# This program is free software; you can redistribute it and/or modify it under the
|
||||||
# terms of the GNU Lesser General Public License as published by the Free Software
|
# terms of the GNU Lesser General Public License as published by the Free Software
|
||||||
# Foundation; either version 3.0 of the License, or (at your option) any later
|
# Foundation; either version 3.0 of the License, or (at your option) any later
|
||||||
# version.
|
# version.
|
||||||
#
|
#
|
||||||
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Lesser General Public License along
|
# You should have received a copy of the GNU Lesser General Public License along
|
||||||
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# These are the default properites for BigBlueButton Web application
|
# These are the default properites for BigBlueButton Web application
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# Directory where BigBlueButton stores uploaded slides
|
# Directory where BigBlueButton stores uploaded slides
|
||||||
presentationDir=/var/bigbluebutton
|
presentationDir=/var/bigbluebutton
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# Directory where SWFTOOLS (pdf2swf, jpeg2swf, png2swf) are located
|
# Directory where SWFTOOLS (pdf2swf, jpeg2swf, png2swf) are located
|
||||||
swfToolsDir=/bin
|
swfToolsDir=/bin
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# Directory where ImageMagick's convert executable is located
|
# Directory where ImageMagick's convert executable is located
|
||||||
imageMagickDir=/usr/bin
|
imageMagickDir=/usr/bin
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# Use fullpath to ghostscript executable since the exec names are different
|
# Use fullpath to ghostscript executable since the exec names are different
|
||||||
# for each platform.
|
# for each platform.
|
||||||
ghostScriptExec=/usr/bin/gs
|
ghostScriptExec=/usr/bin/gs
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# Fonts directory passed into PDF2SWF to support highlighting of texts
|
# Fonts directory passed into PDF2SWF to support highlighting of texts
|
||||||
# in the SWF slides.
|
# in the SWF slides.
|
||||||
fontsDir=/usr/share/fonts
|
fontsDir=/usr/share/fonts
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# This is a workaround for a problem converting PDF files, referenced at
|
# This is a workaround for a problem converting PDF files, referenced at
|
||||||
# http://groups.google.com/group/comp.lang.postscript/browse_thread/thread/c2e264ca76534ce0?pli=1
|
# http://groups.google.com/group/comp.lang.postscript/browse_thread/thread/c2e264ca76534ce0?pli=1
|
||||||
noPdfMarkWorkaround=/etc/bigbluebutton/nopdfmark.ps
|
noPdfMarkWorkaround=/etc/bigbluebutton/nopdfmark.ps
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# These will be copied in cases where the conversion process
|
# These will be copied in cases where the conversion process
|
||||||
# fails to generate a slide from the uploaded presentation
|
# fails to generate a slide from the uploaded presentation
|
||||||
BLANK_SLIDE=/var/bigbluebutton/blank/blank-slide.swf
|
BLANK_SLIDE=/var/bigbluebutton/blank/blank-slide.swf
|
||||||
BLANK_THUMBNAIL=/var/bigbluebutton/blank/blank-thumb.png
|
BLANK_THUMBNAIL=/var/bigbluebutton/blank/blank-thumb.png
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# Number of minutes the conversion should take. If it takes
|
# Number of minutes the conversion should take. If it takes
|
||||||
# more than this time, cancel the conversion process.
|
# more than this time, cancel the conversion process.
|
||||||
maxConversionTime=5
|
maxConversionTime=5
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# Maximum number of pages allowed for an uploaded presentation (default 100).
|
# Maximum number of pages allowed for an uploaded presentation (default 100).
|
||||||
maxNumPages=200
|
maxNumPages=200
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# Maximum swf file size for load to the client (default 500000).
|
# Maximum swf file size for load to the client (default 500000).
|
||||||
MAX_SWF_FILE_SIZE=500000
|
MAX_SWF_FILE_SIZE=500000
|
||||||
|
|
||||||
# Default number of digits for voice conference users joining through the PSTN.
|
# Default number of digits for voice conference users joining through the PSTN.
|
||||||
defaultNumDigitsForTelVoice=5
|
defaultNumDigitsForTelVoice=5
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# Default dial access number
|
# Default dial access number
|
||||||
defaultDialAccessNumber=613-555-1234
|
defaultDialAccessNumber=613-555-1234
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# Default welcome message to display when the participant joins the web
|
# Default welcome message to display when the participant joins the web
|
||||||
# conference. This is only used for the old scheduling which will be
|
# conference. This is only used for the old scheduling which will be
|
||||||
# removed in the future. Use the API to create a conference.
|
# removed in the future. Use the API to create a conference.
|
||||||
defaultWelcomeMessage=<br>Welcome to <b>%%CONFNAME%%</b>!<br><br>For help on using BigBlueButton see these (short) <a href="event:http://www.bigbluebutton.org/content/videos"><u>tutorial videos</u></a>.<br><br>To join the audio bridge click the headset icon (upper-left hand corner). Use a headset to avoid causing background noise for others.<br>
|
defaultWelcomeMessage=<br>Welcome to <b>%%CONFNAME%%</b>!<br><br>For help on using BigBlueButton see these (short) <a href="event:http://www.bigbluebutton.org/content/videos"><u>tutorial videos</u></a>.<br><br>To join the audio bridge click the headset icon (upper-left hand corner). Use a headset to avoid causing background noise for others.<br>
|
||||||
defaultWelcomeMessageFooter=This server is running <a href="https://code.google.com/p/bigbluebutton/wiki/081Overview" target="_blank"><u>BigBlueButton 0.81</u></a>.
|
defaultWelcomeMessageFooter=This server is running a <a href="https://code.google.com/p/bigbluebutton/wiki/081Overview" target="_blank"><u>BigBlueButton 0.81-RC</u></a>.
|
||||||
|
|
||||||
# Default maximum number of users a meeting can have.
|
# Default maximum number of users a meeting can have.
|
||||||
# Doesn't get enforced yet but is the default value when the create
|
# Doesn't get enforced yet but is the default value when the create
|
||||||
# API doesn't pass a value.
|
# API doesn't pass a value.
|
||||||
defaultMaxUsers=20
|
defaultMaxUsers=20
|
||||||
|
|
||||||
# Default duration of the meeting in minutes.
|
# Default duration of the meeting in minutes.
|
||||||
# Current default is 0 (meeting doesn't end).
|
# Current default is 0 (meeting doesn't end).
|
||||||
defaultMeetingDuration=0
|
defaultMeetingDuration=0
|
||||||
|
|
||||||
# Remove the meeting from memory when the end API is called.
|
# Remove the meeting from memory when the end API is called.
|
||||||
# This allows 3rd-party apps to recycle the meeting right-away
|
# This allows 3rd-party apps to recycle the meeting right-away
|
||||||
# instead of waiting for the meeting to expire (see below).
|
# instead of waiting for the meeting to expire (see below).
|
||||||
removeMeetingWhenEnded=true
|
removeMeetingWhenEnded=true
|
||||||
|
|
||||||
# The number of minutes before the system removes the meeting from memory.
|
# The number of minutes before the system removes the meeting from memory.
|
||||||
defaultMeetingExpireDuration=1
|
defaultMeetingExpireDuration=1
|
||||||
|
|
||||||
# The number of minutes the system waits when a meeting is created and when
|
# The number of minutes the system waits when a meeting is created and when
|
||||||
# a user joins. If after this period, a user hasn't joined, the meeting is
|
# a user joins. If after this period, a user hasn't joined, the meeting is
|
||||||
# removed from memory.
|
# removed from memory.
|
||||||
defaultMeetingCreateJoinDuration=5
|
defaultMeetingCreateJoinDuration=5
|
||||||
|
|
||||||
# Disable recording by default.
|
# Disable recording by default.
|
||||||
# true - don't record even if record param in the api call is set to record
|
# true - don't record even if record param in the api call is set to record
|
||||||
# false - when record param is passed from api, override this default
|
# false - when record param is passed from api, override this default
|
||||||
disableRecordingDefault=false
|
disableRecordingDefault=false
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# This URL is where the BBB client is accessible. When a user sucessfully
|
# This URL is where the BBB client is accessible. When a user sucessfully
|
||||||
# enters a name and password, she is redirected here to load the client.
|
# enters a name and password, she is redirected here to load the client.
|
||||||
bigbluebutton.web.serverURL=http://192.168.153.139
|
bigbluebutton.web.serverURL=http://192.168.0.150
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# Assign URL where the logged-out participant will be redirected after sign-out.
|
# Assign URL where the logged-out participant will be redirected after sign-out.
|
||||||
# If "default", it returns to bigbluebutton.web.serverURL
|
# If "default", it returns to bigbluebutton.web.serverURL
|
||||||
bigbluebutton.web.logoutURL=default
|
bigbluebutton.web.logoutURL=default
|
||||||
|
|
||||||
# The url of the BigBlueButton client. User's will be redirected here when
|
# The url of the BigBlueButton client. User's will be redirected here when
|
||||||
# successfully joining the meeting.
|
# successfully joining the meeting.
|
||||||
defaultClientUrl=${bigbluebutton.web.serverURL}/client/BigBlueButton.html
|
defaultClientUrl=${bigbluebutton.web.serverURL}/client/BigBlueButton.html
|
||||||
#defaultClientUrl=http://192.168.0.235/3rd-party.html
|
#defaultClientUrl=http://192.168.0.235/3rd-party.html
|
||||||
|
|
||||||
# The default avatar image to display if nothing is passed on the JOIN API (avatarURL)
|
# The default avatar image to display if nothing is passed on the JOIN API (avatarURL)
|
||||||
# call. This avatar is displayed if the user isn't sharing the webcam and
|
# call. This avatar is displayed if the user isn't sharing the webcam and
|
||||||
# the option (displayAvatar) is enabled in config.xml
|
# the option (displayAvatar) is enabled in config.xml
|
||||||
defaultAvatarURL=${bigbluebutton.web.serverURL}/client/avatar.png
|
defaultAvatarURL=${bigbluebutton.web.serverURL}/client/avatar.png
|
||||||
|
|
||||||
# The URL of the default configuration
|
# The URL of the default configuration
|
||||||
defaultConfigURL=${bigbluebutton.web.serverURL}/client/conf/config.xml
|
defaultConfigURL=${bigbluebutton.web.serverURL}/client/conf/config.xml
|
||||||
|
|
||||||
apiVersion=0.81
|
apiVersion=0.81
|
||||||
|
|
||||||
# Salt which is used by 3rd-party apps to authenticate api calls
|
# Salt which is used by 3rd-party apps to authenticate api calls
|
||||||
securitySalt=873b4c35e992f3e54c374412082934b6
|
securitySalt=0c3eaac5b455b4353ec826fce1657ad8
|
||||||
|
|
||||||
# Directory where we drop the <meeting-id-recorded>.done file
|
# Directory where we drop the <meeting-id-recorded>.done file
|
||||||
recordStatusDir=/var/bigbluebutton/recording/status/recorded
|
recordStatusDir=/var/bigbluebutton/recording/status/recorded
|
||||||
|
|
||||||
redisHost=127.0.0.1
|
redisHost=127.0.0.1
|
||||||
redisPort=6379
|
redisPort=6379
|
||||||
|
|
||||||
# The directory where the published/unpublised recordings are located. This is for
|
# The directory where the published/unpublised recordings are located. This is for
|
||||||
# the get recording* api calls
|
# the get recording* api calls
|
||||||
publishedDir=/var/bigbluebutton/published
|
publishedDir=/var/bigbluebutton/published
|
||||||
unpublishedDir=/var/bigbluebutton/unpublished
|
unpublishedDir=/var/bigbluebutton/unpublished
|
||||||
|
|
||||||
# If the API is enabled.
|
# If the API is enabled.
|
||||||
serviceEnabled = true
|
serviceEnabled = true
|
||||||
|
|
||||||
# Test voiceBridge number
|
# Test voiceBridge number
|
||||||
testVoiceBridge=99999
|
testVoiceBridge=99999
|
||||||
testConferenceMock=conference-mock-default
|
testConferenceMock=conference-mock-default
|
||||||
|
|
||||||
#------------------------------------------------------
|
#------------------------------------------------------
|
||||||
# These properties are used to test the conversion process.
|
# These properties are used to test the conversion process.
|
||||||
# Conference name folder in ${presentationDir} (see above)
|
# Conference name folder in ${presentationDir} (see above)
|
||||||
beans.presentationService.testConferenceMock=${testConferenceMock}
|
beans.presentationService.testConferenceMock=${testConferenceMock}
|
||||||
|
|
||||||
# Conference room folder in ${presentationDir}/${testConferenceMock}
|
# Conference room folder in ${presentationDir}/${testConferenceMock}
|
||||||
beans.presentationService.testRoomMock=conference-mock-default
|
beans.presentationService.testRoomMock=conference-mock-default
|
||||||
# Uploaded presentation name
|
# Uploaded presentation name
|
||||||
beans.presentationService.testPresentationName=appkonference
|
beans.presentationService.testPresentationName=appkonference
|
||||||
# Uploaded presentation file
|
# Uploaded presentation file
|
||||||
beans.presentationService.testUploadedPresentation=appkonference.txt
|
beans.presentationService.testUploadedPresentation=appkonference.txt
|
||||||
# Default Uploaded presentation file
|
# Default Uploaded presentation file
|
||||||
beans.presentationService.defaultUploadedPresentation=${bigbluebutton.web.serverURL}/default.pdf
|
beans.presentationService.defaultUploadedPresentation=${bigbluebutton.web.serverURL}/default.pdf
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# Inject values into grails service beans
|
# Inject values into grails service beans
|
||||||
beans.presentationService.presentationDir=${presentationDir}
|
beans.presentationService.presentationDir=${presentationDir}
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# Specify which IPs can do cross domain requests
|
# Specify which IPs can do cross domain requests
|
||||||
accessControlAllowOrigin=${bigbluebutton.web.serverURL}
|
accessControlAllowOrigin=${bigbluebutton.web.serverURL}
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# The lapsus of seconds for polling the BBB Server in order to check if it's down.
|
# The lapsus of seconds for polling the BBB Server in order to check if it's down.
|
||||||
# After 5 tries if there isn't response, it will be declared down
|
# After 5 tries if there isn't response, it will be declared down
|
||||||
checkBBBServerEvery=10
|
checkBBBServerEvery=10
|
||||||
|
@ -1,69 +0,0 @@
|
|||||||
#
|
|
||||||
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
|
|
||||||
#
|
|
||||||
# Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify it under the
|
|
||||||
# terms of the GNU Lesser General Public License as published by the Free Software
|
|
||||||
# Foundation; either version 3.0 of the License, or (at your option) any later
|
|
||||||
# version.
|
|
||||||
#
|
|
||||||
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
||||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
||||||
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Lesser General Public License along
|
|
||||||
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
|
|
||||||
# This custom log4j.properties file is a workaround for problem with logging when
|
|
||||||
# deployed to Tomcat. This goes hand-in-hand with src/templates/war/web.xml
|
|
||||||
# Taken from /home/firstuser/dev/tools/grails-1.1.1/src/war/WEB-INF/log4j.properties (ralam - jan 6, 2010)
|
|
||||||
log4j.rootLogger=DEBUG, stdout, logfile
|
|
||||||
|
|
||||||
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
|
||||||
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
|
||||||
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n
|
|
||||||
|
|
||||||
# Keep 20 days of logs
|
|
||||||
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
|
|
||||||
log4j.appender.logfile.Append=true
|
|
||||||
log4j.appender.logfile.File=/var/log/bigbluebutton/bbb-web.log
|
|
||||||
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd
|
|
||||||
log4j.appender.logfile.MaxBackupIndex=20
|
|
||||||
|
|
||||||
# Pattern to output: date priority [category] - message
|
|
||||||
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
|
|
||||||
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
|
|
||||||
|
|
||||||
|
|
||||||
log4j.logger.org.codehaus.groovy.grails.web.servlet=WARN
|
|
||||||
log4j.logger.org.codehaus.groovy.grails.web.pages=WARN
|
|
||||||
log4j.logger.org.codehaus.groovy.grails.web.sitemesh=WARN
|
|
||||||
log4j.logger.org.codehaus.groovy.grails.web.mapping.filter=WARN
|
|
||||||
log4j.logger.org.codehaus.groovy.grails.web.mapping=WARN
|
|
||||||
log4j.logger.org.codehaus.groovy.grails.web.binding=WARN
|
|
||||||
log4j.logger.org.codehaus.groovy.grails.commons=WARN
|
|
||||||
log4j.logger.org.codehaus.groovy.grails.plugins=WARN
|
|
||||||
log4j.logger.org.codehaus.groovy.grails.orm.hibernate=WARN
|
|
||||||
log4j.logger.org.codehaus.groovy.grails.context.support=WARN
|
|
||||||
|
|
||||||
# Spring
|
|
||||||
log4j.logger.org.springframework=WARN
|
|
||||||
|
|
||||||
# Hibernate
|
|
||||||
log4j.logger.org.hibernate=WARN
|
|
||||||
|
|
||||||
# Mortbay
|
|
||||||
log4j.logger.org.mortbay.log=WARN
|
|
||||||
|
|
||||||
# ActiveMQ
|
|
||||||
log4j.logger.org.apache.activemq=WARN
|
|
||||||
|
|
||||||
# JSecurity
|
|
||||||
log4j.logger.org.jsecurity=WARN
|
|
||||||
|
|
||||||
# BigBlueButton
|
|
||||||
log4j.logger.org.bigbluebutton=DEBUG
|
|
||||||
log4j.logger.grails.app.controller=DEBUG
|
|
||||||
log4j.logger.grails.app.service=DEBUG
|
|
@ -1,110 +1,110 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
|
BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
|
||||||
|
|
||||||
Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
|
Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it under the
|
This program is free software; you can redistribute it and/or modify it under the
|
||||||
terms of the GNU Lesser General Public License as published by the Free Software
|
terms of the GNU Lesser General Public License as published by the Free Software
|
||||||
Foundation; either version 3.0 of the License, or (at your option) any later
|
Foundation; either version 3.0 of the License, or (at your option) any later
|
||||||
version.
|
version.
|
||||||
|
|
||||||
BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License along
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||||
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
|
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
|
||||||
">
|
">
|
||||||
|
|
||||||
<bean id="documentConversionService" class="org.bigbluebutton.presentation.DocumentConversionServiceImp">
|
<bean id="documentConversionService" class="org.bigbluebutton.presentation.DocumentConversionServiceImp">
|
||||||
<property name="messagingService" ref="messagingService"/>
|
<property name="messagingService" ref="messagingService"/>
|
||||||
<property name="officeToPdfConversionService" ref="officeToPdfConversionService"/>
|
<property name="officeToPdfConversionService" ref="officeToPdfConversionService"/>
|
||||||
<property name="pdfToSwfSlidesGenerationService" ref="pdfToSwfSlidesGenerationService"/>
|
<property name="pdfToSwfSlidesGenerationService" ref="pdfToSwfSlidesGenerationService"/>
|
||||||
<property name="imageToSwfSlidesGenerationService" ref="imageToSwfSlidesGenerationService"/>
|
<property name="imageToSwfSlidesGenerationService" ref="imageToSwfSlidesGenerationService"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="officeToPdfConversionService" class="org.bigbluebutton.presentation.imp.OfficeToPdfConversionService"/>
|
<bean id="officeToPdfConversionService" class="org.bigbluebutton.presentation.imp.OfficeToPdfConversionService"/>
|
||||||
|
|
||||||
<bean id="pageExtractor" class="org.bigbluebutton.presentation.imp.GhostscriptPageExtractor">
|
<bean id="pageExtractor" class="org.bigbluebutton.presentation.imp.GhostscriptPageExtractor">
|
||||||
<property name="ghostscriptExec" value="${ghostScriptExec}"/>
|
<property name="ghostscriptExec" value="${ghostScriptExec}"/>
|
||||||
<property name="noPdfMarkWorkaround" value="${noPdfMarkWorkaround}"/>
|
<property name="noPdfMarkWorkaround" value="${noPdfMarkWorkaround}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="imageMagickPageConverter" class="org.bigbluebutton.presentation.imp.ImageMagickPageConverter">
|
<bean id="imageMagickPageConverter" class="org.bigbluebutton.presentation.imp.ImageMagickPageConverter">
|
||||||
<property name="imageMagickDir" value="${imageMagickDir}"/>
|
<property name="imageMagickDir" value="${imageMagickDir}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="png2SwfConverter" class="org.bigbluebutton.presentation.imp.Png2SwfPageConverter">
|
<bean id="png2SwfConverter" class="org.bigbluebutton.presentation.imp.Png2SwfPageConverter">
|
||||||
<property name="swfToolsDir" value="${swfToolsDir}"/>
|
<property name="swfToolsDir" value="${swfToolsDir}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="jpg2SwfConverter" class="org.bigbluebutton.presentation.imp.Jpeg2SwfPageConverter">
|
<bean id="jpg2SwfConverter" class="org.bigbluebutton.presentation.imp.Jpeg2SwfPageConverter">
|
||||||
<property name="swfToolsDir" value="${swfToolsDir}"/>
|
<property name="swfToolsDir" value="${swfToolsDir}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="pageCounter" class="org.bigbluebutton.presentation.imp.Pdf2SwfPageCounter">
|
<bean id="pageCounter" class="org.bigbluebutton.presentation.imp.Pdf2SwfPageCounter">
|
||||||
<property name="swfToolsDir" value="${swfToolsDir}"/>
|
<property name="swfToolsDir" value="${swfToolsDir}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="pageCounterService" class="org.bigbluebutton.presentation.imp.PageCounterService">
|
<bean id="pageCounterService" class="org.bigbluebutton.presentation.imp.PageCounterService">
|
||||||
<property name="pageCounter" ref="pageCounter"/>
|
<property name="pageCounter" ref="pageCounter"/>
|
||||||
<property name="maxNumPages" value="${maxNumPages}"/>
|
<property name="maxNumPages" value="${maxNumPages}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="pdf2SwfPageConverter" class="org.bigbluebutton.presentation.imp.Pdf2SwfPageConverter">
|
<bean id="pdf2SwfPageConverter" class="org.bigbluebutton.presentation.imp.Pdf2SwfPageConverter">
|
||||||
<property name="swfToolsDir" value="${swfToolsDir}"/>
|
<property name="swfToolsDir" value="${swfToolsDir}"/>
|
||||||
<property name="fontsDir" value="${fontsDir}"/>
|
<property name="fontsDir" value="${fontsDir}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="imageConvSvc" class="org.bigbluebutton.presentation.imp.PdfPageToImageConversionService">
|
<bean id="imageConvSvc" class="org.bigbluebutton.presentation.imp.PdfPageToImageConversionService">
|
||||||
<property name="pageExtractor" ref="pageExtractor"/>
|
<property name="pageExtractor" ref="pageExtractor"/>
|
||||||
<property name="pdfToImageConverter" ref="imageMagickPageConverter"/>
|
<property name="pdfToImageConverter" ref="imageMagickPageConverter"/>
|
||||||
<property name="imageToSwfConverter" ref="png2SwfConverter"/>
|
<property name="imageToSwfConverter" ref="png2SwfConverter"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="thumbCreator" class="org.bigbluebutton.presentation.imp.ThumbnailCreatorImp">
|
<bean id="thumbCreator" class="org.bigbluebutton.presentation.imp.ThumbnailCreatorImp">
|
||||||
<property name="imageMagickDir" value="${imageMagickDir}"/>
|
<property name="imageMagickDir" value="${imageMagickDir}"/>
|
||||||
<property name="blankThumbnail" value="${BLANK_THUMBNAIL}"/>
|
<property name="blankThumbnail" value="${BLANK_THUMBNAIL}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="textFileCreator" class="org.bigbluebutton.presentation.imp.TextFileCreatorImp">
|
<bean id="textFileCreator" class="org.bigbluebutton.presentation.imp.TextFileCreatorImp">
|
||||||
<property name="imageMagickDir" value="${imageMagickDir}"/>
|
<property name="imageMagickDir" value="${imageMagickDir}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="generatedSlidesInfoHelper" class="org.bigbluebutton.presentation.GeneratedSlidesInfoHelperImp"/>
|
<bean id="generatedSlidesInfoHelper" class="org.bigbluebutton.presentation.GeneratedSlidesInfoHelperImp"/>
|
||||||
|
|
||||||
<bean id="pdfToSwfSlidesGenerationService" class="org.bigbluebutton.presentation.imp.PdfToSwfSlidesGenerationService">
|
<bean id="pdfToSwfSlidesGenerationService" class="org.bigbluebutton.presentation.imp.PdfToSwfSlidesGenerationService">
|
||||||
<property name="counterService" ref="pageCounterService"/>
|
<property name="counterService" ref="pageCounterService"/>
|
||||||
<property name="pageConverter" ref="pdf2SwfPageConverter"/>
|
<property name="pageConverter" ref="pdf2SwfPageConverter"/>
|
||||||
<property name="pdfPageToImageConversionService" ref="imageConvSvc"/>
|
<property name="pdfPageToImageConversionService" ref="imageConvSvc"/>
|
||||||
<property name="thumbnailCreator" ref="thumbCreator"/>
|
<property name="thumbnailCreator" ref="thumbCreator"/>
|
||||||
<property name="textFileCreator" ref="textFileCreator"/>
|
<property name="textFileCreator" ref="textFileCreator"/>
|
||||||
<property name="blankSlide" value="${BLANK_SLIDE}"/>
|
<property name="blankSlide" value="${BLANK_SLIDE}"/>
|
||||||
<property name="maxSwfFileSize" value="${MAX_SWF_FILE_SIZE}"/>
|
<property name="maxSwfFileSize" value="${MAX_SWF_FILE_SIZE}"/>
|
||||||
<property name="maxConversionTime" value="${maxConversionTime}"/>
|
<property name="maxConversionTime" value="${maxConversionTime}"/>
|
||||||
<property name="swfSlidesGenerationProgressNotifier" ref="swfSlidesGenerationProgressNotifier"/>
|
<property name="swfSlidesGenerationProgressNotifier" ref="swfSlidesGenerationProgressNotifier"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="imageToSwfSlidesGenerationService" class="org.bigbluebutton.presentation.imp.ImageToSwfSlidesGenerationService">
|
<bean id="imageToSwfSlidesGenerationService" class="org.bigbluebutton.presentation.imp.ImageToSwfSlidesGenerationService">
|
||||||
<property name="pngPageConverter" ref="png2SwfConverter"/>
|
<property name="pngPageConverter" ref="png2SwfConverter"/>
|
||||||
<property name="jpgPageConverter" ref="jpg2SwfConverter"/>
|
<property name="jpgPageConverter" ref="jpg2SwfConverter"/>
|
||||||
<property name="thumbnailCreator" ref="thumbCreator"/>
|
<property name="thumbnailCreator" ref="thumbCreator"/>
|
||||||
<property name="textFileCreator" ref="textFileCreator"/>
|
<property name="textFileCreator" ref="textFileCreator"/>
|
||||||
<property name="blankSlide" value="${BLANK_SLIDE}"/>
|
<property name="blankSlide" value="${BLANK_SLIDE}"/>
|
||||||
<property name="maxConversionTime" value="${maxConversionTime}"/>
|
<property name="maxConversionTime" value="${maxConversionTime}"/>
|
||||||
<property name="swfSlidesGenerationProgressNotifier" ref="swfSlidesGenerationProgressNotifier"/>
|
<property name="swfSlidesGenerationProgressNotifier" ref="swfSlidesGenerationProgressNotifier"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="swfSlidesGenerationProgressNotifier" class="org.bigbluebutton.presentation.imp.SwfSlidesGenerationProgressNotifier">
|
<bean id="swfSlidesGenerationProgressNotifier" class="org.bigbluebutton.presentation.imp.SwfSlidesGenerationProgressNotifier">
|
||||||
<property name="messagingService" ref="messagingService"/>
|
<property name="messagingService" ref="messagingService"/>
|
||||||
<property name="generatedSlidesInfoHelper" ref="generatedSlidesInfoHelper"/>
|
<property name="generatedSlidesInfoHelper" ref="generatedSlidesInfoHelper"/>
|
||||||
</bean>
|
</bean>
|
||||||
</beans>
|
</beans>
|
@ -1,23 +1,3 @@
|
|||||||
/**
|
|
||||||
* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
|
|
||||||
*
|
|
||||||
* Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify it under the
|
|
||||||
* terms of the GNU Lesser General Public License as published by the Free Software
|
|
||||||
* Foundation; either version 3.0 of the License, or (at your option) any later
|
|
||||||
* version.
|
|
||||||
*
|
|
||||||
* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
||||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
||||||
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License along
|
|
||||||
* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Place your Spring DSL code here
|
// Place your Spring DSL code here
|
||||||
beans = {
|
beans = {
|
||||||
|
}
|
||||||
}
|
|
||||||
|
@ -1,117 +1,117 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
|
BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
|
||||||
|
|
||||||
Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
|
Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it under the
|
This program is free software; you can redistribute it and/or modify it under the
|
||||||
terms of the GNU Lesser General Public License as published by the Free Software
|
terms of the GNU Lesser General Public License as published by the Free Software
|
||||||
Foundation; either version 3.0 of the License, or (at your option) any later
|
Foundation; either version 3.0 of the License, or (at your option) any later
|
||||||
version.
|
version.
|
||||||
|
|
||||||
BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public License along
|
You should have received a copy of the GNU Lesser General Public License along
|
||||||
with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xmlns:util="http://www.springframework.org/schema/util"
|
xmlns:util="http://www.springframework.org/schema/util"
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||||
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
|
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
|
||||||
http://www.springframework.org/schema/util
|
http://www.springframework.org/schema/util
|
||||||
http://www.springframework.org/schema/util/spring-util-2.0.xsd
|
http://www.springframework.org/schema/util/spring-util-2.0.xsd
|
||||||
">
|
">
|
||||||
|
|
||||||
<bean id="config" class="org.bigbluebutton.api.messaging.GenericObjectPoolConfigWrapper">
|
<bean id="config" class="org.bigbluebutton.api.messaging.GenericObjectPoolConfigWrapper">
|
||||||
<!-- Action to take when trying to acquire a connection and all connections are taken -->
|
<!-- Action to take when trying to acquire a connection and all connections are taken -->
|
||||||
<property name="whenExhaustedAction">
|
<property name="whenExhaustedAction">
|
||||||
<!-- Fail-fast behaviour, we don't like to keep the kids waiting -->
|
<!-- Fail-fast behaviour, we don't like to keep the kids waiting -->
|
||||||
<util:constant static-field="org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_FAIL" />
|
<util:constant static-field="org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_FAIL" />
|
||||||
<!-- Default behaviour, block the caller until a resource becomes available -->
|
<!-- Default behaviour, block the caller until a resource becomes available -->
|
||||||
<!--<util:constant static-field="org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_BLOCK" />-->
|
<!--<util:constant static-field="org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_BLOCK" />-->
|
||||||
</property>
|
</property>
|
||||||
<!-- Maximum active connections to Redis instance -->
|
<!-- Maximum active connections to Redis instance -->
|
||||||
<property name="maxActive" value="12" />
|
<property name="maxActive" value="12" />
|
||||||
<!-- Number of connections to Redis that just sit there and do nothing -->
|
<!-- Number of connections to Redis that just sit there and do nothing -->
|
||||||
<property name="maxIdle" value="6" />
|
<property name="maxIdle" value="6" />
|
||||||
<!-- Minimum number of idle connections to Redis - these can be seen as always open and ready to serve -->
|
<!-- Minimum number of idle connections to Redis - these can be seen as always open and ready to serve -->
|
||||||
<property name="minIdle" value="1" />
|
<property name="minIdle" value="1" />
|
||||||
<!-- Tests whether connection is dead when connection retrieval method is called -->
|
<!-- Tests whether connection is dead when connection retrieval method is called -->
|
||||||
<property name="testOnBorrow" value="true" />
|
<property name="testOnBorrow" value="true" />
|
||||||
<!-- Tests whether connection is dead when returning a connection to the pool -->
|
<!-- Tests whether connection is dead when returning a connection to the pool -->
|
||||||
<property name="testOnReturn" value="true" />
|
<property name="testOnReturn" value="true" />
|
||||||
<!-- Tests whether connections are dead during idle periods -->
|
<!-- Tests whether connections are dead during idle periods -->
|
||||||
<property name="testWhileIdle" value="true" />
|
<property name="testWhileIdle" value="true" />
|
||||||
<!-- Maximum number of connections to test in each idle check -->
|
<!-- Maximum number of connections to test in each idle check -->
|
||||||
<property name="numTestsPerEvictionRun" value="12" />
|
<property name="numTestsPerEvictionRun" value="12" />
|
||||||
<!-- Idle connection checking period -->
|
<!-- Idle connection checking period -->
|
||||||
<property name="timeBetweenEvictionRunsMillis" value="60000" />
|
<property name="timeBetweenEvictionRunsMillis" value="60000" />
|
||||||
<!-- Maximum time, in milliseconds, to wait for a resource when exausted action is set to WHEN_EXAUSTED_BLOCK -->
|
<!-- Maximum time, in milliseconds, to wait for a resource when exausted action is set to WHEN_EXAUSTED_BLOCK -->
|
||||||
<property name="maxWait" value="5000" />
|
<property name="maxWait" value="5000" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="messagingService" class="org.bigbluebutton.api.messaging.RedisMessagingService">
|
<bean id="messagingService" class="org.bigbluebutton.api.messaging.RedisMessagingService">
|
||||||
<property name="redisPool" ref="redisPool"/>
|
<property name="redisPool" ref="redisPool"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="redisPool" class="redis.clients.jedis.JedisPool">
|
<bean id="redisPool" class="redis.clients.jedis.JedisPool">
|
||||||
<constructor-arg index="0">
|
<constructor-arg index="0">
|
||||||
<bean factory-bean="config" factory-method="getConfig" />
|
<bean factory-bean="config" factory-method="getConfig" />
|
||||||
</constructor-arg>
|
</constructor-arg>
|
||||||
<constructor-arg index="1" value="${redisHost}"/>
|
<constructor-arg index="1" value="${redisHost}"/>
|
||||||
<constructor-arg index="2" value="${redisPort}"/>
|
<constructor-arg index="2" value="${redisPort}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="expiredMeetingCleanupTimerTask" class="org.bigbluebutton.web.services.ExpiredMeetingCleanupTimerTask"/>
|
<bean id="expiredMeetingCleanupTimerTask" class="org.bigbluebutton.web.services.ExpiredMeetingCleanupTimerTask"/>
|
||||||
|
|
||||||
<bean id="keepAliveService" class="org.bigbluebutton.web.services.KeepAliveService" init-method="start">
|
<bean id="keepAliveService" class="org.bigbluebutton.web.services.KeepAliveService" init-method="start">
|
||||||
<property name="runEvery" value="${checkBBBServerEvery}"/>
|
<property name="runEvery" value="${checkBBBServerEvery}"/>
|
||||||
<property name="messagingService" ref="messagingService" />
|
<property name="messagingService" ref="messagingService" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="meetingService" class="org.bigbluebutton.api.MeetingService">
|
<bean id="meetingService" class="org.bigbluebutton.api.MeetingService">
|
||||||
<property name="defaultMeetingExpireDuration" value="${defaultMeetingExpireDuration}"/>
|
<property name="defaultMeetingExpireDuration" value="${defaultMeetingExpireDuration}"/>
|
||||||
<property name="defaultMeetingCreateJoinDuration" value="${defaultMeetingCreateJoinDuration}"/>
|
<property name="defaultMeetingCreateJoinDuration" value="${defaultMeetingCreateJoinDuration}"/>
|
||||||
<property name="removeMeetingWhenEnded" value="${removeMeetingWhenEnded}"/>
|
<property name="removeMeetingWhenEnded" value="${removeMeetingWhenEnded}"/>
|
||||||
<property name="expiredMeetingCleanupTimerTask" ref="expiredMeetingCleanupTimerTask"/>
|
<property name="expiredMeetingCleanupTimerTask" ref="expiredMeetingCleanupTimerTask"/>
|
||||||
<property name="keepAliveService" ref="keepAliveService"/>
|
<property name="keepAliveService" ref="keepAliveService"/>
|
||||||
<property name="messagingService" ref="messagingService"/>
|
<property name="messagingService" ref="messagingService"/>
|
||||||
<property name="recordingService" ref="recordingService"/>
|
<property name="recordingService" ref="recordingService"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="recordingServiceHelper" class="org.bigbluebutton.api.RecordingServiceHelperImp"/>
|
<bean id="recordingServiceHelper" class="org.bigbluebutton.api.RecordingServiceHelperImp"/>
|
||||||
|
|
||||||
<bean id="recordingService" class="org.bigbluebutton.api.RecordingService" >
|
<bean id="recordingService" class="org.bigbluebutton.api.RecordingService" >
|
||||||
<property name="recordingStatusDir" value="${recordStatusDir}"/>
|
<property name="recordingStatusDir" value="${recordStatusDir}"/>
|
||||||
<property name="publishedDir" value="${publishedDir}"/>
|
<property name="publishedDir" value="${publishedDir}"/>
|
||||||
<property name="unpublishedDir" value="${unpublishedDir}"/>
|
<property name="unpublishedDir" value="${unpublishedDir}"/>
|
||||||
<property name="recordingServiceHelper" ref="recordingServiceHelper"/>
|
<property name="recordingServiceHelper" ref="recordingServiceHelper"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="paramsProcessorUtil" class="org.bigbluebutton.api.ParamsProcessorUtil">
|
<bean id="paramsProcessorUtil" class="org.bigbluebutton.api.ParamsProcessorUtil">
|
||||||
<property name="apiVersion" value="${apiVersion}"/>
|
<property name="apiVersion" value="${apiVersion}"/>
|
||||||
<property name="serviceEnabled" value="${serviceEnabled}"/>
|
<property name="serviceEnabled" value="${serviceEnabled}"/>
|
||||||
<property name="securitySalt" value="${securitySalt}"/>
|
<property name="securitySalt" value="${securitySalt}"/>
|
||||||
<property name="defaultMaxUsers" value="${defaultMaxUsers}"/>
|
<property name="defaultMaxUsers" value="${defaultMaxUsers}"/>
|
||||||
<property name="defaultWelcomeMessage" value="${defaultWelcomeMessage}"/>
|
<property name="defaultWelcomeMessage" value="${defaultWelcomeMessage}"/>
|
||||||
<property name="defaultWelcomeMessageFooter" value="${defaultWelcomeMessageFooter}"/>
|
<property name="defaultWelcomeMessageFooter" value="${defaultWelcomeMessageFooter}"/>
|
||||||
<property name="defaultDialAccessNumber" value="${defaultDialAccessNumber}"/>
|
<property name="defaultDialAccessNumber" value="${defaultDialAccessNumber}"/>
|
||||||
<property name="testVoiceBridge" value="${testVoiceBridge}"/>
|
<property name="testVoiceBridge" value="${testVoiceBridge}"/>
|
||||||
<property name="testConferenceMock" value="${testConferenceMock}"/>
|
<property name="testConferenceMock" value="${testConferenceMock}"/>
|
||||||
<property name="defaultLogoutUrl" value="${bigbluebutton.web.logoutURL}"/>
|
<property name="defaultLogoutUrl" value="${bigbluebutton.web.logoutURL}"/>
|
||||||
<property name="defaultServerUrl" value="${bigbluebutton.web.serverURL}"/>
|
<property name="defaultServerUrl" value="${bigbluebutton.web.serverURL}"/>
|
||||||
<property name="defaultNumDigitsForTelVoice" value="${defaultNumDigitsForTelVoice}"/>
|
<property name="defaultNumDigitsForTelVoice" value="${defaultNumDigitsForTelVoice}"/>
|
||||||
<property name="defaultClientUrl" value="${defaultClientUrl}"/>
|
<property name="defaultClientUrl" value="${defaultClientUrl}"/>
|
||||||
<property name="defaultMeetingDuration" value="${defaultMeetingDuration}"/>
|
<property name="defaultMeetingDuration" value="${defaultMeetingDuration}"/>
|
||||||
<property name="disableRecordingDefault" value="${disableRecordingDefault}"/>
|
<property name="disableRecordingDefault" value="${disableRecordingDefault}"/>
|
||||||
<property name="defaultAvatarURL" value="${defaultAvatarURL}"/>
|
<property name="defaultAvatarURL" value="${defaultAvatarURL}"/>
|
||||||
<property name="defaultConfigURL" value="${defaultConfigURL}"/>
|
<property name="defaultConfigURL" value="${defaultConfigURL}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<import resource="doc-conversion.xml" />
|
<import resource="doc-conversion.xml" />
|
||||||
</beans>
|
</beans>
|
0
bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/.project
Normal file → Executable file
0
bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/.project
Normal file → Executable file
@ -1 +0,0 @@
|
|||||||
login.failed = Invalid username and/or password
|
|
28
bigbluebutton-web/grails-app/i18n/messages.properties
Normal file → Executable file
28
bigbluebutton-web/grails-app/i18n/messages.properties
Normal file → Executable file
@ -17,6 +17,31 @@ default.not.unique.message=Property [{0}] of class [{1}] with value [{2}] must b
|
|||||||
|
|
||||||
default.paginate.prev=Previous
|
default.paginate.prev=Previous
|
||||||
default.paginate.next=Next
|
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)
|
# 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.URL=Property {0} must be a valid URL
|
||||||
@ -28,6 +53,3 @@ typeMismatch.java.lang.Long=Property {0} must be a valid number
|
|||||||
typeMismatch.java.lang.Short=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.BigDecimal=Property {0} must be a valid number
|
||||||
typeMismatch.java.math.BigInteger=Property {0} must be a valid number
|
typeMismatch.java.math.BigInteger=Property {0} must be a valid number
|
||||||
|
|
||||||
conference.name.blank=Please enter a name for this conference
|
|
||||||
conference.name.max.exceeded=Please enter a valid name no more than {3} characters
|
|
55
bigbluebutton-web/grails-app/i18n/messages_cs_CZ.properties
Executable file
55
bigbluebutton-web/grails-app/i18n/messages_cs_CZ.properties
Executable file
@ -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
|
56
bigbluebutton-web/grails-app/i18n/messages_da.properties
Executable file
56
bigbluebutton-web/grails-app/i18n/messages_da.properties
Executable file
@ -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
|
||||||
|
|
85
bigbluebutton-web/grails-app/i18n/messages_de.properties
Normal file → Executable file
85
bigbluebutton-web/grails-app/i18n/messages_de.properties
Normal file → Executable file
@ -1,30 +1,55 @@
|
|||||||
default.doesnt.match.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] entspricht nicht dem vorgegebenen Muster [{3}]
|
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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.not.unique.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2}] darf nur einmal vorkommen
|
||||||
|
|
||||||
default.paginate.prev=Vorherige
|
default.paginate.prev=Vorherige
|
||||||
default.paginate.next=Nächste
|
default.paginate.next=Nächste
|
||||||
|
default.boolean.true=Wahr
|
||||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
default.boolean.false=Falsch
|
||||||
typeMismatch.java.net.URL=Die Eigenschaft {0} muss eine gültige URL sein
|
default.date.format=dd.MM.yyyy HH:mm:ss z
|
||||||
typeMismatch.java.net.URI=Die Eigenschaft {0} muss eine gültige URI sein
|
default.number.format=0
|
||||||
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
|
default.created.message={0} {1} wurde angelegt
|
||||||
typeMismatch.java.lang.Integer=Die Eigenschaft {0} muss eine gültige Zahl sein
|
default.updated.message={0} {1} wurde geändert
|
||||||
typeMismatch.java.lang.Long=Die Eigenschaft {0} muss eine gültige Zahl sein
|
default.deleted.message={0} {1} wurde gelöscht
|
||||||
typeMismatch.java.lang.Short=Die Eigenschaft {0} muss eine gültige Zahl sein
|
default.not.deleted.message={0} {1} konnte nicht gelöscht werden
|
||||||
typeMismatch.java.math.BigDecimal=Die Eigenschaft {0} muss eine gültige Zahl sein
|
default.not.found.message={0} mit der id {1} wurde nicht gefunden
|
||||||
typeMismatch.java.math.BigInteger=Die Eigenschaft {0} muss eine gültige Zahl sein
|
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
|
||||||
|
25
bigbluebutton-web/grails-app/i18n/messages_es.properties
Normal file → Executable file
25
bigbluebutton-web/grails-app/i18n/messages_es.properties
Normal file → Executable file
@ -17,6 +17,31 @@ default.not.unique.message=La propiedad [{0}] de la clase [{1}] con valor [{2}]
|
|||||||
|
|
||||||
default.paginate.prev=Anterior
|
default.paginate.prev=Anterior
|
||||||
default.paginate.next=Siguiente
|
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)
|
# 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.URL=La propiedad {0} debe ser una URL válida
|
||||||
|
38
bigbluebutton-web/grails-app/i18n/messages_fr.properties
Normal file → Executable file
38
bigbluebutton-web/grails-app/i18n/messages_fr.properties
Normal file → Executable file
@ -1,19 +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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.prev=Précédent
|
||||||
default.paginate.next=Suivant
|
default.paginate.next=Suivant
|
||||||
|
74
bigbluebutton-web/grails-app/i18n/messages_it.properties
Normal file → Executable file
74
bigbluebutton-web/grails-app/i18n/messages_it.properties
Normal file → Executable file
@ -1,19 +1,55 @@
|
|||||||
default.doesnt.match.message=La proprietà [{0}] della classe [{1}] con valore [{2}] non corrisponde al pattern [{3}]
|
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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.not.unique.message=La proprietà [{0}] della classe [{1}] con valore [{2}] deve essere unica
|
||||||
|
|
||||||
default.paginate.prev=Precedente
|
default.paginate.prev=Precedente
|
||||||
default.paginate.next=Successivo
|
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
|
||||||
|
74
bigbluebutton-web/grails-app/i18n/messages_ja.properties
Normal file → Executable file
74
bigbluebutton-web/grails-app/i18n/messages_ja.properties
Normal file → Executable file
@ -1,19 +1,55 @@
|
|||||||
default.doesnt.match.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]パターンと一致していません。
|
default.doesnt.match.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]パターンと一致していません。
|
||||||
default.invalid.url.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、URLではありません。
|
default.invalid.url.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なURLではありません。
|
||||||
default.invalid.creditCard.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、正当なクレジットカード番号ではありません。
|
default.invalid.creditCard.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なクレジットカード番号ではありません。
|
||||||
default.invalid.email.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、メールアドレスではありません。
|
default.invalid.email.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なメールアドレスではありません。
|
||||||
default.invalid.range.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]から[{4}]範囲内を指定してください。
|
default.invalid.range.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]から[{4}]範囲内を指定してください。
|
||||||
default.invalid.size.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.max.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最大値[{3}]より大きいです。
|
||||||
default.invalid.min.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最小値[{3}]より小さいです。
|
default.invalid.min.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最小値[{3}]より小さいです。
|
||||||
default.invalid.max.size.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.min.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最小値[{3}]より小さいです。
|
||||||
default.invalid.validator.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、カスタムバリデーションを通過できません。
|
default.invalid.validator.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、カスタムバリデーションを通過できません。
|
||||||
default.not.inlist.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]リスト内に存在しません。
|
default.not.inlist.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]リスト内に存在しません。
|
||||||
default.blank.message=[{1}]クラスのプロパティ[{0}]の空白は許可されません。
|
default.blank.message=[{1}]クラスのプロパティ[{0}]の空白は許可されません。
|
||||||
default.not.equal.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]と同等ではありません。
|
default.not.equal.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]と同等ではありません。
|
||||||
default.null.message=[{1}]クラスのプロパティ[{0}]にnullは許可されません。
|
default.null.message=[{1}]クラスのプロパティ[{0}]にnullは許可されません。
|
||||||
default.not.unique.message=クラス[{1}]プロパティ[{0}]の値[{2}]は既に使用されています。
|
default.not.unique.message=クラス[{1}]プロパティ[{0}]の値[{2}]は既に使用されています。
|
||||||
|
|
||||||
default.paginate.prev=戻る
|
default.paginate.prev=戻る
|
||||||
default.paginate.next=次へ
|
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}は有効な数値でなければなりません。
|
||||||
|
56
bigbluebutton-web/grails-app/i18n/messages_nb.properties
Executable file
56
bigbluebutton-web/grails-app/i18n/messages_nb.properties
Executable file
@ -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
|
||||||
|
|
85
bigbluebutton-web/grails-app/i18n/messages_nl.properties
Normal file → Executable file
85
bigbluebutton-web/grails-app/i18n/messages_nl.properties
Normal file → Executable file
@ -1,30 +1,55 @@
|
|||||||
default.doesnt.match.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] komt niet overeen met het vereiste patroon [{3}]
|
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.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.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.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.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.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.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.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.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 mainimumgrootte 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.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.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.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.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.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.not.unique.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] moet uniek zijn
|
||||||
|
|
||||||
default.paginate.prev=Vorige
|
default.paginate.prev=Vorige
|
||||||
default.paginate.next=Volgende
|
default.paginate.next=Volgende
|
||||||
|
default.boolean.true=Ja
|
||||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
default.boolean.false=Nee
|
||||||
typeMismatch.java.net.URL=Attribuut {0} is geen geldige URL
|
default.date.format=dd-MM-yyyy HH:mm:ss z
|
||||||
typeMismatch.java.net.URI=Attribuut {0} is geen geldige URI
|
default.number.format=0
|
||||||
typeMismatch.java.util.Date=Attribuut {0} is geen geldige datum
|
|
||||||
typeMismatch.java.lang.Double=Attribuut {0} is geen geldig nummer
|
default.created.message={0} {1} ingevoerd
|
||||||
typeMismatch.java.lang.Integer=Attribuut {0} is geen geldig nummer
|
default.updated.message={0} {1} gewijzigd
|
||||||
typeMismatch.java.lang.Long=Attribuut {0} is geen geldig nummer
|
default.deleted.message={0} {1} verwijderd
|
||||||
typeMismatch.java.lang.Short=Attribuut {0} is geen geldig nummer
|
default.not.deleted.message={0} {1} kon niet worden verwijderd
|
||||||
typeMismatch.java.math.BigDecimal=Attribuut {0} is geen geldig nummer
|
default.not.found.message={0} met id {1} kon niet worden gevonden
|
||||||
typeMismatch.java.math.BigInteger=Attribuut {0} is geen geldig nummer
|
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
|
||||||
|
59
bigbluebutton-web/grails-app/i18n/messages_pl.properties
Executable file
59
bigbluebutton-web/grails-app/i18n/messages_pl.properties
Executable file
@ -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ą
|
59
bigbluebutton-web/grails-app/i18n/messages_pt_BR.properties
Executable file
59
bigbluebutton-web/grails-app/i18n/messages_pt_BR.properties
Executable file
@ -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}] ultrapass 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 vazia
|
||||||
|
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 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.
|
34
bigbluebutton-web/grails-app/i18n/messages_pt_PT.properties
Executable file
34
bigbluebutton-web/grails-app/i18n/messages_pt_PT.properties
Executable file
@ -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.
|
62
bigbluebutton-web/grails-app/i18n/messages_ru.properties
Normal file → Executable file
62
bigbluebutton-web/grails-app/i18n/messages_ru.properties
Normal file → Executable file
@ -1,31 +1,31 @@
|
|||||||
default.doesnt.match.message=Значение [{2}] поля [{0}] класса [{1}] не соответствует образцу [{3}]
|
default.doesnt.match.message=Значение [{2}] поля [{0}] класса [{1}] не соответствует образцу [{3}]
|
||||||
default.invalid.url.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым URL-адресом
|
default.invalid.url.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым URL-адресом
|
||||||
default.invalid.creditCard.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым номером кредитной карты
|
default.invalid.creditCard.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым номером кредитной карты
|
||||||
default.invalid.email.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым e-mail адресом
|
default.invalid.email.message=Значение [{2}] поля [{0}] класса [{1}] не является допустимым e-mail адресом
|
||||||
default.invalid.range.message=Значение [{2}] поля [{0}] класса [{1}] не попадает в допустимый интервал от [{3}] до [{4}]
|
default.invalid.range.message=Значение [{2}] поля [{0}] класса [{1}] не попадает в допустимый интервал от [{3}] до [{4}]
|
||||||
default.invalid.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) не попадает в допустимый интервал от [{3}] до [{4}]
|
default.invalid.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) не попадает в допустимый интервал от [{3}] до [{4}]
|
||||||
default.invalid.max.message=Значение [{2}] поля [{0}] класса [{1}] больше чем максимально допустимое значение [{3}]
|
default.invalid.max.message=Значение [{2}] поля [{0}] класса [{1}] больше чем максимально допустимое значение [{3}]
|
||||||
default.invalid.min.message=Значение [{2}] поля [{0}] класса [{1}] меньше чем минимально допустимое значение [{3}]
|
default.invalid.min.message=Значение [{2}] поля [{0}] класса [{1}] меньше чем минимально допустимое значение [{3}]
|
||||||
default.invalid.max.size.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.min.size.message=Размер поля [{0}] класса [{1}] (значение: [{2}]) меньше чем минимально допустимый размер [{3}]
|
||||||
default.invalid.validator.message=Значение [{2}] поля [{0}] класса [{1}] не допустимо
|
default.invalid.validator.message=Значение [{2}] поля [{0}] класса [{1}] не допустимо
|
||||||
default.not.inlist.message=Значение [{2}] поля [{0}] класса [{1}] не попадает в список допустимых значений [{3}]
|
default.not.inlist.message=Значение [{2}] поля [{0}] класса [{1}] не попадает в список допустимых значений [{3}]
|
||||||
default.blank.message=Поле [{0}] класса [{1}] не может быть пустым
|
default.blank.message=Поле [{0}] класса [{1}] не может быть пустым
|
||||||
default.not.equal.message=Значение [{2}] поля [{0}] класса [{1}] не может быть равно [{3}]
|
default.not.equal.message=Значение [{2}] поля [{0}] класса [{1}] не может быть равно [{3}]
|
||||||
default.null.message=Поле [{0}] класса [{1}] не может иметь значение null
|
default.null.message=Поле [{0}] класса [{1}] не может иметь значение null
|
||||||
default.not.unique.message=Значение [{2}] поля [{0}] класса [{1}] должно быть уникальным
|
default.not.unique.message=Значение [{2}] поля [{0}] класса [{1}] должно быть уникальным
|
||||||
|
|
||||||
default.paginate.prev=Предыдушая страница
|
default.paginate.prev=Предыдушая страница
|
||||||
default.paginate.next=Следующая страница
|
default.paginate.next=Следующая страница
|
||||||
|
|
||||||
# Ошибки при присвоении данных. Для точной настройки для полей классов используйте
|
# Ошибки при присвоении данных. Для точной настройки для полей классов используйте
|
||||||
# формат "typeMismatch.$className.$propertyName" (например, typeMismatch.Book.author)
|
# формат "typeMismatch.$className.$propertyName" (например, typeMismatch.Book.author)
|
||||||
typeMismatch.java.net.URL=Значение поля {0} не является допустимым URL
|
typeMismatch.java.net.URL=Значение поля {0} не является допустимым URL
|
||||||
typeMismatch.java.net.URI=Значение поля {0} не является допустимым URI
|
typeMismatch.java.net.URI=Значение поля {0} не является допустимым URI
|
||||||
typeMismatch.java.util.Date=Значение поля {0} не является допустимой датой
|
typeMismatch.java.util.Date=Значение поля {0} не является допустимой датой
|
||||||
typeMismatch.java.lang.Double=Значение поля {0} не является допустимым числом
|
typeMismatch.java.lang.Double=Значение поля {0} не является допустимым числом
|
||||||
typeMismatch.java.lang.Integer=Значение поля {0} не является допустимым числом
|
typeMismatch.java.lang.Integer=Значение поля {0} не является допустимым числом
|
||||||
typeMismatch.java.lang.Long=Значение поля {0} не является допустимым числом
|
typeMismatch.java.lang.Long=Значение поля {0} не является допустимым числом
|
||||||
typeMismatch.java.lang.Short=Значение поля {0} не является допустимым числом
|
typeMismatch.java.lang.Short=Значение поля {0} не является допустимым числом
|
||||||
typeMismatch.java.math.BigDecimal=Значение поля {0} не является допустимым числом
|
typeMismatch.java.math.BigDecimal=Значение поля {0} не является допустимым числом
|
||||||
typeMismatch.java.math.BigInteger=Значение поля {0} не является допустимым числом
|
typeMismatch.java.math.BigInteger=Значение поля {0} не является допустимым числом
|
||||||
|
55
bigbluebutton-web/grails-app/i18n/messages_sv.properties
Executable file
55
bigbluebutton-web/grails-app/i18n/messages_sv.properties
Executable file
@ -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
|
85
bigbluebutton-web/grails-app/i18n/messages_th.properties
Normal file → Executable file
85
bigbluebutton-web/grails-app/i18n/messages_th.properties
Normal file → Executable file
@ -1,30 +1,55 @@
|
|||||||
default.doesnt.match.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบที่กำหนดไว้ใน [{3}]
|
default.doesnt.match.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบที่กำหนดไว้ใน [{3}]
|
||||||
default.invalid.url.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบ URL
|
default.invalid.url.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบ URL
|
||||||
default.invalid.creditCard.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบหมายเลขบัตรเครดิต
|
default.invalid.creditCard.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบหมายเลขบัตรเครดิต
|
||||||
default.invalid.email.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบอีเมล์
|
default.invalid.email.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ถูกต้องตามรูปแบบอีเมล์
|
||||||
default.invalid.range.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้มีค่าที่ถูกต้องในช่วงจาก [{3}] ถึง [{4}]
|
default.invalid.range.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้มีค่าที่ถูกต้องในช่วงจาก [{3}] ถึง [{4}]
|
||||||
default.invalid.size.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.max.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีค่าเกิดกว่าค่ามากสุด [{3}]
|
||||||
default.invalid.min.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีค่าน้อยกว่าค่าต่ำสุด [{3}]
|
default.invalid.min.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีค่าน้อยกว่าค่าต่ำสุด [{3}]
|
||||||
default.invalid.max.size.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.min.size.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] มีขนาดต่ำกว่าขนาดต่ำสุดของ [{3}]
|
||||||
default.invalid.validator.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ผ่านการทวนสอบค่าที่ตั้งขึ้น
|
default.invalid.validator.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ผ่านการทวนสอบค่าที่ตั้งขึ้น
|
||||||
default.not.inlist.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้อยู่ในรายการต่อไปนี้ [{3}]
|
default.not.inlist.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่ได้อยู่ในรายการต่อไปนี้ [{3}]
|
||||||
default.blank.message=คุณสมบัติ [{0}] ของคลาส [{1}] ไม่สามารถเป็นค่าว่างได้
|
default.blank.message=คุณสมบัติ [{0}] ของคลาส [{1}] ไม่สามารถเป็นค่าว่างได้
|
||||||
default.not.equal.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่สามารถเท่ากับ [{3}] ได้
|
default.not.equal.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] ไม่สามารถเท่ากับ [{3}] ได้
|
||||||
default.null.message=คุณสมบัติ [{0}] ของคลาส [{1}] ไม่สามารถเป็น null ได้
|
default.null.message=คุณสมบัติ [{0}] ของคลาส [{1}] ไม่สามารถเป็น null ได้
|
||||||
default.not.unique.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] จะต้องไม่ซ้ำ (unique)
|
default.not.unique.message=คุณสมบัติ [{0}] ของคลาส [{1}] ซึ่งมีค่าเป็น [{2}] จะต้องไม่ซ้ำ (unique)
|
||||||
|
|
||||||
default.paginate.prev=ก่อนหน้า
|
default.paginate.prev=ก่อนหน้า
|
||||||
default.paginate.next=ถัดไป
|
default.paginate.next=ถัดไป
|
||||||
|
default.boolean.true=จริง
|
||||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
default.boolean.false=เท็จ
|
||||||
typeMismatch.java.net.URL=คุณสมบัติ '{0}' จะต้องเป็นค่า URL ที่ถูกต้อง
|
default.date.format=dd-MM-yyyy HH:mm:ss z
|
||||||
typeMismatch.java.net.URI=คุณสมบัติ '{0}' จะต้องเป็นค่า URI ที่ถูกต้อง
|
default.number.format=0
|
||||||
typeMismatch.java.util.Date=คุณสมบัติ '{0}' จะต้องมีค่าเป็นวันที่
|
|
||||||
typeMismatch.java.lang.Double=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Double
|
default.created.message=สร้าง {0} {1} เรียบร้อยแล้ว
|
||||||
typeMismatch.java.lang.Integer=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Integer
|
default.updated.message=ปรับปรุง {0} {1} เรียบร้อยแล้ว
|
||||||
typeMismatch.java.lang.Long=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Long
|
default.deleted.message=ลบ {0} {1} เรียบร้อยแล้ว
|
||||||
typeMismatch.java.lang.Short=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท Short
|
default.not.deleted.message=ไม่สามารถลบ {0} {1}
|
||||||
typeMismatch.java.math.BigDecimal=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท BigDecimal
|
default.not.found.message=ไม่พบ {0} ด้วย id {1} นี้
|
||||||
typeMismatch.java.math.BigInteger=คุณสมบัติ '{0}' จะต้องมีค่าเป็นจำนวนประเภท BigInteger
|
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
|
||||||
|
36
bigbluebutton-web/grails-app/i18n/messages_zh_CN.properties
Normal file → Executable file
36
bigbluebutton-web/grails-app/i18n/messages_zh_CN.properties
Normal file → Executable file
@ -1,18 +1,18 @@
|
|||||||
default.blank.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u4E0D\u80FD\u4E3A\u7A7A
|
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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.null.message=[{1}]\u7C7B\u7684\u5C5E\u6027[{0}]\u4E0D\u80FD\u4E3Anull
|
||||||
default.paginate.next=\u4E0B\u9875
|
default.paginate.next=\u4E0B\u9875
|
||||||
default.paginate.prev=\u4E0A\u9875
|
default.paginate.prev=\u4E0A\u9875
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
<jsec:isLoggedIn>
|
|
||||||
<jsec:hasRole name="Administrator">
|
|
||||||
<div align="right">
|
|
||||||
<g:link controller="user" action="list">Manage Users</g:link> |
|
|
||||||
Logged in as: <jsec:principal/> (<g:link controller="auth" action="signOut">sign out</g:link>)
|
|
||||||
</div>
|
|
||||||
</jsec:hasRole>
|
|
||||||
<jsec:lacksRole name="Administrator">
|
|
||||||
<div align="right">Logged in as: <jsec:principal/> (<g:link controller="auth" action="signOut">sign out</g:link>)</div>
|
|
||||||
</jsec:lacksRole>
|
|
||||||
</jsec:isLoggedIn>
|
|
62
bigbluebutton-web/grails-app/views/error.gsp
Normal file → Executable file
62
bigbluebutton-web/grails-app/views/error.gsp
Normal file → Executable file
@ -1,46 +1,18 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Grails Runtime Exception</title>
|
<title><g:if env="development">Grails Runtime Exception</g:if><g:else>Error</g:else></title>
|
||||||
<style type="text/css">
|
<meta name="layout" content="main">
|
||||||
.message {
|
<g:if env="development"><link rel="stylesheet" href="${resource(dir: 'css', file: 'errors.css')}" type="text/css"></g:if>
|
||||||
border: 1px solid black;
|
</head>
|
||||||
padding: 5px;
|
<body>
|
||||||
background-color:#E9E9E9;
|
<g:if env="development">
|
||||||
}
|
<g:renderException exception="${exception}" />
|
||||||
.stack {
|
</g:if>
|
||||||
border: 1px solid black;
|
<g:else>
|
||||||
padding: 5px;
|
<ul class="errors">
|
||||||
overflow:auto;
|
<li>An error has occurred</li>
|
||||||
height: 300px;
|
</ul>
|
||||||
}
|
</g:else>
|
||||||
.snippet {
|
</body>
|
||||||
padding: 5px;
|
</html>
|
||||||
background-color:white;
|
|
||||||
border:1px solid black;
|
|
||||||
margin:3px;
|
|
||||||
font-family:courier;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<h1>Grails Runtime Exception</h1>
|
|
||||||
<h2>Error Details</h2>
|
|
||||||
<div class="message">
|
|
||||||
<strong>Message:</strong> ${exception.message?.encodeAsHTML()} <br />
|
|
||||||
<strong>Caused by:</strong> ${exception.cause?.message?.encodeAsHTML()} <br />
|
|
||||||
<strong>Class:</strong> ${exception.className} <br />
|
|
||||||
<strong>At Line:</strong> [${exception.lineNumber}] <br />
|
|
||||||
<strong>Code Snippet:</strong><br />
|
|
||||||
<div class="snippet">
|
|
||||||
<g:each var="cs" in="${exception.codeSnippet}">
|
|
||||||
${cs?.encodeAsHTML()}<br />
|
|
||||||
</g:each>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<h2>Stack Trace</h2>
|
|
||||||
<div class="stack">
|
|
||||||
<pre><g:each in="${exception.stackTraceLines}">${it.encodeAsHTML()}<br/></g:each></pre>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
122
bigbluebutton-web/grails-app/views/index.gsp
Executable file
122
bigbluebutton-web/grails-app/views/index.gsp
Executable file
@ -0,0 +1,122 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta name="layout" content="main"/>
|
||||||
|
<title>Welcome to Grails</title>
|
||||||
|
<style type="text/css" media="screen">
|
||||||
|
#status {
|
||||||
|
background-color: #eee;
|
||||||
|
border: .2em solid #fff;
|
||||||
|
margin: 2em 2em 1em;
|
||||||
|
padding: 1em;
|
||||||
|
width: 12em;
|
||||||
|
float: left;
|
||||||
|
-moz-box-shadow: 0px 0px 1.25em #ccc;
|
||||||
|
-webkit-box-shadow: 0px 0px 1.25em #ccc;
|
||||||
|
box-shadow: 0px 0px 1.25em #ccc;
|
||||||
|
-moz-border-radius: 0.6em;
|
||||||
|
-webkit-border-radius: 0.6em;
|
||||||
|
border-radius: 0.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ie6 #status {
|
||||||
|
display: inline; /* float double margin fix http://www.positioniseverything.net/explorer/doubled-margin.html */
|
||||||
|
}
|
||||||
|
|
||||||
|
#status ul {
|
||||||
|
font-size: 0.9em;
|
||||||
|
list-style-type: none;
|
||||||
|
margin-bottom: 0.6em;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#status li {
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
#status h1 {
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: 1.1em;
|
||||||
|
margin: 0 0 0.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-body {
|
||||||
|
margin: 2em 1em 1.25em 18em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
margin-top: 1em;
|
||||||
|
margin-bottom: 0.3em;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
line-height: 1.5;
|
||||||
|
margin: 0.25em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#controller-list ul {
|
||||||
|
list-style-position: inside;
|
||||||
|
}
|
||||||
|
|
||||||
|
#controller-list li {
|
||||||
|
line-height: 1.3;
|
||||||
|
list-style-position: inside;
|
||||||
|
margin: 0.25em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 480px) {
|
||||||
|
#status {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-body {
|
||||||
|
margin: 0 1em 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-body h1 {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="#page-body" class="skip"><g:message code="default.link.skip.label" default="Skip to content…"/></a>
|
||||||
|
<div id="status" role="complementary">
|
||||||
|
<h1>Application Status</h1>
|
||||||
|
<ul>
|
||||||
|
<li>App version: <g:meta name="app.version"/></li>
|
||||||
|
<li>Grails version: <g:meta name="app.grails.version"/></li>
|
||||||
|
<li>Groovy version: ${GroovySystem.getVersion()}</li>
|
||||||
|
<li>JVM version: ${System.getProperty('java.version')}</li>
|
||||||
|
<li>Reloading active: ${grails.util.Environment.reloadingAgentEnabled}</li>
|
||||||
|
<li>Controllers: ${grailsApplication.controllerClasses.size()}</li>
|
||||||
|
<li>Domains: ${grailsApplication.domainClasses.size()}</li>
|
||||||
|
<li>Services: ${grailsApplication.serviceClasses.size()}</li>
|
||||||
|
<li>Tag Libraries: ${grailsApplication.tagLibClasses.size()}</li>
|
||||||
|
</ul>
|
||||||
|
<h1>Installed Plugins</h1>
|
||||||
|
<ul>
|
||||||
|
<g:each var="plugin" in="${applicationContext.getBean('pluginManager').allPlugins}">
|
||||||
|
<li>${plugin.name} - ${plugin.version}</li>
|
||||||
|
</g:each>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="page-body" role="main">
|
||||||
|
<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="controller-list" 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>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
48
bigbluebutton-web/grails-app/views/layouts/main.gsp
Normal file → Executable file
48
bigbluebutton-web/grails-app/views/layouts/main.gsp
Normal file → Executable file
@ -1,22 +1,28 @@
|
|||||||
<html>
|
<!DOCTYPE html>
|
||||||
<head>
|
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
|
||||||
<title><g:layoutTitle default="Grails" /></title>
|
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
|
||||||
<link rel="stylesheet" href="${createLinkTo(dir:'css',file:'main.css')}" />
|
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
|
||||||
<link rel="shortcut icon" href="${createLinkTo(dir:'images',file:'favicon.ico')}" type="image/x-icon" />
|
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
|
||||||
<g:layoutHead />
|
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"><!--<![endif]-->
|
||||||
<g:javascript library="application" />
|
<head>
|
||||||
</head>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
<body>
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
<div id="spinner" class="spinner" style="display:none;">
|
<title><g:layoutTitle default="Grails"/></title>
|
||||||
<img src="${createLinkTo(dir:'images',file:'spinner.gif')}" alt="Spinner" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
</div>
|
<link rel="shortcut icon" href="${resource(dir: 'images', file: 'favicon.ico')}" type="image/x-icon">
|
||||||
<div class="logo"><img src="${createLinkTo(dir:'images',file:'bbb_banner.jpg')}" alt="BigBlueButton" /></div>
|
<link rel="apple-touch-icon" href="${resource(dir: 'images', file: 'apple-touch-icon.png')}">
|
||||||
<div class="nav">
|
<link rel="apple-touch-icon" sizes="114x114" href="${resource(dir: 'images', file: 'apple-touch-icon-retina.png')}">
|
||||||
<div class="nav">
|
<link rel="stylesheet" href="${resource(dir: 'css', file: 'main.css')}" type="text/css">
|
||||||
<g:render template="/adminmenubar" />
|
<link rel="stylesheet" href="${resource(dir: 'css', file: 'mobile.css')}" type="text/css">
|
||||||
</div>
|
<g:layoutHead/>
|
||||||
<h1>NOTE: We are deprecating this web interface in favor of the API. This will be removed in the next release.</h1>
|
<r:layoutResources />
|
||||||
<g:layoutBody />
|
</head>
|
||||||
bbb-web v. <g:meta name="app.version"/>
|
<body>
|
||||||
</body>
|
<div id="grailsLogo" role="banner"><a href="http://grails.org"><img src="${resource(dir: 'images', file: 'grails_logo.png')}" alt="Grails"/></a></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>
|
||||||
|
<g:javascript library="application"/>
|
||||||
|
<r:layoutResources />
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,71 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
|
||||||
<meta name="layout" content="main" />
|
|
||||||
<title>FileResource List</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="nav">
|
|
||||||
<span class="menuButton"><a class="home" href="/">Home</a></span>
|
|
||||||
</div>
|
|
||||||
<div class="body">
|
|
||||||
|
|
||||||
<h1>File Upload:</h1><br>
|
|
||||||
|
|
||||||
<g:form method="post" enctype="multipart/form-data">
|
|
||||||
<div class="dialog">
|
|
||||||
<table>
|
|
||||||
<tbody>
|
|
||||||
<tr class="prop">
|
|
||||||
<td valign="top" class="name">
|
|
||||||
<label for="presentationName">Presentation Name:</label>
|
|
||||||
</td>
|
|
||||||
<td valign="top" class="name">
|
|
||||||
<input type="text" name="presentationName" value="${presentationName}" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="prop">
|
|
||||||
<td valign="top" class="name">
|
|
||||||
<label for="fileUpload">Upload:</label>
|
|
||||||
</td>
|
|
||||||
<td valign="top" class="value ${hasErrors(presentations,field:'upload','errors')}">
|
|
||||||
<input type="file" id="fileUpload" name="fileUpload" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="buttons">
|
|
||||||
<span class="button"><g:actionSubmit class="upload" value="Upload" action="upload" /></span>
|
|
||||||
</div>
|
|
||||||
</g:form>
|
|
||||||
|
|
||||||
<h1>Presentations</h1>
|
|
||||||
<g:if test="${flash.message}">
|
|
||||||
<div class="message">${flash.message}</div>
|
|
||||||
</g:if>
|
|
||||||
<div id="success"></div>
|
|
||||||
<div class="list">
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<g:sortableColumn property="files" title="file"/>
|
|
||||||
<g:sortableColumn property="path" title="path" colspan="3"/>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<g:each in="${presentations}" status="i" var="presentation">
|
|
||||||
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
|
|
||||||
<td>${presentation.decodeURL()}</td>
|
|
||||||
<td><g:link action="thumbnails" id="${presentation.replace('.','###')}"> thumbnails </g:link></td>
|
|
||||||
<td><g:link action="show" id="${presentation.replace('.','###')}"> show </g:link></td>
|
|
||||||
<td><g:link action="delete" id="${presentation.replace('.','###')}" onclick="return confirm('Are you sure?');"> delete </g:link></td>
|
|
||||||
</tr>
|
|
||||||
</g:each>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
|
||||||
<meta name="layout" content="main" />
|
|
||||||
<title>FileResource List</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="nav">
|
|
||||||
<span class="menuButton"><a class="home" href="/">Home</a></span>
|
|
||||||
</div>
|
|
||||||
<div class="body">
|
|
||||||
|
|
||||||
<h1>${numThumbs} </h1><br>re ${presSlides}
|
|
||||||
<g:each var="x" in="${ (0..<numThumbs) }">
|
|
||||||
<li><g:createLink action="show" params="[foo: 'bar', boo: 'far']"/>
|
|
||||||
<img src="${createLink(action:'thumbnail', params:[id:presSlides, thumb:x])}" alt="BigBlueButton" />
|
|
||||||
<g:link action="thumbnail" id="${presSlides}" params="[thumb:x]">t</g:link>
|
|
||||||
</li>
|
|
||||||
</g:each>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
||||||
<meta name="layout" content="main" />
|
|
||||||
<title>Upload Presentation</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<g:if test="${flash.message}">
|
|
||||||
<div class="message">${flash.message}</div>
|
|
||||||
</g:if>
|
|
||||||
<g:form controller="presentation" method="post" action="upload" enctype="multipart/form-data">
|
|
||||||
<div class="dialog">
|
|
||||||
<table>
|
|
||||||
<tbody>
|
|
||||||
<tr class="prop">
|
|
||||||
<td valign="top" class="name">
|
|
||||||
<label for="presentationName">Presentation Name:</label>
|
|
||||||
</td>
|
|
||||||
<td valign="top" class="name">
|
|
||||||
<input type="text" name="presentation_name" value="${presentation_name}" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="prop">
|
|
||||||
<td valign="top" class="name">
|
|
||||||
<label for="fileUpload">Upload:</label>
|
|
||||||
</td>
|
|
||||||
<td valign="top" class="name">
|
|
||||||
<input type="file" id="fileUpload" name="fileUpload" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="buttons">
|
|
||||||
<!--span class="button"><g:actionSubmit class="upload" value="Upload" action="upload" /></span-->
|
|
||||||
<input type="submit" value="Upload"/>
|
|
||||||
</div>
|
|
||||||
</g:form>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
338
bigbluebutton-web/grailsw
Executable file
338
bigbluebutton-web/grailsw
Executable file
@ -0,0 +1,338 @@
|
|||||||
|
##############################################################################
|
||||||
|
## ##
|
||||||
|
## Grails JVM Bootstrap for UN*X ##
|
||||||
|
## ##
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
PROGNAME=`basename "$0"`
|
||||||
|
DIRNAME=`dirname "$0"`
|
||||||
|
|
||||||
|
# Use the maximum available, or set MAX_FD != -1 to use that
|
||||||
|
MAX_FD="maximum"
|
||||||
|
|
||||||
|
warn() {
|
||||||
|
echo "${PROGNAME}: $*"
|
||||||
|
}
|
||||||
|
|
||||||
|
die() {
|
||||||
|
warn "$*"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
earlyInit() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
lateInit() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
GROOVY_STARTUP=~/.groovy/startup
|
||||||
|
if [ -r "$GROOVY_STARTUP" ]; then
|
||||||
|
. "$GROOVY_STARTUP"
|
||||||
|
fi
|
||||||
|
|
||||||
|
earlyInit
|
||||||
|
|
||||||
|
# OS specific support (must be 'true' or 'false').
|
||||||
|
cygwin=false;
|
||||||
|
darwin=false;
|
||||||
|
case "`uname`" in
|
||||||
|
CYGWIN*)
|
||||||
|
cygwin=true
|
||||||
|
;;
|
||||||
|
|
||||||
|
Darwin*)
|
||||||
|
darwin=true
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Attempt to set JAVA_HOME if it's not already set
|
||||||
|
if [ -z "$JAVA_HOME" ]; then
|
||||||
|
|
||||||
|
# Set JAVA_HOME for Darwin
|
||||||
|
if $darwin; then
|
||||||
|
|
||||||
|
[ -z "$JAVA_HOME" -a -d "/Library/Java/Home" ] &&
|
||||||
|
export JAVA_HOME="/Library/Java/Home"
|
||||||
|
|
||||||
|
[ -z "$JAVA_HOME" -a -d "/System/Library/Frameworks/JavaVM.framework/Home" ] &&
|
||||||
|
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# For Cygwin, ensure paths are in UNIX format before anything is touched
|
||||||
|
if $cygwin ; then
|
||||||
|
[ -n "$GRAILS_HOME" ] &&
|
||||||
|
GRAILS_HOME=`cygpath --unix "$GRAILS_HOME"`
|
||||||
|
[ -n "$JAVACMD" ] &&
|
||||||
|
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||||
|
[ -n "$JAVA_HOME" ] &&
|
||||||
|
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
||||||
|
[ -n "$CP" ] &&
|
||||||
|
CP=`cygpath --path --unix "$CP"`
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove possible trailing slash (after possible cygwin correction)
|
||||||
|
GRAILS_HOME=`echo $GRAILS_HOME | sed -e 's|/$||g'`
|
||||||
|
|
||||||
|
# Locate GRAILS_HOME if not it is not set
|
||||||
|
if [ -z "$GRAILS_HOME" -o ! -d "$GRAILS_HOME" ] ; then
|
||||||
|
# resolve links - $0 may be a link to groovy's home
|
||||||
|
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\"`/.."
|
||||||
|
GRAILS_HOME="`pwd -P`"
|
||||||
|
cd "$SAVED"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Warn the user if JAVA_HOME and/or GRAILS_HOME are not set.
|
||||||
|
if [ -z "$JAVA_HOME" ] ; then
|
||||||
|
die "JAVA_HOME environment variable is not set"
|
||||||
|
elif [ ! -d "$JAVA_HOME" ] ; then
|
||||||
|
die "JAVA_HOME is not a directory: $JAVA_HOME"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$GRAILS_HOME" ] ; then
|
||||||
|
warn "GRAILS_HOME environment variable is not set"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "$GRAILS_HOME" ] ; then
|
||||||
|
die "GRAILS_HOME is not a directory: $GRAILS_HOME"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use default groovy-conf config
|
||||||
|
if [ -z "$STARTER_CONF" ]; then
|
||||||
|
STARTER_CONF="$GRAILS_HOME/conf/groovy-starter.conf"
|
||||||
|
fi
|
||||||
|
STARTER_CLASSPATH="wrapper/grails-wrapper-runtime-2.3.0.jar:wrapper:."
|
||||||
|
|
||||||
|
# Allow access to Cocoa classes on OS X
|
||||||
|
if $darwin; then
|
||||||
|
STARTER_CLASSPATH="$STARTER_CLASSPATH:/System/Library/Java/Support"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create the final classpath
|
||||||
|
# Setting a classpath using the -cp or -classpath option means not to use
|
||||||
|
# the global classpath. Groovy behaves then the same as the java
|
||||||
|
# interpreter
|
||||||
|
if [ -n "$CP" ] ; then
|
||||||
|
CP="$CP"
|
||||||
|
elif [ -n "$CLASSPATH" ] ; then
|
||||||
|
CP="$CLASSPATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Determine the Java command to use to start the JVM
|
||||||
|
if [ -z "$JAVACMD" ]; then
|
||||||
|
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
|
||||||
|
else
|
||||||
|
JAVACMD="java"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ ! -x "$JAVACMD" ]; then
|
||||||
|
die "JAVA_HOME is not defined correctly; can not execute: $JAVACMD"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Increase the maximum file descriptors if we can
|
||||||
|
if [ "$cygwin" = "false" ]; then
|
||||||
|
MAX_FD_LIMIT=`ulimit -H -n`
|
||||||
|
if [ "$MAX_FD_LIMIT" != "unlimited" ]; then
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
|
||||||
|
# use the businessSystem max
|
||||||
|
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 businessSystem maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fix the cygwin agent issue
|
||||||
|
AGENT_GRAILS_HOME=$GRAILS_HOME
|
||||||
|
if $cygwin ; then
|
||||||
|
[ -n "$GRAILS_HOME" ] &&
|
||||||
|
AGENT_GRAILS_HOME=`cygpath --windows "$GRAILS_HOME"`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$GRAILS_AGENT_CACHE_DIR" ]; then
|
||||||
|
GRAILS_AGENT_CACHE_DIR=~/.grails/2.3.0/
|
||||||
|
fi
|
||||||
|
SPRINGLOADED_PARAMS=profile=grails\;cacheDir=$GRAILS_AGENT_CACHE_DIR
|
||||||
|
if [ ! -d "$GRAILS_AGENT_CACHE_DIR" ]; then
|
||||||
|
mkdir -p "$GRAILS_AGENT_CACHE_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Process JVM args
|
||||||
|
AGENT_STRING="-javaagent:wrapper/springloaded-core-1.1.3.jar -noverify -Dspringloaded.synchronize=true -Djdk.reflect.allowGetCallerClass=true -Dspringloaded=$SPRINGLOADED_PARAMS"
|
||||||
|
CMD_LINE_ARGS=""
|
||||||
|
DISABLE_RELOADING=true
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
if [ "$1" = "-cp" ] || [ "$1" = "-classpath" ]; then
|
||||||
|
CP=$2
|
||||||
|
shift 2
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" = "-reloading" ]; then
|
||||||
|
AGENT=$AGENT_STRING
|
||||||
|
DISABLE_RELOADING=false
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" = "-noreloading" ]; then
|
||||||
|
DISABLE_RELOADING=true
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" = "-debug" ]; then
|
||||||
|
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xnoagent -Dgrails.full.stacktrace=true -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" != -* ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
CMD_LINE_ARGS="$CMD_LINE_ARGS $1"
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# Enable agent-based reloading for the 'run-app' command.
|
||||||
|
if ! $DISABLE_RELOADING; then
|
||||||
|
for a in "$@"; do
|
||||||
|
if [ "$a" = "run-app" ]; then
|
||||||
|
AGENT=$AGENT_STRING
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $# = 0 ]; then
|
||||||
|
AGENT=$AGENT_STRING
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ARGUMENTS="$CMD_LINE_ARGS $@"
|
||||||
|
|
||||||
|
# Setup Profiler
|
||||||
|
useprofiler=false
|
||||||
|
if [ "x$PROFILER" != "x" ]; then
|
||||||
|
if [ -r "$PROFILER" ]; then
|
||||||
|
. $PROFILER
|
||||||
|
useprofiler=true
|
||||||
|
else
|
||||||
|
die "Profiler file not found: $PROFILER"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# For Darwin, use classes.jar for TOOLS_JAR
|
||||||
|
TOOLS_JAR="$JAVA_HOME/lib/tools.jar"
|
||||||
|
if $darwin; then
|
||||||
|
JAVA_OPTS="-Xdock:name=Grails -Xdock:icon=$GRAILS_HOME/media/icons/grails.icns $JAVA_OPTS"
|
||||||
|
# TOOLS_JAR="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes/classes.jar"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# For Cygwin, switch paths to Windows format before running java
|
||||||
|
if $cygwin; then
|
||||||
|
GRAILS_HOME=`cygpath --path --mixed "$GRAILS_HOME"`
|
||||||
|
JAVA_HOME=`cygpath --path --mixed "$JAVA_HOME"`
|
||||||
|
STARTER_CONF=`cygpath --path --mixed "$STARTER_CONF"`
|
||||||
|
CP=`cygpath --path --mixed "$CP"`
|
||||||
|
TOOLS_JAR=`cygpath --path --mixed "$TOOLS_JAR"`
|
||||||
|
STARTER_CLASSPATH=`cygpath --path --mixed "$STARTER_CLASSPATH"`
|
||||||
|
# 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 [ "$GROOVY_CYGPATTERN" != "" ] ; then
|
||||||
|
OURCYGPATTERN="$OURCYGPATTERN|($GROOVY_CYGPATTERN)"
|
||||||
|
fi
|
||||||
|
# Now convert the arguments
|
||||||
|
ARGUMENTS=""
|
||||||
|
for arg in "$@" ; do
|
||||||
|
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||||
|
if [ $CHECK -ne 0 ] ; then
|
||||||
|
convArg=`cygpath --path --ignore --mixed "$arg"`
|
||||||
|
else
|
||||||
|
convArg=$arg
|
||||||
|
fi
|
||||||
|
ARGUMENTS="$ARGUMENTS $convArg"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
STARTER_MAIN_CLASS=org.grails.wrapper.GrailsWrapper
|
||||||
|
|
||||||
|
lateInit
|
||||||
|
|
||||||
|
startGrails() {
|
||||||
|
CLASS=$1
|
||||||
|
shift
|
||||||
|
if [ -n "$GRAILS_OPTS" ]
|
||||||
|
then
|
||||||
|
GRAILS_OPTS="$GRAILS_OPTS"
|
||||||
|
else
|
||||||
|
GRAILS_OPTS="-server -Xmx768M -Xms64M -XX:PermSize=32m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8"
|
||||||
|
fi
|
||||||
|
JAVA_OPTS="$GRAILS_OPTS $JAVA_OPTS $AGENT"
|
||||||
|
# Start the Profiler or the JVM
|
||||||
|
if $useprofiler; then
|
||||||
|
runProfiler
|
||||||
|
else
|
||||||
|
if [ $# -eq 0 ] ; then # no argument given
|
||||||
|
exec "$JAVACMD" $JAVA_OPTS \
|
||||||
|
-classpath "$STARTER_CLASSPATH" \
|
||||||
|
-Dgrails.home="$GRAILS_HOME" \
|
||||||
|
-Dtools.jar="$TOOLS_JAR" \
|
||||||
|
-Djava.net.preferIPv4Stack=true \
|
||||||
|
$STARTER_MAIN_CLASS \
|
||||||
|
--main $CLASS \
|
||||||
|
--conf "$STARTER_CONF" \
|
||||||
|
--classpath "$CP"
|
||||||
|
else
|
||||||
|
exec "$JAVACMD" $JAVA_OPTS \
|
||||||
|
-classpath "$STARTER_CLASSPATH" \
|
||||||
|
-Dgrails.home="$GRAILS_HOME" \
|
||||||
|
-Dtools.jar="$TOOLS_JAR" \
|
||||||
|
-Djava.net.preferIPv4Stack=true \
|
||||||
|
$STARTER_MAIN_CLASS \
|
||||||
|
--main $CLASS \
|
||||||
|
--conf "$STARTER_CONF" \
|
||||||
|
--classpath "$CP" \
|
||||||
|
"${ARGUMENTS}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
startGrails $STARTER_MAIN_CLASS "$@"
|
176
bigbluebutton-web/grailsw.bat
Executable file
176
bigbluebutton-web/grailsw.bat
Executable file
@ -0,0 +1,176 @@
|
|||||||
|
@if "%DEBUG%" == "" @echo off
|
||||||
|
@rem ##########################################################################
|
||||||
|
@rem ##
|
||||||
|
@rem Grails JVM Bootstrap for Windows ##
|
||||||
|
@rem ##
|
||||||
|
@rem ##########################################################################
|
||||||
|
|
||||||
|
@rem Set local scope for the variables with windows NT shell
|
||||||
|
if "%OS%"=="Windows_NT" setlocal
|
||||||
|
|
||||||
|
set CLASS=org.grails.wrapper.GrailsWrapper
|
||||||
|
|
||||||
|
if exist "%USERPROFILE%/.groovy/preinit.bat" call "%USERPROFILE%/.groovy/preinit.bat"
|
||||||
|
|
||||||
|
@rem Determine the command interpreter to execute the "CD" later
|
||||||
|
set COMMAND_COM="cmd.exe"
|
||||||
|
if exist "%SystemRoot%\system32\cmd.exe" set COMMAND_COM="%SystemRoot%\system32\cmd.exe"
|
||||||
|
if exist "%SystemRoot%\command.com" set COMMAND_COM="%SystemRoot%\command.com"
|
||||||
|
|
||||||
|
@rem Use explicit find.exe to prevent cygwin and others find.exe from being used
|
||||||
|
set FIND_EXE="find.exe"
|
||||||
|
if exist "%SystemRoot%\system32\find.exe" set FIND_EXE="%SystemRoot%\system32\find.exe"
|
||||||
|
if exist "%SystemRoot%\command\find.exe" set FIND_EXE="%SystemRoot%\command\find.exe"
|
||||||
|
|
||||||
|
:check_JAVA_HOME
|
||||||
|
@rem Make sure we have a valid JAVA_HOME
|
||||||
|
if not "%JAVA_HOME%" == "" goto have_JAVA_HOME
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo ERROR: Environment variable JAVA_HOME has not been set.
|
||||||
|
echo.
|
||||||
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
|
echo location of your Java installation.
|
||||||
|
echo.
|
||||||
|
goto end
|
||||||
|
|
||||||
|
:have_JAVA_HOME
|
||||||
|
@rem Remove trailing slash from JAVA_HOME if found
|
||||||
|
if "%JAVA_HOME:~-1%"=="\" SET JAVA_HOME=%JAVA_HOME:~0,-1%
|
||||||
|
|
||||||
|
@rem Validate JAVA_HOME
|
||||||
|
%COMMAND_COM% /C DIR "%JAVA_HOME%" 2>&1 | %FIND_EXE% /I /C "%JAVA_HOME%" >nul
|
||||||
|
if not errorlevel 1 goto check_GRAILS_HOME
|
||||||
|
|
||||||
|
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.
|
||||||
|
echo.
|
||||||
|
goto end
|
||||||
|
|
||||||
|
:check_GRAILS_HOME
|
||||||
|
@rem Define GRAILS_HOME if not set
|
||||||
|
if "%GRAILS_HOME%" == "" set GRAILS_HOME=%DIRNAME%..
|
||||||
|
|
||||||
|
@rem Remove trailing slash from GRAILS_HOME if found
|
||||||
|
if "%GRAILS_HOME:~-1%"=="\" SET GRAILS_HOME=%GRAILS_HOME:~0,-1%
|
||||||
|
|
||||||
|
:init
|
||||||
|
|
||||||
|
for %%x in ("%HOMEPATH%") do set SHORTHOME=%%~fsx
|
||||||
|
if "x%GRAILS_AGENT_CACHE_DIR%" == "x" set GRAILS_AGENT_CACHE_DIR=%SHORTHOME%/.grails/2.3.0/
|
||||||
|
set SPRINGLOADED_PARAMS="profile=grails;cacheDir=%GRAILS_AGENT_CACHE_DIR%"
|
||||||
|
if not exist "%GRAILS_AGENT_CACHE_DIR%" mkdir "%GRAILS_AGENT_CACHE_DIR%"
|
||||||
|
|
||||||
|
set AGENT_STRING=-javaagent:wrapper/springloaded-core-1.1.3.jar -noverify -Dspringloaded.synchronize=true -Djdk.reflect.allowGetCallerClass=true -Dspringloaded=\"%SPRINGLOADED_PARAMS%\"
|
||||||
|
set DISABLE_RELOADING=
|
||||||
|
if "%GRAILS_OPTS%" == "" set GRAILS_OPTS=-server -Xmx768M -Xms64M -XX:PermSize=32m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8
|
||||||
|
|
||||||
|
@rem Get command-line arguments, handling Windows variants
|
||||||
|
if "%@eval[2+2]" == "4" goto 4NT_args
|
||||||
|
|
||||||
|
@rem Slurp the command line arguments.
|
||||||
|
set CMD_LINE_ARGS=
|
||||||
|
set CP=
|
||||||
|
set INTERACTIVE=true
|
||||||
|
|
||||||
|
:win9xME_args_slurp
|
||||||
|
if "x%~1" == "x" goto execute
|
||||||
|
set CURR_ARG=%~1
|
||||||
|
if "%CURR_ARG:~0,2%" == "-D" (
|
||||||
|
set GRAILS_OPTS=%GRAILS_OPTS% %~1=%~2
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
goto win9xME_args_slurp
|
||||||
|
)
|
||||||
|
if "x%~1" == "x-cp" (
|
||||||
|
set CP=%~2
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
goto win9xME_args_slurp
|
||||||
|
)
|
||||||
|
if "x%~1" == "x-debug" (
|
||||||
|
set JAVA_OPTS=%JAVA_OPTS% -Xdebug -Xnoagent -Dgrails.full.stacktrace=true -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
|
||||||
|
shift
|
||||||
|
goto win9xME_args_slurp
|
||||||
|
)
|
||||||
|
if "x%~1" == "x-classpath" (
|
||||||
|
set CP=%~2
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
goto win9xME_args_slurp
|
||||||
|
)
|
||||||
|
if "x%~1" == "x-reloading" (
|
||||||
|
set AGENT=%AGENT_STRING%
|
||||||
|
shift
|
||||||
|
goto win9xME_args_slurp
|
||||||
|
)
|
||||||
|
if "x%~1" == "xrun-app" (
|
||||||
|
set AGENT=%AGENT_STRING%
|
||||||
|
set INTERACTIVE=
|
||||||
|
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
|
||||||
|
shift
|
||||||
|
goto win9xME_args_slurp
|
||||||
|
)
|
||||||
|
if "x%~1" == "x-noreloading" (
|
||||||
|
set DISABLE_RELOADING=true
|
||||||
|
shift
|
||||||
|
goto win9xME_args_slurp
|
||||||
|
)
|
||||||
|
set INTERACTIVE=
|
||||||
|
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
|
||||||
|
shift
|
||||||
|
goto win9xME_args_slurp
|
||||||
|
|
||||||
|
:4NT_args
|
||||||
|
@rem Get arguments from the 4NT Shell from JP Software
|
||||||
|
set CMD_LINE_ARGS=%$
|
||||||
|
|
||||||
|
:execute
|
||||||
|
@rem Setup the command line
|
||||||
|
set STARTER_CLASSPATH=wrapper/grails-wrapper-runtime-2.3.0.jar;wrapper;.
|
||||||
|
|
||||||
|
if exist "%USERPROFILE%/.groovy/init.bat" call "%USERPROFILE%/.groovy/init.bat"
|
||||||
|
|
||||||
|
@rem Setting a classpath using the -cp or -classpath option means not to use
|
||||||
|
@rem the global classpath. Groovy behaves then the same as the java interpreter
|
||||||
|
|
||||||
|
if "x" == "x%CLASSPATH%" goto after_classpath
|
||||||
|
set CP=%CP%;%CLASSPATH%
|
||||||
|
:after_classpath
|
||||||
|
|
||||||
|
if "x%DISABLE_RELOADING%" == "xtrue" (
|
||||||
|
set AGENT=
|
||||||
|
) else (
|
||||||
|
if "x%INTERACTIVE%" == "xtrue" (
|
||||||
|
set AGENT=%AGENT_STRING%
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
set STARTER_MAIN_CLASS=org.grails.wrapper.GrailsWrapper
|
||||||
|
set STARTER_CONF=%GRAILS_HOME%\conf\groovy-starter.conf
|
||||||
|
|
||||||
|
set JAVA_EXE=%JAVA_HOME%\bin\java.exe
|
||||||
|
set TOOLS_JAR=%JAVA_HOME%\lib\tools.jar
|
||||||
|
|
||||||
|
set JAVA_OPTS=%GRAILS_OPTS% %JAVA_OPTS% %AGENT%
|
||||||
|
|
||||||
|
set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name="%PROGNAME%"
|
||||||
|
set JAVA_OPTS=%JAVA_OPTS% -Dgrails.home="%GRAILS_HOME%"
|
||||||
|
set JAVA_OPTS=%JAVA_OPTS% -Dgrails.version=2.3.0
|
||||||
|
set JAVA_OPTS=%JAVA_OPTS% -Dbase.dir=.
|
||||||
|
set JAVA_OPTS=%JAVA_OPTS% -Dtools.jar="%TOOLS_JAR%"
|
||||||
|
set JAVA_OPTS=%JAVA_OPTS% -Dgroovy.starter.conf="%STARTER_CONF%"
|
||||||
|
|
||||||
|
if exist "%USERPROFILE%/.groovy/postinit.bat" call "%USERPROFILE%/.groovy/postinit.bat"
|
||||||
|
|
||||||
|
@rem Execute Grails
|
||||||
|
CALL "%JAVA_EXE%" %JAVA_OPTS% -classpath "%STARTER_CLASSPATH%" %STARTER_MAIN_CLASS% --main %CLASS% --conf "%STARTER_CONF%" --classpath "%CP%" "%CMD_LINE_ARGS%"
|
||||||
|
:end
|
||||||
|
@rem End local scope for the variables with windows NT shell
|
||||||
|
if "%OS%"=="Windows_NT" endlocal
|
||||||
|
|
||||||
|
@rem Optional pause the batch file
|
||||||
|
if "%GROOVY_BATCH_PAUSE%" == "on" pause
|
@ -1,28 +0,0 @@
|
|||||||
<ivy-module version="2.0">
|
|
||||||
<info organisation="org.example" module="bigbluebutton"/>
|
|
||||||
<configurations defaultconfmapping="build->default;compile->compile(*),master(*);test,runtime->runtime(*),master(*)">
|
|
||||||
<conf name="build"/>
|
|
||||||
<conf name="compile"/>
|
|
||||||
<conf name="test" extends="compile"/>
|
|
||||||
<conf name="runtime" extends="compile"/>
|
|
||||||
</configurations>
|
|
||||||
<dependencies>
|
|
||||||
<dependency org="org.grails" name="grails-bootstrap" rev="1.3.9" conf="build"/>
|
|
||||||
<dependency org="org.grails" name="grails-scripts" rev="1.3.9" conf="build"/>
|
|
||||||
<dependency org="org.grails" name="grails-gorm" rev="1.3.9" conf="compile"/>
|
|
||||||
<dependency org="org.grails" name="grails-web" rev="1.3.9" conf="compile"/>
|
|
||||||
<dependency org="org.grails" name="grails-test" rev="1.3.9" conf="test"/>
|
|
||||||
<dependency org="org.slf4j" name="slf4j-log4j12" rev="1.5.5" conf="runtime"/>
|
|
||||||
<dependency org="opensymphony" name="oscache" rev="2.4" conf="runtime">
|
|
||||||
<exclude org="javax.jms" module="jms" name="*" type="*" ext="*" conf="" matcher="exact"/>
|
|
||||||
<exclude org="commons-logging" module="commons-logging" name="*" type="*" ext="*" conf="" matcher="exact"/>
|
|
||||||
<exclude org="javax.servlet" module="servlet-api" name="*" type="*" ext="*" conf="" matcher="exact"/>
|
|
||||||
</dependency>
|
|
||||||
<dependency org="hsqldb" name="hsqldb" rev="1.8.0.5" conf="runtime"/>
|
|
||||||
<dependency org="net.sf.ehcache" name="ehcache" rev="1.5.0" conf="runtime"/>
|
|
||||||
<!--
|
|
||||||
<dependency org="mysql" name="mysql-connector-java" rev="5.1.6" conf="runtime"/>
|
|
||||||
<dependency org="postgresql" name="postgresql" rev="8.3-603.jdbc3" conf="runtime"/>
|
|
||||||
-->
|
|
||||||
</dependencies>
|
|
||||||
</ivy-module>
|
|
@ -1,15 +0,0 @@
|
|||||||
<ivysettings>
|
|
||||||
<settings defaultResolver="codehaus-plus"/>
|
|
||||||
<include url="${ivy.default.settings.dir}/ivysettings-public.xml" />
|
|
||||||
<include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/>
|
|
||||||
<include url="${ivy.default.settings.dir}/ivysettings-local.xml" />
|
|
||||||
<include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>
|
|
||||||
<resolvers>
|
|
||||||
<chain name="codehaus-plus" dual="true">
|
|
||||||
<ibiblio name="codehaus-snapshots" root="http://snapshots.repository.codehaus.org" m2compatible="true" changingPattern=".*SNAPSHOT"/>
|
|
||||||
<ibiblio name="codehaus" root="http://repository.codehaus.org" m2compatible="true"/>
|
|
||||||
<ibiblio name="javanet" root="http://download.java.net/maven/2/" m2compatible="true"/>
|
|
||||||
<resolver ref="public"/>
|
|
||||||
</chain>
|
|
||||||
</resolvers>
|
|
||||||
</ivysettings>
|
|
Binary file not shown.
Binary file not shown.
0
bigbluebutton-web/lib/commons-codec-1.3.jar
Normal file → Executable file
0
bigbluebutton-web/lib/commons-codec-1.3.jar
Normal file → Executable file
0
bigbluebutton-web/lib/commons-httpclient.jar
Normal file → Executable file
0
bigbluebutton-web/lib/commons-httpclient.jar
Normal file → Executable file
0
bigbluebutton-web/lib/geronimo-j2ee-management_1.0_spec-1.0.jar
Normal file → Executable file
0
bigbluebutton-web/lib/geronimo-j2ee-management_1.0_spec-1.0.jar
Normal file → Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,316 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<groupId>org.bigbluebutton</groupId>
|
|
||||||
<artifactId>bigbluebutton</artifactId>
|
|
||||||
<packaging>war</packaging>
|
|
||||||
<version>0.70dev</version>
|
|
||||||
|
|
||||||
<name>A custom grails project</name>
|
|
||||||
<description>A custom grails project</description>
|
|
||||||
<url>http://www.myorganization.org</url>
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<grails.version>1.3.7</grails.version>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.grails</groupId>
|
|
||||||
<artifactId>grails-bootstrap</artifactId>
|
|
||||||
<version>${grails.version}</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.codehaus.gpars</groupId>
|
|
||||||
<artifactId>gpars</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.codehaus.gant</groupId>
|
|
||||||
<artifactId>gant_groovy1.7</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.gparallelizer</groupId>
|
|
||||||
<artifactId>GParallelizer</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.codehaus.gant</groupId>
|
|
||||||
<artifactId>gant_groovy1.6</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.apache.ant</groupId>
|
|
||||||
<artifactId>ant</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.apache.ant</groupId>
|
|
||||||
<artifactId>ant-launcher</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.apache.ivy</groupId>
|
|
||||||
<artifactId>ivy</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.grails</groupId>
|
|
||||||
<artifactId>grails-crud</artifactId>
|
|
||||||
<version>${grails.version}</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.grails</groupId>
|
|
||||||
<artifactId>grails-docs</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.apache.ant</groupId>
|
|
||||||
<artifactId>ant</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.apache.ant</groupId>
|
|
||||||
<artifactId>ant-launcher</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.springframework</groupId>
|
|
||||||
<artifactId>spring-test</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>radeox</groupId>
|
|
||||||
<artifactId>radeox</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>commons-digester</groupId>
|
|
||||||
<artifactId>commons-digester</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>javax.persistence</groupId>
|
|
||||||
<artifactId>persistence-api</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>junit</groupId>
|
|
||||||
<artifactId>junit</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.grails</groupId>
|
|
||||||
<artifactId>grails-gorm</artifactId>
|
|
||||||
<version>${grails.version}</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.apache.ant</groupId>
|
|
||||||
<artifactId>ant</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.apache.ant</groupId>
|
|
||||||
<artifactId>ant-launcher</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>commons-digester</groupId>
|
|
||||||
<artifactId>commons-digester</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>junit</groupId>
|
|
||||||
<artifactId>junit</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.hibernate</groupId>
|
|
||||||
<artifactId>hibernate</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.hibernate</groupId>
|
|
||||||
<artifactId>hibernate-annotations</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.hibernate</groupId>
|
|
||||||
<artifactId>hibernate-commons-annotations</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>antlr</groupId>
|
|
||||||
<artifactId>antlr</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.grails</groupId>
|
|
||||||
<artifactId>grails-test</artifactId>
|
|
||||||
<version>${grails.version}</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.servlet</groupId>
|
|
||||||
<artifactId>jstl</artifactId>
|
|
||||||
<version>1.1.2</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>taglibs</groupId>
|
|
||||||
<artifactId>standard</artifactId>
|
|
||||||
<version>1.1.2</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- Grails defaults to Ehache for the second-level Hibernate cache. -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.hibernate</groupId>
|
|
||||||
<artifactId>hibernate-ehcache</artifactId>
|
|
||||||
<version>3.3.1.GA</version>
|
|
||||||
<exclusions>
|
|
||||||
<!-- See http://www.slf4j.org/faq.html#IllegalAccessError -->
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
|
|
||||||
<!-- We are pulling in ehcache-core below -->
|
|
||||||
<exclusion>
|
|
||||||
<groupId>net.sf.ehcache</groupId>
|
|
||||||
<artifactId>ehcache</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>net.sf.ehcache</groupId>
|
|
||||||
<artifactId>ehcache-core</artifactId>
|
|
||||||
<version>1.7.1</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- For ease of development and testing, we include the HSQLDB database. -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>hsqldb</groupId>
|
|
||||||
<artifactId>hsqldb</artifactId>
|
|
||||||
<version>1.8.0.10</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- Use Log4J for logging. This artifact also pulls in the Log4J JAR. -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
<version>1.5.8</version>
|
|
||||||
<scope>runtime</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
<artifactId>slf4j-log4j12</artifactId>
|
|
||||||
<version>1.5.8</version>
|
|
||||||
<scope>runtime</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- Needed in the case of AOP usage -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.aspectj</groupId>
|
|
||||||
<artifactId>aspectjweaver</artifactId>
|
|
||||||
<version>1.6.8</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.aspectj</groupId>
|
|
||||||
<artifactId>aspectjrt</artifactId>
|
|
||||||
<version>1.6.8</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-codec</groupId>
|
|
||||||
<artifactId>commons-codec</artifactId>
|
|
||||||
<version>1.3</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-collections</groupId>
|
|
||||||
<artifactId>commons-collections</artifactId>
|
|
||||||
<version>3.2.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-pool</groupId>
|
|
||||||
<artifactId>commons-pool</artifactId>
|
|
||||||
<version>1.5.3</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<dependencyManagement>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>log4j</groupId>
|
|
||||||
<artifactId>log4j</artifactId>
|
|
||||||
<version>1.2.16</version>
|
|
||||||
<scope>runtime</scope>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
</dependencyManagement>
|
|
||||||
|
|
||||||
<repositories>
|
|
||||||
<!-- Required to get hold of javassist:javassist -->
|
|
||||||
<repository>
|
|
||||||
<id>jboss.org</id>
|
|
||||||
<name>jboss.org</name>
|
|
||||||
<url>http://repository.jboss.com/maven2/</url>
|
|
||||||
</repository>
|
|
||||||
</repositories>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<pluginManagement />
|
|
||||||
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.grails</groupId>
|
|
||||||
<artifactId>grails-maven-plugin</artifactId>
|
|
||||||
<version>${grails.version}</version>
|
|
||||||
<extensions>true</extensions>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<goals>
|
|
||||||
<goal>init</goal>
|
|
||||||
<goal>maven-clean</goal>
|
|
||||||
<goal>validate</goal>
|
|
||||||
<goal>config-directories</goal>
|
|
||||||
<goal>maven-compile</goal>
|
|
||||||
<goal>maven-test</goal>
|
|
||||||
<goal>maven-war</goal>
|
|
||||||
<goal>maven-functional-test</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<source>1.5</source>
|
|
||||||
<target>1.5</target>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
<profiles>
|
|
||||||
<profile>
|
|
||||||
<id>tools</id>
|
|
||||||
<activation>
|
|
||||||
<property>
|
|
||||||
<name>java.vendor</name>
|
|
||||||
<value>Sun Microsystems Inc.</value>
|
|
||||||
</property>
|
|
||||||
</activation>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.sun</groupId>
|
|
||||||
<artifactId>tools</artifactId>
|
|
||||||
<version>${java.version}</version>
|
|
||||||
<scope>system</scope>
|
|
||||||
<systemPath>${java.home}/../lib/tools.jar</systemPath>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
</profile>
|
|
||||||
</profiles>
|
|
||||||
</project>
|
|
@ -1,40 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# openoffice.org headless server script
|
|
||||||
#
|
|
||||||
# chkconfig: 2345 80 30
|
|
||||||
# description: headless openoffice server script
|
|
||||||
# processname: openoffice
|
|
||||||
#
|
|
||||||
# Author: Vic Vijayakumar
|
|
||||||
# Modified by Federico Ch. Tomasczik
|
|
||||||
#
|
|
||||||
OOo_HOME=/usr/bin
|
|
||||||
SOFFICE_PATH=$OOo_HOME/soffice
|
|
||||||
PIDFILE=/var/run/openoffice-server.pid
|
|
||||||
set -e
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
if [ -f $PIDFILE ]; then
|
|
||||||
echo "OpenOffice headless server has already started."
|
|
||||||
sleep 5
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
echo "Starting OpenOffice headless server"
|
|
||||||
$SOFFICE_PATH -headless -nologo -nofirststartwizard -accept="socket,host=127.0.0.1,port=8100;urp" & > /dev/null 2>&1
|
|
||||||
touch $PIDFILE
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
if [ -f $PIDFILE ]; then
|
|
||||||
echo "Stopping OpenOffice headless server."
|
|
||||||
killall -9 soffice && killall -9 soffice.bin
|
|
||||||
rm -f $PIDFILE
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
echo "Openoffice headless server is not running."
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Usage: $0 {start|stop}"
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
exit 0
|
|
@ -31,8 +31,6 @@ import org.bigbluebutton.presentation.UploadedPresentation;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import com.mysql.jdbc.log.LogUtils;
|
|
||||||
|
|
||||||
public class ThumbnailCreatorImp implements ThumbnailCreator {
|
public class ThumbnailCreatorImp implements ThumbnailCreator {
|
||||||
private static Logger log = LoggerFactory.getLogger(ThumbnailCreatorImp.class);
|
private static Logger log = LoggerFactory.getLogger(ThumbnailCreatorImp.class);
|
||||||
|
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
@artifact.package@class @artifact.name@ {
|
|
||||||
|
|
||||||
def index = { }
|
|
||||||
}
|
|
@ -1,5 +0,0 @@
|
|||||||
@artifact.package@class @artifact.name@ {
|
|
||||||
|
|
||||||
static constraints = {
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
@artifact.package@class @artifact.name@ {
|
|
||||||
|
|
||||||
def filters = {
|
|
||||||
all(controller:'*', action:'*') {
|
|
||||||
before = {
|
|
||||||
|
|
||||||
}
|
|
||||||
after = {
|
|
||||||
|
|
||||||
}
|
|
||||||
afterView = {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
includeTargets << grailsScript("Init")
|
|
||||||
|
|
||||||
target(main: "The description of the script goes here!") {
|
|
||||||
// TODO: Implement script here
|
|
||||||
}
|
|
||||||
|
|
||||||
setDefaultTarget(main)
|
|
@ -1,8 +0,0 @@
|
|||||||
@artifact.package@class @artifact.name@ {
|
|
||||||
|
|
||||||
boolean transactional = true
|
|
||||||
|
|
||||||
def serviceMethod() {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
@artifact.package@class @artifact.name@ {
|
|
||||||
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
@artifact.package@import grails.test.*
|
|
||||||
|
|
||||||
class @artifact.name@ extends @artifact.superclass@ {
|
|
||||||
protected void setUp() {
|
|
||||||
super.setUp()
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void tearDown() {
|
|
||||||
super.tearDown()
|
|
||||||
}
|
|
||||||
|
|
||||||
void testSomething() {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
class @webtest.name.caps@Test extends grails.util.WebTest {
|
|
||||||
|
|
||||||
// Unlike unit tests, functional tests are often sequence dependent.
|
|
||||||
// Specify that sequence here.
|
|
||||||
void suite() {
|
|
||||||
test@webtest.name.caps@ListNewDelete()
|
|
||||||
// add tests for more operations here
|
|
||||||
}
|
|
||||||
|
|
||||||
def test@webtest.name.caps@ListNewDelete() {
|
|
||||||
webtest('@webtest.name.caps@ basic operations: view list, create new entry, view, edit, delete, view') {
|
|
||||||
invoke(url:'@webtest.name.lower@')
|
|
||||||
verifyText(text:'Home')
|
|
||||||
|
|
||||||
verifyListPage(0)
|
|
||||||
|
|
||||||
clickLink(label:'New @webtest.name.caps@')
|
|
||||||
verifyText(text:'Create @webtest.name.caps@')
|
|
||||||
clickButton(label:'Create')
|
|
||||||
verifyText(text:'Show @webtest.name.caps@', description:'Detail page')
|
|
||||||
clickLink(label:'List', description:'Back to list view')
|
|
||||||
|
|
||||||
verifyListPage(1)
|
|
||||||
|
|
||||||
group(description:'edit the one element') {
|
|
||||||
clickLink(label:'Show', description:'go to detail view')
|
|
||||||
clickButton(label:'Edit')
|
|
||||||
verifyText(text:'Edit @webtest.name.caps@')
|
|
||||||
clickButton(label:'Update')
|
|
||||||
verifyText(text:'Show @webtest.name.caps@')
|
|
||||||
clickLink(label:'List', description:'Back to list view')
|
|
||||||
}
|
|
||||||
|
|
||||||
verifyListPage(1)
|
|
||||||
|
|
||||||
group(description:'delete the only element') {
|
|
||||||
clickLink(label:'Show', description:'go to detail view')
|
|
||||||
clickButton(label:'Delete')
|
|
||||||
verifyXPath(xpath:"//div[@class='message']", text:/@webtest.name.caps@.*deleted./, regex:true)
|
|
||||||
}
|
|
||||||
|
|
||||||
verifyListPage(0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String ROW_COUNT_XPATH = "count(//td[@class='actionButtons']/..)"
|
|
||||||
|
|
||||||
def verifyListPage(int count) {
|
|
||||||
ant.group(description:"verify @webtest.name.caps@ list view with $count row(s)") {
|
|
||||||
verifyText(text:'@webtest.name.caps@ List')
|
|
||||||
verifyXPath(xpath:ROW_COUNT_XPATH, text:count, description:"$count row(s) of data expected")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,99 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
<%=packageName ? "package ${packageName}\n\n" : ''%>class ${className}Controller {
|
|
||||||
|
|
||||||
def index = { redirect(action:list,params:params) }
|
|
||||||
|
|
||||||
// the delete, save and update actions only accept POST requests
|
|
||||||
static allowedMethods = [delete:'POST', save:'POST', update:'POST']
|
|
||||||
|
|
||||||
def list = {
|
|
||||||
params.max = Math.min( params.max ? params.max.toInteger() : 10, 100)
|
|
||||||
[ ${propertyName}List: ${className}.list( params ), ${propertyName}Total: ${className}.count() ]
|
|
||||||
}
|
|
||||||
|
|
||||||
def show = {
|
|
||||||
def ${propertyName} = ${className}.get( params.id )
|
|
||||||
|
|
||||||
if(!${propertyName}) {
|
|
||||||
flash.message = "${className} not found with id \${params.id}"
|
|
||||||
redirect(action:list)
|
|
||||||
}
|
|
||||||
else { return [ ${propertyName} : ${propertyName} ] }
|
|
||||||
}
|
|
||||||
|
|
||||||
def delete = {
|
|
||||||
def ${propertyName} = ${className}.get( params.id )
|
|
||||||
if(${propertyName}) {
|
|
||||||
try {
|
|
||||||
${propertyName}.delete(flush:true)
|
|
||||||
flash.message = "${className} \${params.id} deleted"
|
|
||||||
redirect(action:list)
|
|
||||||
}
|
|
||||||
catch(org.springframework.dao.DataIntegrityViolationException e) {
|
|
||||||
flash.message = "${className} \${params.id} could not be deleted"
|
|
||||||
redirect(action:show,id:params.id)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
flash.message = "${className} not found with id \${params.id}"
|
|
||||||
redirect(action:list)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
def edit = {
|
|
||||||
def ${propertyName} = ${className}.get( params.id )
|
|
||||||
|
|
||||||
if(!${propertyName}) {
|
|
||||||
flash.message = "${className} not found with id \${params.id}"
|
|
||||||
redirect(action:list)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return [ ${propertyName} : ${propertyName} ]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
def update = {
|
|
||||||
def ${propertyName} = ${className}.get( params.id )
|
|
||||||
if(${propertyName}) {
|
|
||||||
if(params.version) {
|
|
||||||
def version = params.version.toLong()
|
|
||||||
if(${propertyName}.version > version) {
|
|
||||||
<%def lowerCaseName = grails.util.GrailsNameUtils.getPropertyName(className)%>
|
|
||||||
${propertyName}.errors.rejectValue("version", "${lowerCaseName}.optimistic.locking.failure", "Another user has updated this ${className} while you were editing.")
|
|
||||||
render(view:'edit',model:[${propertyName}:${propertyName}])
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
${propertyName}.properties = params
|
|
||||||
if(!${propertyName}.hasErrors() && ${propertyName}.save()) {
|
|
||||||
flash.message = "${className} \${params.id} updated"
|
|
||||||
redirect(action:show,id:${propertyName}.id)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
render(view:'edit',model:[${propertyName}:${propertyName}])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
flash.message = "${className} not found with id \${params.id}"
|
|
||||||
redirect(action:list)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
def create = {
|
|
||||||
def ${propertyName} = new ${className}()
|
|
||||||
${propertyName}.properties = params
|
|
||||||
return ['${propertyName}':${propertyName}]
|
|
||||||
}
|
|
||||||
|
|
||||||
def save = {
|
|
||||||
def ${propertyName} = new ${className}(params)
|
|
||||||
if(!${propertyName}.hasErrors() && ${propertyName}.save()) {
|
|
||||||
flash.message = "${className} \${${propertyName}.id} created"
|
|
||||||
redirect(action:show,id:${propertyName}.id)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
render(view:'create',model:[${propertyName}:${propertyName}])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,62 +0,0 @@
|
|||||||
<% import org.codehaus.groovy.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor as Events %>
|
|
||||||
<%=packageName%>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
|
||||||
<meta name="layout" content="main" />
|
|
||||||
<title>Create ${className}</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="nav">
|
|
||||||
<span class="menuButton"><a class="home" href="\${resource(dir:'')}">Home</a></span>
|
|
||||||
<span class="menuButton"><g:link class="list" action="list">${className} List</g:link></span>
|
|
||||||
</div>
|
|
||||||
<div class="body">
|
|
||||||
<h1>Create ${className}</h1>
|
|
||||||
<g:if test="\${flash.message}">
|
|
||||||
<div class="message">\${flash.message}</div>
|
|
||||||
</g:if>
|
|
||||||
<g:hasErrors bean="\${${propertyName}}">
|
|
||||||
<div class="errors">
|
|
||||||
<g:renderErrors bean="\${${propertyName}}" as="list" />
|
|
||||||
</div>
|
|
||||||
</g:hasErrors>
|
|
||||||
<g:form action="save" method="post" <%= multiPart ? ' enctype="multipart/form-data"' : '' %>>
|
|
||||||
<div class="dialog">
|
|
||||||
<table>
|
|
||||||
<tbody>
|
|
||||||
<%
|
|
||||||
|
|
||||||
excludedProps = ['version',
|
|
||||||
'id',
|
|
||||||
Events.ONLOAD_EVENT,
|
|
||||||
Events.BEFORE_DELETE_EVENT,
|
|
||||||
Events.BEFORE_INSERT_EVENT,
|
|
||||||
Events.BEFORE_UPDATE_EVENT]
|
|
||||||
props = domainClass.properties.findAll { !excludedProps.contains(it.name) }
|
|
||||||
|
|
||||||
Collections.sort(props, comparator.constructors[0].newInstance([domainClass] as Object[]))
|
|
||||||
props.each { p ->
|
|
||||||
if(!Collection.class.isAssignableFrom(p.type)) {
|
|
||||||
cp = domainClass.constrainedProperties[p.name]
|
|
||||||
display = (cp ? cp.display : true)
|
|
||||||
if(display) { %>
|
|
||||||
<tr class="prop">
|
|
||||||
<td valign="top" class="name">
|
|
||||||
<label for="${p.name}">${p.naturalName}:</label>
|
|
||||||
</td>
|
|
||||||
<td valign="top" class="value \${hasErrors(bean:${propertyName},field:'${p.name}','errors')}">
|
|
||||||
${renderEditor(p)}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<% } } } %>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="buttons">
|
|
||||||
<span class="button"><input class="save" type="submit" value="Create" /></span>
|
|
||||||
</div>
|
|
||||||
</g:form>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,64 +0,0 @@
|
|||||||
<% import org.codehaus.groovy.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor as Events %>
|
|
||||||
<%=packageName%>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
|
||||||
<meta name="layout" content="main" />
|
|
||||||
<title>Edit ${className}</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="nav">
|
|
||||||
<span class="menuButton"><a class="home" href="\${resource(dir:'')}">Home</a></span>
|
|
||||||
<span class="menuButton"><g:link class="list" action="list">${className} List</g:link></span>
|
|
||||||
<span class="menuButton"><g:link class="create" action="create">New ${className}</g:link></span>
|
|
||||||
</div>
|
|
||||||
<div class="body">
|
|
||||||
<h1>Edit ${className}</h1>
|
|
||||||
<g:if test="\${flash.message}">
|
|
||||||
<div class="message">\${flash.message}</div>
|
|
||||||
</g:if>
|
|
||||||
<g:hasErrors bean="\${${propertyName}}">
|
|
||||||
<div class="errors">
|
|
||||||
<g:renderErrors bean="\${${propertyName}}" as="list" />
|
|
||||||
</div>
|
|
||||||
</g:hasErrors>
|
|
||||||
<g:form method="post" <%= multiPart ? ' enctype="multipart/form-data"' : '' %>>
|
|
||||||
<input type="hidden" name="id" value="\${${propertyName}?.id}" />
|
|
||||||
<input type="hidden" name="version" value="\${${propertyName}?.version}" />
|
|
||||||
<div class="dialog">
|
|
||||||
<table>
|
|
||||||
<tbody>
|
|
||||||
<%
|
|
||||||
excludedProps = ['version',
|
|
||||||
'id',
|
|
||||||
Events.ONLOAD_EVENT,
|
|
||||||
Events.BEFORE_DELETE_EVENT,
|
|
||||||
Events.BEFORE_INSERT_EVENT,
|
|
||||||
Events.BEFORE_UPDATE_EVENT]
|
|
||||||
props = domainClass.properties.findAll { !excludedProps.contains(it.name) }
|
|
||||||
|
|
||||||
Collections.sort(props, comparator.constructors[0].newInstance([domainClass] as Object[]))
|
|
||||||
props.each { p ->
|
|
||||||
cp = domainClass.constrainedProperties[p.name]
|
|
||||||
display = (cp ? cp.display : true)
|
|
||||||
if(display) { %>
|
|
||||||
<tr class="prop">
|
|
||||||
<td valign="top" class="name">
|
|
||||||
<label for="${p.name}">${p.naturalName}:</label>
|
|
||||||
</td>
|
|
||||||
<td valign="top" class="value \${hasErrors(bean:${propertyName},field:'${p.name}','errors')}">
|
|
||||||
${renderEditor(p)}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<% } } %>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="buttons">
|
|
||||||
<span class="button"><g:actionSubmit class="save" value="Update" /></span>
|
|
||||||
<span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
|
|
||||||
</div>
|
|
||||||
</g:form>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,60 +0,0 @@
|
|||||||
<% import org.codehaus.groovy.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor as Events %>
|
|
||||||
<%=packageName%>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
|
||||||
<meta name="layout" content="main" />
|
|
||||||
<title>${className} List</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="nav">
|
|
||||||
<span class="menuButton"><a class="home" href="\${resource(dir:'')}">Home</a></span>
|
|
||||||
<span class="menuButton"><g:link class="create" action="create">New ${className}</g:link></span>
|
|
||||||
</div>
|
|
||||||
<div class="body">
|
|
||||||
<h1>${className} List</h1>
|
|
||||||
<g:if test="\${flash.message}">
|
|
||||||
<div class="message">\${flash.message}</div>
|
|
||||||
</g:if>
|
|
||||||
<div class="list">
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<%
|
|
||||||
excludedProps = ['version',
|
|
||||||
Events.ONLOAD_EVENT,
|
|
||||||
Events.BEFORE_DELETE_EVENT,
|
|
||||||
Events.BEFORE_INSERT_EVENT,
|
|
||||||
Events.BEFORE_UPDATE_EVENT]
|
|
||||||
|
|
||||||
props = domainClass.properties.findAll { !excludedProps.contains(it.name) && it.type != Set.class }
|
|
||||||
Collections.sort(props, comparator.constructors[0].newInstance([domainClass] as Object[]))
|
|
||||||
props.eachWithIndex { p,i ->
|
|
||||||
if(i < 6) {
|
|
||||||
if(p.isAssociation()) { %>
|
|
||||||
<th>${p.naturalName}</th>
|
|
||||||
<% } else { %>
|
|
||||||
<g:sortableColumn property="${p.name}" title="${p.naturalName}" />
|
|
||||||
<% } } } %>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<g:each in="\${${propertyName}List}" status="i" var="${propertyName}">
|
|
||||||
<tr class="\${(i % 2) == 0 ? 'odd' : 'even'}">
|
|
||||||
<% props.eachWithIndex { p,i ->
|
|
||||||
if(i == 0) { %>
|
|
||||||
<td><g:link action="show" id="\${${propertyName}.id}">\${fieldValue(bean:${propertyName}, field:'${p.name}')}</g:link></td>
|
|
||||||
<% } else if(i < 6) { %>
|
|
||||||
<td>\${fieldValue(bean:${propertyName}, field:'${p.name}')}</td>
|
|
||||||
<% } } %>
|
|
||||||
</tr>
|
|
||||||
</g:each>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="paginateButtons">
|
|
||||||
<g:paginate total="\${${propertyName}Total}" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,190 +0,0 @@
|
|||||||
<% if(property.type == Boolean.class || property.type == boolean.class)
|
|
||||||
out << renderBooleanEditor(domainClass,property)
|
|
||||||
else if(Number.class.isAssignableFrom(property.type) || (property.type.isPrimitive() && property.type != boolean.class))
|
|
||||||
out << renderNumberEditor(domainClass,property)
|
|
||||||
else if(property.type == String.class)
|
|
||||||
out << renderStringEditor(domainClass,property)
|
|
||||||
else if(property.type == Date.class || property.type == java.sql.Date.class || property.type == java.sql.Time.class)
|
|
||||||
out << renderDateEditor(domainClass,property)
|
|
||||||
else if(property.type == Calendar.class)
|
|
||||||
out << renderDateEditor(domainClass,property)
|
|
||||||
else if(property.type == URL.class)
|
|
||||||
out << renderStringEditor(domainClass,property)
|
|
||||||
else if(property.isEnum())
|
|
||||||
out << renderEnumEditor(domainClass,property)
|
|
||||||
else if(property.type == TimeZone.class)
|
|
||||||
out << renderSelectTypeEditor("timeZone",domainClass,property)
|
|
||||||
else if(property.type == Locale.class)
|
|
||||||
out << renderSelectTypeEditor("locale",domainClass,property)
|
|
||||||
else if(property.type == Currency.class)
|
|
||||||
out << renderSelectTypeEditor("currency",domainClass,property)
|
|
||||||
else if(property.type==([] as Byte[]).class) //TODO: Bug in groovy means i have to do this :(
|
|
||||||
out << renderByteArrayEditor(domainClass,property)
|
|
||||||
else if(property.type==([] as byte[]).class) //TODO: Bug in groovy means i have to do this :(
|
|
||||||
out << renderByteArrayEditor(domainClass,property)
|
|
||||||
else if(property.manyToOne || property.oneToOne)
|
|
||||||
out << renderManyToOne(domainClass,property)
|
|
||||||
else if((property.oneToMany && !property.bidirectional) || (property.manyToMany && property.isOwningSide()))
|
|
||||||
out << renderManyToMany(domainClass, property)
|
|
||||||
else if(property.oneToMany)
|
|
||||||
out << renderOneToMany(domainClass,property)
|
|
||||||
|
|
||||||
private renderEnumEditor(domainClass,property) {
|
|
||||||
if(property.isEnum()) {
|
|
||||||
return "<g:select from=\"\${${property.type.name}?.values()}\" value=\"\${${domainInstance}?.${property.name}}\" name=\"${property.name}\" ${renderNoSelection(property)}></g:select>"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private renderStringEditor(domainClass, property) {
|
|
||||||
if(!cp) {
|
|
||||||
return "<input type=\"text\" name=\"${property.name}\" id=\"${property.name}\" value=\"\${fieldValue(bean:${domainInstance},field:'${property.name}')}\" />"
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if("textarea" == cp.widget || (cp.maxSize > 250 && !cp.password && !cp.inList)) {
|
|
||||||
return "<textarea rows=\"5\" cols=\"40\" name=\"${property.name}\">\${fieldValue(bean:${domainInstance}, field:'${property.name}')}</textarea>"
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(cp.inList) {
|
|
||||||
def sb = new StringBuffer('<g:select ')
|
|
||||||
sb << "id=\"${property.name}\" name=\"${property.name}\" from=\"\${${domainInstance}.constraints.${property.name}.inList}\" value=\"\${${domainInstance}.${property?.name}}\" ${renderNoSelection(property)}>"
|
|
||||||
sb << '</g:select>'
|
|
||||||
return sb.toString()
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
def sb = new StringBuffer('<input ')
|
|
||||||
cp.password ? sb << 'type="password" ' : sb << 'type="text" '
|
|
||||||
if(!cp.editable) sb << 'readonly="readonly" '
|
|
||||||
if(cp.maxSize) sb << "maxlength=\"${cp.maxSize}\" "
|
|
||||||
sb << "id=\"${property.name}\" name=\"${property.name}\" value=\"\${fieldValue(bean:${domainInstance},field:'${property.name}')}\"/>"
|
|
||||||
return sb.toString()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private renderByteArrayEditor(domainClass,property) {
|
|
||||||
return "<input type=\"file\" id=\"${property.name}\" name=\"${property.name}\" />"
|
|
||||||
}
|
|
||||||
|
|
||||||
private renderManyToOne(domainClass,property) {
|
|
||||||
if(property.association) {
|
|
||||||
return "<g:select optionKey=\"id\" from=\"\${${property.type.name}.list()}\" name=\"${property.name}.id\" value=\"\${${domainInstance}?.${property.name}?.id}\" ${renderNoSelection(property)}></g:select>"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private renderManyToMany(domainClass,property) {
|
|
||||||
def sw = new StringWriter()
|
|
||||||
def pw = new PrintWriter(sw)
|
|
||||||
|
|
||||||
pw.println "<g:select name=\"${property.name}\""
|
|
||||||
pw.println "from=\"\${${property.referencedDomainClass.fullName}.list()}\""
|
|
||||||
pw.println "size=\"5\" multiple=\"yes\" optionKey=\"id\""
|
|
||||||
pw.println "value=\"\${${domainInstance}?.${property.name}}\" />"
|
|
||||||
|
|
||||||
return sw.toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
private renderOneToMany(domainClass,property) {
|
|
||||||
def sw = new StringWriter()
|
|
||||||
def pw = new PrintWriter(sw)
|
|
||||||
pw.println()
|
|
||||||
pw.println "<ul>"
|
|
||||||
pw.println "<g:each var=\"${property.name[0]}\" in=\"\${${domainInstance}?.${property.name}?}\">"
|
|
||||||
pw.println " <li><g:link controller=\"${property.referencedDomainClass.propertyName}\" action=\"show\" id=\"\${${property.name[0]}.id}\">\${${property.name[0]}?.encodeAsHTML()}</g:link></li>"
|
|
||||||
pw.println "</g:each>"
|
|
||||||
pw.println "</ul>"
|
|
||||||
pw.println "<g:link controller=\"${property.referencedDomainClass.propertyName}\" params=\"['${domainClass.propertyName}.id':${domainInstance}?.id]\" action=\"create\">Add ${property.referencedDomainClass.shortName}</g:link>"
|
|
||||||
return sw.toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
private renderNumberEditor(domainClass,property) {
|
|
||||||
if(!cp) {
|
|
||||||
if(property.type == Byte.class) {
|
|
||||||
return "<g:select from=\"\${-128..127}\" name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\"></g:select>"
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return "<input type=\"text\" id=\"${property.name}\" name=\"${property.name}\" value=\"\${fieldValue(bean:${domainInstance},field:'${property.name}')}\" />"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(cp.range) {
|
|
||||||
return "<g:select from=\"\${${cp.range.from}..${cp.range.to}}\" id=\"${property.name}\" name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\" ${renderNoSelection(property)}></g:select>"
|
|
||||||
}
|
|
||||||
else if(cp.inList) {
|
|
||||||
def sb = new StringBuffer('<g:select ')
|
|
||||||
sb << "id=\"${property.name}\" name=\"${property.name}\" from=\"\${${domainClass.propertyName}.constraints.${property.name}.inList}\" value=\"\${${domainClass.propertyName}.${property?.name}}\" ${renderNoSelection(property)}>"
|
|
||||||
sb << '</g:select>'
|
|
||||||
return sb.toString()
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return "<input type=\"text\" id=\"${property.name}\" name=\"${property.name}\" value=\"\${fieldValue(bean:${domainInstance},field:'${property.name}')}\" />"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private renderBooleanEditor(domainClass,property) {
|
|
||||||
if(!cp) {
|
|
||||||
return "<g:checkBox name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\"></g:checkBox>"
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
def buf = new StringBuffer('<g:checkBox ')
|
|
||||||
if(cp.widget) buf << "widget=\"${cp.widget}\"";
|
|
||||||
|
|
||||||
buf << "name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\" "
|
|
||||||
cp.attributes.each { k,v ->
|
|
||||||
buf << "${k}=\"${v}\" "
|
|
||||||
}
|
|
||||||
buf << '></g:checkBox>'
|
|
||||||
return buf.toString()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private renderDateEditor(domainClass,property) {
|
|
||||||
def precision = property.type == java.sql.Date ? 'day' : 'minute';
|
|
||||||
if(!cp) {
|
|
||||||
return "<g:datePicker name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\" precision=\"${precision}\"></g:datePicker>"
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(!cp.editable) {
|
|
||||||
return "\${${domainInstance}?.${property.name}?.toString()}"
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
def buf = new StringBuffer('<g:datePicker ')
|
|
||||||
if(cp.widget) buf << "widget=\"${cp.widget}\" "
|
|
||||||
if(cp.format) buf << "format=\"${cp.format}\" "
|
|
||||||
cp.attributes.each { k,v ->
|
|
||||||
buf << "${k}=\"${v}\" "
|
|
||||||
}
|
|
||||||
buf << "name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\" precision=\"${precision}\" ${renderNoSelection(property)}></g:datePicker>"
|
|
||||||
return buf.toString()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private renderSelectTypeEditor(type,domainClass,property) {
|
|
||||||
if(!cp) {
|
|
||||||
return "<g:${type}Select name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\"></g:${type}Select>"
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
def buf = new StringBuffer("<g:${type}Select ")
|
|
||||||
if(cp.widget) buf << "widget=\"${cp.widget}\" ";
|
|
||||||
cp.attributes.each { k,v ->
|
|
||||||
buf << "${k}=\"${v}\" "
|
|
||||||
}
|
|
||||||
buf << "name=\"${property.name}\" value=\"\${${domainInstance}?.${property.name}}\" ${renderNoSelection(property)}></g:${type}Select>"
|
|
||||||
return buf.toString()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private renderNoSelection(property) {
|
|
||||||
if(property.optional) {
|
|
||||||
if(property.manyToOne || property.oneToOne) {
|
|
||||||
return "noSelection=\"['null':'']\""
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return "noSelection=\"['':'']\""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
%>
|
|
@ -1,64 +0,0 @@
|
|||||||
<% import org.codehaus.groovy.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor as Events %>
|
|
||||||
<%=packageName%>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
|
||||||
<meta name="layout" content="main" />
|
|
||||||
<title>Show ${className}</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="nav">
|
|
||||||
<span class="menuButton"><a class="home" href="\${resource(dir:'')}">Home</a></span>
|
|
||||||
<span class="menuButton"><g:link class="list" action="list">${className} List</g:link></span>
|
|
||||||
<span class="menuButton"><g:link class="create" action="create">New ${className}</g:link></span>
|
|
||||||
</div>
|
|
||||||
<div class="body">
|
|
||||||
<h1>Show ${className}</h1>
|
|
||||||
<g:if test="\${flash.message}">
|
|
||||||
<div class="message">\${flash.message}</div>
|
|
||||||
</g:if>
|
|
||||||
<div class="dialog">
|
|
||||||
<table>
|
|
||||||
<tbody>
|
|
||||||
|
|
||||||
<%
|
|
||||||
excludedProps = ['version',
|
|
||||||
Events.ONLOAD_EVENT,
|
|
||||||
Events.BEFORE_DELETE_EVENT,
|
|
||||||
Events.BEFORE_INSERT_EVENT,
|
|
||||||
Events.BEFORE_UPDATE_EVENT]
|
|
||||||
props = domainClass.properties.findAll { !excludedProps.contains(it.name) }
|
|
||||||
Collections.sort(props, comparator.constructors[0].newInstance([domainClass] as Object[]))
|
|
||||||
props.each { p -> %>
|
|
||||||
<tr class="prop">
|
|
||||||
<td valign="top" class="name">${p.naturalName}:</td>
|
|
||||||
<% if(p.isEnum()) { %>
|
|
||||||
<td valign="top" class="value">\${${propertyName}?.${p.name}?.encodeAsHTML()}</td>
|
|
||||||
<% } else if(p.oneToMany || p.manyToMany) { %>
|
|
||||||
<td valign="top" style="text-align:left;" class="value">
|
|
||||||
<ul>
|
|
||||||
<g:each var="${p.name[0]}" in="\${${propertyName}.${p.name}}">
|
|
||||||
<li><g:link controller="${p.referencedDomainClass?.propertyName}" action="show" id="\${${p.name[0]}.id}">\${${p.name[0]}?.encodeAsHTML()}</g:link></li>
|
|
||||||
</g:each>
|
|
||||||
</ul>
|
|
||||||
</td>
|
|
||||||
<% } else if(p.manyToOne || p.oneToOne) { %>
|
|
||||||
<td valign="top" class="value"><g:link controller="${p.referencedDomainClass?.propertyName}" action="show" id="\${${propertyName}?.${p.name}?.id}">\${${propertyName}?.${p.name}?.encodeAsHTML()}</g:link></td>
|
|
||||||
<% } else { %>
|
|
||||||
<td valign="top" class="value">\${fieldValue(bean:${propertyName}, field:'${p.name}')}</td>
|
|
||||||
<% } %>
|
|
||||||
</tr>
|
|
||||||
<% } %>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="buttons">
|
|
||||||
<g:form>
|
|
||||||
<input type="hidden" name="id" value="\${${propertyName}?.id}" />
|
|
||||||
<span class="button"><g:actionSubmit class="edit" value="Edit" /></span>
|
|
||||||
<span class="button"><g:actionSubmit class="delete" onclick="return confirm('Are you sure?');" value="Delete" /></span>
|
|
||||||
</g:form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,107 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<web-app version="2.4"
|
|
||||||
xmlns="http://java.sun.com/xml/ns/j2ee"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
|
|
||||||
<display-name>/@grails.project.key@</display-name>
|
|
||||||
|
|
||||||
|
|
||||||
<context-param>
|
|
||||||
<param-name>contextConfigLocation</param-name>
|
|
||||||
<param-value>/WEB-INF/applicationContext.xml</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
<context-param>
|
|
||||||
<param-name>webAppRootKey</param-name>
|
|
||||||
<param-value>@grails.project.key@</param-value>
|
|
||||||
</context-param>
|
|
||||||
|
|
||||||
<filter>
|
|
||||||
<filter-name>sitemesh</filter-name>
|
|
||||||
<filter-class>org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter</filter-class>
|
|
||||||
</filter>
|
|
||||||
|
|
||||||
<filter>
|
|
||||||
<filter-name>charEncodingFilter</filter-name>
|
|
||||||
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
|
|
||||||
<init-param>
|
|
||||||
<param-name>targetBeanName</param-name>
|
|
||||||
<param-value>characterEncodingFilter</param-value>
|
|
||||||
</init-param>
|
|
||||||
<init-param>
|
|
||||||
<param-name>targetFilterLifecycle</param-name>
|
|
||||||
<param-value>true</param-value>
|
|
||||||
</init-param>
|
|
||||||
</filter>
|
|
||||||
|
|
||||||
<filter-mapping>
|
|
||||||
<filter-name>charEncodingFilter</filter-name>
|
|
||||||
<url-pattern>/*</url-pattern>
|
|
||||||
</filter-mapping>
|
|
||||||
|
|
||||||
<filter-mapping>
|
|
||||||
<filter-name>sitemesh</filter-name>
|
|
||||||
<url-pattern>/*</url-pattern>
|
|
||||||
</filter-mapping>
|
|
||||||
|
|
||||||
<listener>
|
|
||||||
<!-- There is a problem with logging in production for Grails 1.1.1. We cannot get it to work
|
|
||||||
when deployed to Tomcat. To get logging working is to create this customer web.xml changing
|
|
||||||
the Log4jConfigListener to Spring and providing our own log4j.properties. When upgrading
|
|
||||||
Grails, we need to revisit this problem. (ralam, jan 6, 2010) -->
|
|
||||||
<!--listener-class>org.codehaus.groovy.grails.web.util.Log4jConfigListener</listener-class-->
|
|
||||||
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
|
|
||||||
</listener>
|
|
||||||
|
|
||||||
<listener>
|
|
||||||
<listener-class>org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener</listener-class>
|
|
||||||
</listener>
|
|
||||||
|
|
||||||
<!-- Grails dispatcher servlet -->
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>grails</servlet-name>
|
|
||||||
<servlet-class>org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet</servlet-class>
|
|
||||||
<load-on-startup>1</load-on-startup>
|
|
||||||
</servlet>
|
|
||||||
|
|
||||||
<!-- The Groovy Server Pages servlet -->
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>gsp</servlet-name>
|
|
||||||
<servlet-class>org.codehaus.groovy.grails.web.pages.GroovyPagesServlet</servlet-class>
|
|
||||||
</servlet>
|
|
||||||
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>gsp</servlet-name>
|
|
||||||
<url-pattern>*.gsp</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
|
|
||||||
<welcome-file-list>
|
|
||||||
<!--
|
|
||||||
The order of the welcome pages is important. JBoss deployment will
|
|
||||||
break if index.gsp is first in the list.
|
|
||||||
-->
|
|
||||||
<welcome-file>index.html</welcome-file>
|
|
||||||
<welcome-file>index.jsp</welcome-file>
|
|
||||||
<welcome-file>index.gsp</welcome-file>
|
|
||||||
</welcome-file-list>
|
|
||||||
|
|
||||||
<jsp-config>
|
|
||||||
<taglib>
|
|
||||||
<taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
|
|
||||||
<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
|
|
||||||
</taglib>
|
|
||||||
<taglib>
|
|
||||||
<taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
|
|
||||||
<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
|
|
||||||
</taglib>
|
|
||||||
<taglib>
|
|
||||||
<taglib-uri>http://www.springframework.org/tags</taglib-uri>
|
|
||||||
<taglib-location>/WEB-INF/tld/spring.tld</taglib-location>
|
|
||||||
</taglib>
|
|
||||||
<taglib>
|
|
||||||
<taglib-uri>http://grails.codehaus.org/tags</taglib-uri>
|
|
||||||
<taglib-location>/WEB-INF/tld/grails.tld</taglib-location>
|
|
||||||
</taglib>
|
|
||||||
</jsp-config>
|
|
||||||
|
|
||||||
</web-app>
|
|
0
bigbluebutton-web/test/resources/3-07_CPAC_Straw_Poll.ppt
Normal file → Executable file
0
bigbluebutton-web/test/resources/3-07_CPAC_Straw_Poll.ppt
Normal file → Executable file
Binary file not shown.
0
bigbluebutton-web/test/resources/CaratulasManualesNutrisol.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/CaratulasManualesNutrisol.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/Energy_and_Climate_Courses.xls
Normal file → Executable file
0
bigbluebutton-web/test/resources/Energy_and_Climate_Courses.xls
Normal file → Executable file
0
bigbluebutton-web/test/resources/GoodPresentation.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/GoodPresentation.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/OneBigPagePresentation.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/OneBigPagePresentation.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/OnePage.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/OnePage.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/PresentationsTips.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/PresentationsTips.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/SeveralBigPagesPresentation.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/SeveralBigPagesPresentation.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/big-lots-of-objects.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/big-lots-of-objects.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/big.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/big.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/blankpresentation.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/blankpresentation.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/folb_apha.ppt
Normal file → Executable file
0
bigbluebutton-web/test/resources/folb_apha.ppt
Normal file → Executable file
0
bigbluebutton-web/test/resources/sample-presentation.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/sample-presentation.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/sampleslide.jpeg
Normal file → Executable file
0
bigbluebutton-web/test/resources/sampleslide.jpeg
Normal file → Executable file
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
0
bigbluebutton-web/test/resources/secure-slides.pdf
Normal file → Executable file
0
bigbluebutton-web/test/resources/secure-slides.pdf
Normal file → Executable file
@ -1,19 +0,0 @@
|
|||||||
package org.bigbluebutton.api;
|
|
||||||
|
|
||||||
class UtilTest extends GroovyTestCase {
|
|
||||||
|
|
||||||
void testPresentationFilename() {
|
|
||||||
String filename = Util.cleanPresentationFilename("mypresentation%#@foo.txt");
|
|
||||||
assertTrue(filename.equals("mypresentation---foo.txt"))
|
|
||||||
}
|
|
||||||
|
|
||||||
void testPresentationFilenameThatBeginsWithDot() {
|
|
||||||
String filename = Util.cleanPresentationFilename(".mypresentation%#@foo.txt");
|
|
||||||
assertTrue(filename.equals("mypresentation---foo.txt"))
|
|
||||||
}
|
|
||||||
|
|
||||||
void testPresentationFilenameWithMultipleDot() {
|
|
||||||
String filename = Util.cleanPresentationFilename(".mypresentation%#@foo.txt.png");
|
|
||||||
assertTrue(filename.equals("mypresentation---foo.txt.png"))
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
pushd .
|
|
||||||
|
|
||||||
# stop
|
|
||||||
sudo /etc/init.d/tomcat6 stop
|
|
||||||
|
|
||||||
# build
|
|
||||||
cd ~/dev/source/bigbluebutton/bigbluebutton-web
|
|
||||||
gradle resolveDeps
|
|
||||||
|
|
||||||
# run
|
|
||||||
ant
|
|
||||||
|
|
||||||
# return to working dir
|
|
||||||
popd
|
|
@ -1 +0,0 @@
|
|||||||
gradle resolveDeps && ant
|
|
48
bigbluebutton-web/web-app/WEB-INF/applicationContext.xml
Normal file → Executable file
48
bigbluebutton-web/web-app/WEB-INF/applicationContext.xml
Normal file → Executable file
@ -1,42 +1,34 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
|
||||||
|
|
||||||
<bean id="grailsApplication" class="org.codehaus.groovy.grails.commons.GrailsApplicationFactoryBean">
|
<bean id="grailsApplication" class="org.codehaus.groovy.grails.commons.GrailsApplicationFactoryBean">
|
||||||
<description>Grails application factory bean</description>
|
<description>Grails application factory bean</description>
|
||||||
<property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
|
<property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
|
||||||
<property name="grailsResourceLoader" ref="grailsResourceLoader" />
|
<property name="grailsResourceLoader" ref="grailsResourceLoader" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="pluginManager" class="org.codehaus.groovy.grails.plugins.GrailsPluginManagerFactoryBean">
|
<bean id="pluginManager" class="org.codehaus.groovy.grails.plugins.GrailsPluginManagerFactoryBean">
|
||||||
<description>A bean that manages Grails plugins</description>
|
<description>A bean that manages Grails plugins</description>
|
||||||
<property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
|
<property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
|
||||||
<property name="application" ref="grailsApplication" />
|
<property name="application" ref="grailsApplication" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="grailsConfigurator" class="org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator">
|
<bean id="grailsConfigurator" class="org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator">
|
||||||
<constructor-arg>
|
<constructor-arg>
|
||||||
<ref bean="grailsApplication" />
|
<ref bean="grailsApplication" />
|
||||||
</constructor-arg>
|
</constructor-arg>
|
||||||
<property name="pluginManager" ref="pluginManager" />
|
<property name="pluginManager" ref="pluginManager" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="grailsResourceLoader" class="org.codehaus.groovy.grails.commons.GrailsResourceLoaderFactoryBean">
|
<bean id="grailsResourceLoader" class="org.codehaus.groovy.grails.commons.GrailsResourceLoaderFactoryBean" />
|
||||||
<property name="grailsResourceHolder" ref="grailsResourceHolder" />
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<bean id="grailsResourceHolder" scope="prototype" class="org.codehaus.groovy.grails.commons.spring.GrailsResourceHolder">
|
<bean id="characterEncodingFilter" class="org.springframework.web.filter.CharacterEncodingFilter">
|
||||||
<property name="resources">
|
<property name="encoding">
|
||||||
<value>classpath*:**/grails-app/**/*.groovy</value>
|
<value>utf-8</value>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="characterEncodingFilter"
|
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean" />
|
||||||
class="org.springframework.web.filter.CharacterEncodingFilter">
|
|
||||||
<property name="encoding">
|
|
||||||
<value>utf-8</value>
|
|
||||||
</property>
|
|
||||||
</bean>
|
|
||||||
</beans>
|
</beans>
|
2
bigbluebutton-web/web-app/WEB-INF/sitemesh.xml
Normal file → Executable file
2
bigbluebutton-web/web-app/WEB-INF/sitemesh.xml
Normal file → Executable file
@ -5,7 +5,7 @@
|
|||||||
<parser content-type="text/html;charset=ISO-8859-1"
|
<parser content-type="text/html;charset=ISO-8859-1"
|
||||||
class="org.codehaus.groovy.grails.web.sitemesh.GrailsHTMLPageParser" />
|
class="org.codehaus.groovy.grails.web.sitemesh.GrailsHTMLPageParser" />
|
||||||
<parser content-type="text/html;charset=UTF-8"
|
<parser content-type="text/html;charset=UTF-8"
|
||||||
class="org.codehaus.groovy.grails.web.sitemesh.GrailsHTMLPageParser" />
|
class="org.codehaus.groovy.grails.web.sitemesh.GrailsHTMLPageParser" />
|
||||||
</page-parsers>
|
</page-parsers>
|
||||||
|
|
||||||
<decorator-mappers>
|
<decorator-mappers>
|
||||||
|
25
bigbluebutton-web/web-app/WEB-INF/tld/c.tld
Normal file → Executable file
25
bigbluebutton-web/web-app/WEB-INF/tld/c.tld
Normal file → Executable file
@ -1,13 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
|
||||||
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
|
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
|
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
|
||||||
version="2.0">
|
version="2.1">
|
||||||
|
|
||||||
<description>JSTL 1.1 core library</description>
|
<description>JSTL 1.2 core library</description>
|
||||||
<display-name>JSTL core</display-name>
|
<display-name>JSTL core</display-name>
|
||||||
<tlib-version>1.1</tlib-version>
|
<tlib-version>1.2</tlib-version>
|
||||||
<short-name>c</short-name>
|
<short-name>c</short-name>
|
||||||
<uri>http://java.sun.com/jsp/jstl/core</uri>
|
<uri>http://java.sun.com/jsp/jstl/core</uri>
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ not the body content should be processed.
|
|||||||
<description>
|
<description>
|
||||||
Name of the exported scoped variable for the
|
Name of the exported scoped variable for the
|
||||||
resulting value of the test condition. The type
|
resulting value of the test condition. The type
|
||||||
of the scoped variable is Boolean.
|
of the scoped variable is Boolean.
|
||||||
</description>
|
</description>
|
||||||
<name>var</name>
|
<name>var</name>
|
||||||
<required>false</required>
|
<required>false</required>
|
||||||
@ -174,6 +174,9 @@ Collection of items to iterate over.
|
|||||||
<required>false</required>
|
<required>false</required>
|
||||||
<rtexprvalue>true</rtexprvalue>
|
<rtexprvalue>true</rtexprvalue>
|
||||||
<type>java.lang.Object</type>
|
<type>java.lang.Object</type>
|
||||||
|
<deferred-value>
|
||||||
|
<type>java.lang.Object</type>
|
||||||
|
</deferred-value>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute>
|
<attribute>
|
||||||
<description>
|
<description>
|
||||||
@ -253,6 +256,9 @@ String of tokens to iterate over.
|
|||||||
<required>true</required>
|
<required>true</required>
|
||||||
<rtexprvalue>true</rtexprvalue>
|
<rtexprvalue>true</rtexprvalue>
|
||||||
<type>java.lang.String</type>
|
<type>java.lang.String</type>
|
||||||
|
<deferred-value>
|
||||||
|
<type>java.lang.String</type>
|
||||||
|
</deferred-value>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute>
|
<attribute>
|
||||||
<description>
|
<description>
|
||||||
@ -322,7 +328,7 @@ visibility.
|
|||||||
<tag>
|
<tag>
|
||||||
<description>
|
<description>
|
||||||
Like <%= ... >, but for expressions.
|
Like <%= ... >, but for expressions.
|
||||||
</description>
|
</description>
|
||||||
<name>out</name>
|
<name>out</name>
|
||||||
<tag-class>org.apache.taglibs.standard.tag.rt.core.OutTag</tag-class>
|
<tag-class>org.apache.taglibs.standard.tag.rt.core.OutTag</tag-class>
|
||||||
<body-content>JSP</body-content>
|
<body-content>JSP</body-content>
|
||||||
@ -467,6 +473,9 @@ Expression to be evaluated.
|
|||||||
<name>value</name>
|
<name>value</name>
|
||||||
<required>false</required>
|
<required>false</required>
|
||||||
<rtexprvalue>true</rtexprvalue>
|
<rtexprvalue>true</rtexprvalue>
|
||||||
|
<deferred-value>
|
||||||
|
<type>java.lang.Object</type>
|
||||||
|
</deferred-value>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute>
|
<attribute>
|
||||||
<description>
|
<description>
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user