- bbb-scheduling has been removed from bbb-web
This commit is contained in:
parent
1e6eff084b
commit
cad05a9ce1
34
bigbluebutton-web/grails-app/conf/DataSource.groovy
Normal file → Executable file
34
bigbluebutton-web/grails-app/conf/DataSource.groovy
Normal file → Executable file
@ -17,37 +17,3 @@
|
||||
*
|
||||
* $Id: $
|
||||
*/
|
||||
dataSource {
|
||||
pooled = false
|
||||
driverClassName = "com.mysql.jdbc.Driver"
|
||||
username = "bbb@localhost"
|
||||
password = "secret"
|
||||
}
|
||||
|
||||
//hibernate {
|
||||
// cache.use_second_level_cache=true
|
||||
// cache.use_query_cache=true
|
||||
// cache.provider_class='org.hibernate.cache.EhCacheProvider'
|
||||
//}
|
||||
|
||||
// environment specific settings
|
||||
environments {
|
||||
development {
|
||||
dataSource {
|
||||
pooled = true
|
||||
dbCreate = "update" // one of 'create', 'create-drop','update'
|
||||
}
|
||||
}
|
||||
test {
|
||||
dataSource {
|
||||
dbCreate = 'create'
|
||||
url = "jdbc:mysql://localhost/bigbluebutton_test"
|
||||
}
|
||||
}
|
||||
production {
|
||||
dataSource {
|
||||
pooled = true
|
||||
dbCreate = "update" // one of 'create', 'create-drop','update'
|
||||
}
|
||||
}
|
||||
}
|
24
bigbluebutton-web/grails-app/conf/SecurityFilters.groovy
Normal file → Executable file
24
bigbluebutton-web/grails-app/conf/SecurityFilters.groovy
Normal file → Executable file
@ -28,38 +28,14 @@ class SecurityFilters {
|
||||
|
||||
switch (controllerName) {
|
||||
case 'api':
|
||||
case 'portal':
|
||||
case 'join':
|
||||
case 'adhoc':
|
||||
case 'presentation':
|
||||
return true
|
||||
break
|
||||
case 'publicScheduledSession':
|
||||
return true
|
||||
}
|
||||
// This just means that the user must be authenticated. He does
|
||||
// not need any particular role or permission.
|
||||
accessControl { true }
|
||||
}
|
||||
}
|
||||
|
||||
// Creating, modifying, or deleting a user requires the "Administrator"
|
||||
// role.
|
||||
userEditing(controller: "user", action: "(create|edit|save|update|delete|list)") {
|
||||
before = {
|
||||
accessControl {
|
||||
role("Administrator")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Showing a user requires the "Administrator" *or* the "User" roles.
|
||||
userShow(controller: "user", action: "show") {
|
||||
before = {
|
||||
accessControl {
|
||||
role("Administrator") || role("User")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,313 +0,0 @@
|
||||
/* BigBlueButton - http://www.bigbluebutton.org
|
||||
*
|
||||
*
|
||||
* Copyright (c) 2008-2009 by respective authors (see below). All rights reserved.
|
||||
*
|
||||
* BigBlueButton 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 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, If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* $Id: $
|
||||
*/
|
||||
package org.bigbluebutton.web.controllers
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import org.bigbluebutton.web.domain.ScheduledSession
|
||||
import org.bigbluebutton.web.domain.Conference
|
||||
import grails.converters.*
|
||||
import org.codehaus.groovy.grails.commons.*
|
||||
import org.bigbluebutton.web.services.DynamicConferenceService;
|
||||
import org.bigbluebutton.web.services.SchedulingService
|
||||
import org.bigbluebutton.api.domain.DynamicConference;
|
||||
|
||||
class PublicScheduledSessionController {
|
||||
DynamicConferenceService dynamicConferenceService;
|
||||
def schedulingService
|
||||
|
||||
def DIAL_NUM = /%%DIALNUM%%/
|
||||
def CONF_NUM = /%%CONFNUM%%/
|
||||
def CONF_NAME = /%%CONFNAME%%/
|
||||
|
||||
def keywordList = [DIAL_NUM, CONF_NUM, CONF_NAME];
|
||||
|
||||
def beforeInterceptor = {
|
||||
if (schedulingService.schedulingServiceEnabled) {
|
||||
return true
|
||||
}
|
||||
|
||||
response.sendError 403
|
||||
return false
|
||||
}
|
||||
|
||||
def index = {
|
||||
redirect(action:joinIn)
|
||||
}
|
||||
|
||||
def show = {
|
||||
def tokenId = session['conference']
|
||||
def sessionId = session['room']
|
||||
|
||||
if (!tokenId || !sessionId) {
|
||||
redirect(action:joinIn,id:tokenId)
|
||||
}
|
||||
|
||||
def scheduledSessionInstance = ScheduledSession.findByTokenId( tokenId )
|
||||
|
||||
if(!scheduledSessionInstance) {
|
||||
flash.message = "Could not find conference session."
|
||||
redirect(action:joinIn)
|
||||
}
|
||||
else {
|
||||
def config = ConfigurationHolder.config
|
||||
def hostURL = config.bigbluebutton.web.serverURL
|
||||
println "serverURL $hostURL"
|
||||
def now = new Date().time
|
||||
def inSession = ((now > scheduledSessionInstance.startDateTime.time) && (now < scheduledSessionInstance.endDateTime.time))
|
||||
return [ scheduledSessionInstance : scheduledSessionInstance, hostUrl:hostURL, inSession:inSession ]
|
||||
}
|
||||
}
|
||||
|
||||
def joinIn = {
|
||||
session.invalidate()
|
||||
def sessionInfo
|
||||
|
||||
if (params.id) {
|
||||
def conference = Conference.findByConferenceNumber(params.id)
|
||||
if (conference) {
|
||||
def c = ScheduledSession.createCriteria()
|
||||
def now = new Date()
|
||||
def results = c {
|
||||
eq('voiceConferenceBridge', conference.conferenceNumber.toString())
|
||||
and {
|
||||
le('startDateTime', now)
|
||||
and {
|
||||
gt('endDateTime', now)
|
||||
}
|
||||
}
|
||||
maxResults(1)
|
||||
}
|
||||
if (results) {
|
||||
def confSession = results[0];
|
||||
sessionInfo = [name: confSession.name, description: confSession.description]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return [ fullname: params.fullname, id:(params.id), password: params.password, info:sessionInfo ]
|
||||
|
||||
}
|
||||
|
||||
def signIn = {
|
||||
if (params.fullname.trim() == "") {
|
||||
log.debug "USer entered a blank name"
|
||||
flash.message = "Please enter your name."
|
||||
render(view:"joinIn", model: [id:params.id, fullname:params.fullname])
|
||||
return
|
||||
} else {
|
||||
log.debug "Fullname is not null ${params.fullname}"
|
||||
}
|
||||
|
||||
log.debug "Attempting to sign in to ${params.id}"
|
||||
def conference = Conference.findByConferenceNumber(params.id)
|
||||
def signedIn = false
|
||||
if (conference) {
|
||||
def c = ScheduledSession.createCriteria()
|
||||
def now = new Date()
|
||||
def results = c {
|
||||
eq('voiceConferenceBridge', conference.conferenceNumber.toString())
|
||||
and {
|
||||
le('startDateTime', now)
|
||||
and {
|
||||
gt('endDateTime', now)
|
||||
}
|
||||
}
|
||||
maxResults(1)
|
||||
}
|
||||
|
||||
if (results) {
|
||||
def confSession = results[0];
|
||||
def role = ''
|
||||
|
||||
if (confSession) {
|
||||
log.debug "Found conference session ${confSession.name}"
|
||||
switch (params.password) {
|
||||
case confSession.hostPassword:
|
||||
log.debug "Logged in as host"
|
||||
// Let us set role to MODERATOR for now as we don't support HOST yet
|
||||
role = "MODERATOR"
|
||||
signedIn = true
|
||||
break
|
||||
case confSession.moderatorPassword:
|
||||
log.debug "Logged in as as moderator"
|
||||
role = "MODERATOR"
|
||||
signedIn = true
|
||||
break
|
||||
case confSession.attendeePassword:
|
||||
log.debug "Logged in as viewer"
|
||||
role = "VIEWER"
|
||||
signedIn = true
|
||||
break
|
||||
}
|
||||
if (signedIn) {
|
||||
log.debug "Login successful...setting in session information"
|
||||
|
||||
def welcomeMessage = dynamicConferenceService.defaultWelcomeMessage
|
||||
def dialNumber = dynamicConferenceService.defaultDialAccessNumber
|
||||
|
||||
if (welcomeMessage != null || welcomeMessage != "") {
|
||||
log.debug "Substituting keywords"
|
||||
|
||||
keywordList.each{ keyword ->
|
||||
switch(keyword){
|
||||
case DIAL_NUM:
|
||||
if ((dialNumber != null) || (dialNumber != "")) {
|
||||
welcomeMessage = welcomeMessage.replaceAll(DIAL_NUM, dialNumber)
|
||||
}
|
||||
break
|
||||
case CONF_NUM:
|
||||
welcomeMessage = welcomeMessage.replaceAll(CONF_NUM, confSession.voiceConferenceBridge)
|
||||
break
|
||||
case CONF_NAME:
|
||||
welcomeMessage = welcomeMessage.replaceAll(CONF_NAME, confSession.getName())
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
session["fullname"] = params.fullname
|
||||
session["role"] = role
|
||||
session["conference"] = confSession.tokenId
|
||||
session["room"] = confSession.sessionId
|
||||
session["voicebridge"] = confSession.voiceConferenceBridge
|
||||
session["conferencename"] = confSession.getName()
|
||||
session['welcome'] = welcomeMessage
|
||||
|
||||
def long _10_MINUTES = 10*60*1000
|
||||
|
||||
def startTime = confSession.startDateTime.time - _10_MINUTES
|
||||
def endTime = confSession.endDateTime.time + _10_MINUTES
|
||||
|
||||
if ((startTime <= now.time) && (now.time <= endTime)) {
|
||||
session["mode"] = "LIVE"
|
||||
session["record"] = false
|
||||
if (confSession.record) {
|
||||
session["record"] = true
|
||||
}
|
||||
log.debug "Joining LIVE and recording is ${confSession.record}"
|
||||
} else {
|
||||
session["mode"] = "PLAYBACK"
|
||||
log.debug "Joining PLAYBACK"
|
||||
}
|
||||
|
||||
log.debug "Displaying session information"
|
||||
//redirect(action:show)
|
||||
def config = ConfigurationHolder.config
|
||||
def hostUrl = config.bigbluebutton.web.serverURL
|
||||
redirect(url:"${hostUrl}/client/BigBlueButton.html")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!signedIn) {
|
||||
flash.message = "Could not log you into the conference. Please check if your conference number or schedule is correct."
|
||||
render(view:"joinIn",model: [id:params.id, fullname:params.fullname])
|
||||
}
|
||||
}
|
||||
|
||||
def enter = {
|
||||
def fname = session["fullname"]
|
||||
def rl = session["role"]
|
||||
def cnf = session["conference"]
|
||||
def rm = session["room"]
|
||||
def vb = session["voicebridge"]
|
||||
def wbv = session["webvoiceconf"]
|
||||
def rec = session["record"]
|
||||
def md = session["mode"]
|
||||
def confName = session["conferencename"]
|
||||
def welcomeMsg = session['welcome']
|
||||
def meetID = session["meetingID"]
|
||||
def externUID = session["externUserID"]
|
||||
|
||||
if (!rm) {
|
||||
response.addHeader("Cache-Control", "no-cache")
|
||||
withFormat {
|
||||
xml {
|
||||
render(contentType:"text/xml") {
|
||||
'join'() {
|
||||
returncode("FAILED")
|
||||
message("Could not find conference ${params.conference}.")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
response.addHeader("Cache-Control", "no-cache")
|
||||
withFormat {
|
||||
xml {
|
||||
render(contentType:"text/xml") {
|
||||
'join'() {
|
||||
returncode("SUCCESS")
|
||||
fullname("$fname")
|
||||
confname("$confName")
|
||||
meetingID("$meetID")
|
||||
externUserID("$externUID")
|
||||
role("$rl")
|
||||
conference("$cnf")
|
||||
room("$rm")
|
||||
voicebridge("${vb}")
|
||||
webvoiceconf("${wbv}")
|
||||
mode("$md")
|
||||
record("$rec")
|
||||
welcome("$welcomeMsg")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def signOut = {
|
||||
def config = ConfigurationHolder.config
|
||||
def hostURL = config.bigbluebutton.web.logoutURL
|
||||
|
||||
log.debug("LogoutURL=$hostURL")
|
||||
|
||||
// For backward compatibility. We renamed "loggedOutUrl" to
|
||||
// "logoutURL" in 0.64 to be consistent with the API. Remove this
|
||||
// in later iterations (ralam mar 26, 2010)
|
||||
//if ((hostURL == null) || (hostURL == "")) {
|
||||
if (hostURL.isEmpty()) {
|
||||
log.debug("No logoutURL property set. Checking for old loggedOutUrl.")
|
||||
hostURL = config.bigbluebutton.web.loggedOutUrl
|
||||
if (!hostURL.isEmpty())
|
||||
log.debug("Old loggedOutUrl property set to $hostURL")
|
||||
}
|
||||
|
||||
def meetingToken = session["conference"]
|
||||
DynamicConference conf = dynamicConferenceService.getConferenceByToken(meetingToken)
|
||||
if (conf != null) {
|
||||
if ((conf.logoutUrl != null) && (conf.logoutUrl != "")) {
|
||||
hostURL = conf.logoutUrl
|
||||
log.debug("logoutURL has been set from API. Redirecting to server url $hostURL.")
|
||||
}
|
||||
}
|
||||
|
||||
if (hostURL.isEmpty()) {
|
||||
hostURL = config.bigbluebutton.web.serverURL
|
||||
log.debug("No logout url. Redirecting to server url $hostURL.")
|
||||
}
|
||||
// Log the user out of the application.
|
||||
session.invalidate()
|
||||
println "serverURL $hostURL"
|
||||
redirect(url: hostURL)
|
||||
}
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
/*
|
||||
* BigBlueButton - http://www.bigbluebutton.org
|
||||
*
|
||||
* Copyright (c) 2008-2009 by respective authors (see below). All rights reserved.
|
||||
*
|
||||
* BigBlueButton 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 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, If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* $Id: $
|
||||
*/
|
||||
package org.bigbluebutton.web.domain
|
||||
|
||||
class Account implements Comparable {
|
||||
Date created
|
||||
Date lastUpdated
|
||||
String createdBy
|
||||
String updatedBy
|
||||
String type
|
||||
String name
|
||||
String description
|
||||
|
||||
static belongsTo = [owner:User]
|
||||
static hasMany = [users:User, conferences:Conference]
|
||||
|
||||
static constraints = {
|
||||
name(maxLength:50, blank:false)
|
||||
type(inList:['BASIC', 'ESSENTIAL', 'PREMIUM'])
|
||||
}
|
||||
|
||||
String toString() {"${this.name}"}
|
||||
|
||||
int compareTo(obj) {
|
||||
obj.id.compareTo(id)
|
||||
}
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
/*
|
||||
* BigBlueButton - http://www.bigbluebutton.org
|
||||
*
|
||||
* Copyright (c) 2008-2009 by respective authors (see below). All rights reserved.
|
||||
*
|
||||
* BigBlueButton 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 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, If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* $Id: $
|
||||
*/
|
||||
package org.bigbluebutton.web.domain
|
||||
|
||||
class Conference implements Comparable {
|
||||
Date dateCreated
|
||||
Date lastUpdated
|
||||
String createdBy
|
||||
String updatedBy
|
||||
String name
|
||||
Integer conferenceNumber
|
||||
User user
|
||||
|
||||
SortedSet sessions
|
||||
|
||||
static hasMany = [sessions:ScheduledSession]
|
||||
|
||||
static constraints = {
|
||||
name(maxLength:50, blank:false)
|
||||
conferenceNumber(unique:true, size:5..10)
|
||||
}
|
||||
|
||||
String toString() {"${this.id}:${this.name} ${this.user}"}
|
||||
|
||||
int compareTo(obj) {
|
||||
obj.id.compareTo(id)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -1,31 +0,0 @@
|
||||
/*
|
||||
* BigBlueButton - http://www.bigbluebutton.org
|
||||
*
|
||||
* Copyright (c) 2008-2009 by respective authors (see below). All rights reserved.
|
||||
*
|
||||
* BigBlueButton 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 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, If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* $Id: $
|
||||
*/
|
||||
package org.bigbluebutton.web.domain
|
||||
|
||||
class Permission {
|
||||
String type
|
||||
String possibleActions
|
||||
|
||||
static constraints = {
|
||||
type(nullable: false, blank: false, unique: true)
|
||||
possibleActions(nullable:false, blank: false)
|
||||
}
|
||||
}
|
||||
|
@ -1,30 +0,0 @@
|
||||
/*
|
||||
* BigBlueButton - http://www.bigbluebutton.org
|
||||
*
|
||||
* Copyright (c) 2008-2009 by respective authors (see below). All rights reserved.
|
||||
*
|
||||
* BigBlueButton 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 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, If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* $Id: $
|
||||
*/
|
||||
package org.bigbluebutton.web.domain
|
||||
|
||||
class Role {
|
||||
String name
|
||||
|
||||
static constraints = {
|
||||
name(nullable: false, blank: false, unique: true)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,33 +0,0 @@
|
||||
/*
|
||||
* BigBlueButton - http://www.bigbluebutton.org
|
||||
*
|
||||
* Copyright (c) 2008-2009 by respective authors (see below). All rights reserved.
|
||||
*
|
||||
* BigBlueButton 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 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, If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* $Id: $
|
||||
*/
|
||||
package org.bigbluebutton.web.domain
|
||||
|
||||
class RolePermissionRel {
|
||||
Role role
|
||||
Permission permission
|
||||
String target
|
||||
String actions
|
||||
|
||||
static constraints = {
|
||||
actions(nullable: false, blank: false)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,71 +0,0 @@
|
||||
/*
|
||||
* BigBlueButton - http://www.bigbluebutton.org
|
||||
*
|
||||
* Copyright (c) 2008-2009 by respective authors (see below). All rights reserved.
|
||||
*
|
||||
* BigBlueButton 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 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, If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* $Id: $
|
||||
*/
|
||||
package org.bigbluebutton.web.domain
|
||||
|
||||
class ScheduledSession implements Comparable {
|
||||
Date dateCreated
|
||||
Date lastUpdated
|
||||
String createdBy
|
||||
String modifiedBy
|
||||
|
||||
String name
|
||||
String description
|
||||
/* The id for this session. This can be used as the conference room in Red5, for example. */
|
||||
String sessionId
|
||||
/* An id that we can use in the URL to join this conference session */
|
||||
String tokenId
|
||||
Integer numberOfAttendees = new Integer(3)
|
||||
/* Is there a time limit for this session? */
|
||||
Boolean timeLimited = true
|
||||
Date startDateTime
|
||||
/* If there is a time limit, until when? */
|
||||
Date endDateTime
|
||||
/* Is this session going to be recorded? */
|
||||
Boolean record = false
|
||||
/* Do we require a password to join this session? */
|
||||
Boolean passwordProtect = true
|
||||
String hostPassword = 'change-me-please'
|
||||
String moderatorPassword = 'change-me-please'
|
||||
String attendeePassword = 'change-me-please'
|
||||
String voiceConferenceBridge
|
||||
|
||||
Date getCurrentTime() { new Date() }
|
||||
static transients = ['currentTime']
|
||||
|
||||
public ScheduledSession() {
|
||||
startDateTime = new Date()
|
||||
// Set the end to 1 hour after start
|
||||
endDateTime = new Date(startDateTime.time + 60*60*1000)
|
||||
}
|
||||
|
||||
Conference conference
|
||||
|
||||
static constraints = {
|
||||
name(maxLength:50, blank:false)
|
||||
tokenId(blank:false)
|
||||
sessionId(blank:false)
|
||||
}
|
||||
|
||||
String toString() {"${this.id}:${this.name} - ${this.sessionId} ${this.tokenId}"}
|
||||
|
||||
int compareTo(obj) {
|
||||
obj.id.compareTo(id)
|
||||
}
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
/*
|
||||
* BigBlueButton - http://www.bigbluebutton.org
|
||||
*
|
||||
* Copyright (c) 2008-2009 by respective authors (see below). All rights reserved.
|
||||
*
|
||||
* BigBlueButton 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 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, If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* $Id: $
|
||||
*/
|
||||
package org.bigbluebutton.web.domain
|
||||
|
||||
class User {
|
||||
String username
|
||||
String passwordHash
|
||||
String fullName
|
||||
Date dateCreated
|
||||
Date lastUpdated
|
||||
|
||||
static constraints = {
|
||||
username(nullable: false, blank:false,email:true,unique:true)
|
||||
fullName(blank:false)
|
||||
}
|
||||
|
||||
String toString() {"${this.id}:${this.username},${this.fullName}"}
|
||||
}
|
||||
|
||||
|
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* BigBlueButton - http://www.bigbluebutton.org
|
||||
*
|
||||
* Copyright (c) 2008-2009 by respective authors (see below). All rights reserved.
|
||||
*
|
||||
* BigBlueButton 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 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, If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* $Id: $
|
||||
*/
|
||||
package org.bigbluebutton.web.domain
|
||||
|
||||
class UserPermissionRel {
|
||||
User user
|
||||
Permission permission
|
||||
String target
|
||||
String actions
|
||||
|
||||
static constraints = {
|
||||
target(nullable: true, blank: false)
|
||||
actions(nullable: false, blank: false)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,27 +0,0 @@
|
||||
/*
|
||||
* BigBlueButton - http://www.bigbluebutton.org
|
||||
*
|
||||
* Copyright (c) 2008-2009 by respective authors (see below). All rights reserved.
|
||||
*
|
||||
* BigBlueButton 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 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, If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* $Id: $
|
||||
*/
|
||||
package org.bigbluebutton.web.domain
|
||||
|
||||
class UserRoleRel {
|
||||
User user
|
||||
Role role
|
||||
}
|
||||
|
||||
|
@ -1,29 +0,0 @@
|
||||
/*
|
||||
* BigBlueButton - http://www.bigbluebutton.org
|
||||
*
|
||||
* Copyright (c) 2008-2009 by respective authors (see below). All rights reserved.
|
||||
*
|
||||
* BigBlueButton 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 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, If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* $Id: $
|
||||
*/
|
||||
package org.bigbluebutton.web.domain
|
||||
|
||||
class VoiceConferenceBridge {
|
||||
Date dateCreated
|
||||
Date lastUpdated
|
||||
String createdBy
|
||||
String modifiedBy
|
||||
|
||||
|
||||
}
|
@ -1,114 +0,0 @@
|
||||
/* BigBlueButton - http://www.bigbluebutton.org
|
||||
*
|
||||
*
|
||||
* Copyright (c) 2008-2009 by respective authors (see below). All rights reserved.
|
||||
*
|
||||
* BigBlueButton 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 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, If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @version $Id: $
|
||||
*/
|
||||
package org.bigbluebutton.web.services
|
||||
|
||||
import org.bigbluebutton.presentation.service.AdhocConference
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
|
||||
public class AdhocConferenceService{
|
||||
boolean transactional = false
|
||||
def serviceEnabled = false
|
||||
|
||||
private final Map<String, AdhocConference> conferences
|
||||
|
||||
public AdhocConferenceService() {
|
||||
conferences = new ConcurrentHashMap<String, AdhocConference>()
|
||||
}
|
||||
|
||||
public void createConference(String voiceBridge) {
|
||||
AdhocConference conference = new AdhocConference(voiceBridge)
|
||||
if (!conferences.containsKey(conference.voiceBridge))
|
||||
conferences.put(conference.voiceBridge, conference)
|
||||
}
|
||||
|
||||
public void createConference(AdhocConference conference) {
|
||||
if (!conferences.containsKey(conference.voiceBridge))
|
||||
conferences.put(conference.voiceBridge, conference)
|
||||
}
|
||||
|
||||
public boolean conferenceExistWithVoiceBridge(String voiceBridge) {
|
||||
return conferences.containsKey(voiceBridge)
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns the AdhocConference if present,
|
||||
* or null if absent.
|
||||
*/
|
||||
public AdhocConference getConferenceWithVoiceBridge(String voiceBridge) {
|
||||
return conferences.get(voiceBridge)
|
||||
}
|
||||
|
||||
public boolean conferenceExistWithModeratorToken(String token) {
|
||||
for (Iterator iter = conferences.values().iterator(); iter.hasNext();) {
|
||||
AdhocConference conf = (AdhocConference) iter.next()
|
||||
println conf.moderatorToken
|
||||
if (conf.moderatorToken == token) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns the AdhocConference if present,
|
||||
* or null if absent.
|
||||
*/
|
||||
public AdhocConference getConferenceWithModeratorToken(String token) {
|
||||
for (Iterator iter = conferences.values().iterator(); iter.hasNext();) {
|
||||
AdhocConference conf = (AdhocConference) iter.next()
|
||||
println conf.moderatorToken
|
||||
if (conf.moderatorToken == token) {
|
||||
return conf
|
||||
}
|
||||
}
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
public boolean conferenceExistWithViewerToken(String token) {
|
||||
for (Iterator iter = conferences.values().iterator(); iter.hasNext();) {
|
||||
AdhocConference conf = (AdhocConference) iter.next()
|
||||
println conf.viewerToken
|
||||
if (conf.viewerToken == token) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns the AdhocConference if present,
|
||||
* or null if absent.
|
||||
*/
|
||||
public AdhocConference getConferenceWithViewerToken(String token) {
|
||||
for (Iterator iter = conferences.values().iterator(); iter.hasNext();) {
|
||||
AdhocConference conf = (AdhocConference) iter.next()
|
||||
println conf.viewerToken
|
||||
if (conf.viewerToken == token) {
|
||||
return conf
|
||||
}
|
||||
}
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
package org.bigbluebutton.web.services;
|
||||
|
||||
/*
|
||||
* This class will enable/disable the scheduling of conference. We need
|
||||
* this to support the old scheduling mechanism with ability to disable it
|
||||
* for those who will just use the API. Eventually, all scheduling should
|
||||
* be done using the API.
|
||||
*/
|
||||
public class SchedulingService {
|
||||
static transactional = false
|
||||
def schedulingServiceEnabled = false
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta name="layout" content="main" />
|
||||
<title>Login</title>
|
||||
</head>
|
||||
<body>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<form action="/bigbluebutton/api/conference.html" method="post">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Conference Number:</td>
|
||||
<td><input type="text" name="voiceBridge" value="85115" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td />
|
||||
<td><input type="submit" value="Create" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
@ -1,30 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta name="layout" content="main" />
|
||||
<title>Login</title>
|
||||
</head>
|
||||
<body>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<form action="/bigbluebutton/api/conference/session.xml" method="post">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Fullname:</td>
|
||||
<td><input type="text" name="fullname" value="Richard" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Auth Token:</td>
|
||||
<td><input type="text" name="authToken" value="attToken" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td />
|
||||
<td><input type="submit" value="Join" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
@ -1,46 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta name="layout" content="main" />
|
||||
<title>Login</title>
|
||||
</head>
|
||||
<body>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Voice Bridge Number:</td>
|
||||
<td>${voicebridge}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Moderator Token</td>
|
||||
<td>${modToken}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Viewer Token</td>
|
||||
<td>${viewerToken}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<form action="/bigbluebutton/api/conference/session.html" method="post">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Enter your name Fullname:</td>
|
||||
<td><input type="text" name="fullname" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Enter Token:</td>
|
||||
<td><input type="text" name="authToken" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td />
|
||||
<td><input type="submit" value="Join" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
@ -1,101 +0,0 @@
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Create Attendees</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="list" action="list">Attendees List</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Create Attendees</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<g:hasErrors bean="${attendees}">
|
||||
<div class="errors">
|
||||
<g:renderErrors bean="${attendees}" as="list" />
|
||||
</div>
|
||||
</g:hasErrors>
|
||||
<g:form action="save" method="post" >
|
||||
<div class="dialog">
|
||||
<table>
|
||||
<tbody>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="callerName">Caller Name:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:attendees,field:'callerName','errors')}">
|
||||
<input type="text" id="callerName" name="callerName" value="${fieldValue(bean:attendees,field:'callerName')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="callerNumber">Caller Number:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:attendees,field:'callerNumber','errors')}">
|
||||
<input type="text" id="callerNumber" name="callerNumber" value="${fieldValue(bean:attendees,field:'callerNumber')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="channelId">Channel Id:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:attendees,field:'channelId','errors')}">
|
||||
<input type="text" id="channelId" name="channelId" value="${fieldValue(bean:attendees,field:'channelId')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="conferenceNumber">Conference Number:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:attendees,field:'conferenceNumber','errors')}">
|
||||
<input type="text" id="conferenceNumber" name="conferenceNumber" value="${fieldValue(bean:attendees,field:'conferenceNumber')}" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="dateJoined">Date Joined:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:attendees,field:'dateJoined','errors')}">
|
||||
<g:datePicker name="dateJoined" value="${attendees?.dateJoined}" ></g:datePicker>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="dateLeft">Date Left:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:attendees,field:'dateLeft','errors')}">
|
||||
<g:datePicker name="dateLeft" value="${attendees?.dateLeft}" ></g:datePicker>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="userNumber">User Number:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:attendees,field:'userNumber','errors')}">
|
||||
<input type="text" id="userNumber" name="userNumber" value="${fieldValue(bean:attendees,field:'userNumber')}" />
|
||||
</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,104 +0,0 @@
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Edit Attendees</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="list" action="list">Attendees List</g:link></span>
|
||||
<span class="menuButton"><g:link class="create" action="create">New Attendees</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Edit Attendees</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<g:hasErrors bean="${attendees}">
|
||||
<div class="errors">
|
||||
<g:renderErrors bean="${attendees}" as="list" />
|
||||
</div>
|
||||
</g:hasErrors>
|
||||
<g:form method="post" >
|
||||
<input type="hidden" name="id" value="${attendees?.id}" />
|
||||
<div class="dialog">
|
||||
<table>
|
||||
<tbody>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="callerName">Caller Name:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:attendees,field:'callerName','errors')}">
|
||||
<input type="text" id="callerName" name="callerName" value="${fieldValue(bean:attendees,field:'callerName')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="callerNumber">Caller Number:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:attendees,field:'callerNumber','errors')}">
|
||||
<input type="text" id="callerNumber" name="callerNumber" value="${fieldValue(bean:attendees,field:'callerNumber')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="channelId">Channel Id:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:attendees,field:'channelId','errors')}">
|
||||
<input type="text" id="channelId" name="channelId" value="${fieldValue(bean:attendees,field:'channelId')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="conferenceNumber">Conference Number:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:attendees,field:'conferenceNumber','errors')}">
|
||||
<input type="text" id="conferenceNumber" name="conferenceNumber" value="${fieldValue(bean:attendees,field:'conferenceNumber')}" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="dateJoined">Date Joined:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:attendees,field:'dateJoined','errors')}">
|
||||
<g:datePicker name="dateJoined" value="${attendees?.dateJoined}" ></g:datePicker>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="dateLeft">Date Left:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:attendees,field:'dateLeft','errors')}">
|
||||
<g:datePicker name="dateLeft" value="${attendees?.dateLeft}" ></g:datePicker>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="userNumber">User Number:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:attendees,field:'userNumber','errors')}">
|
||||
<input type="text" id="userNumber" name="userNumber" value="${fieldValue(bean:attendees,field:'userNumber')}" />
|
||||
</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,64 +0,0 @@
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Attendees List</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="create" action="create">New Attendees</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Attendees List</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<div class="list">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<g:sortableColumn property="id" title="Id" />
|
||||
|
||||
<g:sortableColumn property="callerName" title="Caller Name" />
|
||||
|
||||
<g:sortableColumn property="callerNumber" title="Caller Number" />
|
||||
|
||||
<g:sortableColumn property="channelId" title="Channel Id" />
|
||||
|
||||
<g:sortableColumn property="conferenceNumber" title="Conference Number" />
|
||||
|
||||
<g:sortableColumn property="dateJoined" title="Date Joined" />
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<g:each in="${attendeesList}" status="i" var="attendees">
|
||||
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
|
||||
|
||||
<td><g:link action="show" id="${attendees.id}">${attendees.id?.encodeAsHTML()}</g:link></td>
|
||||
|
||||
<td>${attendees.callerName?.encodeAsHTML()}</td>
|
||||
|
||||
<td>${attendees.callerNumber?.encodeAsHTML()}</td>
|
||||
|
||||
<td>${attendees.channelId?.encodeAsHTML()}</td>
|
||||
|
||||
<td>${attendees.conferenceNumber?.encodeAsHTML()}</td>
|
||||
|
||||
<td>${attendees.dateJoined?.encodeAsHTML()}</td>
|
||||
|
||||
</tr>
|
||||
</g:each>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="paginateButtons">
|
||||
<g:paginate total="${Attendees.count()}" />
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,93 +0,0 @@
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Show Attendees</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="list" action="list">Attendees List</g:link></span>
|
||||
<span class="menuButton"><g:link class="create" action="create">New Attendees</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Show Attendees</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<div class="dialog">
|
||||
<table>
|
||||
<tbody>
|
||||
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Id:</td>
|
||||
|
||||
<td valign="top" class="value">${attendees.id}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Caller Name:</td>
|
||||
|
||||
<td valign="top" class="value">${attendees.callerName}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Caller Number:</td>
|
||||
|
||||
<td valign="top" class="value">${attendees.callerNumber}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Channel Id:</td>
|
||||
|
||||
<td valign="top" class="value">${attendees.channelId}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Conference Number:</td>
|
||||
|
||||
<td valign="top" class="value">${attendees.conferenceNumber}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Date Joined:</td>
|
||||
|
||||
<td valign="top" class="value">${attendees.dateJoined}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Date Left:</td>
|
||||
|
||||
<td valign="top" class="value">${attendees.dateLeft}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">User Number:</td>
|
||||
|
||||
<td valign="top" class="value">${attendees.userNumber}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<g:form>
|
||||
<input type="hidden" name="id" value="${attendees?.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,39 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta name="layout" content="main" />
|
||||
<title>Login</title>
|
||||
</head>
|
||||
<body>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<g:form action="signIn">
|
||||
<input type="hidden" name="targetUri" value="${targetUri}" />
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>To login, username: admin@test.com password: admin</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Username:</td>
|
||||
<td><input type="text" name="username" value="${username}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Password:</td>
|
||||
<td><input type="password" name="password" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Remember me?:</td>
|
||||
<td><g:checkBox name="rememberMe" value="${rememberMe}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td />
|
||||
<td><input type="submit" value="Sign in" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</g:form>
|
||||
</body>
|
||||
</html>
|
@ -1,26 +0,0 @@
|
||||
<g:if test="${session.email}">
|
||||
<div class="body">
|
||||
<br/>
|
||||
<hr />
|
||||
<br />
|
||||
<table bgcolor="EEEEEE" border="0"><tr><td>
|
||||
<p class="doublespace"><b>Creating a conference call</b></p>
|
||||
<ol class="decimal">
|
||||
<li> Click on <b>'New Conference'</b></li>
|
||||
<li> Create the details of the conference </li>
|
||||
<li> Click on <b>'Create'</b> </li>
|
||||
<li> Copy and paste the <b>'Invitation email'</b> to a new mail message in your personal mailbox. </li>
|
||||
<li> Invite people to join your conference call (up to 20 people) </li>
|
||||
</ol>
|
||||
|
||||
<br/><br/>
|
||||
<b>For Outlook users: (optional)</b>
|
||||
|
||||
<p class="doublespace">For great results using your Outlook Calendar, copy and paste the <b>'Invitation Text'</b> to your calendar and invite people to join the conference.</p>
|
||||
|
||||
<p class="doublespace">Your invitees will receive the invitation, it will be added to their calendar and they will be able to RSVP and receive a conference reminder.</p>
|
||||
<br/>
|
||||
<p class="doublespace"><b>***Please remember that not all people have access to Outlook.</b></p>
|
||||
</td></tr></table>
|
||||
</div>
|
||||
</g:if>
|
@ -1,53 +0,0 @@
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Create Conference</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="list" action="list">Conference List</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Create Conference</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<g:hasErrors bean="${conferenceInstance}">
|
||||
<div class="errors">
|
||||
<g:renderErrors bean="${conferenceInstance}" as="list" />
|
||||
</div>
|
||||
</g:hasErrors>
|
||||
<g:form action="save" method="post" >
|
||||
<div class="dialog">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="name">Conference Name:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:conferenceInstance,field:'name','errors')}">
|
||||
<input type="text" id="name" name="name" value="${fieldValue(bean:conferenceInstance,field:'name')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="name">Conference Number:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:conferenceInstance,field:'conferenceNumber','errors')}">
|
||||
<input type="text" id="conferenceNumber" name="conferenceNumber" value="${fieldValue(bean:conferenceInstance,field:'conferenceNumber')}"/>
|
||||
</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,85 +0,0 @@
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Edit Conference</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="list" action="list">Your Conferences</g:link></span>
|
||||
<span class="menuButton"><g:link class="create" action="create">New Conference</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Edit Conference</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<g:hasErrors bean="${conference}">
|
||||
<div class="errors">
|
||||
<g:renderErrors bean="${conference}" as="list" />
|
||||
</div>
|
||||
</g:hasErrors>
|
||||
<g:form method="post" >
|
||||
<input type="hidden" name="id" value="${conference?.id}" />
|
||||
<div class="dialog">
|
||||
<table>
|
||||
<tbody>
|
||||
|
||||
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="conferenceName">Conference Name:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:conference,field:'name','errors')}">
|
||||
<input type="text" id="name" name="name" value="${fieldValue(bean:conference,field:'name')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="conferenceName">Conference Number:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:conference,field:'conferenceNumber','errors')}">
|
||||
<input type="text" id="conferenceNumber" name="conferenceNumber" value="${fieldValue(bean:conference,field:'conferenceNumber')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="dateCreated">Date Created:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:conference,field:'dateCreated','errors')}">
|
||||
${conference?.dateCreated}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="lastUpdated">Last Updated:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:conference,field:'lastUpdated','errors')}">
|
||||
${conference?.lastUpdated}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="createdBy">Created By:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:conference,field:'createdBy','errors')}">
|
||||
${conference.createdBy}
|
||||
</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,41 +0,0 @@
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Conference List</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="create" action="create">New Conference</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Your Conferences</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<div class="list">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<g:sortableColumn property="name" title="Conference Name" />
|
||||
<g:sortableColumn property="dateCreated" title="Date Created" />
|
||||
<g:sortableColumn property="lastUpdated" title="Last Updated" />
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<g:each in="${conferenceList}" status="i" var="conference">
|
||||
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
|
||||
<td><g:link action="show" id="${conference.id}">${fieldValue(bean:conference, field:'name')}</g:link></td>
|
||||
<td>${fieldValue(bean:conference, field:'dateCreated')}</td>
|
||||
<td>${fieldValue(bean:conference, field:'lastUpdated')}</td>
|
||||
</tr>
|
||||
</g:each>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,99 +0,0 @@
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Show Conference</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="list" action="list">Your Conferences</g:link></span>
|
||||
<span class="menuButton"><g:link class="create" action="create">New Conference</g:link></span>
|
||||
<span class="menuButton"><g:link controller="schedule" class="create" id="${conference?.id}" action="create">Schedule Session</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Show Conference</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<div class="dialog">
|
||||
<table>
|
||||
<tbody>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Created By:</td>
|
||||
|
||||
<td valign="top" class="value">${fieldValue(bean:conference, field:'createdBy')}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Conference Name:</td>
|
||||
|
||||
<td valign="top" class="value">${fieldValue(bean:conference, field:'name')}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Conference Number:</td>
|
||||
|
||||
<td valign="top" class="value">${fieldValue(bean:conference, field:'conferenceNumber')}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Date Created:</td>
|
||||
|
||||
<td valign="top" class="value">${fieldValue(bean:conference, field:'dateCreated')}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Last Updated:</td>
|
||||
|
||||
<td valign="top" class="value">${fieldValue(bean:conference, field:'lastUpdated')}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<g:form>
|
||||
<input type="hidden" name="id" value="${conference?.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>
|
||||
<div class="body">
|
||||
<h1>Scheduled Sessions</h1>
|
||||
<div class="list">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<g:sortableColumn property="name" title="Name" />
|
||||
<g:sortableColumn property="tokenId" title="Link" />
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<g:each in="${sessions}" status="i" var="schedSession">
|
||||
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
|
||||
<td>${schedSession.name?.encodeAsHTML()}</td>
|
||||
<g:if test="${schedSession.expired}">
|
||||
<td><g:link controller="schedule" action="show" id="${schedSession.id}">
|
||||
display</g:link>
|
||||
</td>
|
||||
</g:if>
|
||||
|
||||
|
||||
</tr>
|
||||
</g:each>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,34 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta name="layout" content="main" />
|
||||
<title>Login</title>
|
||||
</head>
|
||||
<body>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<g:form action="signIn">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Fullname:</td>
|
||||
<td><input type="text" name="fullname" value="${fullname}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Conference:</td>
|
||||
<td><input type="conference" name="conference" value="${conference}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Password:</td>
|
||||
<td><g:passwordField name="password" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td />
|
||||
<td><input type="submit" value="Sign in" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</g:form>
|
||||
</body>
|
||||
</html>
|
@ -1,57 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta name="layout" content="main" />
|
||||
<title>Login</title>
|
||||
</head>
|
||||
<body>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<g:if test="${info}">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Conference Name:</td>
|
||||
<td>${info.name}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Conference Number:</td>
|
||||
<td>${id}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Description:</td>
|
||||
<td>${info.description}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</g:if>
|
||||
<g:form controller="conference-session" action="signIn">
|
||||
<g:if test="${id}">
|
||||
<input type="hidden" name="id" value="${id}" />
|
||||
</g:if>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Fullname:</td>
|
||||
<td><input type="text" name="fullname" value="${fullname}" /></td>
|
||||
</tr>
|
||||
<g:if test="${!id}">
|
||||
<tr>
|
||||
<td>Conference Number:</td>
|
||||
<td><input type="text" name="id" value="${id}" /></td>
|
||||
</tr>
|
||||
</g:if>
|
||||
<tr>
|
||||
<td>Password:</td>
|
||||
<td><g:passwordField name="password" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td />
|
||||
<td><input type="submit" value="Sign in" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</g:form>
|
||||
</body>
|
||||
</html>
|
@ -1,96 +0,0 @@
|
||||
|
||||
<%@ page import="org.bigbluebutton.web.domain.ScheduledSession" %>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Show ScheduledSession</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Information on ${scheduledSessionInstance.name}</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<div class="dialog">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Session:</td>
|
||||
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'name')}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Description:</td>
|
||||
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'description')}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Voice Conference Bridge:</td>
|
||||
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'voiceConferenceBridge')}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Link:</td>
|
||||
|
||||
<td valign="top" class="value">
|
||||
<g:if test="${inSession}">
|
||||
<a href="${hostUrl}/client/BigBlueButton.html">CLICK HERE TO JOIN</a>
|
||||
</g:if>
|
||||
<g:else>
|
||||
<a href="${hostUrl}/client/BigBlueButton.html">CLICK HERE TO PLAY</a>
|
||||
</g:else>
|
||||
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Start Date Time:</td>
|
||||
|
||||
<td valign="top" class="value">
|
||||
<g:formatDate format="EEE, d MMM yyyy 'at' hh:mm aaa" date="${scheduledSessionInstance.startDateTime}"/>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">End Date Time:</td>
|
||||
<td valign="top" class="value">
|
||||
<g:formatDate format="EEE, d MMM yyyy 'at' hh:mm aaa" date="${scheduledSessionInstance.endDateTime}"/>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Conference:</td>
|
||||
|
||||
<td valign="top" class="value">
|
||||
${scheduledSessionInstance?.conference?.name.encodeAsHTML()}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name"><b>NOTE:</b></td>
|
||||
|
||||
<td valign="top" class="value">
|
||||
If the client does not load after clicking JOIN, refresh button your browser.</td>
|
||||
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,14 +0,0 @@
|
||||
|
||||
<%@ page import="org.bigbluebutton.web.domain.ScheduledSession" %>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Show ScheduledSession</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,139 +0,0 @@
|
||||
|
||||
<%@ page import="org.bigbluebutton.web.domain.ScheduledSession" %>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Create ScheduledSession</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="list" action="list">ScheduledSession List</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Create ScheduledSession</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<g:hasErrors bean="${scheduledSessionInstance}">
|
||||
<div class="errors">
|
||||
<g:renderErrors bean="${scheduledSessionInstance}" as="list" />
|
||||
</div>
|
||||
</g:hasErrors>
|
||||
<g:form action="save" method="post" >
|
||||
<input type="hidden" name="conferenceId" value="${conferenceId}" />
|
||||
<div class="dialog">
|
||||
<table>
|
||||
<tbody>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="name">Name:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'name','errors')}">
|
||||
<input type="text" id="name" name="name" value="${fieldValue(bean:scheduledSessionInstance,field:'name')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="name">Description:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'description','errors')}">
|
||||
<g:textArea name="description" value="${fieldValue(bean:scheduledSessionInstance,field:'description')}" rows="5" cols="40"/>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Comment for now (ralam aug 11, 2009)
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="numberOfAttendees">Number Of Attendees:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'numberOfAttendees','errors')}">
|
||||
<input type="text" id="numberOfAttendees" name="numberOfAttendees" value="${fieldValue(bean:scheduledSessionInstance,field:'numberOfAttendees')}" />
|
||||
</td>
|
||||
</tr>
|
||||
-->
|
||||
<!-- Comment for now (ralam jun 3, 2009)
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="record">Record:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'record','errors')}">
|
||||
<g:checkBox name="record" value="${scheduledSessionInstance?.record}" ></g:checkBox>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="timeLimited">Time Limited:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'timeLimited','errors')}">
|
||||
<g:checkBox name="timeLimited" value="${scheduledSessionInstance?.timeLimited}" ></g:checkBox>
|
||||
</td>
|
||||
</tr>
|
||||
-->
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="startDateTime">Start Date Time:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'startDateTime','errors')}">
|
||||
<g:datePicker name="startDateTime" value="${scheduledSessionInstance?.startDateTime}" ></g:datePicker>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="endDateTime">End Date Time:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'endDateTime','errors')}">
|
||||
<g:datePicker name="endDateTime" value="${scheduledSessionInstance?.endDateTime}" ></g:datePicker>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Comment for now (ralam jun 3, 2009)
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="passwordProtect">Password Protect:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'passwordProtect','errors')}">
|
||||
<g:checkBox name="passwordProtect" value="${scheduledSessionInstance?.passwordProtect}" ></g:checkBox>
|
||||
</td>
|
||||
</tr>
|
||||
-->
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="attendeePassword">Attendee Password:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'attendeePassword','errors')}">
|
||||
<input type="text" id="attendeePassword" name="attendeePassword" value="${fieldValue(bean:scheduledSessionInstance,field:'attendeePassword')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Comment for now (ralam jun 3, 2009)
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="hostPassword">Host Password:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'hostPassword','errors')}">
|
||||
<input type="text" id="hostPassword" name="hostPassword" value="${fieldValue(bean:scheduledSessionInstance,field:'hostPassword')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
-->
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="moderatorPassword">Moderator Password:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'moderatorPassword','errors')}">
|
||||
<input type="text" id="moderatorPassword" name="moderatorPassword" value="${fieldValue(bean:scheduledSessionInstance,field:'moderatorPassword')}"/>
|
||||
</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,177 +0,0 @@
|
||||
|
||||
<%@ page import="org.bigbluebutton.web.domain.ScheduledSession" %>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Edit ScheduledSession</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="list" action="list">ScheduledSession List</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Edit ScheduledSession</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<g:hasErrors bean="${scheduledSessionInstance}">
|
||||
<div class="errors">
|
||||
<g:renderErrors bean="${scheduledSessionInstance}" as="list" />
|
||||
</div>
|
||||
</g:hasErrors>
|
||||
<g:form method="post" >
|
||||
<input type="hidden" name="id" value="${scheduledSessionInstance?.id}" />
|
||||
<div class="dialog">
|
||||
<table>
|
||||
<tbody>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="name">Name:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'name','errors')}">
|
||||
<input type="text" id="name" name="name" value="${fieldValue(bean:scheduledSessionInstance,field:'name')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Comment for now (ralam aug 11, 2009)
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="numberOfAttendees">Number Of Attendees:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'numberOfAttendees','errors')}">
|
||||
<input type="text" id="numberOfAttendees" name="numberOfAttendees" value="${fieldValue(bean:scheduledSessionInstance,field:'numberOfAttendees')}" />
|
||||
</td>
|
||||
</tr>
|
||||
-->
|
||||
<!-- Comment for now (ralam jun 3, 2009)
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="record">Record:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'record','errors')}">
|
||||
<g:checkBox name="record" value="${scheduledSessionInstance?.record}" ></g:checkBox>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="timeLimited">Time Limited:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'timeLimited','errors')}">
|
||||
<g:checkBox name="timeLimited" value="${scheduledSessionInstance?.timeLimited}" ></g:checkBox>
|
||||
</td>
|
||||
</tr>
|
||||
-->
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="startDateTime">Start Date Time:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'startDateTime','errors')}">
|
||||
<g:datePicker name="startDateTime" value="${scheduledSessionInstance?.startDateTime}" ></g:datePicker>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="startDateTime">End Date Time:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'endDateTime','errors')}">
|
||||
<g:datePicker name="endDateTime" value="${scheduledSessionInstance?.endDateTime}" ></g:datePicker>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Comment for now (ralam jun 3, 2009)
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="passwordProtect">Password Protect:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'passwordProtect','errors')}">
|
||||
<g:checkBox name="passwordProtect" value="${scheduledSessionInstance?.passwordProtect}" ></g:checkBox>
|
||||
</td>
|
||||
</tr>
|
||||
-->
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="attendeePassword">Attendee Password:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'attendeePassword','errors')}">
|
||||
<input type="text" id="attendeePassword" name="attendeePassword" value="${fieldValue(bean:scheduledSessionInstance,field:'attendeePassword')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Comment for now (ralam jun 3, 2009)
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="hostPassword">Host Password:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'hostPassword','errors')}">
|
||||
<input type="text" id="hostPassword" name="hostPassword" value="${fieldValue(bean:scheduledSessionInstance,field:'hostPassword')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
-->
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="moderatorPassword">Moderator Password:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'moderatorPassword','errors')}">
|
||||
<input type="text" id="moderatorPassword" name="moderatorPassword" value="${fieldValue(bean:scheduledSessionInstance,field:'moderatorPassword')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="conference">Conference:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'conference','errors')}">
|
||||
${scheduledSessionInstance?.conference?.name}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="createdBy">Created By:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'createdBy','errors')}">
|
||||
${fieldValue(bean:scheduledSessionInstance,field:'createdBy')}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="dateCreated">Date Created:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'dateCreated','errors')}">
|
||||
${scheduledSessionInstance?.dateCreated}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="lastUpdated">Last Updated:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'lastUpdated','errors')}">
|
||||
${scheduledSessionInstance?.lastUpdated}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="modifiedBy">Modified By:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:scheduledSessionInstance,field:'modifiedBy','errors')}">
|
||||
${fieldValue(bean:scheduledSessionInstance,field:'modifiedBy')}
|
||||
</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,49 +0,0 @@
|
||||
|
||||
<%@ page import="org.bigbluebutton.web.domain.ScheduledSession" %>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>ScheduledSession List</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>ScheduledSession List</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<div class="list">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<g:sortableColumn property="name" title="Name" />
|
||||
|
||||
<g:sortableColumn property="startDateId" title="Start" />
|
||||
|
||||
<g:sortableColumn property="endDateId" title="End" />
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<g:each in="${scheduledSessionInstanceList}" status="i" var="scheduledSessionInstance">
|
||||
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
|
||||
<td><g:link action="show" id="${scheduledSessionInstance.id}">${fieldValue(bean:scheduledSessionInstance, field:'name')}</g:link></td>
|
||||
|
||||
<td>${fieldValue(bean:scheduledSessionInstance, field:'startDateTime')}</td>
|
||||
|
||||
<td>${fieldValue(bean:scheduledSessionInstance, field:'endDateTime')}</td>
|
||||
|
||||
</tr>
|
||||
</g:each>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="paginateButtons">
|
||||
<g:paginate total="${ScheduledSession.count()}" />
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,130 +0,0 @@
|
||||
|
||||
<%@ page import="org.bigbluebutton.web.domain.ScheduledSession" %>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Show ScheduledSession</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="list" action="list">ScheduledSession List</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Show ScheduledSession</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<div class="dialog">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Name:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'name')}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Description:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'description')}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Voice Conference Bridge:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'voiceConferenceBridge')}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Link:</td>
|
||||
<td valign="top" class="value">
|
||||
${hostUrl}/bigbluebutton/conference-session/joinIn/${fieldValue(bean:scheduledSessionInstance, field:'voiceConferenceBridge')} (<a href="${hostUrl}/bigbluebutton/conference-session/joinIn/${fieldValue(bean:scheduledSessionInstance, field:'voiceConferenceBridge')}">JOIN</a>)
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Comment for now (ralam aug 11, 2009)
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Number Of Attendees:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'numberOfAttendees')}</td>
|
||||
</tr>
|
||||
-->
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Conference:</td>
|
||||
<td valign="top" class="value">
|
||||
<g:link controller="conference" action="show" id="${scheduledSessionInstance?.conference?.id}">
|
||||
${scheduledSessionInstance?.conference?.encodeAsHTML()}
|
||||
</g:link>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Comment for now (ralam jun 3, 2009)
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Password Protect:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'passwordProtect')}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Host Password:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'hostPassword')}</td>
|
||||
</tr>
|
||||
-->
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Moderator Password:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'moderatorPassword')}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Attendee Password:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'attendeePassword')}</td>
|
||||
</tr>
|
||||
<!-- Comment for now (ralam jun 3, 2009)
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Record:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'record')}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Time Limited:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'timeLimited')}</td>
|
||||
</tr>
|
||||
-->
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Start Date Time:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'startDateTime')}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">End Date Time:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'endDateTime')}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Created By:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'createdBy')}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Date Created:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'dateCreated')}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Last Updated:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'lastUpdated')}</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Modified By:</td>
|
||||
<td valign="top" class="value">${fieldValue(bean:scheduledSessionInstance, field:'modifiedBy')}</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<g:form>
|
||||
<input type="hidden" name="id" value="${scheduledSessionInstance?.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,49 +0,0 @@
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Edit User</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="list" action="list">User List</g:link></span>
|
||||
<span class="menuButton"><g:link class="create" action="create">New User</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Edit User</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<g:hasErrors bean="${userInstance}">
|
||||
<div class="errors">
|
||||
<g:renderErrors bean="${userInstance}" as="list" />
|
||||
</div>
|
||||
</g:hasErrors>
|
||||
<g:form method="post" >
|
||||
<input type="hidden" name="id" value="${userInstance?.id}" />
|
||||
<div class="dialog">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="password">New Password:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:userInstance,field:'passwordHash','errors')}">
|
||||
<g:passwordField name="newpassword" value="" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<span class="button"><g:actionSubmit class="save" value="Update" action="updatepassword"/></span>
|
||||
<span class="button"><g:link action="show" id="${userInstance?.id}">Cancel</g:link></span>
|
||||
</div>
|
||||
</g:form>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,65 +0,0 @@
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Create User</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="list" action="list">User List</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Create User</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<g:hasErrors bean="${userInstance}">
|
||||
<div class="errors">
|
||||
<g:renderErrors bean="${userInstance}" as="list" />
|
||||
</div>
|
||||
</g:hasErrors>
|
||||
<g:form action="save" method="post" >
|
||||
<div class="dialog">
|
||||
<table>
|
||||
<tbody>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="username">Username:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:userInstance,field:'username','errors')}">
|
||||
<input type="text" id="username" name="username" value="${fieldValue(bean:userInstance,field:'username')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="fullName">Full Name:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:userInstance,field:'fullName','errors')}">
|
||||
<input type="text" id="fullName" name="fullName" value="${fieldValue(bean:userInstance,field:'fullName')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="password">Password:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:userInstance,field:'passwordHash','errors')}">
|
||||
<g:passwordField name="password" value="${password}" />
|
||||
</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,77 +0,0 @@
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>Edit User</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="list" action="list">User List</g:link></span>
|
||||
<span class="menuButton"><g:link class="create" action="create">New User</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Edit User</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<g:hasErrors bean="${userInstance}">
|
||||
<div class="errors">
|
||||
<g:renderErrors bean="${userInstance}" as="list" />
|
||||
</div>
|
||||
</g:hasErrors>
|
||||
<g:form method="post" >
|
||||
<input type="hidden" name="id" value="${userInstance?.id}" />
|
||||
<div class="dialog">
|
||||
<table>
|
||||
<tbody>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="username">Username:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:userInstance,field:'username','errors')}">
|
||||
<input type="text" id="username" name="username" value="${fieldValue(bean:userInstance,field:'username')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="fullName">Full Name:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:userInstance,field:'fullName','errors')}">
|
||||
<input type="text" id="fullName" name="fullName" value="${fieldValue(bean:userInstance,field:'fullName')}"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="dateCreated">Date Created:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:userInstance,field:'dateCreated','errors')}">
|
||||
${userInstance?.dateCreated}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">
|
||||
<label for="lastUpdated">Last Updated:</label>
|
||||
</td>
|
||||
<td valign="top" class="value ${hasErrors(bean:userInstance,field:'lastUpdated','errors')}">
|
||||
${userInstance?.lastUpdated}
|
||||
</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,54 +0,0 @@
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="layout" content="main" />
|
||||
<title>User List</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="create" action="create">New User</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>User List</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<div class="list">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<g:sortableColumn property="id" title="Id" />
|
||||
|
||||
<g:sortableColumn property="username" title="Username" />
|
||||
|
||||
<g:sortableColumn property="email" title="Email" />
|
||||
|
||||
<g:sortableColumn property="fullName" title="Full Name" />
|
||||
|
||||
<th>Conferences</th>
|
||||
|
||||
<g:sortableColumn property="dateCreated" title="Date Created" />
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<g:each in="${userInstanceList}" status="i" var="userInstance">
|
||||
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
|
||||
|
||||
<td><g:link action="show" id="${userInstance.id}">${fieldValue(bean:userInstance, field:'id')}</g:link></td>
|
||||
<td>${fieldValue(bean:userInstance, field:'username')}</td>
|
||||
<td>${fieldValue(bean:userInstance, field:'fullName')}</td>
|
||||
<td>${fieldValue(bean:userInstance, field:'dateCreated')}</td>
|
||||
|
||||
</tr>
|
||||
</g:each>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</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>Show User</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="nav">
|
||||
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
|
||||
<span class="menuButton"><g:link class="list" action="list">User List</g:link></span>
|
||||
<span class="menuButton"><g:link class="create" action="create">New User</g:link></span>
|
||||
</div>
|
||||
<div class="body">
|
||||
<h1>Show User</h1>
|
||||
<g:if test="${flash.message}">
|
||||
<div class="message">${flash.message}</div>
|
||||
</g:if>
|
||||
<div class="dialog">
|
||||
<table>
|
||||
<tbody>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Username:</td>
|
||||
|
||||
<td valign="top" class="value">${fieldValue(bean:userInstance, field:'username')}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Full Name:</td>
|
||||
|
||||
<td valign="top" class="value">${fieldValue(bean:userInstance, field:'fullName')}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Date Created:</td>
|
||||
|
||||
<td valign="top" class="value">${fieldValue(bean:userInstance, field:'dateCreated')}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Last Updated:</td>
|
||||
|
||||
<td valign="top" class="value">${fieldValue(bean:userInstance, field:'lastUpdated')}</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr class="prop">
|
||||
<td valign="top" class="name">Password</td>
|
||||
|
||||
<td valign="top" class="value"><g:link action="changepassword" id="${userInstance.id}">Change</g:link></td>
|
||||
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<g:form>
|
||||
<input type="hidden" name="id" value="${userInstance?.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>
|
2
bigbluebutton-web/web-app/index.gsp
Normal file → Executable file
2
bigbluebutton-web/web-app/index.gsp
Normal file → Executable file
@ -1 +1 @@
|
||||
<%response.sendRedirect(request.getContextPath()+"/conference/list");%>
|
||||
This page is no longer available, please use the api
|
||||
|
Loading…
Reference in New Issue
Block a user