Browse files

get users work again

  • Loading branch information...
1 parent c481657 commit 0d75fde7903c9d2e8ce0c851bc36dab76c07ef0a @mkristian committed Mar 12, 2013
Showing with 14,727 additions and 18,711 deletions.
  1. +1 −1 .gitignore
  2. +1 −1 Gemfile
  3. +31 −29 Gemfile.lock
  4. +37 −33 Mavenfile
  5. +9 −5 app/controllers/applications_controller.rb
  6. +26 −111 app/controllers/users_controller.rb
  7. +9 −0 app/models/application.rb
  8. +9 −0 db/migrate/20130110161047_add_http_method_to_audits.rb
  9. +3 −2 db/schema.rb
  10. +155 −306 pom.xml
  11. +0 −3,010 public/Users/0158F420052BFA2F17CA713B52B323C9.cache.html
  12. BIN public/Users/0A9476898799A150D840F0B1C3672921.cache.png
  13. +2,378 −0 public/Users/0D2D7DDBAC313C855FCAA2B09EFCB4B8.cache.html
  14. +0 −3,009 public/Users/1B88B791BCF7CCCFB7C5D9889D3E2960.cache.html
  15. BIN public/Users/396F806CD63ABD414BFBB9D57429F05B.cache.png
  16. +2,380 −0 public/Users/4CEDEAE2E8F605281BB5EE341A1DAC1C.cache.html
  17. +2,392 −0 public/Users/6612EB824153C8E31A31E068E43E5E54.cache.html
  18. +2,363 −0 public/Users/7A11822BF4CB36752CC980919EE6DBA9.cache.html
  19. +2,382 −0 public/Users/926DCE85B03BD86074491BFC03DC9B03.cache.html
  20. +0 −3,039 public/Users/ADD61164CF128AA4C1591D4F69902C5C.cache.html
  21. +2,378 −0 public/Users/B996A4471623DBAD8C1D2FF2875AE464.cache.html
  22. +0 −2,990 public/Users/C284E39DDA99A900B04E8539FB49136D.cache.html
  23. +0 −3,009 public/Users/C9C47F2C78745A427529DC6E7B26C9C9.cache.html
  24. +0 −61 public/Users/CE18CF7C7088FCD25ACC685CF4BAE60B.gwt.rpc
  25. +0 −3,018 public/Users/DEAD010BB31AAF1677A6EA18F6FB81A8.cache.html
  26. BIN public/Users/DF7764EEC1903CD03C9545B354D8D8E4.cache.png
  27. BIN public/Users/E44767377485D18D6B6864F65BA8EF73.cache.png
  28. BIN public/Users/EDC7827FEEA59EE44AD790B1C6430C45.cache.png
  29. +17 −16 public/Users/Users.nocache.js
  30. +11 −10 public/Users/hosted.html
  31. +34 −0 public/stylesheets/users.css
  32. +18 −12 src/main/java/de/mkristian/ixtlan/users/client/editors/GroupEditor.java
  33. +2 −0 src/main/java/de/mkristian/ixtlan/users/client/editors/GroupEditor.ui.xml
  34. +4 −1 src/main/java/de/mkristian/ixtlan/users/client/models/Application.java
  35. +15 −1 src/main/java/de/mkristian/ixtlan/users/client/models/Group.java
  36. +22 −14 src/main/java/de/mkristian/ixtlan/users/client/presenters/ApplicationPresenter.java
  37. +1 −1 src/main/java/de/mkristian/ixtlan/users/client/restservices/ApplicationsRestService.java
  38. +2 −2 src/main/java/de/mkristian/ixtlan/users/client/views/ApplicationView.java
  39. +21 −7 src/main/java/de/mkristian/ixtlan/users/client/views/ApplicationView.ui.xml
  40. +26 −23 src/main/java/de/mkristian/ixtlan/users/client/views/ApplicationViewImpl.java
