backlog 0.37.1 → 0.37.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "rails", "~> 3.0.0"
3
+ gem "rails", "~> 3.0.3"
4
4
  gem 'slave'
5
5
  gem 'mechanize'
6
6
  gem 'hpricot'
@@ -12,6 +12,9 @@ platforms :jruby do
12
12
  gem 'jruby-openssl'
13
13
  gem 'activerecord-jdbc-adapter'
14
14
  gem 'activerecord-jdbcpostgresql-adapter'
15
+ # gem 'glassfish', '~> 1.0.3'
16
+ gem 'trinidad'
17
+ gem 'trinidad_daemon_extension'
15
18
  end
16
19
 
17
20
  platforms :ruby do
@@ -55,6 +55,7 @@ GEM
55
55
  jdbc-postgres (8.4.702-java)
56
56
  jruby-openssl (0.7.2)
57
57
  bouncy-castle-java
58
+ jruby-rack (1.0.4)
58
59
  json_pure (1.4.6)
59
60
  mail (2.2.12)
60
61
  activesupport (>= 2.3.6)
@@ -98,6 +99,12 @@ GEM
98
99
  thor (0.14.6)
99
100
  treetop (1.4.9)
100
101
  polyglot (>= 0.3.1)
102
+ trinidad (1.0.3)
103
+ jruby-rack (>= 1.0.2)
104
+ trinidad_jars (>= 0.3.0)
105
+ trinidad_daemon_extension (0.2.4)
106
+ trinidad_jars (>= 0.1.1)
107
+ trinidad_jars (0.3.3)
101
108
  tzinfo (0.3.23)
102
109
  user-choices (1.1.6.1)
103
110
  builder (>= 2.1.2)
@@ -122,9 +129,11 @@ DEPENDENCIES
122
129
  jruby-openssl
123
130
  mechanize
124
131
  postgres-pr
125
- rails (~> 3.0.0)
132
+ rails (~> 3.0.3)
126
133
  rcov
127
134
  redhillonrails_core
128
135
  simple_workflow
129
136
  slave
137
+ trinidad
138
+ trinidad_daemon_extension
130
139
  wirble
@@ -1,3 +1,17 @@
1
+ == 0.37.2 2010-10-05
2
+
3
+ === Fixes
4
+
5
+ * Refresh of "done" field in work edit form did not work.
6
+ * "Reopen" did not work.
7
+
8
+ == Internal
9
+
10
+ * Changed gem to use the Gemfile for dynamic dependencies
11
+ * Updated to Rails 3.0.3
12
+ * Updated to Glassfish 1.0.3 but there are still problems
13
+ * Switched to Trinidad as app-server.
14
+
1
15
  == 0.37.1 2010-10-05
2
16
 
3
17
  === Fixes
data/README.txt CHANGED
@@ -1,4 +1,4 @@
1
- http://backlog.rubyforge.org/files/Screenshot.png
1
+ http://github.com/DatekWireless/backlog/raw/master/Screenshot.png
2
2
 
3
3
  == Backlog
4
4
 
@@ -11,8 +11,8 @@ A time keeping module is also included to track time spent on the different task
11
11
 
12
12
  You can find the Backlog project page at
13
13
 
14
- http://rubyforge.org/projects/backlog/
15
-
14
+ http://github.com/DatekWireless/backlog
15
+
16
16
 
17
17
  === Backlog is not meant to be
18
18
 
data/Rakefile CHANGED
@@ -38,6 +38,7 @@ Hoe.new("backlog", APP::VERSION) do |p|
38
38
  ['slave', '~> 1.2.1'], ['mechanize', '~> 1.0.0'], ['bundler', '~> 1.0.5']]
39
39
  # ['rmagick', '~> 1.15.12'],
40
40
  p.rsync_args = "-acv --delete --exclude=wiki*"
41
+ p.spec_extras[:extensions] = 'ext/mkrf_conf.rb'
41
42
  end
42
43
 
43
44
  desc 'Release the application to RubyForge'
