diff --git a/.gitignore b/.gitignore index 10229ae..6b0c0c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,26 +1,29 @@ - -grails-app/conf/NimbleBootStrap.groovy -grails-app/domain/intient/test/* - -.DS_Store -.sass-cache -classes -stacktrace.log -docs.tar.gz - -*~ -*.ipr -*.iml -*.iws -*.war -web-app/plugins/* -target/ -test/reports/* -unzipped/* -docs/* -*.zip -plugin.xml - -src/docs - -grails-app/i18n/shiro.properties + +grails-app/conf/NimbleBootStrap.groovy +grails-app/domain/intient/test/* + +.DS_Store +.sass-cache +classes +stacktrace.log +docs.tar.gz + +*~ +*.ipr +*.iml +*.iws +*.war +web-app/plugins/* +web-app/css/* +web-app/images/* +web-app/js/* +target/ +test/reports/* +unzipped/* +docs/* +*.zip +plugin.xml + +src/docs + +grails-app/i18n/shiro.properties diff --git a/NimbleGrailsPlugin.groovy b/NimbleGrailsPlugin.groovy index 82ed0f0..aadb5e7 100644 --- a/NimbleGrailsPlugin.groovy +++ b/NimbleGrailsPlugin.groovy @@ -27,7 +27,7 @@ import grails.plugins.nimble.core.UserBase class NimbleGrailsPlugin { // the plugin version - def version = "0.4-SNAPSHOT" + def version = "1.0-SNAPSHOT" // the version or versions of Grails the plugin is designed for def grailsVersion = "1.1 > *" @@ -45,7 +45,7 @@ class NimbleGrailsPlugin { 'grails-app/conf/NimbleBootStrap.groovy', ] - def author = "Bradley Beddoes and open source contributors" + def author = "Bradley Beddoes, Chris Doty, Mike Wille and open source contributors" def authorEmail = "nimbleproject@googlegroups.com" def title = "Nimble" def description = '''\\ @@ -55,7 +55,7 @@ class NimbleGrailsPlugin { // URL to the plugin's documentation def documentation = "http://sites.google.com/site/nimbledoc/" - def observe = ['controllers'] + def observe = ['controllers', 'services', 'filters'] def doWithSpring = { loadNimbleConfig(application) @@ -119,14 +119,19 @@ class NimbleGrailsPlugin { } def onChange = { event -> - doWithDynamicMethods() + if(event.source) { + injectAuthn(event.source, event.application) + } } def onConfigChange = { event -> } - private void injectAuthn(def clazz, def application) { + private void injectAuthn(def clazz, GrailsApplication grailsApplication) { + def config = grailsApplication.config + GroovyClassLoader classLoader = new GroovyClassLoader(getClass().classLoader) + clazz.metaClass.getAuthenticatedSubject = { def subject = SecurityUtils.getSubject() } @@ -134,8 +139,8 @@ class NimbleGrailsPlugin { def principal = SecurityUtils.getSubject()?.getPrincipal() def authUser - if(application.config?.nimble?.implementation?.user) - authUser = grailsApplication.classLoader.loadClass(application.config.nimble.implementation.user).get(principal) + if(config.nimble?.implementation?.user) + authUser = classLoader.loadClass(config.nimble.implementation.user).get(principal) else authUser = UserBase.get(principal) @@ -155,6 +160,13 @@ class NimbleGrailsPlugin { // Merging default Nimble config into main application config config.merge(new ConfigSlurper(GrailsUtil.environment).parse(classLoader.loadClass('DefaultNimbleConfig'))) + // Merging default Nimble Social config into main application config if social is used. + try { + config.merge(new ConfigSlurper(GrailsUtil.environment).parse(classLoader.loadClass('DefaultNimbleSocialConfig'))) + } catch (Exception ignored) { + // ignore, just use the defaults + } + // Merging user-defined Nimble config into main application config if provided try { config.merge(new ConfigSlurper(GrailsUtil.environment).parse(classLoader.loadClass('NimbleConfig'))) diff --git a/application.properties b/application.properties index 48a09fa..5790f7a 100644 --- a/application.properties +++ b/application.properties @@ -1,10 +1,10 @@ -#Grails Metadata file -#Thu Feb 11 07:30:26 EST 2010 -app.grails.version=1.2.1 -app.name=nimble -app.servlet.version=2.4 -app.version=0.4 -plugins.hibernate=1.2.1 -plugins.mail=0.6 -plugins.shiro=1.0.1 -plugins.tomcat=1.2.1 +#Grails Metadata file +#Wed Apr 21 20:59:53 CDT 2010 +app.grails.version=1.3.0.RC1 +app.name=nimble +app.servlet.version=2.4 +app.version=0.4 +plugins.hibernate=1.3.0.RC1 +plugins.mail=0.6 +plugins.shiro=1.0.1 +plugins.tomcat=1.3.0.RC1 diff --git a/grails-app/conf/BuildConfig.groovy b/grails-app/conf/BuildConfig.groovy new file mode 100644 index 0000000..f8ee2d7 --- /dev/null +++ b/grails-app/conf/BuildConfig.groovy @@ -0,0 +1,25 @@ +grails.project.class.dir = "target/classes" +grails.project.test.class.dir = "target/test-classes" +grails.project.test.reports.dir = "target/test-reports" +grails.project.dependency.resolution = { + inherits "global" // inherit Grails' default dependencies + log "warn" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose' + repositories { + grailsHome() + // grailsCentral() + } + dependencies { + // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg. + // runtime 'com.mysql:mysql-connector-java:5.1.5' + } + +} + +nimble { + resources { + nomodcheck = false + nocompilesass = false + nocompress = false + noclean = false + } +} diff --git a/grails-app/conf/DefaultNimbleConfig.groovy b/grails-app/conf/DefaultNimbleConfig.groovy index 885c0c6..3e4c56d 100644 --- a/grails-app/conf/DefaultNimbleConfig.groovy +++ b/grails-app/conf/DefaultNimbleConfig.groovy @@ -15,6 +15,10 @@ * limitations under the License. */ +// change the JavaScript library that grails & nimble use by adjusting this value +// valid values: jquery, mootools prototype +grails.views.javascript.library='jquery' + nimble { tablenames { @@ -28,6 +32,8 @@ nimble { permission = "permission" levelpermission = "level_permission" url = "url" + socialmediaaccount = "social_media_account" + socialmediaservice = "social_media_service" } fieldnames { @@ -41,6 +47,12 @@ nimble { customcss = '' } + resources { + jslibrary = grails.views.javascript.library + usejsdev = false + usecssdev = false + } + localusers { usernames { minlength = 4 @@ -51,15 +63,15 @@ nimble { } } - fields { - admin { - user['username', 'external', 'federated'] - } - enduser { - user['username', 'pass', 'passConfirm'] - profile['fullName', 'email'] - } - } + fields { + admin { + user = ['username', 'external', 'federated'] + } + enduser { + user = ['username', 'pass', 'passConfirm'] + profile = ['fullName', 'email'] + } + } passwords { mustcontain { diff --git a/grails-app/controllers/grails/plugins/nimble/core/AccountController.groovy b/grails-app/controllers/grails/plugins/nimble/core/AccountController.groovy index c1b731a..8f4e438 100644 --- a/grails-app/controllers/grails/plugins/nimble/core/AccountController.groovy +++ b/grails-app/controllers/grails/plugins/nimble/core/AccountController.groovy @@ -103,6 +103,10 @@ class AccountController { def user = InstanceGenerator.user() user.profile = InstanceGenerator.profile() + def userFields = grailsApplication.config.nimble.fields.enduser.user + def profileFields = grailsApplication.config.nimble.fields.enduser.profile + user.properties[userFields] = params + user.profile.properties[profileFields] = params log.debug("Starting new user creation") [user: user] @@ -117,9 +121,11 @@ class AccountController { def user = InstanceGenerator.user() user.profile = InstanceGenerator.profile() + def userFields = grailsApplication.config.nimble.fields.enduser.user + def profileFields = grailsApplication.config.nimble.fields.enduser.profile + user.properties[userFields] = params + user.profile.properties[profileFields] = params user.profile.owner = user - user.properties['username', 'pass', 'passConfirm'] = params - user.profile.properties['fullName', 'email'] = params user.enabled = grailsApplication.config.nimble.localusers.provision.active user.external = false @@ -137,6 +143,10 @@ class AccountController { if (user.profile.email == null || user.profile.email.length() == 0) user.profile.email = 'invalid' + // Allow host application to do some validation, etc. + if(userService.events['beforeregister']) { + userService.events['beforeregister'](user) + } if (user.hasErrors()) { log.debug("Submitted values for new user are invalid") @@ -170,6 +180,10 @@ class AccountController { return } + if(userService.events['afterregister']) { + userService.events['afterregister'](user) + } + log.info("Sending account registration confirmation email to $user.profile.email with subject $grailsApplication.config.nimble.messaging.registration.subject") if(grailsApplication.config.nimble.messaging.enabled) { sendMail { @@ -303,7 +317,7 @@ class AccountController { userService.setRandomPassword(user) log.info("Sending account password reset email to $user.profile.email with subject $grailsApplication.config.nimble.messaging.passwordreset.subject") - if(grailsApplication.config.nimble.messaging.enabled) { + if(grailsApplication.config.nimble.messaging.enabled && !grailsApplication.config.nimble.provision.active) { sendMail { to user.profile.email from grailsApplication.config.nimble.messaging.mail.from diff --git a/grails-app/controllers/grails/plugins/nimble/core/AuthController.groovy b/grails-app/controllers/grails/plugins/nimble/core/AuthController.groovy index 86166d0..ee98dce 100644 --- a/grails-app/controllers/grails/plugins/nimble/core/AuthController.groovy +++ b/grails-app/controllers/grails/plugins/nimble/core/AuthController.groovy @@ -36,7 +36,7 @@ import grails.plugins.nimble.auth.AccountCreatedException class AuthController { private static String TARGET = 'grails.plugins.nimble.controller.AuthController.TARGET' - + def shiroSecurityManager def facebookService def openIDService @@ -88,7 +88,7 @@ class AuthController { catch (IncorrectCredentialsException e) { log.info "Credentials failure for user '${params.username}'." log.debug(e) - + flash.type = 'error' flash.message = message(code: "nimble.login.failed.credentials") } @@ -324,7 +324,7 @@ class AuthController { response.sendError(403) return } - + def discovered = session.getAttribute("discovered") ParameterList openIDResponse = new ParameterList(request.getParameterMap()); @@ -356,7 +356,7 @@ class AuthController { } else { log.debug ("OpenID authentication failure") - + flash.type = 'error' flash.message = message(code: "nimble.login.openid.${service}.internal.error.res") redirect(action: 'login', params: [active: service]) diff --git a/grails-app/controllers/grails/plugins/nimble/core/UserController.groovy b/grails-app/controllers/grails/plugins/nimble/core/UserController.groovy index bfac781..b6de222 100644 --- a/grails-app/controllers/grails/plugins/nimble/core/UserController.groovy +++ b/grails-app/controllers/grails/plugins/nimble/core/UserController.groovy @@ -84,13 +84,15 @@ class UserController { redirect action: edit, id: params.id } else { - def fields = grailsApplication.config.nimble.fields.admin.user - user.properties[fields] = params - if (!user.validate()) { - log.debug("Updated details for user [$user.id]$user.username are invalid") - render view: 'edit', model: [user: user] - } - else { + def fields = grailsApplication.config.nimble.fields.admin.user + def profileFields = grailsApplication.config.nimble.fields.enduser.profile + user.properties[fields] = params + user.profile.properties[profileFields] = params + if (!user.validate()) { + log.debug("Updated details for user [$user.id]$user.username are invalid") + render view: 'edit', model: [user: user] + } + else { def updatedUser = userService.updateUser(user) log.info("Successfully updated details for user [$user.id]$user.username") flash.type = "success" @@ -110,10 +112,10 @@ class UserController { def save = { def user = InstanceGenerator.user() user.profile = InstanceGenerator.profile() - def userFields = grailsApplication.config.nimble.fields.enduser.user - def profileFields = grailsApplication.config.nimble.fields.enduser.profile - user.properties[userFields] = params - user.profile.properties[profileFields] = params + def userFields = grailsApplication.config.nimble.fields.enduser.user + def profileFields = grailsApplication.config.nimble.fields.enduser.profile + user.properties[userFields] = params + user.profile.properties[profileFields] = params user.enabled = false user.external = false diff --git a/grails-app/i18n/messages-nimble.properties b/grails-app/i18n/messages-nimble.properties index f473c20..d5d7700 100644 --- a/grails-app/i18n/messages-nimble.properties +++ b/grails-app/i18n/messages-nimble.properties @@ -132,6 +132,7 @@ nimble.view.account.registeraccount.complete.title=Successfully registered accou nimble.view.account.registeraccount.complete.heading=Successfully registered account nimble.view.account.registeraccount.complete.descriptive=You've successfully registered for a new account on this system. nimble.view.account.registeraccount.complete.sentemail=To complete the process an email has been sent to your nominated email address. Please follow the instructions to login for the first time. +nimble.view.account.registeraccount.complete.continue=Continue nimble.view.account.forgottenpassword.initiate.title=Forgotten Password nimble.view.account.forgottenpassword.initiate.heading=Forgotten Password @@ -202,6 +203,7 @@ nimble.view.user.show.extendedinformation.heading=Extended account information ########## # Templates +nimble.template.sessionterminated.title=Session Terminated nimble.template.sessionterminated.descriptive=Unfortunately your session has expired. This usually happens when a page is left open for long periods of time without performing any action. If you're experiencing this problem often contact your helpdesk for assistance. nimble.template.logins.heading=Logins @@ -246,7 +248,6 @@ nimble.template.passwordpolicy=

To ensure security passwords must meet the fol

  • Not previously used as a password on this account
  • \ \

    Ideally set a password that is considered to be in the category 'strongest' by the indicator bar.

    - nimble.template.accountcreationpolicy=

    This service integrates with all of the following account providers

    \
  • A wonderful set of professionally designed UI's to manage all Nimble features
  • -
  • A range of Javascript components based on JQuery
  • +
  • A range of Javascript components based on JQuery, MooTools, or prototype.js
  • An extensive set of CSS classes for use with Nimble powered applications including over 1000 icons and integration with Sass
  • diff --git a/grails-app/views/role/show.gsp b/grails-app/views/role/show.gsp index 0bf4b41..1d6a14d 100644 --- a/grails-app/views/role/show.gsp +++ b/grails-app/views/role/show.gsp @@ -4,9 +4,7 @@ @@ -64,6 +62,4 @@ - - diff --git a/grails-app/views/templates/_sessionterminated.gsp b/grails-app/views/templates/_sessionterminated.gsp index 606555d..da49e1c 100644 --- a/grails-app/views/templates/_sessionterminated.gsp +++ b/grails-app/views/templates/_sessionterminated.gsp @@ -1,13 +1,3 @@ -

    -
    -
    -

    - -

    - -
    - -
    -
    -
    -
    \ No newline at end of file + + + \ No newline at end of file diff --git a/grails-app/views/templates/admin/_groups.gsp b/grails-app/views/templates/admin/_groups.gsp index aad07d8..8705b73 100644 --- a/grails-app/views/templates/admin/_groups.gsp +++ b/grails-app/views/templates/admin/_groups.gsp @@ -16,7 +16,7 @@ diff --git a/grails-app/views/templates/admin/_groups_list.gsp b/grails-app/views/templates/admin/_groups_list.gsp index 7e83c91..61861b3 100644 --- a/grails-app/views/templates/admin/_groups_list.gsp +++ b/grails-app/views/templates/admin/_groups_list.gsp @@ -16,7 +16,7 @@ - +   diff --git a/grails-app/views/templates/admin/_groups_search.gsp b/grails-app/views/templates/admin/_groups_search.gsp index 94b800a..7a2d331 100644 --- a/grails-app/views/templates/admin/_groups_search.gsp +++ b/grails-app/views/templates/admin/_groups_search.gsp @@ -14,7 +14,7 @@ ${group.description?.encodeAsHTML()} - + diff --git a/grails-app/views/templates/admin/_members.gsp b/grails-app/views/templates/admin/_members.gsp index 87ac849..926969a 100644 --- a/grails-app/views/templates/admin/_members.gsp +++ b/grails-app/views/templates/admin/_members.gsp @@ -24,7 +24,7 @@ @@ -40,7 +40,7 @@ diff --git a/grails-app/views/templates/admin/_members_group_search.gsp b/grails-app/views/templates/admin/_members_group_search.gsp index 9093f8a..a896bca 100644 --- a/grails-app/views/templates/admin/_members_group_search.gsp +++ b/grails-app/views/templates/admin/_members_group_search.gsp @@ -14,7 +14,7 @@ ${group.description.encodeAsHTML()} - + diff --git a/grails-app/views/templates/admin/_members_list.gsp b/grails-app/views/templates/admin/_members_list.gsp index a284c8d..d1a2a8b 100644 --- a/grails-app/views/templates/admin/_members_list.gsp +++ b/grails-app/views/templates/admin/_members_list.gsp @@ -26,7 +26,7 @@ - + @@ -59,7 +59,7 @@ - + diff --git a/grails-app/views/templates/admin/_members_search.gsp b/grails-app/views/templates/admin/_members_search.gsp index 52bced8..27a31b2 100644 --- a/grails-app/views/templates/admin/_members_search.gsp +++ b/grails-app/views/templates/admin/_members_search.gsp @@ -19,7 +19,7 @@ ${user?.profile?.fullName.encodeAsHTML()} - + diff --git a/grails-app/views/templates/admin/_permissions.gsp b/grails-app/views/templates/admin/_permissions.gsp index 39eab81..58b3196 100644 --- a/grails-app/views/templates/admin/_permissions.gsp +++ b/grails-app/views/templates/admin/_permissions.gsp @@ -28,7 +28,7 @@ - + \ No newline at end of file diff --git a/grails-app/views/templates/admin/_permissions_list.gsp b/grails-app/views/templates/admin/_permissions_list.gsp index 203467f..400aac9 100644 --- a/grails-app/views/templates/admin/_permissions_list.gsp +++ b/grails-app/views/templates/admin/_permissions_list.gsp @@ -20,7 +20,7 @@ - +   diff --git a/grails-app/views/templates/admin/_roles.gsp b/grails-app/views/templates/admin/_roles.gsp index 932edbb..60e3ee2 100644 --- a/grails-app/views/templates/admin/_roles.gsp +++ b/grails-app/views/templates/admin/_roles.gsp @@ -16,7 +16,7 @@ diff --git a/grails-app/views/templates/admin/_roles_list.gsp b/grails-app/views/templates/admin/_roles_list.gsp index edc33ff..a64ecd6 100644 --- a/grails-app/views/templates/admin/_roles_list.gsp +++ b/grails-app/views/templates/admin/_roles_list.gsp @@ -16,7 +16,7 @@ - +   diff --git a/grails-app/views/templates/admin/_roles_search.gsp b/grails-app/views/templates/admin/_roles_search.gsp index f72d722..dcc659f 100644 --- a/grails-app/views/templates/admin/_roles_search.gsp +++ b/grails-app/views/templates/admin/_roles_search.gsp @@ -14,7 +14,7 @@ ${role.description?.encodeAsHTML()} - + diff --git a/grails-app/views/templates/auth/_facebookjs.gsp b/grails-app/views/templates/auth/_facebookjs.gsp index c8547af..3738870 100644 --- a/grails-app/views/templates/auth/_facebookjs.gsp +++ b/grails-app/views/templates/auth/_facebookjs.gsp @@ -1,3 +1,4 @@ + @@ -7,9 +8,11 @@ + + diff --git a/grails-app/views/templates/header/_adminsetup.gsp b/grails-app/views/templates/header/_adminsetup.gsp index 55d5884..6cf154c 100644 --- a/grails-app/views/templates/header/_adminsetup.gsp +++ b/grails-app/views/templates/header/_adminsetup.gsp @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/grails-app/views/templates/header/_basecsssetup.gsp b/grails-app/views/templates/header/_basecsssetup.gsp index 31828d7..d2a84c9 100644 --- a/grails-app/views/templates/header/_basecsssetup.gsp +++ b/grails-app/views/templates/header/_basecsssetup.gsp @@ -1,3 +1,2 @@ - - + \ No newline at end of file diff --git a/grails-app/views/templates/header/_famfamfamsetup.gsp b/grails-app/views/templates/header/_famfamfamsetup.gsp index e59ae2c..c280337 100644 --- a/grails-app/views/templates/header/_famfamfamsetup.gsp +++ b/grails-app/views/templates/header/_famfamfamsetup.gsp @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/grails-app/views/templates/header/_growl.gsp b/grails-app/views/templates/header/_growl.gsp deleted file mode 100644 index 542f9af..0000000 --- a/grails-app/views/templates/header/_growl.gsp +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/grails-app/views/templates/header/_jquerysetup.gsp b/grails-app/views/templates/header/_jquerysetup.gsp deleted file mode 100644 index b485231..0000000 --- a/grails-app/views/templates/header/_jquerysetup.gsp +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/grails-app/views/templates/header/_loginsetup.gsp b/grails-app/views/templates/header/_loginsetup.gsp deleted file mode 100644 index aed9f29..0000000 --- a/grails-app/views/templates/header/_loginsetup.gsp +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/grails-app/views/templates/header/_nimblecore.gsp b/grails-app/views/templates/header/_nimblecore.gsp deleted file mode 100644 index c04fd7b..0000000 --- a/grails-app/views/templates/header/_nimblecore.gsp +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/grails-app/views/templates/header/_nimbleui.gsp b/grails-app/views/templates/header/_nimbleui.gsp deleted file mode 100644 index dd20722..0000000 --- a/grails-app/views/templates/header/_nimbleui.gsp +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/grails-app/views/templates/header/jquery/_growl.gsp b/grails-app/views/templates/header/jquery/_growl.gsp new file mode 100644 index 0000000..8b9a521 --- /dev/null +++ b/grails-app/views/templates/header/jquery/_growl.gsp @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/grails-app/views/templates/header/jquery/_loginsetup.gsp b/grails-app/views/templates/header/jquery/_loginsetup.gsp new file mode 100644 index 0000000..9238a43 --- /dev/null +++ b/grails-app/views/templates/header/jquery/_loginsetup.gsp @@ -0,0 +1,17 @@ + + diff --git a/grails-app/views/templates/header/jquery/_nimblecore.gsp b/grails-app/views/templates/header/jquery/_nimblecore.gsp new file mode 100644 index 0000000..7c378b3 --- /dev/null +++ b/grails-app/views/templates/header/jquery/_nimblecore.gsp @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/grails-app/views/templates/header/jquery/_nimbleui.gsp b/grails-app/views/templates/header/jquery/_nimbleui.gsp new file mode 100644 index 0000000..b74ecff --- /dev/null +++ b/grails-app/views/templates/header/jquery/_nimbleui.gsp @@ -0,0 +1,6 @@ + + diff --git a/grails-app/views/templates/header/jquery/_pstrength.gsp b/grails-app/views/templates/header/jquery/_pstrength.gsp new file mode 100644 index 0000000..9cf2289 --- /dev/null +++ b/grails-app/views/templates/header/jquery/_pstrength.gsp @@ -0,0 +1,12 @@ + + diff --git a/grails-app/views/templates/header/jquery/_setup.gsp b/grails-app/views/templates/header/jquery/_setup.gsp new file mode 100644 index 0000000..b87fff1 --- /dev/null +++ b/grails-app/views/templates/header/jquery/_setup.gsp @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/grails-app/views/templates/header/mootools/_growl.gsp b/grails-app/views/templates/header/mootools/_growl.gsp new file mode 100644 index 0000000..9c13a48 --- /dev/null +++ b/grails-app/views/templates/header/mootools/_growl.gsp @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/grails-app/views/templates/header/mootools/_loginsetup.gsp b/grails-app/views/templates/header/mootools/_loginsetup.gsp new file mode 100644 index 0000000..09e362e --- /dev/null +++ b/grails-app/views/templates/header/mootools/_loginsetup.gsp @@ -0,0 +1,17 @@ + + diff --git a/grails-app/views/templates/header/mootools/_nimblecore.gsp b/grails-app/views/templates/header/mootools/_nimblecore.gsp new file mode 100644 index 0000000..23997fd --- /dev/null +++ b/grails-app/views/templates/header/mootools/_nimblecore.gsp @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grails-app/views/templates/header/mootools/_nimbleui.gsp b/grails-app/views/templates/header/mootools/_nimbleui.gsp new file mode 100644 index 0000000..a6820e4 --- /dev/null +++ b/grails-app/views/templates/header/mootools/_nimbleui.gsp @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/grails-app/views/templates/header/mootools/_pstrength.gsp b/grails-app/views/templates/header/mootools/_pstrength.gsp new file mode 100644 index 0000000..6f93c38 --- /dev/null +++ b/grails-app/views/templates/header/mootools/_pstrength.gsp @@ -0,0 +1,8 @@ + + diff --git a/grails-app/views/templates/header/mootools/_setup.gsp b/grails-app/views/templates/header/mootools/_setup.gsp new file mode 100644 index 0000000..c3b744b --- /dev/null +++ b/grails-app/views/templates/header/mootools/_setup.gsp @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grails-app/views/templates/header/prototype/_growl.gsp b/grails-app/views/templates/header/prototype/_growl.gsp new file mode 100644 index 0000000..e421d1d --- /dev/null +++ b/grails-app/views/templates/header/prototype/_growl.gsp @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/grails-app/views/templates/header/prototype/_loginsetup.gsp b/grails-app/views/templates/header/prototype/_loginsetup.gsp new file mode 100644 index 0000000..e43eacf --- /dev/null +++ b/grails-app/views/templates/header/prototype/_loginsetup.gsp @@ -0,0 +1,17 @@ + + diff --git a/grails-app/views/templates/header/prototype/_nimblecore.gsp b/grails-app/views/templates/header/prototype/_nimblecore.gsp new file mode 100644 index 0000000..2fcf954 --- /dev/null +++ b/grails-app/views/templates/header/prototype/_nimblecore.gsp @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/grails-app/views/templates/header/prototype/_nimbleui.gsp b/grails-app/views/templates/header/prototype/_nimbleui.gsp new file mode 100644 index 0000000..e27432b --- /dev/null +++ b/grails-app/views/templates/header/prototype/_nimbleui.gsp @@ -0,0 +1,9 @@ + + + + + diff --git a/grails-app/views/templates/header/prototype/_pstrength.gsp b/grails-app/views/templates/header/prototype/_pstrength.gsp new file mode 100644 index 0000000..68f1f04 --- /dev/null +++ b/grails-app/views/templates/header/prototype/_pstrength.gsp @@ -0,0 +1,10 @@ + + diff --git a/grails-app/views/templates/header/prototype/_setup.gsp b/grails-app/views/templates/header/prototype/_setup.gsp new file mode 100644 index 0000000..058cc89 --- /dev/null +++ b/grails-app/views/templates/header/prototype/_setup.gsp @@ -0,0 +1,6 @@ + + + + + + diff --git a/grails-app/views/templates/inlinejs/_group.gsp b/grails-app/views/templates/inlinejs/_group.gsp deleted file mode 100644 index b4ecba8..0000000 --- a/grails-app/views/templates/inlinejs/_group.gsp +++ /dev/null @@ -1,19 +0,0 @@ -var groupSearchEndpoint = "${createLink(action:'searchgroups')}"; -var groupListEndpoint = "${createLink(action:'listgroups')}"; -var groupGrantEndpoint = "${createLink(action:'grantgroup')}"; -var groupRemoveEndpoint = "${createLink(action:'removegroup')}" - -$(function() { - listGroups('${parent.id.encodeAsHTML()}'); - $("#addgroups").hide(); - - $("#showaddgroupsbtn").click(function () { - $("#showaddgroups").hide(); - $("#addgroups").show("blind"); - }); - - $("#closegroupsearchbtn").click(function () { - $("#addgroups").hide(); - $("#showaddgroups").show(); - }); -}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/_role.gsp b/grails-app/views/templates/inlinejs/_role.gsp deleted file mode 100644 index 0fd67b2..0000000 --- a/grails-app/views/templates/inlinejs/_role.gsp +++ /dev/null @@ -1,19 +0,0 @@ -var roleSearchEndpoint = "${createLink(action:'searchroles')}"; -var roleListEndpoint = "${createLink(action:'listroles')}"; -var roleGrantEndpoint = "${createLink(action:'grantrole')}"; -var roleRemoveEndpoint = "${createLink(action:'removerole')}"; - -$(function() { - listRoles(${parent.id}); - $("#addroles").hide(); - - $("#showaddrolesbtn").click(function () { - $("#showaddroles").hide(); - $("#addroles").show("blind"); - }); - - $("#closerolesearchbtn").click(function () { - $("#addroles").hide(); - $("#showaddroles").show(); - }); -}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/jquery/_admin.gsp b/grails-app/views/templates/inlinejs/jquery/_admin.gsp new file mode 100644 index 0000000..bfb8f6f --- /dev/null +++ b/grails-app/views/templates/inlinejs/jquery/_admin.gsp @@ -0,0 +1,12 @@ +jQuery.extend(nimble.endpoints,{ + admin: { + 'list':'${createLink(controller:'admins', action:'list')}', + 'search':'${createLink(action:'search')}', + 'remove':'${createLink(action:'delete')}', + 'grant':'${createLink(action:'create')}' + } +}); + +$(function() { + nimble.listAdministrators(); +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/_flashgrowl.gsp b/grails-app/views/templates/inlinejs/jquery/_flashgrowl.gsp similarity index 55% rename from grails-app/views/templates/inlinejs/_flashgrowl.gsp rename to grails-app/views/templates/inlinejs/jquery/_flashgrowl.gsp index aaf5e8e..e83dd79 100644 --- a/grails-app/views/templates/inlinejs/_flashgrowl.gsp +++ b/grails-app/views/templates/inlinejs/jquery/_flashgrowl.gsp @@ -1,10 +1,10 @@ $(function() { - growl("${flash.type.encodeAsHTML()}", "${flash.message.encodeAsHTML()}", 5000); + nimble.growl("${flash.type.encodeAsHTML()}", "${flash.message.encodeAsHTML()}", 5000); - growl("info", "${flash.message.encodeAsHTML()}", 5000); + nimble.growl("info", "${flash.message.encodeAsHTML()}", 5000); }); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/jquery/_group.gsp b/grails-app/views/templates/inlinejs/jquery/_group.gsp new file mode 100644 index 0000000..d7b2764 --- /dev/null +++ b/grails-app/views/templates/inlinejs/jquery/_group.gsp @@ -0,0 +1,23 @@ +jQuery.extend(nimble.endpoints,{ +group: { + 'list':'${createLink(action:'listgroups')}', + 'search':'${createLink(action:'searchgroups')}', + 'remove':'${createLink(action:'removegroup')}', + 'grant':'${createLink(action:'grantgroup')}' + } +}); + +$(function() { + nimble.listGroups('${parent.id.encodeAsHTML()}'); + $("#addgroups").hide(); + + $("#showaddgroupsbtn").click(function () { + $("#showaddgroups").hide(); + $("#addgroups").show("blind"); + }); + + $("#closegroupsearchbtn").click(function () { + $("#addgroups").hide(); + $("#showaddgroups").show(); + }); +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/_member.gsp b/grails-app/views/templates/inlinejs/jquery/_member.gsp similarity index 58% rename from grails-app/views/templates/inlinejs/_member.gsp rename to grails-app/views/templates/inlinejs/jquery/_member.gsp index 502c9dd..cae7515 100644 --- a/grails-app/views/templates/inlinejs/_member.gsp +++ b/grails-app/views/templates/inlinejs/jquery/_member.gsp @@ -1,13 +1,17 @@ -var memberListEndpoint = "${createLink(action:'listmembers')}"; -var memberSearchEndpoint = "${createLink(action:'searchnewmembers')}"; -var memberGroupSearchEndpoint = "${createLink(action:'searchnewgroupmembers')}"; -var memberAddEndpoint = "${createLink(action:'addmember')}"; -var memberRemoveEndpoint = "${createLink(action:'removemember')}"; -var memberAddGroupEndpoint = "${createLink(action:'addgroupmember')}"; -var memberRemoveGroupEndpoint = "${createLink(action:'removegroupmember')}"; +jQuery.extend(nimble.endpoints,{ + member: { + 'list':'${createLink(action:'listmembers')}', + 'search':'${createLink(action:'searchnewmembers')}', + 'remove':'${createLink(action:'removemember')}', + 'add':'${createLink(action:'addmember')}', + 'groupSearch':'${createLink(action:'searchnewgroupmembers')}', + 'groupAdd':'${createLink(action:'addgroupmember')}', + 'groupRemove':'${createLink(action:'removegroupmember')}' + } +}); $(function() { - listMembers(${parent.id}); + nimble.listMembers(${parent.id}); $("#addmembers").hide(); $("#memberaddgroups").hide(); diff --git a/grails-app/views/templates/inlinejs/_permission.gsp b/grails-app/views/templates/inlinejs/jquery/_permission.gsp similarity index 51% rename from grails-app/views/templates/inlinejs/_permission.gsp rename to grails-app/views/templates/inlinejs/jquery/_permission.gsp index 4866bad..ffecea3 100644 --- a/grails-app/views/templates/inlinejs/_permission.gsp +++ b/grails-app/views/templates/inlinejs/jquery/_permission.gsp @@ -1,9 +1,11 @@ -var permissionListEndpoint = "${createLink(action:'listpermissions')}"; -var permissionCreateEndpoint = "${createLink(action:'createpermission')}"; -var permissionRemoveEndpoint = "${createLink(action:'removepermission')}"; +jQuery.extend(nimble.endpoints,{ + permission: { 'list':'${createLink(action:'listpermissions')}', + 'remove':'${createLink(action:'removepermission')}', + 'create':'${createLink(action:'createpermission')}' } +}); $(function() { - listPermissions(${parent.id}); + nimble.listPermissions(${parent.id}); $("#addpermissions").hide(); $("#showaddpermissionsbtn").click(function () { diff --git a/grails-app/views/templates/inlinejs/jquery/_role.gsp b/grails-app/views/templates/inlinejs/jquery/_role.gsp new file mode 100644 index 0000000..e44a79b --- /dev/null +++ b/grails-app/views/templates/inlinejs/jquery/_role.gsp @@ -0,0 +1,22 @@ +jQuery.extend(nimble.endpoints,{ +role: { 'list':'${createLink(action: 'listroles')}', + 'search':'${createLink(action: 'searchroles')}', + 'remove':'${createLink(action: 'removerole')}', + 'grant':'${createLink(action: 'grantrole')}' + } +}); + +$(function() { + nimble.listRoles(${parent.id}); + $("#addroles").hide(); + + $("#showaddrolesbtn").click(function () { + $("#showaddroles").hide(); + $("#addroles").show("blind"); + }); + + $("#closerolesearchbtn").click(function () { + $("#addroles").hide(); + $("#showaddroles").show(); + }); +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/_user.gsp b/grails-app/views/templates/inlinejs/jquery/_user.gsp similarity index 51% rename from grails-app/views/templates/inlinejs/_user.gsp rename to grails-app/views/templates/inlinejs/jquery/_user.gsp index 5d8ff65..5aff22a 100644 --- a/grails-app/views/templates/inlinejs/_user.gsp +++ b/grails-app/views/templates/inlinejs/jquery/_user.gsp @@ -1,11 +1,14 @@ -var userLoginsEndpoint = "${createLink(action:'listlogins')}" -var enableUserEndpoint = "${createLink(action:'enable')}"; -var disableUserEndpoint = "${createLink(action:'disable')}"; -var enableAPIEndpoint = "${createLink(action:'enableapi')}"; -var disableAPIEndpoint = "${createLink(action:'disableapi')}"; +jQuery.extend(nimble.endpoints,{ +user: { 'logins':'${createLink(action:'listlogins')}', + 'enableAPI':'${createLink(action:'enableapi')}', + 'disableAPI':'${createLink(action:'disableapi')}', + 'enable':'${createLink(action:'enable')}', + 'disable':'${createLink(action:'disable')}' + } +}); $(function() { - listLogins('${user.id}'); + nimble.listLogins('${user.id}'); $("#enableuser").hide(); $("#enableduser").hide(); diff --git a/grails-app/views/templates/inlinejs/mootools/_admin.gsp b/grails-app/views/templates/inlinejs/mootools/_admin.gsp new file mode 100644 index 0000000..56e2bd0 --- /dev/null +++ b/grails-app/views/templates/inlinejs/mootools/_admin.gsp @@ -0,0 +1,12 @@ +nimble.endpoints.extend({ + admin: { + 'list':'${createLink(controller:'admins', action:'list')}', + 'search':'${createLink(action:'search')}', + 'remove':'${createLink(action:'delete')}', + 'grant':'${createLink(action:'create')}' + } +}); + +window.addEvent('domready', function() { + nimble.listAdministrators(); +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/mootools/_flashgrowl.gsp b/grails-app/views/templates/inlinejs/mootools/_flashgrowl.gsp new file mode 100644 index 0000000..9924c1c --- /dev/null +++ b/grails-app/views/templates/inlinejs/mootools/_flashgrowl.gsp @@ -0,0 +1,10 @@ +window.addEvent('domready', function() { + + + nimble.growl("${flash.type.encodeAsHTML()}", "${flash.message.encodeAsHTML()}", 5000); + + + nimble.growl("info", "${flash.message.encodeAsHTML()}", 5000); + + +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/mootools/_group.gsp b/grails-app/views/templates/inlinejs/mootools/_group.gsp new file mode 100644 index 0000000..0e40eb4 --- /dev/null +++ b/grails-app/views/templates/inlinejs/mootools/_group.gsp @@ -0,0 +1,24 @@ +nimble.endpoints.extend({ +group: { + 'list':'${createLink(action:'listgroups')}', + 'search':'${createLink(action:'searchgroups')}', + 'remove':'${createLink(action:'removegroup')}', + 'grant':'${createLink(action:'grantgroup')}' + } +}); + +window.addEvent('domready', function() { + $("addgroups").hide(); + + $("showaddgroupsbtn").addEvent('click',function () { + $("showaddgroups").hide(); + $("addgroups").show("blind"); + }); + + $("closegroupsearchbtn").addEvent('click',function () { + $("addgroups").hide(); + $("showaddgroups").show(); + }); + + nimble.listGroups('${parent.id.encodeAsHTML()}'); +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/mootools/_member.gsp b/grails-app/views/templates/inlinejs/mootools/_member.gsp new file mode 100644 index 0000000..f087d48 --- /dev/null +++ b/grails-app/views/templates/inlinejs/mootools/_member.gsp @@ -0,0 +1,47 @@ +nimble.endpoints.extend({ + member: { + 'list':'${createLink(action:'listmembers')}', + 'search':'${createLink(action:'searchnewmembers')}', + 'remove':'${createLink(action:'removemember')}', + 'add':'${createLink(action:'addmember')}', + 'groupSearch':'${createLink(action:'searchnewgroupmembers')}', + 'groupAdd':'${createLink(action:'addgroupmember')}', + 'groupRemove':'${createLink(action:'removegroupmember')}' + } +}); + +window.addEvent('domready', function() { + nimble.listMembers(${parent.id}); + if($("addmembers")) $("addmembers").hide(); + if($("memberaddgroups")) $("memberaddgroups").hide(); + + if($("showaddmembersbtn")) + $("showaddmembersbtn").addEvent('click',function() { + $("showaddmembers").hide(); + $("addmembers").show("blind"); + }) + + if($("searchmembergroups")) + $("searchmembergroups").addEvent('click',function() { + $("memberaddusers").hide(); + $("memberaddgroups").show("blind"); + }); + + if($("searchmemberusers")) + $("searchmemberusers").addEvent('click',function() { + $("memberaddgroups").hide(); + $("memberaddusers").show(); + }); + + if($("closeaddmembersbtn")) + $("closeaddmembersbtn").addEvent('click',function() { + $("addmembers").hide(); + $("showaddmembers").show(); + }); + + if($("closeaddgroupmembersbtn")) + $("closeaddgroupmembersbtn").addEvent('click',function() { + $("addmembers").hide(); + $("showaddmembers").show(); + }); +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/mootools/_permission.gsp b/grails-app/views/templates/inlinejs/mootools/_permission.gsp new file mode 100644 index 0000000..cac42a3 --- /dev/null +++ b/grails-app/views/templates/inlinejs/mootools/_permission.gsp @@ -0,0 +1,20 @@ +nimble.endpoints.extend({ + permission: { 'list':'${createLink(action:'listpermissions')}', + 'remove':'${createLink(action:'removepermission')}', + 'create':'${createLink(action:'createpermission')}' } +}); + +window.addEvent('domready', function() { + nimble.listPermissions(${parent.id}); + $("addpermissions").hide(); + + $("showaddpermissionsbtn").addEvent('click',function () { + $("showaddpermissions").hide(); + $("addpermissions").show("blind"); + }); + + $("closepermissionsaddbtn").addEvent('click',function () { + $("addpermissions").hide(); + $("showaddpermissions").show(); + }); +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/mootools/_role.gsp b/grails-app/views/templates/inlinejs/mootools/_role.gsp new file mode 100644 index 0000000..a6294fb --- /dev/null +++ b/grails-app/views/templates/inlinejs/mootools/_role.gsp @@ -0,0 +1,22 @@ +nimble.endpoints.extend({ +role: { 'list':'${createLink(action: 'listroles')}', + 'search':'${createLink(action: 'searchroles')}', + 'remove':'${createLink(action: 'removerole')}', + 'grant':'${createLink(action: 'grantrole')}' + } +}); + +window.addEvent('domready', function() { + nimble.listRoles(${parent.id}); + $("addroles").hide(); + + $("showaddrolesbtn").addEvent('click',function () { + $("showaddroles").hide(); + $("addroles").show("blind"); + }); + + $("closerolesearchbtn").addEvent('click',function () { + $("addroles").hide(); + $("showaddroles").show(); + }); +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/mootools/_user.gsp b/grails-app/views/templates/inlinejs/mootools/_user.gsp new file mode 100644 index 0000000..c1ab02f --- /dev/null +++ b/grails-app/views/templates/inlinejs/mootools/_user.gsp @@ -0,0 +1,28 @@ +nimble.endpoints.extend({ +user: { 'logins':'${createLink(action:'listlogins')}', + 'enableAPI':'${createLink(action:'enableapi')}', + 'disableAPI':'${createLink(action:'disableapi')}', + 'enable':'${createLink(action:'enable')}', + 'disable':'${createLink(action:'disable')}' + } +}); + +window.addEvent('domready', function() { + nimble.listLogins('${user.id}'); + + $("enableuser").hide(); + $("enableduser").hide(); + + + $("disableuser").hide(); + $("disableduser").hide(); + + + $("disabledapi").hide(); + $("enableuserapi").hide(); + + + $("enabledapi").hide(); + $("disableuserapi").hide(); + +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/prototype/_admin.gsp b/grails-app/views/templates/inlinejs/prototype/_admin.gsp new file mode 100644 index 0000000..1fa3702 --- /dev/null +++ b/grails-app/views/templates/inlinejs/prototype/_admin.gsp @@ -0,0 +1,12 @@ +nimble.endpoints=$H(nimble.endpoints).merge({ + admin: { + 'list':'${createLink(controller:'admins', action:'list')}', + 'search':'${createLink(action:'search')}', + 'remove':'${createLink(action:'delete')}', + 'grant':'${createLink(action:'create')}' + } +}).toObject(); + +document.observe("dom:loaded", function() { + nimble.listAdministrators(); +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/prototype/_flashgrowl.gsp b/grails-app/views/templates/inlinejs/prototype/_flashgrowl.gsp new file mode 100644 index 0000000..b04892a --- /dev/null +++ b/grails-app/views/templates/inlinejs/prototype/_flashgrowl.gsp @@ -0,0 +1,10 @@ +document.observe("dom:loaded", function() { + + + nimble.growl("${flash.type.encodeAsHTML()}", "${flash.message.encodeAsHTML()}", 5000); + + + nimble.growl("info", "${flash.message.encodeAsHTML()}", 5000); + + +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/prototype/_group.gsp b/grails-app/views/templates/inlinejs/prototype/_group.gsp new file mode 100644 index 0000000..aac611b --- /dev/null +++ b/grails-app/views/templates/inlinejs/prototype/_group.gsp @@ -0,0 +1,24 @@ +nimble.endpoints=$H(nimble.endpoints).merge({ +group: { + 'list':'${createLink(action:'listgroups')}', + 'search':'${createLink(action:'searchgroups')}', + 'remove':'${createLink(action:'removegroup')}', + 'grant':'${createLink(action:'grantgroup')}' + } +}).toObject(); + +document.observe("dom:loaded", function() { + $("addgroups").hide(); + + $("showaddgroupsbtn").observe('click',function () { + $("showaddgroups").hide(); + $("addgroups").show("blind"); + }); + + $("closegroupsearchbtn").observe('click',function () { + $("addgroups").hide(); + $("showaddgroups").show(); + }); + + nimble.listGroups('${parent.id.encodeAsHTML()}'); +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/prototype/_member.gsp b/grails-app/views/templates/inlinejs/prototype/_member.gsp new file mode 100644 index 0000000..7454490 --- /dev/null +++ b/grails-app/views/templates/inlinejs/prototype/_member.gsp @@ -0,0 +1,47 @@ +nimble.endpoints=$H(nimble.endpoints).merge({ + member: { + 'list':'${createLink(action:'listmembers')}', + 'search':'${createLink(action:'searchnewmembers')}', + 'remove':'${createLink(action:'removemember')}', + 'add':'${createLink(action:'addmember')}', + 'groupSearch':'${createLink(action:'searchnewgroupmembers')}', + 'groupAdd':'${createLink(action:'addgroupmember')}', + 'groupRemove':'${createLink(action:'removegroupmember')}' + } +}).toObject(); + +document.observe("dom:loaded", function() { + nimble.listMembers(${parent.id}); + if($("addmembers")) $("addmembers").hide(); + if($("memberaddgroups")) $("memberaddgroups").hide(); + + if($("showaddmembersbtn")) + $("showaddmembersbtn").observe('click',function() { + $("showaddmembers").hide(); + $("addmembers").show("blind"); + }) + + if($("searchmembergroups")) + $("searchmembergroups").observe('click',function() { + $("memberaddusers").hide(); + $("memberaddgroups").show("blind"); + }); + + if($("searchmemberusers")) + $("searchmemberusers").observe('click',function() { + $("memberaddgroups").hide(); + $("memberaddusers").show(); + }); + + if($("closeaddmembersbtn")) + $("closeaddmembersbtn").observe('click',function() { + $("addmembers").hide(); + $("showaddmembers").show(); + }); + + if($("closeaddgroupmembersbtn")) + $("closeaddgroupmembersbtn").observe('click',function() { + $("addmembers").hide(); + $("showaddmembers").show(); + }); +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/prototype/_permission.gsp b/grails-app/views/templates/inlinejs/prototype/_permission.gsp new file mode 100644 index 0000000..b7018e6 --- /dev/null +++ b/grails-app/views/templates/inlinejs/prototype/_permission.gsp @@ -0,0 +1,22 @@ +nimble.endpoints=$H(nimble.endpoints).merge({ + permission: { + 'list':'${createLink(action:'listpermissions')}', + 'remove':'${createLink(action:'removepermission')}', + 'create':'${createLink(action:'createpermission')}' + } +}).toObject(); + +document.observe("dom:loaded", function() { + nimble.listPermissions(${parent.id}); + $("addpermissions").hide(); + + $("showaddpermissionsbtn").observe('click',function () { + $("showaddpermissions").hide(); + $("addpermissions").show("blind"); + }); + + $("closepermissionsaddbtn").observe('click',function () { + $("addpermissions").hide(); + $("showaddpermissions").show(); + }); +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/prototype/_role.gsp b/grails-app/views/templates/inlinejs/prototype/_role.gsp new file mode 100644 index 0000000..c9e6eb6 --- /dev/null +++ b/grails-app/views/templates/inlinejs/prototype/_role.gsp @@ -0,0 +1,23 @@ +nimble.endpoints=$H(nimble.endpoints).merge({ + role: { + 'list':'${createLink(action: 'listroles')}', + 'search':'${createLink(action: 'searchroles')}', + 'remove':'${createLink(action: 'removerole')}', + 'grant':'${createLink(action: 'grantrole')}' + } +}).toObject(); + +document.observe("dom:loaded", function() { + nimble.listRoles(${parent.id}); + $("addroles").hide(); + + $("showaddrolesbtn").observe('click',function () { + $("showaddroles").hide(); + $("addroles").show("blind"); + }); + + $("closerolesearchbtn").observe('click',function () { + $("addroles").hide(); + $("showaddroles").show(); + }); +}); \ No newline at end of file diff --git a/grails-app/views/templates/inlinejs/prototype/_user.gsp b/grails-app/views/templates/inlinejs/prototype/_user.gsp new file mode 100644 index 0000000..ec7198c --- /dev/null +++ b/grails-app/views/templates/inlinejs/prototype/_user.gsp @@ -0,0 +1,29 @@ +nimble.endpoints=$H(nimble.endpoints).merge({ + user: { + 'logins':'${createLink(action:'listlogins')}', + 'enableAPI':'${createLink(action:'enableapi')}', + 'disableAPI':'${createLink(action:'disableapi')}', + 'enable':'${createLink(action:'enable')}', + 'disable':'${createLink(action:'disable')}' + } +}).toObject(); + +document.observe("dom:loaded", function() { + nimble.listLogins('${user.id}'); + + $("enableuser").hide(); + $("enableduser").hide(); + + + $("disableuser").hide(); + $("disableduser").hide(); + + + $("disabledapi").hide(); + $("enableuserapi").hide(); + + + $("enabledapi").hide(); + $("disableuserapi").hide(); + +}); \ No newline at end of file diff --git a/grails-app/views/templates/nimble/help/_accountcreationpolicy.gsp b/grails-app/views/templates/nimble/help/_accountcreationpolicy.gsp deleted file mode 100644 index aa0783c..0000000 --- a/grails-app/views/templates/nimble/help/_accountcreationpolicy.gsp +++ /dev/null @@ -1,15 +0,0 @@ -
    -
    -
    - - -
    - - -
    - -
    -
    -
    - - \ No newline at end of file diff --git a/grails-app/views/templates/nimble/help/_confirmation.gsp b/grails-app/views/templates/nimble/help/_confirmation.gsp deleted file mode 100644 index f9b1134..0000000 --- a/grails-app/views/templates/nimble/help/_confirmation.gsp +++ /dev/null @@ -1,8 +0,0 @@ -
    -

     

    - -
    - Accept - Cancel -
    -
    diff --git a/grails-app/views/templates/nimble/help/_passwordpolicy.gsp b/grails-app/views/templates/nimble/help/_passwordpolicy.gsp deleted file mode 100644 index 17aadfb..0000000 --- a/grails-app/views/templates/nimble/help/_passwordpolicy.gsp +++ /dev/null @@ -1,20 +0,0 @@ - - - -
    -
    -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/grails-app/views/templates/nimble/help/_usernamepolicy.gsp b/grails-app/views/templates/nimble/help/_usernamepolicy.gsp deleted file mode 100644 index 762a29e..0000000 --- a/grails-app/views/templates/nimble/help/_usernamepolicy.gsp +++ /dev/null @@ -1,17 +0,0 @@ - - -
    -
    -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/grails-app/views/templates/nimble/login/_login.gsp b/grails-app/views/templates/nimble/login/_login.gsp index 2ebeea1..e759f64 100644 --- a/grails-app/views/templates/nimble/login/_login.gsp +++ b/grails-app/views/templates/nimble/login/_login.gsp @@ -1,25 +1,8 @@ <g:message code="nimble.template.login.title" /> - - @@ -53,7 +36,7 @@
    - +
    @@ -61,7 +44,7 @@
    - +
    @@ -130,7 +113,7 @@
    - +
    @@ -145,7 +128,7 @@
    - +
    @@ -160,7 +143,7 @@
    - +
    @@ -181,7 +164,7 @@
    -

    +

    @@ -189,38 +172,38 @@ @@ -258,7 +241,7 @@
    - +
    @@ -276,7 +259,6 @@ - diff --git a/grails-app/views/templates/nimble/navigation/_sidenavigation.gsp b/grails-app/views/templates/nimble/navigation/_sidenavigation.gsp index 672a2fb..a61e58e 100644 --- a/grails-app/views/templates/nimble/navigation/_sidenavigation.gsp +++ b/grails-app/views/templates/nimble/navigation/_sidenavigation.gsp @@ -35,17 +35,17 @@
  • - +
  • - +
  • - +
  • - +
  • diff --git a/grails-app/views/templates/tags/_verifyfield.gsp b/grails-app/views/templates/tags/_verifyfield.gsp index 82163e5..22f09fd 100644 --- a/grails-app/views/templates/tags/_verifyfield.gsp +++ b/grails-app/views/templates/tags/_verifyfield.gsp @@ -1,7 +1,5 @@ - - +   - -  \ No newline at end of file + \ No newline at end of file diff --git a/grails-app/views/user/changelocalpassword.gsp b/grails-app/views/user/changelocalpassword.gsp index 1e73a42..b8e8b82 100644 --- a/grails-app/views/user/changelocalpassword.gsp +++ b/grails-app/views/user/changelocalpassword.gsp @@ -1,9 +1,7 @@ <g:message code="nimble.view.user.changelocalpassword.title" /> - + @@ -55,6 +53,8 @@ - + \ No newline at end of file diff --git a/grails-app/views/user/changepassword.gsp b/grails-app/views/user/changepassword.gsp index 57ae733..844cea2 100644 --- a/grails-app/views/user/changepassword.gsp +++ b/grails-app/views/user/changepassword.gsp @@ -1,9 +1,7 @@ <g:message code="nimble.view.user.changepassword.title" /> - + @@ -53,5 +51,8 @@
    - + - +
    - + - +
    - + - +
    - + - +
    - + + \ No newline at end of file diff --git a/grails-app/views/user/create.gsp b/grails-app/views/user/create.gsp index 3dcb104..22ca65d 100644 --- a/grails-app/views/user/create.gsp +++ b/grails-app/views/user/create.gsp @@ -1,6 +1,7 @@ <g:message code="nimble.view.user.create.title" /> + @@ -63,6 +64,9 @@ - - + + diff --git a/grails-app/views/user/edit.gsp b/grails-app/views/user/edit.gsp index 11ec1c1..49943d4 100644 --- a/grails-app/views/user/edit.gsp +++ b/grails-app/views/user/edit.gsp @@ -1,9 +1,6 @@ <g:message code="nimble.view.user.edit.title" /> - diff --git a/grails-app/views/user/show.gsp b/grails-app/views/user/show.gsp index 81ef70a..cc91d4a 100644 --- a/grails-app/views/user/show.gsp +++ b/grails-app/views/user/show.gsp @@ -6,16 +6,13 @@ - - $(function() { - $("#tabs").tabs(); - }); + nimble.createTabs('tabs'); -

    +

    diff --git a/lib/jruby-complete-1.5.0.RC1.jar b/lib/jruby-complete-1.5.0.RC1.jar new file mode 100644 index 0000000..bc5e675 Binary files /dev/null and b/lib/jruby-complete-1.5.0.RC1.jar differ diff --git a/lib/yuicompressor-2.4.2.jar b/lib/yuicompressor-2.4.2.jar new file mode 100644 index 0000000..c29470b Binary files /dev/null and b/lib/yuicompressor-2.4.2.jar differ diff --git a/licensors/jquery/AUTHORS.txt b/licensors/jquery/AUTHORS.txt new file mode 100644 index 0000000..3f61be2 --- /dev/null +++ b/licensors/jquery/AUTHORS.txt @@ -0,0 +1,31 @@ +jQuery UI Authors (http://ui.jquery.com/about) + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +and logs, available at http://jquery-ui.googlecode.com/svn/ + +Brandon Aaron +Paul Bakaus (paulbakaus.com) +David Bolter +Rich Caloggero +Chi Cheng (cloudream@gmail.com) +Colin Clark (http://colin.atrc.utoronto.ca/) +Michelle D'Souza +Aaron Eisenberger (aaronchi@gmail.com) +Ariel Flesler +Bohdan Ganicky +Scott González +Marc Grabanski (m@marcgrabanski.com) +Klaus Hartl (stilbuero.de) +Scott Jehl +Cody Lindley +Eduardo Lundgren (eduardolundgren@gmail.com) +Todd Parker +John Resig +Patty Toland +Ca-Phun Ung (yelotofu.com) +Keith Wood (kbwood@virginbroadband.com.au) +Maggie Costello Wachs +Richard D. Worth (rdworth.org) +Jörn Zaefferer (bassistance.de) +Chris Doty (cdoty1@yahoo.com) diff --git a/licensors/polar/MIT-LICENSE.txt b/licensors/polar/MIT-LICENSE.txt new file mode 100644 index 0000000..e85ecb4 --- /dev/null +++ b/licensors/polar/MIT-LICENSE.txt @@ -0,0 +1,20 @@ +Copyright (c) 2010 Chris Doty, http://polaropposite.com/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/licensors/prototype/Saxena-MIT-LICENSE.txt b/licensors/prototype/Saxena-MIT-LICENSE.txt new file mode 100644 index 0000000..e9388da --- /dev/null +++ b/licensors/prototype/Saxena-MIT-LICENSE.txt @@ -0,0 +1,22 @@ +Copyright (c) 2009 Prateek Saxena + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (growl-prototype), to deal in growl-prototype without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of it, and to permit persons to whom it +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/licensors/prototype/okonet-MIT-LICENSE.txt b/licensors/prototype/okonet-MIT-LICENSE.txt new file mode 100644 index 0000000..7ae2f89 --- /dev/null +++ b/licensors/prototype/okonet-MIT-LICENSE.txt @@ -0,0 +1 @@ +Copyright (c) 2006-2007 Andrey Okonetchnikov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/licensors/yuicompressor/README b/licensors/yuicompressor/README new file mode 100644 index 0000000..1604846 --- /dev/null +++ b/licensors/yuicompressor/README @@ -0,0 +1,140 @@ +============================================================================== +YUI Compressor +============================================================================== + +NAME + + YUI Compressor - The Yahoo! JavaScript and CSS Compressor + +SYNOPSIS + + Usage: java -jar yuicompressor-x.y.z.jar [options] [input file] + + Global Options + -h, --help Displays this information + --type Specifies the type of the input file + --charset Read the input file using + --line-break Insert a line break after the specified column number + -v, --verbose Display informational messages and warnings + -o Place the output into . Defaults to stdout. + + JavaScript Options + --nomunge Minify only, do not obfuscate + --preserve-semi Preserve all semicolons + --disable-optimizations Disable all micro optimizations + +DESCRIPTION + + The YUI Compressor is a JavaScript compressor which, in addition to removing + comments and white-spaces, obfuscates local variables using the smallest + possible variable name. This obfuscation is safe, even when using constructs + such as 'eval' or 'with' (although the compression is not optimal is those + cases) Compared to jsmin, the average savings is around 20%. + + The YUI Compressor is also able to safely compress CSS files. The decision + on which compressor is being used is made on the file extension (js or css) + +GLOBAL OPTIONS + + -h, --help + Prints help on how to use the YUI Compressor + + --line-break + Some source control tools don't like files containing lines longer than, + say 8000 characters. The linebreak option is used in that case to split + long lines after a specific column. It can also be used to make the code + more readable, easier to debug (especially with the MS Script Debugger) + Specify 0 to get a line break after each semi-colon in JavaScript, and + after each rule in CSS. + + --type js|css + The type of compressor (JavaScript or CSS) is chosen based on the + extension of the input file name (.js or .css) This option is required + if no input file has been specified. Otherwise, this option is only + required if the input file extension is neither 'js' nor 'css'. + + --charset character-set + If a supported character set is specified, the YUI Compressor will use it + to read the input file. Otherwise, it will assume that the platform's + default character set is being used. The output file is encoded using + the same character set. + + -o outfile + Place output in file outfile. If not specified, the YUI Compressor will + default to the standard output, which you can redirect to a file. + + -v, --verbose + Display informational messages and warnings. + +JAVASCRIPT ONLY OPTIONS + + --nomunge + Minify only. Do not obfuscate local symbols. + + --preserve-semi + Preserve unnecessary semicolons (such as right before a '}') This option + is useful when compressed code has to be run through JSLint (which is the + case of YUI for example) + + --disable-optimizations + Disable all the built-in micro optimizations. + +NOTES + + + If no input file is specified, it defaults to stdin. + + + The YUI Compressor requires Java version >= 1.4. + + + It is possible to prevent a local variable, nested function or function + argument from being obfuscated by using "hints". A hint is a string that + is located at the very beginning of a function body like so: + + function fn (arg1, arg2, arg3) { + "arg2:nomunge, localVar:nomunge, nestedFn:nomunge"; + + ... + var localVar; + ... + + function nestedFn () { + .... + } + + ... + } + + The hint itself disappears from the compressed file. + + + C-style comments starting with /*! are preserved. This is useful with + comments containing copyright/license information. For example: + + /*! + * TERMS OF USE - EASING EQUATIONS + * Open source under the BSD License. + * Copyright 2001 Robert Penner All rights reserved. + */ + + becomes: + + /* + * TERMS OF USE - EASING EQUATIONS + * Open source under the BSD License. + * Copyright 2001 Robert Penner All rights reserved. + */ + +AUTHOR + + The YUI Compressor was written and is maintained by: + Julien Lecomte + The CSS portion is a port of Isaac Schlueter's cssmin utility. + +COPYRIGHT + + Copyright (c) 2007-2009, Yahoo! Inc. All rights reserved. + +LICENSE + + All code specific to YUI Compressor is issued under a BSD license. + YUI Compressor extends and implements code from Mozilla's Rhino project. + Rhino is issued under the Mozilla Public License (MPL), and MPL applies + to the Rhino source and binaries that are distributed with YUI Compressor. \ No newline at end of file diff --git a/scripts/InstallCompass.groovy b/scripts/InstallCompass.groovy new file mode 100644 index 0000000..03fd783 --- /dev/null +++ b/scripts/InstallCompass.groovy @@ -0,0 +1,36 @@ +includeTargets << grailsScript("Init") + +target(main: "Execute jruby install to install compass gem!") { + + def s = File.separator + def gemPath = userHome.getCanonicalPath() + /\.gem/ + + // add gem source + def command = "java -jar ${nimblePluginDir}"+s+"lib"+s+"jruby-complete-1.5.0.RC1.jar -S gem sources -a http://gems.github.com" + println command + def proc = command.execute() // Call *execute* on the string + proc.consumeProcessOutput(System.out, System.err) + proc.waitFor() + + // install compass + command = "java -jar ${nimblePluginDir}"+s+"lib"+s+"jruby-complete-1.5.0.RC1.jar -S gem install -i ${gemPath} chriseppstein-compass --no-rdoc --no-ri" + println command + proc = command.execute() // Call *execute* on the string + proc.consumeProcessOutput(System.out, System.err) + proc.waitFor() + + def foundCompass = false + new File(userHome.getCanonicalPath() + /\.gem\jruby\1.8\gems/).eachDir { dir -> if(dir.getName().startsWith('chriseppstein-compass')) foundCompass = true } + if(foundCompass) { + println "Compass Successfully Installed" + + compass = gemPath+s+"bin"+s+"compass" + command = "java -jar ${nimblePluginDir}${s}lib${s}jruby-complete-1.5.0.RC1.jar -S ${compass} -h" + println command + proc = command.execute() // Call *execute* on the string + proc.consumeProcessOutput(System.out, System.err) + proc.waitFor() + } +} + +setDefaultTarget(main) diff --git a/scripts/JackBeNimble.groovy b/scripts/JackBeNimble.groovy index 0b136a9..9ee55d1 100644 --- a/scripts/JackBeNimble.groovy +++ b/scripts/JackBeNimble.groovy @@ -73,6 +73,7 @@ target ( default : 'Sets up a new project with a common Nimble base environment // i18n copy(file:"${nimblePluginDir}/grails-app/i18n/messages-nimble.properties", todir: "${basedir}/grails-app/i18n", overwrite: false) copy(file:"${nimblePluginDir}/grails-app/i18n/messages-nimble_de.properties", todir: "${basedir}/grails-app/i18n", overwrite: false) + copy(file:"${nimblePluginDir}/grails-app/i18n/messages-nimble_pt.properties", todir: "${basedir}/grails-app/i18n", overwrite: false) } diff --git a/scripts/_Events.groovy b/scripts/_Events.groovy new file mode 100644 index 0000000..b77e62e --- /dev/null +++ b/scripts/_Events.groovy @@ -0,0 +1,208 @@ +/* +* Nimble, an extensive application base for Grails +* Copyright (C) 2010 Chris Doty +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import grails.util.GrailsUtil +import org.apache.catalina.loader.WebappLoader +import org.codehaus.groovy.grails.plugins.GrailsPluginUtils + +includeTargets << grailsScript("_GrailsArgParsing") + +createVirtualDirectory = { tomcat,name,path -> + try { + def aliasName = null + new GrailsPluginUtils().getPluginInfos().each { it -> + if(it.getName()=='nimble') { + aliasName = serverContextPath + "/plugins/" + it.getName() + "-" + it.getVersion() + "/" + name + } + } + + if(aliasName) { + def s=File.separator + buildroot= "/nimble/WEB-INF/classes" + webroot = new File(nimblePluginDir.getCanonicalPath() + s + path).getCanonicalPath() + println "Creating virtual directory of " + aliasName + " pointed to " + webroot + context = tomcat.addWebapp(aliasName, webroot); + context.reloadable = true + WebappLoader loader = new WebappLoader(tomcat.class.classLoader) + loader.addRepository(new File(buildroot).toURI().toURL().toString()); + context.loader = loader + loader.container = context + } + } catch( Exception e ) { + println 'failed to create virtual directory ' + name + println e.message + } +} + +eventConfigureTomcat = {tomcat -> + if(GrailsUtil.environment=="development") + createVirtualDirectory(tomcat,"dev",'./src') +} + +copyFile = { from,to -> + def src=new File("${from}") + def dest=new File("${to}") + if(!dest.exists() || src.lastModified()>dest.lastModified()) { + ant.copy(file:"${src.getCanonicalFile()}", tofile:"${dest.getCanonicalFile()}", overwrite: true, preservelastmodified:true) + } +} + +eventCleanStart = { + if(ant.antProject.properties."base.name"=='nimble' && !buildConfig.nimble.resources.noclean) { + def s=File.separator + + // clear the destination directory + def js = "${nimblePluginDir}${s}web-app${s}js${s}" + ant.delete(dir:"${js}") + def css = "${nimblePluginDir}${s}web-app${s}css${s}" + ant.delete(dir:"${css}") + def images = "${nimblePluginDir}${s}web-app${s}images${s}" + ant.delete(dir:"${images}") + } +} + +compressFiles = { fileType,compress -> + // determine source and destination base paths + def s=File.separatorChar + def nimblePath = (new File("${nimblePluginDir.toString()}")).getCanonicalPath() + + def from = nimblePath + s + "src" + s + fileType + s + def to = nimblePath + s +"web-app" + s + fileType + s + + // make sure base destination path exists + ant.mkdir( dir:"${to}" ) + + // remove js files that no longer exist + def f = new File( to ) + f.eachFileRecurse() { file-> + if(!file.isDirectory()) { + def srcfile = (from+file.getCanonicalPath()).replace(to,'') + def file2 = new File(srcfile) + + // does the file exist + if(!file2.exists()) { + ant.delete(file:"${file.getCanonicalPath()}") + } + } + } + + f = new File( from ) + f.eachFileRecurse() { file-> + def fromFile = file.getCanonicalPath() + def tofile = to+fromFile.replace(from,'') + + // if it is a file + if(!file.isDirectory()) { + def file2 = new File(tofile) + + // if target does not exist or is older then copy/compress + if((!file2.exists() || file2.lastModified()0) { + + // if it is not already compressed + if(tofile.indexOf('.min.')<0 && fromFile.endsWith('.'+fileType) && compress ) { + + // we need to compress so fire off a command to execute the yuicompressor + println ' [compress] compressing ' +fromFile+' to '+tofile + def command = "java -jar ${nimblePluginDir}"+s+"lib"+s+"yuicompressor-2.4.2.jar -o ${tofile} ${fromFile}" + def proc = command.execute() // Call *execute* on the string + proc.waitFor() + + // make the last modified of the compressed version same as source + new File(tofile).setLastModified((new File("${fromFile}").lastModified())) + } else { + // copy the file + copyFile(fromFile,tofile) + } + } + } else { + // if it is a directory make it + ant.mkdir( dir:"${to}${file.name}" ) + } + } +} + +checkForChangeInSASS = { from,to -> + def s = File.separator + from = new File("${nimblePluginDir}${s}${from}").getCanonicalPath() + to = new File("${nimblePluginDir}${s}${to}").getCanonicalPath() + + def hasChanged = false + f = new File( from ) + + // check each valid .SASS file to see if it has changed + f.eachFileRecurse() { file-> + def fromFile = file.getCanonicalPath() + def toFile = to+s+file.getName().replace(".sass",".css ").trim() + + // if it is a file + if(!file.isDirectory()) { + def file2 = new File(toFile) + + // if target does not exist or is older then copy/compress + if((!file2.exists() || file2.lastModified() if(dir.getName().startsWith('chriseppstein-compass')) foundCompass = true } + + // compass installed so do checks and run it if needed + if(foundCompass) { + def from = "src/sass" + def to = "src/css" + + // check source and destination paths for differences + if(checkForChangeInSASS(from,to)) { + def s = File.separator + gemPath = userHome.getCanonicalPath() + /\.gem/ + + // difference found so execute compass to compile SASS + compass = gemPath+s+"bin"+s+"compass" + command = "java -jar ${nimblePluginDir}${s}lib${s}jruby-complete-1.5.0.RC1.jar -S ${compass} --update --sass-dir ${from} --css-dir ${to}" + println command + proc = command.execute() // Call *execute* on the string + proc.consumeProcessOutput(System.out, System.err) + proc.waitFor() + } + } +} + +eventCompileStart = { + def compile = !buildConfig.nimble.resources.nocompilesass + if(compile) { + println 'nimble SASS compilation check' + compileSASS() + } + + def modcheck = !buildConfig.nimble.resources.nomodcheck + if(modcheck) { + println 'nimble resource modification check' + def compress = !buildConfig.nimble.resources.nocompress + compressFiles('js',compress) + compressFiles('css',compress) + compressFiles('images',compress) // does not compress images, just copies, used to make sure resources are treated the same + } +} + diff --git a/web-app/css/.DS_Store b/src/css/.DS_Store similarity index 100% rename from web-app/css/.DS_Store rename to src/css/.DS_Store diff --git a/web-app/css/administration.css b/src/css/administration.css similarity index 100% rename from web-app/css/administration.css rename to src/css/administration.css diff --git a/web-app/css/famfamfam.css b/src/css/famfamfam.css similarity index 100% rename from web-app/css/famfamfam.css rename to src/css/famfamfam.css diff --git a/web-app/css/icons/accept.png b/src/css/icons/accept.png similarity index 100% rename from web-app/css/icons/accept.png rename to src/css/icons/accept.png diff --git a/web-app/css/icons/add.png b/src/css/icons/add.png similarity index 100% rename from web-app/css/icons/add.png rename to src/css/icons/add.png diff --git a/web-app/css/icons/anchor.png b/src/css/icons/anchor.png similarity index 100% rename from web-app/css/icons/anchor.png rename to src/css/icons/anchor.png diff --git a/web-app/css/icons/application.png b/src/css/icons/application.png similarity index 100% rename from web-app/css/icons/application.png rename to src/css/icons/application.png diff --git a/web-app/css/icons/application_add.png b/src/css/icons/application_add.png similarity index 100% rename from web-app/css/icons/application_add.png rename to src/css/icons/application_add.png diff --git a/web-app/css/icons/application_cascade.png b/src/css/icons/application_cascade.png similarity index 100% rename from web-app/css/icons/application_cascade.png rename to src/css/icons/application_cascade.png diff --git a/web-app/css/icons/application_delete.png b/src/css/icons/application_delete.png similarity index 100% rename from web-app/css/icons/application_delete.png rename to src/css/icons/application_delete.png diff --git a/web-app/css/icons/application_double.png b/src/css/icons/application_double.png similarity index 100% rename from web-app/css/icons/application_double.png rename to src/css/icons/application_double.png diff --git a/web-app/css/icons/application_edit.png b/src/css/icons/application_edit.png similarity index 100% rename from web-app/css/icons/application_edit.png rename to src/css/icons/application_edit.png diff --git a/web-app/css/icons/application_error.png b/src/css/icons/application_error.png similarity index 100% rename from web-app/css/icons/application_error.png rename to src/css/icons/application_error.png diff --git a/web-app/css/icons/application_form.png b/src/css/icons/application_form.png similarity index 100% rename from web-app/css/icons/application_form.png rename to src/css/icons/application_form.png diff --git a/web-app/css/icons/application_form_add.png b/src/css/icons/application_form_add.png similarity index 100% rename from web-app/css/icons/application_form_add.png rename to src/css/icons/application_form_add.png diff --git a/web-app/css/icons/application_form_delete.png b/src/css/icons/application_form_delete.png similarity index 100% rename from web-app/css/icons/application_form_delete.png rename to src/css/icons/application_form_delete.png diff --git a/web-app/css/icons/application_form_edit.png b/src/css/icons/application_form_edit.png similarity index 100% rename from web-app/css/icons/application_form_edit.png rename to src/css/icons/application_form_edit.png diff --git a/web-app/css/icons/application_form_magnify.png b/src/css/icons/application_form_magnify.png similarity index 100% rename from web-app/css/icons/application_form_magnify.png rename to src/css/icons/application_form_magnify.png diff --git a/web-app/css/icons/application_get.png b/src/css/icons/application_get.png similarity index 100% rename from web-app/css/icons/application_get.png rename to src/css/icons/application_get.png diff --git a/web-app/css/icons/application_go.png b/src/css/icons/application_go.png similarity index 100% rename from web-app/css/icons/application_go.png rename to src/css/icons/application_go.png diff --git a/web-app/css/icons/application_home.png b/src/css/icons/application_home.png similarity index 100% rename from web-app/css/icons/application_home.png rename to src/css/icons/application_home.png diff --git a/web-app/css/icons/application_key.png b/src/css/icons/application_key.png similarity index 100% rename from web-app/css/icons/application_key.png rename to src/css/icons/application_key.png diff --git a/web-app/css/icons/application_lightning.png b/src/css/icons/application_lightning.png similarity index 100% rename from web-app/css/icons/application_lightning.png rename to src/css/icons/application_lightning.png diff --git a/web-app/css/icons/application_link.png b/src/css/icons/application_link.png similarity index 100% rename from web-app/css/icons/application_link.png rename to src/css/icons/application_link.png diff --git a/web-app/css/icons/application_osx.png b/src/css/icons/application_osx.png similarity index 100% rename from web-app/css/icons/application_osx.png rename to src/css/icons/application_osx.png diff --git a/web-app/css/icons/application_osx_terminal.png b/src/css/icons/application_osx_terminal.png similarity index 100% rename from web-app/css/icons/application_osx_terminal.png rename to src/css/icons/application_osx_terminal.png diff --git a/web-app/css/icons/application_put.png b/src/css/icons/application_put.png similarity index 100% rename from web-app/css/icons/application_put.png rename to src/css/icons/application_put.png diff --git a/web-app/css/icons/application_side_boxes.png b/src/css/icons/application_side_boxes.png similarity index 100% rename from web-app/css/icons/application_side_boxes.png rename to src/css/icons/application_side_boxes.png diff --git a/web-app/css/icons/application_side_contract.png b/src/css/icons/application_side_contract.png similarity index 100% rename from web-app/css/icons/application_side_contract.png rename to src/css/icons/application_side_contract.png diff --git a/web-app/css/icons/application_side_expand.png b/src/css/icons/application_side_expand.png similarity index 100% rename from web-app/css/icons/application_side_expand.png rename to src/css/icons/application_side_expand.png diff --git a/web-app/css/icons/application_side_list.png b/src/css/icons/application_side_list.png similarity index 100% rename from web-app/css/icons/application_side_list.png rename to src/css/icons/application_side_list.png diff --git a/web-app/css/icons/application_side_tree.png b/src/css/icons/application_side_tree.png similarity index 100% rename from web-app/css/icons/application_side_tree.png rename to src/css/icons/application_side_tree.png diff --git a/web-app/css/icons/application_split.png b/src/css/icons/application_split.png similarity index 100% rename from web-app/css/icons/application_split.png rename to src/css/icons/application_split.png diff --git a/web-app/css/icons/application_tile_horizontal.png b/src/css/icons/application_tile_horizontal.png similarity index 100% rename from web-app/css/icons/application_tile_horizontal.png rename to src/css/icons/application_tile_horizontal.png diff --git a/web-app/css/icons/application_tile_vertical.png b/src/css/icons/application_tile_vertical.png similarity index 100% rename from web-app/css/icons/application_tile_vertical.png rename to src/css/icons/application_tile_vertical.png diff --git a/web-app/css/icons/application_view_columns.png b/src/css/icons/application_view_columns.png similarity index 100% rename from web-app/css/icons/application_view_columns.png rename to src/css/icons/application_view_columns.png diff --git a/web-app/css/icons/application_view_detail.png b/src/css/icons/application_view_detail.png similarity index 100% rename from web-app/css/icons/application_view_detail.png rename to src/css/icons/application_view_detail.png diff --git a/web-app/css/icons/application_view_gallery.png b/src/css/icons/application_view_gallery.png similarity index 100% rename from web-app/css/icons/application_view_gallery.png rename to src/css/icons/application_view_gallery.png diff --git a/web-app/css/icons/application_view_icons.png b/src/css/icons/application_view_icons.png similarity index 100% rename from web-app/css/icons/application_view_icons.png rename to src/css/icons/application_view_icons.png diff --git a/web-app/css/icons/application_view_list.png b/src/css/icons/application_view_list.png similarity index 100% rename from web-app/css/icons/application_view_list.png rename to src/css/icons/application_view_list.png diff --git a/web-app/css/icons/application_view_tile.png b/src/css/icons/application_view_tile.png similarity index 100% rename from web-app/css/icons/application_view_tile.png rename to src/css/icons/application_view_tile.png diff --git a/web-app/css/icons/application_xp.png b/src/css/icons/application_xp.png similarity index 100% rename from web-app/css/icons/application_xp.png rename to src/css/icons/application_xp.png diff --git a/web-app/css/icons/application_xp_terminal.png b/src/css/icons/application_xp_terminal.png similarity index 100% rename from web-app/css/icons/application_xp_terminal.png rename to src/css/icons/application_xp_terminal.png diff --git a/web-app/css/icons/arrow_branch.png b/src/css/icons/arrow_branch.png similarity index 100% rename from web-app/css/icons/arrow_branch.png rename to src/css/icons/arrow_branch.png diff --git a/web-app/css/icons/arrow_divide.png b/src/css/icons/arrow_divide.png similarity index 100% rename from web-app/css/icons/arrow_divide.png rename to src/css/icons/arrow_divide.png diff --git a/web-app/css/icons/arrow_down.png b/src/css/icons/arrow_down.png similarity index 100% rename from web-app/css/icons/arrow_down.png rename to src/css/icons/arrow_down.png diff --git a/web-app/css/icons/arrow_in.png b/src/css/icons/arrow_in.png similarity index 100% rename from web-app/css/icons/arrow_in.png rename to src/css/icons/arrow_in.png diff --git a/web-app/css/icons/arrow_inout.png b/src/css/icons/arrow_inout.png similarity index 100% rename from web-app/css/icons/arrow_inout.png rename to src/css/icons/arrow_inout.png diff --git a/web-app/css/icons/arrow_join.png b/src/css/icons/arrow_join.png similarity index 100% rename from web-app/css/icons/arrow_join.png rename to src/css/icons/arrow_join.png diff --git a/web-app/css/icons/arrow_left.png b/src/css/icons/arrow_left.png similarity index 100% rename from web-app/css/icons/arrow_left.png rename to src/css/icons/arrow_left.png diff --git a/web-app/css/icons/arrow_merge.png b/src/css/icons/arrow_merge.png similarity index 100% rename from web-app/css/icons/arrow_merge.png rename to src/css/icons/arrow_merge.png diff --git a/web-app/css/icons/arrow_out.png b/src/css/icons/arrow_out.png similarity index 100% rename from web-app/css/icons/arrow_out.png rename to src/css/icons/arrow_out.png diff --git a/web-app/css/icons/arrow_redo.png b/src/css/icons/arrow_redo.png similarity index 100% rename from web-app/css/icons/arrow_redo.png rename to src/css/icons/arrow_redo.png diff --git a/web-app/css/icons/arrow_refresh.png b/src/css/icons/arrow_refresh.png similarity index 100% rename from web-app/css/icons/arrow_refresh.png rename to src/css/icons/arrow_refresh.png diff --git a/web-app/css/icons/arrow_refresh_small.png b/src/css/icons/arrow_refresh_small.png similarity index 100% rename from web-app/css/icons/arrow_refresh_small.png rename to src/css/icons/arrow_refresh_small.png diff --git a/web-app/css/icons/arrow_right.png b/src/css/icons/arrow_right.png similarity index 100% rename from web-app/css/icons/arrow_right.png rename to src/css/icons/arrow_right.png diff --git a/web-app/css/icons/arrow_rotate_anticlockwise.png b/src/css/icons/arrow_rotate_anticlockwise.png similarity index 100% rename from web-app/css/icons/arrow_rotate_anticlockwise.png rename to src/css/icons/arrow_rotate_anticlockwise.png diff --git a/web-app/css/icons/arrow_rotate_clockwise.png b/src/css/icons/arrow_rotate_clockwise.png similarity index 100% rename from web-app/css/icons/arrow_rotate_clockwise.png rename to src/css/icons/arrow_rotate_clockwise.png diff --git a/web-app/css/icons/arrow_switch.png b/src/css/icons/arrow_switch.png similarity index 100% rename from web-app/css/icons/arrow_switch.png rename to src/css/icons/arrow_switch.png diff --git a/web-app/css/icons/arrow_turn_left.png b/src/css/icons/arrow_turn_left.png similarity index 100% rename from web-app/css/icons/arrow_turn_left.png rename to src/css/icons/arrow_turn_left.png diff --git a/web-app/css/icons/arrow_turn_right.png b/src/css/icons/arrow_turn_right.png similarity index 100% rename from web-app/css/icons/arrow_turn_right.png rename to src/css/icons/arrow_turn_right.png diff --git a/web-app/css/icons/arrow_undo.png b/src/css/icons/arrow_undo.png similarity index 100% rename from web-app/css/icons/arrow_undo.png rename to src/css/icons/arrow_undo.png diff --git a/web-app/css/icons/arrow_up.png b/src/css/icons/arrow_up.png similarity index 100% rename from web-app/css/icons/arrow_up.png rename to src/css/icons/arrow_up.png diff --git a/web-app/css/icons/asterisk_orange.png b/src/css/icons/asterisk_orange.png similarity index 100% rename from web-app/css/icons/asterisk_orange.png rename to src/css/icons/asterisk_orange.png diff --git a/web-app/css/icons/asterisk_yellow.png b/src/css/icons/asterisk_yellow.png similarity index 100% rename from web-app/css/icons/asterisk_yellow.png rename to src/css/icons/asterisk_yellow.png diff --git a/web-app/css/icons/attach.png b/src/css/icons/attach.png similarity index 100% rename from web-app/css/icons/attach.png rename to src/css/icons/attach.png diff --git a/web-app/css/icons/award_star_add.png b/src/css/icons/award_star_add.png similarity index 100% rename from web-app/css/icons/award_star_add.png rename to src/css/icons/award_star_add.png diff --git a/web-app/css/icons/award_star_bronze_1.png b/src/css/icons/award_star_bronze_1.png similarity index 100% rename from web-app/css/icons/award_star_bronze_1.png rename to src/css/icons/award_star_bronze_1.png diff --git a/web-app/css/icons/award_star_bronze_2.png b/src/css/icons/award_star_bronze_2.png similarity index 100% rename from web-app/css/icons/award_star_bronze_2.png rename to src/css/icons/award_star_bronze_2.png diff --git a/web-app/css/icons/award_star_bronze_3.png b/src/css/icons/award_star_bronze_3.png similarity index 100% rename from web-app/css/icons/award_star_bronze_3.png rename to src/css/icons/award_star_bronze_3.png diff --git a/web-app/css/icons/award_star_delete.png b/src/css/icons/award_star_delete.png similarity index 100% rename from web-app/css/icons/award_star_delete.png rename to src/css/icons/award_star_delete.png diff --git a/web-app/css/icons/award_star_gold_1.png b/src/css/icons/award_star_gold_1.png similarity index 100% rename from web-app/css/icons/award_star_gold_1.png rename to src/css/icons/award_star_gold_1.png diff --git a/web-app/css/icons/award_star_gold_2.png b/src/css/icons/award_star_gold_2.png similarity index 100% rename from web-app/css/icons/award_star_gold_2.png rename to src/css/icons/award_star_gold_2.png diff --git a/web-app/css/icons/award_star_gold_3.png b/src/css/icons/award_star_gold_3.png similarity index 100% rename from web-app/css/icons/award_star_gold_3.png rename to src/css/icons/award_star_gold_3.png diff --git a/web-app/css/icons/award_star_silver_1.png b/src/css/icons/award_star_silver_1.png similarity index 100% rename from web-app/css/icons/award_star_silver_1.png rename to src/css/icons/award_star_silver_1.png diff --git a/web-app/css/icons/award_star_silver_2.png b/src/css/icons/award_star_silver_2.png similarity index 100% rename from web-app/css/icons/award_star_silver_2.png rename to src/css/icons/award_star_silver_2.png diff --git a/web-app/css/icons/award_star_silver_3.png b/src/css/icons/award_star_silver_3.png similarity index 100% rename from web-app/css/icons/award_star_silver_3.png rename to src/css/icons/award_star_silver_3.png diff --git a/web-app/css/icons/basket.png b/src/css/icons/basket.png similarity index 100% rename from web-app/css/icons/basket.png rename to src/css/icons/basket.png diff --git a/web-app/css/icons/basket_add.png b/src/css/icons/basket_add.png similarity index 100% rename from web-app/css/icons/basket_add.png rename to src/css/icons/basket_add.png diff --git a/web-app/css/icons/basket_delete.png b/src/css/icons/basket_delete.png similarity index 100% rename from web-app/css/icons/basket_delete.png rename to src/css/icons/basket_delete.png diff --git a/web-app/css/icons/basket_edit.png b/src/css/icons/basket_edit.png similarity index 100% rename from web-app/css/icons/basket_edit.png rename to src/css/icons/basket_edit.png diff --git a/web-app/css/icons/basket_error.png b/src/css/icons/basket_error.png similarity index 100% rename from web-app/css/icons/basket_error.png rename to src/css/icons/basket_error.png diff --git a/web-app/css/icons/basket_go.png b/src/css/icons/basket_go.png similarity index 100% rename from web-app/css/icons/basket_go.png rename to src/css/icons/basket_go.png diff --git a/web-app/css/icons/basket_put.png b/src/css/icons/basket_put.png similarity index 100% rename from web-app/css/icons/basket_put.png rename to src/css/icons/basket_put.png diff --git a/web-app/css/icons/basket_remove.png b/src/css/icons/basket_remove.png similarity index 100% rename from web-app/css/icons/basket_remove.png rename to src/css/icons/basket_remove.png diff --git a/web-app/css/icons/bell.png b/src/css/icons/bell.png similarity index 100% rename from web-app/css/icons/bell.png rename to src/css/icons/bell.png diff --git a/web-app/css/icons/bell_add.png b/src/css/icons/bell_add.png similarity index 100% rename from web-app/css/icons/bell_add.png rename to src/css/icons/bell_add.png diff --git a/web-app/css/icons/bell_delete.png b/src/css/icons/bell_delete.png similarity index 100% rename from web-app/css/icons/bell_delete.png rename to src/css/icons/bell_delete.png diff --git a/web-app/css/icons/bell_error.png b/src/css/icons/bell_error.png similarity index 100% rename from web-app/css/icons/bell_error.png rename to src/css/icons/bell_error.png diff --git a/web-app/css/icons/bell_go.png b/src/css/icons/bell_go.png similarity index 100% rename from web-app/css/icons/bell_go.png rename to src/css/icons/bell_go.png diff --git a/web-app/css/icons/bell_link.png b/src/css/icons/bell_link.png similarity index 100% rename from web-app/css/icons/bell_link.png rename to src/css/icons/bell_link.png diff --git a/web-app/css/icons/bin.png b/src/css/icons/bin.png similarity index 100% rename from web-app/css/icons/bin.png rename to src/css/icons/bin.png diff --git a/web-app/css/icons/bin_closed.png b/src/css/icons/bin_closed.png similarity index 100% rename from web-app/css/icons/bin_closed.png rename to src/css/icons/bin_closed.png diff --git a/web-app/css/icons/bin_empty.png b/src/css/icons/bin_empty.png similarity index 100% rename from web-app/css/icons/bin_empty.png rename to src/css/icons/bin_empty.png diff --git a/web-app/css/icons/bomb.png b/src/css/icons/bomb.png similarity index 100% rename from web-app/css/icons/bomb.png rename to src/css/icons/bomb.png diff --git a/web-app/css/icons/book.png b/src/css/icons/book.png similarity index 100% rename from web-app/css/icons/book.png rename to src/css/icons/book.png diff --git a/web-app/css/icons/book_add.png b/src/css/icons/book_add.png similarity index 100% rename from web-app/css/icons/book_add.png rename to src/css/icons/book_add.png diff --git a/web-app/css/icons/book_addresses.png b/src/css/icons/book_addresses.png similarity index 100% rename from web-app/css/icons/book_addresses.png rename to src/css/icons/book_addresses.png diff --git a/web-app/css/icons/book_delete.png b/src/css/icons/book_delete.png similarity index 100% rename from web-app/css/icons/book_delete.png rename to src/css/icons/book_delete.png diff --git a/web-app/css/icons/book_edit.png b/src/css/icons/book_edit.png similarity index 100% rename from web-app/css/icons/book_edit.png rename to src/css/icons/book_edit.png diff --git a/web-app/css/icons/book_error.png b/src/css/icons/book_error.png similarity index 100% rename from web-app/css/icons/book_error.png rename to src/css/icons/book_error.png diff --git a/web-app/css/icons/book_go.png b/src/css/icons/book_go.png similarity index 100% rename from web-app/css/icons/book_go.png rename to src/css/icons/book_go.png diff --git a/web-app/css/icons/book_key.png b/src/css/icons/book_key.png similarity index 100% rename from web-app/css/icons/book_key.png rename to src/css/icons/book_key.png diff --git a/web-app/css/icons/book_link.png b/src/css/icons/book_link.png similarity index 100% rename from web-app/css/icons/book_link.png rename to src/css/icons/book_link.png diff --git a/web-app/css/icons/book_next.png b/src/css/icons/book_next.png similarity index 100% rename from web-app/css/icons/book_next.png rename to src/css/icons/book_next.png diff --git a/web-app/css/icons/book_open.png b/src/css/icons/book_open.png similarity index 100% rename from web-app/css/icons/book_open.png rename to src/css/icons/book_open.png diff --git a/web-app/css/icons/book_previous.png b/src/css/icons/book_previous.png similarity index 100% rename from web-app/css/icons/book_previous.png rename to src/css/icons/book_previous.png diff --git a/web-app/css/icons/box.png b/src/css/icons/box.png similarity index 100% rename from web-app/css/icons/box.png rename to src/css/icons/box.png diff --git a/web-app/css/icons/brick.png b/src/css/icons/brick.png similarity index 100% rename from web-app/css/icons/brick.png rename to src/css/icons/brick.png diff --git a/web-app/css/icons/brick_add.png b/src/css/icons/brick_add.png similarity index 100% rename from web-app/css/icons/brick_add.png rename to src/css/icons/brick_add.png diff --git a/web-app/css/icons/brick_delete.png b/src/css/icons/brick_delete.png similarity index 100% rename from web-app/css/icons/brick_delete.png rename to src/css/icons/brick_delete.png diff --git a/web-app/css/icons/brick_edit.png b/src/css/icons/brick_edit.png similarity index 100% rename from web-app/css/icons/brick_edit.png rename to src/css/icons/brick_edit.png diff --git a/web-app/css/icons/brick_error.png b/src/css/icons/brick_error.png similarity index 100% rename from web-app/css/icons/brick_error.png rename to src/css/icons/brick_error.png diff --git a/web-app/css/icons/brick_go.png b/src/css/icons/brick_go.png similarity index 100% rename from web-app/css/icons/brick_go.png rename to src/css/icons/brick_go.png diff --git a/web-app/css/icons/brick_link.png b/src/css/icons/brick_link.png similarity index 100% rename from web-app/css/icons/brick_link.png rename to src/css/icons/brick_link.png diff --git a/web-app/css/icons/bricks.png b/src/css/icons/bricks.png similarity index 100% rename from web-app/css/icons/bricks.png rename to src/css/icons/bricks.png diff --git a/web-app/css/icons/briefcase.png b/src/css/icons/briefcase.png similarity index 100% rename from web-app/css/icons/briefcase.png rename to src/css/icons/briefcase.png diff --git a/web-app/css/icons/bug.png b/src/css/icons/bug.png similarity index 100% rename from web-app/css/icons/bug.png rename to src/css/icons/bug.png diff --git a/web-app/css/icons/bug_add.png b/src/css/icons/bug_add.png similarity index 100% rename from web-app/css/icons/bug_add.png rename to src/css/icons/bug_add.png diff --git a/web-app/css/icons/bug_delete.png b/src/css/icons/bug_delete.png similarity index 100% rename from web-app/css/icons/bug_delete.png rename to src/css/icons/bug_delete.png diff --git a/web-app/css/icons/bug_edit.png b/src/css/icons/bug_edit.png similarity index 100% rename from web-app/css/icons/bug_edit.png rename to src/css/icons/bug_edit.png diff --git a/web-app/css/icons/bug_error.png b/src/css/icons/bug_error.png similarity index 100% rename from web-app/css/icons/bug_error.png rename to src/css/icons/bug_error.png diff --git a/web-app/css/icons/bug_go.png b/src/css/icons/bug_go.png similarity index 100% rename from web-app/css/icons/bug_go.png rename to src/css/icons/bug_go.png diff --git a/web-app/css/icons/bug_link.png b/src/css/icons/bug_link.png similarity index 100% rename from web-app/css/icons/bug_link.png rename to src/css/icons/bug_link.png diff --git a/web-app/css/icons/building.png b/src/css/icons/building.png similarity index 100% rename from web-app/css/icons/building.png rename to src/css/icons/building.png diff --git a/web-app/css/icons/building_add.png b/src/css/icons/building_add.png similarity index 100% rename from web-app/css/icons/building_add.png rename to src/css/icons/building_add.png diff --git a/web-app/css/icons/building_delete.png b/src/css/icons/building_delete.png similarity index 100% rename from web-app/css/icons/building_delete.png rename to src/css/icons/building_delete.png diff --git a/web-app/css/icons/building_edit.png b/src/css/icons/building_edit.png similarity index 100% rename from web-app/css/icons/building_edit.png rename to src/css/icons/building_edit.png diff --git a/web-app/css/icons/building_error.png b/src/css/icons/building_error.png similarity index 100% rename from web-app/css/icons/building_error.png rename to src/css/icons/building_error.png diff --git a/web-app/css/icons/building_go.png b/src/css/icons/building_go.png similarity index 100% rename from web-app/css/icons/building_go.png rename to src/css/icons/building_go.png diff --git a/web-app/css/icons/building_key.png b/src/css/icons/building_key.png similarity index 100% rename from web-app/css/icons/building_key.png rename to src/css/icons/building_key.png diff --git a/web-app/css/icons/building_link.png b/src/css/icons/building_link.png similarity index 100% rename from web-app/css/icons/building_link.png rename to src/css/icons/building_link.png diff --git a/web-app/css/icons/bullet_add.png b/src/css/icons/bullet_add.png similarity index 100% rename from web-app/css/icons/bullet_add.png rename to src/css/icons/bullet_add.png diff --git a/web-app/css/icons/bullet_arrow_bottom.png b/src/css/icons/bullet_arrow_bottom.png similarity index 100% rename from web-app/css/icons/bullet_arrow_bottom.png rename to src/css/icons/bullet_arrow_bottom.png diff --git a/web-app/css/icons/bullet_arrow_down.png b/src/css/icons/bullet_arrow_down.png similarity index 100% rename from web-app/css/icons/bullet_arrow_down.png rename to src/css/icons/bullet_arrow_down.png diff --git a/web-app/css/icons/bullet_arrow_top.png b/src/css/icons/bullet_arrow_top.png similarity index 100% rename from web-app/css/icons/bullet_arrow_top.png rename to src/css/icons/bullet_arrow_top.png diff --git a/web-app/css/icons/bullet_arrow_up.png b/src/css/icons/bullet_arrow_up.png similarity index 100% rename from web-app/css/icons/bullet_arrow_up.png rename to src/css/icons/bullet_arrow_up.png diff --git a/web-app/css/icons/bullet_black.png b/src/css/icons/bullet_black.png similarity index 100% rename from web-app/css/icons/bullet_black.png rename to src/css/icons/bullet_black.png diff --git a/web-app/css/icons/bullet_blue.png b/src/css/icons/bullet_blue.png similarity index 100% rename from web-app/css/icons/bullet_blue.png rename to src/css/icons/bullet_blue.png diff --git a/web-app/css/icons/bullet_delete.png b/src/css/icons/bullet_delete.png similarity index 100% rename from web-app/css/icons/bullet_delete.png rename to src/css/icons/bullet_delete.png diff --git a/web-app/css/icons/bullet_disk.png b/src/css/icons/bullet_disk.png similarity index 100% rename from web-app/css/icons/bullet_disk.png rename to src/css/icons/bullet_disk.png diff --git a/web-app/css/icons/bullet_error.png b/src/css/icons/bullet_error.png similarity index 100% rename from web-app/css/icons/bullet_error.png rename to src/css/icons/bullet_error.png diff --git a/web-app/css/icons/bullet_feed.png b/src/css/icons/bullet_feed.png similarity index 100% rename from web-app/css/icons/bullet_feed.png rename to src/css/icons/bullet_feed.png diff --git a/web-app/css/icons/bullet_go.png b/src/css/icons/bullet_go.png similarity index 100% rename from web-app/css/icons/bullet_go.png rename to src/css/icons/bullet_go.png diff --git a/web-app/css/icons/bullet_green.png b/src/css/icons/bullet_green.png similarity index 100% rename from web-app/css/icons/bullet_green.png rename to src/css/icons/bullet_green.png diff --git a/web-app/css/icons/bullet_key.png b/src/css/icons/bullet_key.png similarity index 100% rename from web-app/css/icons/bullet_key.png rename to src/css/icons/bullet_key.png diff --git a/web-app/css/icons/bullet_orange.png b/src/css/icons/bullet_orange.png similarity index 100% rename from web-app/css/icons/bullet_orange.png rename to src/css/icons/bullet_orange.png diff --git a/web-app/css/icons/bullet_picture.png b/src/css/icons/bullet_picture.png similarity index 100% rename from web-app/css/icons/bullet_picture.png rename to src/css/icons/bullet_picture.png diff --git a/web-app/css/icons/bullet_pink.png b/src/css/icons/bullet_pink.png similarity index 100% rename from web-app/css/icons/bullet_pink.png rename to src/css/icons/bullet_pink.png diff --git a/web-app/css/icons/bullet_purple.png b/src/css/icons/bullet_purple.png similarity index 100% rename from web-app/css/icons/bullet_purple.png rename to src/css/icons/bullet_purple.png diff --git a/web-app/css/icons/bullet_red.png b/src/css/icons/bullet_red.png similarity index 100% rename from web-app/css/icons/bullet_red.png rename to src/css/icons/bullet_red.png diff --git a/web-app/css/icons/bullet_star.png b/src/css/icons/bullet_star.png similarity index 100% rename from web-app/css/icons/bullet_star.png rename to src/css/icons/bullet_star.png diff --git a/web-app/css/icons/bullet_toggle_minus.png b/src/css/icons/bullet_toggle_minus.png similarity index 100% rename from web-app/css/icons/bullet_toggle_minus.png rename to src/css/icons/bullet_toggle_minus.png diff --git a/web-app/css/icons/bullet_toggle_plus.png b/src/css/icons/bullet_toggle_plus.png similarity index 100% rename from web-app/css/icons/bullet_toggle_plus.png rename to src/css/icons/bullet_toggle_plus.png diff --git a/web-app/css/icons/bullet_white.png b/src/css/icons/bullet_white.png similarity index 100% rename from web-app/css/icons/bullet_white.png rename to src/css/icons/bullet_white.png diff --git a/web-app/css/icons/bullet_wrench.png b/src/css/icons/bullet_wrench.png similarity index 100% rename from web-app/css/icons/bullet_wrench.png rename to src/css/icons/bullet_wrench.png diff --git a/web-app/css/icons/bullet_yellow.png b/src/css/icons/bullet_yellow.png similarity index 100% rename from web-app/css/icons/bullet_yellow.png rename to src/css/icons/bullet_yellow.png diff --git a/web-app/css/icons/cake.png b/src/css/icons/cake.png similarity index 100% rename from web-app/css/icons/cake.png rename to src/css/icons/cake.png diff --git a/web-app/css/icons/calculator.png b/src/css/icons/calculator.png similarity index 100% rename from web-app/css/icons/calculator.png rename to src/css/icons/calculator.png diff --git a/web-app/css/icons/calculator_add.png b/src/css/icons/calculator_add.png similarity index 100% rename from web-app/css/icons/calculator_add.png rename to src/css/icons/calculator_add.png diff --git a/web-app/css/icons/calculator_delete.png b/src/css/icons/calculator_delete.png similarity index 100% rename from web-app/css/icons/calculator_delete.png rename to src/css/icons/calculator_delete.png diff --git a/web-app/css/icons/calculator_edit.png b/src/css/icons/calculator_edit.png similarity index 100% rename from web-app/css/icons/calculator_edit.png rename to src/css/icons/calculator_edit.png diff --git a/web-app/css/icons/calculator_error.png b/src/css/icons/calculator_error.png similarity index 100% rename from web-app/css/icons/calculator_error.png rename to src/css/icons/calculator_error.png diff --git a/web-app/css/icons/calculator_link.png b/src/css/icons/calculator_link.png similarity index 100% rename from web-app/css/icons/calculator_link.png rename to src/css/icons/calculator_link.png diff --git a/web-app/css/icons/calendar.png b/src/css/icons/calendar.png similarity index 100% rename from web-app/css/icons/calendar.png rename to src/css/icons/calendar.png diff --git a/web-app/css/icons/calendar_add.png b/src/css/icons/calendar_add.png similarity index 100% rename from web-app/css/icons/calendar_add.png rename to src/css/icons/calendar_add.png diff --git a/web-app/css/icons/calendar_delete.png b/src/css/icons/calendar_delete.png similarity index 100% rename from web-app/css/icons/calendar_delete.png rename to src/css/icons/calendar_delete.png diff --git a/web-app/css/icons/calendar_edit.png b/src/css/icons/calendar_edit.png similarity index 100% rename from web-app/css/icons/calendar_edit.png rename to src/css/icons/calendar_edit.png diff --git a/web-app/css/icons/calendar_link.png b/src/css/icons/calendar_link.png similarity index 100% rename from web-app/css/icons/calendar_link.png rename to src/css/icons/calendar_link.png diff --git a/web-app/css/icons/calendar_view_day.png b/src/css/icons/calendar_view_day.png similarity index 100% rename from web-app/css/icons/calendar_view_day.png rename to src/css/icons/calendar_view_day.png diff --git a/web-app/css/icons/calendar_view_month.png b/src/css/icons/calendar_view_month.png similarity index 100% rename from web-app/css/icons/calendar_view_month.png rename to src/css/icons/calendar_view_month.png diff --git a/web-app/css/icons/calendar_view_week.png b/src/css/icons/calendar_view_week.png similarity index 100% rename from web-app/css/icons/calendar_view_week.png rename to src/css/icons/calendar_view_week.png diff --git a/web-app/css/icons/camera.png b/src/css/icons/camera.png similarity index 100% rename from web-app/css/icons/camera.png rename to src/css/icons/camera.png diff --git a/web-app/css/icons/camera_add.png b/src/css/icons/camera_add.png similarity index 100% rename from web-app/css/icons/camera_add.png rename to src/css/icons/camera_add.png diff --git a/web-app/css/icons/camera_delete.png b/src/css/icons/camera_delete.png similarity index 100% rename from web-app/css/icons/camera_delete.png rename to src/css/icons/camera_delete.png diff --git a/web-app/css/icons/camera_edit.png b/src/css/icons/camera_edit.png similarity index 100% rename from web-app/css/icons/camera_edit.png rename to src/css/icons/camera_edit.png diff --git a/web-app/css/icons/camera_error.png b/src/css/icons/camera_error.png similarity index 100% rename from web-app/css/icons/camera_error.png rename to src/css/icons/camera_error.png diff --git a/web-app/css/icons/camera_go.png b/src/css/icons/camera_go.png similarity index 100% rename from web-app/css/icons/camera_go.png rename to src/css/icons/camera_go.png diff --git a/web-app/css/icons/camera_link.png b/src/css/icons/camera_link.png similarity index 100% rename from web-app/css/icons/camera_link.png rename to src/css/icons/camera_link.png diff --git a/web-app/css/icons/camera_small.png b/src/css/icons/camera_small.png similarity index 100% rename from web-app/css/icons/camera_small.png rename to src/css/icons/camera_small.png diff --git a/web-app/css/icons/cancel.png b/src/css/icons/cancel.png similarity index 100% rename from web-app/css/icons/cancel.png rename to src/css/icons/cancel.png diff --git a/web-app/css/icons/car.png b/src/css/icons/car.png similarity index 100% rename from web-app/css/icons/car.png rename to src/css/icons/car.png diff --git a/web-app/css/icons/car_add.png b/src/css/icons/car_add.png similarity index 100% rename from web-app/css/icons/car_add.png rename to src/css/icons/car_add.png diff --git a/web-app/css/icons/car_delete.png b/src/css/icons/car_delete.png similarity index 100% rename from web-app/css/icons/car_delete.png rename to src/css/icons/car_delete.png diff --git a/web-app/css/icons/cart.png b/src/css/icons/cart.png similarity index 100% rename from web-app/css/icons/cart.png rename to src/css/icons/cart.png diff --git a/web-app/css/icons/cart_add.png b/src/css/icons/cart_add.png similarity index 100% rename from web-app/css/icons/cart_add.png rename to src/css/icons/cart_add.png diff --git a/web-app/css/icons/cart_delete.png b/src/css/icons/cart_delete.png similarity index 100% rename from web-app/css/icons/cart_delete.png rename to src/css/icons/cart_delete.png diff --git a/web-app/css/icons/cart_edit.png b/src/css/icons/cart_edit.png similarity index 100% rename from web-app/css/icons/cart_edit.png rename to src/css/icons/cart_edit.png diff --git a/web-app/css/icons/cart_error.png b/src/css/icons/cart_error.png similarity index 100% rename from web-app/css/icons/cart_error.png rename to src/css/icons/cart_error.png diff --git a/web-app/css/icons/cart_go.png b/src/css/icons/cart_go.png similarity index 100% rename from web-app/css/icons/cart_go.png rename to src/css/icons/cart_go.png diff --git a/web-app/css/icons/cart_put.png b/src/css/icons/cart_put.png similarity index 100% rename from web-app/css/icons/cart_put.png rename to src/css/icons/cart_put.png diff --git a/web-app/css/icons/cart_remove.png b/src/css/icons/cart_remove.png similarity index 100% rename from web-app/css/icons/cart_remove.png rename to src/css/icons/cart_remove.png diff --git a/web-app/css/icons/cd.png b/src/css/icons/cd.png similarity index 100% rename from web-app/css/icons/cd.png rename to src/css/icons/cd.png diff --git a/web-app/css/icons/cd_add.png b/src/css/icons/cd_add.png similarity index 100% rename from web-app/css/icons/cd_add.png rename to src/css/icons/cd_add.png diff --git a/web-app/css/icons/cd_burn.png b/src/css/icons/cd_burn.png similarity index 100% rename from web-app/css/icons/cd_burn.png rename to src/css/icons/cd_burn.png diff --git a/web-app/css/icons/cd_delete.png b/src/css/icons/cd_delete.png similarity index 100% rename from web-app/css/icons/cd_delete.png rename to src/css/icons/cd_delete.png diff --git a/web-app/css/icons/cd_edit.png b/src/css/icons/cd_edit.png similarity index 100% rename from web-app/css/icons/cd_edit.png rename to src/css/icons/cd_edit.png diff --git a/web-app/css/icons/cd_eject.png b/src/css/icons/cd_eject.png similarity index 100% rename from web-app/css/icons/cd_eject.png rename to src/css/icons/cd_eject.png diff --git a/web-app/css/icons/cd_go.png b/src/css/icons/cd_go.png similarity index 100% rename from web-app/css/icons/cd_go.png rename to src/css/icons/cd_go.png diff --git a/web-app/css/icons/chart_bar.png b/src/css/icons/chart_bar.png similarity index 100% rename from web-app/css/icons/chart_bar.png rename to src/css/icons/chart_bar.png diff --git a/web-app/css/icons/chart_bar_add.png b/src/css/icons/chart_bar_add.png similarity index 100% rename from web-app/css/icons/chart_bar_add.png rename to src/css/icons/chart_bar_add.png diff --git a/web-app/css/icons/chart_bar_delete.png b/src/css/icons/chart_bar_delete.png similarity index 100% rename from web-app/css/icons/chart_bar_delete.png rename to src/css/icons/chart_bar_delete.png diff --git a/web-app/css/icons/chart_bar_edit.png b/src/css/icons/chart_bar_edit.png similarity index 100% rename from web-app/css/icons/chart_bar_edit.png rename to src/css/icons/chart_bar_edit.png diff --git a/web-app/css/icons/chart_bar_error.png b/src/css/icons/chart_bar_error.png similarity index 100% rename from web-app/css/icons/chart_bar_error.png rename to src/css/icons/chart_bar_error.png diff --git a/web-app/css/icons/chart_bar_link.png b/src/css/icons/chart_bar_link.png similarity index 100% rename from web-app/css/icons/chart_bar_link.png rename to src/css/icons/chart_bar_link.png diff --git a/web-app/css/icons/chart_curve.png b/src/css/icons/chart_curve.png similarity index 100% rename from web-app/css/icons/chart_curve.png rename to src/css/icons/chart_curve.png diff --git a/web-app/css/icons/chart_curve_add.png b/src/css/icons/chart_curve_add.png similarity index 100% rename from web-app/css/icons/chart_curve_add.png rename to src/css/icons/chart_curve_add.png diff --git a/web-app/css/icons/chart_curve_delete.png b/src/css/icons/chart_curve_delete.png similarity index 100% rename from web-app/css/icons/chart_curve_delete.png rename to src/css/icons/chart_curve_delete.png diff --git a/web-app/css/icons/chart_curve_edit.png b/src/css/icons/chart_curve_edit.png similarity index 100% rename from web-app/css/icons/chart_curve_edit.png rename to src/css/icons/chart_curve_edit.png diff --git a/web-app/css/icons/chart_curve_error.png b/src/css/icons/chart_curve_error.png similarity index 100% rename from web-app/css/icons/chart_curve_error.png rename to src/css/icons/chart_curve_error.png diff --git a/web-app/css/icons/chart_curve_go.png b/src/css/icons/chart_curve_go.png similarity index 100% rename from web-app/css/icons/chart_curve_go.png rename to src/css/icons/chart_curve_go.png diff --git a/web-app/css/icons/chart_curve_link.png b/src/css/icons/chart_curve_link.png similarity index 100% rename from web-app/css/icons/chart_curve_link.png rename to src/css/icons/chart_curve_link.png diff --git a/web-app/css/icons/chart_line.png b/src/css/icons/chart_line.png similarity index 100% rename from web-app/css/icons/chart_line.png rename to src/css/icons/chart_line.png diff --git a/web-app/css/icons/chart_line_add.png b/src/css/icons/chart_line_add.png similarity index 100% rename from web-app/css/icons/chart_line_add.png rename to src/css/icons/chart_line_add.png diff --git a/web-app/css/icons/chart_line_delete.png b/src/css/icons/chart_line_delete.png similarity index 100% rename from web-app/css/icons/chart_line_delete.png rename to src/css/icons/chart_line_delete.png diff --git a/web-app/css/icons/chart_line_edit.png b/src/css/icons/chart_line_edit.png similarity index 100% rename from web-app/css/icons/chart_line_edit.png rename to src/css/icons/chart_line_edit.png diff --git a/web-app/css/icons/chart_line_error.png b/src/css/icons/chart_line_error.png similarity index 100% rename from web-app/css/icons/chart_line_error.png rename to src/css/icons/chart_line_error.png diff --git a/web-app/css/icons/chart_line_link.png b/src/css/icons/chart_line_link.png similarity index 100% rename from web-app/css/icons/chart_line_link.png rename to src/css/icons/chart_line_link.png diff --git a/web-app/css/icons/chart_organisation.png b/src/css/icons/chart_organisation.png similarity index 100% rename from web-app/css/icons/chart_organisation.png rename to src/css/icons/chart_organisation.png diff --git a/web-app/css/icons/chart_organisation_add.png b/src/css/icons/chart_organisation_add.png similarity index 100% rename from web-app/css/icons/chart_organisation_add.png rename to src/css/icons/chart_organisation_add.png diff --git a/web-app/css/icons/chart_organisation_delete.png b/src/css/icons/chart_organisation_delete.png similarity index 100% rename from web-app/css/icons/chart_organisation_delete.png rename to src/css/icons/chart_organisation_delete.png diff --git a/web-app/css/icons/chart_pie.png b/src/css/icons/chart_pie.png similarity index 100% rename from web-app/css/icons/chart_pie.png rename to src/css/icons/chart_pie.png diff --git a/web-app/css/icons/chart_pie_add.png b/src/css/icons/chart_pie_add.png similarity index 100% rename from web-app/css/icons/chart_pie_add.png rename to src/css/icons/chart_pie_add.png diff --git a/web-app/css/icons/chart_pie_delete.png b/src/css/icons/chart_pie_delete.png similarity index 100% rename from web-app/css/icons/chart_pie_delete.png rename to src/css/icons/chart_pie_delete.png diff --git a/web-app/css/icons/chart_pie_edit.png b/src/css/icons/chart_pie_edit.png similarity index 100% rename from web-app/css/icons/chart_pie_edit.png rename to src/css/icons/chart_pie_edit.png diff --git a/web-app/css/icons/chart_pie_error.png b/src/css/icons/chart_pie_error.png similarity index 100% rename from web-app/css/icons/chart_pie_error.png rename to src/css/icons/chart_pie_error.png diff --git a/web-app/css/icons/chart_pie_link.png b/src/css/icons/chart_pie_link.png similarity index 100% rename from web-app/css/icons/chart_pie_link.png rename to src/css/icons/chart_pie_link.png diff --git a/web-app/css/icons/clock.png b/src/css/icons/clock.png similarity index 100% rename from web-app/css/icons/clock.png rename to src/css/icons/clock.png diff --git a/web-app/css/icons/clock_add.png b/src/css/icons/clock_add.png similarity index 100% rename from web-app/css/icons/clock_add.png rename to src/css/icons/clock_add.png diff --git a/web-app/css/icons/clock_delete.png b/src/css/icons/clock_delete.png similarity index 100% rename from web-app/css/icons/clock_delete.png rename to src/css/icons/clock_delete.png diff --git a/web-app/css/icons/clock_edit.png b/src/css/icons/clock_edit.png similarity index 100% rename from web-app/css/icons/clock_edit.png rename to src/css/icons/clock_edit.png diff --git a/web-app/css/icons/clock_error.png b/src/css/icons/clock_error.png similarity index 100% rename from web-app/css/icons/clock_error.png rename to src/css/icons/clock_error.png diff --git a/web-app/css/icons/clock_go.png b/src/css/icons/clock_go.png similarity index 100% rename from web-app/css/icons/clock_go.png rename to src/css/icons/clock_go.png diff --git a/web-app/css/icons/clock_link.png b/src/css/icons/clock_link.png similarity index 100% rename from web-app/css/icons/clock_link.png rename to src/css/icons/clock_link.png diff --git a/web-app/css/icons/clock_pause.png b/src/css/icons/clock_pause.png similarity index 100% rename from web-app/css/icons/clock_pause.png rename to src/css/icons/clock_pause.png diff --git a/web-app/css/icons/clock_play.png b/src/css/icons/clock_play.png similarity index 100% rename from web-app/css/icons/clock_play.png rename to src/css/icons/clock_play.png diff --git a/web-app/css/icons/clock_red.png b/src/css/icons/clock_red.png similarity index 100% rename from web-app/css/icons/clock_red.png rename to src/css/icons/clock_red.png diff --git a/web-app/css/icons/clock_stop.png b/src/css/icons/clock_stop.png similarity index 100% rename from web-app/css/icons/clock_stop.png rename to src/css/icons/clock_stop.png diff --git a/web-app/css/icons/cog.png b/src/css/icons/cog.png similarity index 100% rename from web-app/css/icons/cog.png rename to src/css/icons/cog.png diff --git a/web-app/css/icons/cog_add.png b/src/css/icons/cog_add.png similarity index 100% rename from web-app/css/icons/cog_add.png rename to src/css/icons/cog_add.png diff --git a/web-app/css/icons/cog_delete.png b/src/css/icons/cog_delete.png similarity index 100% rename from web-app/css/icons/cog_delete.png rename to src/css/icons/cog_delete.png diff --git a/web-app/css/icons/cog_edit.png b/src/css/icons/cog_edit.png similarity index 100% rename from web-app/css/icons/cog_edit.png rename to src/css/icons/cog_edit.png diff --git a/web-app/css/icons/cog_error.png b/src/css/icons/cog_error.png similarity index 100% rename from web-app/css/icons/cog_error.png rename to src/css/icons/cog_error.png diff --git a/web-app/css/icons/cog_go.png b/src/css/icons/cog_go.png similarity index 100% rename from web-app/css/icons/cog_go.png rename to src/css/icons/cog_go.png diff --git a/web-app/css/icons/coins.png b/src/css/icons/coins.png similarity index 100% rename from web-app/css/icons/coins.png rename to src/css/icons/coins.png diff --git a/web-app/css/icons/coins_add.png b/src/css/icons/coins_add.png similarity index 100% rename from web-app/css/icons/coins_add.png rename to src/css/icons/coins_add.png diff --git a/web-app/css/icons/coins_delete.png b/src/css/icons/coins_delete.png similarity index 100% rename from web-app/css/icons/coins_delete.png rename to src/css/icons/coins_delete.png diff --git a/web-app/css/icons/color_swatch.png b/src/css/icons/color_swatch.png similarity index 100% rename from web-app/css/icons/color_swatch.png rename to src/css/icons/color_swatch.png diff --git a/web-app/css/icons/color_wheel.png b/src/css/icons/color_wheel.png similarity index 100% rename from web-app/css/icons/color_wheel.png rename to src/css/icons/color_wheel.png diff --git a/web-app/css/icons/comment.png b/src/css/icons/comment.png similarity index 100% rename from web-app/css/icons/comment.png rename to src/css/icons/comment.png diff --git a/web-app/css/icons/comment_add.png b/src/css/icons/comment_add.png similarity index 100% rename from web-app/css/icons/comment_add.png rename to src/css/icons/comment_add.png diff --git a/web-app/css/icons/comment_delete.png b/src/css/icons/comment_delete.png similarity index 100% rename from web-app/css/icons/comment_delete.png rename to src/css/icons/comment_delete.png diff --git a/web-app/css/icons/comment_edit.png b/src/css/icons/comment_edit.png similarity index 100% rename from web-app/css/icons/comment_edit.png rename to src/css/icons/comment_edit.png diff --git a/web-app/css/icons/comments.png b/src/css/icons/comments.png similarity index 100% rename from web-app/css/icons/comments.png rename to src/css/icons/comments.png diff --git a/web-app/css/icons/comments_add.png b/src/css/icons/comments_add.png similarity index 100% rename from web-app/css/icons/comments_add.png rename to src/css/icons/comments_add.png diff --git a/web-app/css/icons/comments_delete.png b/src/css/icons/comments_delete.png similarity index 100% rename from web-app/css/icons/comments_delete.png rename to src/css/icons/comments_delete.png diff --git a/web-app/css/icons/compress.png b/src/css/icons/compress.png similarity index 100% rename from web-app/css/icons/compress.png rename to src/css/icons/compress.png diff --git a/web-app/css/icons/computer.png b/src/css/icons/computer.png similarity index 100% rename from web-app/css/icons/computer.png rename to src/css/icons/computer.png diff --git a/web-app/css/icons/computer_add.png b/src/css/icons/computer_add.png similarity index 100% rename from web-app/css/icons/computer_add.png rename to src/css/icons/computer_add.png diff --git a/web-app/css/icons/computer_delete.png b/src/css/icons/computer_delete.png similarity index 100% rename from web-app/css/icons/computer_delete.png rename to src/css/icons/computer_delete.png diff --git a/web-app/css/icons/computer_edit.png b/src/css/icons/computer_edit.png similarity index 100% rename from web-app/css/icons/computer_edit.png rename to src/css/icons/computer_edit.png diff --git a/web-app/css/icons/computer_error.png b/src/css/icons/computer_error.png similarity index 100% rename from web-app/css/icons/computer_error.png rename to src/css/icons/computer_error.png diff --git a/web-app/css/icons/computer_go.png b/src/css/icons/computer_go.png similarity index 100% rename from web-app/css/icons/computer_go.png rename to src/css/icons/computer_go.png diff --git a/web-app/css/icons/computer_key.png b/src/css/icons/computer_key.png similarity index 100% rename from web-app/css/icons/computer_key.png rename to src/css/icons/computer_key.png diff --git a/web-app/css/icons/computer_link.png b/src/css/icons/computer_link.png similarity index 100% rename from web-app/css/icons/computer_link.png rename to src/css/icons/computer_link.png diff --git a/web-app/css/icons/connect.png b/src/css/icons/connect.png similarity index 100% rename from web-app/css/icons/connect.png rename to src/css/icons/connect.png diff --git a/web-app/css/icons/contrast.png b/src/css/icons/contrast.png similarity index 100% rename from web-app/css/icons/contrast.png rename to src/css/icons/contrast.png diff --git a/web-app/css/icons/contrast_decrease.png b/src/css/icons/contrast_decrease.png similarity index 100% rename from web-app/css/icons/contrast_decrease.png rename to src/css/icons/contrast_decrease.png diff --git a/web-app/css/icons/contrast_high.png b/src/css/icons/contrast_high.png similarity index 100% rename from web-app/css/icons/contrast_high.png rename to src/css/icons/contrast_high.png diff --git a/web-app/css/icons/contrast_increase.png b/src/css/icons/contrast_increase.png similarity index 100% rename from web-app/css/icons/contrast_increase.png rename to src/css/icons/contrast_increase.png diff --git a/web-app/css/icons/contrast_low.png b/src/css/icons/contrast_low.png similarity index 100% rename from web-app/css/icons/contrast_low.png rename to src/css/icons/contrast_low.png diff --git a/web-app/css/icons/control_eject.png b/src/css/icons/control_eject.png similarity index 100% rename from web-app/css/icons/control_eject.png rename to src/css/icons/control_eject.png diff --git a/web-app/css/icons/control_eject_blue.png b/src/css/icons/control_eject_blue.png similarity index 100% rename from web-app/css/icons/control_eject_blue.png rename to src/css/icons/control_eject_blue.png diff --git a/web-app/css/icons/control_end.png b/src/css/icons/control_end.png similarity index 100% rename from web-app/css/icons/control_end.png rename to src/css/icons/control_end.png diff --git a/web-app/css/icons/control_end_blue.png b/src/css/icons/control_end_blue.png similarity index 100% rename from web-app/css/icons/control_end_blue.png rename to src/css/icons/control_end_blue.png diff --git a/web-app/css/icons/control_equalizer.png b/src/css/icons/control_equalizer.png similarity index 100% rename from web-app/css/icons/control_equalizer.png rename to src/css/icons/control_equalizer.png diff --git a/web-app/css/icons/control_equalizer_blue.png b/src/css/icons/control_equalizer_blue.png similarity index 100% rename from web-app/css/icons/control_equalizer_blue.png rename to src/css/icons/control_equalizer_blue.png diff --git a/web-app/css/icons/control_fastforward.png b/src/css/icons/control_fastforward.png similarity index 100% rename from web-app/css/icons/control_fastforward.png rename to src/css/icons/control_fastforward.png diff --git a/web-app/css/icons/control_fastforward_blue.png b/src/css/icons/control_fastforward_blue.png similarity index 100% rename from web-app/css/icons/control_fastforward_blue.png rename to src/css/icons/control_fastforward_blue.png diff --git a/web-app/css/icons/control_pause.png b/src/css/icons/control_pause.png similarity index 100% rename from web-app/css/icons/control_pause.png rename to src/css/icons/control_pause.png diff --git a/web-app/css/icons/control_pause_blue.png b/src/css/icons/control_pause_blue.png similarity index 100% rename from web-app/css/icons/control_pause_blue.png rename to src/css/icons/control_pause_blue.png diff --git a/web-app/css/icons/control_play.png b/src/css/icons/control_play.png similarity index 100% rename from web-app/css/icons/control_play.png rename to src/css/icons/control_play.png diff --git a/web-app/css/icons/control_play_blue.png b/src/css/icons/control_play_blue.png similarity index 100% rename from web-app/css/icons/control_play_blue.png rename to src/css/icons/control_play_blue.png diff --git a/web-app/css/icons/control_repeat.png b/src/css/icons/control_repeat.png similarity index 100% rename from web-app/css/icons/control_repeat.png rename to src/css/icons/control_repeat.png diff --git a/web-app/css/icons/control_repeat_blue.png b/src/css/icons/control_repeat_blue.png similarity index 100% rename from web-app/css/icons/control_repeat_blue.png rename to src/css/icons/control_repeat_blue.png diff --git a/web-app/css/icons/control_rewind.png b/src/css/icons/control_rewind.png similarity index 100% rename from web-app/css/icons/control_rewind.png rename to src/css/icons/control_rewind.png diff --git a/web-app/css/icons/control_rewind_blue.png b/src/css/icons/control_rewind_blue.png similarity index 100% rename from web-app/css/icons/control_rewind_blue.png rename to src/css/icons/control_rewind_blue.png diff --git a/web-app/css/icons/control_start.png b/src/css/icons/control_start.png similarity index 100% rename from web-app/css/icons/control_start.png rename to src/css/icons/control_start.png diff --git a/web-app/css/icons/control_start_blue.png b/src/css/icons/control_start_blue.png similarity index 100% rename from web-app/css/icons/control_start_blue.png rename to src/css/icons/control_start_blue.png diff --git a/web-app/css/icons/control_stop.png b/src/css/icons/control_stop.png similarity index 100% rename from web-app/css/icons/control_stop.png rename to src/css/icons/control_stop.png diff --git a/web-app/css/icons/control_stop_blue.png b/src/css/icons/control_stop_blue.png similarity index 100% rename from web-app/css/icons/control_stop_blue.png rename to src/css/icons/control_stop_blue.png diff --git a/web-app/css/icons/controller.png b/src/css/icons/controller.png similarity index 100% rename from web-app/css/icons/controller.png rename to src/css/icons/controller.png diff --git a/web-app/css/icons/controller_add.png b/src/css/icons/controller_add.png similarity index 100% rename from web-app/css/icons/controller_add.png rename to src/css/icons/controller_add.png diff --git a/web-app/css/icons/controller_delete.png b/src/css/icons/controller_delete.png similarity index 100% rename from web-app/css/icons/controller_delete.png rename to src/css/icons/controller_delete.png diff --git a/web-app/css/icons/controller_error.png b/src/css/icons/controller_error.png similarity index 100% rename from web-app/css/icons/controller_error.png rename to src/css/icons/controller_error.png diff --git a/web-app/css/icons/createiconcss.groovy b/src/css/icons/createiconcss.groovy similarity index 100% rename from web-app/css/icons/createiconcss.groovy rename to src/css/icons/createiconcss.groovy diff --git a/web-app/css/icons/creditcards.png b/src/css/icons/creditcards.png similarity index 100% rename from web-app/css/icons/creditcards.png rename to src/css/icons/creditcards.png diff --git a/web-app/css/icons/cross.png b/src/css/icons/cross.png similarity index 100% rename from web-app/css/icons/cross.png rename to src/css/icons/cross.png diff --git a/web-app/css/icons/css.png b/src/css/icons/css.png similarity index 100% rename from web-app/css/icons/css.png rename to src/css/icons/css.png diff --git a/web-app/css/icons/css_add.png b/src/css/icons/css_add.png similarity index 100% rename from web-app/css/icons/css_add.png rename to src/css/icons/css_add.png diff --git a/web-app/css/icons/css_delete.png b/src/css/icons/css_delete.png similarity index 100% rename from web-app/css/icons/css_delete.png rename to src/css/icons/css_delete.png diff --git a/web-app/css/icons/css_go.png b/src/css/icons/css_go.png similarity index 100% rename from web-app/css/icons/css_go.png rename to src/css/icons/css_go.png diff --git a/web-app/css/icons/css_valid.png b/src/css/icons/css_valid.png similarity index 100% rename from web-app/css/icons/css_valid.png rename to src/css/icons/css_valid.png diff --git a/web-app/css/icons/cup.png b/src/css/icons/cup.png similarity index 100% rename from web-app/css/icons/cup.png rename to src/css/icons/cup.png diff --git a/web-app/css/icons/cup_add.png b/src/css/icons/cup_add.png similarity index 100% rename from web-app/css/icons/cup_add.png rename to src/css/icons/cup_add.png diff --git a/web-app/css/icons/cup_delete.png b/src/css/icons/cup_delete.png similarity index 100% rename from web-app/css/icons/cup_delete.png rename to src/css/icons/cup_delete.png diff --git a/web-app/css/icons/cup_edit.png b/src/css/icons/cup_edit.png similarity index 100% rename from web-app/css/icons/cup_edit.png rename to src/css/icons/cup_edit.png diff --git a/web-app/css/icons/cup_error.png b/src/css/icons/cup_error.png similarity index 100% rename from web-app/css/icons/cup_error.png rename to src/css/icons/cup_error.png diff --git a/web-app/css/icons/cup_go.png b/src/css/icons/cup_go.png similarity index 100% rename from web-app/css/icons/cup_go.png rename to src/css/icons/cup_go.png diff --git a/web-app/css/icons/cup_key.png b/src/css/icons/cup_key.png similarity index 100% rename from web-app/css/icons/cup_key.png rename to src/css/icons/cup_key.png diff --git a/web-app/css/icons/cup_link.png b/src/css/icons/cup_link.png similarity index 100% rename from web-app/css/icons/cup_link.png rename to src/css/icons/cup_link.png diff --git a/web-app/css/icons/cursor.png b/src/css/icons/cursor.png similarity index 100% rename from web-app/css/icons/cursor.png rename to src/css/icons/cursor.png diff --git a/web-app/css/icons/cut.png b/src/css/icons/cut.png similarity index 100% rename from web-app/css/icons/cut.png rename to src/css/icons/cut.png diff --git a/web-app/css/icons/cut_red.png b/src/css/icons/cut_red.png similarity index 100% rename from web-app/css/icons/cut_red.png rename to src/css/icons/cut_red.png diff --git a/web-app/css/icons/database.png b/src/css/icons/database.png similarity index 100% rename from web-app/css/icons/database.png rename to src/css/icons/database.png diff --git a/web-app/css/icons/database_add.png b/src/css/icons/database_add.png similarity index 100% rename from web-app/css/icons/database_add.png rename to src/css/icons/database_add.png diff --git a/web-app/css/icons/database_connect.png b/src/css/icons/database_connect.png similarity index 100% rename from web-app/css/icons/database_connect.png rename to src/css/icons/database_connect.png diff --git a/web-app/css/icons/database_delete.png b/src/css/icons/database_delete.png similarity index 100% rename from web-app/css/icons/database_delete.png rename to src/css/icons/database_delete.png diff --git a/web-app/css/icons/database_edit.png b/src/css/icons/database_edit.png similarity index 100% rename from web-app/css/icons/database_edit.png rename to src/css/icons/database_edit.png diff --git a/web-app/css/icons/database_error.png b/src/css/icons/database_error.png similarity index 100% rename from web-app/css/icons/database_error.png rename to src/css/icons/database_error.png diff --git a/web-app/css/icons/database_gear.png b/src/css/icons/database_gear.png similarity index 100% rename from web-app/css/icons/database_gear.png rename to src/css/icons/database_gear.png diff --git a/web-app/css/icons/database_go.png b/src/css/icons/database_go.png similarity index 100% rename from web-app/css/icons/database_go.png rename to src/css/icons/database_go.png diff --git a/web-app/css/icons/database_key.png b/src/css/icons/database_key.png similarity index 100% rename from web-app/css/icons/database_key.png rename to src/css/icons/database_key.png diff --git a/web-app/css/icons/database_lightning.png b/src/css/icons/database_lightning.png similarity index 100% rename from web-app/css/icons/database_lightning.png rename to src/css/icons/database_lightning.png diff --git a/web-app/css/icons/database_link.png b/src/css/icons/database_link.png similarity index 100% rename from web-app/css/icons/database_link.png rename to src/css/icons/database_link.png diff --git a/web-app/css/icons/database_refresh.png b/src/css/icons/database_refresh.png similarity index 100% rename from web-app/css/icons/database_refresh.png rename to src/css/icons/database_refresh.png diff --git a/web-app/css/icons/database_save.png b/src/css/icons/database_save.png similarity index 100% rename from web-app/css/icons/database_save.png rename to src/css/icons/database_save.png diff --git a/web-app/css/icons/database_table.png b/src/css/icons/database_table.png similarity index 100% rename from web-app/css/icons/database_table.png rename to src/css/icons/database_table.png diff --git a/web-app/css/icons/date.png b/src/css/icons/date.png similarity index 100% rename from web-app/css/icons/date.png rename to src/css/icons/date.png diff --git a/web-app/css/icons/date_add.png b/src/css/icons/date_add.png similarity index 100% rename from web-app/css/icons/date_add.png rename to src/css/icons/date_add.png diff --git a/web-app/css/icons/date_delete.png b/src/css/icons/date_delete.png similarity index 100% rename from web-app/css/icons/date_delete.png rename to src/css/icons/date_delete.png diff --git a/web-app/css/icons/date_edit.png b/src/css/icons/date_edit.png similarity index 100% rename from web-app/css/icons/date_edit.png rename to src/css/icons/date_edit.png diff --git a/web-app/css/icons/date_error.png b/src/css/icons/date_error.png similarity index 100% rename from web-app/css/icons/date_error.png rename to src/css/icons/date_error.png diff --git a/web-app/css/icons/date_go.png b/src/css/icons/date_go.png similarity index 100% rename from web-app/css/icons/date_go.png rename to src/css/icons/date_go.png diff --git a/web-app/css/icons/date_link.png b/src/css/icons/date_link.png similarity index 100% rename from web-app/css/icons/date_link.png rename to src/css/icons/date_link.png diff --git a/web-app/css/icons/date_magnify.png b/src/css/icons/date_magnify.png similarity index 100% rename from web-app/css/icons/date_magnify.png rename to src/css/icons/date_magnify.png diff --git a/web-app/css/icons/date_next.png b/src/css/icons/date_next.png similarity index 100% rename from web-app/css/icons/date_next.png rename to src/css/icons/date_next.png diff --git a/web-app/css/icons/date_previous.png b/src/css/icons/date_previous.png similarity index 100% rename from web-app/css/icons/date_previous.png rename to src/css/icons/date_previous.png diff --git a/web-app/css/icons/delete.png b/src/css/icons/delete.png similarity index 100% rename from web-app/css/icons/delete.png rename to src/css/icons/delete.png diff --git a/web-app/css/icons/disconnect.png b/src/css/icons/disconnect.png similarity index 100% rename from web-app/css/icons/disconnect.png rename to src/css/icons/disconnect.png diff --git a/web-app/css/icons/disk.png b/src/css/icons/disk.png similarity index 100% rename from web-app/css/icons/disk.png rename to src/css/icons/disk.png diff --git a/web-app/css/icons/disk_multiple.png b/src/css/icons/disk_multiple.png similarity index 100% rename from web-app/css/icons/disk_multiple.png rename to src/css/icons/disk_multiple.png diff --git a/web-app/css/icons/door.png b/src/css/icons/door.png similarity index 100% rename from web-app/css/icons/door.png rename to src/css/icons/door.png diff --git a/web-app/css/icons/door_in.png b/src/css/icons/door_in.png similarity index 100% rename from web-app/css/icons/door_in.png rename to src/css/icons/door_in.png diff --git a/web-app/css/icons/door_open.png b/src/css/icons/door_open.png similarity index 100% rename from web-app/css/icons/door_open.png rename to src/css/icons/door_open.png diff --git a/web-app/css/icons/door_out.png b/src/css/icons/door_out.png similarity index 100% rename from web-app/css/icons/door_out.png rename to src/css/icons/door_out.png diff --git a/web-app/css/icons/drink.png b/src/css/icons/drink.png similarity index 100% rename from web-app/css/icons/drink.png rename to src/css/icons/drink.png diff --git a/web-app/css/icons/drink_empty.png b/src/css/icons/drink_empty.png similarity index 100% rename from web-app/css/icons/drink_empty.png rename to src/css/icons/drink_empty.png diff --git a/web-app/css/icons/drive.png b/src/css/icons/drive.png similarity index 100% rename from web-app/css/icons/drive.png rename to src/css/icons/drive.png diff --git a/web-app/css/icons/drive_add.png b/src/css/icons/drive_add.png similarity index 100% rename from web-app/css/icons/drive_add.png rename to src/css/icons/drive_add.png diff --git a/web-app/css/icons/drive_burn.png b/src/css/icons/drive_burn.png similarity index 100% rename from web-app/css/icons/drive_burn.png rename to src/css/icons/drive_burn.png diff --git a/web-app/css/icons/drive_cd.png b/src/css/icons/drive_cd.png similarity index 100% rename from web-app/css/icons/drive_cd.png rename to src/css/icons/drive_cd.png diff --git a/web-app/css/icons/drive_cd_empty.png b/src/css/icons/drive_cd_empty.png similarity index 100% rename from web-app/css/icons/drive_cd_empty.png rename to src/css/icons/drive_cd_empty.png diff --git a/web-app/css/icons/drive_delete.png b/src/css/icons/drive_delete.png similarity index 100% rename from web-app/css/icons/drive_delete.png rename to src/css/icons/drive_delete.png diff --git a/web-app/css/icons/drive_disk.png b/src/css/icons/drive_disk.png similarity index 100% rename from web-app/css/icons/drive_disk.png rename to src/css/icons/drive_disk.png diff --git a/web-app/css/icons/drive_edit.png b/src/css/icons/drive_edit.png similarity index 100% rename from web-app/css/icons/drive_edit.png rename to src/css/icons/drive_edit.png diff --git a/web-app/css/icons/drive_error.png b/src/css/icons/drive_error.png similarity index 100% rename from web-app/css/icons/drive_error.png rename to src/css/icons/drive_error.png diff --git a/web-app/css/icons/drive_go.png b/src/css/icons/drive_go.png similarity index 100% rename from web-app/css/icons/drive_go.png rename to src/css/icons/drive_go.png diff --git a/web-app/css/icons/drive_key.png b/src/css/icons/drive_key.png similarity index 100% rename from web-app/css/icons/drive_key.png rename to src/css/icons/drive_key.png diff --git a/web-app/css/icons/drive_link.png b/src/css/icons/drive_link.png similarity index 100% rename from web-app/css/icons/drive_link.png rename to src/css/icons/drive_link.png diff --git a/web-app/css/icons/drive_magnify.png b/src/css/icons/drive_magnify.png similarity index 100% rename from web-app/css/icons/drive_magnify.png rename to src/css/icons/drive_magnify.png diff --git a/web-app/css/icons/drive_network.png b/src/css/icons/drive_network.png similarity index 100% rename from web-app/css/icons/drive_network.png rename to src/css/icons/drive_network.png diff --git a/web-app/css/icons/drive_rename.png b/src/css/icons/drive_rename.png similarity index 100% rename from web-app/css/icons/drive_rename.png rename to src/css/icons/drive_rename.png diff --git a/web-app/css/icons/drive_user.png b/src/css/icons/drive_user.png similarity index 100% rename from web-app/css/icons/drive_user.png rename to src/css/icons/drive_user.png diff --git a/web-app/css/icons/drive_web.png b/src/css/icons/drive_web.png similarity index 100% rename from web-app/css/icons/drive_web.png rename to src/css/icons/drive_web.png diff --git a/web-app/css/icons/dvd.png b/src/css/icons/dvd.png similarity index 100% rename from web-app/css/icons/dvd.png rename to src/css/icons/dvd.png diff --git a/web-app/css/icons/dvd_add.png b/src/css/icons/dvd_add.png similarity index 100% rename from web-app/css/icons/dvd_add.png rename to src/css/icons/dvd_add.png diff --git a/web-app/css/icons/dvd_delete.png b/src/css/icons/dvd_delete.png similarity index 100% rename from web-app/css/icons/dvd_delete.png rename to src/css/icons/dvd_delete.png diff --git a/web-app/css/icons/dvd_edit.png b/src/css/icons/dvd_edit.png similarity index 100% rename from web-app/css/icons/dvd_edit.png rename to src/css/icons/dvd_edit.png diff --git a/web-app/css/icons/dvd_error.png b/src/css/icons/dvd_error.png similarity index 100% rename from web-app/css/icons/dvd_error.png rename to src/css/icons/dvd_error.png diff --git a/web-app/css/icons/dvd_go.png b/src/css/icons/dvd_go.png similarity index 100% rename from web-app/css/icons/dvd_go.png rename to src/css/icons/dvd_go.png diff --git a/web-app/css/icons/dvd_key.png b/src/css/icons/dvd_key.png similarity index 100% rename from web-app/css/icons/dvd_key.png rename to src/css/icons/dvd_key.png diff --git a/web-app/css/icons/dvd_link.png b/src/css/icons/dvd_link.png similarity index 100% rename from web-app/css/icons/dvd_link.png rename to src/css/icons/dvd_link.png diff --git a/web-app/css/icons/email.png b/src/css/icons/email.png similarity index 100% rename from web-app/css/icons/email.png rename to src/css/icons/email.png diff --git a/web-app/css/icons/email_add.png b/src/css/icons/email_add.png similarity index 100% rename from web-app/css/icons/email_add.png rename to src/css/icons/email_add.png diff --git a/web-app/css/icons/email_attach.png b/src/css/icons/email_attach.png similarity index 100% rename from web-app/css/icons/email_attach.png rename to src/css/icons/email_attach.png diff --git a/web-app/css/icons/email_delete.png b/src/css/icons/email_delete.png similarity index 100% rename from web-app/css/icons/email_delete.png rename to src/css/icons/email_delete.png diff --git a/web-app/css/icons/email_edit.png b/src/css/icons/email_edit.png similarity index 100% rename from web-app/css/icons/email_edit.png rename to src/css/icons/email_edit.png diff --git a/web-app/css/icons/email_error.png b/src/css/icons/email_error.png similarity index 100% rename from web-app/css/icons/email_error.png rename to src/css/icons/email_error.png diff --git a/web-app/css/icons/email_go.png b/src/css/icons/email_go.png similarity index 100% rename from web-app/css/icons/email_go.png rename to src/css/icons/email_go.png diff --git a/web-app/css/icons/email_link.png b/src/css/icons/email_link.png similarity index 100% rename from web-app/css/icons/email_link.png rename to src/css/icons/email_link.png diff --git a/web-app/css/icons/email_open.png b/src/css/icons/email_open.png similarity index 100% rename from web-app/css/icons/email_open.png rename to src/css/icons/email_open.png diff --git a/web-app/css/icons/email_open_image.png b/src/css/icons/email_open_image.png similarity index 100% rename from web-app/css/icons/email_open_image.png rename to src/css/icons/email_open_image.png diff --git a/web-app/css/icons/emoticon_evilgrin.png b/src/css/icons/emoticon_evilgrin.png similarity index 100% rename from web-app/css/icons/emoticon_evilgrin.png rename to src/css/icons/emoticon_evilgrin.png diff --git a/web-app/css/icons/emoticon_grin.png b/src/css/icons/emoticon_grin.png similarity index 100% rename from web-app/css/icons/emoticon_grin.png rename to src/css/icons/emoticon_grin.png diff --git a/web-app/css/icons/emoticon_happy.png b/src/css/icons/emoticon_happy.png similarity index 100% rename from web-app/css/icons/emoticon_happy.png rename to src/css/icons/emoticon_happy.png diff --git a/web-app/css/icons/emoticon_smile.png b/src/css/icons/emoticon_smile.png similarity index 100% rename from web-app/css/icons/emoticon_smile.png rename to src/css/icons/emoticon_smile.png diff --git a/web-app/css/icons/emoticon_surprised.png b/src/css/icons/emoticon_surprised.png similarity index 100% rename from web-app/css/icons/emoticon_surprised.png rename to src/css/icons/emoticon_surprised.png diff --git a/web-app/css/icons/emoticon_tongue.png b/src/css/icons/emoticon_tongue.png similarity index 100% rename from web-app/css/icons/emoticon_tongue.png rename to src/css/icons/emoticon_tongue.png diff --git a/web-app/css/icons/emoticon_unhappy.png b/src/css/icons/emoticon_unhappy.png similarity index 100% rename from web-app/css/icons/emoticon_unhappy.png rename to src/css/icons/emoticon_unhappy.png diff --git a/web-app/css/icons/emoticon_waii.png b/src/css/icons/emoticon_waii.png similarity index 100% rename from web-app/css/icons/emoticon_waii.png rename to src/css/icons/emoticon_waii.png diff --git a/web-app/css/icons/emoticon_wink.png b/src/css/icons/emoticon_wink.png similarity index 100% rename from web-app/css/icons/emoticon_wink.png rename to src/css/icons/emoticon_wink.png diff --git a/web-app/css/icons/error.png b/src/css/icons/error.png similarity index 100% rename from web-app/css/icons/error.png rename to src/css/icons/error.png diff --git a/web-app/css/icons/error_add.png b/src/css/icons/error_add.png similarity index 100% rename from web-app/css/icons/error_add.png rename to src/css/icons/error_add.png diff --git a/web-app/css/icons/error_delete.png b/src/css/icons/error_delete.png similarity index 100% rename from web-app/css/icons/error_delete.png rename to src/css/icons/error_delete.png diff --git a/web-app/css/icons/error_go.png b/src/css/icons/error_go.png similarity index 100% rename from web-app/css/icons/error_go.png rename to src/css/icons/error_go.png diff --git a/web-app/css/icons/exclamation.png b/src/css/icons/exclamation.png similarity index 100% rename from web-app/css/icons/exclamation.png rename to src/css/icons/exclamation.png diff --git a/web-app/css/icons/eye.png b/src/css/icons/eye.png similarity index 100% rename from web-app/css/icons/eye.png rename to src/css/icons/eye.png diff --git a/web-app/css/icons/feed.png b/src/css/icons/feed.png similarity index 100% rename from web-app/css/icons/feed.png rename to src/css/icons/feed.png diff --git a/web-app/css/icons/feed_add.png b/src/css/icons/feed_add.png similarity index 100% rename from web-app/css/icons/feed_add.png rename to src/css/icons/feed_add.png diff --git a/web-app/css/icons/feed_delete.png b/src/css/icons/feed_delete.png similarity index 100% rename from web-app/css/icons/feed_delete.png rename to src/css/icons/feed_delete.png diff --git a/web-app/css/icons/feed_disk.png b/src/css/icons/feed_disk.png similarity index 100% rename from web-app/css/icons/feed_disk.png rename to src/css/icons/feed_disk.png diff --git a/web-app/css/icons/feed_edit.png b/src/css/icons/feed_edit.png similarity index 100% rename from web-app/css/icons/feed_edit.png rename to src/css/icons/feed_edit.png diff --git a/web-app/css/icons/feed_error.png b/src/css/icons/feed_error.png similarity index 100% rename from web-app/css/icons/feed_error.png rename to src/css/icons/feed_error.png diff --git a/web-app/css/icons/feed_go.png b/src/css/icons/feed_go.png similarity index 100% rename from web-app/css/icons/feed_go.png rename to src/css/icons/feed_go.png diff --git a/web-app/css/icons/feed_key.png b/src/css/icons/feed_key.png similarity index 100% rename from web-app/css/icons/feed_key.png rename to src/css/icons/feed_key.png diff --git a/web-app/css/icons/feed_link.png b/src/css/icons/feed_link.png similarity index 100% rename from web-app/css/icons/feed_link.png rename to src/css/icons/feed_link.png diff --git a/web-app/css/icons/feed_magnify.png b/src/css/icons/feed_magnify.png similarity index 100% rename from web-app/css/icons/feed_magnify.png rename to src/css/icons/feed_magnify.png diff --git a/web-app/css/icons/female.png b/src/css/icons/female.png similarity index 100% rename from web-app/css/icons/female.png rename to src/css/icons/female.png diff --git a/web-app/css/icons/film.png b/src/css/icons/film.png similarity index 100% rename from web-app/css/icons/film.png rename to src/css/icons/film.png diff --git a/web-app/css/icons/film_add.png b/src/css/icons/film_add.png similarity index 100% rename from web-app/css/icons/film_add.png rename to src/css/icons/film_add.png diff --git a/web-app/css/icons/film_delete.png b/src/css/icons/film_delete.png similarity index 100% rename from web-app/css/icons/film_delete.png rename to src/css/icons/film_delete.png diff --git a/web-app/css/icons/film_edit.png b/src/css/icons/film_edit.png similarity index 100% rename from web-app/css/icons/film_edit.png rename to src/css/icons/film_edit.png diff --git a/web-app/css/icons/film_error.png b/src/css/icons/film_error.png similarity index 100% rename from web-app/css/icons/film_error.png rename to src/css/icons/film_error.png diff --git a/web-app/css/icons/film_go.png b/src/css/icons/film_go.png similarity index 100% rename from web-app/css/icons/film_go.png rename to src/css/icons/film_go.png diff --git a/web-app/css/icons/film_key.png b/src/css/icons/film_key.png similarity index 100% rename from web-app/css/icons/film_key.png rename to src/css/icons/film_key.png diff --git a/web-app/css/icons/film_link.png b/src/css/icons/film_link.png similarity index 100% rename from web-app/css/icons/film_link.png rename to src/css/icons/film_link.png diff --git a/web-app/css/icons/film_save.png b/src/css/icons/film_save.png similarity index 100% rename from web-app/css/icons/film_save.png rename to src/css/icons/film_save.png diff --git a/web-app/css/icons/find.png b/src/css/icons/find.png similarity index 100% rename from web-app/css/icons/find.png rename to src/css/icons/find.png diff --git a/web-app/css/icons/flag_blue.png b/src/css/icons/flag_blue.png similarity index 100% rename from web-app/css/icons/flag_blue.png rename to src/css/icons/flag_blue.png diff --git a/web-app/css/icons/flag_green.png b/src/css/icons/flag_green.png similarity index 100% rename from web-app/css/icons/flag_green.png rename to src/css/icons/flag_green.png diff --git a/web-app/css/icons/flag_orange.png b/src/css/icons/flag_orange.png similarity index 100% rename from web-app/css/icons/flag_orange.png rename to src/css/icons/flag_orange.png diff --git a/web-app/css/icons/flag_pink.png b/src/css/icons/flag_pink.png similarity index 100% rename from web-app/css/icons/flag_pink.png rename to src/css/icons/flag_pink.png diff --git a/web-app/css/icons/flag_purple.png b/src/css/icons/flag_purple.png similarity index 100% rename from web-app/css/icons/flag_purple.png rename to src/css/icons/flag_purple.png diff --git a/web-app/css/icons/flag_red.png b/src/css/icons/flag_red.png similarity index 100% rename from web-app/css/icons/flag_red.png rename to src/css/icons/flag_red.png diff --git a/web-app/css/icons/flag_yellow.png b/src/css/icons/flag_yellow.png similarity index 100% rename from web-app/css/icons/flag_yellow.png rename to src/css/icons/flag_yellow.png diff --git a/web-app/css/icons/folder.png b/src/css/icons/folder.png similarity index 100% rename from web-app/css/icons/folder.png rename to src/css/icons/folder.png diff --git a/web-app/css/icons/folder_add.png b/src/css/icons/folder_add.png similarity index 100% rename from web-app/css/icons/folder_add.png rename to src/css/icons/folder_add.png diff --git a/web-app/css/icons/folder_bell.png b/src/css/icons/folder_bell.png similarity index 100% rename from web-app/css/icons/folder_bell.png rename to src/css/icons/folder_bell.png diff --git a/web-app/css/icons/folder_brick.png b/src/css/icons/folder_brick.png similarity index 100% rename from web-app/css/icons/folder_brick.png rename to src/css/icons/folder_brick.png diff --git a/web-app/css/icons/folder_bug.png b/src/css/icons/folder_bug.png similarity index 100% rename from web-app/css/icons/folder_bug.png rename to src/css/icons/folder_bug.png diff --git a/web-app/css/icons/folder_camera.png b/src/css/icons/folder_camera.png similarity index 100% rename from web-app/css/icons/folder_camera.png rename to src/css/icons/folder_camera.png diff --git a/web-app/css/icons/folder_database.png b/src/css/icons/folder_database.png similarity index 100% rename from web-app/css/icons/folder_database.png rename to src/css/icons/folder_database.png diff --git a/web-app/css/icons/folder_delete.png b/src/css/icons/folder_delete.png similarity index 100% rename from web-app/css/icons/folder_delete.png rename to src/css/icons/folder_delete.png diff --git a/web-app/css/icons/folder_edit.png b/src/css/icons/folder_edit.png similarity index 100% rename from web-app/css/icons/folder_edit.png rename to src/css/icons/folder_edit.png diff --git a/web-app/css/icons/folder_error.png b/src/css/icons/folder_error.png similarity index 100% rename from web-app/css/icons/folder_error.png rename to src/css/icons/folder_error.png diff --git a/web-app/css/icons/folder_explore.png b/src/css/icons/folder_explore.png similarity index 100% rename from web-app/css/icons/folder_explore.png rename to src/css/icons/folder_explore.png diff --git a/web-app/css/icons/folder_feed.png b/src/css/icons/folder_feed.png similarity index 100% rename from web-app/css/icons/folder_feed.png rename to src/css/icons/folder_feed.png diff --git a/web-app/css/icons/folder_find.png b/src/css/icons/folder_find.png similarity index 100% rename from web-app/css/icons/folder_find.png rename to src/css/icons/folder_find.png diff --git a/web-app/css/icons/folder_go.png b/src/css/icons/folder_go.png similarity index 100% rename from web-app/css/icons/folder_go.png rename to src/css/icons/folder_go.png diff --git a/web-app/css/icons/folder_heart.png b/src/css/icons/folder_heart.png similarity index 100% rename from web-app/css/icons/folder_heart.png rename to src/css/icons/folder_heart.png diff --git a/web-app/css/icons/folder_image.png b/src/css/icons/folder_image.png similarity index 100% rename from web-app/css/icons/folder_image.png rename to src/css/icons/folder_image.png diff --git a/web-app/css/icons/folder_key.png b/src/css/icons/folder_key.png similarity index 100% rename from web-app/css/icons/folder_key.png rename to src/css/icons/folder_key.png diff --git a/web-app/css/icons/folder_lightbulb.png b/src/css/icons/folder_lightbulb.png similarity index 100% rename from web-app/css/icons/folder_lightbulb.png rename to src/css/icons/folder_lightbulb.png diff --git a/web-app/css/icons/folder_link.png b/src/css/icons/folder_link.png similarity index 100% rename from web-app/css/icons/folder_link.png rename to src/css/icons/folder_link.png diff --git a/web-app/css/icons/folder_magnify.png b/src/css/icons/folder_magnify.png similarity index 100% rename from web-app/css/icons/folder_magnify.png rename to src/css/icons/folder_magnify.png diff --git a/web-app/css/icons/folder_page.png b/src/css/icons/folder_page.png similarity index 100% rename from web-app/css/icons/folder_page.png rename to src/css/icons/folder_page.png diff --git a/web-app/css/icons/folder_page_white.png b/src/css/icons/folder_page_white.png similarity index 100% rename from web-app/css/icons/folder_page_white.png rename to src/css/icons/folder_page_white.png diff --git a/web-app/css/icons/folder_palette.png b/src/css/icons/folder_palette.png similarity index 100% rename from web-app/css/icons/folder_palette.png rename to src/css/icons/folder_palette.png diff --git a/web-app/css/icons/folder_picture.png b/src/css/icons/folder_picture.png similarity index 100% rename from web-app/css/icons/folder_picture.png rename to src/css/icons/folder_picture.png diff --git a/web-app/css/icons/folder_star.png b/src/css/icons/folder_star.png similarity index 100% rename from web-app/css/icons/folder_star.png rename to src/css/icons/folder_star.png diff --git a/web-app/css/icons/folder_table.png b/src/css/icons/folder_table.png similarity index 100% rename from web-app/css/icons/folder_table.png rename to src/css/icons/folder_table.png diff --git a/web-app/css/icons/folder_user.png b/src/css/icons/folder_user.png similarity index 100% rename from web-app/css/icons/folder_user.png rename to src/css/icons/folder_user.png diff --git a/web-app/css/icons/folder_wrench.png b/src/css/icons/folder_wrench.png similarity index 100% rename from web-app/css/icons/folder_wrench.png rename to src/css/icons/folder_wrench.png diff --git a/web-app/css/icons/font.png b/src/css/icons/font.png similarity index 100% rename from web-app/css/icons/font.png rename to src/css/icons/font.png diff --git a/web-app/css/icons/font_add.png b/src/css/icons/font_add.png similarity index 100% rename from web-app/css/icons/font_add.png rename to src/css/icons/font_add.png diff --git a/web-app/css/icons/font_delete.png b/src/css/icons/font_delete.png similarity index 100% rename from web-app/css/icons/font_delete.png rename to src/css/icons/font_delete.png diff --git a/web-app/css/icons/font_go.png b/src/css/icons/font_go.png similarity index 100% rename from web-app/css/icons/font_go.png rename to src/css/icons/font_go.png diff --git a/web-app/css/icons/group.png b/src/css/icons/group.png similarity index 100% rename from web-app/css/icons/group.png rename to src/css/icons/group.png diff --git a/web-app/css/icons/group_add.png b/src/css/icons/group_add.png similarity index 100% rename from web-app/css/icons/group_add.png rename to src/css/icons/group_add.png diff --git a/web-app/css/icons/group_delete.png b/src/css/icons/group_delete.png similarity index 100% rename from web-app/css/icons/group_delete.png rename to src/css/icons/group_delete.png diff --git a/web-app/css/icons/group_edit.png b/src/css/icons/group_edit.png similarity index 100% rename from web-app/css/icons/group_edit.png rename to src/css/icons/group_edit.png diff --git a/web-app/css/icons/group_error.png b/src/css/icons/group_error.png similarity index 100% rename from web-app/css/icons/group_error.png rename to src/css/icons/group_error.png diff --git a/web-app/css/icons/group_gear.png b/src/css/icons/group_gear.png similarity index 100% rename from web-app/css/icons/group_gear.png rename to src/css/icons/group_gear.png diff --git a/web-app/css/icons/group_go.png b/src/css/icons/group_go.png similarity index 100% rename from web-app/css/icons/group_go.png rename to src/css/icons/group_go.png diff --git a/web-app/css/icons/group_key.png b/src/css/icons/group_key.png similarity index 100% rename from web-app/css/icons/group_key.png rename to src/css/icons/group_key.png diff --git a/web-app/css/icons/group_link.png b/src/css/icons/group_link.png similarity index 100% rename from web-app/css/icons/group_link.png rename to src/css/icons/group_link.png diff --git a/web-app/css/icons/heart.png b/src/css/icons/heart.png similarity index 100% rename from web-app/css/icons/heart.png rename to src/css/icons/heart.png diff --git a/web-app/css/icons/heart_add.png b/src/css/icons/heart_add.png similarity index 100% rename from web-app/css/icons/heart_add.png rename to src/css/icons/heart_add.png diff --git a/web-app/css/icons/heart_delete.png b/src/css/icons/heart_delete.png similarity index 100% rename from web-app/css/icons/heart_delete.png rename to src/css/icons/heart_delete.png diff --git a/web-app/css/icons/help.png b/src/css/icons/help.png similarity index 100% rename from web-app/css/icons/help.png rename to src/css/icons/help.png diff --git a/web-app/css/icons/hourglass.png b/src/css/icons/hourglass.png similarity index 100% rename from web-app/css/icons/hourglass.png rename to src/css/icons/hourglass.png diff --git a/web-app/css/icons/hourglass_add.png b/src/css/icons/hourglass_add.png similarity index 100% rename from web-app/css/icons/hourglass_add.png rename to src/css/icons/hourglass_add.png diff --git a/web-app/css/icons/hourglass_delete.png b/src/css/icons/hourglass_delete.png similarity index 100% rename from web-app/css/icons/hourglass_delete.png rename to src/css/icons/hourglass_delete.png diff --git a/web-app/css/icons/hourglass_go.png b/src/css/icons/hourglass_go.png similarity index 100% rename from web-app/css/icons/hourglass_go.png rename to src/css/icons/hourglass_go.png diff --git a/web-app/css/icons/hourglass_link.png b/src/css/icons/hourglass_link.png similarity index 100% rename from web-app/css/icons/hourglass_link.png rename to src/css/icons/hourglass_link.png diff --git a/web-app/css/icons/house.png b/src/css/icons/house.png similarity index 100% rename from web-app/css/icons/house.png rename to src/css/icons/house.png diff --git a/web-app/css/icons/house_go.png b/src/css/icons/house_go.png similarity index 100% rename from web-app/css/icons/house_go.png rename to src/css/icons/house_go.png diff --git a/web-app/css/icons/house_link.png b/src/css/icons/house_link.png similarity index 100% rename from web-app/css/icons/house_link.png rename to src/css/icons/house_link.png diff --git a/web-app/css/icons/html.png b/src/css/icons/html.png similarity index 100% rename from web-app/css/icons/html.png rename to src/css/icons/html.png diff --git a/web-app/css/icons/html_add.png b/src/css/icons/html_add.png similarity index 100% rename from web-app/css/icons/html_add.png rename to src/css/icons/html_add.png diff --git a/web-app/css/icons/html_delete.png b/src/css/icons/html_delete.png similarity index 100% rename from web-app/css/icons/html_delete.png rename to src/css/icons/html_delete.png diff --git a/web-app/css/icons/html_go.png b/src/css/icons/html_go.png similarity index 100% rename from web-app/css/icons/html_go.png rename to src/css/icons/html_go.png diff --git a/web-app/css/icons/html_valid.png b/src/css/icons/html_valid.png similarity index 100% rename from web-app/css/icons/html_valid.png rename to src/css/icons/html_valid.png diff --git a/web-app/css/icons/image.png b/src/css/icons/image.png similarity index 100% rename from web-app/css/icons/image.png rename to src/css/icons/image.png diff --git a/web-app/css/icons/image_add.png b/src/css/icons/image_add.png similarity index 100% rename from web-app/css/icons/image_add.png rename to src/css/icons/image_add.png diff --git a/web-app/css/icons/image_delete.png b/src/css/icons/image_delete.png similarity index 100% rename from web-app/css/icons/image_delete.png rename to src/css/icons/image_delete.png diff --git a/web-app/css/icons/image_edit.png b/src/css/icons/image_edit.png similarity index 100% rename from web-app/css/icons/image_edit.png rename to src/css/icons/image_edit.png diff --git a/web-app/css/icons/image_link.png b/src/css/icons/image_link.png similarity index 100% rename from web-app/css/icons/image_link.png rename to src/css/icons/image_link.png diff --git a/web-app/css/icons/images.png b/src/css/icons/images.png similarity index 100% rename from web-app/css/icons/images.png rename to src/css/icons/images.png diff --git a/web-app/css/icons/information.png b/src/css/icons/information.png similarity index 100% rename from web-app/css/icons/information.png rename to src/css/icons/information.png diff --git a/web-app/css/icons/ipod.png b/src/css/icons/ipod.png similarity index 100% rename from web-app/css/icons/ipod.png rename to src/css/icons/ipod.png diff --git a/web-app/css/icons/ipod_cast.png b/src/css/icons/ipod_cast.png similarity index 100% rename from web-app/css/icons/ipod_cast.png rename to src/css/icons/ipod_cast.png diff --git a/web-app/css/icons/ipod_cast_add.png b/src/css/icons/ipod_cast_add.png similarity index 100% rename from web-app/css/icons/ipod_cast_add.png rename to src/css/icons/ipod_cast_add.png diff --git a/web-app/css/icons/ipod_cast_delete.png b/src/css/icons/ipod_cast_delete.png similarity index 100% rename from web-app/css/icons/ipod_cast_delete.png rename to src/css/icons/ipod_cast_delete.png diff --git a/web-app/css/icons/ipod_sound.png b/src/css/icons/ipod_sound.png similarity index 100% rename from web-app/css/icons/ipod_sound.png rename to src/css/icons/ipod_sound.png diff --git a/web-app/css/icons/joystick.png b/src/css/icons/joystick.png similarity index 100% rename from web-app/css/icons/joystick.png rename to src/css/icons/joystick.png diff --git a/web-app/css/icons/joystick_add.png b/src/css/icons/joystick_add.png similarity index 100% rename from web-app/css/icons/joystick_add.png rename to src/css/icons/joystick_add.png diff --git a/web-app/css/icons/joystick_delete.png b/src/css/icons/joystick_delete.png similarity index 100% rename from web-app/css/icons/joystick_delete.png rename to src/css/icons/joystick_delete.png diff --git a/web-app/css/icons/joystick_error.png b/src/css/icons/joystick_error.png similarity index 100% rename from web-app/css/icons/joystick_error.png rename to src/css/icons/joystick_error.png diff --git a/web-app/css/icons/key.png b/src/css/icons/key.png similarity index 100% rename from web-app/css/icons/key.png rename to src/css/icons/key.png diff --git a/web-app/css/icons/key_add.png b/src/css/icons/key_add.png similarity index 100% rename from web-app/css/icons/key_add.png rename to src/css/icons/key_add.png diff --git a/web-app/css/icons/key_delete.png b/src/css/icons/key_delete.png similarity index 100% rename from web-app/css/icons/key_delete.png rename to src/css/icons/key_delete.png diff --git a/web-app/css/icons/key_go.png b/src/css/icons/key_go.png similarity index 100% rename from web-app/css/icons/key_go.png rename to src/css/icons/key_go.png diff --git a/web-app/css/icons/keyboard.png b/src/css/icons/keyboard.png similarity index 100% rename from web-app/css/icons/keyboard.png rename to src/css/icons/keyboard.png diff --git a/web-app/css/icons/keyboard_add.png b/src/css/icons/keyboard_add.png similarity index 100% rename from web-app/css/icons/keyboard_add.png rename to src/css/icons/keyboard_add.png diff --git a/web-app/css/icons/keyboard_delete.png b/src/css/icons/keyboard_delete.png similarity index 100% rename from web-app/css/icons/keyboard_delete.png rename to src/css/icons/keyboard_delete.png diff --git a/web-app/css/icons/keyboard_magnify.png b/src/css/icons/keyboard_magnify.png similarity index 100% rename from web-app/css/icons/keyboard_magnify.png rename to src/css/icons/keyboard_magnify.png diff --git a/web-app/css/icons/layers.png b/src/css/icons/layers.png similarity index 100% rename from web-app/css/icons/layers.png rename to src/css/icons/layers.png diff --git a/web-app/css/icons/layout.png b/src/css/icons/layout.png similarity index 100% rename from web-app/css/icons/layout.png rename to src/css/icons/layout.png diff --git a/web-app/css/icons/layout_add.png b/src/css/icons/layout_add.png similarity index 100% rename from web-app/css/icons/layout_add.png rename to src/css/icons/layout_add.png diff --git a/web-app/css/icons/layout_content.png b/src/css/icons/layout_content.png similarity index 100% rename from web-app/css/icons/layout_content.png rename to src/css/icons/layout_content.png diff --git a/web-app/css/icons/layout_delete.png b/src/css/icons/layout_delete.png similarity index 100% rename from web-app/css/icons/layout_delete.png rename to src/css/icons/layout_delete.png diff --git a/web-app/css/icons/layout_edit.png b/src/css/icons/layout_edit.png similarity index 100% rename from web-app/css/icons/layout_edit.png rename to src/css/icons/layout_edit.png diff --git a/web-app/css/icons/layout_error.png b/src/css/icons/layout_error.png similarity index 100% rename from web-app/css/icons/layout_error.png rename to src/css/icons/layout_error.png diff --git a/web-app/css/icons/layout_header.png b/src/css/icons/layout_header.png similarity index 100% rename from web-app/css/icons/layout_header.png rename to src/css/icons/layout_header.png diff --git a/web-app/css/icons/layout_link.png b/src/css/icons/layout_link.png similarity index 100% rename from web-app/css/icons/layout_link.png rename to src/css/icons/layout_link.png diff --git a/web-app/css/icons/layout_sidebar.png b/src/css/icons/layout_sidebar.png similarity index 100% rename from web-app/css/icons/layout_sidebar.png rename to src/css/icons/layout_sidebar.png diff --git a/web-app/css/icons/lightbulb.png b/src/css/icons/lightbulb.png similarity index 100% rename from web-app/css/icons/lightbulb.png rename to src/css/icons/lightbulb.png diff --git a/web-app/css/icons/lightbulb_add.png b/src/css/icons/lightbulb_add.png similarity index 100% rename from web-app/css/icons/lightbulb_add.png rename to src/css/icons/lightbulb_add.png diff --git a/web-app/css/icons/lightbulb_delete.png b/src/css/icons/lightbulb_delete.png similarity index 100% rename from web-app/css/icons/lightbulb_delete.png rename to src/css/icons/lightbulb_delete.png diff --git a/web-app/css/icons/lightbulb_off.png b/src/css/icons/lightbulb_off.png similarity index 100% rename from web-app/css/icons/lightbulb_off.png rename to src/css/icons/lightbulb_off.png diff --git a/web-app/css/icons/lightning.png b/src/css/icons/lightning.png similarity index 100% rename from web-app/css/icons/lightning.png rename to src/css/icons/lightning.png diff --git a/web-app/css/icons/lightning_add.png b/src/css/icons/lightning_add.png similarity index 100% rename from web-app/css/icons/lightning_add.png rename to src/css/icons/lightning_add.png diff --git a/web-app/css/icons/lightning_delete.png b/src/css/icons/lightning_delete.png similarity index 100% rename from web-app/css/icons/lightning_delete.png rename to src/css/icons/lightning_delete.png diff --git a/web-app/css/icons/lightning_go.png b/src/css/icons/lightning_go.png similarity index 100% rename from web-app/css/icons/lightning_go.png rename to src/css/icons/lightning_go.png diff --git a/web-app/css/icons/link.png b/src/css/icons/link.png similarity index 100% rename from web-app/css/icons/link.png rename to src/css/icons/link.png diff --git a/web-app/css/icons/link_add.png b/src/css/icons/link_add.png similarity index 100% rename from web-app/css/icons/link_add.png rename to src/css/icons/link_add.png diff --git a/web-app/css/icons/link_break.png b/src/css/icons/link_break.png similarity index 100% rename from web-app/css/icons/link_break.png rename to src/css/icons/link_break.png diff --git a/web-app/css/icons/link_delete.png b/src/css/icons/link_delete.png similarity index 100% rename from web-app/css/icons/link_delete.png rename to src/css/icons/link_delete.png diff --git a/web-app/css/icons/link_edit.png b/src/css/icons/link_edit.png similarity index 100% rename from web-app/css/icons/link_edit.png rename to src/css/icons/link_edit.png diff --git a/web-app/css/icons/link_error.png b/src/css/icons/link_error.png similarity index 100% rename from web-app/css/icons/link_error.png rename to src/css/icons/link_error.png diff --git a/web-app/css/icons/link_go.png b/src/css/icons/link_go.png similarity index 100% rename from web-app/css/icons/link_go.png rename to src/css/icons/link_go.png diff --git a/web-app/css/icons/lock.png b/src/css/icons/lock.png similarity index 100% rename from web-app/css/icons/lock.png rename to src/css/icons/lock.png diff --git a/web-app/css/icons/lock_add.png b/src/css/icons/lock_add.png similarity index 100% rename from web-app/css/icons/lock_add.png rename to src/css/icons/lock_add.png diff --git a/web-app/css/icons/lock_break.png b/src/css/icons/lock_break.png similarity index 100% rename from web-app/css/icons/lock_break.png rename to src/css/icons/lock_break.png diff --git a/web-app/css/icons/lock_delete.png b/src/css/icons/lock_delete.png similarity index 100% rename from web-app/css/icons/lock_delete.png rename to src/css/icons/lock_delete.png diff --git a/web-app/css/icons/lock_edit.png b/src/css/icons/lock_edit.png similarity index 100% rename from web-app/css/icons/lock_edit.png rename to src/css/icons/lock_edit.png diff --git a/web-app/css/icons/lock_go.png b/src/css/icons/lock_go.png similarity index 100% rename from web-app/css/icons/lock_go.png rename to src/css/icons/lock_go.png diff --git a/web-app/css/icons/lock_open.png b/src/css/icons/lock_open.png similarity index 100% rename from web-app/css/icons/lock_open.png rename to src/css/icons/lock_open.png diff --git a/web-app/css/icons/lorry.png b/src/css/icons/lorry.png similarity index 100% rename from web-app/css/icons/lorry.png rename to src/css/icons/lorry.png diff --git a/web-app/css/icons/lorry_add.png b/src/css/icons/lorry_add.png similarity index 100% rename from web-app/css/icons/lorry_add.png rename to src/css/icons/lorry_add.png diff --git a/web-app/css/icons/lorry_delete.png b/src/css/icons/lorry_delete.png similarity index 100% rename from web-app/css/icons/lorry_delete.png rename to src/css/icons/lorry_delete.png diff --git a/web-app/css/icons/lorry_error.png b/src/css/icons/lorry_error.png similarity index 100% rename from web-app/css/icons/lorry_error.png rename to src/css/icons/lorry_error.png diff --git a/web-app/css/icons/lorry_flatbed.png b/src/css/icons/lorry_flatbed.png similarity index 100% rename from web-app/css/icons/lorry_flatbed.png rename to src/css/icons/lorry_flatbed.png diff --git a/web-app/css/icons/lorry_go.png b/src/css/icons/lorry_go.png similarity index 100% rename from web-app/css/icons/lorry_go.png rename to src/css/icons/lorry_go.png diff --git a/web-app/css/icons/lorry_link.png b/src/css/icons/lorry_link.png similarity index 100% rename from web-app/css/icons/lorry_link.png rename to src/css/icons/lorry_link.png diff --git a/web-app/css/icons/magifier_zoom_out.png b/src/css/icons/magifier_zoom_out.png similarity index 100% rename from web-app/css/icons/magifier_zoom_out.png rename to src/css/icons/magifier_zoom_out.png diff --git a/web-app/css/icons/magnifier.png b/src/css/icons/magnifier.png similarity index 100% rename from web-app/css/icons/magnifier.png rename to src/css/icons/magnifier.png diff --git a/web-app/css/icons/magnifier_zoom_in.png b/src/css/icons/magnifier_zoom_in.png similarity index 100% rename from web-app/css/icons/magnifier_zoom_in.png rename to src/css/icons/magnifier_zoom_in.png diff --git a/web-app/css/icons/male.png b/src/css/icons/male.png similarity index 100% rename from web-app/css/icons/male.png rename to src/css/icons/male.png diff --git a/web-app/css/icons/map.png b/src/css/icons/map.png similarity index 100% rename from web-app/css/icons/map.png rename to src/css/icons/map.png diff --git a/web-app/css/icons/map_add.png b/src/css/icons/map_add.png similarity index 100% rename from web-app/css/icons/map_add.png rename to src/css/icons/map_add.png diff --git a/web-app/css/icons/map_delete.png b/src/css/icons/map_delete.png similarity index 100% rename from web-app/css/icons/map_delete.png rename to src/css/icons/map_delete.png diff --git a/web-app/css/icons/map_edit.png b/src/css/icons/map_edit.png similarity index 100% rename from web-app/css/icons/map_edit.png rename to src/css/icons/map_edit.png diff --git a/web-app/css/icons/map_go.png b/src/css/icons/map_go.png similarity index 100% rename from web-app/css/icons/map_go.png rename to src/css/icons/map_go.png diff --git a/web-app/css/icons/map_magnify.png b/src/css/icons/map_magnify.png similarity index 100% rename from web-app/css/icons/map_magnify.png rename to src/css/icons/map_magnify.png diff --git a/web-app/css/icons/medal_bronze_1.png b/src/css/icons/medal_bronze_1.png similarity index 100% rename from web-app/css/icons/medal_bronze_1.png rename to src/css/icons/medal_bronze_1.png diff --git a/web-app/css/icons/medal_bronze_2.png b/src/css/icons/medal_bronze_2.png similarity index 100% rename from web-app/css/icons/medal_bronze_2.png rename to src/css/icons/medal_bronze_2.png diff --git a/web-app/css/icons/medal_bronze_3.png b/src/css/icons/medal_bronze_3.png similarity index 100% rename from web-app/css/icons/medal_bronze_3.png rename to src/css/icons/medal_bronze_3.png diff --git a/web-app/css/icons/medal_bronze_add.png b/src/css/icons/medal_bronze_add.png similarity index 100% rename from web-app/css/icons/medal_bronze_add.png rename to src/css/icons/medal_bronze_add.png diff --git a/web-app/css/icons/medal_bronze_delete.png b/src/css/icons/medal_bronze_delete.png similarity index 100% rename from web-app/css/icons/medal_bronze_delete.png rename to src/css/icons/medal_bronze_delete.png diff --git a/web-app/css/icons/medal_gold_1.png b/src/css/icons/medal_gold_1.png similarity index 100% rename from web-app/css/icons/medal_gold_1.png rename to src/css/icons/medal_gold_1.png diff --git a/web-app/css/icons/medal_gold_2.png b/src/css/icons/medal_gold_2.png similarity index 100% rename from web-app/css/icons/medal_gold_2.png rename to src/css/icons/medal_gold_2.png diff --git a/web-app/css/icons/medal_gold_3.png b/src/css/icons/medal_gold_3.png similarity index 100% rename from web-app/css/icons/medal_gold_3.png rename to src/css/icons/medal_gold_3.png diff --git a/web-app/css/icons/medal_gold_add.png b/src/css/icons/medal_gold_add.png similarity index 100% rename from web-app/css/icons/medal_gold_add.png rename to src/css/icons/medal_gold_add.png diff --git a/web-app/css/icons/medal_gold_delete.png b/src/css/icons/medal_gold_delete.png similarity index 100% rename from web-app/css/icons/medal_gold_delete.png rename to src/css/icons/medal_gold_delete.png diff --git a/web-app/css/icons/medal_silver_1.png b/src/css/icons/medal_silver_1.png similarity index 100% rename from web-app/css/icons/medal_silver_1.png rename to src/css/icons/medal_silver_1.png diff --git a/web-app/css/icons/medal_silver_2.png b/src/css/icons/medal_silver_2.png similarity index 100% rename from web-app/css/icons/medal_silver_2.png rename to src/css/icons/medal_silver_2.png diff --git a/web-app/css/icons/medal_silver_3.png b/src/css/icons/medal_silver_3.png similarity index 100% rename from web-app/css/icons/medal_silver_3.png rename to src/css/icons/medal_silver_3.png diff --git a/web-app/css/icons/medal_silver_add.png b/src/css/icons/medal_silver_add.png similarity index 100% rename from web-app/css/icons/medal_silver_add.png rename to src/css/icons/medal_silver_add.png diff --git a/web-app/css/icons/medal_silver_delete.png b/src/css/icons/medal_silver_delete.png similarity index 100% rename from web-app/css/icons/medal_silver_delete.png rename to src/css/icons/medal_silver_delete.png diff --git a/web-app/css/icons/money.png b/src/css/icons/money.png similarity index 100% rename from web-app/css/icons/money.png rename to src/css/icons/money.png diff --git a/web-app/css/icons/money_add.png b/src/css/icons/money_add.png similarity index 100% rename from web-app/css/icons/money_add.png rename to src/css/icons/money_add.png diff --git a/web-app/css/icons/money_delete.png b/src/css/icons/money_delete.png similarity index 100% rename from web-app/css/icons/money_delete.png rename to src/css/icons/money_delete.png diff --git a/web-app/css/icons/money_dollar.png b/src/css/icons/money_dollar.png similarity index 100% rename from web-app/css/icons/money_dollar.png rename to src/css/icons/money_dollar.png diff --git a/web-app/css/icons/money_euro.png b/src/css/icons/money_euro.png similarity index 100% rename from web-app/css/icons/money_euro.png rename to src/css/icons/money_euro.png diff --git a/web-app/css/icons/money_pound.png b/src/css/icons/money_pound.png similarity index 100% rename from web-app/css/icons/money_pound.png rename to src/css/icons/money_pound.png diff --git a/web-app/css/icons/money_yen.png b/src/css/icons/money_yen.png similarity index 100% rename from web-app/css/icons/money_yen.png rename to src/css/icons/money_yen.png diff --git a/web-app/css/icons/monitor.png b/src/css/icons/monitor.png similarity index 100% rename from web-app/css/icons/monitor.png rename to src/css/icons/monitor.png diff --git a/web-app/css/icons/monitor_add.png b/src/css/icons/monitor_add.png similarity index 100% rename from web-app/css/icons/monitor_add.png rename to src/css/icons/monitor_add.png diff --git a/web-app/css/icons/monitor_delete.png b/src/css/icons/monitor_delete.png similarity index 100% rename from web-app/css/icons/monitor_delete.png rename to src/css/icons/monitor_delete.png diff --git a/web-app/css/icons/monitor_edit.png b/src/css/icons/monitor_edit.png similarity index 100% rename from web-app/css/icons/monitor_edit.png rename to src/css/icons/monitor_edit.png diff --git a/web-app/css/icons/monitor_error.png b/src/css/icons/monitor_error.png similarity index 100% rename from web-app/css/icons/monitor_error.png rename to src/css/icons/monitor_error.png diff --git a/web-app/css/icons/monitor_go.png b/src/css/icons/monitor_go.png similarity index 100% rename from web-app/css/icons/monitor_go.png rename to src/css/icons/monitor_go.png diff --git a/web-app/css/icons/monitor_lightning.png b/src/css/icons/monitor_lightning.png similarity index 100% rename from web-app/css/icons/monitor_lightning.png rename to src/css/icons/monitor_lightning.png diff --git a/web-app/css/icons/monitor_link.png b/src/css/icons/monitor_link.png similarity index 100% rename from web-app/css/icons/monitor_link.png rename to src/css/icons/monitor_link.png diff --git a/web-app/css/icons/mouse.png b/src/css/icons/mouse.png similarity index 100% rename from web-app/css/icons/mouse.png rename to src/css/icons/mouse.png diff --git a/web-app/css/icons/mouse_add.png b/src/css/icons/mouse_add.png similarity index 100% rename from web-app/css/icons/mouse_add.png rename to src/css/icons/mouse_add.png diff --git a/web-app/css/icons/mouse_delete.png b/src/css/icons/mouse_delete.png similarity index 100% rename from web-app/css/icons/mouse_delete.png rename to src/css/icons/mouse_delete.png diff --git a/web-app/css/icons/mouse_error.png b/src/css/icons/mouse_error.png similarity index 100% rename from web-app/css/icons/mouse_error.png rename to src/css/icons/mouse_error.png diff --git a/web-app/css/icons/music.png b/src/css/icons/music.png similarity index 100% rename from web-app/css/icons/music.png rename to src/css/icons/music.png diff --git a/web-app/css/icons/new.png b/src/css/icons/new.png similarity index 100% rename from web-app/css/icons/new.png rename to src/css/icons/new.png diff --git a/web-app/css/icons/newspaper.png b/src/css/icons/newspaper.png similarity index 100% rename from web-app/css/icons/newspaper.png rename to src/css/icons/newspaper.png diff --git a/web-app/css/icons/newspaper_add.png b/src/css/icons/newspaper_add.png similarity index 100% rename from web-app/css/icons/newspaper_add.png rename to src/css/icons/newspaper_add.png diff --git a/web-app/css/icons/newspaper_delete.png b/src/css/icons/newspaper_delete.png similarity index 100% rename from web-app/css/icons/newspaper_delete.png rename to src/css/icons/newspaper_delete.png diff --git a/web-app/css/icons/newspaper_go.png b/src/css/icons/newspaper_go.png similarity index 100% rename from web-app/css/icons/newspaper_go.png rename to src/css/icons/newspaper_go.png diff --git a/web-app/css/icons/newspaper_link.png b/src/css/icons/newspaper_link.png similarity index 100% rename from web-app/css/icons/newspaper_link.png rename to src/css/icons/newspaper_link.png diff --git a/web-app/css/icons/note.png b/src/css/icons/note.png similarity index 100% rename from web-app/css/icons/note.png rename to src/css/icons/note.png diff --git a/web-app/css/icons/note_add.png b/src/css/icons/note_add.png similarity index 100% rename from web-app/css/icons/note_add.png rename to src/css/icons/note_add.png diff --git a/web-app/css/icons/note_delete.png b/src/css/icons/note_delete.png similarity index 100% rename from web-app/css/icons/note_delete.png rename to src/css/icons/note_delete.png diff --git a/web-app/css/icons/note_edit.png b/src/css/icons/note_edit.png similarity index 100% rename from web-app/css/icons/note_edit.png rename to src/css/icons/note_edit.png diff --git a/web-app/css/icons/note_error.png b/src/css/icons/note_error.png similarity index 100% rename from web-app/css/icons/note_error.png rename to src/css/icons/note_error.png diff --git a/web-app/css/icons/note_go.png b/src/css/icons/note_go.png similarity index 100% rename from web-app/css/icons/note_go.png rename to src/css/icons/note_go.png diff --git a/web-app/css/icons/overlays.png b/src/css/icons/overlays.png similarity index 100% rename from web-app/css/icons/overlays.png rename to src/css/icons/overlays.png diff --git a/web-app/css/icons/package.png b/src/css/icons/package.png similarity index 100% rename from web-app/css/icons/package.png rename to src/css/icons/package.png diff --git a/web-app/css/icons/package_add.png b/src/css/icons/package_add.png similarity index 100% rename from web-app/css/icons/package_add.png rename to src/css/icons/package_add.png diff --git a/web-app/css/icons/package_delete.png b/src/css/icons/package_delete.png similarity index 100% rename from web-app/css/icons/package_delete.png rename to src/css/icons/package_delete.png diff --git a/web-app/css/icons/package_go.png b/src/css/icons/package_go.png similarity index 100% rename from web-app/css/icons/package_go.png rename to src/css/icons/package_go.png diff --git a/web-app/css/icons/package_green.png b/src/css/icons/package_green.png similarity index 100% rename from web-app/css/icons/package_green.png rename to src/css/icons/package_green.png diff --git a/web-app/css/icons/package_link.png b/src/css/icons/package_link.png similarity index 100% rename from web-app/css/icons/package_link.png rename to src/css/icons/package_link.png diff --git a/web-app/css/icons/page.png b/src/css/icons/page.png similarity index 100% rename from web-app/css/icons/page.png rename to src/css/icons/page.png diff --git a/web-app/css/icons/page_add.png b/src/css/icons/page_add.png similarity index 100% rename from web-app/css/icons/page_add.png rename to src/css/icons/page_add.png diff --git a/web-app/css/icons/page_attach.png b/src/css/icons/page_attach.png similarity index 100% rename from web-app/css/icons/page_attach.png rename to src/css/icons/page_attach.png diff --git a/web-app/css/icons/page_code.png b/src/css/icons/page_code.png similarity index 100% rename from web-app/css/icons/page_code.png rename to src/css/icons/page_code.png diff --git a/web-app/css/icons/page_copy.png b/src/css/icons/page_copy.png similarity index 100% rename from web-app/css/icons/page_copy.png rename to src/css/icons/page_copy.png diff --git a/web-app/css/icons/page_delete.png b/src/css/icons/page_delete.png similarity index 100% rename from web-app/css/icons/page_delete.png rename to src/css/icons/page_delete.png diff --git a/web-app/css/icons/page_edit.png b/src/css/icons/page_edit.png similarity index 100% rename from web-app/css/icons/page_edit.png rename to src/css/icons/page_edit.png diff --git a/web-app/css/icons/page_error.png b/src/css/icons/page_error.png similarity index 100% rename from web-app/css/icons/page_error.png rename to src/css/icons/page_error.png diff --git a/web-app/css/icons/page_excel.png b/src/css/icons/page_excel.png similarity index 100% rename from web-app/css/icons/page_excel.png rename to src/css/icons/page_excel.png diff --git a/web-app/css/icons/page_find.png b/src/css/icons/page_find.png similarity index 100% rename from web-app/css/icons/page_find.png rename to src/css/icons/page_find.png diff --git a/web-app/css/icons/page_gear.png b/src/css/icons/page_gear.png similarity index 100% rename from web-app/css/icons/page_gear.png rename to src/css/icons/page_gear.png diff --git a/web-app/css/icons/page_go.png b/src/css/icons/page_go.png similarity index 100% rename from web-app/css/icons/page_go.png rename to src/css/icons/page_go.png diff --git a/web-app/css/icons/page_green.png b/src/css/icons/page_green.png similarity index 100% rename from web-app/css/icons/page_green.png rename to src/css/icons/page_green.png diff --git a/web-app/css/icons/page_key.png b/src/css/icons/page_key.png similarity index 100% rename from web-app/css/icons/page_key.png rename to src/css/icons/page_key.png diff --git a/web-app/css/icons/page_lightning.png b/src/css/icons/page_lightning.png similarity index 100% rename from web-app/css/icons/page_lightning.png rename to src/css/icons/page_lightning.png diff --git a/web-app/css/icons/page_link.png b/src/css/icons/page_link.png similarity index 100% rename from web-app/css/icons/page_link.png rename to src/css/icons/page_link.png diff --git a/web-app/css/icons/page_paintbrush.png b/src/css/icons/page_paintbrush.png similarity index 100% rename from web-app/css/icons/page_paintbrush.png rename to src/css/icons/page_paintbrush.png diff --git a/web-app/css/icons/page_paste.png b/src/css/icons/page_paste.png similarity index 100% rename from web-app/css/icons/page_paste.png rename to src/css/icons/page_paste.png diff --git a/web-app/css/icons/page_red.png b/src/css/icons/page_red.png similarity index 100% rename from web-app/css/icons/page_red.png rename to src/css/icons/page_red.png diff --git a/web-app/css/icons/page_refresh.png b/src/css/icons/page_refresh.png similarity index 100% rename from web-app/css/icons/page_refresh.png rename to src/css/icons/page_refresh.png diff --git a/web-app/css/icons/page_save.png b/src/css/icons/page_save.png similarity index 100% rename from web-app/css/icons/page_save.png rename to src/css/icons/page_save.png diff --git a/web-app/css/icons/page_white.png b/src/css/icons/page_white.png similarity index 100% rename from web-app/css/icons/page_white.png rename to src/css/icons/page_white.png diff --git a/web-app/css/icons/page_white_acrobat.png b/src/css/icons/page_white_acrobat.png similarity index 100% rename from web-app/css/icons/page_white_acrobat.png rename to src/css/icons/page_white_acrobat.png diff --git a/web-app/css/icons/page_white_actionscript.png b/src/css/icons/page_white_actionscript.png similarity index 100% rename from web-app/css/icons/page_white_actionscript.png rename to src/css/icons/page_white_actionscript.png diff --git a/web-app/css/icons/page_white_add.png b/src/css/icons/page_white_add.png similarity index 100% rename from web-app/css/icons/page_white_add.png rename to src/css/icons/page_white_add.png diff --git a/web-app/css/icons/page_white_c.png b/src/css/icons/page_white_c.png similarity index 100% rename from web-app/css/icons/page_white_c.png rename to src/css/icons/page_white_c.png diff --git a/web-app/css/icons/page_white_camera.png b/src/css/icons/page_white_camera.png similarity index 100% rename from web-app/css/icons/page_white_camera.png rename to src/css/icons/page_white_camera.png diff --git a/web-app/css/icons/page_white_cd.png b/src/css/icons/page_white_cd.png similarity index 100% rename from web-app/css/icons/page_white_cd.png rename to src/css/icons/page_white_cd.png diff --git a/web-app/css/icons/page_white_code.png b/src/css/icons/page_white_code.png similarity index 100% rename from web-app/css/icons/page_white_code.png rename to src/css/icons/page_white_code.png diff --git a/web-app/css/icons/page_white_code_red.png b/src/css/icons/page_white_code_red.png similarity index 100% rename from web-app/css/icons/page_white_code_red.png rename to src/css/icons/page_white_code_red.png diff --git a/web-app/css/icons/page_white_coldfusion.png b/src/css/icons/page_white_coldfusion.png similarity index 100% rename from web-app/css/icons/page_white_coldfusion.png rename to src/css/icons/page_white_coldfusion.png diff --git a/web-app/css/icons/page_white_compressed.png b/src/css/icons/page_white_compressed.png similarity index 100% rename from web-app/css/icons/page_white_compressed.png rename to src/css/icons/page_white_compressed.png diff --git a/web-app/css/icons/page_white_copy.png b/src/css/icons/page_white_copy.png similarity index 100% rename from web-app/css/icons/page_white_copy.png rename to src/css/icons/page_white_copy.png diff --git a/web-app/css/icons/page_white_cplusplus.png b/src/css/icons/page_white_cplusplus.png similarity index 100% rename from web-app/css/icons/page_white_cplusplus.png rename to src/css/icons/page_white_cplusplus.png diff --git a/web-app/css/icons/page_white_csharp.png b/src/css/icons/page_white_csharp.png similarity index 100% rename from web-app/css/icons/page_white_csharp.png rename to src/css/icons/page_white_csharp.png diff --git a/web-app/css/icons/page_white_cup.png b/src/css/icons/page_white_cup.png similarity index 100% rename from web-app/css/icons/page_white_cup.png rename to src/css/icons/page_white_cup.png diff --git a/web-app/css/icons/page_white_database.png b/src/css/icons/page_white_database.png similarity index 100% rename from web-app/css/icons/page_white_database.png rename to src/css/icons/page_white_database.png diff --git a/web-app/css/icons/page_white_delete.png b/src/css/icons/page_white_delete.png similarity index 100% rename from web-app/css/icons/page_white_delete.png rename to src/css/icons/page_white_delete.png diff --git a/web-app/css/icons/page_white_dvd.png b/src/css/icons/page_white_dvd.png similarity index 100% rename from web-app/css/icons/page_white_dvd.png rename to src/css/icons/page_white_dvd.png diff --git a/web-app/css/icons/page_white_edit.png b/src/css/icons/page_white_edit.png similarity index 100% rename from web-app/css/icons/page_white_edit.png rename to src/css/icons/page_white_edit.png diff --git a/web-app/css/icons/page_white_error.png b/src/css/icons/page_white_error.png similarity index 100% rename from web-app/css/icons/page_white_error.png rename to src/css/icons/page_white_error.png diff --git a/web-app/css/icons/page_white_excel.png b/src/css/icons/page_white_excel.png similarity index 100% rename from web-app/css/icons/page_white_excel.png rename to src/css/icons/page_white_excel.png diff --git a/web-app/css/icons/page_white_find.png b/src/css/icons/page_white_find.png similarity index 100% rename from web-app/css/icons/page_white_find.png rename to src/css/icons/page_white_find.png diff --git a/web-app/css/icons/page_white_flash.png b/src/css/icons/page_white_flash.png similarity index 100% rename from web-app/css/icons/page_white_flash.png rename to src/css/icons/page_white_flash.png diff --git a/web-app/css/icons/page_white_freehand.png b/src/css/icons/page_white_freehand.png similarity index 100% rename from web-app/css/icons/page_white_freehand.png rename to src/css/icons/page_white_freehand.png diff --git a/web-app/css/icons/page_white_gear.png b/src/css/icons/page_white_gear.png similarity index 100% rename from web-app/css/icons/page_white_gear.png rename to src/css/icons/page_white_gear.png diff --git a/web-app/css/icons/page_white_get.png b/src/css/icons/page_white_get.png similarity index 100% rename from web-app/css/icons/page_white_get.png rename to src/css/icons/page_white_get.png diff --git a/web-app/css/icons/page_white_go.png b/src/css/icons/page_white_go.png similarity index 100% rename from web-app/css/icons/page_white_go.png rename to src/css/icons/page_white_go.png diff --git a/web-app/css/icons/page_white_h.png b/src/css/icons/page_white_h.png similarity index 100% rename from web-app/css/icons/page_white_h.png rename to src/css/icons/page_white_h.png diff --git a/web-app/css/icons/page_white_horizontal.png b/src/css/icons/page_white_horizontal.png similarity index 100% rename from web-app/css/icons/page_white_horizontal.png rename to src/css/icons/page_white_horizontal.png diff --git a/web-app/css/icons/page_white_key.png b/src/css/icons/page_white_key.png similarity index 100% rename from web-app/css/icons/page_white_key.png rename to src/css/icons/page_white_key.png diff --git a/web-app/css/icons/page_white_lightning.png b/src/css/icons/page_white_lightning.png similarity index 100% rename from web-app/css/icons/page_white_lightning.png rename to src/css/icons/page_white_lightning.png diff --git a/web-app/css/icons/page_white_link.png b/src/css/icons/page_white_link.png similarity index 100% rename from web-app/css/icons/page_white_link.png rename to src/css/icons/page_white_link.png diff --git a/web-app/css/icons/page_white_magnify.png b/src/css/icons/page_white_magnify.png similarity index 100% rename from web-app/css/icons/page_white_magnify.png rename to src/css/icons/page_white_magnify.png diff --git a/web-app/css/icons/page_white_medal.png b/src/css/icons/page_white_medal.png similarity index 100% rename from web-app/css/icons/page_white_medal.png rename to src/css/icons/page_white_medal.png diff --git a/web-app/css/icons/page_white_office.png b/src/css/icons/page_white_office.png similarity index 100% rename from web-app/css/icons/page_white_office.png rename to src/css/icons/page_white_office.png diff --git a/web-app/css/icons/page_white_paint.png b/src/css/icons/page_white_paint.png similarity index 100% rename from web-app/css/icons/page_white_paint.png rename to src/css/icons/page_white_paint.png diff --git a/web-app/css/icons/page_white_paintbrush.png b/src/css/icons/page_white_paintbrush.png similarity index 100% rename from web-app/css/icons/page_white_paintbrush.png rename to src/css/icons/page_white_paintbrush.png diff --git a/web-app/css/icons/page_white_paste.png b/src/css/icons/page_white_paste.png similarity index 100% rename from web-app/css/icons/page_white_paste.png rename to src/css/icons/page_white_paste.png diff --git a/web-app/css/icons/page_white_php.png b/src/css/icons/page_white_php.png similarity index 100% rename from web-app/css/icons/page_white_php.png rename to src/css/icons/page_white_php.png diff --git a/web-app/css/icons/page_white_picture.png b/src/css/icons/page_white_picture.png similarity index 100% rename from web-app/css/icons/page_white_picture.png rename to src/css/icons/page_white_picture.png diff --git a/web-app/css/icons/page_white_powerpoint.png b/src/css/icons/page_white_powerpoint.png similarity index 100% rename from web-app/css/icons/page_white_powerpoint.png rename to src/css/icons/page_white_powerpoint.png diff --git a/web-app/css/icons/page_white_put.png b/src/css/icons/page_white_put.png similarity index 100% rename from web-app/css/icons/page_white_put.png rename to src/css/icons/page_white_put.png diff --git a/web-app/css/icons/page_white_ruby.png b/src/css/icons/page_white_ruby.png similarity index 100% rename from web-app/css/icons/page_white_ruby.png rename to src/css/icons/page_white_ruby.png diff --git a/web-app/css/icons/page_white_stack.png b/src/css/icons/page_white_stack.png similarity index 100% rename from web-app/css/icons/page_white_stack.png rename to src/css/icons/page_white_stack.png diff --git a/web-app/css/icons/page_white_star.png b/src/css/icons/page_white_star.png similarity index 100% rename from web-app/css/icons/page_white_star.png rename to src/css/icons/page_white_star.png diff --git a/web-app/css/icons/page_white_swoosh.png b/src/css/icons/page_white_swoosh.png similarity index 100% rename from web-app/css/icons/page_white_swoosh.png rename to src/css/icons/page_white_swoosh.png diff --git a/web-app/css/icons/page_white_text.png b/src/css/icons/page_white_text.png similarity index 100% rename from web-app/css/icons/page_white_text.png rename to src/css/icons/page_white_text.png diff --git a/web-app/css/icons/page_white_text_width.png b/src/css/icons/page_white_text_width.png similarity index 100% rename from web-app/css/icons/page_white_text_width.png rename to src/css/icons/page_white_text_width.png diff --git a/web-app/css/icons/page_white_tux.png b/src/css/icons/page_white_tux.png similarity index 100% rename from web-app/css/icons/page_white_tux.png rename to src/css/icons/page_white_tux.png diff --git a/web-app/css/icons/page_white_vector.png b/src/css/icons/page_white_vector.png similarity index 100% rename from web-app/css/icons/page_white_vector.png rename to src/css/icons/page_white_vector.png diff --git a/web-app/css/icons/page_white_visualstudio.png b/src/css/icons/page_white_visualstudio.png similarity index 100% rename from web-app/css/icons/page_white_visualstudio.png rename to src/css/icons/page_white_visualstudio.png diff --git a/web-app/css/icons/page_white_width.png b/src/css/icons/page_white_width.png similarity index 100% rename from web-app/css/icons/page_white_width.png rename to src/css/icons/page_white_width.png diff --git a/web-app/css/icons/page_white_word.png b/src/css/icons/page_white_word.png similarity index 100% rename from web-app/css/icons/page_white_word.png rename to src/css/icons/page_white_word.png diff --git a/web-app/css/icons/page_white_world.png b/src/css/icons/page_white_world.png similarity index 100% rename from web-app/css/icons/page_white_world.png rename to src/css/icons/page_white_world.png diff --git a/web-app/css/icons/page_white_wrench.png b/src/css/icons/page_white_wrench.png similarity index 100% rename from web-app/css/icons/page_white_wrench.png rename to src/css/icons/page_white_wrench.png diff --git a/web-app/css/icons/page_white_zip.png b/src/css/icons/page_white_zip.png similarity index 100% rename from web-app/css/icons/page_white_zip.png rename to src/css/icons/page_white_zip.png diff --git a/web-app/css/icons/page_word.png b/src/css/icons/page_word.png similarity index 100% rename from web-app/css/icons/page_word.png rename to src/css/icons/page_word.png diff --git a/web-app/css/icons/page_world.png b/src/css/icons/page_world.png similarity index 100% rename from web-app/css/icons/page_world.png rename to src/css/icons/page_world.png diff --git a/web-app/css/icons/paintbrush.png b/src/css/icons/paintbrush.png similarity index 100% rename from web-app/css/icons/paintbrush.png rename to src/css/icons/paintbrush.png diff --git a/web-app/css/icons/paintcan.png b/src/css/icons/paintcan.png similarity index 100% rename from web-app/css/icons/paintcan.png rename to src/css/icons/paintcan.png diff --git a/web-app/css/icons/palette.png b/src/css/icons/palette.png similarity index 100% rename from web-app/css/icons/palette.png rename to src/css/icons/palette.png diff --git a/web-app/css/icons/paste_plain.png b/src/css/icons/paste_plain.png similarity index 100% rename from web-app/css/icons/paste_plain.png rename to src/css/icons/paste_plain.png diff --git a/web-app/css/icons/paste_word.png b/src/css/icons/paste_word.png similarity index 100% rename from web-app/css/icons/paste_word.png rename to src/css/icons/paste_word.png diff --git a/web-app/css/icons/pencil.png b/src/css/icons/pencil.png similarity index 100% rename from web-app/css/icons/pencil.png rename to src/css/icons/pencil.png diff --git a/web-app/css/icons/pencil_add.png b/src/css/icons/pencil_add.png similarity index 100% rename from web-app/css/icons/pencil_add.png rename to src/css/icons/pencil_add.png diff --git a/web-app/css/icons/pencil_delete.png b/src/css/icons/pencil_delete.png similarity index 100% rename from web-app/css/icons/pencil_delete.png rename to src/css/icons/pencil_delete.png diff --git a/web-app/css/icons/pencil_go.png b/src/css/icons/pencil_go.png similarity index 100% rename from web-app/css/icons/pencil_go.png rename to src/css/icons/pencil_go.png diff --git a/web-app/css/icons/phone.png b/src/css/icons/phone.png similarity index 100% rename from web-app/css/icons/phone.png rename to src/css/icons/phone.png diff --git a/web-app/css/icons/phone_add.png b/src/css/icons/phone_add.png similarity index 100% rename from web-app/css/icons/phone_add.png rename to src/css/icons/phone_add.png diff --git a/web-app/css/icons/phone_delete.png b/src/css/icons/phone_delete.png similarity index 100% rename from web-app/css/icons/phone_delete.png rename to src/css/icons/phone_delete.png diff --git a/web-app/css/icons/phone_sound.png b/src/css/icons/phone_sound.png similarity index 100% rename from web-app/css/icons/phone_sound.png rename to src/css/icons/phone_sound.png diff --git a/web-app/css/icons/photo.png b/src/css/icons/photo.png similarity index 100% rename from web-app/css/icons/photo.png rename to src/css/icons/photo.png diff --git a/web-app/css/icons/photo_add.png b/src/css/icons/photo_add.png similarity index 100% rename from web-app/css/icons/photo_add.png rename to src/css/icons/photo_add.png diff --git a/web-app/css/icons/photo_delete.png b/src/css/icons/photo_delete.png similarity index 100% rename from web-app/css/icons/photo_delete.png rename to src/css/icons/photo_delete.png diff --git a/web-app/css/icons/photo_link.png b/src/css/icons/photo_link.png similarity index 100% rename from web-app/css/icons/photo_link.png rename to src/css/icons/photo_link.png diff --git a/web-app/css/icons/photos.png b/src/css/icons/photos.png similarity index 100% rename from web-app/css/icons/photos.png rename to src/css/icons/photos.png diff --git a/web-app/css/icons/picture.png b/src/css/icons/picture.png similarity index 100% rename from web-app/css/icons/picture.png rename to src/css/icons/picture.png diff --git a/web-app/css/icons/picture_add.png b/src/css/icons/picture_add.png similarity index 100% rename from web-app/css/icons/picture_add.png rename to src/css/icons/picture_add.png diff --git a/web-app/css/icons/picture_delete.png b/src/css/icons/picture_delete.png similarity index 100% rename from web-app/css/icons/picture_delete.png rename to src/css/icons/picture_delete.png diff --git a/web-app/css/icons/picture_edit.png b/src/css/icons/picture_edit.png similarity index 100% rename from web-app/css/icons/picture_edit.png rename to src/css/icons/picture_edit.png diff --git a/web-app/css/icons/picture_empty.png b/src/css/icons/picture_empty.png similarity index 100% rename from web-app/css/icons/picture_empty.png rename to src/css/icons/picture_empty.png diff --git a/web-app/css/icons/picture_error.png b/src/css/icons/picture_error.png similarity index 100% rename from web-app/css/icons/picture_error.png rename to src/css/icons/picture_error.png diff --git a/web-app/css/icons/picture_go.png b/src/css/icons/picture_go.png similarity index 100% rename from web-app/css/icons/picture_go.png rename to src/css/icons/picture_go.png diff --git a/web-app/css/icons/picture_key.png b/src/css/icons/picture_key.png similarity index 100% rename from web-app/css/icons/picture_key.png rename to src/css/icons/picture_key.png diff --git a/web-app/css/icons/picture_link.png b/src/css/icons/picture_link.png similarity index 100% rename from web-app/css/icons/picture_link.png rename to src/css/icons/picture_link.png diff --git a/web-app/css/icons/picture_save.png b/src/css/icons/picture_save.png similarity index 100% rename from web-app/css/icons/picture_save.png rename to src/css/icons/picture_save.png diff --git a/web-app/css/icons/pictures.png b/src/css/icons/pictures.png similarity index 100% rename from web-app/css/icons/pictures.png rename to src/css/icons/pictures.png diff --git a/web-app/css/icons/pilcrow.png b/src/css/icons/pilcrow.png similarity index 100% rename from web-app/css/icons/pilcrow.png rename to src/css/icons/pilcrow.png diff --git a/web-app/css/icons/pill.png b/src/css/icons/pill.png similarity index 100% rename from web-app/css/icons/pill.png rename to src/css/icons/pill.png diff --git a/web-app/css/icons/pill_add.png b/src/css/icons/pill_add.png similarity index 100% rename from web-app/css/icons/pill_add.png rename to src/css/icons/pill_add.png diff --git a/web-app/css/icons/pill_delete.png b/src/css/icons/pill_delete.png similarity index 100% rename from web-app/css/icons/pill_delete.png rename to src/css/icons/pill_delete.png diff --git a/web-app/css/icons/pill_go.png b/src/css/icons/pill_go.png similarity index 100% rename from web-app/css/icons/pill_go.png rename to src/css/icons/pill_go.png diff --git a/web-app/css/icons/plugin.png b/src/css/icons/plugin.png similarity index 100% rename from web-app/css/icons/plugin.png rename to src/css/icons/plugin.png diff --git a/web-app/css/icons/plugin_add.png b/src/css/icons/plugin_add.png similarity index 100% rename from web-app/css/icons/plugin_add.png rename to src/css/icons/plugin_add.png diff --git a/web-app/css/icons/plugin_delete.png b/src/css/icons/plugin_delete.png similarity index 100% rename from web-app/css/icons/plugin_delete.png rename to src/css/icons/plugin_delete.png diff --git a/web-app/css/icons/plugin_disabled.png b/src/css/icons/plugin_disabled.png similarity index 100% rename from web-app/css/icons/plugin_disabled.png rename to src/css/icons/plugin_disabled.png diff --git a/web-app/css/icons/plugin_edit.png b/src/css/icons/plugin_edit.png similarity index 100% rename from web-app/css/icons/plugin_edit.png rename to src/css/icons/plugin_edit.png diff --git a/web-app/css/icons/plugin_error.png b/src/css/icons/plugin_error.png similarity index 100% rename from web-app/css/icons/plugin_error.png rename to src/css/icons/plugin_error.png diff --git a/web-app/css/icons/plugin_go.png b/src/css/icons/plugin_go.png similarity index 100% rename from web-app/css/icons/plugin_go.png rename to src/css/icons/plugin_go.png diff --git a/web-app/css/icons/plugin_link.png b/src/css/icons/plugin_link.png similarity index 100% rename from web-app/css/icons/plugin_link.png rename to src/css/icons/plugin_link.png diff --git a/web-app/css/icons/printer.png b/src/css/icons/printer.png similarity index 100% rename from web-app/css/icons/printer.png rename to src/css/icons/printer.png diff --git a/web-app/css/icons/printer_add.png b/src/css/icons/printer_add.png similarity index 100% rename from web-app/css/icons/printer_add.png rename to src/css/icons/printer_add.png diff --git a/web-app/css/icons/printer_delete.png b/src/css/icons/printer_delete.png similarity index 100% rename from web-app/css/icons/printer_delete.png rename to src/css/icons/printer_delete.png diff --git a/web-app/css/icons/printer_empty.png b/src/css/icons/printer_empty.png similarity index 100% rename from web-app/css/icons/printer_empty.png rename to src/css/icons/printer_empty.png diff --git a/web-app/css/icons/printer_error.png b/src/css/icons/printer_error.png similarity index 100% rename from web-app/css/icons/printer_error.png rename to src/css/icons/printer_error.png diff --git a/web-app/css/icons/rainbow.png b/src/css/icons/rainbow.png similarity index 100% rename from web-app/css/icons/rainbow.png rename to src/css/icons/rainbow.png diff --git a/web-app/css/icons/readme.html b/src/css/icons/readme.html similarity index 100% rename from web-app/css/icons/readme.html rename to src/css/icons/readme.html diff --git a/web-app/css/icons/readme.txt b/src/css/icons/readme.txt similarity index 100% rename from web-app/css/icons/readme.txt rename to src/css/icons/readme.txt diff --git a/web-app/css/icons/report.png b/src/css/icons/report.png similarity index 100% rename from web-app/css/icons/report.png rename to src/css/icons/report.png diff --git a/web-app/css/icons/report_add.png b/src/css/icons/report_add.png similarity index 100% rename from web-app/css/icons/report_add.png rename to src/css/icons/report_add.png diff --git a/web-app/css/icons/report_delete.png b/src/css/icons/report_delete.png similarity index 100% rename from web-app/css/icons/report_delete.png rename to src/css/icons/report_delete.png diff --git a/web-app/css/icons/report_disk.png b/src/css/icons/report_disk.png similarity index 100% rename from web-app/css/icons/report_disk.png rename to src/css/icons/report_disk.png diff --git a/web-app/css/icons/report_edit.png b/src/css/icons/report_edit.png similarity index 100% rename from web-app/css/icons/report_edit.png rename to src/css/icons/report_edit.png diff --git a/web-app/css/icons/report_go.png b/src/css/icons/report_go.png similarity index 100% rename from web-app/css/icons/report_go.png rename to src/css/icons/report_go.png diff --git a/web-app/css/icons/report_key.png b/src/css/icons/report_key.png similarity index 100% rename from web-app/css/icons/report_key.png rename to src/css/icons/report_key.png diff --git a/web-app/css/icons/report_link.png b/src/css/icons/report_link.png similarity index 100% rename from web-app/css/icons/report_link.png rename to src/css/icons/report_link.png diff --git a/web-app/css/icons/report_magnify.png b/src/css/icons/report_magnify.png similarity index 100% rename from web-app/css/icons/report_magnify.png rename to src/css/icons/report_magnify.png diff --git a/web-app/css/icons/report_picture.png b/src/css/icons/report_picture.png similarity index 100% rename from web-app/css/icons/report_picture.png rename to src/css/icons/report_picture.png diff --git a/web-app/css/icons/report_user.png b/src/css/icons/report_user.png similarity index 100% rename from web-app/css/icons/report_user.png rename to src/css/icons/report_user.png diff --git a/web-app/css/icons/report_word.png b/src/css/icons/report_word.png similarity index 100% rename from web-app/css/icons/report_word.png rename to src/css/icons/report_word.png diff --git a/web-app/css/icons/resultset_first.png b/src/css/icons/resultset_first.png similarity index 100% rename from web-app/css/icons/resultset_first.png rename to src/css/icons/resultset_first.png diff --git a/web-app/css/icons/resultset_last.png b/src/css/icons/resultset_last.png similarity index 100% rename from web-app/css/icons/resultset_last.png rename to src/css/icons/resultset_last.png diff --git a/web-app/css/icons/resultset_next.png b/src/css/icons/resultset_next.png similarity index 100% rename from web-app/css/icons/resultset_next.png rename to src/css/icons/resultset_next.png diff --git a/web-app/css/icons/resultset_previous.png b/src/css/icons/resultset_previous.png similarity index 100% rename from web-app/css/icons/resultset_previous.png rename to src/css/icons/resultset_previous.png diff --git a/web-app/css/icons/rosette.png b/src/css/icons/rosette.png similarity index 100% rename from web-app/css/icons/rosette.png rename to src/css/icons/rosette.png diff --git a/web-app/css/icons/rss.png b/src/css/icons/rss.png similarity index 100% rename from web-app/css/icons/rss.png rename to src/css/icons/rss.png diff --git a/web-app/css/icons/rss_add.png b/src/css/icons/rss_add.png similarity index 100% rename from web-app/css/icons/rss_add.png rename to src/css/icons/rss_add.png diff --git a/web-app/css/icons/rss_delete.png b/src/css/icons/rss_delete.png similarity index 100% rename from web-app/css/icons/rss_delete.png rename to src/css/icons/rss_delete.png diff --git a/web-app/css/icons/rss_go.png b/src/css/icons/rss_go.png similarity index 100% rename from web-app/css/icons/rss_go.png rename to src/css/icons/rss_go.png diff --git a/web-app/css/icons/rss_valid.png b/src/css/icons/rss_valid.png similarity index 100% rename from web-app/css/icons/rss_valid.png rename to src/css/icons/rss_valid.png diff --git a/web-app/css/icons/ruby.png b/src/css/icons/ruby.png similarity index 100% rename from web-app/css/icons/ruby.png rename to src/css/icons/ruby.png diff --git a/web-app/css/icons/ruby_add.png b/src/css/icons/ruby_add.png similarity index 100% rename from web-app/css/icons/ruby_add.png rename to src/css/icons/ruby_add.png diff --git a/web-app/css/icons/ruby_delete.png b/src/css/icons/ruby_delete.png similarity index 100% rename from web-app/css/icons/ruby_delete.png rename to src/css/icons/ruby_delete.png diff --git a/web-app/css/icons/ruby_gear.png b/src/css/icons/ruby_gear.png similarity index 100% rename from web-app/css/icons/ruby_gear.png rename to src/css/icons/ruby_gear.png diff --git a/web-app/css/icons/ruby_get.png b/src/css/icons/ruby_get.png similarity index 100% rename from web-app/css/icons/ruby_get.png rename to src/css/icons/ruby_get.png diff --git a/web-app/css/icons/ruby_go.png b/src/css/icons/ruby_go.png similarity index 100% rename from web-app/css/icons/ruby_go.png rename to src/css/icons/ruby_go.png diff --git a/web-app/css/icons/ruby_key.png b/src/css/icons/ruby_key.png similarity index 100% rename from web-app/css/icons/ruby_key.png rename to src/css/icons/ruby_key.png diff --git a/web-app/css/icons/ruby_link.png b/src/css/icons/ruby_link.png similarity index 100% rename from web-app/css/icons/ruby_link.png rename to src/css/icons/ruby_link.png diff --git a/web-app/css/icons/ruby_put.png b/src/css/icons/ruby_put.png similarity index 100% rename from web-app/css/icons/ruby_put.png rename to src/css/icons/ruby_put.png diff --git a/web-app/css/icons/script.png b/src/css/icons/script.png similarity index 100% rename from web-app/css/icons/script.png rename to src/css/icons/script.png diff --git a/web-app/css/icons/script_add.png b/src/css/icons/script_add.png similarity index 100% rename from web-app/css/icons/script_add.png rename to src/css/icons/script_add.png diff --git a/web-app/css/icons/script_code.png b/src/css/icons/script_code.png similarity index 100% rename from web-app/css/icons/script_code.png rename to src/css/icons/script_code.png diff --git a/web-app/css/icons/script_code_red.png b/src/css/icons/script_code_red.png similarity index 100% rename from web-app/css/icons/script_code_red.png rename to src/css/icons/script_code_red.png diff --git a/web-app/css/icons/script_delete.png b/src/css/icons/script_delete.png similarity index 100% rename from web-app/css/icons/script_delete.png rename to src/css/icons/script_delete.png diff --git a/web-app/css/icons/script_edit.png b/src/css/icons/script_edit.png similarity index 100% rename from web-app/css/icons/script_edit.png rename to src/css/icons/script_edit.png diff --git a/web-app/css/icons/script_error.png b/src/css/icons/script_error.png similarity index 100% rename from web-app/css/icons/script_error.png rename to src/css/icons/script_error.png diff --git a/web-app/css/icons/script_gear.png b/src/css/icons/script_gear.png similarity index 100% rename from web-app/css/icons/script_gear.png rename to src/css/icons/script_gear.png diff --git a/web-app/css/icons/script_go.png b/src/css/icons/script_go.png similarity index 100% rename from web-app/css/icons/script_go.png rename to src/css/icons/script_go.png diff --git a/web-app/css/icons/script_key.png b/src/css/icons/script_key.png similarity index 100% rename from web-app/css/icons/script_key.png rename to src/css/icons/script_key.png diff --git a/web-app/css/icons/script_lightning.png b/src/css/icons/script_lightning.png similarity index 100% rename from web-app/css/icons/script_lightning.png rename to src/css/icons/script_lightning.png diff --git a/web-app/css/icons/script_link.png b/src/css/icons/script_link.png similarity index 100% rename from web-app/css/icons/script_link.png rename to src/css/icons/script_link.png diff --git a/web-app/css/icons/script_palette.png b/src/css/icons/script_palette.png similarity index 100% rename from web-app/css/icons/script_palette.png rename to src/css/icons/script_palette.png diff --git a/web-app/css/icons/script_save.png b/src/css/icons/script_save.png similarity index 100% rename from web-app/css/icons/script_save.png rename to src/css/icons/script_save.png diff --git a/web-app/css/icons/server.png b/src/css/icons/server.png similarity index 100% rename from web-app/css/icons/server.png rename to src/css/icons/server.png diff --git a/web-app/css/icons/server_add.png b/src/css/icons/server_add.png similarity index 100% rename from web-app/css/icons/server_add.png rename to src/css/icons/server_add.png diff --git a/web-app/css/icons/server_chart.png b/src/css/icons/server_chart.png similarity index 100% rename from web-app/css/icons/server_chart.png rename to src/css/icons/server_chart.png diff --git a/web-app/css/icons/server_compressed.png b/src/css/icons/server_compressed.png similarity index 100% rename from web-app/css/icons/server_compressed.png rename to src/css/icons/server_compressed.png diff --git a/web-app/css/icons/server_connect.png b/src/css/icons/server_connect.png similarity index 100% rename from web-app/css/icons/server_connect.png rename to src/css/icons/server_connect.png diff --git a/web-app/css/icons/server_database.png b/src/css/icons/server_database.png similarity index 100% rename from web-app/css/icons/server_database.png rename to src/css/icons/server_database.png diff --git a/web-app/css/icons/server_delete.png b/src/css/icons/server_delete.png similarity index 100% rename from web-app/css/icons/server_delete.png rename to src/css/icons/server_delete.png diff --git a/web-app/css/icons/server_edit.png b/src/css/icons/server_edit.png similarity index 100% rename from web-app/css/icons/server_edit.png rename to src/css/icons/server_edit.png diff --git a/web-app/css/icons/server_error.png b/src/css/icons/server_error.png similarity index 100% rename from web-app/css/icons/server_error.png rename to src/css/icons/server_error.png diff --git a/web-app/css/icons/server_go.png b/src/css/icons/server_go.png similarity index 100% rename from web-app/css/icons/server_go.png rename to src/css/icons/server_go.png diff --git a/web-app/css/icons/server_key.png b/src/css/icons/server_key.png similarity index 100% rename from web-app/css/icons/server_key.png rename to src/css/icons/server_key.png diff --git a/web-app/css/icons/server_lightning.png b/src/css/icons/server_lightning.png similarity index 100% rename from web-app/css/icons/server_lightning.png rename to src/css/icons/server_lightning.png diff --git a/web-app/css/icons/server_link.png b/src/css/icons/server_link.png similarity index 100% rename from web-app/css/icons/server_link.png rename to src/css/icons/server_link.png diff --git a/web-app/css/icons/server_uncompressed.png b/src/css/icons/server_uncompressed.png similarity index 100% rename from web-app/css/icons/server_uncompressed.png rename to src/css/icons/server_uncompressed.png diff --git a/web-app/css/icons/shading.png b/src/css/icons/shading.png similarity index 100% rename from web-app/css/icons/shading.png rename to src/css/icons/shading.png diff --git a/web-app/css/icons/shape_align_bottom.png b/src/css/icons/shape_align_bottom.png similarity index 100% rename from web-app/css/icons/shape_align_bottom.png rename to src/css/icons/shape_align_bottom.png diff --git a/web-app/css/icons/shape_align_center.png b/src/css/icons/shape_align_center.png similarity index 100% rename from web-app/css/icons/shape_align_center.png rename to src/css/icons/shape_align_center.png diff --git a/web-app/css/icons/shape_align_left.png b/src/css/icons/shape_align_left.png similarity index 100% rename from web-app/css/icons/shape_align_left.png rename to src/css/icons/shape_align_left.png diff --git a/web-app/css/icons/shape_align_middle.png b/src/css/icons/shape_align_middle.png similarity index 100% rename from web-app/css/icons/shape_align_middle.png rename to src/css/icons/shape_align_middle.png diff --git a/web-app/css/icons/shape_align_right.png b/src/css/icons/shape_align_right.png similarity index 100% rename from web-app/css/icons/shape_align_right.png rename to src/css/icons/shape_align_right.png diff --git a/web-app/css/icons/shape_align_top.png b/src/css/icons/shape_align_top.png similarity index 100% rename from web-app/css/icons/shape_align_top.png rename to src/css/icons/shape_align_top.png diff --git a/web-app/css/icons/shape_flip_horizontal.png b/src/css/icons/shape_flip_horizontal.png similarity index 100% rename from web-app/css/icons/shape_flip_horizontal.png rename to src/css/icons/shape_flip_horizontal.png diff --git a/web-app/css/icons/shape_flip_vertical.png b/src/css/icons/shape_flip_vertical.png similarity index 100% rename from web-app/css/icons/shape_flip_vertical.png rename to src/css/icons/shape_flip_vertical.png diff --git a/web-app/css/icons/shape_group.png b/src/css/icons/shape_group.png similarity index 100% rename from web-app/css/icons/shape_group.png rename to src/css/icons/shape_group.png diff --git a/web-app/css/icons/shape_handles.png b/src/css/icons/shape_handles.png similarity index 100% rename from web-app/css/icons/shape_handles.png rename to src/css/icons/shape_handles.png diff --git a/web-app/css/icons/shape_move_back.png b/src/css/icons/shape_move_back.png similarity index 100% rename from web-app/css/icons/shape_move_back.png rename to src/css/icons/shape_move_back.png diff --git a/web-app/css/icons/shape_move_backwards.png b/src/css/icons/shape_move_backwards.png similarity index 100% rename from web-app/css/icons/shape_move_backwards.png rename to src/css/icons/shape_move_backwards.png diff --git a/web-app/css/icons/shape_move_forwards.png b/src/css/icons/shape_move_forwards.png similarity index 100% rename from web-app/css/icons/shape_move_forwards.png rename to src/css/icons/shape_move_forwards.png diff --git a/web-app/css/icons/shape_move_front.png b/src/css/icons/shape_move_front.png similarity index 100% rename from web-app/css/icons/shape_move_front.png rename to src/css/icons/shape_move_front.png diff --git a/web-app/css/icons/shape_rotate_anticlockwise.png b/src/css/icons/shape_rotate_anticlockwise.png similarity index 100% rename from web-app/css/icons/shape_rotate_anticlockwise.png rename to src/css/icons/shape_rotate_anticlockwise.png diff --git a/web-app/css/icons/shape_rotate_clockwise.png b/src/css/icons/shape_rotate_clockwise.png similarity index 100% rename from web-app/css/icons/shape_rotate_clockwise.png rename to src/css/icons/shape_rotate_clockwise.png diff --git a/web-app/css/icons/shape_square.png b/src/css/icons/shape_square.png similarity index 100% rename from web-app/css/icons/shape_square.png rename to src/css/icons/shape_square.png diff --git a/web-app/css/icons/shape_square_add.png b/src/css/icons/shape_square_add.png similarity index 100% rename from web-app/css/icons/shape_square_add.png rename to src/css/icons/shape_square_add.png diff --git a/web-app/css/icons/shape_square_delete.png b/src/css/icons/shape_square_delete.png similarity index 100% rename from web-app/css/icons/shape_square_delete.png rename to src/css/icons/shape_square_delete.png diff --git a/web-app/css/icons/shape_square_edit.png b/src/css/icons/shape_square_edit.png similarity index 100% rename from web-app/css/icons/shape_square_edit.png rename to src/css/icons/shape_square_edit.png diff --git a/web-app/css/icons/shape_square_error.png b/src/css/icons/shape_square_error.png similarity index 100% rename from web-app/css/icons/shape_square_error.png rename to src/css/icons/shape_square_error.png diff --git a/web-app/css/icons/shape_square_go.png b/src/css/icons/shape_square_go.png similarity index 100% rename from web-app/css/icons/shape_square_go.png rename to src/css/icons/shape_square_go.png diff --git a/web-app/css/icons/shape_square_key.png b/src/css/icons/shape_square_key.png similarity index 100% rename from web-app/css/icons/shape_square_key.png rename to src/css/icons/shape_square_key.png diff --git a/web-app/css/icons/shape_square_link.png b/src/css/icons/shape_square_link.png similarity index 100% rename from web-app/css/icons/shape_square_link.png rename to src/css/icons/shape_square_link.png diff --git a/web-app/css/icons/shape_ungroup.png b/src/css/icons/shape_ungroup.png similarity index 100% rename from web-app/css/icons/shape_ungroup.png rename to src/css/icons/shape_ungroup.png diff --git a/web-app/css/icons/shield.png b/src/css/icons/shield.png similarity index 100% rename from web-app/css/icons/shield.png rename to src/css/icons/shield.png diff --git a/web-app/css/icons/shield_add.png b/src/css/icons/shield_add.png similarity index 100% rename from web-app/css/icons/shield_add.png rename to src/css/icons/shield_add.png diff --git a/web-app/css/icons/shield_delete.png b/src/css/icons/shield_delete.png similarity index 100% rename from web-app/css/icons/shield_delete.png rename to src/css/icons/shield_delete.png diff --git a/web-app/css/icons/shield_go.png b/src/css/icons/shield_go.png similarity index 100% rename from web-app/css/icons/shield_go.png rename to src/css/icons/shield_go.png diff --git a/web-app/css/icons/sitemap.png b/src/css/icons/sitemap.png similarity index 100% rename from web-app/css/icons/sitemap.png rename to src/css/icons/sitemap.png diff --git a/web-app/css/icons/sitemap_color.png b/src/css/icons/sitemap_color.png similarity index 100% rename from web-app/css/icons/sitemap_color.png rename to src/css/icons/sitemap_color.png diff --git a/web-app/css/icons/sound.png b/src/css/icons/sound.png similarity index 100% rename from web-app/css/icons/sound.png rename to src/css/icons/sound.png diff --git a/web-app/css/icons/sound_add.png b/src/css/icons/sound_add.png similarity index 100% rename from web-app/css/icons/sound_add.png rename to src/css/icons/sound_add.png diff --git a/web-app/css/icons/sound_delete.png b/src/css/icons/sound_delete.png similarity index 100% rename from web-app/css/icons/sound_delete.png rename to src/css/icons/sound_delete.png diff --git a/web-app/css/icons/sound_low.png b/src/css/icons/sound_low.png similarity index 100% rename from web-app/css/icons/sound_low.png rename to src/css/icons/sound_low.png diff --git a/web-app/css/icons/sound_mute.png b/src/css/icons/sound_mute.png similarity index 100% rename from web-app/css/icons/sound_mute.png rename to src/css/icons/sound_mute.png diff --git a/web-app/css/icons/sound_none.png b/src/css/icons/sound_none.png similarity index 100% rename from web-app/css/icons/sound_none.png rename to src/css/icons/sound_none.png diff --git a/web-app/css/icons/spellcheck.png b/src/css/icons/spellcheck.png similarity index 100% rename from web-app/css/icons/spellcheck.png rename to src/css/icons/spellcheck.png diff --git a/web-app/css/icons/sport_8ball.png b/src/css/icons/sport_8ball.png similarity index 100% rename from web-app/css/icons/sport_8ball.png rename to src/css/icons/sport_8ball.png diff --git a/web-app/css/icons/sport_basketball.png b/src/css/icons/sport_basketball.png similarity index 100% rename from web-app/css/icons/sport_basketball.png rename to src/css/icons/sport_basketball.png diff --git a/web-app/css/icons/sport_football.png b/src/css/icons/sport_football.png similarity index 100% rename from web-app/css/icons/sport_football.png rename to src/css/icons/sport_football.png diff --git a/web-app/css/icons/sport_golf.png b/src/css/icons/sport_golf.png similarity index 100% rename from web-app/css/icons/sport_golf.png rename to src/css/icons/sport_golf.png diff --git a/web-app/css/icons/sport_raquet.png b/src/css/icons/sport_raquet.png similarity index 100% rename from web-app/css/icons/sport_raquet.png rename to src/css/icons/sport_raquet.png diff --git a/web-app/css/icons/sport_shuttlecock.png b/src/css/icons/sport_shuttlecock.png similarity index 100% rename from web-app/css/icons/sport_shuttlecock.png rename to src/css/icons/sport_shuttlecock.png diff --git a/web-app/css/icons/sport_soccer.png b/src/css/icons/sport_soccer.png similarity index 100% rename from web-app/css/icons/sport_soccer.png rename to src/css/icons/sport_soccer.png diff --git a/web-app/css/icons/sport_tennis.png b/src/css/icons/sport_tennis.png similarity index 100% rename from web-app/css/icons/sport_tennis.png rename to src/css/icons/sport_tennis.png diff --git a/web-app/css/icons/star.png b/src/css/icons/star.png similarity index 100% rename from web-app/css/icons/star.png rename to src/css/icons/star.png diff --git a/web-app/css/icons/status_away.png b/src/css/icons/status_away.png similarity index 100% rename from web-app/css/icons/status_away.png rename to src/css/icons/status_away.png diff --git a/web-app/css/icons/status_busy.png b/src/css/icons/status_busy.png similarity index 100% rename from web-app/css/icons/status_busy.png rename to src/css/icons/status_busy.png diff --git a/web-app/css/icons/status_offline.png b/src/css/icons/status_offline.png similarity index 100% rename from web-app/css/icons/status_offline.png rename to src/css/icons/status_offline.png diff --git a/web-app/css/icons/status_online.png b/src/css/icons/status_online.png similarity index 100% rename from web-app/css/icons/status_online.png rename to src/css/icons/status_online.png diff --git a/web-app/css/icons/stop.png b/src/css/icons/stop.png similarity index 100% rename from web-app/css/icons/stop.png rename to src/css/icons/stop.png diff --git a/web-app/css/icons/style.png b/src/css/icons/style.png similarity index 100% rename from web-app/css/icons/style.png rename to src/css/icons/style.png diff --git a/web-app/css/icons/style_add.png b/src/css/icons/style_add.png similarity index 100% rename from web-app/css/icons/style_add.png rename to src/css/icons/style_add.png diff --git a/web-app/css/icons/style_delete.png b/src/css/icons/style_delete.png similarity index 100% rename from web-app/css/icons/style_delete.png rename to src/css/icons/style_delete.png diff --git a/web-app/css/icons/style_edit.png b/src/css/icons/style_edit.png similarity index 100% rename from web-app/css/icons/style_edit.png rename to src/css/icons/style_edit.png diff --git a/web-app/css/icons/style_go.png b/src/css/icons/style_go.png similarity index 100% rename from web-app/css/icons/style_go.png rename to src/css/icons/style_go.png diff --git a/web-app/css/icons/sum.png b/src/css/icons/sum.png similarity index 100% rename from web-app/css/icons/sum.png rename to src/css/icons/sum.png diff --git a/web-app/css/icons/tab.png b/src/css/icons/tab.png similarity index 100% rename from web-app/css/icons/tab.png rename to src/css/icons/tab.png diff --git a/web-app/css/icons/tab_add.png b/src/css/icons/tab_add.png similarity index 100% rename from web-app/css/icons/tab_add.png rename to src/css/icons/tab_add.png diff --git a/web-app/css/icons/tab_delete.png b/src/css/icons/tab_delete.png similarity index 100% rename from web-app/css/icons/tab_delete.png rename to src/css/icons/tab_delete.png diff --git a/web-app/css/icons/tab_edit.png b/src/css/icons/tab_edit.png similarity index 100% rename from web-app/css/icons/tab_edit.png rename to src/css/icons/tab_edit.png diff --git a/web-app/css/icons/tab_go.png b/src/css/icons/tab_go.png similarity index 100% rename from web-app/css/icons/tab_go.png rename to src/css/icons/tab_go.png diff --git a/web-app/css/icons/table.png b/src/css/icons/table.png similarity index 100% rename from web-app/css/icons/table.png rename to src/css/icons/table.png diff --git a/web-app/css/icons/table_add.png b/src/css/icons/table_add.png similarity index 100% rename from web-app/css/icons/table_add.png rename to src/css/icons/table_add.png diff --git a/web-app/css/icons/table_delete.png b/src/css/icons/table_delete.png similarity index 100% rename from web-app/css/icons/table_delete.png rename to src/css/icons/table_delete.png diff --git a/web-app/css/icons/table_edit.png b/src/css/icons/table_edit.png similarity index 100% rename from web-app/css/icons/table_edit.png rename to src/css/icons/table_edit.png diff --git a/web-app/css/icons/table_error.png b/src/css/icons/table_error.png similarity index 100% rename from web-app/css/icons/table_error.png rename to src/css/icons/table_error.png diff --git a/web-app/css/icons/table_gear.png b/src/css/icons/table_gear.png similarity index 100% rename from web-app/css/icons/table_gear.png rename to src/css/icons/table_gear.png diff --git a/web-app/css/icons/table_go.png b/src/css/icons/table_go.png similarity index 100% rename from web-app/css/icons/table_go.png rename to src/css/icons/table_go.png diff --git a/web-app/css/icons/table_key.png b/src/css/icons/table_key.png similarity index 100% rename from web-app/css/icons/table_key.png rename to src/css/icons/table_key.png diff --git a/web-app/css/icons/table_lightning.png b/src/css/icons/table_lightning.png similarity index 100% rename from web-app/css/icons/table_lightning.png rename to src/css/icons/table_lightning.png diff --git a/web-app/css/icons/table_link.png b/src/css/icons/table_link.png similarity index 100% rename from web-app/css/icons/table_link.png rename to src/css/icons/table_link.png diff --git a/web-app/css/icons/table_multiple.png b/src/css/icons/table_multiple.png similarity index 100% rename from web-app/css/icons/table_multiple.png rename to src/css/icons/table_multiple.png diff --git a/web-app/css/icons/table_refresh.png b/src/css/icons/table_refresh.png similarity index 100% rename from web-app/css/icons/table_refresh.png rename to src/css/icons/table_refresh.png diff --git a/web-app/css/icons/table_relationship.png b/src/css/icons/table_relationship.png similarity index 100% rename from web-app/css/icons/table_relationship.png rename to src/css/icons/table_relationship.png diff --git a/web-app/css/icons/table_row_delete.png b/src/css/icons/table_row_delete.png similarity index 100% rename from web-app/css/icons/table_row_delete.png rename to src/css/icons/table_row_delete.png diff --git a/web-app/css/icons/table_row_insert.png b/src/css/icons/table_row_insert.png similarity index 100% rename from web-app/css/icons/table_row_insert.png rename to src/css/icons/table_row_insert.png diff --git a/web-app/css/icons/table_save.png b/src/css/icons/table_save.png similarity index 100% rename from web-app/css/icons/table_save.png rename to src/css/icons/table_save.png diff --git a/web-app/css/icons/table_sort.png b/src/css/icons/table_sort.png similarity index 100% rename from web-app/css/icons/table_sort.png rename to src/css/icons/table_sort.png diff --git a/web-app/css/icons/tag.png b/src/css/icons/tag.png similarity index 100% rename from web-app/css/icons/tag.png rename to src/css/icons/tag.png diff --git a/web-app/css/icons/tag_blue.png b/src/css/icons/tag_blue.png similarity index 100% rename from web-app/css/icons/tag_blue.png rename to src/css/icons/tag_blue.png diff --git a/web-app/css/icons/tag_blue_add.png b/src/css/icons/tag_blue_add.png similarity index 100% rename from web-app/css/icons/tag_blue_add.png rename to src/css/icons/tag_blue_add.png diff --git a/web-app/css/icons/tag_blue_delete.png b/src/css/icons/tag_blue_delete.png similarity index 100% rename from web-app/css/icons/tag_blue_delete.png rename to src/css/icons/tag_blue_delete.png diff --git a/web-app/css/icons/tag_blue_edit.png b/src/css/icons/tag_blue_edit.png similarity index 100% rename from web-app/css/icons/tag_blue_edit.png rename to src/css/icons/tag_blue_edit.png diff --git a/web-app/css/icons/tag_green.png b/src/css/icons/tag_green.png similarity index 100% rename from web-app/css/icons/tag_green.png rename to src/css/icons/tag_green.png diff --git a/web-app/css/icons/tag_orange.png b/src/css/icons/tag_orange.png similarity index 100% rename from web-app/css/icons/tag_orange.png rename to src/css/icons/tag_orange.png diff --git a/web-app/css/icons/tag_pink.png b/src/css/icons/tag_pink.png similarity index 100% rename from web-app/css/icons/tag_pink.png rename to src/css/icons/tag_pink.png diff --git a/web-app/css/icons/tag_purple.png b/src/css/icons/tag_purple.png similarity index 100% rename from web-app/css/icons/tag_purple.png rename to src/css/icons/tag_purple.png diff --git a/web-app/css/icons/tag_red.png b/src/css/icons/tag_red.png similarity index 100% rename from web-app/css/icons/tag_red.png rename to src/css/icons/tag_red.png diff --git a/web-app/css/icons/tag_yellow.png b/src/css/icons/tag_yellow.png similarity index 100% rename from web-app/css/icons/tag_yellow.png rename to src/css/icons/tag_yellow.png diff --git a/web-app/css/icons/telephone.png b/src/css/icons/telephone.png similarity index 100% rename from web-app/css/icons/telephone.png rename to src/css/icons/telephone.png diff --git a/web-app/css/icons/telephone_add.png b/src/css/icons/telephone_add.png similarity index 100% rename from web-app/css/icons/telephone_add.png rename to src/css/icons/telephone_add.png diff --git a/web-app/css/icons/telephone_delete.png b/src/css/icons/telephone_delete.png similarity index 100% rename from web-app/css/icons/telephone_delete.png rename to src/css/icons/telephone_delete.png diff --git a/web-app/css/icons/telephone_edit.png b/src/css/icons/telephone_edit.png similarity index 100% rename from web-app/css/icons/telephone_edit.png rename to src/css/icons/telephone_edit.png diff --git a/web-app/css/icons/telephone_error.png b/src/css/icons/telephone_error.png similarity index 100% rename from web-app/css/icons/telephone_error.png rename to src/css/icons/telephone_error.png diff --git a/web-app/css/icons/telephone_go.png b/src/css/icons/telephone_go.png similarity index 100% rename from web-app/css/icons/telephone_go.png rename to src/css/icons/telephone_go.png diff --git a/web-app/css/icons/telephone_key.png b/src/css/icons/telephone_key.png similarity index 100% rename from web-app/css/icons/telephone_key.png rename to src/css/icons/telephone_key.png diff --git a/web-app/css/icons/telephone_link.png b/src/css/icons/telephone_link.png similarity index 100% rename from web-app/css/icons/telephone_link.png rename to src/css/icons/telephone_link.png diff --git a/web-app/css/icons/television.png b/src/css/icons/television.png similarity index 100% rename from web-app/css/icons/television.png rename to src/css/icons/television.png diff --git a/web-app/css/icons/television_add.png b/src/css/icons/television_add.png similarity index 100% rename from web-app/css/icons/television_add.png rename to src/css/icons/television_add.png diff --git a/web-app/css/icons/television_delete.png b/src/css/icons/television_delete.png similarity index 100% rename from web-app/css/icons/television_delete.png rename to src/css/icons/television_delete.png diff --git a/web-app/css/icons/text_align_center.png b/src/css/icons/text_align_center.png similarity index 100% rename from web-app/css/icons/text_align_center.png rename to src/css/icons/text_align_center.png diff --git a/web-app/css/icons/text_align_justify.png b/src/css/icons/text_align_justify.png similarity index 100% rename from web-app/css/icons/text_align_justify.png rename to src/css/icons/text_align_justify.png diff --git a/web-app/css/icons/text_align_left.png b/src/css/icons/text_align_left.png similarity index 100% rename from web-app/css/icons/text_align_left.png rename to src/css/icons/text_align_left.png diff --git a/web-app/css/icons/text_align_right.png b/src/css/icons/text_align_right.png similarity index 100% rename from web-app/css/icons/text_align_right.png rename to src/css/icons/text_align_right.png diff --git a/web-app/css/icons/text_allcaps.png b/src/css/icons/text_allcaps.png similarity index 100% rename from web-app/css/icons/text_allcaps.png rename to src/css/icons/text_allcaps.png diff --git a/web-app/css/icons/text_bold.png b/src/css/icons/text_bold.png similarity index 100% rename from web-app/css/icons/text_bold.png rename to src/css/icons/text_bold.png diff --git a/web-app/css/icons/text_columns.png b/src/css/icons/text_columns.png similarity index 100% rename from web-app/css/icons/text_columns.png rename to src/css/icons/text_columns.png diff --git a/web-app/css/icons/text_dropcaps.png b/src/css/icons/text_dropcaps.png similarity index 100% rename from web-app/css/icons/text_dropcaps.png rename to src/css/icons/text_dropcaps.png diff --git a/web-app/css/icons/text_heading_1.png b/src/css/icons/text_heading_1.png similarity index 100% rename from web-app/css/icons/text_heading_1.png rename to src/css/icons/text_heading_1.png diff --git a/web-app/css/icons/text_heading_2.png b/src/css/icons/text_heading_2.png similarity index 100% rename from web-app/css/icons/text_heading_2.png rename to src/css/icons/text_heading_2.png diff --git a/web-app/css/icons/text_heading_3.png b/src/css/icons/text_heading_3.png similarity index 100% rename from web-app/css/icons/text_heading_3.png rename to src/css/icons/text_heading_3.png diff --git a/web-app/css/icons/text_heading_4.png b/src/css/icons/text_heading_4.png similarity index 100% rename from web-app/css/icons/text_heading_4.png rename to src/css/icons/text_heading_4.png diff --git a/web-app/css/icons/text_heading_5.png b/src/css/icons/text_heading_5.png similarity index 100% rename from web-app/css/icons/text_heading_5.png rename to src/css/icons/text_heading_5.png diff --git a/web-app/css/icons/text_heading_6.png b/src/css/icons/text_heading_6.png similarity index 100% rename from web-app/css/icons/text_heading_6.png rename to src/css/icons/text_heading_6.png diff --git a/web-app/css/icons/text_horizontalrule.png b/src/css/icons/text_horizontalrule.png similarity index 100% rename from web-app/css/icons/text_horizontalrule.png rename to src/css/icons/text_horizontalrule.png diff --git a/web-app/css/icons/text_indent.png b/src/css/icons/text_indent.png similarity index 100% rename from web-app/css/icons/text_indent.png rename to src/css/icons/text_indent.png diff --git a/web-app/css/icons/text_indent_remove.png b/src/css/icons/text_indent_remove.png similarity index 100% rename from web-app/css/icons/text_indent_remove.png rename to src/css/icons/text_indent_remove.png diff --git a/web-app/css/icons/text_italic.png b/src/css/icons/text_italic.png similarity index 100% rename from web-app/css/icons/text_italic.png rename to src/css/icons/text_italic.png diff --git a/web-app/css/icons/text_kerning.png b/src/css/icons/text_kerning.png similarity index 100% rename from web-app/css/icons/text_kerning.png rename to src/css/icons/text_kerning.png diff --git a/web-app/css/icons/text_letter_omega.png b/src/css/icons/text_letter_omega.png similarity index 100% rename from web-app/css/icons/text_letter_omega.png rename to src/css/icons/text_letter_omega.png diff --git a/web-app/css/icons/text_letterspacing.png b/src/css/icons/text_letterspacing.png similarity index 100% rename from web-app/css/icons/text_letterspacing.png rename to src/css/icons/text_letterspacing.png diff --git a/web-app/css/icons/text_linespacing.png b/src/css/icons/text_linespacing.png similarity index 100% rename from web-app/css/icons/text_linespacing.png rename to src/css/icons/text_linespacing.png diff --git a/web-app/css/icons/text_list_bullets.png b/src/css/icons/text_list_bullets.png similarity index 100% rename from web-app/css/icons/text_list_bullets.png rename to src/css/icons/text_list_bullets.png diff --git a/web-app/css/icons/text_list_numbers.png b/src/css/icons/text_list_numbers.png similarity index 100% rename from web-app/css/icons/text_list_numbers.png rename to src/css/icons/text_list_numbers.png diff --git a/web-app/css/icons/text_lowercase.png b/src/css/icons/text_lowercase.png similarity index 100% rename from web-app/css/icons/text_lowercase.png rename to src/css/icons/text_lowercase.png diff --git a/web-app/css/icons/text_padding_bottom.png b/src/css/icons/text_padding_bottom.png similarity index 100% rename from web-app/css/icons/text_padding_bottom.png rename to src/css/icons/text_padding_bottom.png diff --git a/web-app/css/icons/text_padding_left.png b/src/css/icons/text_padding_left.png similarity index 100% rename from web-app/css/icons/text_padding_left.png rename to src/css/icons/text_padding_left.png diff --git a/web-app/css/icons/text_padding_right.png b/src/css/icons/text_padding_right.png similarity index 100% rename from web-app/css/icons/text_padding_right.png rename to src/css/icons/text_padding_right.png diff --git a/web-app/css/icons/text_padding_top.png b/src/css/icons/text_padding_top.png similarity index 100% rename from web-app/css/icons/text_padding_top.png rename to src/css/icons/text_padding_top.png diff --git a/web-app/css/icons/text_replace.png b/src/css/icons/text_replace.png similarity index 100% rename from web-app/css/icons/text_replace.png rename to src/css/icons/text_replace.png diff --git a/web-app/css/icons/text_signature.png b/src/css/icons/text_signature.png similarity index 100% rename from web-app/css/icons/text_signature.png rename to src/css/icons/text_signature.png diff --git a/web-app/css/icons/text_smallcaps.png b/src/css/icons/text_smallcaps.png similarity index 100% rename from web-app/css/icons/text_smallcaps.png rename to src/css/icons/text_smallcaps.png diff --git a/web-app/css/icons/text_strikethrough.png b/src/css/icons/text_strikethrough.png similarity index 100% rename from web-app/css/icons/text_strikethrough.png rename to src/css/icons/text_strikethrough.png diff --git a/web-app/css/icons/text_subscript.png b/src/css/icons/text_subscript.png similarity index 100% rename from web-app/css/icons/text_subscript.png rename to src/css/icons/text_subscript.png diff --git a/web-app/css/icons/text_superscript.png b/src/css/icons/text_superscript.png similarity index 100% rename from web-app/css/icons/text_superscript.png rename to src/css/icons/text_superscript.png diff --git a/web-app/css/icons/text_underline.png b/src/css/icons/text_underline.png similarity index 100% rename from web-app/css/icons/text_underline.png rename to src/css/icons/text_underline.png diff --git a/web-app/css/icons/text_uppercase.png b/src/css/icons/text_uppercase.png similarity index 100% rename from web-app/css/icons/text_uppercase.png rename to src/css/icons/text_uppercase.png diff --git a/web-app/css/icons/textfield.png b/src/css/icons/textfield.png similarity index 100% rename from web-app/css/icons/textfield.png rename to src/css/icons/textfield.png diff --git a/web-app/css/icons/textfield_add.png b/src/css/icons/textfield_add.png similarity index 100% rename from web-app/css/icons/textfield_add.png rename to src/css/icons/textfield_add.png diff --git a/web-app/css/icons/textfield_delete.png b/src/css/icons/textfield_delete.png similarity index 100% rename from web-app/css/icons/textfield_delete.png rename to src/css/icons/textfield_delete.png diff --git a/web-app/css/icons/textfield_key.png b/src/css/icons/textfield_key.png similarity index 100% rename from web-app/css/icons/textfield_key.png rename to src/css/icons/textfield_key.png diff --git a/web-app/css/icons/textfield_rename.png b/src/css/icons/textfield_rename.png similarity index 100% rename from web-app/css/icons/textfield_rename.png rename to src/css/icons/textfield_rename.png diff --git a/web-app/css/icons/thumb_down.png b/src/css/icons/thumb_down.png similarity index 100% rename from web-app/css/icons/thumb_down.png rename to src/css/icons/thumb_down.png diff --git a/web-app/css/icons/thumb_up.png b/src/css/icons/thumb_up.png similarity index 100% rename from web-app/css/icons/thumb_up.png rename to src/css/icons/thumb_up.png diff --git a/web-app/css/icons/tick.png b/src/css/icons/tick.png similarity index 100% rename from web-app/css/icons/tick.png rename to src/css/icons/tick.png diff --git a/web-app/css/icons/time.png b/src/css/icons/time.png similarity index 100% rename from web-app/css/icons/time.png rename to src/css/icons/time.png diff --git a/web-app/css/icons/time_add.png b/src/css/icons/time_add.png similarity index 100% rename from web-app/css/icons/time_add.png rename to src/css/icons/time_add.png diff --git a/web-app/css/icons/time_delete.png b/src/css/icons/time_delete.png similarity index 100% rename from web-app/css/icons/time_delete.png rename to src/css/icons/time_delete.png diff --git a/web-app/css/icons/time_go.png b/src/css/icons/time_go.png similarity index 100% rename from web-app/css/icons/time_go.png rename to src/css/icons/time_go.png diff --git a/web-app/css/icons/timeline_marker.png b/src/css/icons/timeline_marker.png similarity index 100% rename from web-app/css/icons/timeline_marker.png rename to src/css/icons/timeline_marker.png diff --git a/web-app/css/icons/transmit.png b/src/css/icons/transmit.png similarity index 100% rename from web-app/css/icons/transmit.png rename to src/css/icons/transmit.png diff --git a/web-app/css/icons/transmit_add.png b/src/css/icons/transmit_add.png similarity index 100% rename from web-app/css/icons/transmit_add.png rename to src/css/icons/transmit_add.png diff --git a/web-app/css/icons/transmit_blue.png b/src/css/icons/transmit_blue.png similarity index 100% rename from web-app/css/icons/transmit_blue.png rename to src/css/icons/transmit_blue.png diff --git a/web-app/css/icons/transmit_delete.png b/src/css/icons/transmit_delete.png similarity index 100% rename from web-app/css/icons/transmit_delete.png rename to src/css/icons/transmit_delete.png diff --git a/web-app/css/icons/transmit_edit.png b/src/css/icons/transmit_edit.png similarity index 100% rename from web-app/css/icons/transmit_edit.png rename to src/css/icons/transmit_edit.png diff --git a/web-app/css/icons/transmit_error.png b/src/css/icons/transmit_error.png similarity index 100% rename from web-app/css/icons/transmit_error.png rename to src/css/icons/transmit_error.png diff --git a/web-app/css/icons/transmit_go.png b/src/css/icons/transmit_go.png similarity index 100% rename from web-app/css/icons/transmit_go.png rename to src/css/icons/transmit_go.png diff --git a/web-app/css/icons/tux.png b/src/css/icons/tux.png similarity index 100% rename from web-app/css/icons/tux.png rename to src/css/icons/tux.png diff --git a/web-app/css/icons/user.png b/src/css/icons/user.png similarity index 100% rename from web-app/css/icons/user.png rename to src/css/icons/user.png diff --git a/web-app/css/icons/user_add.png b/src/css/icons/user_add.png similarity index 100% rename from web-app/css/icons/user_add.png rename to src/css/icons/user_add.png diff --git a/web-app/css/icons/user_comment.png b/src/css/icons/user_comment.png similarity index 100% rename from web-app/css/icons/user_comment.png rename to src/css/icons/user_comment.png diff --git a/web-app/css/icons/user_delete.png b/src/css/icons/user_delete.png similarity index 100% rename from web-app/css/icons/user_delete.png rename to src/css/icons/user_delete.png diff --git a/web-app/css/icons/user_edit.png b/src/css/icons/user_edit.png similarity index 100% rename from web-app/css/icons/user_edit.png rename to src/css/icons/user_edit.png diff --git a/web-app/css/icons/user_female.png b/src/css/icons/user_female.png similarity index 100% rename from web-app/css/icons/user_female.png rename to src/css/icons/user_female.png diff --git a/web-app/css/icons/user_go.png b/src/css/icons/user_go.png similarity index 100% rename from web-app/css/icons/user_go.png rename to src/css/icons/user_go.png diff --git a/web-app/css/icons/user_gray.png b/src/css/icons/user_gray.png similarity index 100% rename from web-app/css/icons/user_gray.png rename to src/css/icons/user_gray.png diff --git a/web-app/css/icons/user_green.png b/src/css/icons/user_green.png similarity index 100% rename from web-app/css/icons/user_green.png rename to src/css/icons/user_green.png diff --git a/web-app/css/icons/user_orange.png b/src/css/icons/user_orange.png similarity index 100% rename from web-app/css/icons/user_orange.png rename to src/css/icons/user_orange.png diff --git a/web-app/css/icons/user_red.png b/src/css/icons/user_red.png similarity index 100% rename from web-app/css/icons/user_red.png rename to src/css/icons/user_red.png diff --git a/web-app/css/icons/user_suit.png b/src/css/icons/user_suit.png similarity index 100% rename from web-app/css/icons/user_suit.png rename to src/css/icons/user_suit.png diff --git a/web-app/css/icons/vcard.png b/src/css/icons/vcard.png similarity index 100% rename from web-app/css/icons/vcard.png rename to src/css/icons/vcard.png diff --git a/web-app/css/icons/vcard_add.png b/src/css/icons/vcard_add.png similarity index 100% rename from web-app/css/icons/vcard_add.png rename to src/css/icons/vcard_add.png diff --git a/web-app/css/icons/vcard_delete.png b/src/css/icons/vcard_delete.png similarity index 100% rename from web-app/css/icons/vcard_delete.png rename to src/css/icons/vcard_delete.png diff --git a/web-app/css/icons/vcard_edit.png b/src/css/icons/vcard_edit.png similarity index 100% rename from web-app/css/icons/vcard_edit.png rename to src/css/icons/vcard_edit.png diff --git a/web-app/css/icons/vector.png b/src/css/icons/vector.png similarity index 100% rename from web-app/css/icons/vector.png rename to src/css/icons/vector.png diff --git a/web-app/css/icons/vector_add.png b/src/css/icons/vector_add.png similarity index 100% rename from web-app/css/icons/vector_add.png rename to src/css/icons/vector_add.png diff --git a/web-app/css/icons/vector_delete.png b/src/css/icons/vector_delete.png similarity index 100% rename from web-app/css/icons/vector_delete.png rename to src/css/icons/vector_delete.png diff --git a/web-app/css/icons/wand.png b/src/css/icons/wand.png similarity index 100% rename from web-app/css/icons/wand.png rename to src/css/icons/wand.png diff --git a/web-app/css/icons/weather_clouds.png b/src/css/icons/weather_clouds.png similarity index 100% rename from web-app/css/icons/weather_clouds.png rename to src/css/icons/weather_clouds.png diff --git a/web-app/css/icons/weather_cloudy.png b/src/css/icons/weather_cloudy.png similarity index 100% rename from web-app/css/icons/weather_cloudy.png rename to src/css/icons/weather_cloudy.png diff --git a/web-app/css/icons/weather_lightning.png b/src/css/icons/weather_lightning.png similarity index 100% rename from web-app/css/icons/weather_lightning.png rename to src/css/icons/weather_lightning.png diff --git a/web-app/css/icons/weather_rain.png b/src/css/icons/weather_rain.png similarity index 100% rename from web-app/css/icons/weather_rain.png rename to src/css/icons/weather_rain.png diff --git a/web-app/css/icons/weather_snow.png b/src/css/icons/weather_snow.png similarity index 100% rename from web-app/css/icons/weather_snow.png rename to src/css/icons/weather_snow.png diff --git a/web-app/css/icons/weather_sun.png b/src/css/icons/weather_sun.png similarity index 100% rename from web-app/css/icons/weather_sun.png rename to src/css/icons/weather_sun.png diff --git a/web-app/css/icons/webcam.png b/src/css/icons/webcam.png similarity index 100% rename from web-app/css/icons/webcam.png rename to src/css/icons/webcam.png diff --git a/web-app/css/icons/webcam_add.png b/src/css/icons/webcam_add.png similarity index 100% rename from web-app/css/icons/webcam_add.png rename to src/css/icons/webcam_add.png diff --git a/web-app/css/icons/webcam_delete.png b/src/css/icons/webcam_delete.png similarity index 100% rename from web-app/css/icons/webcam_delete.png rename to src/css/icons/webcam_delete.png diff --git a/web-app/css/icons/webcam_error.png b/src/css/icons/webcam_error.png similarity index 100% rename from web-app/css/icons/webcam_error.png rename to src/css/icons/webcam_error.png diff --git a/web-app/css/icons/world.png b/src/css/icons/world.png similarity index 100% rename from web-app/css/icons/world.png rename to src/css/icons/world.png diff --git a/web-app/css/icons/world_add.png b/src/css/icons/world_add.png similarity index 100% rename from web-app/css/icons/world_add.png rename to src/css/icons/world_add.png diff --git a/web-app/css/icons/world_delete.png b/src/css/icons/world_delete.png similarity index 100% rename from web-app/css/icons/world_delete.png rename to src/css/icons/world_delete.png diff --git a/web-app/css/icons/world_edit.png b/src/css/icons/world_edit.png similarity index 100% rename from web-app/css/icons/world_edit.png rename to src/css/icons/world_edit.png diff --git a/web-app/css/icons/world_go.png b/src/css/icons/world_go.png similarity index 100% rename from web-app/css/icons/world_go.png rename to src/css/icons/world_go.png diff --git a/web-app/css/icons/world_link.png b/src/css/icons/world_link.png similarity index 100% rename from web-app/css/icons/world_link.png rename to src/css/icons/world_link.png diff --git a/web-app/css/icons/wrench.png b/src/css/icons/wrench.png similarity index 100% rename from web-app/css/icons/wrench.png rename to src/css/icons/wrench.png diff --git a/web-app/css/icons/wrench_orange.png b/src/css/icons/wrench_orange.png similarity index 100% rename from web-app/css/icons/wrench_orange.png rename to src/css/icons/wrench_orange.png diff --git a/web-app/css/icons/xhtml.png b/src/css/icons/xhtml.png similarity index 100% rename from web-app/css/icons/xhtml.png rename to src/css/icons/xhtml.png diff --git a/web-app/css/icons/xhtml_add.png b/src/css/icons/xhtml_add.png similarity index 100% rename from web-app/css/icons/xhtml_add.png rename to src/css/icons/xhtml_add.png diff --git a/web-app/css/icons/xhtml_delete.png b/src/css/icons/xhtml_delete.png similarity index 100% rename from web-app/css/icons/xhtml_delete.png rename to src/css/icons/xhtml_delete.png diff --git a/web-app/css/icons/xhtml_go.png b/src/css/icons/xhtml_go.png similarity index 100% rename from web-app/css/icons/xhtml_go.png rename to src/css/icons/xhtml_go.png diff --git a/web-app/css/icons/xhtml_valid.png b/src/css/icons/xhtml_valid.png similarity index 100% rename from web-app/css/icons/xhtml_valid.png rename to src/css/icons/xhtml_valid.png diff --git a/web-app/css/icons/zoom.png b/src/css/icons/zoom.png similarity index 100% rename from web-app/css/icons/zoom.png rename to src/css/icons/zoom.png diff --git a/web-app/css/icons/zoom_in.png b/src/css/icons/zoom_in.png similarity index 100% rename from web-app/css/icons/zoom_in.png rename to src/css/icons/zoom_in.png diff --git a/web-app/css/icons/zoom_out.png b/src/css/icons/zoom_out.png similarity index 100% rename from web-app/css/icons/zoom_out.png rename to src/css/icons/zoom_out.png diff --git a/web-app/css/ie.css b/src/css/ie.css similarity index 100% rename from web-app/css/ie.css rename to src/css/ie.css diff --git a/web-app/css/images/.DS_Store b/src/css/images/.DS_Store similarity index 100% rename from web-app/css/images/.DS_Store rename to src/css/images/.DS_Store diff --git a/web-app/css/images/grid.png b/src/css/images/grid.png similarity index 100% rename from web-app/css/images/grid.png rename to src/css/images/grid.png diff --git a/web-app/css/images/horizontalmenubg.png b/src/css/images/horizontalmenubg.png similarity index 100% rename from web-app/css/images/horizontalmenubg.png rename to src/css/images/horizontalmenubg.png diff --git a/web-app/css/images/horizontalmenucurrentbg.png b/src/css/images/horizontalmenucurrentbg.png similarity index 100% rename from web-app/css/images/horizontalmenucurrentbg.png rename to src/css/images/horizontalmenucurrentbg.png diff --git a/web-app/css/images/horizontalsubmenubg.png b/src/css/images/horizontalsubmenubg.png similarity index 100% rename from web-app/css/images/horizontalsubmenubg.png rename to src/css/images/horizontalsubmenubg.png diff --git a/web-app/css/images/loginalternativesbg.png b/src/css/images/loginalternativesbg.png similarity index 100% rename from web-app/css/images/loginalternativesbg.png rename to src/css/images/loginalternativesbg.png diff --git a/web-app/css/jquery/images/ui-bg_flat_0_000000_40x100.png b/src/css/jquery/images/ui-bg_flat_0_000000_40x100.png similarity index 100% rename from web-app/css/jquery/images/ui-bg_flat_0_000000_40x100.png rename to src/css/jquery/images/ui-bg_flat_0_000000_40x100.png diff --git a/web-app/css/jquery/images/ui-bg_flat_100_ffffff_40x100.png b/src/css/jquery/images/ui-bg_flat_100_ffffff_40x100.png similarity index 100% rename from web-app/css/jquery/images/ui-bg_flat_100_ffffff_40x100.png rename to src/css/jquery/images/ui-bg_flat_100_ffffff_40x100.png diff --git a/web-app/css/jquery/images/ui-bg_flat_50_333333_40x100.png b/src/css/jquery/images/ui-bg_flat_50_333333_40x100.png similarity index 100% rename from web-app/css/jquery/images/ui-bg_flat_50_333333_40x100.png rename to src/css/jquery/images/ui-bg_flat_50_333333_40x100.png diff --git a/web-app/css/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png b/src/css/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png similarity index 100% rename from web-app/css/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png rename to src/css/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/web-app/css/jquery/images/ui-bg_glass_65_ffffff_1x400.png b/src/css/jquery/images/ui-bg_glass_65_ffffff_1x400.png similarity index 100% rename from web-app/css/jquery/images/ui-bg_glass_65_ffffff_1x400.png rename to src/css/jquery/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/web-app/css/jquery/images/ui-bg_glass_75_dadada_1x400.png b/src/css/jquery/images/ui-bg_glass_75_dadada_1x400.png similarity index 100% rename from web-app/css/jquery/images/ui-bg_glass_75_dadada_1x400.png rename to src/css/jquery/images/ui-bg_glass_75_dadada_1x400.png diff --git a/web-app/css/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png b/src/css/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png similarity index 100% rename from web-app/css/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png rename to src/css/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/web-app/css/jquery/images/ui-bg_highlight-soft_75_f5f5f5_1x100.png b/src/css/jquery/images/ui-bg_highlight-soft_75_f5f5f5_1x100.png similarity index 100% rename from web-app/css/jquery/images/ui-bg_highlight-soft_75_f5f5f5_1x100.png rename to src/css/jquery/images/ui-bg_highlight-soft_75_f5f5f5_1x100.png diff --git a/web-app/css/jquery/images/ui-bg_inset-soft_95_fef1ec_1x100.png b/src/css/jquery/images/ui-bg_inset-soft_95_fef1ec_1x100.png similarity index 100% rename from web-app/css/jquery/images/ui-bg_inset-soft_95_fef1ec_1x100.png rename to src/css/jquery/images/ui-bg_inset-soft_95_fef1ec_1x100.png diff --git a/web-app/css/jquery/images/ui-icons_000_256x240.png b/src/css/jquery/images/ui-icons_000_256x240.png similarity index 100% rename from web-app/css/jquery/images/ui-icons_000_256x240.png rename to src/css/jquery/images/ui-icons_000_256x240.png diff --git a/web-app/css/jquery/images/ui-icons_2e83ff_256x240.png b/src/css/jquery/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from web-app/css/jquery/images/ui-icons_2e83ff_256x240.png rename to src/css/jquery/images/ui-icons_2e83ff_256x240.png diff --git a/web-app/css/jquery/images/ui-icons_454545_256x240.png b/src/css/jquery/images/ui-icons_454545_256x240.png similarity index 100% rename from web-app/css/jquery/images/ui-icons_454545_256x240.png rename to src/css/jquery/images/ui-icons_454545_256x240.png diff --git a/web-app/css/jquery/images/ui-icons_888888_256x240.png b/src/css/jquery/images/ui-icons_888888_256x240.png similarity index 100% rename from web-app/css/jquery/images/ui-icons_888888_256x240.png rename to src/css/jquery/images/ui-icons_888888_256x240.png diff --git a/web-app/css/jquery/images/ui-icons_cd0a0a_256x240.png b/src/css/jquery/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from web-app/css/jquery/images/ui-icons_cd0a0a_256x240.png rename to src/css/jquery/images/ui-icons_cd0a0a_256x240.png diff --git a/web-app/css/jquery.jgrowl.css b/src/css/jquery/jgrowl.css old mode 100755 new mode 100644 similarity index 100% rename from web-app/css/jquery.jgrowl.css rename to src/css/jquery/jgrowl.css diff --git a/web-app/css/jquery/jquery-ui-1.7.2.custom.css b/src/css/jquery/jquery-ui-1.7.2.custom.css similarity index 100% rename from web-app/css/jquery/jquery-ui-1.7.2.custom.css rename to src/css/jquery/jquery-ui-1.7.2.custom.css diff --git a/web-app/css/login.css b/src/css/login.css similarity index 100% rename from web-app/css/login.css rename to src/css/login.css diff --git a/web-app/css/main.css b/src/css/main.css similarity index 100% rename from web-app/css/main.css rename to src/css/main.css diff --git a/src/css/mootools/bubble.png b/src/css/mootools/bubble.png new file mode 100644 index 0000000..9c7e605 Binary files /dev/null and b/src/css/mootools/bubble.png differ diff --git a/src/css/mootools/notimoo-v1.2.1.css b/src/css/mootools/notimoo-v1.2.1.css new file mode 100644 index 0000000..8151c73 --- /dev/null +++ b/src/css/mootools/notimoo-v1.2.1.css @@ -0,0 +1 @@ +.notimoo{position:absolute;z-index:999;cursor:pointer;-moz-border-radius:10px;-webkit-border-radius:10px;padding:10px;border:3px;border-style:solid;border-color:#B2B2B2;background:#333;color:#FFF;}.notimoo .title{display:table-cell;}.notimoo .message{margin-top:2px;display:table-cell;}.notimoo a{color:#FFF;} \ No newline at end of file diff --git a/src/css/mootools/tooltip.css b/src/css/mootools/tooltip.css new file mode 100644 index 0000000..fab0b9e --- /dev/null +++ b/src/css/mootools/tooltip.css @@ -0,0 +1,3 @@ +.tip { color: #fff; width: 250px; z-index: 13000; } +.tip-title { font-weight: bold; font-size: 11px; margin: 0; color: #9FD4FF; padding: 8px 8px 4px; background: url(bubble.png) top left; } +.tip-text { font-size: 11px; padding: 4px 8px 8px; background: url(bubble.png) bottom right; } diff --git a/web-app/css/nimble.css b/src/css/nimble.css similarity index 96% rename from web-app/css/nimble.css rename to src/css/nimble.css index 6c6b593..be9c6d2 100644 --- a/web-app/css/nimble.css +++ b/src/css/nimble.css @@ -1,489 +1,493 @@ -html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; outline: 0; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; } - -*:focus { outline: 0; } - -body { line-height: 1em; color: black; background: #fff; } - -ol, ul { list-style: none; } - -/* tables still need 'cellspacing="0"' in the markup */ -table { border-collapse: separate; border-spacing: 0; vertical-align: middle; } - -caption, th, td { text-align: left; font-weight: normal; vertical-align: middle; } - -q, blockquote { quotes: "" ""; } -q:before, q:after, blockquote:before, blockquote:after { content: ""; } - -img a { border: none; } - -.error { -moz-border-radius: 2px; -webkit-border-radius: 2px; font-size: 116.667%; margin: 3px; padding: 6px; font-weight: normal; background-color: #ffbaba; border: 1px solid #ffbaba; color: #D8000C; } -.error p { margin: 2px; } - -.information { -moz-border-radius: 2px; -webkit-border-radius: 2px; font-size: 116.667%; margin: 3px; padding: 6px; font-weight: normal; background-color: #bde5f8; border: 1px solid #bde5f8; color: #00529B; } -.information p { margin: 2px; } - -.success { -moz-border-radius: 2px; -webkit-border-radius: 2px; font-size: 116.667%; margin: 3px; padding: 6px; font-weight: normal; background-color: #dff2bf; border: 1px solid #dff2bf; color: #4F8A10; } -.success p { margin: 2px; } - -.easyinput { padding: 3px; font-size: 1.1em; } - -body { line-height: 1.5; font-family: Helvetica Neue, Arial, Helvetica, sans-serif; color: #333333; font-size: 75%; } - -h1 { font-weight: normal; color: #222222; font-size: 3em; line-height: 1; margin-bottom: 0.5em; } -h1 img { margin: 0; } - -h2 { font-weight: normal; color: #222222; font-size: 2em; margin-bottom: 0.75em; } - -h3 { font-weight: normal; color: #222222; font-size: 1.5em; line-height: 1; margin-bottom: 1em; } - -h4 { font-weight: normal; color: #222222; font-size: 1.2em; line-height: 1.25; margin-bottom: 1.25em; } - -h5 { font-weight: normal; color: #222222; font-size: 1em; font-weight: bold; margin-bottom: 1.5em; } - -h6 { font-weight: normal; color: #222222; font-size: 1em; font-weight: bold; } - -h2 img, h3 img, h4 img, h5 img, h6 img { margin: 0; } - -p { margin: 0 0 1.5em; } -p img.left { display: inline; float: left; margin: 1.5em 1.5em 1.5em 0; padding: 0; } -p img.right { display: inline; float: right; margin: 1.5em 0 1.5em 1.5em; padding: 0; } - -a { text-decoration: underline; color: #363636; } -a:visited { color: #000066; } -a:focus { color: black; } -a:hover { color: black; } -a:active { color: #cc0099; } - -blockquote { margin: 1.5em; color: #666; font-style: italic; } - -strong { font-weight: bold; } - -em { font-style: italic; } - -dfn { font-style: italic; font-weight: bold; } - -sup, sub { line-height: 0; } - -abbr, acronym { border-bottom: 1px dotted #666; } - -address { margin: 0 0 1.5em; font-style: italic; } - -del { color: #666; } - -pre { margin: 1.5em 0; white-space: pre; } - -pre, code, tt { font: 1em 'andale mono', 'lucida console', monospace; line-height: 1.5; } - -li ul, li ol { margin: 0 1.5em; } - -ul { margin: 0 1.5em 1.5em 1.5em; list-style-type: disc; } - -ol { margin: 0 1.5em 1.5em 1.5em; list-style-type: decimal; } - -dl { margin: 0 0 1.5em 0; } -dl dt { font-weight: bold; } - -dd { margin-left: 1.5em; } - -table { margin-bottom: 1.4em; width: 100%; } - -th { font-weight: bold; } - -thead th { background: #c3d9ff; } - -th, td, caption { padding: 4px 10px 4px 5px; } - -tr.even td { background: #e5ecf9; } - -tfoot { font-style: italic; } - -caption { background: #eee; } - -.quiet { color: #666666; } - -.loud { color: #111111; } - -.clear { clear: both; } - -.nowrap { white-space: nowrap; } - -.clearfix { overflow: hidden; display: inline-block; } -.clearfix { display: block; } - -.small { font-size: .8em; margin-bottom: 1.875em; line-height: 1.875em; } - -.large { font-size: 1.2em; line-height: 2.5em; margin-bottom: 1.25em; } - -.first { margin-left: 0; padding-left: 0; } - -.last { margin-right: 0; padding-right: 0; } - -.top { margin-top: 0; padding-top: 0; } - -.bottom { margin-bottom: 0; padding-bottom: 0; } - -.container { min-width: 950px; width: 80%; margin: 0 auto; overflow: hidden; display: inline-block; } -.container { display: block; } - -.column, div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21, div.span-22, div.span-23, div.span-24 { display: inline; float: left; margin-right: 10px; } -* html .column, * html div.span-1, * html div.span-2, * html div.span-3, * html div.span-4, * html div.span-5, * html div.span-6, * html div.span-7, * html div.span-8, * html div.span-9, * html div.span-10, * html div.span-11, * html div.span-12, * html div.span-13, * html div.span-14, * html div.span-15, * html div.span-16, * html div.span-17, * html div.span-18, * html div.span-19, * html div.span-20, * html div.span-21, * html div.span-22, * html div.span-23, * html div.span-24 { overflow-x: hidden; } - -.last, div.last { margin-right: 0; } - -.span-1 { width: 4%; } - -.span-2 { width: 8%; } - -.span-3 { width: 12%; } - -.span-4 { width: 16%; } - -.span-5 { width: 20%; } - -.span-6 { width: 25%; } - -.span-7 { width: 29%; } - -.span-8 { width: 33%; } - -.span-9 { width: 37%; } - -.span-10 { width: 41%; } - -.span-11 { width: 45%; } - -.span-12 { width: 50%; } - -.span-13 { width: 54%; } - -.span-14 { width: 58%; } - -.span-15 { width: 62%; } - -.span-16 { width: 66%; } - -.span-17 { width: 70%; } - -.span-18 { width: 75%; } - -.span-19 { width: 79%; } - -.span-20 { width: 83%; } - -.span-21 { width: 87%; } - -.span-22 { width: 91%; } - -.span-23 { width: 95%; } - -.span-24, div.span-24 { width: 100%; margin: 0; } - -input.span-1, textarea.span-1, select.span-1 { width: 4% !important; } -input.span-2, textarea.span-2, select.span-2 { width: 8% !important; } -input.span-3, textarea.span-3, select.span-3 { width: 12% !important; } -input.span-4, textarea.span-4, select.span-4 { width: 16% !important; } -input.span-5, textarea.span-5, select.span-5 { width: 20% !important; } -input.span-6, textarea.span-6, select.span-6 { width: 25% !important; } -input.span-7, textarea.span-7, select.span-7 { width: 29% !important; } -input.span-8, textarea.span-8, select.span-8 { width: 33% !important; } -input.span-9, textarea.span-9, select.span-9 { width: 37% !important; } -input.span-10, textarea.span-10, select.span-10 { width: 41% !important; } -input.span-11, textarea.span-11, select.span-11 { width: 45% !important; } -input.span-12, textarea.span-12, select.span-12 { width: 50% !important; } -input.span-13, textarea.span-13, select.span-13 { width: 54% !important; } -input.span-14, textarea.span-14, select.span-14 { width: 58% !important; } -input.span-15, textarea.span-15, select.span-15 { width: 62% !important; } -input.span-16, textarea.span-16, select.span-16 { width: 66% !important; } -input.span-17, textarea.span-17, select.span-17 { width: 70% !important; } -input.span-18, textarea.span-18, select.span-18 { width: 75% !important; } -input.span-19, textarea.span-19, select.span-19 { width: 79% !important; } -input.span-20, textarea.span-20, select.span-20 { width: 83% !important; } -input.span-21, textarea.span-21, select.span-21 { width: 87% !important; } -input.span-22, textarea.span-22, select.span-22 { width: 91% !important; } -input.span-23, textarea.span-23, select.span-23 { width: 95% !important; } -input.span-24, textarea.span-24, select.span-24 { width: 100% !important; } - -.append-1 { padding-right: 4%; } - -.append-2 { padding-right: 8%; } - -.append-3 { padding-right: 12%; } - -.append-4 { padding-right: 16%; } - -.append-5 { padding-right: 20%; } - -.append-6 { padding-right: 25%; } - -.append-7 { padding-right: 29%; } - -.append-8 { padding-right: 33%; } - -.append-9 { padding-right: 37%; } - -.append-10 { padding-right: 41%; } - -.append-11 { padding-right: 45%; } - -.append-12 { padding-right: 50%; } - -.append-13 { padding-right: 54%; } - -.append-14 { padding-right: 58%; } - -.append-15 { padding-right: 62%; } - -.append-16 { padding-right: 66%; } - -.append-17 { padding-right: 70%; } - -.append-18 { padding-right: 75%; } - -.append-19 { padding-right: 79%; } - -.append-20 { padding-right: 83%; } - -.append-21 { padding-right: 87%; } - -.append-22 { padding-right: 91%; } - -.append-23 { padding-right: 95%; } - -.prepend-1 { padding-left: 4%; } - -.prepend-2 { padding-left: 8%; } - -.prepend-3 { padding-left: 12%; } - -.prepend-4 { padding-left: 16%; } - -.prepend-5 { padding-left: 20%; } - -.prepend-6 { padding-left: 25%; } - -.prepend-7 { padding-left: 29%; } - -.prepend-8 { padding-left: 33%; } - -.prepend-9 { padding-left: 37%; } - -.prepend-10 { padding-left: 41%; } - -.prepend-11 { padding-left: 45%; } - -.prepend-12 { padding-left: 50%; } - -.prepend-13 { padding-left: 54%; } - -.prepend-14 { padding-left: 58%; } - -.prepend-15 { padding-left: 62%; } - -.prepend-16 { padding-left: 66%; } - -.prepend-17 { padding-left: 70%; } - -.prepend-18 { padding-left: 75%; } - -.prepend-19 { padding-left: 79%; } - -.prepend-20 { padding-left: 83%; } - -.prepend-21 { padding-left: 87%; } - -.prepend-22 { padding-left: 91%; } - -.prepend-23 { padding-left: 95%; } - -.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 { display: inline; float: left; position: relative; } - -.pull-1 { margin-left: -40px; } - -.pull-2 { margin-left: -80px; } - -.pull-3 { margin-left: -120px; } - -.pull-4 { margin-left: -160px; } - -.pull-5 { margin-left: -200px; } - -.pull-6 { margin-left: -240px; } - -.pull-7 { margin-left: -280px; } - -.pull-8 { margin-left: -320px; } - -.pull-9 { margin-left: -360px; } - -.pull-10 { margin-left: -400px; } - -.pull-11 { margin-left: -440px; } - -.pull-12 { margin-left: -480px; } - -.pull-13 { margin-left: -520px; } - -.pull-14 { margin-left: -560px; } - -.pull-15 { margin-left: -600px; } - -.pull-16 { margin-left: -640px; } - -.pull-17 { margin-left: -680px; } - -.pull-18 { margin-left: -720px; } - -.pull-19 { margin-left: -760px; } - -.pull-20 { margin-left: -800px; } - -.pull-21 { margin-left: -840px; } - -.pull-22 { margin-left: -880px; } - -.pull-23 { margin-left: -920px; } - -.pull-24 { margin-left: -960px; } - -.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 { display: inline; float: right; position: relative; } - -.push-1 { margin: 0 -40px 1.5em 40px; } - -.push-2 { margin: 0 -80px 1.5em 80px; } - -.push-3 { margin: 0 -120px 1.5em 120px; } - -.push-4 { margin: 0 -160px 1.5em 160px; } - -.push-5 { margin: 0 -200px 1.5em 200px; } - -.push-6 { margin: 0 -240px 1.5em 240px; } - -.push-7 { margin: 0 -280px 1.5em 280px; } - -.push-8 { margin: 0 -320px 1.5em 320px; } - -.push-9 { margin: 0 -360px 1.5em 360px; } - -.push-10 { margin: 0 -400px 1.5em 400px; } - -.push-11 { margin: 0 -440px 1.5em 440px; } - -.push-12 { margin: 0 -480px 1.5em 480px; } - -.push-13 { margin: 0 -520px 1.5em 520px; } - -.push-14 { margin: 0 -560px 1.5em 560px; } - -.push-15 { margin: 0 -600px 1.5em 600px; } - -.push-16 { margin: 0 -640px 1.5em 640px; } - -.push-17 { margin: 0 -680px 1.5em 680px; } - -.push-18 { margin: 0 -720px 1.5em 720px; } - -.push-19 { margin: 0 -760px 1.5em 760px; } - -.push-20 { margin: 0 -800px 1.5em 800px; } - -.push-21 { margin: 0 -840px 1.5em 840px; } - -.push-22 { margin: 0 -880px 1.5em 880px; } - -.push-23 { margin: 0 -920px 1.5em 920px; } - -.push-24 { margin: 0 -960px 1.5em 960px; } - -.showgrid { background: url('/images/grid.png'); } - -.error { padding: .8em; margin-bottom: 1em; border: 2px solid #dddddd; background: #fbe3e4; color: #8a1f11; border-color: #fbc2c4; } -.error a { color: #8a1f11; } - -.notice { padding: .8em; margin-bottom: 1em; border: 2px solid #dddddd; background: #fff6bf; color: #514721; border-color: #ffd324; } -.notice a { color: #514721; } - -.success { padding: .8em; margin-bottom: 1em; border: 2px solid #dddddd; background: #e6efc2; color: #264409; border-color: #c6d880; } -.success a { color: #264409; } - -.hide { display: none; } - -.highlight { background: yellow; } - -.added { background: #006600; color: white; } - -.removed { background: #990000; color: white; } - -label { font-weight: bold; } - -fieldset { padding: 1.4em; margin: 0 0 1.5em 0; } - -legend { font-weight: bold; font-size: 1.2em; } - -input.text, input.title, input[type=text] { margin: 0.5em 0; background-color: #fff; padding: 5px; } -input.title { font-size: 1.5em; } -input[type=checkbox], input.checkbox, input[type=radio], input.radio { position: relative; top: 0.25em; } - -textarea { margin: 0.5em 0; padding: 5px; } - -select { margin: 0.5em 0; } - -fieldset { border: 1px solid #cccccc; } - -input.text, input.title, textarea, select { border: 1px solid #bbbbbb; } -input.text:focus, input.title:focus, textarea:focus, select:focus { border: 1px solid #666666; } - -input.text, input.title { width: 300px; } - -textarea { width: 390px; height: 250px; } - -body { min-width: 980px; } - -a { color: #363636; cursor: pointer; text-decoration: none; } -a:hover { text-decoration: underline; } - -a.empty { color: #363636; cursor: pointer; text-decoration: none; } -a.empty:hover { text-decoration: none; } - -a.button { margin: 0px; -moz-border-radius: 3px; -webkit-border-radius: 3px; color: #363636; cursor: pointer; text-decoration: none; padding: 5px; background-color: #f2f2f2; border: 1px solid #cccccc; border-top: 1px solid #eeeeee; border-left: 1px solid #eeeeee; color: #363636; font-size: 0.95em; font-weight: normal; margin-left: 6px; } -a.button:hover { text-decoration: none; } - -button.button { margin: 0px; -moz-border-radius: 3px; -webkit-border-radius: 3px; color: #363636; cursor: pointer; text-decoration: none; padding: 5px; background-color: #f2f2f2; border: 1px solid #cccccc; border-top: 1px solid #eeeeee; border-left: 1px solid #eeeeee; color: #363636; font-size: 0.95em; font-weight: normal; } -button.button:hover { text-decoration: none; } - -.welcome { width: 66%; margin-top: 36px; margin-left: auto; margin-right: auto; } - -.accountinformation { width: 66%; margin-left: auto; margin-right: auto; } - -.details { margin: 9px; width: 50%; } -.details h3 { margin: 0px; padding: 0px; margin-bottom: 3px; } -.details thead tr th { background-color: #fff; } -.details thead tr th a { color: #363636; cursor: pointer; text-decoration: none; } -.details thead tr th a:hover { text-decoration: underline; } -.details tbody tr.odd td { background-color: #fff; } -.details tbody tr.even td { background-color: #fbfbfb; } -.details tbody tr td.name { font-weight: bold; } - -.searchbox { margin-top: 3px; margin-bottom: 3px; } -.searchbox input { margin: 0px; float: left; padding: 3px; font-size: 1.1em; margin-left: 5px; margin-right: 5px; vertical-align: middle; } - -.paginateButtons { margin: 5px; padding: 5px; } -.paginateButtons a { color: #363636; cursor: pointer; text-decoration: none; } -.paginateButtons a:hover { text-decoration: underline; } - -.prevLink { margin: 5px; padding: 5px; padding-left: 24px; background-repeat: no-repeat; background-position: left center; background-image: url('icons/arrow_left.png'); } - -.nextLink { margin: 5px; padding: 5px; padding-right: 24px; background-repeat: no-repeat; background-position: right center; background-image: url('icons/arrow_right.png'); } - -.step { margin: 5px; padding: 5px; } - -.currentStep { margin: 5px; padding: 5px; font-weight: bold; } - -.cleanlist ul { list-style-type: none; } -.cleanlist ul li { list-style-type: none; } - -#hd { display: block; } - -#bd { margin: 0px; width: 100%; } - -#ft { margin: 0px; } +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; outline: 0; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; } + +*:focus { outline: 0; } + +body { line-height: 1em; color: black; background: #fff; } + +ol, ul { list-style: none; } + +/* tables still need 'cellspacing="0"' in the markup */ +table { border-collapse: separate; border-spacing: 0; vertical-align: middle; } + +caption, th, td { text-align: left; font-weight: normal; vertical-align: middle; } + +q, blockquote { quotes: "" ""; } +q:before, q:after, blockquote:before, blockquote:after { content: ""; } + +img a { border: none; } + +.error { -moz-border-radius: 2px; -webkit-border-radius: 2px; font-size: 116.667%; margin: 3px; padding: 6px; font-weight: normal; background-color: #ffbaba; border: 1px solid #ffbaba; color: #D8000C; } +.error p { margin: 2px; } + +.information { -moz-border-radius: 2px; -webkit-border-radius: 2px; font-size: 116.667%; margin: 3px; padding: 6px; font-weight: normal; background-color: #bde5f8; border: 1px solid #bde5f8; color: #00529B; } +.information p { margin: 2px; } + +.success { -moz-border-radius: 2px; -webkit-border-radius: 2px; font-size: 116.667%; margin: 3px; padding: 6px; font-weight: normal; background-color: #dff2bf; border: 1px solid #dff2bf; color: #4F8A10; } +.success p { margin: 2px; } + +.easyinput { padding: 3px; font-size: 1.1em; } + +body { line-height: 1.5; font-family: Helvetica Neue, Arial, Helvetica, sans-serif; color: #333333; font-size: 75%; } + +h1 { font-weight: normal; color: #222222; font-size: 3em; line-height: 1; margin-bottom: 0.5em; } +h1 img { margin: 0; } + +h2 { font-weight: normal; color: #222222; font-size: 2em; margin-bottom: 0.75em; } + +h3 { font-weight: normal; color: #222222; font-size: 1.5em; line-height: 1; margin-bottom: 1em; } + +h4 { font-weight: normal; color: #222222; font-size: 1.2em; line-height: 1.25; margin-bottom: 1.25em; } + +h5 { font-weight: normal; color: #222222; font-size: 1em; font-weight: bold; margin-bottom: 1.5em; } + +h6 { font-weight: normal; color: #222222; font-size: 1em; font-weight: bold; } + +h2 img, h3 img, h4 img, h5 img, h6 img { margin: 0; } + +p { margin: 0 0 1.5em; } +p img.left { display: inline; float: left; margin: 1.5em 1.5em 1.5em 0; padding: 0; } +p img.right { display: inline; float: right; margin: 1.5em 0 1.5em 1.5em; padding: 0; } + +a { text-decoration: underline; color: #363636; } +a:visited { color: #000066; } +a:focus { color: black; } +a:hover { color: black; } +a:active { color: #cc0099; } + +blockquote { margin: 1.5em; color: #666; font-style: italic; } + +strong { font-weight: bold; } + +em { font-style: italic; } + +dfn { font-style: italic; font-weight: bold; } + +sup, sub { line-height: 0; } + +abbr, acronym { border-bottom: 1px dotted #666; } + +address { margin: 0 0 1.5em; font-style: italic; } + +del { color: #666; } + +pre { margin: 1.5em 0; white-space: pre; } + +pre, code, tt { font: 1em 'andale mono', 'lucida console', monospace; line-height: 1.5; } + +li ul, li ol { margin: 0 1.5em; } + +ul { margin: 0 1.5em 1.5em 1.5em; list-style-type: disc; } + +ol { margin: 0 1.5em 1.5em 1.5em; list-style-type: decimal; } + +dl { margin: 0 0 1.5em 0; } +dl dt { font-weight: bold; } + +dd { margin-left: 1.5em; } + +table { margin-bottom: 1.4em; width: 100%; } + +th { font-weight: bold; } + +thead th { background: #c3d9ff; } + +th, td, caption { padding: 4px 10px 4px 5px; } + +tr.even td { background: #e5ecf9; } + +tfoot { font-style: italic; } + +caption { background: #eee; } + +.quiet { color: #666666; } + +.loud { color: #111111; } + +.clear { clear: both; } + +.nowrap { white-space: nowrap; } + +.clearfix { overflow: hidden; display: inline-block; } +.clearfix { display: block; } + +.small { font-size: .8em; margin-bottom: 1.875em; line-height: 1.875em; } + +.large { font-size: 1.2em; line-height: 2.5em; margin-bottom: 1.25em; } + +.first { margin-left: 0; padding-left: 0; } + +.last { margin-right: 0; padding-right: 0; } + +.top { margin-top: 0; padding-top: 0; } + +.bottom { margin-bottom: 0; padding-bottom: 0; } + +.container { min-width: 950px; width: 80%; margin: 0 auto; overflow: hidden; display: inline-block; } +.container { display: block; } + +.column, div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21, div.span-22, div.span-23, div.span-24 { display: inline; float: left; margin-right: 10px; } +* html .column, * html div.span-1, * html div.span-2, * html div.span-3, * html div.span-4, * html div.span-5, * html div.span-6, * html div.span-7, * html div.span-8, * html div.span-9, * html div.span-10, * html div.span-11, * html div.span-12, * html div.span-13, * html div.span-14, * html div.span-15, * html div.span-16, * html div.span-17, * html div.span-18, * html div.span-19, * html div.span-20, * html div.span-21, * html div.span-22, * html div.span-23, * html div.span-24 { overflow-x: hidden; } + +.last, div.last { margin-right: 0; } + +.span-1 { width: 4%; } + +.span-2 { width: 8%; } + +.span-3 { width: 12%; } + +.span-4 { width: 16%; } + +.span-5 { width: 20%; } + +.span-6 { width: 25%; } + +.span-7 { width: 29%; } + +.span-8 { width: 33%; } + +.span-9 { width: 37%; } + +.span-10 { width: 41%; } + +.span-11 { width: 45%; } + +.span-12 { width: 50%; } + +.span-13 { width: 54%; } + +.span-14 { width: 58%; } + +.span-15 { width: 62%; } + +.span-16 { width: 66%; } + +.span-17 { width: 70%; } + +.span-18 { width: 75%; } + +.span-19 { width: 79%; } + +.span-20 { width: 83%; } + +.span-21 { width: 87%; } + +.span-22 { width: 91%; } + +.span-23 { width: 95%; } + +.span-24, div.span-24 { width: 100%; margin: 0; } + +input.span-1, textarea.span-1, select.span-1 { width: 4% !important; } +input.span-2, textarea.span-2, select.span-2 { width: 8% !important; } +input.span-3, textarea.span-3, select.span-3 { width: 12% !important; } +input.span-4, textarea.span-4, select.span-4 { width: 16% !important; } +input.span-5, textarea.span-5, select.span-5 { width: 20% !important; } +input.span-6, textarea.span-6, select.span-6 { width: 25% !important; } +input.span-7, textarea.span-7, select.span-7 { width: 29% !important; } +input.span-8, textarea.span-8, select.span-8 { width: 33% !important; } +input.span-9, textarea.span-9, select.span-9 { width: 37% !important; } +input.span-10, textarea.span-10, select.span-10 { width: 41% !important; } +input.span-11, textarea.span-11, select.span-11 { width: 45% !important; } +input.span-12, textarea.span-12, select.span-12 { width: 50% !important; } +input.span-13, textarea.span-13, select.span-13 { width: 54% !important; } +input.span-14, textarea.span-14, select.span-14 { width: 58% !important; } +input.span-15, textarea.span-15, select.span-15 { width: 62% !important; } +input.span-16, textarea.span-16, select.span-16 { width: 66% !important; } +input.span-17, textarea.span-17, select.span-17 { width: 70% !important; } +input.span-18, textarea.span-18, select.span-18 { width: 75% !important; } +input.span-19, textarea.span-19, select.span-19 { width: 79% !important; } +input.span-20, textarea.span-20, select.span-20 { width: 83% !important; } +input.span-21, textarea.span-21, select.span-21 { width: 87% !important; } +input.span-22, textarea.span-22, select.span-22 { width: 91% !important; } +input.span-23, textarea.span-23, select.span-23 { width: 95% !important; } +input.span-24, textarea.span-24, select.span-24 { width: 100% !important; } + +.append-1 { padding-right: 4%; } + +.append-2 { padding-right: 8%; } + +.append-3 { padding-right: 12%; } + +.append-4 { padding-right: 16%; } + +.append-5 { padding-right: 20%; } + +.append-6 { padding-right: 25%; } + +.append-7 { padding-right: 29%; } + +.append-8 { padding-right: 33%; } + +.append-9 { padding-right: 37%; } + +.append-10 { padding-right: 41%; } + +.append-11 { padding-right: 45%; } + +.append-12 { padding-right: 50%; } + +.append-13 { padding-right: 54%; } + +.append-14 { padding-right: 58%; } + +.append-15 { padding-right: 62%; } + +.append-16 { padding-right: 66%; } + +.append-17 { padding-right: 70%; } + +.append-18 { padding-right: 75%; } + +.append-19 { padding-right: 79%; } + +.append-20 { padding-right: 83%; } + +.append-21 { padding-right: 87%; } + +.append-22 { padding-right: 91%; } + +.append-23 { padding-right: 95%; } + +.prepend-1 { padding-left: 4%; } + +.prepend-2 { padding-left: 8%; } + +.prepend-3 { padding-left: 12%; } + +.prepend-4 { padding-left: 16%; } + +.prepend-5 { padding-left: 20%; } + +.prepend-6 { padding-left: 25%; } + +.prepend-7 { padding-left: 29%; } + +.prepend-8 { padding-left: 33%; } + +.prepend-9 { padding-left: 37%; } + +.prepend-10 { padding-left: 41%; } + +.prepend-11 { padding-left: 45%; } + +.prepend-12 { padding-left: 50%; } + +.prepend-13 { padding-left: 54%; } + +.prepend-14 { padding-left: 58%; } + +.prepend-15 { padding-left: 62%; } + +.prepend-16 { padding-left: 66%; } + +.prepend-17 { padding-left: 70%; } + +.prepend-18 { padding-left: 75%; } + +.prepend-19 { padding-left: 79%; } + +.prepend-20 { padding-left: 83%; } + +.prepend-21 { padding-left: 87%; } + +.prepend-22 { padding-left: 91%; } + +.prepend-23 { padding-left: 95%; } + +.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 { display: inline; float: left; position: relative; } + +.pull-1 { margin-left: -40px; } + +.pull-2 { margin-left: -80px; } + +.pull-3 { margin-left: -120px; } + +.pull-4 { margin-left: -160px; } + +.pull-5 { margin-left: -200px; } + +.pull-6 { margin-left: -240px; } + +.pull-7 { margin-left: -280px; } + +.pull-8 { margin-left: -320px; } + +.pull-9 { margin-left: -360px; } + +.pull-10 { margin-left: -400px; } + +.pull-11 { margin-left: -440px; } + +.pull-12 { margin-left: -480px; } + +.pull-13 { margin-left: -520px; } + +.pull-14 { margin-left: -560px; } + +.pull-15 { margin-left: -600px; } + +.pull-16 { margin-left: -640px; } + +.pull-17 { margin-left: -680px; } + +.pull-18 { margin-left: -720px; } + +.pull-19 { margin-left: -760px; } + +.pull-20 { margin-left: -800px; } + +.pull-21 { margin-left: -840px; } + +.pull-22 { margin-left: -880px; } + +.pull-23 { margin-left: -920px; } + +.pull-24 { margin-left: -960px; } + +.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 { display: inline; float: right; position: relative; } + +.push-1 { margin: 0 -40px 1.5em 40px; } + +.push-2 { margin: 0 -80px 1.5em 80px; } + +.push-3 { margin: 0 -120px 1.5em 120px; } + +.push-4 { margin: 0 -160px 1.5em 160px; } + +.push-5 { margin: 0 -200px 1.5em 200px; } + +.push-6 { margin: 0 -240px 1.5em 240px; } + +.push-7 { margin: 0 -280px 1.5em 280px; } + +.push-8 { margin: 0 -320px 1.5em 320px; } + +.push-9 { margin: 0 -360px 1.5em 360px; } + +.push-10 { margin: 0 -400px 1.5em 400px; } + +.push-11 { margin: 0 -440px 1.5em 440px; } + +.push-12 { margin: 0 -480px 1.5em 480px; } + +.push-13 { margin: 0 -520px 1.5em 520px; } + +.push-14 { margin: 0 -560px 1.5em 560px; } + +.push-15 { margin: 0 -600px 1.5em 600px; } + +.push-16 { margin: 0 -640px 1.5em 640px; } + +.push-17 { margin: 0 -680px 1.5em 680px; } + +.push-18 { margin: 0 -720px 1.5em 720px; } + +.push-19 { margin: 0 -760px 1.5em 760px; } + +.push-20 { margin: 0 -800px 1.5em 800px; } + +.push-21 { margin: 0 -840px 1.5em 840px; } + +.push-22 { margin: 0 -880px 1.5em 880px; } + +.push-23 { margin: 0 -920px 1.5em 920px; } + +.push-24 { margin: 0 -960px 1.5em 960px; } + +.prepend-top { margin-top: 1.5em; } + +.append-bottom { margin-bottom: 1.5em; } + +.showgrid { background: url('/images/grid.png'); } + +.error { padding: .8em; margin-bottom: 1em; border: 2px solid #dddddd; background: #fbe3e4; color: #8a1f11; border-color: #fbc2c4; } +.error a { color: #8a1f11; } + +.notice { padding: .8em; margin-bottom: 1em; border: 2px solid #dddddd; background: #fff6bf; color: #514721; border-color: #ffd324; } +.notice a { color: #514721; } + +.success { padding: .8em; margin-bottom: 1em; border: 2px solid #dddddd; background: #e6efc2; color: #264409; border-color: #c6d880; } +.success a { color: #264409; } + +.hide { display: none; } + +.highlight { background: yellow; } + +.added { background: #006600; color: white; } + +.removed { background: #990000; color: white; } + +label { font-weight: bold; } + +fieldset { padding: 1.4em; margin: 0 0 1.5em 0; } + +legend { font-weight: bold; font-size: 1.2em; } + +input.text, input.title, input[type=text] { margin: 0.5em 0; background-color: #fff; padding: 5px; } +input.title { font-size: 1.5em; } +input[type=checkbox], input.checkbox, input[type=radio], input.radio { position: relative; top: 0.25em; } + +textarea { margin: 0.5em 0; padding: 5px; } + +select { margin: 0.5em 0; } + +fieldset { border: 1px solid #cccccc; } + +input.text, input.title, textarea, select { border: 1px solid #bbbbbb; } +input.text:focus, input.title:focus, textarea:focus, select:focus { border: 1px solid #666666; } + +input.text, input.title { width: 300px; } + +textarea { width: 390px; height: 250px; } + +body { min-width: 980px; } + +a { color: #363636; cursor: pointer; text-decoration: none; } +a:hover { text-decoration: underline; } + +a.empty { color: #363636; cursor: pointer; text-decoration: none; } +a.empty:hover { text-decoration: none; } + +a.button { margin: 0px; -moz-border-radius: 3px; -webkit-border-radius: 3px; color: #363636; cursor: pointer; text-decoration: none; padding: 5px; background-color: #f2f2f2; border: 1px solid #cccccc; border-top: 1px solid #eeeeee; border-left: 1px solid #eeeeee; color: #363636; font-size: 0.95em; font-weight: normal; margin-left: 6px; } +a.button:hover { text-decoration: none; } + +button.button { margin: 0px; -moz-border-radius: 3px; -webkit-border-radius: 3px; color: #363636; cursor: pointer; text-decoration: none; padding: 5px; background-color: #f2f2f2; border: 1px solid #cccccc; border-top: 1px solid #eeeeee; border-left: 1px solid #eeeeee; color: #363636; font-size: 0.95em; font-weight: normal; } +button.button:hover { text-decoration: none; } + +.welcome { width: 66%; margin-top: 36px; margin-left: auto; margin-right: auto; } + +.accountinformation { width: 66%; margin-left: auto; margin-right: auto; } + +.details { margin: 9px; width: 50%; } +.details h3 { margin: 0px; padding: 0px; margin-bottom: 3px; } +.details thead tr th { background-color: #fff; } +.details thead tr th a { color: #363636; cursor: pointer; text-decoration: none; } +.details thead tr th a:hover { text-decoration: underline; } +.details tbody tr.odd td { background-color: #fff; } +.details tbody tr.even td { background-color: #fbfbfb; } +.details tbody tr td.name { font-weight: bold; } + +.searchbox { margin-top: 3px; margin-bottom: 3px; } +.searchbox input { margin: 0px; float: left; padding: 3px; font-size: 1.1em; margin-left: 5px; margin-right: 5px; vertical-align: middle; } + +.paginateButtons { margin: 5px; padding: 5px; } +.paginateButtons a { color: #363636; cursor: pointer; text-decoration: none; } +.paginateButtons a:hover { text-decoration: underline; } + +.prevLink { margin: 5px; padding: 5px; padding-left: 24px; background-repeat: no-repeat; background-position: left center; background-image: url('icons/arrow_left.png'); } + +.nextLink { margin: 5px; padding: 5px; padding-right: 24px; background-repeat: no-repeat; background-position: right center; background-image: url('icons/arrow_right.png'); } + +.step { margin: 5px; padding: 5px; } + +.currentStep { margin: 5px; padding: 5px; font-weight: bold; } + +.cleanlist ul { list-style-type: none; } +.cleanlist ul li { list-style-type: none; } + +#hd { display: block; } + +#bd { margin: 0px; width: 99%; padding: 5px 0 0 10px; } + +#ft { margin: 0px; } diff --git a/web-app/css/print.css b/src/css/print.css similarity index 100% rename from web-app/css/print.css rename to src/css/print.css diff --git a/src/css/prototype/bubble.png b/src/css/prototype/bubble.png new file mode 100644 index 0000000..9c7e605 Binary files /dev/null and b/src/css/prototype/bubble.png differ diff --git a/src/css/prototype/growl-style.css b/src/css/prototype/growl-style.css new file mode 100644 index 0000000..bae14b9 --- /dev/null +++ b/src/css/prototype/growl-style.css @@ -0,0 +1,24 @@ +.growl-alert{ /*A growl Alert*/ + background: black; + color: white; + padding: 10px; + width: 230px; + margin-bottom: 30px; + min-height: 40px; + right: 30px; + border: solid 2px transparent; +} +.growl-alert-hover{border: solid 2px #BFBFBF} +.growl-keeper{ /*The container that has all the Growl alerts in it*/ + position: absolute; + top: 30px; + right: 30px; +} +.growl-icon{ /*The icon that shows up with the alerts*/ + margin-right: 5px; + float: left; +} +.growl-text{ /*The text of the update*/ + margin-top: 3px; + letter-spacing: 0px; +} \ No newline at end of file diff --git a/src/css/prototype/tooltip.css b/src/css/prototype/tooltip.css new file mode 100644 index 0000000..115a49f --- /dev/null +++ b/src/css/prototype/tooltip.css @@ -0,0 +1,6 @@ +/* Tooltips CSS definitions */ + +.tip { color: #fff; width: 250px; z-index: 13000; } +.tip-title { font-weight: bold; font-size: 11px; margin: 0; color: #9FD4FF; padding: 8px 8px 4px; background: url(bubble.png) top left; } +.tip-text { font-size: 11px; padding: 4px 8px 8px; background: url(bubble.png) bottom right; } + diff --git a/src/groovy/grails/plugins/nimble/js/JQueryProvider.groovy b/src/groovy/grails/plugins/nimble/js/JQueryProvider.groovy new file mode 100644 index 0000000..f8528db --- /dev/null +++ b/src/groovy/grails/plugins/nimble/js/JQueryProvider.groovy @@ -0,0 +1,178 @@ +/* + * Copyright 2007-2009 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package grails.plugins.nimble.js + +import org.codehaus.groovy.grails.plugins.web.taglib.JavascriptProvider + +/** + * @author Sergey Nebolsin (nebolsin@prophotos.ru) + * @author Finn Herpich (finn.herpich marfinn-software de) + */ +class JQueryProvider implements JavascriptProvider { + /** + * doRemoteFunction creates a jQuery-AJAX-Call + * + * @param taglib + * @param attrs + * @param out + * + * @return the jQuery-like formatted code for an AJAX-request + */ + def doRemoteFunction(taglib, attrs, out) { + // Optional, onLoad + if(attrs.onLoading) + out << "${attrs.onLoading};" + + // Start ajax + out << /jQuery.ajax({/ + + // Method + def method = (attrs.method ? attrs.remove('method') : 'POST') + out << "type:'$method'" + + // Optional, synchron call + if("false" == attrs.asynchronous) { + out << ",async:false" + attrs.remove('asynchronous') + } + + // Optional, dataType to use + if(attrs.dataType) + out << ",dataType:'${attrs.remove('dataType')}'" + + // Additional attributes + if(attrs.params || attrs.jsParams) { + if(!(attrs?.params instanceof Map)) { + // tags like remoteField don't deliver a map + out << ",data:${attrs.remove('params')}" + } else { + out << ",data:{" + + def hasParams = false + + if(attrs?.params instanceof Map) { + hasParams = true + out << attrs.remove('params').collect { k, v -> + "\'" + + "${k}".encodeAsJavaScript() + + "\': \'" + + "${v}".encodeAsJavaScript() + + "\'" + }.join(",") + } + + if(attrs?.jsParams instanceof Map) { + if(hasParams) + out << "," + + out << attrs.remove('jsParams').collect { k, v -> + "\'" + + "${k}".encodeAsJavaScript() + + "\': \'" + + "${v}".encodeAsJavaScript() + + "\'" + }.join(",") + } + + out << "}" + } + } + + // build url + def url = attrs.url ? taglib.createLink(attrs.remove('url')) : taglib.createLink(attrs); + out << ", url:'${url}'" + + // Add callback + buildCallback(attrs, out) + + // find all onX callback events + def callbacks = attrs.findAll { k, v -> + k ==~ /on(\p{Upper}|\d){1}\w+/ + } + + // remove all onX callback events + callbacks.each { k, v -> + attrs.remove(k) + } + + out << "});" + + // Yeah, I know, return is not needed, but I like it + return out + } + + /** + * Helper method to create callback object + * + * @param attrs Attributes to use for the callback + * @param out Variable to attache the output + */ + def buildCallback(attrs, out) { + // TODO check for strlen + if(out) + out << ',' + + //*** success + out << 'success:function(data,textStatus){' + + if(attrs.onLoaded) + out << "${attrs.onLoaded};" + + if(attrs.update instanceof Map) { + if(attrs.update?.success) { + out << "jQuery('#${attrs.update.success}').html(data);" + } + } else if(attrs.update) { + out << "jQuery('#${attrs.update}').html(data);" + } + + if(attrs.onSuccess) + out << "${attrs.onSuccess};" + + out << '}' + + //*** failure + out << ',error:function(XMLHttpRequest,textStatus,errorThrown){' + + if (attrs.update instanceof Map) { + if (attrs.update?.failure) { + out << "jQuery('#${attrs.update?.failure}').html(textStatus);" + } + } + + if (attrs.onFailure) + out << "${attrs.onFailure};" + + out << '}' + + if(attrs.onComplete) + out << ",complete:function(XMLHttpRequest,textStatus){${attrs.onComplete}}" + } + + /** + * Serializes the surrounding form. + * + * @param attrs attrs.params to serialize + */ + def prepareAjaxForm(attrs) { + // Fix for http://jira.codehaus.org/browse/GRAILSPLUGINS-1865 + if(attrs.forSubmitTag) + attrs.params = "jQuery(this).parents('form:first').serialize()".toString() + else + attrs.params = "jQuery(this).serialize()".toString() + } +} \ No newline at end of file diff --git a/src/groovy/grails/plugins/nimble/js/MootoolsProvider.groovy b/src/groovy/grails/plugins/nimble/js/MootoolsProvider.groovy new file mode 100644 index 0000000..a4abd1c --- /dev/null +++ b/src/groovy/grails/plugins/nimble/js/MootoolsProvider.groovy @@ -0,0 +1,150 @@ +package grails.plugins.nimble.js + +import org.codehaus.groovy.grails.plugins.web.taglib.JavascriptProvider +import org.codehaus.groovy.grails.plugins.web.taglib.JavascriptValue +/** + * An implementation for the Mootools javascript library + * + * @author Ford Guo + */ +class MootoolsProvider implements JavascriptProvider { + + //TODO how to process the onLoaded event?? + def doRemoteFunction(taglib,attrs, out) { + if(attrs.onLoading) { + out << "${attrs.remove('onLoading')};" + } + out << "new Request.HTML({" + def url + def jsParams = attrs.params?.findAll { it.value instanceof JavascriptValue } + + jsParams?.each { attrs.params?.remove(it.key) } + + if(attrs.url) { + url = taglib.createLink(attrs.url) + } else { + url = taglib.createLink(attrs) + } + + if(!attrs.params) attrs.params = [:] + jsParams?.each { attrs.params[it.key] = it.value } + + def i = url?.indexOf('?') + out<<"url:'" + if(i >-1) { + if(attrs.params instanceof String) { + attrs.params += "+'&${url[i+1..-1].encodeAsJavaScript()}'" + }else if(attrs.params instanceof Map) { + def params = createQueryString(attrs.params) + attrs.params = "'${params}${params ? '&' : ''}${url[i+1..-1].encodeAsJavaScript()}'" + } else { + attrs.params = "'${url[i+1..-1].encodeAsJavaScript()}'" + } + out << url[0..i-1] + } else { + out << url + } + out << "'" + + if(attrs.update) { + out << ",update:'" + out <<(attrs.update instanceof Map ? attrs.update.success : attrs.update) + out << "'" + } + if(attrs.onSuccess) { + out << ",onSuccess: function(responseText, responseXML) {${attrs.remove('onSuccess')};}" + } + if(attrs.onComplete) { + out << ",onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript){${attrs.remove('onComplete')};}" + } + if(attrs.onFailure || + (attrs.update instanceof Map && attrs.update.failure )) { + out << ",onFailure: function(xmlHttpRequest){" + if (attrs.onFailure) { + out << "${attrs.remove('onFailure')} ;" + } + if (attrs.update instanceof Map && attrs.update.failure) { + out << "\$('" <<(attrs.update.failure)<<"').set('text',xmlHttpRequest.responseText) ;" + } + out<< "}" + } + attrs.remove("update") + + // process options + out << getAjaxOptions(attrs) + // close + out << "}).send();" + attrs.remove('params') + } + + private String createQueryString(params) { + def allParams = [] + for (entry in params) { + def value = entry.value + def key = entry.key + if (value instanceof JavascriptValue) { + allParams << "${key.encodeAsURL()}='+${value.value}+'" + }else { + allParams << "${key.encodeAsURL()}=${value.encodeAsURL()}".encodeAsJavaScript() + } + } + if(allParams.size() == 1) { + return allParams[0] + }else { + return allParams.join('&') + } + } + + // helper function to build ajax options + def getAjaxOptions(options) { + def ajaxOptions = [] + + // necessary defaults + def optionsAttr = options.remove('options') + def async = optionsAttr?.remove('asynchronous') + if( async != null) + ajaxOptions << "async:${async}" + else + ajaxOptions << "async:true" + + def eval = optionsAttr?.remove('evalScripts') + if(eval != null) + ajaxOptions << "evalScripts:${eval}" + else + ajaxOptions << "evalScripts:true" + + def method = optionsAttr?.remove('mothod') + if(method != null) + ajaxOptions << "method:'${method}'" + else + ajaxOptions << "method:'post'" + + if(options) { + if(options.params) { + def params = options.remove('params') + if (params instanceof Map) { + params = createQueryString(params) + } + ajaxOptions << "data:${params}" + } + } + // remaining options + optionsAttr?.each { k, v -> + if(k!='url') { + switch(v) { + case 'true': ajaxOptions << "${k}:${v}"; break; + case 'false': ajaxOptions << "${k}:${v}"; break; + case ~/\s*function(\w*)\s*/: ajaxOptions << "${k}:${v}"; break; + default:ajaxOptions << "${k}:'${v}'"; break; + } + } + } + + return ",${ajaxOptions.join(',')}" + } + + def prepareAjaxForm(attrs) { + if(!attrs.forSubmitTag) attrs.forSubmitTag = "" + attrs.params = "\$(this${attrs.remove('forSubmitTag')})" + } +} diff --git a/web-app/images/favicon.ico b/src/images/favicon.ico similarity index 100% rename from web-app/images/favicon.ico rename to src/images/favicon.ico diff --git a/web-app/images/grails_logo.jpg b/src/images/grails_logo.jpg similarity index 100% rename from web-app/images/grails_logo.jpg rename to src/images/grails_logo.jpg diff --git a/web-app/images/grails_logo.png b/src/images/grails_logo.png similarity index 100% rename from web-app/images/grails_logo.png rename to src/images/grails_logo.png diff --git a/web-app/images/leftnav_btm.png b/src/images/leftnav_btm.png similarity index 100% rename from web-app/images/leftnav_btm.png rename to src/images/leftnav_btm.png diff --git a/web-app/images/leftnav_midstretch.png b/src/images/leftnav_midstretch.png similarity index 100% rename from web-app/images/leftnav_midstretch.png rename to src/images/leftnav_midstretch.png diff --git a/web-app/images/leftnav_top.png b/src/images/leftnav_top.png similarity index 100% rename from web-app/images/leftnav_top.png rename to src/images/leftnav_top.png diff --git a/web-app/images/loginbg.jpg b/src/images/loginbg.jpg similarity index 100% rename from web-app/images/loginbg.jpg rename to src/images/loginbg.jpg diff --git a/web-app/images/loginbg.png b/src/images/loginbg.png similarity index 100% rename from web-app/images/loginbg.png rename to src/images/loginbg.png diff --git a/web-app/images/silhouette.png b/src/images/silhouette.png similarity index 100% rename from web-app/images/silhouette.png rename to src/images/silhouette.png diff --git a/web-app/images/skin/database_add.png b/src/images/skin/database_add.png similarity index 100% rename from web-app/images/skin/database_add.png rename to src/images/skin/database_add.png diff --git a/web-app/images/skin/database_delete.png b/src/images/skin/database_delete.png similarity index 100% rename from web-app/images/skin/database_delete.png rename to src/images/skin/database_delete.png diff --git a/web-app/images/skin/database_edit.png b/src/images/skin/database_edit.png similarity index 100% rename from web-app/images/skin/database_edit.png rename to src/images/skin/database_edit.png diff --git a/web-app/images/skin/database_save.png b/src/images/skin/database_save.png similarity index 100% rename from web-app/images/skin/database_save.png rename to src/images/skin/database_save.png diff --git a/web-app/images/skin/database_table.png b/src/images/skin/database_table.png similarity index 100% rename from web-app/images/skin/database_table.png rename to src/images/skin/database_table.png diff --git a/web-app/images/skin/exclamation.png b/src/images/skin/exclamation.png similarity index 100% rename from web-app/images/skin/exclamation.png rename to src/images/skin/exclamation.png diff --git a/web-app/images/skin/house.png b/src/images/skin/house.png similarity index 100% rename from web-app/images/skin/house.png rename to src/images/skin/house.png diff --git a/web-app/images/skin/information.png b/src/images/skin/information.png similarity index 100% rename from web-app/images/skin/information.png rename to src/images/skin/information.png diff --git a/web-app/images/skin/shadow.jpg b/src/images/skin/shadow.jpg similarity index 100% rename from web-app/images/skin/shadow.jpg rename to src/images/skin/shadow.jpg diff --git a/web-app/images/skin/sorted_asc.gif b/src/images/skin/sorted_asc.gif similarity index 100% rename from web-app/images/skin/sorted_asc.gif rename to src/images/skin/sorted_asc.gif diff --git a/web-app/images/skin/sorted_desc.gif b/src/images/skin/sorted_desc.gif similarity index 100% rename from web-app/images/skin/sorted_desc.gif rename to src/images/skin/sorted_desc.gif diff --git a/web-app/images/social/.DS_Store b/src/images/social/.DS_Store similarity index 100% rename from web-app/images/social/.DS_Store rename to src/images/social/.DS_Store diff --git a/web-app/images/social/128/blogger.png b/src/images/social/128/blogger.png similarity index 100% rename from web-app/images/social/128/blogger.png rename to src/images/social/128/blogger.png diff --git a/web-app/images/social/128/delicious.png b/src/images/social/128/delicious.png similarity index 100% rename from web-app/images/social/128/delicious.png rename to src/images/social/128/delicious.png diff --git a/web-app/images/social/128/digg.png b/src/images/social/128/digg.png similarity index 100% rename from web-app/images/social/128/digg.png rename to src/images/social/128/digg.png diff --git a/web-app/images/social/128/facebook.png b/src/images/social/128/facebook.png similarity index 100% rename from web-app/images/social/128/facebook.png rename to src/images/social/128/facebook.png diff --git a/web-app/images/social/128/feed.png b/src/images/social/128/feed.png similarity index 100% rename from web-app/images/social/128/feed.png rename to src/images/social/128/feed.png diff --git a/web-app/images/social/128/flickr.png b/src/images/social/128/flickr.png similarity index 100% rename from web-app/images/social/128/flickr.png rename to src/images/social/128/flickr.png diff --git a/web-app/images/social/128/friendfeed.png b/src/images/social/128/friendfeed.png similarity index 100% rename from web-app/images/social/128/friendfeed.png rename to src/images/social/128/friendfeed.png diff --git a/web-app/images/social/128/friendster.png b/src/images/social/128/friendster.png similarity index 100% rename from web-app/images/social/128/friendster.png rename to src/images/social/128/friendster.png diff --git a/web-app/images/social/128/furl.png b/src/images/social/128/furl.png similarity index 100% rename from web-app/images/social/128/furl.png rename to src/images/social/128/furl.png diff --git a/web-app/images/social/128/google.png b/src/images/social/128/google.png similarity index 100% rename from web-app/images/social/128/google.png rename to src/images/social/128/google.png diff --git a/web-app/images/social/128/lastfm.png b/src/images/social/128/lastfm.png similarity index 100% rename from web-app/images/social/128/lastfm.png rename to src/images/social/128/lastfm.png diff --git a/web-app/images/social/128/linkedin.png b/src/images/social/128/linkedin.png similarity index 100% rename from web-app/images/social/128/linkedin.png rename to src/images/social/128/linkedin.png diff --git a/web-app/images/social/128/livejournal.png b/src/images/social/128/livejournal.png similarity index 100% rename from web-app/images/social/128/livejournal.png rename to src/images/social/128/livejournal.png diff --git a/web-app/images/social/128/magnolia.png b/src/images/social/128/magnolia.png similarity index 100% rename from web-app/images/social/128/magnolia.png rename to src/images/social/128/magnolia.png diff --git a/web-app/images/social/128/mixx.png b/src/images/social/128/mixx.png similarity index 100% rename from web-app/images/social/128/mixx.png rename to src/images/social/128/mixx.png diff --git a/web-app/images/social/128/myspace.png b/src/images/social/128/myspace.png similarity index 100% rename from web-app/images/social/128/myspace.png rename to src/images/social/128/myspace.png diff --git a/web-app/images/social/128/netvibes.png b/src/images/social/128/netvibes.png similarity index 100% rename from web-app/images/social/128/netvibes.png rename to src/images/social/128/netvibes.png diff --git a/web-app/images/social/128/newsvine.png b/src/images/social/128/newsvine.png similarity index 100% rename from web-app/images/social/128/newsvine.png rename to src/images/social/128/newsvine.png diff --git a/web-app/images/social/128/openid.png b/src/images/social/128/openid.png similarity index 100% rename from web-app/images/social/128/openid.png rename to src/images/social/128/openid.png diff --git a/web-app/images/social/128/picasa.png b/src/images/social/128/picasa.png similarity index 100% rename from web-app/images/social/128/picasa.png rename to src/images/social/128/picasa.png diff --git a/web-app/images/social/128/pownce.png b/src/images/social/128/pownce.png similarity index 100% rename from web-app/images/social/128/pownce.png rename to src/images/social/128/pownce.png diff --git a/web-app/images/social/128/reddit.png b/src/images/social/128/reddit.png similarity index 100% rename from web-app/images/social/128/reddit.png rename to src/images/social/128/reddit.png diff --git a/web-app/images/social/128/stumbleupon.png b/src/images/social/128/stumbleupon.png similarity index 100% rename from web-app/images/social/128/stumbleupon.png rename to src/images/social/128/stumbleupon.png diff --git a/web-app/images/social/128/technorati.png b/src/images/social/128/technorati.png similarity index 100% rename from web-app/images/social/128/technorati.png rename to src/images/social/128/technorati.png diff --git a/web-app/images/social/128/twitter.png b/src/images/social/128/twitter.png similarity index 100% rename from web-app/images/social/128/twitter.png rename to src/images/social/128/twitter.png diff --git a/web-app/images/social/128/vimeo.png b/src/images/social/128/vimeo.png similarity index 100% rename from web-app/images/social/128/vimeo.png rename to src/images/social/128/vimeo.png diff --git a/web-app/images/social/128/webshots.png b/src/images/social/128/webshots.png similarity index 100% rename from web-app/images/social/128/webshots.png rename to src/images/social/128/webshots.png diff --git a/web-app/images/social/128/wordpress.png b/src/images/social/128/wordpress.png similarity index 100% rename from web-app/images/social/128/wordpress.png rename to src/images/social/128/wordpress.png diff --git a/web-app/images/social/128/yahoo.png b/src/images/social/128/yahoo.png similarity index 100% rename from web-app/images/social/128/yahoo.png rename to src/images/social/128/yahoo.png diff --git a/web-app/images/social/128/yelp.png b/src/images/social/128/yelp.png similarity index 100% rename from web-app/images/social/128/yelp.png rename to src/images/social/128/yelp.png diff --git a/web-app/images/social/128/youtube.png b/src/images/social/128/youtube.png similarity index 100% rename from web-app/images/social/128/youtube.png rename to src/images/social/128/youtube.png diff --git a/web-app/images/social/16/blogger.png b/src/images/social/16/blogger.png similarity index 100% rename from web-app/images/social/16/blogger.png rename to src/images/social/16/blogger.png diff --git a/web-app/images/social/16/delicious.png b/src/images/social/16/delicious.png similarity index 100% rename from web-app/images/social/16/delicious.png rename to src/images/social/16/delicious.png diff --git a/web-app/images/social/16/digg.png b/src/images/social/16/digg.png similarity index 100% rename from web-app/images/social/16/digg.png rename to src/images/social/16/digg.png diff --git a/web-app/images/social/16/facebook.png b/src/images/social/16/facebook.png similarity index 100% rename from web-app/images/social/16/facebook.png rename to src/images/social/16/facebook.png diff --git a/web-app/images/social/16/feed.png b/src/images/social/16/feed.png similarity index 100% rename from web-app/images/social/16/feed.png rename to src/images/social/16/feed.png diff --git a/web-app/images/social/16/flickr.png b/src/images/social/16/flickr.png similarity index 100% rename from web-app/images/social/16/flickr.png rename to src/images/social/16/flickr.png diff --git a/web-app/images/social/16/friendfeed.png b/src/images/social/16/friendfeed.png similarity index 100% rename from web-app/images/social/16/friendfeed.png rename to src/images/social/16/friendfeed.png diff --git a/web-app/images/social/16/friendster.png b/src/images/social/16/friendster.png similarity index 100% rename from web-app/images/social/16/friendster.png rename to src/images/social/16/friendster.png diff --git a/web-app/images/social/16/furl.png b/src/images/social/16/furl.png similarity index 100% rename from web-app/images/social/16/furl.png rename to src/images/social/16/furl.png diff --git a/web-app/images/social/16/google.png b/src/images/social/16/google.png similarity index 100% rename from web-app/images/social/16/google.png rename to src/images/social/16/google.png diff --git a/web-app/images/social/16/lastfm.png b/src/images/social/16/lastfm.png similarity index 100% rename from web-app/images/social/16/lastfm.png rename to src/images/social/16/lastfm.png diff --git a/web-app/images/social/16/linkedin.png b/src/images/social/16/linkedin.png similarity index 100% rename from web-app/images/social/16/linkedin.png rename to src/images/social/16/linkedin.png diff --git a/web-app/images/social/16/livejournal.png b/src/images/social/16/livejournal.png similarity index 100% rename from web-app/images/social/16/livejournal.png rename to src/images/social/16/livejournal.png diff --git a/web-app/images/social/16/magnolia.png b/src/images/social/16/magnolia.png similarity index 100% rename from web-app/images/social/16/magnolia.png rename to src/images/social/16/magnolia.png diff --git a/web-app/images/social/16/mixx.png b/src/images/social/16/mixx.png similarity index 100% rename from web-app/images/social/16/mixx.png rename to src/images/social/16/mixx.png diff --git a/web-app/images/social/16/myspace.png b/src/images/social/16/myspace.png similarity index 100% rename from web-app/images/social/16/myspace.png rename to src/images/social/16/myspace.png diff --git a/web-app/images/social/16/netvibes.png b/src/images/social/16/netvibes.png similarity index 100% rename from web-app/images/social/16/netvibes.png rename to src/images/social/16/netvibes.png diff --git a/web-app/images/social/16/newsvine.png b/src/images/social/16/newsvine.png similarity index 100% rename from web-app/images/social/16/newsvine.png rename to src/images/social/16/newsvine.png diff --git a/web-app/images/social/16/openid.png b/src/images/social/16/openid.png similarity index 100% rename from web-app/images/social/16/openid.png rename to src/images/social/16/openid.png diff --git a/web-app/images/social/16/picasa.png b/src/images/social/16/picasa.png similarity index 100% rename from web-app/images/social/16/picasa.png rename to src/images/social/16/picasa.png diff --git a/web-app/images/social/16/pownce.png b/src/images/social/16/pownce.png similarity index 100% rename from web-app/images/social/16/pownce.png rename to src/images/social/16/pownce.png diff --git a/web-app/images/social/16/reddit.png b/src/images/social/16/reddit.png similarity index 100% rename from web-app/images/social/16/reddit.png rename to src/images/social/16/reddit.png diff --git a/web-app/images/social/16/stumbleupon.png b/src/images/social/16/stumbleupon.png similarity index 100% rename from web-app/images/social/16/stumbleupon.png rename to src/images/social/16/stumbleupon.png diff --git a/web-app/images/social/16/technorati.png b/src/images/social/16/technorati.png similarity index 100% rename from web-app/images/social/16/technorati.png rename to src/images/social/16/technorati.png diff --git a/web-app/images/social/16/twitter.png b/src/images/social/16/twitter.png similarity index 100% rename from web-app/images/social/16/twitter.png rename to src/images/social/16/twitter.png diff --git a/web-app/images/social/16/vimeo.png b/src/images/social/16/vimeo.png similarity index 100% rename from web-app/images/social/16/vimeo.png rename to src/images/social/16/vimeo.png diff --git a/web-app/images/social/16/webshots.png b/src/images/social/16/webshots.png similarity index 100% rename from web-app/images/social/16/webshots.png rename to src/images/social/16/webshots.png diff --git a/web-app/images/social/16/wordpress.png b/src/images/social/16/wordpress.png similarity index 100% rename from web-app/images/social/16/wordpress.png rename to src/images/social/16/wordpress.png diff --git a/web-app/images/social/16/yahoo.png b/src/images/social/16/yahoo.png similarity index 100% rename from web-app/images/social/16/yahoo.png rename to src/images/social/16/yahoo.png diff --git a/web-app/images/social/16/yelp.png b/src/images/social/16/yelp.png similarity index 100% rename from web-app/images/social/16/yelp.png rename to src/images/social/16/yelp.png diff --git a/web-app/images/social/16/youtube.png b/src/images/social/16/youtube.png similarity index 100% rename from web-app/images/social/16/youtube.png rename to src/images/social/16/youtube.png diff --git a/web-app/images/social/24/.DS_Store b/src/images/social/24/.DS_Store similarity index 100% rename from web-app/images/social/24/.DS_Store rename to src/images/social/24/.DS_Store diff --git a/web-app/images/social/24/blogger.png b/src/images/social/24/blogger.png similarity index 100% rename from web-app/images/social/24/blogger.png rename to src/images/social/24/blogger.png diff --git a/web-app/images/social/24/delicious.png b/src/images/social/24/delicious.png similarity index 100% rename from web-app/images/social/24/delicious.png rename to src/images/social/24/delicious.png diff --git a/web-app/images/social/24/digg.png b/src/images/social/24/digg.png similarity index 100% rename from web-app/images/social/24/digg.png rename to src/images/social/24/digg.png diff --git a/web-app/images/social/24/facebook.png b/src/images/social/24/facebook.png similarity index 100% rename from web-app/images/social/24/facebook.png rename to src/images/social/24/facebook.png diff --git a/web-app/images/social/24/feed.png b/src/images/social/24/feed.png similarity index 100% rename from web-app/images/social/24/feed.png rename to src/images/social/24/feed.png diff --git a/web-app/images/social/24/flickr.png b/src/images/social/24/flickr.png similarity index 100% rename from web-app/images/social/24/flickr.png rename to src/images/social/24/flickr.png diff --git a/web-app/images/social/24/friendfeed.png b/src/images/social/24/friendfeed.png similarity index 100% rename from web-app/images/social/24/friendfeed.png rename to src/images/social/24/friendfeed.png diff --git a/web-app/images/social/24/friendster.png b/src/images/social/24/friendster.png similarity index 100% rename from web-app/images/social/24/friendster.png rename to src/images/social/24/friendster.png diff --git a/web-app/images/social/24/furl.png b/src/images/social/24/furl.png similarity index 100% rename from web-app/images/social/24/furl.png rename to src/images/social/24/furl.png diff --git a/web-app/images/social/24/google.png b/src/images/social/24/google.png similarity index 100% rename from web-app/images/social/24/google.png rename to src/images/social/24/google.png diff --git a/web-app/images/social/24/lastfm.png b/src/images/social/24/lastfm.png similarity index 100% rename from web-app/images/social/24/lastfm.png rename to src/images/social/24/lastfm.png diff --git a/web-app/images/social/24/linkedin.png b/src/images/social/24/linkedin.png similarity index 100% rename from web-app/images/social/24/linkedin.png rename to src/images/social/24/linkedin.png diff --git a/web-app/images/social/24/livejournal.png b/src/images/social/24/livejournal.png similarity index 100% rename from web-app/images/social/24/livejournal.png rename to src/images/social/24/livejournal.png diff --git a/web-app/images/social/24/magnolia.png b/src/images/social/24/magnolia.png similarity index 100% rename from web-app/images/social/24/magnolia.png rename to src/images/social/24/magnolia.png diff --git a/web-app/images/social/24/mixx.png b/src/images/social/24/mixx.png similarity index 100% rename from web-app/images/social/24/mixx.png rename to src/images/social/24/mixx.png diff --git a/web-app/images/social/24/myspace.png b/src/images/social/24/myspace.png similarity index 100% rename from web-app/images/social/24/myspace.png rename to src/images/social/24/myspace.png diff --git a/web-app/images/social/24/netvibes.png b/src/images/social/24/netvibes.png similarity index 100% rename from web-app/images/social/24/netvibes.png rename to src/images/social/24/netvibes.png diff --git a/web-app/images/social/24/newsvine.png b/src/images/social/24/newsvine.png similarity index 100% rename from web-app/images/social/24/newsvine.png rename to src/images/social/24/newsvine.png diff --git a/web-app/images/social/24/openid.png b/src/images/social/24/openid.png similarity index 100% rename from web-app/images/social/24/openid.png rename to src/images/social/24/openid.png diff --git a/web-app/images/social/24/picasa.png b/src/images/social/24/picasa.png similarity index 100% rename from web-app/images/social/24/picasa.png rename to src/images/social/24/picasa.png diff --git a/web-app/images/social/24/pownce.png b/src/images/social/24/pownce.png similarity index 100% rename from web-app/images/social/24/pownce.png rename to src/images/social/24/pownce.png diff --git a/web-app/images/social/24/reddit.png b/src/images/social/24/reddit.png similarity index 100% rename from web-app/images/social/24/reddit.png rename to src/images/social/24/reddit.png diff --git a/web-app/images/social/24/stumbleupon.png b/src/images/social/24/stumbleupon.png similarity index 100% rename from web-app/images/social/24/stumbleupon.png rename to src/images/social/24/stumbleupon.png diff --git a/web-app/images/social/24/technorati.png b/src/images/social/24/technorati.png similarity index 100% rename from web-app/images/social/24/technorati.png rename to src/images/social/24/technorati.png diff --git a/web-app/images/social/24/twitter.png b/src/images/social/24/twitter.png similarity index 100% rename from web-app/images/social/24/twitter.png rename to src/images/social/24/twitter.png diff --git a/web-app/images/social/24/vimeo.png b/src/images/social/24/vimeo.png similarity index 100% rename from web-app/images/social/24/vimeo.png rename to src/images/social/24/vimeo.png diff --git a/web-app/images/social/24/webshots.png b/src/images/social/24/webshots.png similarity index 100% rename from web-app/images/social/24/webshots.png rename to src/images/social/24/webshots.png diff --git a/web-app/images/social/24/wordpress.png b/src/images/social/24/wordpress.png similarity index 100% rename from web-app/images/social/24/wordpress.png rename to src/images/social/24/wordpress.png diff --git a/web-app/images/social/24/yahoo.png b/src/images/social/24/yahoo.png similarity index 100% rename from web-app/images/social/24/yahoo.png rename to src/images/social/24/yahoo.png diff --git a/web-app/images/social/24/yelp.png b/src/images/social/24/yelp.png similarity index 100% rename from web-app/images/social/24/yelp.png rename to src/images/social/24/yelp.png diff --git a/web-app/images/social/24/youtube.png b/src/images/social/24/youtube.png similarity index 100% rename from web-app/images/social/24/youtube.png rename to src/images/social/24/youtube.png diff --git a/web-app/images/social/32/blogger.png b/src/images/social/32/blogger.png similarity index 100% rename from web-app/images/social/32/blogger.png rename to src/images/social/32/blogger.png diff --git a/web-app/images/social/32/delicious.png b/src/images/social/32/delicious.png similarity index 100% rename from web-app/images/social/32/delicious.png rename to src/images/social/32/delicious.png diff --git a/web-app/images/social/32/digg.png b/src/images/social/32/digg.png similarity index 100% rename from web-app/images/social/32/digg.png rename to src/images/social/32/digg.png diff --git a/web-app/images/social/32/facebook.png b/src/images/social/32/facebook.png similarity index 100% rename from web-app/images/social/32/facebook.png rename to src/images/social/32/facebook.png diff --git a/web-app/images/social/32/feed.png b/src/images/social/32/feed.png similarity index 100% rename from web-app/images/social/32/feed.png rename to src/images/social/32/feed.png diff --git a/web-app/images/social/32/flickr.png b/src/images/social/32/flickr.png similarity index 100% rename from web-app/images/social/32/flickr.png rename to src/images/social/32/flickr.png diff --git a/web-app/images/social/32/friendfeed.png b/src/images/social/32/friendfeed.png similarity index 100% rename from web-app/images/social/32/friendfeed.png rename to src/images/social/32/friendfeed.png diff --git a/web-app/images/social/32/friendster.png b/src/images/social/32/friendster.png similarity index 100% rename from web-app/images/social/32/friendster.png rename to src/images/social/32/friendster.png diff --git a/web-app/images/social/32/furl.png b/src/images/social/32/furl.png similarity index 100% rename from web-app/images/social/32/furl.png rename to src/images/social/32/furl.png diff --git a/web-app/images/social/32/google.png b/src/images/social/32/google.png similarity index 100% rename from web-app/images/social/32/google.png rename to src/images/social/32/google.png diff --git a/web-app/images/social/32/lastfm.png b/src/images/social/32/lastfm.png similarity index 100% rename from web-app/images/social/32/lastfm.png rename to src/images/social/32/lastfm.png diff --git a/web-app/images/social/32/linkedin.png b/src/images/social/32/linkedin.png similarity index 100% rename from web-app/images/social/32/linkedin.png rename to src/images/social/32/linkedin.png diff --git a/web-app/images/social/32/livejournal.png b/src/images/social/32/livejournal.png similarity index 100% rename from web-app/images/social/32/livejournal.png rename to src/images/social/32/livejournal.png diff --git a/web-app/images/social/32/magnolia.png b/src/images/social/32/magnolia.png similarity index 100% rename from web-app/images/social/32/magnolia.png rename to src/images/social/32/magnolia.png diff --git a/web-app/images/social/32/mixx.png b/src/images/social/32/mixx.png similarity index 100% rename from web-app/images/social/32/mixx.png rename to src/images/social/32/mixx.png diff --git a/web-app/images/social/32/myspace.png b/src/images/social/32/myspace.png similarity index 100% rename from web-app/images/social/32/myspace.png rename to src/images/social/32/myspace.png diff --git a/web-app/images/social/32/netvibes.png b/src/images/social/32/netvibes.png similarity index 100% rename from web-app/images/social/32/netvibes.png rename to src/images/social/32/netvibes.png diff --git a/web-app/images/social/32/newsvine.png b/src/images/social/32/newsvine.png similarity index 100% rename from web-app/images/social/32/newsvine.png rename to src/images/social/32/newsvine.png diff --git a/web-app/images/social/32/openid.png b/src/images/social/32/openid.png similarity index 100% rename from web-app/images/social/32/openid.png rename to src/images/social/32/openid.png diff --git a/web-app/images/social/32/picasa.png b/src/images/social/32/picasa.png similarity index 100% rename from web-app/images/social/32/picasa.png rename to src/images/social/32/picasa.png diff --git a/web-app/images/social/32/pownce.png b/src/images/social/32/pownce.png similarity index 100% rename from web-app/images/social/32/pownce.png rename to src/images/social/32/pownce.png diff --git a/web-app/images/social/32/reddit.png b/src/images/social/32/reddit.png similarity index 100% rename from web-app/images/social/32/reddit.png rename to src/images/social/32/reddit.png diff --git a/web-app/images/social/32/stumbleupon.png b/src/images/social/32/stumbleupon.png similarity index 100% rename from web-app/images/social/32/stumbleupon.png rename to src/images/social/32/stumbleupon.png diff --git a/web-app/images/social/32/technorati.png b/src/images/social/32/technorati.png similarity index 100% rename from web-app/images/social/32/technorati.png rename to src/images/social/32/technorati.png diff --git a/web-app/images/social/32/twitter.png b/src/images/social/32/twitter.png similarity index 100% rename from web-app/images/social/32/twitter.png rename to src/images/social/32/twitter.png diff --git a/web-app/images/social/32/vimeo.png b/src/images/social/32/vimeo.png similarity index 100% rename from web-app/images/social/32/vimeo.png rename to src/images/social/32/vimeo.png diff --git a/web-app/images/social/32/webshots.png b/src/images/social/32/webshots.png similarity index 100% rename from web-app/images/social/32/webshots.png rename to src/images/social/32/webshots.png diff --git a/web-app/images/social/32/wordpress.png b/src/images/social/32/wordpress.png similarity index 100% rename from web-app/images/social/32/wordpress.png rename to src/images/social/32/wordpress.png diff --git a/web-app/images/social/32/yahoo.png b/src/images/social/32/yahoo.png similarity index 100% rename from web-app/images/social/32/yahoo.png rename to src/images/social/32/yahoo.png diff --git a/web-app/images/social/32/yelp.png b/src/images/social/32/yelp.png similarity index 100% rename from web-app/images/social/32/yelp.png rename to src/images/social/32/yelp.png diff --git a/web-app/images/social/32/youtube.png b/src/images/social/32/youtube.png similarity index 100% rename from web-app/images/social/32/youtube.png rename to src/images/social/32/youtube.png diff --git a/web-app/images/social/64/blogger.png b/src/images/social/64/blogger.png similarity index 100% rename from web-app/images/social/64/blogger.png rename to src/images/social/64/blogger.png diff --git a/web-app/images/social/64/delicious.png b/src/images/social/64/delicious.png similarity index 100% rename from web-app/images/social/64/delicious.png rename to src/images/social/64/delicious.png diff --git a/web-app/images/social/64/digg.png b/src/images/social/64/digg.png similarity index 100% rename from web-app/images/social/64/digg.png rename to src/images/social/64/digg.png diff --git a/web-app/images/social/64/facebook.png b/src/images/social/64/facebook.png similarity index 100% rename from web-app/images/social/64/facebook.png rename to src/images/social/64/facebook.png diff --git a/web-app/images/social/64/feed.png b/src/images/social/64/feed.png similarity index 100% rename from web-app/images/social/64/feed.png rename to src/images/social/64/feed.png diff --git a/web-app/images/social/64/flickr.png b/src/images/social/64/flickr.png similarity index 100% rename from web-app/images/social/64/flickr.png rename to src/images/social/64/flickr.png diff --git a/web-app/images/social/64/friendfeed.png b/src/images/social/64/friendfeed.png similarity index 100% rename from web-app/images/social/64/friendfeed.png rename to src/images/social/64/friendfeed.png diff --git a/web-app/images/social/64/friendster.png b/src/images/social/64/friendster.png similarity index 100% rename from web-app/images/social/64/friendster.png rename to src/images/social/64/friendster.png diff --git a/web-app/images/social/64/furl.png b/src/images/social/64/furl.png similarity index 100% rename from web-app/images/social/64/furl.png rename to src/images/social/64/furl.png diff --git a/web-app/images/social/64/google.png b/src/images/social/64/google.png similarity index 100% rename from web-app/images/social/64/google.png rename to src/images/social/64/google.png diff --git a/web-app/images/social/64/lastfm.png b/src/images/social/64/lastfm.png similarity index 100% rename from web-app/images/social/64/lastfm.png rename to src/images/social/64/lastfm.png diff --git a/web-app/images/social/64/linkedin.png b/src/images/social/64/linkedin.png similarity index 100% rename from web-app/images/social/64/linkedin.png rename to src/images/social/64/linkedin.png diff --git a/web-app/images/social/64/livejournal.png b/src/images/social/64/livejournal.png similarity index 100% rename from web-app/images/social/64/livejournal.png rename to src/images/social/64/livejournal.png diff --git a/web-app/images/social/64/magnolia.png b/src/images/social/64/magnolia.png similarity index 100% rename from web-app/images/social/64/magnolia.png rename to src/images/social/64/magnolia.png diff --git a/web-app/images/social/64/mixx.png b/src/images/social/64/mixx.png similarity index 100% rename from web-app/images/social/64/mixx.png rename to src/images/social/64/mixx.png diff --git a/web-app/images/social/64/myspace.png b/src/images/social/64/myspace.png similarity index 100% rename from web-app/images/social/64/myspace.png rename to src/images/social/64/myspace.png diff --git a/web-app/images/social/64/netvibes.png b/src/images/social/64/netvibes.png similarity index 100% rename from web-app/images/social/64/netvibes.png rename to src/images/social/64/netvibes.png diff --git a/web-app/images/social/64/newsvine.png b/src/images/social/64/newsvine.png similarity index 100% rename from web-app/images/social/64/newsvine.png rename to src/images/social/64/newsvine.png diff --git a/web-app/images/social/64/openid.png b/src/images/social/64/openid.png similarity index 100% rename from web-app/images/social/64/openid.png rename to src/images/social/64/openid.png diff --git a/web-app/images/social/64/picasa.png b/src/images/social/64/picasa.png similarity index 100% rename from web-app/images/social/64/picasa.png rename to src/images/social/64/picasa.png diff --git a/web-app/images/social/64/pownce.png b/src/images/social/64/pownce.png similarity index 100% rename from web-app/images/social/64/pownce.png rename to src/images/social/64/pownce.png diff --git a/web-app/images/social/64/reddit.png b/src/images/social/64/reddit.png similarity index 100% rename from web-app/images/social/64/reddit.png rename to src/images/social/64/reddit.png diff --git a/web-app/images/social/64/stumbleupon.png b/src/images/social/64/stumbleupon.png similarity index 100% rename from web-app/images/social/64/stumbleupon.png rename to src/images/social/64/stumbleupon.png diff --git a/web-app/images/social/64/technorati.png b/src/images/social/64/technorati.png similarity index 100% rename from web-app/images/social/64/technorati.png rename to src/images/social/64/technorati.png diff --git a/web-app/images/social/64/twitter.png b/src/images/social/64/twitter.png similarity index 100% rename from web-app/images/social/64/twitter.png rename to src/images/social/64/twitter.png diff --git a/web-app/images/social/64/vimeo.png b/src/images/social/64/vimeo.png similarity index 100% rename from web-app/images/social/64/vimeo.png rename to src/images/social/64/vimeo.png diff --git a/web-app/images/social/64/webshots.png b/src/images/social/64/webshots.png similarity index 100% rename from web-app/images/social/64/webshots.png rename to src/images/social/64/webshots.png diff --git a/web-app/images/social/64/wordpress.png b/src/images/social/64/wordpress.png similarity index 100% rename from web-app/images/social/64/wordpress.png rename to src/images/social/64/wordpress.png diff --git a/web-app/images/social/64/yahoo.png b/src/images/social/64/yahoo.png similarity index 100% rename from web-app/images/social/64/yahoo.png rename to src/images/social/64/yahoo.png diff --git a/web-app/images/social/64/yelp.png b/src/images/social/64/yelp.png similarity index 100% rename from web-app/images/social/64/yelp.png rename to src/images/social/64/yelp.png diff --git a/web-app/images/social/64/youtube.png b/src/images/social/64/youtube.png similarity index 100% rename from web-app/images/social/64/youtube.png rename to src/images/social/64/youtube.png diff --git a/web-app/images/spinner.gif b/src/images/spinner.gif similarity index 100% rename from web-app/images/spinner.gif rename to src/images/spinner.gif diff --git a/web-app/images/springsource.png b/src/images/springsource.png similarity index 100% rename from web-app/images/springsource.png rename to src/images/springsource.png diff --git a/web-app/js/application.js b/src/js/application.js similarity index 100% rename from web-app/js/application.js rename to src/js/application.js diff --git a/web-app/js/excanvas.compiled.js b/src/js/excanvas.min.js similarity index 99% rename from web-app/js/excanvas.compiled.js rename to src/js/excanvas.min.js index a34ca1d..e8bacd3 100644 --- a/web-app/js/excanvas.compiled.js +++ b/src/js/excanvas.min.js @@ -1,3 +1,4 @@ +/*! // Copyright 2006 Google Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -11,6 +12,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. +*/ document.createElement("canvas").getContext||(function(){var s=Math,j=s.round,F=s.sin,G=s.cos,V=s.abs,W=s.sqrt,k=10,v=k/2;function X(){return this.context_||(this.context_=new H(this))}var L=Array.prototype.slice;function Y(b,a){var c=L.call(arguments,2);return function(){return b.apply(a,c.concat(L.call(arguments)))}}var M={init:function(b){if(/MSIE/.test(navigator.userAgent)&&!window.opera){var a=b||document;a.createElement("canvas");a.attachEvent("onreadystatechange",Y(this.init_,this,a))}},init_:function(b){b.namespaces.g_vml_|| b.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml","#default#VML");b.namespaces.g_o_||b.namespaces.add("g_o_","urn:schemas-microsoft-com:office:office","#default#VML");if(!b.styleSheets.ex_canvas_){var a=b.createStyleSheet();a.owningElement.id="ex_canvas_";a.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}g_vml_\\:*{behavior:url(#default#VML)}g_o_\\:*{behavior:url(#default#VML)}"}var c=b.getElementsByTagName("canvas"),d=0;for(;d)[^>]*$|^#([\w-]+)$/, + // Is it a simple selector + isSimple = /^.[^:#\[\.,]*$/; + +jQuery.fn = jQuery.prototype = { + init: function( selector, context ) { + // Make sure that a selection was provided + selector = selector || document; + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this[0] = selector; + this.length = 1; + this.context = selector; + return this; + } + // Handle HTML strings + if ( typeof selector === "string" ) { + // Are we dealing with HTML string or an ID? + var match = quickExpr.exec( selector ); + + // Verify a match, and that no context was specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) + selector = jQuery.clean( [ match[1] ], context ); + + // HANDLE: $("#id") + else { + var elem = document.getElementById( match[3] ); + + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem && elem.id != match[3] ) + return jQuery().find( selector ); + + // Otherwise, we inject the element directly into the jQuery object + var ret = jQuery( elem || [] ); + ret.context = document; + ret.selector = selector; + return ret; + } + + // HANDLE: $(expr, [context]) + // (which is just equivalent to: $(content).find(expr) + } else + return jQuery( context ).find( selector ); + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) + return jQuery( document ).ready( selector ); + + // Make sure that old selector state is passed along + if ( selector.selector && selector.context ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return this.setArray(jQuery.isArray( selector ) ? + selector : + jQuery.makeArray(selector)); + }, + + // Start with an empty selector + selector: "", + + // The current version of jQuery being used + jquery: "1.3.2", + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num === undefined ? + + // Return a 'clean' array + Array.prototype.slice.call( this ) : + + // Return just the object + this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems, name, selector ) { + // Build a new jQuery matched element set + var ret = jQuery( elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) + ret.selector = this.selector + (this.selector ? " " : "") + selector; + else if ( name ) + ret.selector = this.selector + "." + name + "(" + selector + ")"; + + // Return the newly-formed element set + return ret; + }, + + // Force the current matched set of elements to become + // the specified array of elements (destroying the stack in the process) + // You should use pushStack() in order to do this, but maintain the stack + setArray: function( elems ) { + // Resetting the length to 0, then using the native Array push + // is a super-fast way to populate an object with array-like properties + this.length = 0; + Array.prototype.push.apply( this, elems ); + + return this; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem && elem.jquery ? elem[0] : elem + , this ); + }, + + attr: function( name, value, type ) { + var options = name; + + // Look for the case where we're accessing a style value + if ( typeof name === "string" ) + if ( value === undefined ) + return this[0] && jQuery[ type || "attr" ]( this[0], name ); + + else { + options = {}; + options[ name ] = value; + } + + // Check to see if we're setting style values + return this.each(function(i){ + // Set all the styles + for ( name in options ) + jQuery.attr( + type ? + this.style : + this, + name, jQuery.prop( this, options[ name ], type, i, name ) + ); + }); + }, + + css: function( key, value ) { + // ignore negative width and height values + if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 ) + value = undefined; + return this.attr( key, value, "curCSS" ); + }, + + text: function( text ) { + if ( typeof text !== "object" && text != null ) + return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); + + var ret = ""; + + jQuery.each( text || this, function(){ + jQuery.each( this.childNodes, function(){ + if ( this.nodeType != 8 ) + ret += this.nodeType != 1 ? + this.nodeValue : + jQuery.fn.text( [ this ] ); + }); + }); + + return ret; + }, + + wrapAll: function( html ) { + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).clone(); + + if ( this[0].parentNode ) + wrap.insertBefore( this[0] ); + + wrap.map(function(){ + var elem = this; + + while ( elem.firstChild ) + elem = elem.firstChild; + + return elem; + }).append(this); + } + + return this; + }, + + wrapInner: function( html ) { + return this.each(function(){ + jQuery( this ).contents().wrapAll( html ); + }); + }, + + wrap: function( html ) { + return this.each(function(){ + jQuery( this ).wrapAll( html ); + }); + }, + + append: function() { + return this.domManip(arguments, true, function(elem){ + if (this.nodeType == 1) + this.appendChild( elem ); + }); + }, + + prepend: function() { + return this.domManip(arguments, true, function(elem){ + if (this.nodeType == 1) + this.insertBefore( elem, this.firstChild ); + }); + }, + + before: function() { + return this.domManip(arguments, false, function(elem){ + this.parentNode.insertBefore( elem, this ); + }); + }, + + after: function() { + return this.domManip(arguments, false, function(elem){ + this.parentNode.insertBefore( elem, this.nextSibling ); + }); + }, + + end: function() { + return this.prevObject || jQuery( [] ); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: [].push, + sort: [].sort, + splice: [].splice, + + find: function( selector ) { + if ( this.length === 1 ) { + var ret = this.pushStack( [], "find", selector ); + ret.length = 0; + jQuery.find( selector, this[0], ret ); + return ret; + } else { + return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){ + return jQuery.find( selector, elem ); + })), "find", selector ); + } + }, + + clone: function( events ) { + // Do the clone + var ret = this.map(function(){ + if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) { + // IE copies events bound via attachEvent when + // using cloneNode. Calling detachEvent on the + // clone will also remove the events from the orignal + // In order to get around this, we use innerHTML. + // Unfortunately, this means some modifications to + // attributes in IE that are actually only stored + // as properties will not be copied (such as the + // the name attribute on an input). + var html = this.outerHTML; + if ( !html ) { + var div = this.ownerDocument.createElement("div"); + div.appendChild( this.cloneNode(true) ); + html = div.innerHTML; + } + + return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]; + } else + return this.cloneNode(true); + }); + + // Copy the events from the original to the clone + if ( events === true ) { + var orig = this.find("*").andSelf(), i = 0; + + ret.find("*").andSelf().each(function(){ + if ( this.nodeName !== orig[i].nodeName ) + return; + + var events = jQuery.data( orig[i], "events" ); + + for ( var type in events ) { + for ( var handler in events[ type ] ) { + jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data ); + } + } + + i++; + }); + } + + // Return the cloned set + return ret; + }, + + filter: function( selector ) { + return this.pushStack( + jQuery.isFunction( selector ) && + jQuery.grep(this, function(elem, i){ + return selector.call( elem, i ); + }) || + + jQuery.multiFilter( selector, jQuery.grep(this, function(elem){ + return elem.nodeType === 1; + }) ), "filter", selector ); + }, + + closest: function( selector ) { + var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null, + closer = 0; + + return this.map(function(){ + var cur = this; + while ( cur && cur.ownerDocument ) { + if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) { + jQuery.data(cur, "closest", closer); + return cur; + } + cur = cur.parentNode; + closer++; + } + }); + }, + + not: function( selector ) { + if ( typeof selector === "string" ) + // test special case where just one selector is passed in + if ( isSimple.test( selector ) ) + return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector ); + else + selector = jQuery.multiFilter( selector, this ); + + var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType; + return this.filter(function() { + return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector; + }); + }, + + add: function( selector ) { + return this.pushStack( jQuery.unique( jQuery.merge( + this.get(), + typeof selector === "string" ? + jQuery( selector ) : + jQuery.makeArray( selector ) + ))); + }, + + is: function( selector ) { + return !!selector && jQuery.multiFilter( selector, this ).length > 0; + }, + + hasClass: function( selector ) { + return !!selector && this.is( "." + selector ); + }, + + val: function( value ) { + if ( value === undefined ) { + var elem = this[0]; + + if ( elem ) { + if( jQuery.nodeName( elem, 'option' ) ) + return (elem.attributes.value || {}).specified ? elem.value : elem.text; + + // We need to handle select boxes special + if ( jQuery.nodeName( elem, "select" ) ) { + var index = elem.selectedIndex, + values = [], + options = elem.options, + one = elem.type == "select-one"; + + // Nothing was selected + if ( index < 0 ) + return null; + + // Loop through all the selected options + for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { + var option = options[ i ]; + + if ( option.selected ) { + // Get the specifc value for the option + value = jQuery(option).val(); + + // We don't need an array for one selects + if ( one ) + return value; + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + } + + // Everything else, we just grab the value + return (elem.value || "").replace(/\r/g, ""); + + } + + return undefined; + } + + if ( typeof value === "number" ) + value += ''; + + return this.each(function(){ + if ( this.nodeType != 1 ) + return; + + if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) ) + this.checked = (jQuery.inArray(this.value, value) >= 0 || + jQuery.inArray(this.name, value) >= 0); + + else if ( jQuery.nodeName( this, "select" ) ) { + var values = jQuery.makeArray(value); + + jQuery( "option", this ).each(function(){ + this.selected = (jQuery.inArray( this.value, values ) >= 0 || + jQuery.inArray( this.text, values ) >= 0); + }); + + if ( !values.length ) + this.selectedIndex = -1; + + } else + this.value = value; + }); + }, + + html: function( value ) { + return value === undefined ? + (this[0] ? + this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : + null) : + this.empty().append( value ); + }, + + replaceWith: function( value ) { + return this.after( value ).remove(); + }, + + eq: function( i ) { + return this.slice( i, +i + 1 ); + }, + + slice: function() { + return this.pushStack( Array.prototype.slice.apply( this, arguments ), + "slice", Array.prototype.slice.call(arguments).join(",") ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function(elem, i){ + return callback.call( elem, i, elem ); + })); + }, + + andSelf: function() { + return this.add( this.prevObject ); + }, + + domManip: function( args, table, callback ) { + if ( this[0] ) { + var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(), + scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ), + first = fragment.firstChild; + + if ( first ) + for ( var i = 0, l = this.length; i < l; i++ ) + callback.call( root(this[i], first), this.length > 1 || i > 0 ? + fragment.cloneNode(true) : fragment ); + + if ( scripts ) + jQuery.each( scripts, evalScript ); + } + + return this; + + function root( elem, cur ) { + return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ? + (elem.getElementsByTagName("tbody")[0] || + elem.appendChild(elem.ownerDocument.createElement("tbody"))) : + elem; + } + } +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +function evalScript( i, elem ) { + if ( elem.src ) + jQuery.ajax({ + url: elem.src, + async: false, + dataType: "script" + }); + + else + jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); + + if ( elem.parentNode ) + elem.parentNode.removeChild( elem ); +} + +function now(){ + return +new Date; +} + +jQuery.extend = jQuery.fn.extend = function() { + // copy reference to target object + var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) + target = {}; + + // extend jQuery itself if only one argument is passed + if ( length == i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) + // Extend the base object + for ( var name in options ) { + var src = target[ name ], copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) + continue; + + // Recurse if we're merging object values + if ( deep && copy && typeof copy === "object" && !copy.nodeType ) + target[ name ] = jQuery.extend( deep, + // Never move original objects, clone them + src || ( copy.length != null ? [ ] : { } ) + , copy ); + + // Don't bring in undefined values + else if ( copy !== undefined ) + target[ name ] = copy; + + } + + // Return the modified object + return target; +}; + +// exclude the following css properties to add px +var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, + // cache defaultView + defaultView = document.defaultView || {}, + toString = Object.prototype.toString; + +jQuery.extend({ + noConflict: function( deep ) { + window.$ = _$; + + if ( deep ) + window.jQuery = _jQuery; + + return jQuery; + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return toString.call(obj) === "[object Function]"; + }, + + isArray: function( obj ) { + return toString.call(obj) === "[object Array]"; + }, + + // check if an element is in a (or is an) XML document + isXMLDoc: function( elem ) { + return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || + !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument ); + }, + + // Evalulates a script in a global context + globalEval: function( data ) { + if ( data && /\S/.test(data) ) { + // Inspired by code by Andrea Giammarchi + // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html + var head = document.getElementsByTagName("head")[0] || document.documentElement, + script = document.createElement("script"); + + script.type = "text/javascript"; + if ( jQuery.support.scriptEval ) + script.appendChild( document.createTextNode( data ) ); + else + script.text = data; + + // Use insertBefore instead of appendChild to circumvent an IE6 bug. + // This arises when a base node is used (#2709). + head.insertBefore( script, head.firstChild ); + head.removeChild( script ); + } + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); + }, + + // args is for internal usage only + each: function( object, callback, args ) { + var name, i = 0, length = object.length; + + if ( args ) { + if ( length === undefined ) { + for ( name in object ) + if ( callback.apply( object[ name ], args ) === false ) + break; + } else + for ( ; i < length; ) + if ( callback.apply( object[ i++ ], args ) === false ) + break; + + // A special, fast, case for the most common use of each + } else { + if ( length === undefined ) { + for ( name in object ) + if ( callback.call( object[ name ], name, object[ name ] ) === false ) + break; + } else + for ( var value = object[0]; + i < length && callback.call( value, i, value ) !== false; value = object[++i] ){} + } + + return object; + }, + + prop: function( elem, value, type, i, name ) { + // Handle executable functions + if ( jQuery.isFunction( value ) ) + value = value.call( elem, i ); + + // Handle passing in a number to a CSS property + return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ? + value + "px" : + value; + }, + + className: { + // internal only, use addClass("class") + add: function( elem, classNames ) { + jQuery.each((classNames || "").split(/\s+/), function(i, className){ + if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) ) + elem.className += (elem.className ? " " : "") + className; + }); + }, + + // internal only, use removeClass("class") + remove: function( elem, classNames ) { + if (elem.nodeType == 1) + elem.className = classNames !== undefined ? + jQuery.grep(elem.className.split(/\s+/), function(className){ + return !jQuery.className.has( classNames, className ); + }).join(" ") : + ""; + }, + + // internal only, use hasClass("class") + has: function( elem, className ) { + return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1; + } + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations + swap: function( elem, options, callback ) { + var old = {}; + // Remember the old values, and insert the new ones + for ( var name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + callback.call( elem ); + + // Revert the old values + for ( var name in options ) + elem.style[ name ] = old[ name ]; + }, + + css: function( elem, name, force, extra ) { + if ( name == "width" || name == "height" ) { + var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ]; + + function getWH() { + val = name == "width" ? elem.offsetWidth : elem.offsetHeight; + + if ( extra === "border" ) + return; + + jQuery.each( which, function() { + if ( !extra ) + val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; + if ( extra === "margin" ) + val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0; + else + val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; + }); + } + + if ( elem.offsetWidth !== 0 ) + getWH(); + else + jQuery.swap( elem, props, getWH ); + + return Math.max(0, Math.round(val)); + } + + return jQuery.curCSS( elem, name, force ); + }, + + curCSS: function( elem, name, force ) { + var ret, style = elem.style; + + // We need to handle opacity special in IE + if ( name == "opacity" && !jQuery.support.opacity ) { + ret = jQuery.attr( style, "opacity" ); + + return ret == "" ? + "1" : + ret; + } + + // Make sure we're using the right name for getting the float value + if ( name.match( /float/i ) ) + name = styleFloat; + + if ( !force && style && style[ name ] ) + ret = style[ name ]; + + else if ( defaultView.getComputedStyle ) { + + // Only "float" is needed here + if ( name.match( /float/i ) ) + name = "float"; + + name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase(); + + var computedStyle = defaultView.getComputedStyle( elem, null ); + + if ( computedStyle ) + ret = computedStyle.getPropertyValue( name ); + + // We should always get a number back from opacity + if ( name == "opacity" && ret == "" ) + ret = "1"; + + } else if ( elem.currentStyle ) { + var camelCase = name.replace(/\-(\w)/g, function(all, letter){ + return letter.toUpperCase(); + }); + + ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ]; + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) { + // Remember the original values + var left = style.left, rsLeft = elem.runtimeStyle.left; + + // Put in the new values to get a computed value out + elem.runtimeStyle.left = elem.currentStyle.left; + style.left = ret || 0; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + elem.runtimeStyle.left = rsLeft; + } + } + + return ret; + }, + + clean: function( elems, context, fragment ) { + context = context || document; + + // !context.createElement fails in IE with an error but returns typeof 'object' + if ( typeof context.createElement === "undefined" ) + context = context.ownerDocument || context[0] && context[0].ownerDocument || document; + + // If a single string is passed in and it's a single tag + // just do a createElement and skip the rest + if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) { + var match = /^<(\w+)\s*\/?>$/.exec(elems[0]); + if ( match ) + return [ context.createElement( match[1] ) ]; + } + + var ret = [], scripts = [], div = context.createElement("div"); + + jQuery.each(elems, function(i, elem){ + if ( typeof elem === "number" ) + elem += ''; + + if ( !elem ) + return; + + // Convert html string into DOM nodes + if ( typeof elem === "string" ) { + // Fix "XHTML"-style tags in all browsers + elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){ + return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? + all : + front + ">"; + }); + + // Trim whitespace, otherwise indexOf won't work as expected + var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase(); + + var wrap = + // option or optgroup + !tags.indexOf("", "" ] || + + !tags.indexOf("", "" ] || + + tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && + [ 1, "", "
    " ] || + + !tags.indexOf("", "" ] || + + // matched above + (!tags.indexOf("", "" ] || + + !tags.indexOf("", "" ] || + + // IE can't serialize and