View
2 .gitignore
@@ -3,6 +3,6 @@ db/*.sqlite3
log/*.log
tmp/
target/
-.pom.xml
+.*pom.xml
pwd.txt
gwt-unitCache/
View
2 Gemfile
@@ -23,7 +23,7 @@ gem "ixtlan-guard", '~> 0.9'#,:path => '../../ixtlan/ixtlan-guard'
#gem "ixtlan-core", '~> 0.8.0',:path => '../../ixtlan/ixtlan-core'
gem "ixtlan-error-handler", '~> 0.3'#, :path => '../../ixtlan/ixtlan-error-handler'
gem "ixtlan-audit", '~> 0.3'#, :path => '../../ixtlan/ixtlan-audit'
-
+gem 'ixtlan-user-management', '~> 0.1'#, :path => '../../ixtlan/ixtlan-remote'
gem 'ixtlan-remote', '~> 0.1'#, :path => '../../ixtlan/ixtlan-remote'
gem "ixtlan-babel", '~> 0.2'#, :path => '../../ixtlan/ixtlan-babel'
gem "ixtlan-gettext", '~> 0.1', :require => false#, :path => '../../ixtlan/ixtlan-gettext'
View
60 Gemfile.lock
@@ -1,26 +1,26 @@
GEM
remote: http://rubygems.org/
specs:
- actionpack (3.2.11)
- activemodel (= 3.2.11)
- activesupport (= 3.2.11)
+ actionpack (3.2.12)
+ activemodel (= 3.2.12)
+ activesupport (= 3.2.12)
builder (~> 3.0.0)
erubis (~> 2.7.0)
journey (~> 1.0.4)
- rack (~> 1.4.0)
+ rack (~> 1.4.5)
rack-cache (~> 1.2)
rack-test (~> 0.6.1)
sprockets (~> 2.2.1)
- activemodel (3.2.11)
- activesupport (= 3.2.11)
+ activemodel (3.2.12)
+ activesupport (= 3.2.12)
builder (~> 3.0.0)
- activerecord (3.2.11)
- activemodel (= 3.2.11)
- activesupport (= 3.2.11)
+ activerecord (3.2.12)
+ activemodel (= 3.2.12)
+ activesupport (= 3.2.12)
arel (~> 3.0.2)
tzinfo (~> 0.3.29)
- activerecord-jdbc-adapter (1.2.6)
- activesupport (3.2.11)
+ activerecord-jdbc-adapter (1.2.7)
+ activesupport (3.2.12)
i18n (~> 0.6)
multi_json (~> 1.0)
arel (3.0.2)
@@ -35,22 +35,22 @@ GEM
rack-test (>= 0.5.4)
selenium-webdriver (~> 2.0)
xpath (~> 1.0.0)
- childprocess (0.3.7)
- ffi (~> 1.0, >= 1.0.6)
+ childprocess (0.3.8)
+ ffi (~> 1.0, >= 1.0.11)
copyright-header (1.0.7)
descendants_tracker (0.0.1)
diff-lcs (1.1.3)
enforce-ssl (0.2.2)
erubis (2.7.0)
fast_gettext (0.7.0)
- ffi (1.3.1)
- ffi (1.3.1-java)
+ ffi (1.4.0)
+ ffi (1.4.0-java)
hike (1.2.1)
- i18n (0.6.1)
- ixtlan-audit (0.3.2)
+ i18n (0.6.2)
+ ixtlan-audit (0.4.1)
slf4r (~> 0.4.2)
- ixtlan-babel (0.3.1)
- ixtlan-error-handler (0.4.0)
+ ixtlan-babel (0.3.2)
+ ixtlan-error-handler (0.4.1)
slf4r (~> 0.4.2)
ixtlan-generators (0.1.7)
ixtlan-gettext (0.1.3)
@@ -59,19 +59,20 @@ GEM
ixtlan-guard (0.9.0)
virtus (~> 0.5)
ixtlan-optimistic (0.2.2)
- ixtlan-remote (0.1.6)
+ ixtlan-remote (0.2.0)
rest-client (~> 1.6.3)
ixtlan-session-timeout (0.4.0)
+ ixtlan-user-management (0.1.0)
jdbc-sqlite3 (3.7.2.1)
journey (1.0.4)
- json (1.7.6)
- json (1.7.6-java)
+ json (1.7.7)
+ json (1.7.7-java)
mail (2.5.3)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
- mime-types (1.20.1)
- multi_json (1.5.0)
+ mime-types (1.21)
+ multi_json (1.6.1)
nokogiri (1.5.6)
nokogiri (1.5.6-java)
pg (0.14.1)
@@ -85,15 +86,15 @@ GEM
rack
rack-test (0.6.2)
rack (>= 1.0)
- railties (3.2.11)
- actionpack (= 3.2.11)
- activesupport (= 3.2.11)
+ railties (3.2.12)
+ actionpack (= 3.2.12)
+ activesupport (= 3.2.12)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (>= 0.14.6, < 2.0)
rake (10.0.3)
- rdoc (3.12.1)
+ rdoc (3.12.2)
json (~> 1.4)
rest-client (1.6.7)
mime-types (>= 1.16)
@@ -111,7 +112,7 @@ GEM
rspec-expectations (~> 2.12.0)
rspec-mocks (~> 2.12.0)
rubyzip (0.9.9)
- selenium-webdriver (2.29.0)
+ selenium-webdriver (2.30.0)
childprocess (>= 0.2.5)
multi_json (~> 1.0)
rubyzip
@@ -157,6 +158,7 @@ DEPENDENCIES
ixtlan-optimistic (~> 0.2.1)
ixtlan-remote (~> 0.1)
ixtlan-session-timeout (~> 0.4.0)
+ ixtlan-user-management (~> 0.1)
jdbc-sqlite3
pg
pony (~> 1.4)
View
70 Mavenfile
@@ -1,14 +1,23 @@
#-*- mode: ruby -*-
-GWT_VERSION = '2.4.0' unless defined? GWT_VERSION
+
+jar('org.jruby.rack:jruby-rack', '1.1.13.1').exclusions << 'org.jruby:jruby-complete'
+if defined?( JRUBY_VERSION ) && JRUBY_VERSION =~ /^1\.7\./
+ jar("org.jruby:jruby-core", "${jruby.version}")
+else
+ jar("org.jruby:jruby-complete", "${jruby.version}")
+end
+jar('com.google.gwt:gwt-user', '${gwt.version}').scope :provided
+
jar('de.mkristian.gwt:rails-gwt', '0.8.0-SNAPSHOT').scope :provided
jar('org.fusesource.restygwt:restygwt', '1.3').scope :provided
jar('javax.ws.rs:jsr311-api', '1.1').scope :provided
-jar('com.google.gwt:gwt-user', GWT_VERSION).scope :provided
jar('com.google.gwt.inject:gin', '1.5.0').scope :provided
jar('javax.validation:validation-api', '1.0.0.GA').scope :provided
jar('javax.validation:validation-api', '1.0.0.GA', 'sources').scope :provided
-plugin('org.codehaus.mojo:gwt-maven-plugin', GWT_VERSION) do |gwt|
+plugin( :compiler, '3.0' ).with( :source => '1.6', :target => '1.6' )
+
+plugin('org.codehaus.mojo:gwt-maven-plugin', '${gwt.version}') do |gwt|
gwt.with({ :warSourceDirectory => "${basedir}/public",
:webXml => "${basedir}/public/WEB-INF/web.xml",
:webappDirectory => "${basedir}/public",
@@ -18,42 +27,23 @@ plugin('org.codehaus.mojo:gwt-maven-plugin', GWT_VERSION) do |gwt|
:treeLogger => true,
:extraJvmArgs => "-Xmx512m",
:gen => "${project.build.directory}/generated",
- :runTarget => "Users.html"
- })
- gwt.executions.goals << ["clean", "compile", "test"]
+ :runTarget => "Users.html",
+ :module => 'de.mkristian.ixtlan.users.UsersDevelopment',
+ :style => "DETAILED",
+ :includes => "**/de.mkristian.ixtlan.users.Users_NAMEGWTTestSuite.java",
+ :draftCompile => true
+ })
+ gwt.in_phase( :'integration-test' ).execute_goal( 'test' )
+ gwt.in_phase( :compile ).execute_goal( 'compile' )
+ gwt.in_phase( :clean ).execute_goal( 'clean' )
end
-plugin(:rails3).in_phase("initialize").execute_goal(:pom).with :force => true
-properties['jruby-plugins-version'] = '0.30.0'
-#-- Macs need the -d32 -XstartOnFirstThread jvm options -->
-profile("mac") do |mac|
- mac.activation.os.family "mac"
- mac.plugin('org.codehaus.mojo:gwt-maven-plugin').with(:extraJvmArgs => "-d32 -XstartOnFirstThread -Xmx512m")
-end
-
-# to get the restygwt and rails-gwt snapshots
-#repository("snapshots") do |snapshots|
-# snapshots.url "http://http://mojo.saumya.de/"
-# snapshots.releases(:enabled => false)
-# snapshots.snapshots(:enabled => true)
-#end
-
-# latest version
-jar 'org.jruby.rack:jruby-rack', '1.1.7'
-
-plugin( :compiler, '3.0' ).with( :source => '1.6', :target => '1.6' )
profile :development do |p|
- p.activation.by_default
- p.plugin('org.codehaus.mojo:gwt-maven-plugin', GWT_VERSION) do |gwt|
- gwt.with({ :module => 'de.mkristian.ixtlan.users.UsersDevelopment',
- :style => "DETAILED",
- :includes => "**/UsersGWTTestSuite.java",
- :draftCompile => true })
- end
+ # will go in future
end
profile :production do |p|
- p.plugin('org.codehaus.mojo:gwt-maven-plugin', GWT_VERSION) do |gwt|
+ p.plugin('org.codehaus.mojo:gwt-maven-plugin', '${gwt.version}') do |gwt|
gwt.with({ :module => 'de.mkristian.ixtlan.users.Users',
:style => "OBF",
:draftCompile => false,
@@ -62,4 +52,18 @@ profile :production do |p|
:optimizationLevel => 9})
end
end
+
+#-- Macs need the -d32 -XstartOnFirstThread jvm options -->
+profile("mac") do |mac|
+ mac.activation.os.family "mac"
+ mac.plugin('org.codehaus.mojo:gwt-maven-plugin', '${gwt.version}').with(:extraJvmArgs => "-d32 -XstartOnFirstThread -Xmx512m")
+end
+
+# lock down versions
+properties['gwt.version'] = '2.5.1-rc1'
+properties['jruby.version'] = '1.7.3'
+properties['jruby.plugins.version'] = '0.29.4'
+# jetty version to run it in standalone jetty via jetty-run
+properties['jetty.version'] = '8.1.9.v20130131'
+
# vim: syntax=Ruby
View
14 app/controllers/applications_controller.rb
@@ -9,6 +9,10 @@ class ApplicationsController < LocalController
private
+ def group_url( *args )
+ application_url( *args )
+ end
+
def authorize_application
#TODO super(params[:id])
if params[:id]
@@ -83,8 +87,8 @@ def group_create
def group_update
group = application.group_update( current_user,
- updated_at,
- param[ :id ],
+ params[ :group ][ :updated_at ],
+ params[ :id ],
params[ :group ] )
# for audit log
@@ -93,9 +97,9 @@ def group_update
respond_with serializer( group )
end
- def group_destroy
- group = application.group_delete( updated_at,
- param[ :id ] )
+ def group_delete
+ group = application.group_delete( params[ :group ][ :updated_at ],
+ params[ :id ] )
# for audit log
@application = group
View
137 app/controllers/users_controller.rb
@@ -1,42 +1,13 @@
-class UsersController < ApplicationController
-
- before_filter :cleanup_params
-
-#before_filter :remote_permission, :only => :last_changes
- # skip_before_filter :authorize, :only => :last_changes
-
- # TODO do not know why skip_before_filter does not work with heroku
- # def authorization
- # super if params[:action] != 'last_changes'
- # end
+class UsersController < LocalController
private
- # TODO why needed for rspecs
- #def authorize
- # super unless params[:action] == "last_changes"
- #end
-
- def cleanup_params
+ def cleanup
# compensate the shortcoming of the incoming json/xml
model = params[:user] || []
model.delete :application_ids #not needed
model.delete :applications #not needed
- model.delete :id
- model.delete :created_at
- params[:updated_at] ||= model.delete :updated_at
- end
-
- def stale?
- if @user.nil?
- @user = User.find(params[:id])
- respond_to do |format|
- format.html { render :action => "edit" }
- format.xml { render :xml => nil, :status => :conflict }
- format.json { render :json => nil, :status => :conflict }
- end
- true
- end
+ model.delete :created_at # TODO should be part of super#cleanup
end
public
@@ -45,13 +16,9 @@ def stale?
# GET /users.xml
# GET /users.json
def index
- @users = User.filtered_all(current_user)
+ @users = User.filtered_all( current_user )
- respond_to do |format|
- format.html # index.html.erb
- format.xml { render :xml => @users.to_xml(User.options) }
- format.json { render :json => @users.to_json(User.options) }
- end
+ respond_with serializer( @users )
end
# GET /users/1
@@ -60,11 +27,7 @@ def index
def show
@user = User.filtered_find(params[:id], current_user)
- respond_to do |format|
- format.html # show.html.erb
- format.xml { render :xml => @user.to_xml(User.single_options) }
- format.json { render :json => @user.to_json(User.single_options) }
- end
+ respond_with serializer( @user )
end
# GET /users/1/at
@@ -73,21 +36,7 @@ def show
def at
@user = User.filtered_find(params[:id], current_user)
- respond_to do |format|
- format.html # show.html.erb
- format.xml { render :xml => @user.to_xml(User.single_options) }
- format.json { render :json => @user.to_json(User.single_options) }
- end
- end
-
- # GET /users/new
- def new
- @user = User.new
- end
-
- # GET /users/1/edit
- def edit
- @user = User.filtered_find(params[:id], current_user)
+ respond_with serializer( @user )
end
# POST /users
@@ -97,90 +46,56 @@ def create
@user = User.filtered_new(params[:user], current_user)
@user.modified_by = current_user
- respond_to do |format|
- if @user.reset_password_and_save
- format.html { redirect_to(@user, :notice => 'User was successfully created.') }
- format.xml { render :xml => @user.to_xml(User.single_options), :status => :created, :location => @user }
- format.json { render :json => @user.to_json(User.single_options), :status => :created, :location => @user }
- else
- format.html { render :action => "new" }
- format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
- format.json { render :json => @user.errors, :status => :unprocessable_entity }
- end
- end
+ @user.save
+
+ respond_with serializer( @user )
end
# PUT /users/1
# PUT /users/1.xml
# PUT /users/1.json
def update
- @user = User.filtered_optimistic_find(params[:updated_at],
+ params[:user] ||= params
+ @user = User.filtered_optimistic_find(params[:user][:updated_at],
params[:id],
current_user)
- return if stale?
-
- params[:user] ||= {}
params[:user][:modified_by] = current_user
#TODO allowed? should be part of guard
- unless guard.allowed?("users", "change", current_user_groups)
+ unless guard.allowed?("users", "change", current_user.groups)
params[:user].delete(:login)
params[:user].delete(:email)
end
@user.updated_at = Time.now
- respond_to do |format|
- if @user.deep_update_attributes(params[:user], current_user)
-
- format.html { redirect_to(@user, :notice => 'User was successfully updated.') }
- format.xml { render :xml => @user.to_xml(User.single_options) }
- format.json { render :json => @user.to_json(User.single_options) }
- else
- format.html { render :action => "edit" }
- format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
- format.json { render :json => @user.errors, :status => :unprocessable_entity }
- end
- end
+p params[:user]
+ @user.deep_update_attributes(params[:user], current_user)
+
+ respond_with serializer( @user )
end
# PUT /users/1/reset_password.xml
# PUT /users/1/reset_password.json
def reset_password
- @user = User.optimistic_find(params[:updated_at], params[:id])
-
- return if stale?
-
- if @user.reset_password_and_save
- respond_to do |format|
- format.html { redirect_to(@user, :notice => 'Password reset was successful.') }
- format.xml { head :ok }
- format.json { head :ok }
- end
- else
- respond_to do |format|
- format.html { render :action => "edit" }
- format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
- format.json { render :json => @user.errors, :status => :unprocessable_entity }
- end
- end
+ params[:user] ||= params
+ @user = User.optimistic_find(params[:user][:updated_at], params[:id])
+
+ @user.reset_password_and_save
+
+ respond_with serializer( @user )
end
# DELETE /users/1
# DELETE /users/1.xml
# DELETE /users/1.json
def destroy
- @user = User.optimistic_find(params[:updated_at], params[:id])
-
- return if stale?
+ params[:user] ||= params
+ @user = User.optimistic_find(params[:user][:updated_at], params[:id])
@user.destroy
- respond_to do |format|
- format.html { redirect_to(users_url) }
- format.xml { head :ok }
- format.json { head :ok }
- end
+ head :ok
end
end
View
9 app/models/application.rb
@@ -64,13 +64,22 @@ def to_s
end
def group_create( current_user, attributes )
+ # TODO somethng with those ids or remove them altogether
+ attributes.delete( :id )
+ application_ids = attributes.delete( :application_ids ) || []
+ region_ids = attributes.delete( :region_ids ) || []
g = groups.new( attributes )
g.modified_by = current_user
g.save
g
end
def group_update( current_user, updated_at, id, attributes )
+ # TODO somethng with those ids or remove them altogether
+ attributes.delete( :id )
+ attributes.delete( :created_at )
+ application_ids = attributes.delete( :application_ids ) || []
+ region_ids = attributes.delete( :region_ids ) || []
g = Group.optimistic_find( updated_at, id )
if g.application.id != self.id
raise "application(#{self.id}) and group.application(#{g.application.id}) mismatch"
View
9 db/migrate/20130110161047_add_http_method_to_audits.rb
@@ -0,0 +1,9 @@
+class AddHttpMethodToAudits < ActiveRecord::Migration
+ def self.up
+ add_column :audits, :http_method, :string
+ end
+
+ def self.down
+ remove_column :audits, :http_method
+ end
+end
View
5 db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20121220161148) do
+ActiveRecord::Schema.define(:version => 20130110161047) do
create_table "applications", :force => true do |t|
t.string "name"
@@ -35,7 +35,8 @@
t.string "login"
t.string "path"
t.string "message"
- t.datetime "created_at", :null => false
+ t.datetime "created_at", :null => false
+ t.string "http_method"
end
create_table "configurations", :force => true do |t|
View
461 pom.xml
@@ -321,31 +321,31 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>actionpack</artifactId>
- <version>3.2.11</version>
+ <version>3.2.12</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>activemodel</artifactId>
- <version>3.2.11</version>
+ <version>3.2.12</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>activesupport</artifactId>
- <version>3.2.11</version>
+ <version>3.2.12</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>i18n</artifactId>
- <version>0.6.1</version>
+ <version>0.6.2</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>multi_json</artifactId>
- <version>1.5.0</version>
+ <version>1.6.1</version>
<type>gem</type>
</dependency>
<dependency>
@@ -369,7 +369,7 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>rack</artifactId>
- <version>1.4.3</version>
+ <version>1.4.5</version>
<type>gem</type>
</dependency>
<dependency>
@@ -405,7 +405,7 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>activerecord</artifactId>
- <version>3.2.11</version>
+ <version>3.2.12</version>
<type>gem</type>
</dependency>
<dependency>
@@ -423,19 +423,13 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>activerecord-jdbc-adapter</artifactId>
- <version>1.2.2</version>
- <type>gem</type>
- </dependency>
- <dependency>
- <groupId>rubygems</groupId>
- <artifactId>addressable</artifactId>
- <version>2.3.2</version>
+ <version>1.2.7</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>backports</artifactId>
- <version>2.6.5</version>
+ <version>2.6.7</version>
<type>gem</type>
</dependency>
<dependency>
@@ -453,7 +447,7 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>mime-types</artifactId>
- <version>1.19</version>
+ <version>1.21</version>
<type>gem</type>
</dependency>
<dependency>
@@ -465,37 +459,31 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>selenium-webdriver</artifactId>
- <version>2.27.2</version>
+ <version>2.30.0</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>childprocess</artifactId>
- <version>0.3.6</version>
+ <version>0.3.8</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>ffi</artifactId>
- <version>1.2.0</version>
+ <version>1.4.0</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
- <artifactId>libwebsocket</artifactId>
- <version>0.1.7.1</version>
+ <artifactId>rubyzip</artifactId>
+ <version>0.9.9</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>websocket</artifactId>
- <version>1.0.6</version>
- <type>gem</type>
- </dependency>
- <dependency>
- <groupId>rubygems</groupId>
- <artifactId>rubyzip</artifactId>
- <version>0.9.9</version>
+ <version>1.0.7</version>
<type>gem</type>
</dependency>
<dependency>
@@ -537,7 +525,7 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>ixtlan-audit</artifactId>
- <version>0.3.2</version>
+ <version>0.4.1</version>
<type>gem</type>
</dependency>
<dependency>
@@ -549,13 +537,13 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>ixtlan-babel</artifactId>
- <version>0.2.1</version>
+ <version>0.3.2</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>ixtlan-error-handler</artifactId>
- <version>0.3.1</version>
+ <version>0.4.1</version>
<type>gem</type>
</dependency>
<dependency>
@@ -567,13 +555,13 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>ixtlan-gettext</artifactId>
- <version>0.1.0</version>
+ <version>0.1.3</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>ixtlan-remote</artifactId>
- <version>0.1.4</version>
+ <version>0.2.0</version>
<type>gem</type>
</dependency>
<dependency>
@@ -597,7 +585,7 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>ixtlan-optimistic</artifactId>
- <version>0.2.1</version>
+ <version>0.2.2</version>
<type>gem</type>
</dependency>
<dependency>
@@ -609,13 +597,13 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>jdbc-sqlite3</artifactId>
- <version>3.7.2</version>
+ <version>3.7.2.1</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>json</artifactId>
- <version>1.7.6</version>
+ <version>1.7.7</version>
<type>gem</type>
</dependency>
<dependency>
@@ -651,13 +639,13 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>rack-ssl</artifactId>
- <version>1.3.2</version>
+ <version>1.3.3</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>railties</artifactId>
- <version>3.2.11</version>
+ <version>3.2.12</version>
<type>gem</type>
</dependency>
<dependency>
@@ -669,13 +657,13 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>rdoc</artifactId>
- <version>3.12</version>
+ <version>3.12.2</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>thor</artifactId>
- <version>0.16.0</version>
+ <version>0.17.0</version>
<type>gem</type>
</dependency>
<dependency>
@@ -699,7 +687,7 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>rspec-mocks</artifactId>
- <version>2.12.1</version>
+ <version>2.12.2</version>
<type>gem</type>
</dependency>
<dependency>
@@ -711,7 +699,7 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>sqlite3</artifactId>
- <version>1.3.6</version>
+ <version>1.3.7</version>
<type>gem</type>
</dependency>
<dependency>
@@ -726,16 +714,60 @@
<gem.home>${project.build.directory}/rubygems</gem.home>
<gem.includeRubygemsInTestResources>false</gem.includeRubygemsInTestResources>
<gem.path>${project.build.directory}/rubygems</gem.path>
- <jetty.version>7.6.4.v20120524</jetty.version>
<jruby-plugins-version>0.30.0</jruby-plugins-version>
<jruby.plugins.version>0.29.0</jruby.plugins.version>
- <jruby.version>1.6.7.2</jruby.version>
+ <jruby.version>1.7.2</jruby.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<rails.env>development</rails.env>
</properties>
<build>
<plugins>
<plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.0</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.2</version>
+ <configuration>
+ <webResources>
+ <resource>
+ <directory>public</directory>
+ </resource>
+ <resource>
+ <directory>.</directory>
+ <includes>
+ <include>app/**</include>
+ <include>config/**</include>
+ <include>lib/**</include>
+ <include>vendor/**</include>
+ <include>Gemfile</include>
+ </includes>
+ <targetPath>WEB-INF</targetPath>
+ </resource>
+ <resource>
+ <directory>${gem.path}</directory>
+ <includes>
+ <include>gems/**</include>
+ <include>specifications/**</include>
+ </includes>
+ <targetPath>WEB-INF/gems</targetPath>
+ </resource>
+ <resource>
+ <directory>${gem.path}-bundler-maven-plugin</directory>
+ <includes>
+ <include>specifications/**</include>
+ </includes>
+ <targetPath>WEB-INF/gems</targetPath>
+ </resource>
+ </webResources>
+ </configuration>
+ </plugin>
+ <plugin>
<groupId>de.saumya.mojo</groupId>
<artifactId>bundler-maven-plugin</artifactId>
<version>${jruby.plugins.version}</version>
@@ -774,7 +806,7 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>rspec-mocks</artifactId>
- <version>2.12.1</version>
+ <version>2.12.2</version>
<type>gem</type>
</dependency>
<dependency>
@@ -792,43 +824,31 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>selenium-webdriver</artifactId>
- <version>2.27.2</version>
+ <version>2.30.0</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>childprocess</artifactId>
- <version>0.3.6</version>
+ <version>0.3.8</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>ffi</artifactId>
- <version>1.2.0</version>
+ <version>1.4.0</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
- <artifactId>libwebsocket</artifactId>
- <version>0.1.7.1</version>
- <type>gem</type>
- </dependency>
- <dependency>
- <groupId>rubygems</groupId>
- <artifactId>addressable</artifactId>
- <version>2.3.2</version>
+ <artifactId>rubyzip</artifactId>
+ <version>0.9.9</version>
<type>gem</type>
</dependency>
<dependency>
<groupId>rubygems</groupId>
<artifactId>websocket</artifactId>
- <version>1.0.6</version>
- <type>gem</type>
- </dependency>
- <dependency>
- <groupId>rubygems</groupId>
- <artifactId>rubyzip</artifactId>
- <version>0.9.9</version>
+ <version>1.0.7</version>
<type>gem</type>
</dependency>
<dependency>
@@ -858,25 +878,6 @@
</dependencies>
</plugin>
<plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>gwt-maven-plugin</artifactId>
- <version>2.4.0</version>
- <configuration>
- <extraJvmArgs>-Xmx512m</extraJvmArgs>
- <gen>${project.build.directory}/generated</gen>
- <hostedWebapp>${basedir}/public</hostedWebapp>
- <inplace>true</inplace>
- <logLevel>INFO</logLevel>
- <runTarget>Users.html</runTarget>
- <treeLogger>true</treeLogger>
- <warSourceDirectory>${basedir}/public</warSourceDirectory>
- <webXml>${basedir}/public/WEB-INF/web.xml</webXml>
- <webappDirectory>${basedir}/public</webappDirectory>
- </configuration>
- <executions>
- </executions>
- </plugin>
- <plugin>
<groupId>de.saumya.mojo</groupId>
<artifactId>rails3-maven-plugin</artifactId>
<version>${jruby.plugins.version}</version>
@@ -901,49 +902,23 @@
</executions>
</plugin>
<plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.0</version>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.2</version>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>gwt-maven-plugin</artifactId>
+ <version>2.4.0</version>
<configuration>
- <webResources>
- <resource>
- <directory>public</directory>
- </resource>
- <resource>
- <directory>.</directory>
- <includes>
- <include>app/**</include>
- <include>config/**</include>
- <include>lib/**</include>
- <include>vendor/**</include>
- <include>Gemfile</include>
- </includes>
- <targetPath>WEB-INF</targetPath>
- </resource>
- <resource>
- <directory>${gem.path}</directory>
- <includes>
- <include>gems/**</include>
- <include>specifications/**</include>
- </includes>
- <targetPath>WEB-INF/gems</targetPath>
- </resource>
- <resource>
- <directory>${gem.path}-bundler-maven-plugin</directory>
- <includes>
- <include>specifications/**</include>
- </includes>
- <targetPath>WEB-INF/gems</targetPath>
- </resource>
- </webResources>
+ <extraJvmArgs>-Xmx512m</extraJvmArgs>
+ <gen>${project.build.directory}/generated</gen>
+ <hostedWebapp>${basedir}/public</hostedWebapp>
+ <inplace>true</inplace>
+ <logLevel>INFO</logLevel>
+ <runTarget>Users.html</runTarget>
+ <treeLogger>true</treeLogger>
+ <warSourceDirectory>${basedir}/public</warSourceDirectory>
+ <webXml>${basedir}/public/WEB-INF/web.xml</webXml>
+ <webappDirectory>${basedir}/public</webappDirectory>
</configuration>
+ <executions>
+ </executions>
</plugin>
</plugins>
<pluginManagement>
@@ -991,6 +966,12 @@
</build>
<profiles>
<profile>
+ <id>assets</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ </profile>
+ <profile>
<id>development</id>
<activation>
<activeByDefault>true</activeByDefault>
@@ -1048,12 +1029,7 @@
</dependency>
<dependency>
<groupId>rubygems</groupId>
- <artifactId>libwebsocket</artifactId>
- <type>gem</type>
- </dependency>
- <dependency>
- <groupId>rubygems</groupId>
- <artifactId>addressable</artifactId>
+ <artifactId>rubyzip</artifactId>
<type>gem</type>
</dependency>
<dependency>
@@ -1063,11 +1039,6 @@
</dependency>
<dependency>
<groupId>rubygems</groupId>
- <artifactId>rubyzip</artifactId>
- <type>gem</type>
- </dependency>
- <dependency>
- <groupId>rubygems</groupId>
<artifactId>xpath</artifactId>
<type>gem</type>
</dependency>
@@ -1105,6 +1076,55 @@
</build>
</profile>
<profile>
+ <id>mac</id>
+ <activation>
+ <os>
+ <family>mac</family>
+ </os>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>gwt-maven-plugin</artifactId>
+ <configuration>
+ <extraJvmArgs>-d32 -XstartOnFirstThread -Xmx512m</extraJvmArgs>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>production</id>
+ <activation>
+ <property>
+ <name>rails.env</name>
+ <value>production</value>
+ </property>
+ </activation>
+ <properties>
+ <gem.home>${project.build.directory}/rubygems-production</gem.home>
+ <gem.path>${project.build.directory}/rubygems-production</gem.path>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>gwt-maven-plugin</artifactId>
+ <version>2.4.0</version>
+ <configuration>
+ <disableCastChecking>true</disableCastChecking>
+ <disableClassMetadata>true</disableClassMetadata>
+ <draftCompile>false</draftCompile>
+ <module>de.mkristian.ixtlan.users.Users</module>
+ <optimizationLevel>9</optimizationLevel>
+ <style>OBF</style>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
<id>test</id>
<activation>
<activeByDefault>true</activeByDefault>
@@ -1166,12 +1186,7 @@
</dependency>
<dependency>
<groupId>rubygems</groupId>
- <artifactId>libwebsocket</artifactId>
- <type>gem</type>
- </dependency>
- <dependency>
- <groupId>rubygems</groupId>
- <artifactId>addressable</artifactId>
+ <artifactId>rubyzip</artifactId>
<type>gem</type>
</dependency>
<dependency>
@@ -1181,11 +1196,6 @@
</dependency>
<dependency>
<groupId>rubygems</groupId>
- <artifactId>rubyzip</artifactId>
- <type>gem</type>
- </dependency>
- <dependency>
- <groupId>rubygems</groupId>
<artifactId>xpath</artifactId>
<type>gem</type>
</dependency>
@@ -1201,166 +1211,5 @@
</dependency>
</dependencies>
</profile>
- <profile>
- <id>mac</id>
- <activation>
- <os>
- <family>mac</family>
- </os>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>gwt-maven-plugin</artifactId>
- <configuration>
- <extraJvmArgs>-d32 -XstartOnFirstThread -Xmx512m</extraJvmArgs>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>production</id>
- <activation>
- <property>
- <name>rails.env</name>
- <value>production</value>
- </property>
- </activation>
- <properties>
- <gem.home>${project.build.directory}/rubygems-production</gem.home>
- <gem.path>${project.build.directory}/rubygems-production</gem.path>
- </properties>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>gwt-maven-plugin</artifactId>
- <version>2.4.0</version>
- <configuration>
- <disableCastChecking>true</disableCastChecking>
- <disableClassMetadata>true</disableClassMetadata>
- <draftCompile>false</draftCompile>
- <module>de.mkristian.ixtlan.users.Users</module>
- <optimizationLevel>9</optimizationLevel>
- <style>OBF</style>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>assets</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- </profile>
- <profile>
- <id>war</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty-maven-plugin</artifactId>
- <version>${jetty.version}</version>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>run</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty-maven-plugin</artifactId>
- <version>${jetty.version}</version>
- <configuration>
- <connectors>
- <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
- <port>8080</port>
- </connector>
- <connector implementation="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
- <port>8443</port>
- <keystore>${project.basedir}/src/test/resources/server.keystore</keystore>
- <keyPassword>123456</keyPassword>
- <password>123456</password>
- </connector>
- </connectors>
- <systemProperties>
- <systemProperty>
- <name>jbundle.skip</name>
- <value>true</value>
- </systemProperty>
- </systemProperties>
- <webAppConfig>
- <overrideDescriptor>${project.build.directory}/jetty/override-${rails.env}-web.xml</overrideDescriptor>
- </webAppConfig>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>warshell</id>
- <pluginRepositories>
- <pluginRepository>
- <id>kos</id>
- <url>http://opensource.kantega.no/nexus/content/groups/public/</url>
- </pluginRepository>
- </pluginRepositories>
- <build>
- <plugins>
- <plugin>
- <groupId>org.simplericity.jettyconsole</groupId>
- <artifactId>jetty-console-maven-plugin</artifactId>
- <version>1.42</version>
- <executions>
- <execution>
- <goals>
- <goal>createconsole</goal>
- </goals>
- <configuration>
- <!--
- see http://simplericity.com/2009/11/10/1257880778509.html for more info
- -->
- <!--
- <backgroundImage>${basedir}/src/main/jettyconsole/puffin.jpg</backgroundImage>
- <additionalDependencies>
- <additionalDependency>
- <artifactId>jetty-console-winsrv-plugin</artifactId>
- </additionalDependency>
- <additionalDependency>
- <artifactId>jetty-console-requestlog-plugin</artifactId>
- </additionalDependency>
- <additionalDependency>
- <artifactId>jetty-console-log4j-plugin</artifactId>
- </additionalDependency>
- <additionalDependency>
- <artifactId>jetty-console-jettyxml-plugin</artifactId>
- </additionalDependency>
- <additionalDependency>
- <artifactId>jetty-console-ajp-plugin</artifactId>
- </additionalDependency>
- <additionalDependency>
- <artifactId>jetty-console-gzip-plugin</artifactId>
- </additionalDependency>
- <additionalDependency>
- <artifactId>jetty-console-startstop-plugin</artifactId>
- </additionalDependency>
- </additionalDependencies>
-
- -->
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
</profiles>
</project>
View
3,010 public/Users/0158F420052BFA2F17CA713B52B323C9.cache.html
0 additions, 3,010 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
BIN public/Users/0A9476898799A150D840F0B1C3672921.cache.png
Deleted file not rendered
View
2,378 public/Users/0D2D7DDBAC313C855FCAA2B09EFCB4B8.cache.html
2,378 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
3,009 public/Users/1B88B791BCF7CCCFB7C5D9889D3E2960.cache.html
0 additions, 3,009 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
BIN public/Users/396F806CD63ABD414BFBB9D57429F05B.cache.png
Deleted file not rendered
View
2,380 public/Users/4CEDEAE2E8F605281BB5EE341A1DAC1C.cache.html
2,380 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
2,392 public/Users/6612EB824153C8E31A31E068E43E5E54.cache.html
2,392 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
2,363 public/Users/7A11822BF4CB36752CC980919EE6DBA9.cache.html
2,363 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
2,382 public/Users/926DCE85B03BD86074491BFC03DC9B03.cache.html
2,382 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
3,039 public/Users/ADD61164CF128AA4C1591D4F69902C5C.cache.html
0 additions, 3,039 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
2,378 public/Users/B996A4471623DBAD8C1D2FF2875AE464.cache.html
2,378 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
2,990 public/Users/C284E39DDA99A900B04E8539FB49136D.cache.html
0 additions, 2,990 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
3,009 public/Users/C9C47F2C78745A427529DC6E7B26C9C9.cache.html
0 additions, 3,009 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
61 public/Users/CE18CF7C7088FCD25ACC685CF4BAE60B.gwt.rpc
@@ -1,61 +0,0 @@
-com.google.gwt.core.client.impl.SerializableThrowable, false, false, true, true, com.google.gwt.core.client.impl.SerializableThrowable/3336179259, 3336179259
-com.google.gwt.event.shared.UmbrellaException, false, false, true, true, com.google.gwt.event.shared.UmbrellaException/3104463596, 3104463596
-com.google.gwt.http.client.RequestException, false, false, true, true, com.google.gwt.http.client.RequestException/190587325, 190587325
-com.google.gwt.json.client.JSONException, false, false, true, true, com.google.gwt.json.client.JSONException/2941795468, 2941795468
-com.google.gwt.jsonp.client.TimeoutException, false, false, true, true, com.google.gwt.jsonp.client.TimeoutException/1112787596, 1112787596
-com.google.gwt.logging.shared.RemoteLoggingService, false, false, false, false, _, 2602557223
-com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException, true, true, true, true, com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException/3936916533, 3936916533
-com.google.gwt.user.client.rpc.InvocationException, false, false, true, false, com.google.gwt.user.client.rpc.InvocationException/1510557512, 1510557512
-com.google.gwt.user.client.rpc.RpcTokenException, true, true, true, true, com.google.gwt.user.client.rpc.RpcTokenException/2345075298, 2345075298
-com.google.gwt.user.client.rpc.SerializableException, false, false, true, true, com.google.gwt.user.client.rpc.SerializableException/3047383460, 3047383460
-com.google.gwt.user.client.rpc.SerializationException, false, false, true, true, com.google.gwt.user.client.rpc.SerializationException/2836333220, 2836333220
-com.google.gwt.user.client.rpc.ServiceDefTarget$NoServiceEntryPointSpecifiedException, false, false, true, true, com.google.gwt.user.client.rpc.ServiceDefTarget$NoServiceEntryPointSpecifiedException/3408313447, 3408313447
-com.google.gwt.user.client.rpc.XsrfToken, false, false, true, true, com.google.gwt.user.client.rpc.XsrfToken/4254043109, 4254043109
-com.google.gwt.xml.client.DOMException, false, false, true, false, com.google.gwt.xml.client.DOMException/4182906963, 4182906963
-com.google.gwt.xml.client.impl.DOMParseException, false, false, true, true, com.google.gwt.xml.client.impl.DOMParseException/3799120635, 3799120635
-com.google.web.bindery.event.shared.UmbrellaException, false, false, true, true, com.google.web.bindery.event.shared.UmbrellaException/1025846929, 1025846929
-java.io.IOException, false, false, true, true, java.io.IOException/1159940531, 1159940531
-java.io.UnsupportedEncodingException, false, false, true, true, java.io.UnsupportedEncodingException/1526756933, 1526756933
-java.lang.ArithmeticException, false, false, true, true, java.lang.ArithmeticException/1539622151, 1539622151
-java.lang.ArrayIndexOutOfBoundsException, false, false, true, true, java.lang.ArrayIndexOutOfBoundsException/600550433, 600550433
-java.lang.ArrayStoreException, false, false, true, true, java.lang.ArrayStoreException/3540507190, 3540507190
-java.lang.AssertionError, false, false, true, true, java.lang.AssertionError/3490171458, 3490171458
-java.lang.Boolean, false, false, true, true, java.lang.Boolean/476441737, 476441737
-java.lang.ClassCastException, false, false, true, true, java.lang.ClassCastException/702295179, 702295179
-java.lang.Error, false, false, true, true, java.lang.Error/1331973429, 1331973429
-java.lang.Exception, true, false, true, true, java.lang.Exception/1920171873, 1920171873
-java.lang.IllegalArgumentException, false, false, true, true, java.lang.IllegalArgumentException/1755012560, 1755012560
-java.lang.IllegalStateException, false, false, true, true, java.lang.IllegalStateException/1972187323, 1972187323
-java.lang.IndexOutOfBoundsException, false, false, true, true, java.lang.IndexOutOfBoundsException/2489527753, 2489527753
-java.lang.NegativeArraySizeException, false, false, true, true, java.lang.NegativeArraySizeException/3846860241, 3846860241
-java.lang.NullPointerException, false, false, true, true, java.lang.NullPointerException/1463492344, 1463492344
-java.lang.NumberFormatException, false, false, true, true, java.lang.NumberFormatException/3305228476, 3305228476
-java.lang.RuntimeException, true, false, true, true, java.lang.RuntimeException/515124647, 515124647
-java.lang.StackTraceElement, false, false, true, true, java.lang.StackTraceElement/455763907, 455763907
-[Ljava.lang.StackTraceElement;, false, false, true, true, [Ljava.lang.StackTraceElement;/3867167983, 3867167983
-java.lang.String, true, true, true, true, java.lang.String/2004016611, 2004016611
-java.lang.StringIndexOutOfBoundsException, false, false, true, true, java.lang.StringIndexOutOfBoundsException/500777603, 500777603
-java.lang.Throwable, true, false, true, true, java.lang.Throwable/2953622131, 2953622131
-java.lang.UnsupportedOperationException, false, false, true, true, java.lang.UnsupportedOperationException/3744010015, 3744010015
-java.lang.annotation.AnnotationFormatError, false, false, true, true, java.lang.annotation.AnnotationFormatError/2257184627, 2257184627
-java.lang.annotation.AnnotationTypeMismatchException, false, false, true, true, java.lang.annotation.AnnotationTypeMismatchException/976205828, 976205828
-java.security.DigestException, false, false, true, true, java.security.DigestException/629316798, 629316798
-java.security.GeneralSecurityException, false, false, true, true, java.security.GeneralSecurityException/2669239907, 2669239907
-java.security.NoSuchAlgorithmException, false, false, true, true, java.security.NoSuchAlgorithmException/2892037213, 2892037213
-java.util.Collections$EmptySet, false, false, true, true, java.util.Collections$EmptySet/3523698179, 3523698179
-java.util.ConcurrentModificationException, false, false, true, true, java.util.ConcurrentModificationException/2717383897, 2717383897
-java.util.EmptyStackException, false, false, true, true, java.util.EmptyStackException/89438517, 89438517
-java.util.HashSet, false, false, true, true, java.util.HashSet/3273092938, 3273092938
-java.util.LinkedHashSet, false, false, true, true, java.util.LinkedHashSet/1826081506, 1826081506
-java.util.NoSuchElementException, false, false, true, true, java.util.NoSuchElementException/1559248883, 1559248883
-java.util.TooManyListenersException, false, false, true, true, java.util.TooManyListenersException/2023078032, 2023078032
-java.util.TreeMap, false, false, true, true, java.util.TreeMap/1493889780, 1493889780
-java.util.TreeSet, false, false, true, true, java.util.TreeSet/4043497002, 4043497002
-java.util.logging.Level, false, false, true, true, java.util.logging.Level/2839552483, 2839552483
-java.util.logging.LogRecord, false, false, true, true, java.util.logging.LogRecord/2492345967, 2492345967
-javax.validation.ConstraintDeclarationException, false, false, true, true, javax.validation.ConstraintDeclarationException/3610544007, 3610544007
-javax.validation.ConstraintDefinitionException, false, false, true, true, javax.validation.ConstraintDefinitionException/3732439488, 3732439488
-javax.validation.ConstraintViolationException, false, false, true, true, javax.validation.ConstraintViolationException/1185386591, 1185386591
-javax.validation.GroupDefinitionException, false, false, true, true, javax.validation.GroupDefinitionException/4024780846, 4024780846
-javax.validation.UnexpectedTypeException, false, false, true, true, javax.validation.UnexpectedTypeException/593026390, 593026390
-javax.validation.ValidationException, false, false, true, true, javax.validation.ValidationException/1570221831, 1570221831
View
3,018 public/Users/DEAD010BB31AAF1677A6EA18F6FB81A8.cache.html
0 additions, 3,018 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
BIN public/Users/DF7764EEC1903CD03C9545B354D8D8E4.cache.png
Deleted file not rendered
View
BIN public/Users/E44767377485D18D6B6864F65BA8EF73.cache.png
Deleted file not rendered
View
BIN public/Users/EDC7827FEEA59EE44AD790B1C6430C45.cache.png
Deleted file not rendered
View
33 public/Users/Users.nocache.js
@@ -1,17 +1,18 @@
-function Users(){var O='',vb='" for "gwt:onLoadErrorFn"',tb='" for "gwt:onPropertyErrorFn"',hb='"><\/script>',Y='#',Zb='../stylesheets/users.css',Yb='.cache.html',$='/',Rb='0158F420052BFA2F17CA713B52B323C9',Sb='1B88B791BCF7CCCFB7C5D9889D3E2960',Xb=':',nb='::',ec='<script defer="defer">Users.onInjectionDone(\'Users\')<\/script>',gb='<script id="',qb='=',Z='?',Tb='ADD61164CF128AA4C1591D4F69902C5C',Eb='ActiveXObject',sb='Bad handler "',Ub='C284E39DDA99A900B04E8539FB49136D',Vb='C9C47F2C78745A427529DC6E7B26C9C9',Fb='ChromeTab.ChromeFrame',Wb='DEAD010BB31AAF1677A6EA18F6FB81A8',dc='DOMContentLoaded',ib='SCRIPT',P='Users',db='Users.nocache.js',mb='Users::',fb='__gwt_marker_Users',jb='base',bb='baseUrl',S='begin',R='bootstrap',Db='chromeframe',ab='clear.cache.gif',pb='content',X='end',Lb='gecko',Mb='gecko1_8',T='gwt.codesvr=',U='gwt.hosted=',V='gwt.hybrid',ub='gwt:onLoadErrorFn',rb='gwt:onPropertyErrorFn',ob='gwt:property',cc='head',Pb='hosted.html?Users',bc='href',Kb='ie6',Jb='ie8',Ib='ie9',wb='iframe',_='img',xb="javascript:''",$b='link',Ob='loadExternalRefs',kb='meta',zb='moduleRequested',W='moduleStartup',Hb='msie',lb='name',Bb='opera',yb='position:absolute;width:0;height:0;border:none',_b='rel',Gb='safari',cb='script',Qb='selectingPermutation',Q='startup',ac='stylesheet',eb='undefined',Nb='unknown',Ab='user.agent',Cb='webkit';var l=window,m=document,n=l.__gwtStatsEvent?function(a){return l.__gwtStatsEvent(a)}:null,o=l.__gwtStatsSessionId?l.__gwtStatsSessionId:null,p,q,r,s=O,t={},u=[],v=[],w=[],x=0,y,z;n&&n({moduleName:P,sessionId:o,subSystem:Q,evtGroup:R,millis:(new Date).getTime(),type:S});if(!l.__gwt_stylesLoaded){l.__gwt_stylesLoaded={}}if(!l.__gwt_scriptsLoaded){l.__gwt_scriptsLoaded={}}function A(){var b=false;try{var c=l.location.search;return (c.indexOf(T)!=-1||(c.indexOf(U)!=-1||l.external&&l.external.gwtOnLoad))&&c.indexOf(V)==-1}catch(a){}A=function(){return b};return b}
-function B(){if(p&&q){var b=m.getElementById(P);var c=b.contentWindow;if(A()){c.__gwt_getProperty=function(a){return G(a)}}Users=null;c.gwtOnLoad(y,P,s,x);n&&n({moduleName:P,sessionId:o,subSystem:Q,evtGroup:W,millis:(new Date).getTime(),type:X})}}
-function C(){function e(a){var b=a.lastIndexOf(Y);if(b==-1){b=a.length}var c=a.indexOf(Z);if(c==-1){c=a.length}var d=a.lastIndexOf($,Math.min(c,b));return d>=0?a.substring(0,d+1):O}
-function f(a){if(a.match(/^\w+:\/\//)){}else{var b=m.createElement(_);b.src=a+ab;a=e(b.src)}return a}
-function g(){var a=E(bb);if(a!=null){return a}return O}
-function h(){var a=m.getElementsByTagName(cb);for(var b=0;b<a.length;++b){if(a[b].src.indexOf(db)!=-1){return e(a[b].src)}}return O}
-function i(){var a;if(typeof isBodyLoaded==eb||!isBodyLoaded()){var b=fb;var c;m.write(gb+b+hb);c=m.getElementById(b);a=c&&c.previousSibling;while(a&&a.tagName!=ib){a=a.previousSibling}if(c){c.parentNode.removeChild(c)}if(a&&a.src){return e(a.src)}}return O}
-function j(){var a=m.getElementsByTagName(jb);if(a.length>0){return a[a.length-1].href}return O}
-var k=g();if(k==O){k=h()}if(k==O){k=i()}if(k==O){k=j()}if(k==O){k=e(m.location.href)}k=f(k);s=k;return k}
-function D(){var b=document.getElementsByTagName(kb);for(var c=0,d=b.length;c<d;++c){var e=b[c],f=e.getAttribute(lb),g;if(f){f=f.replace(mb,O);if(f.indexOf(nb)>=0){continue}if(f==ob){g=e.getAttribute(pb);if(g){var h,i=g.indexOf(qb);if(i>=0){f=g.substring(0,i);h=g.substring(i+1)}else{f=g;h=O}t[f]=h}}else if(f==rb){g=e.getAttribute(pb);if(g){try{z=eval(g)}catch(a){alert(sb+g+tb)}}}else if(f==ub){g=e.getAttribute(pb);if(g){try{y=eval(g)}catch(a){alert(sb+g+vb)}}}}}}
-function E(a){var b=t[a];return b==null?null:b}
-function F(a,b){var c=w;for(var d=0,e=a.length-1;d<e;++d){c=c[a[d]]||(c[a[d]]=[])}c[a[e]]=b}
-function G(a){var b=v[a](),c=u[a];if(b in c){return b}var d=[];for(var e in c){d[c[e]]=e}if(z){z(a,d,b)}throw null}
-var H;function I(){if(!H){H=true;var a=m.createElement(wb);a.src=xb;a.id=P;a.style.cssText=yb;a.tabIndex=-1;m.body.appendChild(a);n&&n({moduleName:P,sessionId:o,subSystem:Q,evtGroup:W,millis:(new Date).getTime(),type:zb});a.contentWindow.location.replace(s+K)}}
-v[Ab]=function(){var c=navigator.userAgent.toLowerCase();var d=function(a){return parseInt(a[1])*1000+parseInt(a[2])};if(function(){return c.indexOf(Bb)!=-1}())return Bb;if(function(){return c.indexOf(Cb)!=-1||function(){if(c.indexOf(Db)!=-1){return true}if(typeof window[Eb]!=eb){try{var b=new ActiveXObject(Fb);if(b){b.registerBhoIfNeeded();return true}}catch(a){}}return false}()}())return Gb;if(function(){return c.indexOf(Hb)!=-1&&m.documentMode>=9}())return Ib;if(function(){return c.indexOf(Hb)!=-1&&m.documentMode>=8}())return Jb;if(function(){var a=/msie ([0-9]+)\.([0-9]+)/.exec(c);if(a&&a.length==3)return d(a)>=6000}())return Kb;if(function(){return c.indexOf(Lb)!=-1}())return Mb;return Nb};u[Ab]={gecko1_8:0,ie6:1,ie8:2,ie9:3,opera:4,safari:5};Users.onScriptLoad=function(){if(H){q=true;B()}};Users.onInjectionDone=function(){p=true;n&&n({moduleName:P,sessionId:o,subSystem:Q,evtGroup:Ob,millis:(new Date).getTime(),type:X});B()};D();C();var J;var K;if(A()){if(l.external&&(l.external.initModule&&l.external.initModule(P))){l.location.reload();return}K=Pb;J=O}n&&n({moduleName:P,sessionId:o,subSystem:Q,evtGroup:R,millis:(new Date).getTime(),type:Qb});if(!A()){try{F([Gb],Rb);F([Ib],Sb);F([Mb],Tb);F([Bb],Ub);F([Jb],Vb);F([Kb],Wb);J=w[G(Ab)];var L=J.indexOf(Xb);if(L!=-1){x=Number(J.substring(L+1));J=J.substring(0,L)}K=J+Yb}catch(a){return}}var M;function N(){if(!r){r=true;if(!__gwt_stylesLoaded[Zb]){var a=m.createElement($b);__gwt_stylesLoaded[Zb]=a;a.setAttribute(_b,ac);a.setAttribute(bc,s+Zb);m.getElementsByTagName(cc)[0].appendChild(a)}B();if(m.removeEventListener){m.removeEventListener(dc,N,false)}if(M){clearInterval(M)}}}
-if(m.addEventListener){m.addEventListener(dc,function(){I();N()},false)}var M=setInterval(function(){if(/loaded|complete/.test(m.readyState)){I();N()}},50);n&&n({moduleName:P,sessionId:o,subSystem:Q,evtGroup:R,millis:(new Date).getTime(),type:X});n&&n({moduleName:P,sessionId:o,subSystem:Q,evtGroup:Ob,millis:(new Date).getTime(),type:S});m.write(ec)}
+function Users(){var P='',xb='" for "gwt:onLoadErrorFn"',vb='" for "gwt:onPropertyErrorFn"',ib='"><\/script>',Z='#',Yb='../stylesheets/users.css',Xb='.cache.html',_='/',lb='//',Qb='0D2D7DDBAC313C855FCAA2B09EFCB4B8',Rb='4CEDEAE2E8F605281BB5EE341A1DAC1C',Sb='6612EB824153C8E31A31E068E43E5E54',Tb='7A11822BF4CB36752CC980919EE6DBA9',Ub='926DCE85B03BD86074491BFC03DC9B03',Wb=':',pb='::',dc='<script defer="defer">Users.onInjectionDone(\'Users\')<\/script>',hb='<script id="',sb='=',$='?',Vb='B996A4471623DBAD8C1D2FF2875AE464',ub='Bad handler "',cc='DOMContentLoaded',jb='SCRIPT',Q='Users',eb='Users.nocache.js',ob='Users::',gb='__gwt_marker_Users',kb='base',cb='baseUrl',T='begin',S='bootstrap',bb='clear.cache.gif',rb='content',Y='end',Kb='gecko',Lb='gecko1_8',U='gwt.codesvr=',V='gwt.hosted=',W='gwt.hybrid',wb='gwt:onLoadErrorFn',tb='gwt:onPropertyErrorFn',qb='gwt:property',bc='head',Ob='hosted.html?Users',ac='href',Jb='ie6',Ib='ie8',Hb='ie9',yb='iframe',ab='img',zb="javascript:''",Zb='link',Nb='loadExternalRefs',mb='meta',Bb='moduleRequested',X='moduleStartup',Gb='msie',nb='name',Db='opera',Ab='position:absolute;width:0;height:0;border:none',$b='rel',Fb='safari',db='script',Pb='selectingPermutation',R='startup',_b='stylesheet',fb='undefined',Mb='unknown',Cb='user.agent',Eb='webkit';var m=window,n=document,o=m.__gwtStatsEvent?function(a){return m.__gwtStatsEvent(a)}:null,p=m.__gwtStatsSessionId?m.__gwtStatsSessionId:null,q,r,s,t=P,u={},v=[],w=[],x=[],y=0,z,A;o&&o({moduleName:Q,sessionId:p,subSystem:R,evtGroup:S,millis:(new Date).getTime(),type:T});if(!m.__gwt_stylesLoaded){m.__gwt_stylesLoaded={}}if(!m.__gwt_scriptsLoaded){m.__gwt_scriptsLoaded={}}function B(){var b=false;try{var c=m.location.search;return (c.indexOf(U)!=-1||(c.indexOf(V)!=-1||m.external&&m.external.gwtOnLoad))&&c.indexOf(W)==-1}catch(a){}B=function(){return b};return b}
+function C(){if(q&&r){var b=n.getElementById(Q);var c=b.contentWindow;if(B()){c.__gwt_getProperty=function(a){return H(a)}}Users=null;c.gwtOnLoad(z,Q,t,y);o&&o({moduleName:Q,sessionId:p,subSystem:R,evtGroup:X,millis:(new Date).getTime(),type:Y})}}
+function D(){function e(a){var b=a.lastIndexOf(Z);if(b==-1){b=a.length}var c=a.indexOf($);if(c==-1){c=a.length}var d=a.lastIndexOf(_,Math.min(c,b));return d>=0?a.substring(0,d+1):P}
+function f(a){if(a.match(/^\w+:\/\//)){}else{var b=n.createElement(ab);b.src=a+bb;a=e(b.src)}return a}
+function g(){var a=F(cb);if(a!=null){return a}return P}
+function h(){var a=n.getElementsByTagName(db);for(var b=0;b<a.length;++b){if(a[b].src.indexOf(eb)!=-1){return e(a[b].src)}}return P}
+function i(){var a;if(typeof isBodyLoaded==fb||!isBodyLoaded()){var b=gb;var c;n.write(hb+b+ib);c=n.getElementById(b);a=c&&c.previousSibling;while(a&&a.tagName!=jb){a=a.previousSibling}if(c){c.parentNode.removeChild(c)}if(a&&a.src){return e(a.src)}}return P}
+function j(){var a=n.getElementsByTagName(kb);if(a.length>0){return a[a.length-1].href}return P}
+function k(){var a=n.location;return a.href==a.protocol+lb+a.host+a.pathname+a.search+a.hash}
+var l=g();if(l==P){l=h()}if(l==P){l=i()}if(l==P){l=j()}if(l==P&&k()){l=e(n.location.href)}l=f(l);t=l;return l}
+function E(){var b=document.getElementsByTagName(mb);for(var c=0,d=b.length;c<d;++c){var e=b[c],f=e.getAttribute(nb),g;if(f){f=f.replace(ob,P);if(f.indexOf(pb)>=0){continue}if(f==qb){g=e.getAttribute(rb);if(g){var h,i=g.indexOf(sb);if(i>=0){f=g.substring(0,i);h=g.substring(i+1)}else{f=g;h=P}u[f]=h}}else if(f==tb){g=e.getAttribute(rb);if(g){try{A=eval(g)}catch(a){alert(ub+g+vb)}}}else if(f==wb){g=e.getAttribute(rb);if(g){try{z=eval(g)}catch(a){alert(ub+g+xb)}}}}}}
+function F(a){var b=u[a];return b==null?null:b}
+function G(a,b){var c=x;for(var d=0,e=a.length-1;d<e;++d){c=c[a[d]]||(c[a[d]]=[])}c[a[e]]=b}
+function H(a){var b=w[a](),c=v[a];if(b in c){return b}var d=[];for(var e in c){d[c[e]]=e}if(A){A(a,d,b)}throw null}
+var I;function J(){if(!I){I=true;var a=n.createElement(yb);a.src=zb;a.id=Q;a.style.cssText=Ab;a.tabIndex=-1;n.body.appendChild(a);o&&o({moduleName:Q,sessionId:p,subSystem:R,evtGroup:X,millis:(new Date).getTime(),type:Bb});a.contentWindow.location.replace(t+L)}}
+w[Cb]=function(){var b=navigator.userAgent.toLowerCase();var c=function(a){return parseInt(a[1])*1000+parseInt(a[2])};if(function(){return b.indexOf(Db)!=-1}())return Db;if(function(){return b.indexOf(Eb)!=-1}())return Fb;if(function(){return b.indexOf(Gb)!=-1&&n.documentMode>=9}())return Hb;if(function(){return b.indexOf(Gb)!=-1&&n.documentMode>=8}())return Ib;if(function(){var a=/msie ([0-9]+)\.([0-9]+)/.exec(b);if(a&&a.length==3)return c(a)>=6000}())return Jb;if(function(){return b.indexOf(Kb)!=-1}())return Lb;return Mb};v[Cb]={gecko1_8:0,ie6:1,ie8:2,ie9:3,opera:4,safari:5};Users.onScriptLoad=function(){if(I){r=true;C()}};Users.onInjectionDone=function(){q=true;o&&o({moduleName:Q,sessionId:p,subSystem:R,evtGroup:Nb,millis:(new Date).getTime(),type:Y});C()};E();D();var K;var L;if(B()){if(m.external&&(m.external.initModule&&m.external.initModule(Q))){m.location.reload();return}L=Ob;K=P}o&&o({moduleName:Q,sessionId:p,subSystem:R,evtGroup:S,millis:(new Date).getTime(),type:Pb});if(!B()){try{G([Hb],Qb);G([Fb],Rb);G([Jb],Sb);G([Db],Tb);G([Lb],Ub);G([Ib],Vb);K=x[H(Cb)];var M=K.indexOf(Wb);if(M!=-1){y=Number(K.substring(M+1));K=K.substring(0,M)}L=K+Xb}catch(a){return}}var N;function O(){if(!s){s=true;if(!__gwt_stylesLoaded[Yb]){var a=n.createElement(Zb);__gwt_stylesLoaded[Yb]=a;a.setAttribute($b,_b);a.setAttribute(ac,t+Yb);n.getElementsByTagName(bc)[0].appendChild(a)}C();if(n.removeEventListener){n.removeEventListener(cc,O,false)}if(N){clearInterval(N)}}}
+if(n.addEventListener){n.addEventListener(cc,function(){J();O()},false)}var N=setInterval(function(){if(/loaded|complete/.test(n.readyState)){J();O()}},50);o&&o({moduleName:Q,sessionId:p,subSystem:R,evtGroup:S,millis:(new Date).getTime(),type:Y});o&&o({moduleName:Q,sessionId:p,subSystem:R,evtGroup:Nb,millis:(new Date).getTime(),type:T});n.write(dc)}
Users();
View
21 public/Users/hosted.html
@@ -160,8 +160,7 @@
__gwt_displayGlassMessage('GWT Code Server Disconnected',
'Most likely, you closed GWT Development Mode. Or, you might have lost '
+ 'network connectivity. To fix this, try restarting GWT Development Mode and '
- + '<a style="color: #FFFFFF; font-weight: bold;" href="javascript:location.reload()">'
- + 'REFRESH</a> this page.');
+ + 'refresh this page.');
}
// Keep track of z-index to allow layering of multiple glass messages
@@ -295,20 +294,22 @@
if (errFn) {
errFn(modName);
} else {
- __gwt_displayGlassMessage("Plugin failed to connect to Development Mode server at " +
- simpleEscape($hosted),
- "Follow the underlying troubleshooting instructions");
- loadIframe("http://code.google.com/p/google-web-toolkit/wiki/TroubleshootingOOPHM");
+ __gwt_displayGlassMessage(
+ "Plugin failed to connect to Development Mode server at " + simpleEscape($hosted),
+ "Follow the troubleshooting instructions at "
+ + "<a href='http://code.google.com/p/google-web-toolkit/wiki/TroubleshootingOOPHM'>"
+ + "http://code.google.com/p/google-web-toolkit/wiki/TroubleshootingOOPHM</a>");
}
}
}
}
function simpleEscape(originalString) {
- return originalString.replace("&","&amp;")
- .replace("<","&lt;")
- .replace(">","&gt;")
- .replace("\"","&quot;");
+ return originalString.replace(/&/g,"&amp;")
+ .replace(/</g,"&lt;")
+ .replace(/>/g,"&gt;")
+ .replace(/\'/g, "&#39;")
+ .replace(/\"/g,"&quot;");
}
window.onunload = function() {
View
34 public/stylesheets/users.css
@@ -283,3 +283,37 @@ body {
.translations-with-original-without-default .translations-default {
display: none;
}
+
+.gwt-TabLayoutPanelTab:hover {
+ background-color: white;
+}
+
+.gwt-TabLayoutPanelTab-selected, .gwt-TabLayoutPanelTab, .gwt-TabLayoutPanelTab-selected:hover{
+ border-left: 1px solid darkblue;
+ border-top: 1px solid darkblue;
+ border-right: 1px solid darkblue;
+ border-radius: 0.3em 0.3em 0em 0em;
+ background-color: white;
+ padding: .2em;
+ margin-left: .5em;
+ background-color: #ddf;
+ color: #115;
+ font-weight: bold;
+ padding: 0.2em 0.8em;
+ font-size: 0.8em;
+ cursor: default;
+}
+
+.gwt-TabLayoutPanelTab-selected, .gwt-TabLayoutPanelTab-selected:hover{
+ background-color: #77f;
+}
+
+.users-group-header{
+ background-color: #77f;
+}
+
+table.gwt-TabLayoutPanelContent {
+ margin: 0;
+border-collapse:collapse;
+width: 100%;
+}
View
30 src/main/java/de/mkristian/ixtlan/users/client/editors/GroupEditor.java
@@ -9,6 +9,7 @@
import com.google.gwt.user.client.ui.DateLabel;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.HasAlignment;
import com.google.gwt.user.client.ui.NumberLabel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
@@ -25,7 +26,7 @@
@Ignore @UiField FlowPanel signature;
- NumberLabel<Integer> id = new NumberLabel<Integer>();
+ @UiField NumberLabel<Integer> id = new NumberLabel<Integer>();
@UiField DateLabel createdAt;
@UiField DateLabel updatedAt;
@UiField UserLabel<User> modifiedBy;
@@ -41,17 +42,22 @@ public GroupEditor() {
initWidget(BINDER.createAndBindUi(this));
this.id.setVisible( false );
table.setWidget( 0, 0, name );
- table.setWidget( 0, 1, hasRegions );
- table.setWidget( 0, 2, hasLocales );
- table.setWidget( 0, 3, hasDomains );
+ table.setText( 1, 0, "has regions" );
+ table.setWidget( 1, 1, hasRegions );
+ table.setText( 1, 2, "has locales" );
+ table.setWidget( 1, 3, hasLocales );
+ table.setText( 1, 4, "has domains" );
+ table.setWidget( 1, 5, hasDomains );
+ table.getFlexCellFormatter().setColSpan( 0, 0, 5 );
+ table.getFlexCellFormatter().setVerticalAlignment(1, 0, HasAlignment.ALIGN_TOP );
+ table.getFlexCellFormatter().setVerticalAlignment(1, 1, HasAlignment.ALIGN_TOP );
+ table.getFlexCellFormatter().setVerticalAlignment(1, 2, HasAlignment.ALIGN_TOP );
+ table.getFlexCellFormatter().setVerticalAlignment(1, 3, HasAlignment.ALIGN_TOP );
+ table.getFlexCellFormatter().setVerticalAlignment(1, 4, HasAlignment.ALIGN_TOP );
+ table.getFlexCellFormatter().setVerticalAlignment(1, 5, HasAlignment.ALIGN_TOP );
}
-
- public void setEnabled(boolean enabled) {
- this.id.setVisible( false );
- this.signature.setVisible(id.getValue() != null && id.getValue() > 0);
- this.name.setEnabled(enabled);
- this.hasRegions.setEnabled(enabled);
- this.hasLocales.setEnabled(enabled);
- this.hasDomains.setEnabled(enabled);
+
+ public void setIsNew( boolean isNew ) {
+ this.signature.setVisible( ! isNew );
}
}
View
2 src/main/java/de/mkristian/ixtlan/users/client/editors/GroupEditor.ui.xml
@@ -8,6 +8,8 @@
<g:FlowPanel>
<g:FlowPanel ui:field="signature" styleName="gwt-rails-model-signature">
+ <g:Label>id: </g:Label>
+ <g:NumberLabel ui:field="id" />
<g:Label>created at: </g:Label>
<g:DateLabel ui:field="createdAt" predefinedFormat="DATE_TIME_MEDIUM"/>
<g:Label>updated at: </g:Label>
View
5 src/main/java/de/mkristian/ixtlan/users/client/models/Application.java
@@ -61,7 +61,7 @@ public Application(@JsonProperty("id") int id,
this.createdAt = createdAt;
this.updatedAt = updatedAt;
this.modifiedBy = modifiedBy;
- this.groups = groups == null ? new ArrayList<Group>() : groups;
+ setGroups( groups );
}
public int getId(){
@@ -130,5 +130,8 @@ public String toDisplay() {
}
public void setGroups(List<Group> groups) {
this.groups = groups == null ? new ArrayList<Group>() : groups;
+ for( Group g : this.groups ){
+ g.setApplication( this );
+ }
}
}
View
16 src/main/java/de/mkristian/ixtlan/users/client/models/Group.java
@@ -64,6 +64,11 @@ public Group(){
this(0, null, null, null, 0, null, null);
}
+ public Group( Application application ){
+ this();
+ setApplication( application );
+ }
+
public Group(int id){
this(id, null, null, null, 0, null, null);
}
@@ -94,7 +99,16 @@ public Group(@JsonProperty("id") int id,
//this.domainIds = regionIds == null ? new ArrayList<Integer>() : regionIds;
this.hasDomains = regionIds != null;
}
-
+//
+// public Group minimalClone(){
+// Group g = new Group( getId() );
+// g.setHasDomains( getHasDomains() );
+// g.setHasLocales( getHasLocales() );
+// g.setHasRegions( getHasRegions() );
+// g.setName( getName() );
+// return g;
+// }
+
public int getId(){
return id;
}
View
36 src/main/java/de/mkristian/ixtlan/users/client/presenters/ApplicationPresenter.java
@@ -29,6 +29,7 @@
import org.fusesource.restygwt.client.Method;
import org.fusesource.restygwt.client.MethodCallback;
+import de.mkristian.gwt.rails.RemoteNotifier;
import de.mkristian.gwt.rails.presenters.CRUDPresenterImpl;
import de.mkristian.ixtlan.users.client.UsersErrorHandler;
import de.mkristian.ixtlan.users.client.caches.ApplicationCache;
@@ -44,19 +45,22 @@
private Group current;
private final ApplicationsRestService service;
+ private final RemoteNotifier notifier;
@Inject
public ApplicationPresenter( UsersErrorHandler errors,
ApplicationView view,
ApplicationListView listView,
ApplicationCache cache,
ApplicationRemote remote,
- ApplicationsRestService service){
+ ApplicationsRestService service,
+ RemoteNotifier notifier ){
super( errors, view, listView, cache, remote );
view.setPresenter( this );
this.service = service;
+ this.notifier = notifier;
}
-
+
protected ApplicationView getView(){
return (ApplicationView) super.getView();
}
@@ -68,14 +72,15 @@ public boolean isDirty() {
}
public void save( final Group group ) {
- errors.show("save clicked" + group.getName() + group.hasRegions());
- this.service.updateGroup(group, new MethodCallback<Group>() {
+ this.notifier.saving();
+ this.service.updateGroup(group.minimalClone(), new MethodCallback<Group>() {
@Override
public void onSuccess(Method method, Group response) {
List<Group> groups = group.getApplication().getGroups();
int i = groups.indexOf( response ); // identity is over id field
groups.set( i, response );
+ getView().edit(response);
getRemote().fireUpdate( method, group.getApplication() );
}
@@ -94,22 +99,24 @@ public void show( Group group ) {
getView().show( group );
}
- public void edit( Group model ) {
+ public void edit( Group group ) {
+ assert group != null;
if (current != null){
getView().show( current );
}
- getView().resetNewRow();
- getView().edit( model );
- current = model;
+ getView().resetNewRow( group.getApplication() );
+ getView().edit( group );
+ current = group;
}
public void delete( final Group group ) {
- errors.show("delete clicked");
- this.service.destroyGroup( group, new MethodCallback<Void>() {
+ this.notifier.deleting();
+ this.service.destroyGroup( group.minimalClone(), new MethodCallback<Void>() {
@Override
public void onSuccess( Method method, Void response ) {
group.getApplication().getGroups().remove( group );
+ getView().reset( group.getApplication() );
getRemote().fireUpdate( method, group.getApplication() );
}
@@ -133,7 +140,7 @@ public void reset( Group model ) {
public void showCurrent() {
doShowCurrent();
- getView().resetNewRow();
+ //getView().resetNewRow(miss);
}
private void doShowCurrent() {
@@ -145,16 +152,17 @@ private void doShowCurrent() {
public void newGroup( Group model ) {
doShowCurrent();
- getView().newGroup( new Group() );
+ getView().newGroup( model );
}
public void create( final Group group ) {
- errors.show("create clicked");
- this.service.createGroup( group, new MethodCallback<Group>() {
+ this.notifier.saving();
+ this.service.createGroup( group.minimalClone(), new MethodCallback<Group>() {
@Override
public void onSuccess( Method method, Group response ) {
group.getApplication().getGroups().add( group );
+ getView().reset( group.getApplication() );
getRemote().fireUpdate( method, group.getApplication() );
}
View
2 src/main/java/de/mkristian/ixtlan/users/client/restservices/ApplicationsRestService.java
@@ -37,7 +37,7 @@
@DELETE @Path("/applications/{id}")
void destroy(@PathParam("id") @Attribute("id") Application value, MethodCallback<Void> callback);
- @POST @Path("/applications/{id}/group")
+ @POST @Path("/applications/{id}/groups")
void createGroup(@PathParam("id") @Attribute("getApplicationId()") Group value, MethodCallback<Group> callback);
@PUT @Path("/groups/{id}")
View
4 src/main/java/de/mkristian/ixtlan/users/client/views/ApplicationView.java
@@ -10,7 +10,7 @@
@ImplementedBy(ApplicationViewImpl.class)
public interface ApplicationView extends CRUDView<Application, ApplicationPresenter> {
- void resetGroup( Iterable<Group> groups );
+ void resetGroups( Application application );
void edit( Group group );
@@ -22,5 +22,5 @@
void newGroup( Group model );
- void resetNewRow();
+ void resetNewRow(Application application);
}
View
28 src/main/java/de/mkristian/ixtlan/users/client/views/ApplicationView.ui.xml
@@ -11,6 +11,14 @@
<g:FlowPanel styleName="gwt-rails-buttons">
<g:Button ui:field="listButton">List All</g:Button>
<g:Button ui:field="newButton">New</g:Button>
+ </g:FlowPanel>
+
+ <g:TabLayoutPanel barUnit="EM" barHeight="2" width="100%"
+ height="20em">
+ <g:tab>
+ <g:header>Details</g:header>
+ <g:FlowPanel>
+ <g:FlowPanel styleName="gwt-rails-buttons">
<g:Button ui:field="editButton">Edit</g:Button>
<g:Button ui:field="reloadButton">Reload</g:Button>
</g:FlowPanel>
@@ -23,13 +31,19 @@
<g:Button ui:field="deleteButton">Delete</g:Button>
<g:Button ui:field="cancelButton">Cancel</g:Button>
- </g:FlowPanel>
-
- <g:FlowPanel>
- <g:Label>Groups</g:Label>
-
- <g:FlexTable ui:field="list" styleName="gwt-rails-model-list"/>
- </g:FlowPanel>
+ </g:FlowPanel></g:FlowPanel>
+ </g:tab>
+ <g:tab>
+ <g:header>Groups</g:header>
+ <g:FlexTable ui:field="list" styleName="gwt-rails-model-list"/>
+ </g:tab>
+ <g:tab>
+ <g:header>Users</g:header>
+ <g:HTML>
+ <h2>TODO users</h2>
+ </g:HTML>
+ </g:tab>
+ </g:TabLayoutPanel>
</g:FlowPanel>
</ui:UiBinder>
View
49 src/main/java/de/mkristian/ixtlan/users/client/views/ApplicationViewImpl.java
@@ -113,19 +113,22 @@ protected Place showAllPlace() {
@Override
public void edit( Application model ) {
super.edit( model );
- resetGroup( model.getGroups() );
+ resetGroups( model );
+ this.header.setText( "Applications" + " - " + model.getName() );
}
@Override
public void show(Application model) {
super.show(model);
- resetGroup( model.getGroups() );
+ resetGroups( model );
+ this.header.setText( "Applications" + " - " + model.getName() );
}
@Override
public void reset(Application model) {
- super.reset(model);
- resetGroup( model.getGroups() );
+ super.reset( model );
+ resetGroups( model );
+ this.header.setText( "Applications" + " - " + model.getName() );
}
@Override
@@ -190,56 +193,57 @@ private void setRow( int row, Group model ) {
}
@Override
- public void resetGroup( Iterable<Group>