@@ -0,0 +1,73 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require 'erb'
5
+
6
+ require File.expand_path('../config/application', __FILE__)
7
+
8
+ require 'rake'
9
+ #require 'rake/testtask'
10
+ require 'rake/rdoctask'
11
+
12
+ Backlog::Application.load_tasks
13
+
14
+ require 'hoe'
15
+ require 'version_from_history'
16
+
17
+ ENV['SKIP_AR_JDBC_RAKE_REDEFINES'] = '1'
18
+
19
+ Hoe.new("backlog", APP::VERSION) do |p|
20
+ p.rubyforge_name = "backlog"
21
+ p.summary = "Application to aid collecting, processing, organizing, reviewing and doing tasks."
22
+ p.description = p.paragraphs_of('README.txt', 2..3).join("\n\n")
23
+ p.author = 'Uwe Kubosch'
24
+ p.email = 'uwe@kubosch.no'
25
+ p.remote_rdoc_dir = '' # Release to root
26
+ p.changes = File.read('History.txt').scan(/^== .*?(?=^== )/m).first
27
+ # p.extra_rdoc_files = [/^(app\/(controllers|helpers|models)|lib|bin)|txt$/]
28
+ p.clean_globs = ['doc', 'log/*']
29
+ p.spec_extras = {
30
+ :files => Dir['**/*'].reject{|file_name| file_name =~ /^(doc|log|pkg|profiling|tmp|WEB-INF)/},
31
+ :rdoc_options => ['--inline-source'],
32
+ :executables => ['backlog'],
33
+ :requirements => ['ImageMagick', 'PostgreSQL'],
34
+ }
35
+ p.need_zip = true
36
+ p.url = 'http://rubyforge.org/projects/backlog/'
37
+ p.extra_deps = [['daemons', '~> 1.1.0'], ['rails', '~> 3.0.0'], ['gruff', '~> 0.3.6'], ['postgres-pr', '~> 0.6.3'],
38
+ ['slave', '~> 1.2.1'], ['mechanize', '~> 1.0.0'], ['bundler', '~> 1.0.5']]
39
+ # ['rmagick', '~> 1.15.12'],
40
+ p.rsync_args = "-acv --delete --exclude=wiki*"
41
+ p.extensions << 'ext/rmagic/extconf.rb'
42
+ end
43
+
44
+ desc 'Release the application to RubyForge'
45
+ task :release_all do
46
+ ENV['VERSION'] = APP::VERSION
47
+ Rake::Task[:publish_docs].invoke
48
+ Rake::Task[:release].invoke
49
+ Rake::Task[:release_war].invoke
50
+ Rake::Task[:post_news].invoke
51
+ end
52
+
53
+ desc 'Release the application as a Java EE WAR file to RubyForge'
54
+ task :release_war do
55
+ `warble`
56
+ war_pkg_file = "pkg/backlog-#{APP::VERSION}.war"
57
+ raise "WAR file missing" unless File.exists? 'backlog.war'
58
+ FileUtils.makedirs 'pkg'
59
+ FileUtils.move 'backlog.war', war_pkg_file
60
+ rf = RubyForge.new.configure
61
+ rf.login
62
+ rf.add_file 'backlog', 'backlog', APP::VERSION, war_pkg_file
63
+ end
64
+
65
+ task 'test:units' => [] do
66
+
67
+ end
68
+ task 'test:functionals' => [] do
69
+
70
+ end
71
+ task 'test:integration' => [] do
72
+
73
+ end
@@ -303,7 +303,8 @@ class WorksController < ApplicationController
303
303
 
304
304
  render :partial => 'task_id_list'
305
305
  end
306
-
306
+
307
+ # TODO(uwe): prioritize personal descriptions, then same project, then any.
307
308
  def auto_complete_for_work_description
308
309
  max = 16
