- 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
|
||||
#Thu Jun 06 12:32:30 PDT 2013
|
||||
app.grails.version=1.3.9
|
||||
#Tue Feb 25 00:47:48 UTC 2014
|
||||
app.grails.version=2.3.6
|
||||
app.name=bigbluebutton
|
||||
app.servlet.version=2.4
|
||||
app.version=0.70dev
|
||||
plugins.tomcat=1.3.9
|
||||
app.servlet.version=3.0
|
||||
app.version=0.1
|
||||
|
@ -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'
|
||||
usePlugin 'eclipse'
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'eclipse'
|
||||
|
||||
task resolveDeps(dependsOn: configurations.default.buildArtifacts, type: Copy) {
|
||||
task resolveDeps(type: Copy) {
|
||||
into('lib')
|
||||
from configurations.default
|
||||
from configurations.default.allArtifacts*.file
|
||||
from configurations.default.allArtifacts.file
|
||||
}
|
||||
|
||||
repositories {
|
||||
@ -43,7 +43,13 @@ dependencies {
|
||||
compile 'commons-lang:commons-lang:2.5'
|
||||
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
|
||||
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 {
|
||||
def jmsContainer
|
||||
|
||||
def init = { servletContext ->
|
||||
log.debug "Bootstrapping bbb-web"
|
||||
}
|
||||
|
||||
def destroy = {
|
||||
}
|
||||
def init = { servletContext ->
|
||||
}
|
||||
def destroy = {
|
||||
}
|
||||
}
|
||||
|
@ -1,35 +1,72 @@
|
||||
/**
|
||||
* 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/>.
|
||||
*
|
||||
*/
|
||||
grails.servlet.version = "3.0" // Change depending on target container compliance (2.5 or 3.0)
|
||||
grails.project.class.dir = "target/classes"
|
||||
grails.project.test.class.dir = "target/test-classes"
|
||||
grails.project.test.reports.dir = "target/test-reports"
|
||||
grails.project.work.dir = "target/work"
|
||||
grails.project.target.level = 1.6
|
||||
grails.project.source.level = 1.6
|
||||
//grails.project.war.file = "target/${appName}-${appVersion}.war"
|
||||
|
||||
grails.project.fork = [
|
||||
// configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required
|
||||
// compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
|
||||
|
||||
// This closure is to enable logging in production.
|
||||
// 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
|
||||
// overridden from what's in src/templates/war/web.xml.
|
||||
// (ralam, jan 7, 2010)
|
||||
grails.war.resources = {stagingDir, args ->
|
||||
//println '*** Copying our custom web.xml and log4j.properties as workaround for logging problem. ***'
|
||||
//println '*** Copying our custom web.xml as workaround for logging problem. ***'
|
||||
//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. ***'
|
||||
copy(file: "grails-app/conf/log4j.properties", tofile: "${stagingDir}/WEB-INF/classes/log4j.properties")
|
||||
// configure settings for the test-app JVM, uses the daemon by default
|
||||
test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
|
||||
// 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
|
||||
console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
|
||||
]
|
||||
|
||||
grails.project.dependency.resolver = "maven" // or ivy
|
||||
grails.project.dependency.resolution = {
|
||||
// inherit Grails' default dependencies
|
||||
inherits("global") {
|
||||
// specify dependency exclusions here; for example, uncomment this to disable ehcache:
|
||||
// excludes 'ehcache'
|
||||
}
|
||||
log "error" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
|
||||
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 @@
|
||||
/**
|
||||
* 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/>.
|
||||
*
|
||||
*/
|
||||
|
||||
// locations to search for config files that get merged into the main config
|
||||
// config files can either be Java properties files or ConfigSlurper scripts
|
||||
// locations to search for config files that get merged into the main config;
|
||||
// config files can be ConfigSlurper scripts, Java properties files, or classes
|
||||
// in the classpath in ConfigSlurper format
|
||||
|
||||
// grails.config.locations = [ "classpath:${appName}-config.properties",
|
||||
// "classpath:${appName}-config.groovy",
|
||||
// "file:${userHome}/.grails/${appName}-config.properties",
|
||||
// "file:${userHome}/.grails/${appName}-config.groovy"]
|
||||
|
||||
grails.config.locations = [ "classpath:bigbluebutton.properties"]
|
||||
// grails.config.locations = [ "classpath:bigbluebutton.properties"]
|
||||
// if(System.properties["${appName}.config.location"]) {
|
||||
// if (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.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.config.locations = [ "classpath:bigbluebutton.properties"]
|
||||
|
||||
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
|
||||
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 {
|
||||
development {
|
||||
grails.serverURL = "http://localhost:8080"
|
||||
}
|
||||
production {
|
||||
grails.serverURL = "http://localhost:8080"
|
||||
}
|
||||
test {
|
||||
}
|
||||
grails.logging.jul.usebridge = true
|
||||
}
|
||||
production {
|
||||
grails.logging.jul.usebridge = false
|
||||
// TODO: grails.serverURL = "http://www.changeme.com"
|
||||
}
|
||||
}
|
||||
|
||||
// Use own log4j.properties for logging as it seems there is a
|
||||
// problem with logging on production using the DSL. This works
|
||||
// ok when ran using "grails run-war"
|
||||
// (ralam - jan 7, 2010)
|
||||
|
||||
//log4j configuration
|
||||
// log4j configuration
|
||||
log4j = {
|
||||
appenders {
|
||||
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')
|
||||
}
|
||||
// Example of changing the log pattern for the default console appender:
|
||||
//
|
||||
//appenders {
|
||||
// console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
|
||||
//}
|
||||
|
||||
root {
|
||||
warn 'logfileAppender', 'consoleAppender'
|
||||
additivity = true
|
||||
}
|
||||
|
||||
warn 'org.codehaus.groovy.grails.web.servlet', // controllers
|
||||
'org.codehaus.groovy.grails.web.pages', // GSP
|
||||
'org.codehaus.groovy.grails.web.sitemesh', // layouts
|
||||
'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
|
||||
'org.codehaus.groovy.grails.web.mapping', // URL mapping
|
||||
'org.codehaus.groovy.grails.commons', // core / classloading
|
||||
'org.codehaus.groovy.grails.plugins', // plugins
|
||||
'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
|
||||
'org.springframework',
|
||||
'org.hibernate',
|
||||
'org.mortbay.log'
|
||||
debug 'grails.app',
|
||||
'org.bigbluebutton'
|
||||
|
||||
// additivity.StackTrace=false
|
||||
error 'org.codehaus.groovy.grails.web.servlet', // controllers
|
||||
'org.codehaus.groovy.grails.web.pages', // GSP
|
||||
'org.codehaus.groovy.grails.web.sitemesh', // layouts
|
||||
'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
|
||||
'org.codehaus.groovy.grails.web.mapping', // URL mapping
|
||||
'org.codehaus.groovy.grails.commons', // core / classloading
|
||||
'org.codehaus.groovy.grails.plugins', // plugins
|
||||
'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
|
||||
'org.springframework',
|
||||
'org.hibernate',
|
||||
'net.sf.ehcache.hibernate'
|
||||
debug 'org.bigbluebutton'
|
||||
}
|
||||
|
||||
|
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 {
|
||||
pooled = true
|
||||
driverClassName = "org.hsqldb.jdbcDriver"
|
||||
driverClassName = "org.h2.Driver"
|
||||
username = "sa"
|
||||
password = ""
|
||||
}
|
||||
hibernate {
|
||||
cache.use_second_level_cache = true
|
||||
cache.use_query_cache = true
|
||||
cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider'
|
||||
cache.use_query_cache = false
|
||||
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
|
||||
environments {
|
||||
development {
|
||||
dataSource {
|
||||
dbCreate = "create-drop" // one of 'create', 'create-drop','update'
|
||||
url = "jdbc:hsqldb:mem:devDB"
|
||||
dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
|
||||
url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
|
||||
}
|
||||
}
|
||||
test {
|
||||
dataSource {
|
||||
dbCreate = "update"
|
||||
url = "jdbc:hsqldb:mem:testDb"
|
||||
url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
|
||||
}
|
||||
}
|
||||
production {
|
||||
dataSource {
|
||||
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 @@
|
||||
/**
|
||||
* 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 UrlMappings {
|
||||
static mappings = {
|
||||
|
||||
"/presentation/upload"(controller:"presentation") {
|
||||
action = [GET:'show', POST:'upload', DELETE:'delete']
|
||||
}
|
||||
static mappings = {
|
||||
"/presentation/upload"(controller:"presentation") {
|
||||
action = [GET:'show', POST:'upload', DELETE:'delete']
|
||||
}
|
||||
|
||||
"/presentation/test-convert"(controller:"presentation") {
|
||||
action = [GET:'testConversion']
|
||||
}
|
||||
"/presentation/test-convert"(controller:"presentation") {
|
||||
action = [GET:'testConversion']
|
||||
}
|
||||
|
||||
"/presentation/$conference/$room/$presentation_name/slides"(controller:"presentation") {
|
||||
action = [GET:'numberOfSlides']
|
||||
}
|
||||
"/presentation/$conference/$room/$presentation_name/slides"(controller:"presentation") {
|
||||
action = [GET:'numberOfSlides']
|
||||
}
|
||||
|
||||
"/presentation/$conference/$room/$presentation_name/slide/$id"(controller:"presentation") {
|
||||
action = [GET:'showSlide']
|
||||
}
|
||||
"/presentation/$conference/$room/$presentation_name/slide/$id"(controller:"presentation") {
|
||||
action = [GET:'showSlide']
|
||||
}
|
||||
|
||||
"/presentation/$conference/$room/$presentation_name/thumbnails"(controller:"presentation") {
|
||||
action = [GET:'numberOfThumbnails']
|
||||
}
|
||||
"/presentation/$conference/$room/$presentation_name/thumbnails"(controller:"presentation") {
|
||||
action = [GET:'numberOfThumbnails']
|
||||
}
|
||||
|
||||
"/presentation/$conference/$room/$presentation_name/thumbnail/$id"(controller:"presentation") {
|
||||
action = [GET:'showThumbnail']
|
||||
}
|
||||
"/presentation/$conference/$room/$presentation_name/thumbnail/$id"(controller:"presentation") {
|
||||
action = [GET:'showThumbnail']
|
||||
}
|
||||
|
||||
"/presentation/$conference/$room/$presentation_name/textfiles"(controller:"presentation") {
|
||||
action = [GET:'numberOfTextfiles']
|
||||
}
|
||||
"/presentation/$conference/$room/$presentation_name/textfiles"(controller:"presentation") {
|
||||
action = [GET:'numberOfTextfiles']
|
||||
}
|
||||
|
||||
"/presentation/$conference/$room/$presentation_name/textfile/$id"(controller:"presentation") {
|
||||
action = [GET:'showTextfile']
|
||||
}
|
||||
"/presentation/$conference/$room/$presentation_name/textfile/$id"(controller:"presentation") {
|
||||
action = [GET:'showTextfile']
|
||||
}
|
||||
|
||||
"/api/setConfigXML"(controller:"api") {
|
||||
action = [POST:'setConfigXML']
|
||||
}
|
||||
"/api/setConfigXML"(controller:"api") {
|
||||
action = [POST:'setConfigXML']
|
||||
}
|
||||
|
||||
"/api/setPollXML"(controller:"api") {
|
||||
action = [POST:'setPollXML']
|
||||
}
|
||||
"/api/setPollXML"(controller:"api") {
|
||||
action = [POST:'setPollXML']
|
||||
}
|
||||
|
||||
"/$controller/$action?/$id?"{
|
||||
constraints {
|
||||
// apply constraints here
|
||||
}
|
||||
}
|
||||
"500"(view:'/error')
|
||||
|
||||
"/" (controller: 'conference', action: 'list')
|
||||
"/$controller/$action?/$id?(.${format})?"{
|
||||
constraints {
|
||||
// apply constraints here
|
||||
}
|
||||
}
|
||||
|
||||
"/"(view:"/index")
|
||||
"500"(view:'/error')
|
||||
}
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ defaultDialAccessNumber=613-555-1234
|
||||
# conference. This is only used for the old scheduling which will be
|
||||
# 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>
|
||||
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.
|
||||
# Doesn't get enforced yet but is the default value when the create
|
||||
@ -109,7 +109,7 @@ disableRecordingDefault=false
|
||||
#----------------------------------------------------
|
||||
# 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.
|
||||
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.
|
||||
@ -132,7 +132,7 @@ defaultConfigURL=${bigbluebutton.web.serverURL}/client/conf/config.xml
|
||||
apiVersion=0.81
|
||||
|
||||
# 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
|
||||
recordStatusDir=/var/bigbluebutton/recording/status/recorded
|
||||
|
@ -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,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
|
||||
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.next=Next
|
||||
default.boolean.true=True
|
||||
default.boolean.false=False
|
||||
default.date.format=yyyy-MM-dd HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} created
|
||||
default.updated.message={0} {1} updated
|
||||
default.deleted.message={0} {1} deleted
|
||||
default.not.deleted.message={0} {1} could not be deleted
|
||||
default.not.found.message={0} not found with id {1}
|
||||
default.optimistic.locking.failure=Another user has updated this {0} while you were editing
|
||||
|
||||
default.home.label=Home
|
||||
default.list.label={0} List
|
||||
default.add.label=Add {0}
|
||||
default.new.label=New {0}
|
||||
default.create.label=Create {0}
|
||||
default.show.label=Show {0}
|
||||
default.edit.label=Edit {0}
|
||||
|
||||
default.button.create.label=Create
|
||||
default.button.edit.label=Edit
|
||||
default.button.update.label=Update
|
||||
default.button.delete.label=Delete
|
||||
default.button.delete.confirm.message=Are you sure?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=Property {0} must be a valid URL
|
||||
@ -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.math.BigDecimal=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
|
||||
|
25
bigbluebutton-web/grails-app/i18n/messages_de.properties
Normal file → Executable file
25
bigbluebutton-web/grails-app/i18n/messages_de.properties
Normal file → Executable file
@ -17,6 +17,31 @@ default.not.unique.message=Die Eigenschaft [{0}] des Typs [{1}] mit dem Wert [{2
|
||||
|
||||
default.paginate.prev=Vorherige
|
||||
default.paginate.next=Nächste
|
||||
default.boolean.true=Wahr
|
||||
default.boolean.false=Falsch
|
||||
default.date.format=dd.MM.yyyy HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} wurde angelegt
|
||||
default.updated.message={0} {1} wurde geändert
|
||||
default.deleted.message={0} {1} wurde gelöscht
|
||||
default.not.deleted.message={0} {1} konnte nicht gelöscht werden
|
||||
default.not.found.message={0} mit der id {1} wurde nicht gefunden
|
||||
default.optimistic.locking.failure=Ein anderer Benutzer hat das {0} Object geändert während Sie es bearbeitet haben
|
||||
|
||||
default.home.label=Home
|
||||
default.list.label={0} Liste
|
||||
default.add.label={0} hinzufügen
|
||||
default.new.label={0} anlegen
|
||||
default.create.label={0} anlegen
|
||||
default.show.label={0} anzeigen
|
||||
default.edit.label={0} bearbeiten
|
||||
|
||||
default.button.create.label=Anlegen
|
||||
default.button.edit.label=Bearbeiten
|
||||
default.button.update.label=Aktualisieren
|
||||
default.button.delete.label=Löschen
|
||||
default.button.delete.confirm.message=Sind Sie sicher?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=Die Eigenschaft {0} muss eine gültige URL sein
|
||||
|
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.next=Siguiente
|
||||
default.boolean.true=Verdadero
|
||||
default.boolean.false=Falso
|
||||
default.date.format=yyyy-MM-dd HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} creado
|
||||
default.updated.message={0} {1} actualizado
|
||||
default.deleted.message={0} {1} eliminado
|
||||
default.not.deleted.message={0} {1} no puede eliminarse
|
||||
default.not.found.message=No se encuentra {0} con id {1}
|
||||
default.optimistic.locking.failure=Mientras usted editaba, otro usuario ha actualizado su {0}
|
||||
|
||||
default.home.label=Principal
|
||||
default.list.label={0} Lista
|
||||
default.add.label=Agregar {0}
|
||||
default.new.label=Nuevo {0}
|
||||
default.create.label=Crear {0}
|
||||
default.show.label=Mostrar {0}
|
||||
default.edit.label=Editar {0}
|
||||
|
||||
default.button.create.label=Crear
|
||||
default.button.edit.label=Editar
|
||||
default.button.update.label=Actualizar
|
||||
default.button.delete.label=Eliminar
|
||||
default.button.delete.confirm.message=¿Está usted seguro?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=La propiedad {0} debe ser una URL válida
|
||||
|
0
bigbluebutton-web/grails-app/i18n/messages_fr.properties
Normal file → Executable file
0
bigbluebutton-web/grails-app/i18n/messages_fr.properties
Normal file → Executable file
36
bigbluebutton-web/grails-app/i18n/messages_it.properties
Normal file → Executable file
36
bigbluebutton-web/grails-app/i18n/messages_it.properties
Normal file → Executable file
@ -17,3 +17,39 @@ default.not.unique.message=La proprietà [{0}] della classe [{1}] con valore [{2
|
||||
|
||||
default.paginate.prev=Precedente
|
||||
default.paginate.next=Successivo
|
||||
default.boolean.true=Vero
|
||||
default.boolean.false=Falso
|
||||
default.date.format=dd/MM/yyyy HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} creato
|
||||
default.updated.message={0} {1} aggiornato
|
||||
default.deleted.message={0} {1} eliminato
|
||||
default.not.deleted.message={0} {1} non può essere eliminato
|
||||
default.not.found.message={0} non trovato con id {1}
|
||||
default.optimistic.locking.failure=Un altro utente ha aggiornato questo {0} mentre si era in modifica
|
||||
|
||||
default.home.label=Home
|
||||
default.list.label={0} Elenco
|
||||
default.add.label=Aggiungi {0}
|
||||
default.new.label=Nuovo {0}
|
||||
default.create.label=Crea {0}
|
||||
default.show.label=Mostra {0}
|
||||
default.edit.label=Modifica {0}
|
||||
|
||||
default.button.create.label=Crea
|
||||
default.button.edit.label=Modifica
|
||||
default.button.update.label=Aggiorna
|
||||
default.button.delete.label=Elimina
|
||||
default.button.delete.confirm.message=Si è sicuri?
|
||||
|
||||
# Data binding errors. Usa "typeMismatch.$className.$propertyName per la personalizzazione (es typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=La proprietà {0} deve essere un URL valido
|
||||
typeMismatch.java.net.URI=La proprietà {0} deve essere un URI valido
|
||||
typeMismatch.java.util.Date=La proprietà {0} deve essere una data valida
|
||||
typeMismatch.java.lang.Double=La proprietà {0} deve essere un numero valido
|
||||
typeMismatch.java.lang.Integer=La proprietà {0} deve essere un numero valido
|
||||
typeMismatch.java.lang.Long=La proprietà {0} deve essere un numero valido
|
||||
typeMismatch.java.lang.Short=La proprietà {0} deve essere un numero valido
|
||||
typeMismatch.java.math.BigDecimal=La proprietà {0} deve essere un numero valido
|
||||
typeMismatch.java.math.BigInteger=La proprietà {0} deve essere un numero valido
|
||||
|
42
bigbluebutton-web/grails-app/i18n/messages_ja.properties
Normal file → Executable file
42
bigbluebutton-web/grails-app/i18n/messages_ja.properties
Normal file → Executable file
@ -1,7 +1,7 @@
|
||||
default.doesnt.match.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]パターンと一致していません。
|
||||
default.invalid.url.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、URLではありません。
|
||||
default.invalid.creditCard.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、正当なクレジットカード番号ではありません。
|
||||
default.invalid.email.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、メールアドレスではありません。
|
||||
default.invalid.url.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なURLではありません。
|
||||
default.invalid.creditCard.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なクレジットカード番号ではありません。
|
||||
default.invalid.email.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、有効なメールアドレスではありません。
|
||||
default.invalid.range.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]から[{4}]範囲内を指定してください。
|
||||
default.invalid.size.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、[{3}]から[{4}]以内を指定してください。
|
||||
default.invalid.max.message=クラス[{1}]プロパティ[{0}]の値[{2}]は、最大値[{3}]より大きいです。
|
||||
@ -17,3 +17,39 @@ default.not.unique.message=クラス[{1}]プロパティ[{0}]の値[{2}]は既
|
||||
|
||||
default.paginate.prev=戻る
|
||||
default.paginate.next=次へ
|
||||
default.boolean.true=はい
|
||||
default.boolean.false=いいえ
|
||||
default.date.format=yyyy/MM/dd HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0}(id:{1})を作成しました。
|
||||
default.updated.message={0}(id:{1})を更新しました。
|
||||
default.deleted.message={0}(id:{1})を削除しました。
|
||||
default.not.deleted.message={0}(id:{1})は削除できませんでした。
|
||||
default.not.found.message={0}(id:{1})は見つかりませんでした。
|
||||
default.optimistic.locking.failure=この{0}は編集中に他のユーザによって先に更新されています。
|
||||
|
||||
default.home.label=ホーム
|
||||
default.list.label={0}リスト
|
||||
default.add.label={0}を追加
|
||||
default.new.label={0}を新規作成
|
||||
default.create.label={0}を作成
|
||||
default.show.label={0}詳細
|
||||
default.edit.label={0}を編集
|
||||
|
||||
default.button.create.label=作成
|
||||
default.button.edit.label=編集
|
||||
default.button.update.label=更新
|
||||
default.button.delete.label=削除
|
||||
default.button.delete.confirm.message=本当に削除してよろしいですか?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL={0}は有効なURLでなければなりません。
|
||||
typeMismatch.java.net.URI={0}は有効なURIでなければなりません。
|
||||
typeMismatch.java.util.Date={0}は有効な日付でなければなりません。
|
||||
typeMismatch.java.lang.Double={0}は有効な数値でなければなりません。
|
||||
typeMismatch.java.lang.Integer={0}は有効な数値でなければなりません。
|
||||
typeMismatch.java.lang.Long={0}は有効な数値でなければなりません。
|
||||
typeMismatch.java.lang.Short={0}は有効な数値でなければなりません。
|
||||
typeMismatch.java.math.BigDecimal={0}は有効な数値でなければなりません。
|
||||
typeMismatch.java.math.BigInteger={0}は有効な数値でなければなりません。
|
||||
|
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
|
||||
|
27
bigbluebutton-web/grails-app/i18n/messages_nl.properties
Normal file → Executable file
27
bigbluebutton-web/grails-app/i18n/messages_nl.properties
Normal file → Executable file
@ -7,7 +7,7 @@ default.invalid.size.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}]
|
||||
default.invalid.max.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] overschrijdt de maximumwaarde [{3}]
|
||||
default.invalid.min.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is minder dan de minimumwaarde [{3}]
|
||||
default.invalid.max.size.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] overschrijdt de maximumgrootte van [{3}]
|
||||
default.invalid.min.size.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] is minder dan 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.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
|
||||
@ -17,6 +17,31 @@ default.not.unique.message=Attribuut [{0}] van entiteit [{1}] met waarde [{2}] m
|
||||
|
||||
default.paginate.prev=Vorige
|
||||
default.paginate.next=Volgende
|
||||
default.boolean.true=Ja
|
||||
default.boolean.false=Nee
|
||||
default.date.format=dd-MM-yyyy HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message={0} {1} ingevoerd
|
||||
default.updated.message={0} {1} gewijzigd
|
||||
default.deleted.message={0} {1} verwijderd
|
||||
default.not.deleted.message={0} {1} kon niet worden verwijderd
|
||||
default.not.found.message={0} met id {1} kon niet worden gevonden
|
||||
default.optimistic.locking.failure=Een andere gebruiker heeft deze {0} al gewijzigd
|
||||
|
||||
default.home.label=Home
|
||||
default.list.label={0} Overzicht
|
||||
default.add.label=Toevoegen {0}
|
||||
default.new.label=Invoeren {0}
|
||||
default.create.label=Invoeren {0}
|
||||
default.show.label=Details {0}
|
||||
default.edit.label=Wijzigen {0}
|
||||
|
||||
default.button.create.label=Invoeren
|
||||
default.button.edit.label=Wijzigen
|
||||
default.button.update.label=Opslaan
|
||||
default.button.delete.label=Verwijderen
|
||||
default.button.delete.confirm.message=Weet je het zeker?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=Attribuut {0} is geen geldige URL
|
||||
|
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.
|
0
bigbluebutton-web/grails-app/i18n/messages_ru.properties
Normal file → Executable file
0
bigbluebutton-web/grails-app/i18n/messages_ru.properties
Normal file → Executable file
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
|
25
bigbluebutton-web/grails-app/i18n/messages_th.properties
Normal file → Executable file
25
bigbluebutton-web/grails-app/i18n/messages_th.properties
Normal file → Executable file
@ -17,6 +17,31 @@ default.not.unique.message=คุณสมบัติ [{0}] ของคลา
|
||||
|
||||
default.paginate.prev=ก่อนหน้า
|
||||
default.paginate.next=ถัดไป
|
||||
default.boolean.true=จริง
|
||||
default.boolean.false=เท็จ
|
||||
default.date.format=dd-MM-yyyy HH:mm:ss z
|
||||
default.number.format=0
|
||||
|
||||
default.created.message=สร้าง {0} {1} เรียบร้อยแล้ว
|
||||
default.updated.message=ปรับปรุง {0} {1} เรียบร้อยแล้ว
|
||||
default.deleted.message=ลบ {0} {1} เรียบร้อยแล้ว
|
||||
default.not.deleted.message=ไม่สามารถลบ {0} {1}
|
||||
default.not.found.message=ไม่พบ {0} ด้วย id {1} นี้
|
||||
default.optimistic.locking.failure=มีผู้ใช้ท่านอื่นปรับปรุง {0} ขณะที่คุณกำลังแก้ไขข้อมูลอยู่
|
||||
|
||||
default.home.label=หน้าแรก
|
||||
default.list.label=รายการ {0}
|
||||
default.add.label=เพิ่ม {0}
|
||||
default.new.label=สร้าง {0} ใหม่
|
||||
default.create.label=สร้าง {0}
|
||||
default.show.label=แสดง {0}
|
||||
default.edit.label=แก้ไข {0}
|
||||
|
||||
default.button.create.label=สร้าง
|
||||
default.button.edit.label=แก้ไข
|
||||
default.button.update.label=ปรับปรุง
|
||||
default.button.delete.label=ลบ
|
||||
default.button.delete.confirm.message=คุณแน่ใจหรือไม่ ?
|
||||
|
||||
# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
|
||||
typeMismatch.java.net.URL=คุณสมบัติ '{0}' จะต้องเป็นค่า URL ที่ถูกต้อง
|
||||
|
0
bigbluebutton-web/grails-app/i18n/messages_zh_CN.properties
Normal file → Executable file
0
bigbluebutton-web/grails-app/i18n/messages_zh_CN.properties
Normal file → Executable file
@ -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>
|
60
bigbluebutton-web/grails-app/views/error.gsp
Normal file → Executable file
60
bigbluebutton-web/grails-app/views/error.gsp
Normal file → Executable file
@ -1,46 +1,18 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Grails Runtime Exception</title>
|
||||
<style type="text/css">
|
||||
.message {
|
||||
border: 1px solid black;
|
||||
padding: 5px;
|
||||
background-color:#E9E9E9;
|
||||
}
|
||||
.stack {
|
||||
border: 1px solid black;
|
||||
padding: 5px;
|
||||
overflow:auto;
|
||||
height: 300px;
|
||||
}
|
||||
.snippet {
|
||||
padding: 5px;
|
||||
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>
|
||||
<head>
|
||||
<title><g:if env="development">Grails Runtime Exception</g:if><g:else>Error</g:else></title>
|
||||
<meta name="layout" content="main">
|
||||
<g:if env="development"><link rel="stylesheet" href="${resource(dir: 'css', file: 'errors.css')}" type="text/css"></g:if>
|
||||
</head>
|
||||
<body>
|
||||
<g:if env="development">
|
||||
<g:renderException exception="${exception}" />
|
||||
</g:if>
|
||||
<g:else>
|
||||
<ul class="errors">
|
||||
<li>An error has occurred</li>
|
||||
</ul>
|
||||
</g:else>
|
||||
</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>
|
||||
<head>
|
||||
<title><g:layoutTitle default="Grails" /></title>
|
||||
<link rel="stylesheet" href="${createLinkTo(dir:'css',file:'main.css')}" />
|
||||
<link rel="shortcut icon" href="${createLinkTo(dir:'images',file:'favicon.ico')}" type="image/x-icon" />
|
||||
<g:layoutHead />
|
||||
<g:javascript library="application" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="spinner" class="spinner" style="display:none;">
|
||||
<img src="${createLinkTo(dir:'images',file:'spinner.gif')}" alt="Spinner" />
|
||||
</div>
|
||||
<div class="logo"><img src="${createLinkTo(dir:'images',file:'bbb_banner.jpg')}" alt="BigBlueButton" /></div>
|
||||
<div class="nav">
|
||||
<div class="nav">
|
||||
<g:render template="/adminmenubar" />
|
||||
</div>
|
||||
<h1>NOTE: We are deprecating this web interface in favor of the API. This will be removed in the next release.</h1>
|
||||
<g:layoutBody />
|
||||
bbb-web v. <g:meta name="app.version"/>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
|
||||
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
|
||||
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
|
||||
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
|
||||
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"><!--<![endif]-->
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title><g:layoutTitle default="Grails"/></title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="shortcut icon" href="${resource(dir: 'images', file: 'favicon.ico')}" type="image/x-icon">
|
||||
<link rel="apple-touch-icon" href="${resource(dir: 'images', file: 'apple-touch-icon.png')}">
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="${resource(dir: 'images', file: 'apple-touch-icon-retina.png')}">
|
||||
<link rel="stylesheet" href="${resource(dir: 'css', file: 'main.css')}" type="text/css">
|
||||
<link rel="stylesheet" href="${resource(dir: 'css', file: 'mobile.css')}" type="text/css">
|
||||
<g:layoutHead/>
|
||||
<r:layoutResources />
|
||||
</head>
|
||||
<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>
|
||||
|
@ -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.LoggerFactory;
|
||||
|
||||
import com.mysql.jdbc.log.LogUtils;
|
||||
|
||||
public class ThumbnailCreatorImp implements ThumbnailCreator {
|
||||
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
|
46
bigbluebutton-web/web-app/WEB-INF/applicationContext.xml
Normal file → Executable file
46
bigbluebutton-web/web-app/WEB-INF/applicationContext.xml
Normal file → Executable file
@ -1,42 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<bean id="grailsApplication" class="org.codehaus.groovy.grails.commons.GrailsApplicationFactoryBean">
|
||||
<description>Grails application factory bean</description>
|
||||
<property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
|
||||
<property name="grailsResourceLoader" ref="grailsResourceLoader" />
|
||||
<property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
|
||||
<property name="grailsResourceLoader" ref="grailsResourceLoader" />
|
||||
</bean>
|
||||
|
||||
<bean id="pluginManager" class="org.codehaus.groovy.grails.plugins.GrailsPluginManagerFactoryBean">
|
||||
<description>A bean that manages Grails plugins</description>
|
||||
<property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
|
||||
<property name="application" ref="grailsApplication" />
|
||||
<property name="grailsDescriptor" value="/WEB-INF/grails.xml" />
|
||||
<property name="application" ref="grailsApplication" />
|
||||
</bean>
|
||||
|
||||
<bean id="grailsConfigurator" class="org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator">
|
||||
<constructor-arg>
|
||||
<ref bean="grailsApplication" />
|
||||
</constructor-arg>
|
||||
<property name="pluginManager" ref="pluginManager" />
|
||||
</bean>
|
||||
<bean id="grailsConfigurator" class="org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator">
|
||||
<constructor-arg>
|
||||
<ref bean="grailsApplication" />
|
||||
</constructor-arg>
|
||||
<property name="pluginManager" ref="pluginManager" />
|
||||
</bean>
|
||||
|
||||
<bean id="grailsResourceLoader" class="org.codehaus.groovy.grails.commons.GrailsResourceLoaderFactoryBean">
|
||||
<property name="grailsResourceHolder" ref="grailsResourceHolder" />
|
||||
</bean>
|
||||
<bean id="grailsResourceLoader" class="org.codehaus.groovy.grails.commons.GrailsResourceLoaderFactoryBean" />
|
||||
|
||||
<bean id="grailsResourceHolder" scope="prototype" class="org.codehaus.groovy.grails.commons.spring.GrailsResourceHolder">
|
||||
<property name="resources">
|
||||
<value>classpath*:**/grails-app/**/*.groovy</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean id="characterEncodingFilter" class="org.springframework.web.filter.CharacterEncodingFilter">
|
||||
<property name="encoding">
|
||||
<value>utf-8</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="characterEncodingFilter"
|
||||
class="org.springframework.web.filter.CharacterEncodingFilter">
|
||||
<property name="encoding">
|
||||
<value>utf-8</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean" />
|
||||
</beans>
|
0
bigbluebutton-web/web-app/WEB-INF/sitemesh.xml
Normal file → Executable file
0
bigbluebutton-web/web-app/WEB-INF/sitemesh.xml
Normal file → Executable file
19
bigbluebutton-web/web-app/WEB-INF/tld/c.tld
Normal file → Executable file
19
bigbluebutton-web/web-app/WEB-INF/tld/c.tld
Normal file → Executable file
@ -1,13 +1,13 @@
|
||||
<?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"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
|
||||
version="2.0">
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
|
||||
version="2.1">
|
||||
|
||||
<description>JSTL 1.1 core library</description>
|
||||
<description>JSTL 1.2 core library</description>
|
||||
<display-name>JSTL core</display-name>
|
||||
<tlib-version>1.1</tlib-version>
|
||||
<tlib-version>1.2</tlib-version>
|
||||
<short-name>c</short-name>
|
||||
<uri>http://java.sun.com/jsp/jstl/core</uri>
|
||||
|
||||
@ -174,6 +174,9 @@ Collection of items to iterate over.
|
||||
<required>false</required>
|
||||
<rtexprvalue>true</rtexprvalue>
|
||||
<type>java.lang.Object</type>
|
||||
<deferred-value>
|
||||
<type>java.lang.Object</type>
|
||||
</deferred-value>
|
||||
</attribute>
|
||||
<attribute>
|
||||
<description>
|
||||
@ -253,6 +256,9 @@ String of tokens to iterate over.
|
||||
<required>true</required>
|
||||
<rtexprvalue>true</rtexprvalue>
|
||||
<type>java.lang.String</type>
|
||||
<deferred-value>
|
||||
<type>java.lang.String</type>
|
||||
</deferred-value>
|
||||
</attribute>
|
||||
<attribute>
|
||||
<description>
|
||||
@ -467,6 +473,9 @@ Expression to be evaluated.
|
||||
<name>value</name>
|
||||
<required>false</required>
|
||||
<rtexprvalue>true</rtexprvalue>
|
||||
<deferred-value>
|
||||
<type>java.lang.Object</type>
|
||||
</deferred-value>
|
||||
</attribute>
|
||||
<attribute>
|
||||
<description>
|
||||
|
10
bigbluebutton-web/web-app/WEB-INF/tld/fmt.tld
Normal file → Executable file
10
bigbluebutton-web/web-app/WEB-INF/tld/fmt.tld
Normal file → Executable file
@ -1,13 +1,13 @@
|
||||
<?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"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
|
||||
version="2.0">
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
|
||||
version="2.1">
|
||||
|
||||
<description>JSTL 1.1 i18n-capable formatting library</description>
|
||||
<description>JSTL 1.2 i18n-capable formatting library</description>
|
||||
<display-name>JSTL fmt</display-name>
|
||||
<tlib-version>1.1</tlib-version>
|
||||
<tlib-version>1.2</tlib-version>
|
||||
<short-name>fmt</short-name>
|
||||
<uri>http://java.sun.com/jsp/jstl/fmt</uri>
|
||||
|
||||
|
0
bigbluebutton-web/web-app/WEB-INF/tld/grails.tld
Normal file → Executable file
0
bigbluebutton-web/web-app/WEB-INF/tld/grails.tld
Normal file → Executable file
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user