mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-17 15:50:13 +01:00
Merge branch 'master' into 1.7_branch
* master: Corrected the information about setting up the doc/manual submodule. Added an example of capistrano deployment recipes for deploying to a remote web host running Phusion Passenger (aka mod_rails), which is probably the easiest Rails deployment environment to configure. Update footer links for new website location Change mobile login form to post to proper URL for OpenID login. Resolves #810. Fix failing specs Don't re-generate remember token if we already have one. This should allow you to stay logged in on two devices at the same time. Closes #812.
This commit is contained in:
commit
3d6789ceb9
10 changed files with 145 additions and 6 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,6 +1,7 @@
|
||||||
*.tmproj
|
*.tmproj
|
||||||
config/database.yml
|
config/database.yml
|
||||||
config/environment.rb
|
config/environment.rb
|
||||||
|
config/deploy.rb
|
||||||
log
|
log
|
||||||
tmp
|
tmp
|
||||||
db/data.yml
|
db/data.yml
|
||||||
|
|
|
||||||
2
Capfile
Normal file
2
Capfile
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
load 'deploy' if respond_to?(:namespace) # cap2 differentiator
|
||||||
|
load 'config/deploy'
|
||||||
2
README
2
README
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
All the documentation for Tracks can be found within the /doc directory. It contains a manual in HTML (manual.html) or PDF format (manual.pdf), and this includes full instructions for both new installations and upgrades from older installations of Tracks. The instructions might appear long and intimidatingly complex, but that is mostly because of the number of different platforms supported, and the different configurations which can be used (e.g. running Tracks on your local computer or on a remote server). If you choose the appropriate section for your situation (installation vs. upgrade), and use the easiest (recommended) method, you should find the instructions easy to follow. If you encounter problems, try searching the wiki, forum or mailing list (URLs above), and ask a question if you cannot find a solution to your problem.
|
All the documentation for Tracks can be found within the /doc directory. It contains a manual in HTML (manual.html) or PDF format (manual.pdf), and this includes full instructions for both new installations and upgrades from older installations of Tracks. The instructions might appear long and intimidatingly complex, but that is mostly because of the number of different platforms supported, and the different configurations which can be used (e.g. running Tracks on your local computer or on a remote server). If you choose the appropriate section for your situation (installation vs. upgrade), and use the easiest (recommended) method, you should find the instructions easy to follow. If you encounter problems, try searching the wiki, forum or mailing list (URLs above), and ask a question if you cannot find a solution to your problem.
|
||||||
|
|
||||||
If you checked out Tracks from the GitHub repository, the manual is not provided by default and is in its own git submodule. To checkout the manual's source files, type "git submodule update --init doc/manual". From then on, you should be able to issue the command "git pull" in the doc/manual directory to update the manual with the latest changes.
|
If you checked out Tracks from the GitHub repository, the manual is not provided by default and is in its own git submodule. To checkout the manual's source files, type "git submodule init doc/manual & git submodule update doc/manual". From then on, you should be able to issue the command "git pull" in the doc/manual directory to update the manual with the latest changes.
|
||||||
|
|
||||||
For those upgrading, change notes are available in /doc/CHANGELOG. If you are thinking about contributing towards the development of Tracks, please read /doc/README_DEVELOPERS for general information, or /doc/tracks_api_wrapper.rb for information on Tracks' API.
|
For those upgrading, change notes are available in /doc/CHANGELOG. If you are thinking about contributing towards the development of Tracks, please read /doc/README_DEVELOPERS for general information, or /doc/tracks_api_wrapper.rb for information on Tracks' API.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -202,7 +202,7 @@ class User < ActiveRecord::Base
|
||||||
# These create and unset the fields required for remembering users between browser closes
|
# These create and unset the fields required for remembering users between browser closes
|
||||||
def remember_me
|
def remember_me
|
||||||
self.remember_token_expires_at = 2.weeks.from_now.utc
|
self.remember_token_expires_at = 2.weeks.from_now.utc
|
||||||
self.remember_token = self.class.sha1("#{login}--#{remember_token_expires_at}")
|
self.remember_token ||= self.class.sha1("#{login}--#{remember_token_expires_at}")
|
||||||
save(false)
|
save(false)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
<h4>...or login with an Open ID:</h4>
|
<h4>...or login with an Open ID:</h4>
|
||||||
|
|
||||||
<div id="openid_auth_form">
|
<div id="openid_auth_form">
|
||||||
<% form_tag formatted_open_id_begin_path(:format => 'm') do %>
|
<% form_tag formatted_login_path(:format => 'm') do %>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td width="100px"><label for="openid_url">Identity URL:</label></td>
|
<td width="100px"><label for="openid_url">Identity URL:</label></td>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<p>Send feedback on <%= TRACKS_VERSION %>: <a href="http://dev.rousette.org.uk/report/6">Trac</a> | <a href="http://www.rousette.org.uk/projects/forums/">Forum</a> | <a href="http://www.rousette.org.uk/projects/wiki/index">Wiki</a> | <a href="mailto:butshesagirl@rousette.org.uk?subject=Tracks feedback">Email</a> | <a href="http://www.rousette.org.uk/projects/">Website</a> | <a href="http://www.rousette.org.uk/projects/tracks/contribute">Contribute</a></p>
|
<p>Send feedback on <%= TRACKS_VERSION %>: <a href="http://www.assembla.com/spaces/tracks-tickets/tickets">Bugs</a> | <a href="http://www.getontracks.org/forums/">Forum</a> | <a href="http://www.getontracks.org/wiki/">Wiki</a> | <a href="mailto:butshesagirl@rousette.org.uk?subject=Tracks feedback">Email</a> | <a href="http://www.getontracks.org/">Website</a> | <a href="http://www.getontracks.org/development/">Contribute</a></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
101
config/deploy.rb-example
Normal file
101
config/deploy.rb-example
Normal file
|
|
@ -0,0 +1,101 @@
|
||||||
|
#############################################################
|
||||||
|
# This file is designed as a starting point to use
|
||||||
|
# capistrano to deploy the trunk of tracks to a webhost
|
||||||
|
# where it is served using Phusion Passenger. For more
|
||||||
|
# info on getting started with Passenger, see
|
||||||
|
# http://www.modrails.com/
|
||||||
|
#############################################################
|
||||||
|
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
# Application
|
||||||
|
#############################################################
|
||||||
|
|
||||||
|
set :application, "tracks"
|
||||||
|
set :deploy_to, "/var/www/apps/tracks"
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
# Settings
|
||||||
|
#############################################################
|
||||||
|
|
||||||
|
default_run_options[:pty] = true
|
||||||
|
ssh_options[:forward_agent] = true
|
||||||
|
set :use_sudo, true
|
||||||
|
set :scm_verbose, true
|
||||||
|
set :rails_env, "production"
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
# Servers
|
||||||
|
#############################################################
|
||||||
|
|
||||||
|
#set :user, "your_login_name_on_your_webhost_if_different_from_local"
|
||||||
|
set :domain, "tracks.yoursite.com"
|
||||||
|
server domain, :app, :web
|
||||||
|
role :db, domain, :primary => true
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
# Git
|
||||||
|
#############################################################
|
||||||
|
|
||||||
|
set :scm, :git
|
||||||
|
set :branch, "master"
|
||||||
|
set :repository, "git://github.com/bsag/tracks.git"
|
||||||
|
set :deploy_via, :remote_cache
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
# Passenger
|
||||||
|
#############################################################
|
||||||
|
|
||||||
|
namespace :deploy do
|
||||||
|
desc "Symlink config files"
|
||||||
|
task :before_symlink do
|
||||||
|
run "rm #{release_path}/public/.htaccess" #not compatible with Passenger
|
||||||
|
run "ln -s #{shared_path}/config/database.yml #{release_path}/config/database.yml"
|
||||||
|
run "ln -s #{shared_path}/config/environment.rb #{release_path}/config/environment.rb"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Restart passenger on deploy
|
||||||
|
desc "Restarting mod_rails with restart.txt"
|
||||||
|
task :restart, :roles => :app, :except => { :no_release => true } do
|
||||||
|
run "touch #{current_path}/tmp/restart.txt"
|
||||||
|
end
|
||||||
|
|
||||||
|
[:start, :stop].each do |t|
|
||||||
|
desc "#{t} task is a no-op with mod_rails"
|
||||||
|
task t, :roles => :app do ; end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
namespace :db do
|
||||||
|
desc 'Dumps the production database to db/production_data.sql on the remote server'
|
||||||
|
task :remote_db_dump, :roles => :db, :only => { :primary => true } do
|
||||||
|
run "cd #{deploy_to}/#{current_dir} && " +
|
||||||
|
"rake RAILS_ENV=#{rails_env} db:dump_sql --trace"
|
||||||
|
end
|
||||||
|
|
||||||
|
desc 'Downloads db/production_data.sql from the remote production environment to your local machine'
|
||||||
|
task :remote_db_download, :roles => :db, :only => { :primary => true } do
|
||||||
|
execute_on_servers(options) do |servers|
|
||||||
|
self.sessions[servers.first].sftp.connect do |tsftp|
|
||||||
|
tsftp.download!("#{deploy_to}/#{current_dir}/db/production_data.sql", "db/production_data.sql")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
desc 'Cleans up data dump file'
|
||||||
|
task :remote_db_cleanup, :roles => :db, :only => { :primary => true } do
|
||||||
|
execute_on_servers(options) do |servers|
|
||||||
|
self.sessions[servers.first].sftp.connect do |tsftp|
|
||||||
|
tsftp.remove! "#{deploy_to}/#{current_dir}/db/production_data.sql"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
desc 'Dumps, downloads and then cleans up the production data dump'
|
||||||
|
task :remote_db_runner do
|
||||||
|
remote_db_dump
|
||||||
|
remote_db_download
|
||||||
|
remote_db_cleanup
|
||||||
|
end
|
||||||
|
end
|
||||||
27
lib/tasks/database.rake
Normal file
27
lib/tasks/database.rake
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
require 'rake'
|
||||||
|
|
||||||
|
namespace :db do
|
||||||
|
desc "Dump the current SQLite3 or MySQL database to a sql file"
|
||||||
|
task :dump_sql do
|
||||||
|
load 'config/environment.rb'
|
||||||
|
abcs = ActiveRecord::Base.configurations
|
||||||
|
case abcs[RAILS_ENV]["adapter"]
|
||||||
|
when 'mysql'
|
||||||
|
ActiveRecord::Base.establish_connection(abcs[RAILS_ENV])
|
||||||
|
File.open("db/#{RAILS_ENV}_data.sql", "w+") do |f|
|
||||||
|
if abcs[RAILS_ENV]["password"].blank?
|
||||||
|
f << `mysqldump -h #{abcs[RAILS_ENV]["host"]} -u #{abcs[RAILS_ENV]["username"]} #{abcs[RAILS_ENV]["database"]}`
|
||||||
|
else
|
||||||
|
f << `mysqldump -h #{abcs[RAILS_ENV]["host"]} -u #{abcs[RAILS_ENV]["username"]} -p#{abcs[RAILS_ENV]["password"]} #{abcs[RAILS_ENV]["database"]}`
|
||||||
|
end
|
||||||
|
end
|
||||||
|
when 'sqlite3'
|
||||||
|
ActiveRecord::Base.establish_connection(abcs[RAILS_ENV])
|
||||||
|
File.open("db/#{RAILS_ENV}_data.sql", "w+") do |f|
|
||||||
|
f << `sqlite3 #{abcs[RAILS_ENV]["database"]} .dump`
|
||||||
|
end
|
||||||
|
else
|
||||||
|
raise "Task not supported by '#{abcs[RAILS_ENV]['adapter']}'"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -170,7 +170,7 @@ describe Todo do
|
||||||
it 'is starred if tag is "starred"' do
|
it 'is starred if tag is "starred"' do
|
||||||
todo = create_todo
|
todo = create_todo
|
||||||
todo.should_not be_starred
|
todo.should_not be_starred
|
||||||
todo.add_tag('starred')
|
todo._add_tags('starred')
|
||||||
todo.reload
|
todo.reload
|
||||||
todo.should be_starred
|
todo.should be_starred
|
||||||
end
|
end
|
||||||
|
|
@ -178,7 +178,7 @@ describe Todo do
|
||||||
describe 'when toggling star flag' do
|
describe 'when toggling star flag' do
|
||||||
it 'toggles to not starred when starred' do
|
it 'toggles to not starred when starred' do
|
||||||
todo = create_todo
|
todo = create_todo
|
||||||
todo.add_tag('starred')
|
todo._add_tags('starred')
|
||||||
todo.should be_starred
|
todo.should be_starred
|
||||||
todo.toggle_star!
|
todo.toggle_star!
|
||||||
todo.reload
|
todo.reload
|
||||||
|
|
|
||||||
8
spec/views/login/login_mobile.html.erb_spec.rb
Normal file
8
spec/views/login/login_mobile.html.erb_spec.rb
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
require File.dirname(__FILE__) + '/../../spec_helper'
|
||||||
|
|
||||||
|
describe "/login.m" do
|
||||||
|
it "should render without an error" do
|
||||||
|
render :action => 'login/login_mobile.html.erb', :layout => 'mobile.m.erb'
|
||||||
|
response.should_not have_tag("div#Application-Trace")
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Add table
Add a link
Reference in a new issue