309
310
  works = Work.find(:all, :select => "description, count(*) as freq",
@@ -41,7 +41,8 @@ module ApplicationHelper
41
41
  def image_link_to_remote(image_source, title, link_options, image_options = nil, post = false)
42
42
  image_options ||= {:class => 'image-submit'}
43
43
  image_options.update :alt => title, :title => title
44
- link_to_remote image_tag(image_source, image_options), :url => link_options, :html => post ? {:remote => true, :method => :post} : {:remote => true}
44
+ with_params = link_options.delete(:with)
45
+ link_to_remote image_tag(image_source, image_options), :url => link_options, :with => with_params, :html => post ? {:method => :post} : {}
45
46
  end
46
47
 
47
48
  def detour?
@@ -80,7 +80,7 @@
80
80
  <% end -%>
81
81
  <% else %>
82
82
  <% if !task.work_started? && (task.period.nil? || task.period.active?) %>
83
- <%=image_link_to_remote('checkmark.png', l(:complete), {:url => {:action => :finish_task, :id => task}}, nil, true)%>
83
+ <%=image_link_to_remote('checkmark.png', l(:complete), {:action => :finish_task, :id => task}, nil, true)%>
84
84
  <% end -%>
85
85
  <% end -%>
86
86
  <% end -%>
@@ -102,7 +102,7 @@
102
102
  <% end -%>
103
103
  <% elsif (task.period.nil? || (not task.period.passed?)) && task.leaf? -%>
104
104
  <% form_tag({:controller => 'tasks', :action => 'update', :id => task}) do -%>
105
- <%=image_link_to_remote('eraser.png', l(:reopen), {:url => {:action => :reopen_task, :id => task}}, nil, true) %>
105
+ <%=image_link_to_remote('eraser.png', l(:reopen), {:action => :reopen_task, :id => task}, nil, true) %>
106
106
  <% end -%>
107
107
  <% end -%>
108
108
  </div>
@@ -71,7 +71,7 @@
71
71
  <p style="float: left;"><label for="work_hours"><%=l :hours%></label><br/>
72
72
  <%=text_field 'work', 'hours_time', :class => :task_hours, :value => t(@work.hours) %></p>
73
73
 
74
- <p style="float: left;"><br/><%=image_link_to_remote 'refresh.png', l(:refresh), {:url => {:action => :calculate_hours}, :with => "'started_at=' + $('work_started_at').value + '&completed_at=' + $('work_completed_at').value"} %></p>
74
+ <p style="float: left;"><br/><%=image_link_to_remote 'refresh.png', l(:refresh), {:action => :calculate_hours, :with => "'started_at=' + $('work_started_at').value + '&completed_at=' + $('work_completed_at').value".html_safe} %></p>
75
75
 
76
76
  <% end %>
77
77
 
@@ -55,12 +55,22 @@ def start(config)
55
55
  end
56
56
  Dir.chdir INSTALL_DIR
57
57
  ENV['RAILS_ENV'] = 'production'
58
- # `mongrel_rails start -p #{config['port'] || 3000} -e production -c #{INSTALL_DIR} -d -m #{INSTALL_DIR}/config/mime_types.yaml -P #{PID_FILE} 1>#{LOG_DIR}/stdout.log 2>#{LOG_DIR}/stderr.log`
59
- `glassfish -p #{config['port'] || 3000} -e production -d -P #{PID_FILE} 1>#{LOG_DIR}/stdout.log 2>#{LOG_DIR}/stderr.log`
58
+ if defined? JRUBY_VERSION
59
+ # `glassfish -p #{config['port'] || 3000} -e production -d -P #{PID_FILE} 1>#{LOG_DIR}/stdout.log 2>#{LOG_DIR}/stderr.log`
60
+ `jruby -S trinidad -t -p #{config['port'] || 3000} -e production -ldaemon -d #{PID_FILE} 1>#{LOG_DIR}/stdout.log 2>#{LOG_DIR}/stderr.log`
61
+ else
62
+ `mongrel_rails start -p #{config['port'] || 3000} -e production -c #{INSTALL_DIR} -d -m #{INSTALL_DIR}/config/mime_types.yaml -P #{PID_FILE} 1>#{LOG_DIR}/stdout.log 2>#{LOG_DIR}/stderr.log`
63
+ end
60
64
  end
61
65
 
62
66
  def stop(config)
63
- `mongrel_rails stop -c #{INSTALL_DIR} -P #{PID_FILE}`
67
+ if File.exists? PID_FILE
68
+ # `mongrel_rails stop -c #{INSTALL_DIR} -P #{PID_FILE}`
69
+ system "kill `cat #{PID_FILE}`"
70
+ File.delete PID_FILE
71
+ else
72
+ puts "#{APPLICATION} not running."
73
+ end
64
74
  end
65
75
 
66
76
  def get_pid
@@ -140,8 +150,8 @@ when 'setup_unix'
140
150
  Dir.chdir INSTALL_DIR
141
151
  Dir.mkdir LOG_DIR unless File.exists? LOG_DIR
142
152
  ENV['RAILS_ENV'] = 'production'
143
- puts `bundle install`
144
- puts `rake db:migrate #{'--trace' if debug}`
153
+ puts `#{'jruby -S' if RUBY_PLATFORM =='java'} bundle install`
154
+ puts `#{'jruby -S' if RUBY_PLATFORM =='java'} rake db:migrate #{'--trace' if debug}`
145
155
  raise "Could not migrate database: #{$? >> 8}:#{$? & 0xff}" unless ($? >> 8) == 0
146
156
 
147
157
  # TODO: provide startup information based on launchd in OS X versions >= 10.4
@@ -174,6 +184,7 @@ when 'setup_unix'
174
184
  end
175
185
  end
176
186
  end
187
+ FileUtils.mkdir_p File.dirname(config_file)
177
188
  FileUtils.cp "#{INSTALL_DIR}/etc/#{APPLICATION}.conf", config_file unless File.exists? config_file
178
189
  puts
179
190
  else
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env ruby
1
+ #!/usr/bin/env jruby
2
2
  #
3
3
  # backlog Startup script for the backlog application
4
4
  #
@@ -6,5 +6,6 @@ Bundler.require(:default, Rails.env) if defined?(Bundler)
6
6
  module Backlog
7
7
  class Application < Rails::Application
8
8
  config.secret_token = "Uffsbarr, I'hll pha<dr, cum rAgdios, Vixef."
9
+ config.time_zone = 'Copenhagen'
9
10
  end
10
11
  end
@@ -12,3 +12,4 @@ production:
12
12
  adapter: postgresql
13
13
  database: backlog_production
14
14
  username: postgres
15
+ host: celina
@@ -0,0 +1,26 @@
1
+ begin
2
+ gemfile = File.expand_path('../../Gemfile', __FILE__)
3
+ begin
4
+ ENV['BUNDLE_GEMFILE'] = gemfile
5
+ require 'rubygems'
6
+ require 'bundler'
7
+ require 'thor'
8
+ Bundler.ui = Bundler::UI::Shell.new(Thor::Shell::Basic.new)
9
+ Bundler.ui.debug!
10
+ Bundler::Installer.install(Bundler.root, Bundler.definition)
11
+ rescue Bundler::GemNotFound => e
12
+ puts e.message
13
+ puts "Try running `bundle install`."
14
+ STDERR.puts e.message
15
+ STDERR.puts "Try running `bundle install`."
16
+ exit!
17
+ end if File.exist?(gemfile)
18
+ rescue
19
+ puts $!.message
20
+ puts $!.backtrace.join("\n")
21
+ exit(1)
22
+ end
23
+
24
+ f = File.open(File.join(File.dirname(__FILE__), "Rakefile"), "w") # create dummy rakefile to indicate success
25
+ f.write("task :default\n")
26
+ f.close
@@ -1,12 +1,12 @@
1
1
  class Time
2
2
  def self.next_quarter
3
- now = Time.now
3
+ now = Time.zone.now
4
4
  now -= now.sec
5
5
  next_quarter = now + (15 - now.min % 15).minutes
6
6
  end
7
7
 
8
8
  def self.previous_quarter
9
- now = Time.now
9
+ now = Time.zone.now
10
10
  now -= now.sec
11
11
  previous_quarter = now - (now.min % 15).minutes
12
12
  end
@@ -2,8 +2,6 @@ ENV["RAILS_ENV"] = "test"
2
2
  require File.expand_path('../../config/environment', __FILE__)
3
3
  require 'rails/test_help'
4
4
 
5
- # ActiveSupport::Dependencies.autoload_paths.unshift Rails.root.to_s + '/test/mocks/test'
6
-
7
5
  class ActiveSupport::TestCase
8
6
  def self.main_scenario
9
7
  fixtures :parties, :users, :groups, :groups_users, :projects, :periods, :tasks,
@@ -92,7 +92,7 @@ class UserTest < ActiveSupport::TestCase
92
92
 
93
93
  u.login = "x"
94
94
  assert !u.save
95
- assert u.errors.invalid?(:login)
95
+ assert u.errors[:login].any?
96
96
 
97
97
  u.login = "hugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahugeteslahug"
98
98
  assert !u.save
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 37
8
- - 1
9
- version: 0.37.1
8
+ - 2
9
+ version: 0.37.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Uwe Kubosch
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-12-09 00:00:00 +01:00
17
+ date: 2010-12-22 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -151,8 +151,8 @@ description: |-
151
151
  email: uwe@kubosch.no
152
152
  executables:
153
153
  - backlog
154
- extensions: []
155
-
154
+ extensions:
155
+ - ext/mkrf_conf.rb
156
156
  extra_rdoc_files: []
157
157
 
158
158
  files:
@@ -167,6 +167,7 @@ files:
167
167
  - Manifest.txt
168
168
  - MODIFICATIONS.txt
169
169
  - Rakefile
170
+ - Rakefile~
170
171
  - README.txt
171
172
  - README_LOGIN_SUGAR
172
173
  - Screenshot.png
@@ -417,6 +418,7 @@ files:
417
418
  - db/migrate/20101006092700_rename_backlogs_to_projects.rb
418
419
  - db/migrate/20101006092700_rename_backlogs_to_projects.rb~
419
420
  - etc/backlog.conf
421
+ - ext/mkrf_conf.rb
420
422
  - lib/array_helper.rb
421
423
  - lib/backlog
422
424
  - lib/big_decimal_yaml_fix.rb