mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-17 07:40:12 +01:00
Merge branch 'master' into patch-1
This commit is contained in:
commit
326d434cd7
60 changed files with 1749 additions and 1079 deletions
|
|
@ -1,4 +1,18 @@
|
||||||
engines:
|
version: "2"
|
||||||
|
checks:
|
||||||
|
file-lines:
|
||||||
|
config:
|
||||||
|
threshold: 300
|
||||||
|
method-complexity:
|
||||||
|
config:
|
||||||
|
threshold: 50
|
||||||
|
method-count:
|
||||||
|
config:
|
||||||
|
threshold: 20
|
||||||
|
method-lines:
|
||||||
|
config:
|
||||||
|
threshold: 100
|
||||||
|
plugins:
|
||||||
brakeman:
|
brakeman:
|
||||||
enabled: true
|
enabled: true
|
||||||
fixme:
|
fixme:
|
||||||
|
|
@ -16,3 +30,5 @@ engines:
|
||||||
enabled: false
|
enabled: false
|
||||||
Rubocop/Style/HashSyntax:
|
Rubocop/Style/HashSyntax:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
#exclude_patterns:
|
||||||
|
#- app/assets/javascripts-jquery-ui
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
.bundle
|
.bundle
|
||||||
.git
|
|
||||||
config/database.yml
|
config/database.yml
|
||||||
config/site.yml
|
config/site.yml
|
||||||
coverage
|
coverage
|
||||||
|
|
|
||||||
47
.github/workflows/build-docker-image.yml
vendored
Normal file
47
.github/workflows/build-docker-image.yml
vendored
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
name: 'build'
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-publish-latest:
|
||||||
|
name: 'Build latest'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2 # Checking out the repo
|
||||||
|
-
|
||||||
|
name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v2
|
||||||
|
-
|
||||||
|
name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v2
|
||||||
|
-
|
||||||
|
name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
-
|
||||||
|
name: Login to GitHub Container Registry
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
-
|
||||||
|
name: Build and push
|
||||||
|
uses: docker/build-push-action@v3
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
push: true
|
||||||
|
tags: |
|
||||||
|
tracksapp/tracks:latest
|
||||||
|
tracksapp/tracks:master
|
||||||
|
ghcr.io/tracksapp/tracks:latest
|
||||||
|
|
||||||
|
#ghcr.io/TracksApp/tracks:1.0.0
|
||||||
|
#tracksapp/tracks:1.0.0
|
||||||
6
.github/workflows/continuous-integration.yml
vendored
6
.github/workflows/continuous-integration.yml
vendored
|
|
@ -6,13 +6,9 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
ruby: ["2.5", "2.6", "2.7"]
|
ruby: ["2.7", "3.0"]
|
||||||
db: [sqlite, mysql, postgres]
|
db: [sqlite, mysql, postgres]
|
||||||
exclude:
|
exclude:
|
||||||
- ruby: "2.5"
|
|
||||||
db: sqlite
|
|
||||||
- ruby: "2.5"
|
|
||||||
db: postgres
|
|
||||||
- ruby: "2.6"
|
- ruby: "2.6"
|
||||||
db: sqlite
|
db: sqlite
|
||||||
- ruby: "2.6"
|
- ruby: "2.6"
|
||||||
|
|
|
||||||
17
.rubocop.yml
17
.rubocop.yml
|
|
@ -16,3 +16,20 @@ Style/StringLiterals:
|
||||||
|
|
||||||
Layout/AlignParameters:
|
Layout/AlignParameters:
|
||||||
EnforcedStyle: with_fixed_indentation
|
EnforcedStyle: with_fixed_indentation
|
||||||
|
|
||||||
|
Metrics/AbcSize:
|
||||||
|
Max: 100
|
||||||
|
Metrics/CyclomaticComplexity:
|
||||||
|
Max: 100
|
||||||
|
Metrics/MethodLength:
|
||||||
|
Max: 100
|
||||||
|
CountAsOne: ['array', 'hash', 'heredoc']
|
||||||
|
Metrics/ModuleLength:
|
||||||
|
Max: 300
|
||||||
|
CountAsOne: ['array', 'hash', 'heredoc']
|
||||||
|
Metrics/ClassLength:
|
||||||
|
Max: 300
|
||||||
|
Metrics/ParameterLists:
|
||||||
|
Max: 20
|
||||||
|
Metrics/PerceivedComplexity:
|
||||||
|
Max: 100
|
||||||
|
|
|
||||||
25
Dockerfile
25
Dockerfile
|
|
@ -1,4 +1,4 @@
|
||||||
FROM ruby:2.7.1
|
FROM ruby:2.7
|
||||||
|
|
||||||
# throw errors if Gemfile has been modified since Gemfile.lock
|
# throw errors if Gemfile has been modified since Gemfile.lock
|
||||||
RUN bundle config --global frozen 1
|
RUN bundle config --global frozen 1
|
||||||
|
|
@ -13,18 +13,35 @@ RUN bundle install --jobs 4
|
||||||
|
|
||||||
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
|
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
|
||||||
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
|
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
|
||||||
RUN apt-get update && apt-get install -y yarn
|
RUN apt-get update && apt-get install -y yarn netcat
|
||||||
|
|
||||||
RUN mkdir /app/log
|
RUN mkdir /app/log
|
||||||
|
|
||||||
COPY . /app/
|
COPY COPYING /app/
|
||||||
|
COPY config /app/config/
|
||||||
COPY config/database.docker.yml /app/config/database.yml
|
COPY config/database.docker.yml /app/config/database.yml
|
||||||
COPY config/site.docker.yml /app/config/site.yml
|
COPY config/site.docker.yml /app/config/site.yml
|
||||||
|
|
||||||
|
COPY bin /app/bin/
|
||||||
|
COPY script /app/script/
|
||||||
|
COPY public /app/public/
|
||||||
|
COPY vendor /app/vendor/
|
||||||
|
|
||||||
|
COPY .yardopts /app/
|
||||||
|
COPY Rakefile /app/
|
||||||
|
COPY config.ru /app/
|
||||||
|
COPY docker-entrypoint.sh /app/
|
||||||
|
|
||||||
|
COPY lib /app/lib/
|
||||||
|
COPY app /app/app/
|
||||||
|
COPY db /app/db/
|
||||||
|
|
||||||
|
COPY .git /app/.git
|
||||||
|
|
||||||
RUN RAILS_ENV=production bundle exec rake assets:precompile
|
RUN RAILS_ENV=production bundle exec rake assets:precompile
|
||||||
|
|
||||||
ENTRYPOINT ["/app/docker-entrypoint.sh"]
|
ENTRYPOINT ["/app/docker-entrypoint.sh"]
|
||||||
|
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
||||||
CMD ["rails", "server", "-b", "0.0.0.0"]
|
CMD ["./bin/rails", "server", "-b", "0.0.0.0"]
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
FROM ruby:2.6.5
|
FROM ruby:2.6
|
||||||
|
|
||||||
# throw errors if Gemfile has been modified since Gemfile.lock
|
# throw errors if Gemfile has been modified since Gemfile.lock
|
||||||
RUN bundle config --global frozen 1
|
RUN bundle config --global frozen 1
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
FROM ruby:2.5.7
|
FROM ruby:3.0
|
||||||
|
|
||||||
# throw errors if Gemfile has been modified since Gemfile.lock
|
# throw errors if Gemfile has been modified since Gemfile.lock
|
||||||
RUN bundle config --global frozen 1
|
RUN bundle config --global frozen 1
|
||||||
34
Gemfile
34
Gemfile
|
|
@ -5,23 +5,23 @@ gem 'activemodel-serializers-xml', '~> 1.0.1'
|
||||||
|
|
||||||
gem 'coffee-rails', '~> 5.0.0'
|
gem 'coffee-rails', '~> 5.0.0'
|
||||||
|
|
||||||
gem 'jquery-rails', '~> 4.4'
|
gem 'jquery-rails', '~> 4.5'
|
||||||
gem 'jquery-ui-rails', '~>6.0.1'
|
gem 'jquery-ui-rails', '~>6.0.1'
|
||||||
|
|
||||||
gem 'rails', '~> 6.0.3'
|
gem 'rails', '~> 6.0.0'
|
||||||
gem 'sassc-rails', '~> 2.1.2'
|
gem 'sassc-rails', '~> 2.1.2'
|
||||||
|
|
||||||
gem 'bootstrap-sass', '3.4.1'
|
gem 'bootstrap-sass', '3.4.1'
|
||||||
gem 'font-awesome-sass', '~> 5.15.1'
|
gem 'font-awesome-sass', '~> 6.1.2'
|
||||||
|
|
||||||
gem 'uglifier', '>=1.3.0'
|
gem 'uglifier', '>=1.3.0'
|
||||||
|
|
||||||
gem 'aasm', '~> 5.2.0'
|
gem 'aasm', '~> 5.3.0'
|
||||||
gem 'acts_as_list'
|
gem 'acts_as_list'
|
||||||
gem 'bcrypt', '~> 3.1.16'
|
gem 'bcrypt', '~> 3.1.18'
|
||||||
gem 'htmlentities'
|
gem 'htmlentities'
|
||||||
gem 'paperclip'
|
gem "kt-paperclip", "~> 7.1"
|
||||||
gem 'puma', '~> 5.5'
|
gem 'puma', '~> 5.6'
|
||||||
gem 'rails_autolink'
|
gem 'rails_autolink'
|
||||||
gem 'RedCloth'
|
gem 'RedCloth'
|
||||||
gem 'sanitize', '~> 6.0'
|
gem 'sanitize', '~> 6.0'
|
||||||
|
|
@ -36,35 +36,35 @@ end
|
||||||
|
|
||||||
# Use --without <group> argument to skip unnecessary drivers
|
# Use --without <group> argument to skip unnecessary drivers
|
||||||
gem 'sqlite3', group: :sqlite
|
gem 'sqlite3', group: :sqlite
|
||||||
gem 'mysql2', '~> 0.5.3', group: :mysql
|
gem 'mysql2', '~> 0.5.4', group: :mysql
|
||||||
gem 'pg', '~> 1.2.3', group: :postgresql
|
gem 'pg', '~> 1.4.3', group: :postgresql
|
||||||
|
|
||||||
group :development do
|
group :development do
|
||||||
gem 'spring'
|
gem 'spring', '~> 4'
|
||||||
gem 'yard'
|
gem 'yard'
|
||||||
|
|
||||||
gem 'tolk', '~> 4.1.0'
|
gem 'tolk', '~> 4.3.0'
|
||||||
|
|
||||||
gem 'bullet'
|
gem 'bullet'
|
||||||
gem 'rack-mini-profiler'
|
gem 'rack-mini-profiler'
|
||||||
gem 'solargraph'
|
gem 'solargraph'
|
||||||
|
|
||||||
gem 'i18n-tasks', '~> 0.9.35'
|
gem 'i18n-tasks', '~> 1.0.11'
|
||||||
end
|
end
|
||||||
|
|
||||||
group :development, :test do
|
group :development, :test do
|
||||||
gem 'byebug'
|
gem 'byebug'
|
||||||
gem 'listen'
|
gem 'listen'
|
||||||
gem 'rubocop', '~> 1.22', require: false
|
gem 'rubocop', '~> 1.34', require: false
|
||||||
end
|
end
|
||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
# Get test coverage info on codeclimate
|
# get test coverage info on codeclimate
|
||||||
gem 'codeclimate-test-reporter', '1.0.7', require: nil
|
gem 'codeclimate-test-reporter', '1.0.7', group: :test, require: nil
|
||||||
gem 'database_cleaner'
|
gem 'database_cleaner', '~> 1'
|
||||||
gem 'factory_bot_rails'
|
gem 'factory_bot_rails'
|
||||||
gem 'mocha', :require => false
|
|
||||||
gem 'minitest-stub-const'
|
gem 'minitest-stub-const'
|
||||||
|
gem 'mocha', :require => false
|
||||||
gem 'rails-controller-testing'
|
gem 'rails-controller-testing'
|
||||||
gem 'rails-dom-testing', '~> 2.0.0'
|
gem 'rails-dom-testing', '~> 2.0.0'
|
||||||
gem 'rspec-expectations'
|
gem 'rspec-expectations'
|
||||||
|
|
|
||||||
301
Gemfile.lock
301
Gemfile.lock
|
|
@ -2,28 +2,28 @@ GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
RedCloth (4.3.2)
|
RedCloth (4.3.2)
|
||||||
aasm (5.2.0)
|
aasm (5.3.0)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
actioncable (6.0.4.1)
|
actioncable (6.0.5.1)
|
||||||
actionpack (= 6.0.4.1)
|
actionpack (= 6.0.5.1)
|
||||||
nio4r (~> 2.0)
|
nio4r (~> 2.0)
|
||||||
websocket-driver (>= 0.6.1)
|
websocket-driver (>= 0.6.1)
|
||||||
actionmailbox (6.0.4.1)
|
actionmailbox (6.0.5.1)
|
||||||
actionpack (= 6.0.4.1)
|
actionpack (= 6.0.5.1)
|
||||||
activejob (= 6.0.4.1)
|
activejob (= 6.0.5.1)
|
||||||
activerecord (= 6.0.4.1)
|
activerecord (= 6.0.5.1)
|
||||||
activestorage (= 6.0.4.1)
|
activestorage (= 6.0.5.1)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 6.0.5.1)
|
||||||
mail (>= 2.7.1)
|
mail (>= 2.7.1)
|
||||||
actionmailer (6.0.4.1)
|
actionmailer (6.0.5.1)
|
||||||
actionpack (= 6.0.4.1)
|
actionpack (= 6.0.5.1)
|
||||||
actionview (= 6.0.4.1)
|
actionview (= 6.0.5.1)
|
||||||
activejob (= 6.0.4.1)
|
activejob (= 6.0.5.1)
|
||||||
mail (~> 2.5, >= 2.5.4)
|
mail (~> 2.5, >= 2.5.4)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
actionpack (6.0.4.1)
|
actionpack (6.0.5.1)
|
||||||
actionview (= 6.0.4.1)
|
actionview (= 6.0.5.1)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 6.0.5.1)
|
||||||
rack (~> 2.0, >= 2.0.8)
|
rack (~> 2.0, >= 2.0.8)
|
||||||
rack-test (>= 0.6.3)
|
rack-test (>= 0.6.3)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
|
|
@ -31,36 +31,36 @@ GEM
|
||||||
actionpack-xml_parser (2.0.1)
|
actionpack-xml_parser (2.0.1)
|
||||||
actionpack (>= 5.0)
|
actionpack (>= 5.0)
|
||||||
railties (>= 5.0)
|
railties (>= 5.0)
|
||||||
actiontext (6.0.4.1)
|
actiontext (6.0.5.1)
|
||||||
actionpack (= 6.0.4.1)
|
actionpack (= 6.0.5.1)
|
||||||
activerecord (= 6.0.4.1)
|
activerecord (= 6.0.5.1)
|
||||||
activestorage (= 6.0.4.1)
|
activestorage (= 6.0.5.1)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 6.0.5.1)
|
||||||
nokogiri (>= 1.8.5)
|
nokogiri (>= 1.8.5)
|
||||||
actionview (6.0.4.1)
|
actionview (6.0.5.1)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 6.0.5.1)
|
||||||
builder (~> 3.1)
|
builder (~> 3.1)
|
||||||
erubi (~> 1.4)
|
erubi (~> 1.4)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
||||||
activejob (6.0.4.1)
|
activejob (6.0.5.1)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 6.0.5.1)
|
||||||
globalid (>= 0.3.6)
|
globalid (>= 0.3.6)
|
||||||
activemodel (6.0.4.1)
|
activemodel (6.0.5.1)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 6.0.5.1)
|
||||||
activemodel-serializers-xml (1.0.2)
|
activemodel-serializers-xml (1.0.2)
|
||||||
activemodel (> 5.x)
|
activemodel (> 5.x)
|
||||||
activesupport (> 5.x)
|
activesupport (> 5.x)
|
||||||
builder (~> 3.1)
|
builder (~> 3.1)
|
||||||
activerecord (6.0.4.1)
|
activerecord (6.0.5.1)
|
||||||
activemodel (= 6.0.4.1)
|
activemodel (= 6.0.5.1)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 6.0.5.1)
|
||||||
activestorage (6.0.4.1)
|
activestorage (6.0.5.1)
|
||||||
actionpack (= 6.0.4.1)
|
actionpack (= 6.0.5.1)
|
||||||
activejob (= 6.0.4.1)
|
activejob (= 6.0.5.1)
|
||||||
activerecord (= 6.0.4.1)
|
activerecord (= 6.0.5.1)
|
||||||
marcel (~> 1.0.0)
|
marcel (~> 1.0)
|
||||||
activesupport (6.0.4.1)
|
activesupport (6.0.5.1)
|
||||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||||
i18n (>= 0.7, < 2)
|
i18n (>= 0.7, < 2)
|
||||||
minitest (~> 5.1)
|
minitest (~> 5.1)
|
||||||
|
|
@ -69,16 +69,24 @@ GEM
|
||||||
acts_as_list (1.0.4)
|
acts_as_list (1.0.4)
|
||||||
activerecord (>= 4.2)
|
activerecord (>= 4.2)
|
||||||
ast (2.4.2)
|
ast (2.4.2)
|
||||||
autoprefixer-rails (10.1.0.0)
|
autoprefixer-rails (10.4.7.0)
|
||||||
execjs
|
execjs (~> 2)
|
||||||
backport (1.2.0)
|
backport (1.2.0)
|
||||||
bcrypt (3.1.16)
|
bcrypt (3.1.18)
|
||||||
benchmark (0.1.1)
|
benchmark (0.2.0)
|
||||||
|
better_html (1.0.16)
|
||||||
|
actionview (>= 4.0)
|
||||||
|
activesupport (>= 4.0)
|
||||||
|
ast (~> 2.0)
|
||||||
|
erubi (~> 1.4)
|
||||||
|
html_tokenizer (~> 0.0.6)
|
||||||
|
parser (>= 2.4)
|
||||||
|
smart_properties
|
||||||
bootstrap-sass (3.4.1)
|
bootstrap-sass (3.4.1)
|
||||||
autoprefixer-rails (>= 5.2.1)
|
autoprefixer-rails (>= 5.2.1)
|
||||||
sassc (>= 2.0.0)
|
sassc (>= 2.0.0)
|
||||||
builder (3.2.4)
|
builder (3.2.4)
|
||||||
bullet (6.1.5)
|
bullet (7.0.3)
|
||||||
activesupport (>= 3.0.0)
|
activesupport (>= 3.0.0)
|
||||||
uniform_notifier (~> 1.11)
|
uniform_notifier (~> 1.11)
|
||||||
byebug (11.1.3)
|
byebug (11.1.3)
|
||||||
|
|
@ -92,31 +100,33 @@ GEM
|
||||||
coffee-script-source
|
coffee-script-source
|
||||||
execjs
|
execjs
|
||||||
coffee-script-source (1.12.2)
|
coffee-script-source (1.12.2)
|
||||||
concurrent-ruby (1.1.9)
|
concurrent-ruby (1.1.10)
|
||||||
crass (1.0.6)
|
crass (1.0.6)
|
||||||
database_cleaner (1.8.5)
|
database_cleaner (1.99.0)
|
||||||
diff-lcs (1.4.4)
|
diff-lcs (1.5.0)
|
||||||
docile (1.3.4)
|
docile (1.4.0)
|
||||||
e2mmap (0.1.0)
|
e2mmap (0.1.0)
|
||||||
erubi (1.10.0)
|
erubi (1.11.0)
|
||||||
execjs (2.7.0)
|
execjs (2.8.1)
|
||||||
factory_bot (6.2.0)
|
factory_bot (6.2.1)
|
||||||
activesupport (>= 5.0.0)
|
activesupport (>= 5.0.0)
|
||||||
factory_bot_rails (6.2.0)
|
factory_bot_rails (6.2.0)
|
||||||
factory_bot (~> 6.2.0)
|
factory_bot (~> 6.2.0)
|
||||||
railties (>= 5.0.0)
|
railties (>= 5.0.0)
|
||||||
ffi (1.15.3)
|
ffi (1.15.5)
|
||||||
font-awesome-sass (5.15.1)
|
font-awesome-sass (6.1.2)
|
||||||
sassc (>= 1.11)
|
sassc (~> 2.0)
|
||||||
globalid (0.5.2)
|
globalid (1.0.0)
|
||||||
activesupport (>= 5.0)
|
activesupport (>= 5.0)
|
||||||
highline (2.0.3)
|
highline (2.0.3)
|
||||||
|
html_tokenizer (0.0.7)
|
||||||
htmlentities (4.3.4)
|
htmlentities (4.3.4)
|
||||||
i18n (1.8.11)
|
i18n (1.12.0)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
i18n-tasks (0.9.35)
|
i18n-tasks (1.0.11)
|
||||||
activesupport (>= 4.0.2)
|
activesupport (>= 4.0.2)
|
||||||
ast (>= 2.1.0)
|
ast (>= 2.1.0)
|
||||||
|
better_html (~> 1.0)
|
||||||
erubi
|
erubi
|
||||||
highline (>= 2.0.0)
|
highline (>= 2.0.0)
|
||||||
i18n
|
i18n
|
||||||
|
|
@ -125,75 +135,73 @@ GEM
|
||||||
rainbow (>= 2.2.2, < 4.0)
|
rainbow (>= 2.2.2, < 4.0)
|
||||||
terminal-table (>= 1.5.1)
|
terminal-table (>= 1.5.1)
|
||||||
jaro_winkler (1.5.4)
|
jaro_winkler (1.5.4)
|
||||||
jquery-rails (4.4.0)
|
jquery-rails (4.5.0)
|
||||||
rails-dom-testing (>= 1, < 3)
|
rails-dom-testing (>= 1, < 3)
|
||||||
railties (>= 4.2.0)
|
railties (>= 4.2.0)
|
||||||
thor (>= 0.14, < 2.0)
|
thor (>= 0.14, < 2.0)
|
||||||
jquery-ui-rails (6.0.1)
|
jquery-ui-rails (6.0.1)
|
||||||
railties (>= 3.2.16)
|
railties (>= 3.2.16)
|
||||||
kramdown (2.3.1)
|
json (2.6.2)
|
||||||
|
kramdown (2.4.0)
|
||||||
rexml
|
rexml
|
||||||
kramdown-parser-gfm (1.1.0)
|
kramdown-parser-gfm (1.1.0)
|
||||||
kramdown (~> 2.0)
|
kramdown (~> 2.0)
|
||||||
|
kt-paperclip (7.1.1)
|
||||||
|
activemodel (>= 4.2.0)
|
||||||
|
activesupport (>= 4.2.0)
|
||||||
|
marcel (~> 1.0.1)
|
||||||
|
mime-types
|
||||||
|
terrapin (~> 0.6.0)
|
||||||
libv8 (3.16.14.19)
|
libv8 (3.16.14.19)
|
||||||
listen (3.7.0)
|
listen (3.7.1)
|
||||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||||
rb-inotify (~> 0.9, >= 0.9.10)
|
rb-inotify (~> 0.9, >= 0.9.10)
|
||||||
loofah (2.12.0)
|
loofah (2.18.0)
|
||||||
crass (~> 1.0.2)
|
crass (~> 1.0.2)
|
||||||
nokogiri (>= 1.5.9)
|
nokogiri (>= 1.5.9)
|
||||||
mail (2.7.1)
|
mail (2.7.1)
|
||||||
mini_mime (>= 0.1.1)
|
mini_mime (>= 0.1.1)
|
||||||
marcel (1.0.2)
|
marcel (1.0.2)
|
||||||
method_source (1.0.0)
|
method_source (1.0.0)
|
||||||
mime-types (3.3.1)
|
mime-types (3.4.1)
|
||||||
mime-types-data (~> 3.2015)
|
mime-types-data (~> 3.2015)
|
||||||
mime-types-data (3.2020.1104)
|
mime-types-data (3.2022.0105)
|
||||||
mimemagic (0.3.10)
|
|
||||||
nokogiri (~> 1)
|
|
||||||
rake
|
|
||||||
mini_mime (1.1.2)
|
mini_mime (1.1.2)
|
||||||
mini_portile2 (2.6.1)
|
mini_portile2 (2.8.0)
|
||||||
minitest (5.14.4)
|
minitest (5.16.2)
|
||||||
minitest-stub-const (0.6)
|
minitest-stub-const (0.6)
|
||||||
mocha (1.13.0)
|
mocha (1.14.0)
|
||||||
mysql2 (0.5.3)
|
mysql2 (0.5.4)
|
||||||
nio4r (2.5.8)
|
nio4r (2.5.8)
|
||||||
nokogiri (1.12.5)
|
nokogiri (1.13.8)
|
||||||
mini_portile2 (~> 2.6.1)
|
mini_portile2 (~> 2.8.0)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
paperclip (6.1.0)
|
parallel (1.22.1)
|
||||||
activemodel (>= 4.2.0)
|
parser (3.1.2.1)
|
||||||
activesupport (>= 4.2.0)
|
|
||||||
mime-types
|
|
||||||
mimemagic (~> 0.3.0)
|
|
||||||
terrapin (~> 0.6.0)
|
|
||||||
parallel (1.21.0)
|
|
||||||
parser (3.0.2.0)
|
|
||||||
ast (~> 2.4.1)
|
ast (~> 2.4.1)
|
||||||
pg (1.2.3)
|
pg (1.4.3)
|
||||||
puma (5.5.2)
|
puma (5.6.4)
|
||||||
nio4r (~> 2.0)
|
nio4r (~> 2.0)
|
||||||
racc (1.6.0)
|
racc (1.6.0)
|
||||||
rack (2.2.3)
|
rack (2.2.4)
|
||||||
rack-mini-profiler (2.3.3)
|
rack-mini-profiler (3.0.0)
|
||||||
rack (>= 1.2.0)
|
rack (>= 1.2.0)
|
||||||
rack-test (1.1.0)
|
rack-test (2.0.2)
|
||||||
rack (>= 1.0, < 3)
|
rack (>= 1.3)
|
||||||
rails (6.0.4.1)
|
rails (6.0.5.1)
|
||||||
actioncable (= 6.0.4.1)
|
actioncable (= 6.0.5.1)
|
||||||
actionmailbox (= 6.0.4.1)
|
actionmailbox (= 6.0.5.1)
|
||||||
actionmailer (= 6.0.4.1)
|
actionmailer (= 6.0.5.1)
|
||||||
actionpack (= 6.0.4.1)
|
actionpack (= 6.0.5.1)
|
||||||
actiontext (= 6.0.4.1)
|
actiontext (= 6.0.5.1)
|
||||||
actionview (= 6.0.4.1)
|
actionview (= 6.0.5.1)
|
||||||
activejob (= 6.0.4.1)
|
activejob (= 6.0.5.1)
|
||||||
activemodel (= 6.0.4.1)
|
activemodel (= 6.0.5.1)
|
||||||
activerecord (= 6.0.4.1)
|
activerecord (= 6.0.5.1)
|
||||||
activestorage (= 6.0.4.1)
|
activestorage (= 6.0.5.1)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 6.0.5.1)
|
||||||
bundler (>= 1.3.0)
|
bundler (>= 1.3.0)
|
||||||
railties (= 6.0.4.1)
|
railties (= 6.0.5.1)
|
||||||
sprockets-rails (>= 2.0.0)
|
sprockets-rails (>= 2.0.0)
|
||||||
rails-controller-testing (1.0.5)
|
rails-controller-testing (1.0.5)
|
||||||
actionpack (>= 5.0.1.rc1)
|
actionpack (>= 5.0.1.rc1)
|
||||||
|
|
@ -202,44 +210,45 @@ GEM
|
||||||
rails-dom-testing (2.0.3)
|
rails-dom-testing (2.0.3)
|
||||||
activesupport (>= 4.2.0)
|
activesupport (>= 4.2.0)
|
||||||
nokogiri (>= 1.6)
|
nokogiri (>= 1.6)
|
||||||
rails-html-sanitizer (1.4.2)
|
rails-html-sanitizer (1.4.3)
|
||||||
loofah (~> 2.3)
|
loofah (~> 2.3)
|
||||||
rails-i18n (6.0.0)
|
rails-i18n (7.0.5)
|
||||||
i18n (>= 0.7, < 2)
|
i18n (>= 0.7, < 2)
|
||||||
railties (>= 6.0.0, < 7)
|
railties (>= 6.0.0, < 8)
|
||||||
rails_autolink (1.1.6)
|
rails_autolink (1.1.6)
|
||||||
rails (> 3.1)
|
rails (> 3.1)
|
||||||
railties (6.0.4.1)
|
railties (6.0.5.1)
|
||||||
actionpack (= 6.0.4.1)
|
actionpack (= 6.0.5.1)
|
||||||
activesupport (= 6.0.4.1)
|
activesupport (= 6.0.5.1)
|
||||||
method_source
|
method_source
|
||||||
rake (>= 0.8.7)
|
rake (>= 0.8.7)
|
||||||
thor (>= 0.20.3, < 2.0)
|
thor (>= 0.20.3, < 2.0)
|
||||||
rainbow (3.0.0)
|
rainbow (3.1.1)
|
||||||
rake (13.0.6)
|
rake (13.0.6)
|
||||||
rb-fsevent (0.11.0)
|
rb-fsevent (0.11.1)
|
||||||
rb-inotify (0.10.1)
|
rb-inotify (0.10.1)
|
||||||
ffi (~> 1.0)
|
ffi (~> 1.0)
|
||||||
ref (2.0.0)
|
ref (2.0.0)
|
||||||
regexp_parser (2.1.1)
|
regexp_parser (2.5.0)
|
||||||
reverse_markdown (2.0.0)
|
reverse_markdown (2.1.1)
|
||||||
nokogiri
|
nokogiri
|
||||||
rexml (3.2.5)
|
rexml (3.2.5)
|
||||||
rspec-expectations (3.10.1)
|
rspec-expectations (3.11.0)
|
||||||
diff-lcs (>= 1.2.0, < 2.0)
|
diff-lcs (>= 1.2.0, < 2.0)
|
||||||
rspec-support (~> 3.10.0)
|
rspec-support (~> 3.11.0)
|
||||||
rspec-support (3.10.1)
|
rspec-support (3.11.0)
|
||||||
rubocop (1.22.3)
|
rubocop (1.35.0)
|
||||||
|
json (~> 2.3)
|
||||||
parallel (~> 1.10)
|
parallel (~> 1.10)
|
||||||
parser (>= 3.0.0.0)
|
parser (>= 3.1.2.1)
|
||||||
rainbow (>= 2.2.2, < 4.0)
|
rainbow (>= 2.2.2, < 4.0)
|
||||||
regexp_parser (>= 1.8, < 3.0)
|
regexp_parser (>= 1.8, < 3.0)
|
||||||
rexml
|
rexml (>= 3.2.5, < 4.0)
|
||||||
rubocop-ast (>= 1.12.0, < 2.0)
|
rubocop-ast (>= 1.20.1, < 2.0)
|
||||||
ruby-progressbar (~> 1.7)
|
ruby-progressbar (~> 1.7)
|
||||||
unicode-display_width (>= 1.4.0, < 3.0)
|
unicode-display_width (>= 1.4.0, < 3.0)
|
||||||
rubocop-ast (1.12.0)
|
rubocop-ast (1.21.0)
|
||||||
parser (>= 3.0.1.1)
|
parser (>= 3.1.1.0)
|
||||||
ruby-progressbar (1.11.0)
|
ruby-progressbar (1.11.0)
|
||||||
safe_yaml (1.0.5)
|
safe_yaml (1.0.5)
|
||||||
sanitize (6.0.0)
|
sanitize (6.0.0)
|
||||||
|
|
@ -258,8 +267,9 @@ GEM
|
||||||
simplecov-html (~> 0.11)
|
simplecov-html (~> 0.11)
|
||||||
simplecov_json_formatter (~> 0.1)
|
simplecov_json_formatter (~> 0.1)
|
||||||
simplecov-html (0.12.3)
|
simplecov-html (0.12.3)
|
||||||
simplecov_json_formatter (0.1.2)
|
simplecov_json_formatter (0.1.4)
|
||||||
solargraph (0.44.0)
|
smart_properties (1.17.0)
|
||||||
|
solargraph (0.45.0)
|
||||||
backport (~> 1.2)
|
backport (~> 1.2)
|
||||||
benchmark
|
benchmark
|
||||||
bundler (>= 1.17.2)
|
bundler (>= 1.17.2)
|
||||||
|
|
@ -274,15 +284,15 @@ GEM
|
||||||
thor (~> 1.0)
|
thor (~> 1.0)
|
||||||
tilt (~> 2.0)
|
tilt (~> 2.0)
|
||||||
yard (~> 0.9, >= 0.9.24)
|
yard (~> 0.9, >= 0.9.24)
|
||||||
spring (3.0.0)
|
spring (4.0.0)
|
||||||
sprockets (4.0.2)
|
sprockets (4.1.1)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
rack (> 1, < 3)
|
rack (> 1, < 3)
|
||||||
sprockets-rails (3.3.0)
|
sprockets-rails (3.4.2)
|
||||||
actionpack (>= 5.2)
|
actionpack (>= 5.2)
|
||||||
activesupport (>= 5.2)
|
activesupport (>= 5.2)
|
||||||
sprockets (>= 3.0.0)
|
sprockets (>= 3.0.0)
|
||||||
sqlite3 (1.4.2)
|
sqlite3 (1.4.4)
|
||||||
terminal-table (3.0.2)
|
terminal-table (3.0.2)
|
||||||
unicode-display_width (>= 1.1.1, < 3)
|
unicode-display_width (>= 1.1.1, < 3)
|
||||||
terrapin (0.6.0)
|
terrapin (0.6.0)
|
||||||
|
|
@ -290,77 +300,80 @@ GEM
|
||||||
therubyracer (0.12.3)
|
therubyracer (0.12.3)
|
||||||
libv8 (~> 3.16.14.15)
|
libv8 (~> 3.16.14.15)
|
||||||
ref
|
ref
|
||||||
thor (1.1.0)
|
thor (1.2.1)
|
||||||
thread_safe (0.3.6)
|
thread_safe (0.3.6)
|
||||||
tilt (2.0.10)
|
tilt (2.0.11)
|
||||||
tolk (4.1.0)
|
tolk (4.3.0)
|
||||||
rails (>= 5.0)
|
rails (>= 5.0)
|
||||||
safe_yaml (>= 0.8.6)
|
safe_yaml (>= 0.8.6)
|
||||||
sassc
|
sassc
|
||||||
|
sprockets-rails (~> 3.4)
|
||||||
tracks-chartjs-ror (3.6.4)
|
tracks-chartjs-ror (3.6.4)
|
||||||
rails (>= 3.1)
|
rails (>= 3.1)
|
||||||
tzinfo (1.2.9)
|
tzinfo (1.2.10)
|
||||||
thread_safe (~> 0.1)
|
thread_safe (~> 0.1)
|
||||||
uglifier (4.2.0)
|
uglifier (4.2.0)
|
||||||
execjs (>= 0.3.0, < 3)
|
execjs (>= 0.3.0, < 3)
|
||||||
unicode-display_width (2.1.0)
|
unicode-display_width (2.2.0)
|
||||||
uniform_notifier (1.14.2)
|
uniform_notifier (1.16.0)
|
||||||
|
webrick (1.7.0)
|
||||||
websocket-driver (0.7.5)
|
websocket-driver (0.7.5)
|
||||||
websocket-extensions (>= 0.1.0)
|
websocket-extensions (>= 0.1.0)
|
||||||
websocket-extensions (0.1.5)
|
websocket-extensions (0.1.5)
|
||||||
will_paginate (3.3.1)
|
will_paginate (3.3.1)
|
||||||
yard (0.9.26)
|
yard (0.9.28)
|
||||||
zeitwerk (2.5.1)
|
webrick (~> 1.7.0)
|
||||||
|
zeitwerk (2.6.0)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
ruby
|
ruby
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
RedCloth
|
RedCloth
|
||||||
aasm (~> 5.2.0)
|
aasm (~> 5.3.0)
|
||||||
actionpack-xml_parser (~> 2.0)
|
actionpack-xml_parser (~> 2.0)
|
||||||
activemodel-serializers-xml (~> 1.0.1)
|
activemodel-serializers-xml (~> 1.0.1)
|
||||||
acts_as_list
|
acts_as_list
|
||||||
bcrypt (~> 3.1.16)
|
bcrypt (~> 3.1.18)
|
||||||
bootstrap-sass (= 3.4.1)
|
bootstrap-sass (= 3.4.1)
|
||||||
bullet
|
bullet
|
||||||
byebug
|
byebug
|
||||||
codeclimate-test-reporter (= 1.0.7)
|
codeclimate-test-reporter (= 1.0.7)
|
||||||
coffee-rails (~> 5.0.0)
|
coffee-rails (~> 5.0.0)
|
||||||
database_cleaner
|
database_cleaner (~> 1)
|
||||||
factory_bot_rails
|
factory_bot_rails
|
||||||
font-awesome-sass (~> 5.15.1)
|
font-awesome-sass (~> 6.1.2)
|
||||||
htmlentities
|
htmlentities
|
||||||
i18n-tasks (~> 0.9.35)
|
i18n-tasks (~> 1.0.11)
|
||||||
jquery-rails (~> 4.4)
|
jquery-rails (~> 4.5)
|
||||||
jquery-ui-rails (~> 6.0.1)
|
jquery-ui-rails (~> 6.0.1)
|
||||||
|
kt-paperclip (~> 7.1)
|
||||||
listen
|
listen
|
||||||
mini_racer
|
mini_racer
|
||||||
minitest-stub-const
|
minitest-stub-const
|
||||||
mocha
|
mocha
|
||||||
mysql2 (~> 0.5.3)
|
mysql2 (~> 0.5.4)
|
||||||
paperclip
|
pg (~> 1.4.3)
|
||||||
pg (~> 1.2.3)
|
puma (~> 5.6)
|
||||||
puma (~> 5.5)
|
|
||||||
rack-mini-profiler
|
rack-mini-profiler
|
||||||
rails (~> 6.0.3)
|
rails (~> 6.0.0)
|
||||||
rails-controller-testing
|
rails-controller-testing
|
||||||
rails-dom-testing (~> 2.0.0)
|
rails-dom-testing (~> 2.0.0)
|
||||||
rails_autolink
|
rails_autolink
|
||||||
rspec-expectations
|
rspec-expectations
|
||||||
rubocop (~> 1.22)
|
rubocop (~> 1.34)
|
||||||
sanitize (~> 6.0)
|
sanitize (~> 6.0)
|
||||||
sassc-rails (~> 2.1.2)
|
sassc-rails (~> 2.1.2)
|
||||||
simplecov
|
simplecov
|
||||||
solargraph
|
solargraph
|
||||||
spring
|
spring (~> 4)
|
||||||
sqlite3
|
sqlite3
|
||||||
therubyracer
|
therubyracer
|
||||||
tolk (~> 4.1.0)
|
tolk (~> 4.3.0)
|
||||||
tracks-chartjs-ror
|
tracks-chartjs-ror
|
||||||
uglifier (>= 1.3.0)
|
uglifier (>= 1.3.0)
|
||||||
will_paginate
|
will_paginate
|
||||||
yard
|
yard
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.2.22
|
2.2.33
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,8 @@
|
||||||
//= link datepicker-fi.js
|
//= link datepicker-fi.js
|
||||||
//= link datepicker-fr.js
|
//= link datepicker-fr.js
|
||||||
//= link datepicker-he.js
|
//= link datepicker-he.js
|
||||||
|
//= link datepicker-nb_NO.js
|
||||||
//= link datepicker-nl.js
|
//= link datepicker-nl.js
|
||||||
//= link datepicker-ru.js
|
//= link datepicker-ru.js
|
||||||
|
//= link datepicker-sv.js
|
||||||
|
//= link datepicker-tr.js
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
/* Czech initialisation for the jQuery UI date picker plugin. */
|
/* Czech initialisation for the jQuery UI date picker plugin. */
|
||||||
/* Written by Tomas Muller (tomas@tomas-muller.net). */
|
/* Written by Tomas Muller (tomas@tomas-muller.net). */
|
||||||
( function( factory ) {
|
( function( factory ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
if ( typeof define === "function" && define.amd ) {
|
if ( typeof define === "function" && define.amd ) {
|
||||||
|
|
||||||
// AMD. Register as an anonymous module.
|
// AMD. Register as an anonymous module.
|
||||||
|
|
@ -10,20 +12,21 @@
|
||||||
// Browser globals
|
// Browser globals
|
||||||
factory( jQuery.datepicker );
|
factory( jQuery.datepicker );
|
||||||
}
|
}
|
||||||
}( function( datepicker ) {
|
} )( function( datepicker ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
datepicker.regional.cs = {
|
datepicker.regional.cs = {
|
||||||
closeText: "Zavřít",
|
closeText: "Zavřít",
|
||||||
prevText: "<Dříve",
|
prevText: "Dříve",
|
||||||
nextText: "Později>",
|
nextText: "Později",
|
||||||
currentText: "Nyní",
|
currentText: "Nyní",
|
||||||
monthNames: [ "leden","únor","březen","duben","květen","červen",
|
monthNames: [ "leden", "únor", "březen", "duben", "květen", "červen",
|
||||||
"červenec","srpen","září","říjen","listopad","prosinec" ],
|
"červenec", "srpen", "září", "říjen", "listopad", "prosinec" ],
|
||||||
monthNamesShort: [ "led","úno","bře","dub","kvě","čer",
|
monthNamesShort: [ "led", "úno", "bře", "dub", "kvě", "čer",
|
||||||
"čvc","srp","zář","říj","lis","pro" ],
|
"čvc", "srp", "zář", "říj", "lis", "pro" ],
|
||||||
dayNames: [ "neděle", "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota" ],
|
dayNames: [ "neděle", "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota" ],
|
||||||
dayNamesShort: [ "ne", "po", "út", "st", "čt", "pá", "so" ],
|
dayNamesShort: [ "ne", "po", "út", "st", "čt", "pá", "so" ],
|
||||||
dayNamesMin: [ "ne","po","út","st","čt","pá","so" ],
|
dayNamesMin: [ "ne", "po", "út", "st", "čt", "pá", "so" ],
|
||||||
weekHeader: "Týd",
|
weekHeader: "Týd",
|
||||||
dateFormat: "dd.mm.yy",
|
dateFormat: "dd.mm.yy",
|
||||||
firstDay: 1,
|
firstDay: 1,
|
||||||
|
|
@ -34,4 +37,4 @@ datepicker.setDefaults( datepicker.regional.cs );
|
||||||
|
|
||||||
return datepicker.regional.cs;
|
return datepicker.regional.cs;
|
||||||
|
|
||||||
} ) );
|
} );
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
/* German initialisation for the jQuery UI date picker plugin. */
|
/* German initialisation for the jQuery UI date picker plugin. */
|
||||||
/* Written by Milian Wolff (mail@milianw.de). */
|
/* Written by Milian Wolff (mail@milianw.de). */
|
||||||
( function( factory ) {
|
( function( factory ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
if ( typeof define === "function" && define.amd ) {
|
if ( typeof define === "function" && define.amd ) {
|
||||||
|
|
||||||
// AMD. Register as an anonymous module.
|
// AMD. Register as an anonymous module.
|
||||||
|
|
@ -10,20 +12,21 @@
|
||||||
// Browser globals
|
// Browser globals
|
||||||
factory( jQuery.datepicker );
|
factory( jQuery.datepicker );
|
||||||
}
|
}
|
||||||
}( function( datepicker ) {
|
} )( function( datepicker ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
datepicker.regional.de = {
|
datepicker.regional.de = {
|
||||||
closeText: "Schließen",
|
closeText: "Schließen",
|
||||||
prevText: "<Zurück",
|
prevText: "Zurück",
|
||||||
nextText: "Vor>",
|
nextText: "Vor",
|
||||||
currentText: "Heute",
|
currentText: "Heute",
|
||||||
monthNames: [ "Januar","Februar","März","April","Mai","Juni",
|
monthNames: [ "Januar", "Februar", "März", "April", "Mai", "Juni",
|
||||||
"Juli","August","September","Oktober","November","Dezember" ],
|
"Juli", "August", "September", "Oktober", "November", "Dezember" ],
|
||||||
monthNamesShort: [ "Jan","Feb","Mär","Apr","Mai","Jun",
|
monthNamesShort: [ "Jan", "Feb", "Mär", "Apr", "Mai", "Jun",
|
||||||
"Jul","Aug","Sep","Okt","Nov","Dez" ],
|
"Jul", "Aug", "Sep", "Okt", "Nov", "Dez" ],
|
||||||
dayNames: [ "Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag" ],
|
dayNames: [ "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag" ],
|
||||||
dayNamesShort: [ "So","Mo","Di","Mi","Do","Fr","Sa" ],
|
dayNamesShort: [ "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa" ],
|
||||||
dayNamesMin: [ "So","Mo","Di","Mi","Do","Fr","Sa" ],
|
dayNamesMin: [ "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa" ],
|
||||||
weekHeader: "KW",
|
weekHeader: "KW",
|
||||||
dateFormat: "dd.mm.yy",
|
dateFormat: "dd.mm.yy",
|
||||||
firstDay: 1,
|
firstDay: 1,
|
||||||
|
|
@ -34,4 +37,4 @@ datepicker.setDefaults( datepicker.regional.de );
|
||||||
|
|
||||||
return datepicker.regional.de;
|
return datepicker.regional.de;
|
||||||
|
|
||||||
} ) );
|
} );
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
/* Inicialización en español para la extensión 'UI date picker' para jQuery. */
|
/* Inicialización en español para la extensión 'UI date picker' para jQuery. */
|
||||||
/* Traducido por Vester (xvester@gmail.com). */
|
/* Traducido por Vester (xvester@gmail.com). */
|
||||||
( function( factory ) {
|
( function( factory ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
if ( typeof define === "function" && define.amd ) {
|
if ( typeof define === "function" && define.amd ) {
|
||||||
|
|
||||||
// AMD. Register as an anonymous module.
|
// AMD. Register as an anonymous module.
|
||||||
|
|
@ -10,20 +12,21 @@
|
||||||
// Browser globals
|
// Browser globals
|
||||||
factory( jQuery.datepicker );
|
factory( jQuery.datepicker );
|
||||||
}
|
}
|
||||||
}( function( datepicker ) {
|
} )( function( datepicker ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
datepicker.regional.es = {
|
datepicker.regional.es = {
|
||||||
closeText: "Cerrar",
|
closeText: "Cerrar",
|
||||||
prevText: "<Ant",
|
prevText: "Ant",
|
||||||
nextText: "Sig>",
|
nextText: "Sig",
|
||||||
currentText: "Hoy",
|
currentText: "Hoy",
|
||||||
monthNames: [ "enero","febrero","marzo","abril","mayo","junio",
|
monthNames: [ "enero", "febrero", "marzo", "abril", "mayo", "junio",
|
||||||
"julio","agosto","septiembre","octubre","noviembre","diciembre" ],
|
"julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre" ],
|
||||||
monthNamesShort: [ "ene","feb","mar","abr","may","jun",
|
monthNamesShort: [ "ene", "feb", "mar", "abr", "may", "jun",
|
||||||
"jul","ago","sep","oct","nov","dic" ],
|
"jul", "ago", "sep", "oct", "nov", "dic" ],
|
||||||
dayNames: [ "domingo","lunes","martes","miércoles","jueves","viernes","sábado" ],
|
dayNames: [ "domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado" ],
|
||||||
dayNamesShort: [ "dom","lun","mar","mié","jue","vie","sáb" ],
|
dayNamesShort: [ "dom", "lun", "mar", "mié", "jue", "vie", "sáb" ],
|
||||||
dayNamesMin: [ "D","L","M","X","J","V","S" ],
|
dayNamesMin: [ "D", "L", "M", "X", "J", "V", "S" ],
|
||||||
weekHeader: "Sm",
|
weekHeader: "Sm",
|
||||||
dateFormat: "dd/mm/yy",
|
dateFormat: "dd/mm/yy",
|
||||||
firstDay: 1,
|
firstDay: 1,
|
||||||
|
|
@ -34,4 +37,4 @@ datepicker.setDefaults( datepicker.regional.es );
|
||||||
|
|
||||||
return datepicker.regional.es;
|
return datepicker.regional.es;
|
||||||
|
|
||||||
} ) );
|
} );
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
/* Finnish initialisation for the jQuery UI date picker plugin. */
|
/* Finnish initialisation for the jQuery UI date picker plugin. */
|
||||||
/* Written by Harri Kilpiö (harrikilpio@gmail.com). */
|
/* Written by Harri Kilpiö (harrikilpio@gmail.com). */
|
||||||
( function( factory ) {
|
( function( factory ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
if ( typeof define === "function" && define.amd ) {
|
if ( typeof define === "function" && define.amd ) {
|
||||||
|
|
||||||
// AMD. Register as an anonymous module.
|
// AMD. Register as an anonymous module.
|
||||||
|
|
@ -10,20 +12,21 @@
|
||||||
// Browser globals
|
// Browser globals
|
||||||
factory( jQuery.datepicker );
|
factory( jQuery.datepicker );
|
||||||
}
|
}
|
||||||
}( function( datepicker ) {
|
} )( function( datepicker ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
datepicker.regional.fi = {
|
datepicker.regional.fi = {
|
||||||
closeText: "Sulje",
|
closeText: "Sulje",
|
||||||
prevText: "«Edellinen",
|
prevText: "Edellinen",
|
||||||
nextText: "Seuraava»",
|
nextText: "Seuraava",
|
||||||
currentText: "Tänään",
|
currentText: "Tänään",
|
||||||
monthNames: [ "Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu",
|
monthNames: [ "Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu",
|
||||||
"Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu" ],
|
"Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu" ],
|
||||||
monthNamesShort: [ "Tammi","Helmi","Maalis","Huhti","Touko","Kesä",
|
monthNamesShort: [ "Tammi", "Helmi", "Maalis", "Huhti", "Touko", "Kesä",
|
||||||
"Heinä","Elo","Syys","Loka","Marras","Joulu" ],
|
"Heinä", "Elo", "Syys", "Loka", "Marras", "Joulu" ],
|
||||||
dayNamesShort: [ "Su","Ma","Ti","Ke","To","Pe","La" ],
|
dayNamesShort: [ "Su", "Ma", "Ti", "Ke", "To", "Pe", "La" ],
|
||||||
dayNames: [ "Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai" ],
|
dayNames: [ "Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai" ],
|
||||||
dayNamesMin: [ "Su","Ma","Ti","Ke","To","Pe","La" ],
|
dayNamesMin: [ "Su", "Ma", "Ti", "Ke", "To", "Pe", "La" ],
|
||||||
weekHeader: "Vk",
|
weekHeader: "Vk",
|
||||||
dateFormat: "d.m.yy",
|
dateFormat: "d.m.yy",
|
||||||
firstDay: 1,
|
firstDay: 1,
|
||||||
|
|
@ -34,4 +37,4 @@ datepicker.setDefaults( datepicker.regional.fi );
|
||||||
|
|
||||||
return datepicker.regional.fi;
|
return datepicker.regional.fi;
|
||||||
|
|
||||||
} ) );
|
} );
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@
|
||||||
Stéphane Nahmani (sholby@sholby.net),
|
Stéphane Nahmani (sholby@sholby.net),
|
||||||
Stéphane Raimbault <stephane.raimbault@gmail.com> */
|
Stéphane Raimbault <stephane.raimbault@gmail.com> */
|
||||||
( function( factory ) {
|
( function( factory ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
if ( typeof define === "function" && define.amd ) {
|
if ( typeof define === "function" && define.amd ) {
|
||||||
|
|
||||||
// AMD. Register as an anonymous module.
|
// AMD. Register as an anonymous module.
|
||||||
|
|
@ -12,7 +14,8 @@
|
||||||
// Browser globals
|
// Browser globals
|
||||||
factory( jQuery.datepicker );
|
factory( jQuery.datepicker );
|
||||||
}
|
}
|
||||||
}( function( datepicker ) {
|
} )( function( datepicker ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
datepicker.regional.fr = {
|
datepicker.regional.fr = {
|
||||||
closeText: "Fermer",
|
closeText: "Fermer",
|
||||||
|
|
@ -25,7 +28,7 @@ datepicker.regional.fr = {
|
||||||
"juil.", "août", "sept.", "oct.", "nov.", "déc." ],
|
"juil.", "août", "sept.", "oct.", "nov.", "déc." ],
|
||||||
dayNames: [ "dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi" ],
|
dayNames: [ "dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi" ],
|
||||||
dayNamesShort: [ "dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam." ],
|
dayNamesShort: [ "dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam." ],
|
||||||
dayNamesMin: [ "D","L","M","M","J","V","S" ],
|
dayNamesMin: [ "D", "L", "M", "M", "J", "V", "S" ],
|
||||||
weekHeader: "Sem.",
|
weekHeader: "Sem.",
|
||||||
dateFormat: "dd/mm/yy",
|
dateFormat: "dd/mm/yy",
|
||||||
firstDay: 1,
|
firstDay: 1,
|
||||||
|
|
@ -36,4 +39,4 @@ datepicker.setDefaults( datepicker.regional.fr );
|
||||||
|
|
||||||
return datepicker.regional.fr;
|
return datepicker.regional.fr;
|
||||||
|
|
||||||
} ) );
|
} );
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
/* Hebrew initialisation for the UI Datepicker extension. */
|
/* Hebrew initialisation for the UI Datepicker extension. */
|
||||||
/* Written by Amir Hardon (ahardon at gmail dot com). */
|
/* Written by Amir Hardon (ahardon at gmail dot com). */
|
||||||
( function( factory ) {
|
( function( factory ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
if ( typeof define === "function" && define.amd ) {
|
if ( typeof define === "function" && define.amd ) {
|
||||||
|
|
||||||
// AMD. Register as an anonymous module.
|
// AMD. Register as an anonymous module.
|
||||||
|
|
@ -10,20 +12,21 @@
|
||||||
// Browser globals
|
// Browser globals
|
||||||
factory( jQuery.datepicker );
|
factory( jQuery.datepicker );
|
||||||
}
|
}
|
||||||
}( function( datepicker ) {
|
} )( function( datepicker ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
datepicker.regional.he = {
|
datepicker.regional.he = {
|
||||||
closeText: "סגור",
|
closeText: "סגור",
|
||||||
prevText: "<הקודם",
|
prevText: "הקודם",
|
||||||
nextText: "הבא>",
|
nextText: "הבא",
|
||||||
currentText: "היום",
|
currentText: "היום",
|
||||||
monthNames: [ "ינואר","פברואר","מרץ","אפריל","מאי","יוני",
|
monthNames: [ "ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני",
|
||||||
"יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר" ],
|
"יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר" ],
|
||||||
monthNamesShort: [ "ינו","פבר","מרץ","אפר","מאי","יוני",
|
monthNamesShort: [ "ינו", "פבר", "מרץ", "אפר", "מאי", "יוני",
|
||||||
"יולי","אוג","ספט","אוק","נוב","דצמ" ],
|
"יולי", "אוג", "ספט", "אוק", "נוב", "דצמ" ],
|
||||||
dayNames: [ "ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת" ],
|
dayNames: [ "ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת" ],
|
||||||
dayNamesShort: [ "א'","ב'","ג'","ד'","ה'","ו'","שבת" ],
|
dayNamesShort: [ "א'", "ב'", "ג'", "ד'", "ה'", "ו'", "שבת" ],
|
||||||
dayNamesMin: [ "א'","ב'","ג'","ד'","ה'","ו'","שבת" ],
|
dayNamesMin: [ "א'", "ב'", "ג'", "ד'", "ה'", "ו'", "שבת" ],
|
||||||
weekHeader: "Wk",
|
weekHeader: "Wk",
|
||||||
dateFormat: "dd/mm/yy",
|
dateFormat: "dd/mm/yy",
|
||||||
firstDay: 0,
|
firstDay: 0,
|
||||||
|
|
@ -34,4 +37,4 @@ datepicker.setDefaults( datepicker.regional.he );
|
||||||
|
|
||||||
return datepicker.regional.he;
|
return datepicker.regional.he;
|
||||||
|
|
||||||
} ) );
|
} );
|
||||||
|
|
|
||||||
52
app/assets/javascripts-jquery-ui/datepicker-nb_NO.js
Normal file
52
app/assets/javascripts-jquery-ui/datepicker-nb_NO.js
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
/* Norwegian Bokmål initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Bjørn Johansen (post@bjornjohansen.no). */
|
||||||
|
( function( factory ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
if ( typeof define === "function" && define.amd ) {
|
||||||
|
|
||||||
|
// AMD. Register as an anonymous module.
|
||||||
|
define( [ "../widgets/datepicker" ], factory );
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Browser globals
|
||||||
|
factory( jQuery.datepicker );
|
||||||
|
}
|
||||||
|
} )( function( datepicker ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
datepicker.regional.nb = {
|
||||||
|
closeText: "Lukk",
|
||||||
|
prevText: "Forrige",
|
||||||
|
nextText: "Neste",
|
||||||
|
currentText: "I dag",
|
||||||
|
monthNames: [
|
||||||
|
"januar",
|
||||||
|
"februar",
|
||||||
|
"mars",
|
||||||
|
"april",
|
||||||
|
"mai",
|
||||||
|
"juni",
|
||||||
|
"juli",
|
||||||
|
"august",
|
||||||
|
"september",
|
||||||
|
"oktober",
|
||||||
|
"november",
|
||||||
|
"desember"
|
||||||
|
],
|
||||||
|
monthNamesShort: [ "jan", "feb", "mar", "apr", "mai", "jun", "jul", "aug", "sep", "okt", "nov", "des" ],
|
||||||
|
dayNamesShort: [ "søn", "man", "tir", "ons", "tor", "fre", "lør" ],
|
||||||
|
dayNames: [ "søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag" ],
|
||||||
|
dayNamesMin: [ "sø", "ma", "ti", "on", "to", "fr", "lø" ],
|
||||||
|
weekHeader: "Uke",
|
||||||
|
dateFormat: "dd.mm.yy",
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ""
|
||||||
|
};
|
||||||
|
datepicker.setDefaults( datepicker.regional.nb );
|
||||||
|
|
||||||
|
return datepicker.regional.nb;
|
||||||
|
|
||||||
|
} );
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
||||||
/* Written by Mathias Bynens <http://mathiasbynens.be/> */
|
/* Written by Mathias Bynens <http://mathiasbynens.be/> */
|
||||||
( function( factory ) {
|
( function( factory ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
if ( typeof define === "function" && define.amd ) {
|
if ( typeof define === "function" && define.amd ) {
|
||||||
|
|
||||||
// AMD. Register as an anonymous module.
|
// AMD. Register as an anonymous module.
|
||||||
|
|
@ -10,12 +12,13 @@
|
||||||
// Browser globals
|
// Browser globals
|
||||||
factory( jQuery.datepicker );
|
factory( jQuery.datepicker );
|
||||||
}
|
}
|
||||||
}( function( datepicker ) {
|
} )( function( datepicker ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
datepicker.regional.nl = {
|
datepicker.regional.nl = {
|
||||||
closeText: "Sluiten",
|
closeText: "Sluiten",
|
||||||
prevText: "←",
|
prevText: "Vorig",
|
||||||
nextText: "→",
|
nextText: "Volgende",
|
||||||
currentText: "Vandaag",
|
currentText: "Vandaag",
|
||||||
monthNames: [ "januari", "februari", "maart", "april", "mei", "juni",
|
monthNames: [ "januari", "februari", "maart", "april", "mei", "juni",
|
||||||
"juli", "augustus", "september", "oktober", "november", "december" ],
|
"juli", "augustus", "september", "oktober", "november", "december" ],
|
||||||
|
|
@ -34,4 +37,4 @@ datepicker.setDefaults( datepicker.regional.nl );
|
||||||
|
|
||||||
return datepicker.regional.nl;
|
return datepicker.regional.nl;
|
||||||
|
|
||||||
} ) );
|
} );
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
||||||
/* Written by Andrew Stromnov (stromnov@gmail.com). */
|
/* Written by Andrew Stromnov (stromnov@gmail.com). */
|
||||||
( function( factory ) {
|
( function( factory ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
if ( typeof define === "function" && define.amd ) {
|
if ( typeof define === "function" && define.amd ) {
|
||||||
|
|
||||||
// AMD. Register as an anonymous module.
|
// AMD. Register as an anonymous module.
|
||||||
|
|
@ -10,20 +12,21 @@
|
||||||
// Browser globals
|
// Browser globals
|
||||||
factory( jQuery.datepicker );
|
factory( jQuery.datepicker );
|
||||||
}
|
}
|
||||||
}( function( datepicker ) {
|
} )( function( datepicker ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
datepicker.regional.ru = {
|
datepicker.regional.ru = {
|
||||||
closeText: "Закрыть",
|
closeText: "Закрыть",
|
||||||
prevText: "<Пред",
|
prevText: "Пред",
|
||||||
nextText: "След>",
|
nextText: "След",
|
||||||
currentText: "Сегодня",
|
currentText: "Сегодня",
|
||||||
monthNames: [ "Январь","Февраль","Март","Апрель","Май","Июнь",
|
monthNames: [ "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь",
|
||||||
"Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь" ],
|
"Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" ],
|
||||||
monthNamesShort: [ "Янв","Фев","Мар","Апр","Май","Июн",
|
monthNamesShort: [ "Янв", "Фев", "Мар", "Апр", "Май", "Июн",
|
||||||
"Июл","Авг","Сен","Окт","Ноя","Дек" ],
|
"Июл", "Авг", "Сен", "Окт", "Ноя", "Дек" ],
|
||||||
dayNames: [ "воскресенье","понедельник","вторник","среда","четверг","пятница","суббота" ],
|
dayNames: [ "воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота" ],
|
||||||
dayNamesShort: [ "вск","пнд","втр","срд","чтв","птн","сбт" ],
|
dayNamesShort: [ "вск", "пнд", "втр", "срд", "чтв", "птн", "сбт" ],
|
||||||
dayNamesMin: [ "Вс","Пн","Вт","Ср","Чт","Пт","Сб" ],
|
dayNamesMin: [ "Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб" ],
|
||||||
weekHeader: "Нед",
|
weekHeader: "Нед",
|
||||||
dateFormat: "dd.mm.yy",
|
dateFormat: "dd.mm.yy",
|
||||||
firstDay: 1,
|
firstDay: 1,
|
||||||
|
|
@ -34,4 +37,4 @@ datepicker.setDefaults( datepicker.regional.ru );
|
||||||
|
|
||||||
return datepicker.regional.ru;
|
return datepicker.regional.ru;
|
||||||
|
|
||||||
} ) );
|
} );
|
||||||
|
|
|
||||||
40
app/assets/javascripts-jquery-ui/datepicker-sv.js
Normal file
40
app/assets/javascripts-jquery-ui/datepicker-sv.js
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
/* Swedish initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Anders Ekdahl ( anders@nomadiz.se). */
|
||||||
|
( function( factory ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
if ( typeof define === "function" && define.amd ) {
|
||||||
|
|
||||||
|
// AMD. Register as an anonymous module.
|
||||||
|
define( [ "../widgets/datepicker" ], factory );
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Browser globals
|
||||||
|
factory( jQuery.datepicker );
|
||||||
|
}
|
||||||
|
} )( function( datepicker ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
datepicker.regional.sv = {
|
||||||
|
closeText: "Stäng",
|
||||||
|
prevText: "Förra",
|
||||||
|
nextText: "Nästa",
|
||||||
|
currentText: "Idag",
|
||||||
|
monthNames: [ "januari", "februari", "mars", "april", "maj", "juni",
|
||||||
|
"juli", "augusti", "september", "oktober", "november", "december" ],
|
||||||
|
monthNamesShort: [ "jan.", "feb.", "mars", "apr.", "maj", "juni",
|
||||||
|
"juli", "aug.", "sep.", "okt.", "nov.", "dec." ],
|
||||||
|
dayNamesShort: [ "sön", "mån", "tis", "ons", "tor", "fre", "lör" ],
|
||||||
|
dayNames: [ "söndag", "måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag" ],
|
||||||
|
dayNamesMin: [ "sö", "må", "ti", "on", "to", "fr", "lö" ],
|
||||||
|
weekHeader: "Ve",
|
||||||
|
dateFormat: "yy-mm-dd",
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: "" };
|
||||||
|
datepicker.setDefaults( datepicker.regional.sv );
|
||||||
|
|
||||||
|
return datepicker.regional.sv;
|
||||||
|
|
||||||
|
} );
|
||||||
40
app/assets/javascripts-jquery-ui/datepicker-tr.js
Normal file
40
app/assets/javascripts-jquery-ui/datepicker-tr.js
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
/* Turkish initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Izzet Emre Erkan (kara@karalamalar.net). */
|
||||||
|
( function( factory ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
if ( typeof define === "function" && define.amd ) {
|
||||||
|
|
||||||
|
// AMD. Register as an anonymous module.
|
||||||
|
define( [ "../widgets/datepicker" ], factory );
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Browser globals
|
||||||
|
factory( jQuery.datepicker );
|
||||||
|
}
|
||||||
|
} )( function( datepicker ) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
datepicker.regional.tr = {
|
||||||
|
closeText: "kapat",
|
||||||
|
prevText: "geri",
|
||||||
|
nextText: "ileri",
|
||||||
|
currentText: "bugün",
|
||||||
|
monthNames: [ "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran",
|
||||||
|
"Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık" ],
|
||||||
|
monthNamesShort: [ "Oca", "Şub", "Mar", "Nis", "May", "Haz",
|
||||||
|
"Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara" ],
|
||||||
|
dayNames: [ "Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi" ],
|
||||||
|
dayNamesShort: [ "Pz", "Pt", "Sa", "Ça", "Pe", "Cu", "Ct" ],
|
||||||
|
dayNamesMin: [ "Pz", "Pt", "Sa", "Ça", "Pe", "Cu", "Ct" ],
|
||||||
|
weekHeader: "Hf",
|
||||||
|
dateFormat: "dd.mm.yy",
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: "" };
|
||||||
|
datepicker.setDefaults( datepicker.regional.tr );
|
||||||
|
|
||||||
|
return datepicker.regional.tr;
|
||||||
|
|
||||||
|
} );
|
||||||
|
|
@ -1,2 +1 @@
|
||||||
@import "font-awesome-sprockets";
|
|
||||||
@import "font-awesome";
|
@import "font-awesome";
|
||||||
|
|
|
||||||
|
|
@ -62,12 +62,16 @@ class DataController < ApplicationController
|
||||||
flash[:notice] = t 'data.import.projects_count', count: count
|
flash[:notice] = t 'data.import.projects_count', count: count
|
||||||
when 'todos'
|
when 'todos'
|
||||||
count = Todo.import path_and_file, params, current_user
|
count = Todo.import path_and_file, params, current_user
|
||||||
flash[:notice] = t 'data.import.todos.count', count: count
|
if !count
|
||||||
|
flash[:error] = t('data.import.errors.no_context')
|
||||||
|
else
|
||||||
|
flash[:notice] = t 'data.import.todos_count', count: count
|
||||||
|
end
|
||||||
else
|
else
|
||||||
flash[:error] = t('data.import.errors.invalid_destination')
|
flash[:error] = t('data.import.errors.invalid_destination')
|
||||||
end
|
end
|
||||||
rescue Exception => e
|
rescue Exception => e
|
||||||
flash[:error] = t 'data.import.invalid_destination', e: e
|
flash[:error] = t 'data.import.errors.invalid_destination', e: e
|
||||||
end
|
end
|
||||||
File.delete(path_and_file)
|
File.delete(path_and_file)
|
||||||
redirect_to import_data_path
|
redirect_to import_data_path
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ module RenderingHelper
|
||||||
# do not change string; URL is already linked
|
# do not change string; URL is already linked
|
||||||
href
|
href
|
||||||
else
|
else
|
||||||
content_tag(:a, h(href), :href => URI.escape(href))
|
content_tag(:a, h(href), :href => href)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -27,7 +27,7 @@ module RenderingHelper
|
||||||
config = relaxed_config
|
config = relaxed_config
|
||||||
|
|
||||||
# add onenote and message protocols, allow a target
|
# add onenote and message protocols, allow a target
|
||||||
a_href_config = relaxed_config[:protocols]['a']['href'] + %w(onenote message)
|
a_href_config = relaxed_config[:protocols]['a']['href'] + %w[onenote message obsidian]
|
||||||
a_attributes = relaxed_config[:attributes]['a'] + ['target']
|
a_attributes = relaxed_config[:attributes]['a'] + ['target']
|
||||||
config = Sanitize::Config.merge(config, protocols: { 'a' => { 'href' => a_href_config } }, :attributes => { 'a' => a_attributes })
|
config = Sanitize::Config.merge(config, protocols: { 'a' => { 'href' => a_href_config } }, :attributes => { 'a' => a_attributes })
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ class MessageGateway < ActionMailer::Base
|
||||||
attachment = todo.attachments.build
|
attachment = todo.attachments.build
|
||||||
|
|
||||||
# create temp file
|
# create temp file
|
||||||
tmp = Tempfile.new(['attachment', '.eml'], { universal_newline: true })
|
tmp = Tempfile.new(['attachment', '.eml'], universal_newline: true)
|
||||||
tmp.write email.raw_source.gsub(/\r/, "")
|
tmp.write email.raw_source.gsub(/\r/, "")
|
||||||
|
|
||||||
# add temp file to attachment. paperclip will copy the file to the right location
|
# add temp file to attachment. paperclip will copy the file to the right location
|
||||||
|
|
|
||||||
|
|
@ -353,6 +353,7 @@ class Todo < ApplicationRecord
|
||||||
|
|
||||||
def self.import(filename, params, user)
|
def self.import(filename, params, user)
|
||||||
default_context = user.contexts.order('id').first
|
default_context = user.contexts.order('id').first
|
||||||
|
return false if default_context.nil?
|
||||||
|
|
||||||
count = 0
|
count = 0
|
||||||
CSV.foreach(filename, headers: true) do |row|
|
CSV.foreach(filename, headers: true) do |row|
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ mailmap:
|
||||||
<td><</td><td><%= I18n.t 'integrations.email_rich.field_descriptions.due_date' %></td>
|
<td><</td><td><%= I18n.t 'integrations.email_rich.field_descriptions.due_date' %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>></td><td><%= I18n.t 'integrations.email_rich.field_descriptions.due_date' %></td>
|
<td>></td><td><%= I18n.t 'integrations.email_rich.field_descriptions.tickler_date' %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>#</td><td><%= I18n.t 'integrations.email_rich.field_descriptions.tag' %></td>
|
<td>#</td><td><%= I18n.t 'integrations.email_rich.field_descriptions.tag' %></td>
|
||||||
|
|
|
||||||
|
|
@ -64,10 +64,10 @@
|
||||||
<li>/projects/<code><%= t('rest_help.id') %></code>/todos.xml</li>
|
<li>/projects/<code><%= t('rest_help.id') %></code>/todos.xml</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p><%= raw t('rest_help.retrieve.limit', {
|
<p><%= raw t('rest_help.retrieve.limit',
|
||||||
fields: '<code>ID, created_at, modified_at, completed_at</code>',
|
fields: '<code>ID, created_at, modified_at, completed_at</code>',
|
||||||
limit_parameter: '<code>limit_fields</code>',
|
limit_parameter: '<code>limit_fields</code>',
|
||||||
set_to: '<code>index</code>'}) %></p>
|
set_to: '<code>index</code>') %></p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
|
|
@ -87,10 +87,10 @@
|
||||||
|
|
||||||
<h2><%= t('rest_help.writing.title') %></h2>
|
<h2><%= t('rest_help.writing.title') %></h2>
|
||||||
|
|
||||||
<p><%= raw t('rest_help.writing.description', {
|
<p><%= raw t('rest_help.writing.description',
|
||||||
put: '<code>PUT</code>',
|
put: '<code>PUT</code>',
|
||||||
post: '<code>POST</code>',
|
post: '<code>POST</code>',
|
||||||
delete: '<code>DELETE</code>'}) %></p>
|
delete: '<code>DELETE</code>') %></p>
|
||||||
|
|
||||||
<p><%= t('rest_help.writing.example_title') %></p>
|
<p><%= t('rest_help.writing.example_title') %></p>
|
||||||
|
|
||||||
|
|
@ -105,9 +105,9 @@ Location: <%= root_url %>projects/65.xml
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p><%= raw t('rest_help.writing.example_project_response_title', {
|
<p><%= raw t('rest_help.writing.example_project_response_title',
|
||||||
response_code: '<code>HTTP/1.1 201 Created</code>',
|
response_code: '<code>HTTP/1.1 201 Created</code>',
|
||||||
header: '<code>Location</code>'}) %></p>
|
header: '<code>Location</code>') %></p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
|
|
@ -120,9 +120,9 @@ Location: <%= root_url %>todos/452.xml
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p><%= raw t('rest_help.writing.example_todo_response_title', {
|
<p><%= raw t('rest_help.writing.example_todo_response_title',
|
||||||
response_code: '<code>HTTP/1.1 201 Created</code>',
|
response_code: '<code>HTTP/1.1 201 Created</code>',
|
||||||
header: '<code>Location</code>'}) %></p>
|
header: '<code>Location</code>') %></p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
|
|
@ -143,8 +143,8 @@ Location: <%= root_url %>todos/452.xml
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p><%= raw t('rest_help.writing.example_note_response_title', {
|
<p><%= raw t('rest_help.writing.example_note_response_title',
|
||||||
response_code: '<code>HTTP/1.1 200 OK</code>'}) %></p>
|
response_code: '<code>HTTP/1.1 200 OK</code>') %></p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
|
|
@ -164,8 +164,8 @@ Location: <%= root_url %>todos/452.xml
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p><%= raw t('rest_help.writing.example_delete_title', {
|
<p><%= raw t('rest_help.writing.example_delete_title',
|
||||||
delete: '<code>DELETE</code>'}) %></p>
|
delete: '<code>DELETE</code>') %></p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
|
|
@ -176,15 +176,15 @@ Location: <%= root_url %>todos/452.xml
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p><%= raw t('rest_help.writing.example_delete_response_title', {
|
<p><%= raw t('rest_help.writing.example_delete_response_title',
|
||||||
response_code: '<code>HTTP/1.1 200 OK</code>'}) %></p>
|
response_code: '<code>HTTP/1.1 200 OK</code>') %></p>
|
||||||
|
|
||||||
<h2><%= t('rest_help.response.title') %></h2>
|
<h2><%= t('rest_help.response.title') %></h2>
|
||||||
|
|
||||||
<p><%= raw t('rest_help.response.description', {
|
<p><%= raw t('rest_help.response.description',
|
||||||
response_200: '<code>200 OK</code>',
|
response_200: '<code>200 OK</code>',
|
||||||
response_201: '<code>201 Created</code>',
|
response_201: '<code>201 Created</code>',
|
||||||
example_call: '<code>GET /contexts/2/todos.xml</code>'}) %></p>
|
example_call: '<code>GET /contexts/2/todos.xml</code>') %></p>
|
||||||
|
|
||||||
<p><%= t('rest_help.response.xml_description') %></p>
|
<p><%= t('rest_help.response.xml_description') %></p>
|
||||||
|
|
||||||
|
|
@ -200,11 +200,11 @@ $ curl -u username:p4ssw0rd -H "Content-Type: text/xml" \
|
||||||
|
|
||||||
<h2><%= t('rest_help.activeresource.title') %></h2>
|
<h2><%= t('rest_help.activeresource.title') %></h2>
|
||||||
|
|
||||||
<p><%= raw I18n.t 'rest_help.activeresource.description', {
|
<p><%= raw I18n.t 'rest_help.activeresource.description',
|
||||||
activeresource_link: link_to(I18n.t('rest_help.activeresource.activeresource_link_text'), 'http://weblog.rubyonrails.org/2007/9/30/rails-2-0-0-preview-release'),
|
activeresource_link: link_to(I18n.t('rest_help.activeresource.activeresource_link_text'), 'http://weblog.rubyonrails.org/2007/9/30/rails-2-0-0-preview-release'),
|
||||||
ror_link: link_to(I18n.t('rest_help.activeresource.ror_link_text'), 'http://www.rubyonrails.org'),
|
ror_link: link_to(I18n.t('rest_help.activeresource.ror_link_text'), 'http://www.rubyonrails.org'),
|
||||||
gem_command: '<code>gem install activeresource --source http://gems.rubyonrails.org --include-dependencies</code>'
|
gem_command: '<code>gem install activeresource --source http://gems.rubyonrails.org --include-dependencies</code>'
|
||||||
} %></p>
|
%></p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
|
|
@ -226,8 +226,8 @@ Loading development environment (Rails 1.2.4)
|
||||||
</code>
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p><%= raw I18n.t 'rest_help.activeresource.wrapper_description', {
|
<p><%= raw I18n.t 'rest_help.activeresource.wrapper_description',
|
||||||
signals_link: link_to(I18n.t('rest_help.activeresource.signals_link_text'), 'http://www.37signals.com')} %></p>
|
signals_link: link_to(I18n.t('rest_help.activeresource.signals_link_text'), 'http://www.37signals.com') %></p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<code>
|
<code>
|
||||||
|
|
@ -246,13 +246,13 @@ irb(main):003:0>
|
||||||
<p><%= t('rest_help.notes.description') %></p>
|
<p><%= t('rest_help.notes.description') %></p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><%= raw I18n.t 'rest_help.notes.bullet1', {
|
<li><%= raw I18n.t 'rest_help.notes.bullet1',
|
||||||
id: '<code>ID</code>',
|
id: '<code>ID</code>',
|
||||||
url: '<span class="caps">URL</span>'} %></li>
|
url: '<span class="caps">URL</span>' %></li>
|
||||||
<li><%= raw I18n.t 'rest_help.notes.bullet2', {
|
<li><%= raw I18n.t 'rest_help.notes.bullet2',
|
||||||
omit: '<code>...</code>' } %></li>
|
omit: '<code>...</code>' %></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p><%= raw I18n.t 'rest_help.notes.curl_description', {
|
<p><%= raw I18n.t 'rest_help.notes.curl_description',
|
||||||
curl: link_to(I18n.t('rest_help.curl_link_text'), 'http://en.wikipedia.org/wiki/CURL')} %></p>
|
curl: link_to(I18n.t('rest_help.curl_link_text'), 'http://en.wikipedia.org/wiki/CURL') %></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
<div class="bootstrap">
|
<div class="bootstrap">
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
<%= t('footer.send_feedback', :version => TRACKS_VERSION) %>
|
<%= t('footer.version', :version => TRACKS_VERSION, :revision_with_date => TRACKS_REVISION_WITH_DATE, :revision => TRACKS_REVISION) %>
|
||||||
|
<%= t('footer.send_feedback') %>
|
||||||
<span class="footer-line">
|
<span class="footer-line">
|
||||||
<a href="https://github.com/TracksApp/tracks/issues"><%= t('common.bugs')%></a> |
|
<a href="https://github.com/TracksApp/tracks/issues"><%= t('common.bugs')%></a> |
|
||||||
<a href="https://github.com/TracksApp/tracks/wiki"><%= t('common.wiki')%></a> |
|
<a href="https://github.com/TracksApp/tracks/wiki"><%= t('common.wiki')%></a> |
|
||||||
|
|
|
||||||
|
|
@ -35,5 +35,7 @@ module Tracksapp
|
||||||
|
|
||||||
# configure Tracks to handle deployment in a subdir
|
# configure Tracks to handle deployment in a subdir
|
||||||
config.relative_url_root = SITE_CONFIG['subdir'] if SITE_CONFIG['subdir']
|
config.relative_url_root = SITE_CONFIG['subdir'] if SITE_CONFIG['subdir']
|
||||||
|
# or deployment behind a proxy
|
||||||
|
config.action_controller.default_url_options = SITE_CONFIG['default_url_options'] if SITE_CONFIG['default_url_options']
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ development:
|
||||||
password:
|
password:
|
||||||
|
|
||||||
production:
|
production:
|
||||||
|
# Set this to 'postgresql' if using PostgreSQL.
|
||||||
adapter: mysql2
|
adapter: mysql2
|
||||||
database: tracks
|
database: tracks
|
||||||
# set this if you are storing utf8 in your mysql database to handle strings
|
# set this if you are storing utf8 in your mysql database to handle strings
|
||||||
|
|
|
||||||
|
|
@ -7,4 +7,4 @@ safe_list =
|
||||||
Loofah::HTML5::WhiteList
|
Loofah::HTML5::WhiteList
|
||||||
end
|
end
|
||||||
|
|
||||||
safe_list::ALLOWED_PROTOCOLS.merge(%w(message onenote))
|
safe_list::ALLOWED_PROTOCOLS.merge(%w(message onenote obsidian))
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,3 @@
|
||||||
tracks_version='2.5.2'
|
TRACKS_VERSION='2.6.1'
|
||||||
# comment out next two lines if you do not want (or can not) the date of the
|
TRACKS_REVISION_WITH_DATE=`git log --date=format:'%Y-%m-%d' --pretty=format:"%h @ %ad" -1`
|
||||||
# last git commit in the footer
|
TRACKS_REVISION=`git log --pretty=format:"%h" -1`
|
||||||
info=`git log --pretty=format:"%ai" -1`
|
|
||||||
tracks_version=tracks_version + ' ('+info+')'
|
|
||||||
|
|
||||||
TRACKS_VERSION=tracks_version
|
|
||||||
|
|
|
||||||
|
|
@ -248,9 +248,9 @@ cs:
|
||||||
- Listopad
|
- Listopad
|
||||||
- Prosinec
|
- Prosinec
|
||||||
order:
|
order:
|
||||||
- rok
|
- :year
|
||||||
- ":měsíc"
|
- :month
|
||||||
- den
|
- :day
|
||||||
datetime:
|
datetime:
|
||||||
distance_in_words:
|
distance_in_words:
|
||||||
about_x_hours:
|
about_x_hours:
|
||||||
|
|
@ -347,7 +347,8 @@ cs:
|
||||||
select_feed_for_context: Select the feed for this context
|
select_feed_for_context: Select the feed for this context
|
||||||
select_feed_for_project: Vyberte feed pro tento projekt
|
select_feed_for_project: Vyberte feed pro tento projekt
|
||||||
footer:
|
footer:
|
||||||
send_feedback: Poslat zpětnou vazbu na %{version}
|
version: 'Tracks %{version} (%{revision_with_date})'
|
||||||
|
send_feedback: Poslat zpětnou vazbu
|
||||||
helpers:
|
helpers:
|
||||||
select:
|
select:
|
||||||
prompt: Выберите
|
prompt: Выберите
|
||||||
|
|
|
||||||
|
|
@ -402,7 +402,8 @@ de:
|
||||||
select_feed_for_context: Feed für diesen Kontext auswählen
|
select_feed_for_context: Feed für diesen Kontext auswählen
|
||||||
select_feed_for_project: Feed für dieses Projekt auswählen
|
select_feed_for_project: Feed für dieses Projekt auswählen
|
||||||
footer:
|
footer:
|
||||||
send_feedback: Senden Sie Feedback zu %{version}
|
version: 'Tracks %{version} (%{revision_with_date})'
|
||||||
|
send_feedback: Senden Sie Feedback
|
||||||
helpers:
|
helpers:
|
||||||
select:
|
select:
|
||||||
prompt: Выберите
|
prompt: Выберите
|
||||||
|
|
|
||||||
|
|
@ -207,6 +207,7 @@ en:
|
||||||
invalid_csv: "Invalid CSV: could not read headers: %{e}"
|
invalid_csv: "Invalid CSV: could not read headers: %{e}"
|
||||||
save_error: "Could not save uploaded CSV (%{path_and_file}). Can Tracks write\
|
save_error: "Could not save uploaded CSV (%{path_and_file}). Can Tracks write\
|
||||||
\ to the upload directory? %{e}"
|
\ to the upload directory? %{e}"
|
||||||
|
no_context: No default context could be found
|
||||||
map_title: Map fields to be imported
|
map_title: Map fields to be imported
|
||||||
header: Importing data
|
header: Importing data
|
||||||
submit: Import
|
submit: Import
|
||||||
|
|
@ -406,7 +407,8 @@ en:
|
||||||
select_feed_for_context: Select the feed for this context
|
select_feed_for_context: Select the feed for this context
|
||||||
select_feed_for_project: Select the feed for this project
|
select_feed_for_project: Select the feed for this project
|
||||||
footer:
|
footer:
|
||||||
send_feedback: Send feedback on %{version}
|
version: 'Tracks %{version} (%{revision_with_date})'
|
||||||
|
send_feedback: Send feedback
|
||||||
helpers:
|
helpers:
|
||||||
select:
|
select:
|
||||||
prompt: Please select
|
prompt: Please select
|
||||||
|
|
@ -481,7 +483,7 @@ en:
|
||||||
\ and home email accounts to your Tracks Mailgun route, set it up like this:\
|
\ and home email accounts to your Tracks Mailgun route, set it up like this:\
|
||||||
\ %{code}"
|
\ %{code}"
|
||||||
email_rich:
|
email_rich:
|
||||||
description: "For both of the above methods, the follow format can be used:"
|
description: "For both of the above methods, the following format can be used in the message subject to add metadata:"
|
||||||
fields_title: "The fields are:"
|
fields_title: "The fields are:"
|
||||||
symbol_title: Symbol
|
symbol_title: Symbol
|
||||||
meaning_title: Meaning
|
meaning_title: Meaning
|
||||||
|
|
@ -492,6 +494,8 @@ en:
|
||||||
project: The project to place the Todo in
|
project: The project to place the Todo in
|
||||||
due_date: The due date for the Todo (may be 2 digits for day, 4 digits for
|
due_date: The due date for the Todo (may be 2 digits for day, 4 digits for
|
||||||
month-day, or 6 digits for year-month-day)
|
month-day, or 6 digits for year-month-day)
|
||||||
|
tickler_date: The tickler date for the Todo (may be 2 digits for day, 4 digits for
|
||||||
|
month-day, or 6 digits for year-month-day)
|
||||||
tag: A tag to apply to the Todo – may be used multiple times
|
tag: A tag to apply to the Todo – may be used multiple times
|
||||||
star: Flag to star the Todo
|
star: Flag to star the Todo
|
||||||
example_names:
|
example_names:
|
||||||
|
|
@ -1342,49 +1346,88 @@ en:
|
||||||
curl_link_text: cURL
|
curl_link_text: cURL
|
||||||
intro:
|
intro:
|
||||||
title: Introduction
|
title: Introduction
|
||||||
content: Tracks is designed to be integrated with scripts, web services, and third-party applications. This page serves as the documentation of our REST API.
|
content: Tracks is designed to be integrated with scripts, web services, and
|
||||||
content_2: The Tracks REST API allows developers to integrate Tracks into their applications. It allows applications to access and modify Tracks data, and is implemented as Vanilla XML over HTTP.
|
third-party applications. This page serves as the documentation of our REST
|
||||||
content_3: The API is a %{restful_link} service. All data is available through the API as a resource to which can be referred using a unique identifier. It responds to a number of the HTTP methods, specifically GET, PUT, POST and UPDATE, and all responses from the API are in a simple XML format encoded as UTF-8.
|
API.
|
||||||
|
content_2: The Tracks REST API allows developers to integrate Tracks into their
|
||||||
|
applications. It allows applications to access and modify Tracks data, and
|
||||||
|
is implemented as Vanilla XML over HTTP.
|
||||||
|
content_3: The API is a %{restful_link} service. All data is available through
|
||||||
|
the API as a resource to which can be referred using a unique identifier.
|
||||||
|
It responds to a number of the HTTP methods, specifically GET, PUT, POST and
|
||||||
|
UPDATE, and all responses from the API are in a simple XML format encoded
|
||||||
|
as UTF-8.
|
||||||
restful_link_text: RESTful
|
restful_link_text: RESTful
|
||||||
auth:
|
auth:
|
||||||
title: Authentication
|
title: Authentication
|
||||||
content: Authentication is handled using %{auth_link}. Your Tracks username and password is used as the authentication credentials for the API. Note that in Basic HTTP authentication, your password is sent in clear text. If you need a more secure authentication solution, you should configure your web server to run Tracks under HTTPS.
|
content: Authentication is handled using %{auth_link}. Your Tracks username
|
||||||
|
and password is used as the authentication credentials for the API. Note that
|
||||||
|
in Basic HTTP authentication, your password is sent in clear text. If you
|
||||||
|
need a more secure authentication solution, you should configure your web
|
||||||
|
server to run Tracks under HTTPS.
|
||||||
basic_auth_link_text: Basic HTTP authentication
|
basic_auth_link_text: Basic HTTP authentication
|
||||||
retrieve:
|
retrieve:
|
||||||
title: Retrieving data from the API
|
title: Retrieving data from the API
|
||||||
content: 'To retrieve data you only need to do an HTTP GET on a resource identifier. For example, if you want to get all the contexts with %{curl_link}:'
|
content: 'To retrieve data you only need to do an HTTP GET on a resource identifier.
|
||||||
|
For example, if you want to get all the contexts with %{curl_link}:'
|
||||||
single_context: 'Getting a single context:'
|
single_context: 'Getting a single context:'
|
||||||
todos_from_context: 'Getting the todos within a context:'
|
todos_from_context: 'Getting the todos within a context:'
|
||||||
projects: You also can apply the pattern shown above with projects instead of contexts.
|
projects: You also can apply the pattern shown above with projects instead of
|
||||||
|
contexts.
|
||||||
paths_title: 'All data is available according to the following resource paths:'
|
paths_title: 'All data is available according to the following resource paths:'
|
||||||
limit: 'For the todo resources (todos, tickler, done, hidden and calendar) you can limit the returnedfield to %{fields} by adding the parameter %{limit_parameter} and setting it to %{set_to}. For example:'
|
limit: 'For the todo resources (todos, tickler, done, hidden and calendar) you
|
||||||
active_todos: 'If you only want to get the active todos, you add the parameter %{active_code} and set it to some value like this:'
|
can limit the returnedfield to %{fields} by adding the parameter %{limit_parameter}
|
||||||
|
and setting it to %{set_to}. For example:'
|
||||||
|
active_todos: 'If you only want to get the active todos, you add the parameter
|
||||||
|
%{active_code} and set it to some value like this:'
|
||||||
writing:
|
writing:
|
||||||
title: Writing to the API
|
title: Writing to the API
|
||||||
description: The API provides mechanisms for adding, updating and deleting resources using the HTTP methods %{put}, %{post} and %{delete} in combination with the content.
|
description: The API provides mechanisms for adding, updating and deleting resources
|
||||||
|
using the HTTP methods %{put}, %{post} and %{delete} in combination with the
|
||||||
|
content.
|
||||||
example_title: 'Creating a new project, using curl:'
|
example_title: 'Creating a new project, using curl:'
|
||||||
example_project_name: Build a treehouse for the kids
|
example_project_name: Build a treehouse for the kids
|
||||||
example_project_response_title: 'The response is an %{response_code} with %{header} header indicating where the new project resource can be found. Now we can add a todo to this project, using curl:'
|
example_project_response_title: 'The response is an %{response_code} with %{header}
|
||||||
|
header indicating where the new project resource can be found. Now we can
|
||||||
|
add a todo to this project, using curl:'
|
||||||
example_todo_name: Model treehouse in SketchUp
|
example_todo_name: Model treehouse in SketchUp
|
||||||
example_todo_response_title: 'The response is a again an %{response_code} with %{header} header indicating where the new todo resource can be found. Changing the todo notes, again using curl:'
|
example_todo_response_title: 'The response is a again an %{response_code} with
|
||||||
|
%{header} header indicating where the new todo resource can be found. Changing
|
||||||
|
the todo notes, again using curl:'
|
||||||
example_note_text: use maple texture
|
example_note_text: use maple texture
|
||||||
example_note_response_title: 'The response is an %{response_code} with in the body the XML representation of the updated todo. We provide a shorcut method to toggle a todo done or undone without having to perform the update with the right field values:'
|
example_note_response_title: 'The response is an %{response_code} with in the
|
||||||
example_delete_title: 'If we want to delete that todo we can call its unique resource identifier (the URL) with the HTTP method %{delete}, again with curl:'
|
body the XML representation of the updated todo. We provide a shorcut method
|
||||||
example_delete_response_title: The API returns an %{response_code} and the todo is now deleted.
|
to toggle a todo done or undone without having to perform the update with
|
||||||
|
the right field values:'
|
||||||
|
example_delete_title: 'If we want to delete that todo we can call its unique
|
||||||
|
resource identifier (the URL) with the HTTP method %{delete}, again with curl:'
|
||||||
|
example_delete_response_title: The API returns an %{response_code} and the todo
|
||||||
|
is now deleted.
|
||||||
response:
|
response:
|
||||||
title: Dealing with the response and response status
|
title: Dealing with the response and response status
|
||||||
description: All successful operations respond with a status code of %{response_200} or %{response_201} depending on the operation. Sometimes a list, say %{example_call} will not have any items, it will return an empty list.
|
description: All successful operations respond with a status code of %{response_200}
|
||||||
xml_description: 'The XML for empty list responses look like this, again with curl:'
|
or %{response_201} depending on the operation. Sometimes a list, say %{example_call}
|
||||||
|
will not have any items, it will return an empty list.
|
||||||
|
xml_description: 'The XML for empty list responses look like this, again with
|
||||||
|
curl:'
|
||||||
activeresource:
|
activeresource:
|
||||||
title: Consuming the API with ActiveResource
|
title: Consuming the API with ActiveResource
|
||||||
description: '%{activeresource_link} is a thin but powerful wrapper around RESTful services exposed by %{ror_link}. It will be part of Rails 2.0 but until then you can get it with %{gem_command}.'
|
description: '%{activeresource_link} is a thin but powerful wrapper around RESTful
|
||||||
|
services exposed by %{ror_link}. It will be part of Rails 2.0 but until then
|
||||||
|
you can get it with %{gem_command}.'
|
||||||
activeresource_link_text: ActiveResource
|
activeresource_link_text: ActiveResource
|
||||||
ror_link_text: Ruby on Rails
|
ror_link_text: Ruby on Rails
|
||||||
wrapper_description: 'Inspired by %{signals_link} ’s Highrise wrapper, we’ve put together a small ruby wrapper (find it in the doc/ directory) for the API which sets up the ActiveResource models for you to play with in an IRB session:'
|
wrapper_description: 'Inspired by %{signals_link} ’s Highrise wrapper,
|
||||||
|
we’ve put together a small ruby wrapper (find it in the doc/ directory)
|
||||||
|
for the API which sets up the ActiveResource models for you to play with in
|
||||||
|
an IRB session:'
|
||||||
signals_link_text: 37 Signals
|
signals_link_text: 37 Signals
|
||||||
notes:
|
notes:
|
||||||
title: Notes about the documentation
|
title: Notes about the documentation
|
||||||
description: 'A few conventions have been applied in the documentation, these are:'
|
description: 'A few conventions have been applied in the documentation, these
|
||||||
bullet1: '%{id}’s in a resource %{url} indicate that the resource’s unique ID needs to be inserted there'
|
are:'
|
||||||
bullet2: '%{omit} indicates that unimportant bits of response data have been removed to eliminate noise from the documentation'
|
bullet1: '%{id}’s in a resource %{url} indicate that the resource’s
|
||||||
|
unique ID needs to be inserted there'
|
||||||
|
bullet2: '%{omit} indicates that unimportant bits of response data have been
|
||||||
|
removed to eliminate noise from the documentation'
|
||||||
curl_description: 'All examples make use of %{curl}.'
|
curl_description: 'All examples make use of %{curl}.'
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -63,14 +63,14 @@ fi:
|
||||||
empty: ei voi olla tyhjä
|
empty: ei voi olla tyhjä
|
||||||
equal_to: täytyy olla sama kuin %{count}
|
equal_to: täytyy olla sama kuin %{count}
|
||||||
even: täytyy olla tasan
|
even: täytyy olla tasan
|
||||||
exclusion: is reserved
|
exclusion: on varattu
|
||||||
greater_than: täytyy olla suurempi kuin %{count}
|
greater_than: täytyy olla suurempi kuin %{count}
|
||||||
greater_than_or_equal_to: täytyy olla suurempi tai yhtäsuuri kuin %{count}
|
greater_than_or_equal_to: täytyy olla suurempi tai yhtäsuuri kuin %{count}
|
||||||
inclusion: ei sisälly listaan
|
inclusion: ei sisälly listaan
|
||||||
invalid: cannot contain the comma (',') character
|
invalid: ei voi sisältää pilkkua
|
||||||
less_than: täytyy olla vähemmän kuin %{count}
|
less_than: täytyy olla vähemmän kuin %{count}
|
||||||
less_than_or_equal_to: täytyy olla vähemmän tai yhtäsuuri kuin %{count}
|
less_than_or_equal_to: täytyy olla vähemmän tai yhtäsuuri kuin %{count}
|
||||||
not_a_number: is not a number
|
not_a_number: ei ole numero
|
||||||
odd: täytyy olla pariton
|
odd: täytyy olla pariton
|
||||||
record_invalid: 'Validointi epäonnistui: %{errors}'
|
record_invalid: 'Validointi epäonnistui: %{errors}'
|
||||||
restrict_dependent_destroy:
|
restrict_dependent_destroy:
|
||||||
|
|
@ -192,7 +192,7 @@ fi:
|
||||||
save_status_message: Asiayhteys tallennettu
|
save_status_message: Asiayhteys tallennettu
|
||||||
show_form: Luo uusi asiayhteys
|
show_form: Luo uusi asiayhteys
|
||||||
show_form_title: Lisää asiayhteys
|
show_form_title: Lisää asiayhteys
|
||||||
status_active: Context is active
|
status_active: Asiayhteys on aktiivinen
|
||||||
status_hidden: Asiayhteys on piilotettu
|
status_hidden: Asiayhteys on piilotettu
|
||||||
todos_append: tässä asiayhteydessä
|
todos_append: tässä asiayhteydessä
|
||||||
update_status_message: Asiayhteyden nimi muutettiin
|
update_status_message: Asiayhteyden nimi muutettiin
|
||||||
|
|
@ -251,6 +251,7 @@ fi:
|
||||||
file_blank: Tiedosto ei voi olla tyhjä
|
file_blank: Tiedosto ei voi olla tyhjä
|
||||||
some: Tuonnissa tapahtui virheitä
|
some: Tuonnissa tapahtui virheitä
|
||||||
invalid_destination: 'Virheellinen tuontikohde: %{e}'
|
invalid_destination: 'Virheellinen tuontikohde: %{e}'
|
||||||
|
no_context: Asiayhteyttä ei löytynyt oletusarvoksi
|
||||||
date:
|
date:
|
||||||
abbr_day_names:
|
abbr_day_names:
|
||||||
- Su
|
- Su
|
||||||
|
|
@ -403,7 +404,8 @@ fi:
|
||||||
select_feed_for_context: Valitse tämän asiayhteyden syöte
|
select_feed_for_context: Valitse tämän asiayhteyden syöte
|
||||||
select_feed_for_project: Valitse tämän projektin syöte
|
select_feed_for_project: Valitse tämän projektin syöte
|
||||||
footer:
|
footer:
|
||||||
send_feedback: Lähetä palautetta versiosta %{version}
|
version: 'Tracks %{version} (%{revision_with_date})'
|
||||||
|
send_feedback: Lähetä palautetta
|
||||||
helpers:
|
helpers:
|
||||||
select:
|
select:
|
||||||
prompt: Valitse
|
prompt: Valitse
|
||||||
|
|
@ -453,12 +455,16 @@ fi:
|
||||||
määrittämiseksi näissä järjestyksissä)
|
määrittämiseksi näissä järjestyksissä)
|
||||||
project: Projekti, johon toimenpide liitetään
|
project: Projekti, johon toimenpide liitetään
|
||||||
context: Konteksti, johon toimenpide liitetään
|
context: Konteksti, johon toimenpide liitetään
|
||||||
|
tickler_date: Toimenpiteen näyttöajankohta (2 numeroa pelkän päivän määrittämiseksi,
|
||||||
|
4 numeroa kuukauden ja päivän tai 6 numeroa vuoden, kuukauden ja päivän
|
||||||
|
määrittämiseksi näissä järjestyksissä)
|
||||||
fields_instruction: Kaikki merkinnät ovat valinnaisia. Tekstiä ensimmäiseen
|
fields_instruction: Kaikki merkinnät ovat valinnaisia. Tekstiä ensimmäiseen
|
||||||
merkintään asti käytetään toimenpiteen kuvauksena
|
merkintään asti käytetään toimenpiteen kuvauksena
|
||||||
meaning_title: Tarkoitus
|
meaning_title: Tarkoitus
|
||||||
symbol_title: Merkintä
|
symbol_title: Merkintä
|
||||||
fields_title: 'Kentät:'
|
fields_title: 'Kentät:'
|
||||||
description: 'Molemmilla ylläolevilla tavoilla voidaan käyttää seuraavaa muotoilua:'
|
description: 'Molemmilla ylläolevilla tavoilla voidaan käyttää viestin otsikossa
|
||||||
|
seuraavaa muotoilua tietojen lisäämiseen:'
|
||||||
message_gateway:
|
message_gateway:
|
||||||
instructions:
|
instructions:
|
||||||
'3': Lähetä sähköposti juuri asettamaasi osoitteeseen!
|
'3': Lähetä sähköposti juuri asettamaasi osoitteeseen!
|
||||||
|
|
@ -513,7 +519,7 @@ fi:
|
||||||
contribute_link_text: projektin verkkosivustolta
|
contribute_link_text: projektin verkkosivustolta
|
||||||
mailing_list_link_text: Sähköpostilista
|
mailing_list_link_text: Sähköpostilista
|
||||||
irc_bullet: '%{irc_link} (käytettävissä myös %{matrix_link})'
|
irc_bullet: '%{irc_link} (käytettävissä myös %{matrix_link})'
|
||||||
irc_link_text: 'IRC-kanava #Tracks@FreeNode'
|
irc_link_text: 'IRC-kanava #Tracks@Libera'
|
||||||
matrix_link_text: Matrixin kautta
|
matrix_link_text: Matrixin kautta
|
||||||
layouts:
|
layouts:
|
||||||
mobile_navigation:
|
mobile_navigation:
|
||||||
|
|
@ -745,7 +751,7 @@ fi:
|
||||||
hidden_projects: Piilotetut projektit
|
hidden_projects: Piilotetut projektit
|
||||||
hide_form: Piilota lomake
|
hide_form: Piilota lomake
|
||||||
hide_form_title: Piilota projektinluontilomake
|
hide_form_title: Piilota projektinluontilomake
|
||||||
is_active: is active
|
is_active: on aktiivinen
|
||||||
last_completed_in_project: "(viimeiset %{number})"
|
last_completed_in_project: "(viimeiset %{number})"
|
||||||
letter_abbreviation: P
|
letter_abbreviation: P
|
||||||
list_completed_projects: TRACKS::Valmistuneiden projektien lista
|
list_completed_projects: TRACKS::Valmistuneiden projektien lista
|
||||||
|
|
@ -756,7 +762,7 @@ fi:
|
||||||
no_last_completed_recurring_todos: Valmiita toistuvia toimenpiteitä ei löytynyt
|
no_last_completed_recurring_todos: Valmiita toistuvia toimenpiteitä ei löytynyt
|
||||||
no_notes_attached: Projektiin ei ole liitetty muistiinpanoja
|
no_notes_attached: Projektiin ei ole liitetty muistiinpanoja
|
||||||
no_projects: Projekteja ei löytynyt
|
no_projects: Projekteja ei löytynyt
|
||||||
notes: Notes
|
notes: Muistiinpanot
|
||||||
notes_empty: Tälle projektille ei ole muistiinpanoja
|
notes_empty: Tälle projektille ei ole muistiinpanoja
|
||||||
page_title: 'TRACKS::Project: %{project}'
|
page_title: 'TRACKS::Project: %{project}'
|
||||||
project_destroyed_status: Projekti ”%{name}” poistettu
|
project_destroyed_status: Projekti ”%{name}” poistettu
|
||||||
|
|
@ -775,7 +781,7 @@ fi:
|
||||||
was_marked_hidden: on merkitty piilotetuksi
|
was_marked_hidden: on merkitty piilotetuksi
|
||||||
with_default_context: with a default context of '%{context_name}'
|
with_default_context: with a default context of '%{context_name}'
|
||||||
with_default_tags: ja oletusasiasanoilla ”%{tags}”
|
with_default_tags: ja oletusasiasanoilla ”%{tags}”
|
||||||
with_no_default_context: with no default context
|
with_no_default_context: ilman oletusasiayhteyttä
|
||||||
with_no_default_tags: ja ilman oletusavainsanoja
|
with_no_default_tags: ja ilman oletusavainsanoja
|
||||||
search:
|
search:
|
||||||
contexts_matching_query: hakua vastaavaa asiayhteyttä
|
contexts_matching_query: hakua vastaavaa asiayhteyttä
|
||||||
|
|
@ -1158,7 +1164,7 @@ fi:
|
||||||
no_last_completed_actions: Valmistuneita toimenpiteitä ei ole
|
no_last_completed_actions: Valmistuneita toimenpiteitä ei ole
|
||||||
no_project: "--No project--"
|
no_project: "--No project--"
|
||||||
no_recurring_todos: Ei toistuvia toimenpiteitä
|
no_recurring_todos: Ei toistuvia toimenpiteitä
|
||||||
notes: Notes
|
notes: Muistiinpanot
|
||||||
overdue: Myöhässä
|
overdue: Myöhässä
|
||||||
pending: Odottaa
|
pending: Odottaa
|
||||||
recurrence:
|
recurrence:
|
||||||
|
|
@ -1343,3 +1349,88 @@ fi:
|
||||||
previous_label: "← Edellinen"
|
previous_label: "← Edellinen"
|
||||||
auth_type:
|
auth_type:
|
||||||
database: Tietokanta
|
database: Tietokanta
|
||||||
|
rest_help:
|
||||||
|
writing:
|
||||||
|
example_todo_name: Mallinna puumaja SketchUpilla
|
||||||
|
title: Rajapintaan kirjoittaminen
|
||||||
|
example_title: 'Luo uusi projekti curlilla:'
|
||||||
|
example_project_name: Rakenna puumaja lapsille
|
||||||
|
example_project_response_title: 'Vastaus on %{response_code} yhdessä otsakkeen
|
||||||
|
%{header} kanssa, joka osoittaa mistä uusi projektiresurssi löytyy. Nyt voimme
|
||||||
|
lisätä tähän projektiin uuden tehtävän käyttäen curlia:'
|
||||||
|
example_delete_response_title: Rajapinta palauttaa %{response_code} ja tehtävä
|
||||||
|
on nyt poistettu.
|
||||||
|
example_delete_title: 'Kun haluamme poistaa tehtävän, kutsumme sen yksilöllistä
|
||||||
|
resurssitunnistetta (URL-osoite) HTTP-metodilla %{delete}, jälleen curlilla:'
|
||||||
|
example_todo_response_title: 'Vastaus on jälleen %{response_code} yhdessä otsakkeen
|
||||||
|
%{header} kanssa, joka osoittaa mistä uusi tehtäväresurssi löytyy. Tehtävän
|
||||||
|
muistiinpanojen muuttaminen, jälleen curlilla:'
|
||||||
|
example_note_response_title: 'Vastaus on %{response_code} ja sen rungossa on
|
||||||
|
päivitetty tehtävä XML-muotoisena. Tarjoamme helpomman tavan muuttaa tehtävä
|
||||||
|
tehdyksi tai tekemättömäksi ilman tarvetta päivitysoperaation tekemiselle
|
||||||
|
kenttäarvoilla:'
|
||||||
|
description: Rajapinta tarjoaa mekanismit resurssien lisäämiseen, päivittämiseen
|
||||||
|
ja poistamiseen käyttämällä %{put}, %{post} ja %{delete} yhdessä sisällön
|
||||||
|
kanssa.
|
||||||
|
example_note_text: käytä vaahterakuviota
|
||||||
|
title: REST-rajapinnan dokumentaatio kehittäjille
|
||||||
|
intro:
|
||||||
|
title: Esittely
|
||||||
|
content_2: Tracksin REST-rajapinnan avulla kehittäjät voivat integroida Tracksin
|
||||||
|
sovelluksiinsa. Sen avulla sovellukset voivat lukea ja muuttaa Tracksiin tallennettuja
|
||||||
|
tietoja ja se on toteutettu XML:nä HTTP:n yli.
|
||||||
|
restful_link_text: RESTful
|
||||||
|
content: Tracks on suunniteltu integroitavaksi skripteihin, verkkopalveluihin
|
||||||
|
ja kolmannen osapuolen sovelluksiin. Tämä sivu toimii REST-rajapintamme dokumentaationa.
|
||||||
|
content_3: Rajapinta on %{restful_link}-palvelu. Kaikki tieto on saatavilla
|
||||||
|
rajapinnan kautta resursseina, joihin voidaan viitata yksilöllisellä tunnisteella.
|
||||||
|
Rajapinta vastaa lajitelmaan HTTP-kutsuja (GET, PUT, POST ja UPDATE) ja kaikki
|
||||||
|
rajapinnan vastaukset ovat XML-muotoiltua UTF-8:aa.
|
||||||
|
auth:
|
||||||
|
title: Tunnistautuminen
|
||||||
|
content: Tunnistautuminen tapahtuu %{auth_link}. Tracksin käyttäjätunnusta ja
|
||||||
|
salasanaa käytetään rajapinnan tunnisteina. Huomaathan, että Basic-HTTP-tunnistautumisessa
|
||||||
|
salasanasi lähetetään pelkkänä tekstinä. Jos tarvitset turvallisempaa tunnistautumisratkaisua,
|
||||||
|
asenna verkkopalvelimesi palvelemaan Tracks HTTPS:n yli.
|
||||||
|
basic_auth_link_text: Basic-HTTP-tunnistautuminen
|
||||||
|
retrieve:
|
||||||
|
content: 'Noutaaksesi tietoa sinun tarvitsee vain tehdä HTTP GET-pyyntö resurssitunnisteella.
|
||||||
|
Esimerkiksi jos haluat hakea kaikki asiayhteydet %{curl_link}illa:'
|
||||||
|
single_context: 'Yksittäisen asiayhteyden noutaminen:'
|
||||||
|
todos_from_context: 'Asiayhteyteen kuuluvien tehtävien noutaminen:'
|
||||||
|
projects: Voit käyttää yllä esitettyä muotoa myös projekteilla asiayhteyksien
|
||||||
|
sijaan.
|
||||||
|
paths_title: 'Kaikki tiedot ovat saatavilla seuraavissa resurssipoluissa:'
|
||||||
|
active_todos: 'Jos haluat noutaa vain aktiiviset tehtävät, voit lisätä parametrin
|
||||||
|
%{active_code} ja asettaa siihen jonkin arvon, kuten:'
|
||||||
|
title: Tiedon noutaminen rajapinnasta
|
||||||
|
limit: 'Tehtäväresursseille (tehtävät, tickler, tehdyt, piilotetut ja kalenteri)
|
||||||
|
voit palauttaa vain kentät %{fields} lisäämällä parametrin %{limit_parameter}
|
||||||
|
ja asettamalla sen arvoksi %{set_to}. Esimerkiksi:'
|
||||||
|
notes:
|
||||||
|
description: 'Ohjeessa on noudatettu muutamia merkintötapoja:'
|
||||||
|
curl_description: Kaikki esimerkit käyttävät %{curl}ia.
|
||||||
|
bullet2: '%{omit} osoittaa että epäolennaisia osuuksia vastaustiedosta on jätetty
|
||||||
|
pois ohjeen selkiyttämiseksi'
|
||||||
|
bullet1: '%{id} resurssin %{url} osoittavat että se tulee korvata resurssin
|
||||||
|
yksilöllisellä tunnisteella'
|
||||||
|
title: Huomioita ohjeesta
|
||||||
|
activeresource:
|
||||||
|
title: Rajapinnan käyttäminen ActiveResourcella
|
||||||
|
wrapper_description: '%{signals_link}in Highrise-wrapperin innostamana teimme
|
||||||
|
pienen Ruby-wrapperin (löytyy doc/-hakemistosta) rajapinnalle joka luo sinulle
|
||||||
|
ActiveResource-mallit joilla voit leikkiä IRB-istunnossa:'
|
||||||
|
ror_link_text: Ruby on Rails
|
||||||
|
signals_link_text: 37 Signals
|
||||||
|
activeresource_link_text: ActiveResource
|
||||||
|
description: '%{activeresource_link} on ohut mutta hyödyllinen RESTful-palveluiden
|
||||||
|
ympärillä %{ror_link}issa oleva palvelu. Se tulee olemaan osa Rails 2.0:aa,
|
||||||
|
mutta siihen asti voit noutaa sen %{gem_command}.'
|
||||||
|
response:
|
||||||
|
xml_description: 'XML tyhjälle listalle näyttää tältä, jälleen curlilla:'
|
||||||
|
title: Vastauksen ja vastauskoodin käsittely
|
||||||
|
description: Kaikki onnistuneet toiminnot palauttavat tilakoodin %{response_200}
|
||||||
|
tai %{response_201} riippuen toiminnosta. Joissain tapauksissa listassa, esimerkiksi
|
||||||
|
%{example_call} ei ole lainkaan tuloksia, jolloin palautetaan tyhjä lista.
|
||||||
|
curl_link_text: cURL
|
||||||
|
id: ID
|
||||||
|
|
|
||||||
|
|
@ -354,7 +354,8 @@ fr:
|
||||||
select_feed_for_context: Selectionner un flux pour ce contexte
|
select_feed_for_context: Selectionner un flux pour ce contexte
|
||||||
select_feed_for_project: Selectionner le flux pour ce projet
|
select_feed_for_project: Selectionner le flux pour ce projet
|
||||||
footer:
|
footer:
|
||||||
send_feedback: Envoyer un feedback sur %{version}
|
send_feedback: Envoyer un feedback
|
||||||
|
version: 'Tracks %{version} (%{revision_with_date})'
|
||||||
helpers:
|
helpers:
|
||||||
select:
|
select:
|
||||||
prompt: Veuillez sélectionner
|
prompt: Veuillez sélectionner
|
||||||
|
|
|
||||||
|
|
@ -304,7 +304,8 @@ he:
|
||||||
select_feed_for_context: בחירת ההזנה עבור ההקשר הנתון
|
select_feed_for_context: בחירת ההזנה עבור ההקשר הנתון
|
||||||
select_feed_for_project: בחירת ההזנה עבור הפרוייקט
|
select_feed_for_project: בחירת ההזנה עבור הפרוייקט
|
||||||
footer:
|
footer:
|
||||||
send_feedback: שליחת משוב על גירסא %{version}
|
send_feedback: שליחת משוב על גירסא
|
||||||
|
version: 'Tracks %{version} (%{revision_with_date})'
|
||||||
helpers:
|
helpers:
|
||||||
select:
|
select:
|
||||||
prompt: Выберите
|
prompt: Выберите
|
||||||
|
|
|
||||||
|
|
@ -1 +1,5 @@
|
||||||
{}
|
nb_NO:
|
||||||
|
activerecord:
|
||||||
|
attributes:
|
||||||
|
note:
|
||||||
|
created_at: Opprettet
|
||||||
|
|
|
||||||
|
|
@ -347,7 +347,8 @@ nl:
|
||||||
select_feed_for_context: Kies de feed voor deze context
|
select_feed_for_context: Kies de feed voor deze context
|
||||||
select_feed_for_project: Kies de feed voor dit project
|
select_feed_for_project: Kies de feed voor dit project
|
||||||
footer:
|
footer:
|
||||||
send_feedback: Stuur reactie op %{version}
|
send_feedback: Stuur reactie
|
||||||
|
version: 'Tracks %{version} (%{revision_with_date})'
|
||||||
helpers:
|
helpers:
|
||||||
select:
|
select:
|
||||||
prompt: Maak een keuze
|
prompt: Maak een keuze
|
||||||
|
|
|
||||||
|
|
@ -425,7 +425,8 @@ ru:
|
||||||
select_feed_for_context: Выберите ленту новостей для этого контекста
|
select_feed_for_context: Выберите ленту новостей для этого контекста
|
||||||
select_feed_for_project: Выберите ленту новостей для этого проекта
|
select_feed_for_project: Выберите ленту новостей для этого проекта
|
||||||
footer:
|
footer:
|
||||||
send_feedback: Обратная связь. Версия %{version}
|
send_feedback: Обратная связь
|
||||||
|
version: 'Tracks %{version} (%{revision_with_date})'
|
||||||
helpers:
|
helpers:
|
||||||
select:
|
select:
|
||||||
prompt: Выберите...
|
prompt: Выберите...
|
||||||
|
|
|
||||||
|
|
@ -1 +1,2 @@
|
||||||
{}
|
sv:
|
||||||
|
{}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
data:
|
tr:
|
||||||
|
data:
|
||||||
import:
|
import:
|
||||||
yaml_disabled: YAML yükleme kapalı
|
yaml_disabled: YAML yükleme kapalı
|
||||||
todos_count: İçeri aktarılacak Todos sayısı %{count}
|
todos_count: İçeri aktarılacak Todos sayısı %{count}
|
||||||
|
|
@ -48,7 +49,7 @@ data:
|
||||||
yaml: YAML
|
yaml: YAML
|
||||||
csv: CSV
|
csv: CSV
|
||||||
xml: XML
|
xml: XML
|
||||||
contexts:
|
contexts:
|
||||||
visible_contexts: Görünür içerikler
|
visible_contexts: Görünür içerikler
|
||||||
view_link: '%{name} içeriğini görüntüle'
|
view_link: '%{name} içeriğini görüntüle'
|
||||||
update_status_message: İçerik adı değiştirildi
|
update_status_message: İçerik adı değiştirildi
|
||||||
|
|
@ -81,7 +82,7 @@ contexts:
|
||||||
completed_tasks_title: TRACKS::şuradan '%{context_name}' tamamlanan eylemler
|
completed_tasks_title: TRACKS::şuradan '%{context_name}' tamamlanan eylemler
|
||||||
all_completed_tasks_title: TRACKS::şuradan '%{context_name}' tamamlanan bütün eylemler
|
all_completed_tasks_title: TRACKS::şuradan '%{context_name}' tamamlanan bütün eylemler
|
||||||
add_context: İçerik ekle
|
add_context: İçerik ekle
|
||||||
common:
|
common:
|
||||||
wiki: Wiki
|
wiki: Wiki
|
||||||
weeks: haftalar
|
weeks: haftalar
|
||||||
week: hafta
|
week: hafta
|
||||||
|
|
@ -141,7 +142,16 @@ common:
|
||||||
add: Ekle
|
add: Ekle
|
||||||
actions: Eylemler
|
actions: Eylemler
|
||||||
action: Eylem
|
action: Eylem
|
||||||
activerecord:
|
days_midsentence:
|
||||||
|
one: Gün
|
||||||
|
other: Günler
|
||||||
|
note:
|
||||||
|
one: Not yok
|
||||||
|
other: 1 not var
|
||||||
|
actions_midsentence:
|
||||||
|
one: Eylem
|
||||||
|
other: Eylemler
|
||||||
|
activerecord:
|
||||||
errors:
|
errors:
|
||||||
template:
|
template:
|
||||||
header:
|
header:
|
||||||
|
|
@ -234,13 +244,15 @@ activerecord:
|
||||||
note:
|
note:
|
||||||
updated_at: Güncellenme tarihi
|
updated_at: Güncellenme tarihi
|
||||||
created_at: Oluşturulma tarihi
|
created_at: Oluşturulma tarihi
|
||||||
date:
|
date:
|
||||||
abbr_day_names:
|
abbr_day_names:
|
||||||
- Pa
|
- Pa
|
||||||
- Pt
|
- Pt
|
||||||
- Pe
|
- Pe
|
||||||
- Cu
|
- Cu
|
||||||
- Ct
|
- Ct
|
||||||
|
- Cum
|
||||||
|
- Cmt
|
||||||
abbr_month_names:
|
abbr_month_names:
|
||||||
- Kas
|
- Kas
|
||||||
- Oca
|
- Oca
|
||||||
|
|
@ -253,6 +265,8 @@ date:
|
||||||
- Ağu
|
- Ağu
|
||||||
- Eyl
|
- Eyl
|
||||||
- Eki
|
- Eki
|
||||||
|
- Kas
|
||||||
|
- Ara
|
||||||
day_names:
|
day_names:
|
||||||
- Pazar
|
- Pazar
|
||||||
- Pazartesi
|
- Pazartesi
|
||||||
|
|
@ -279,10 +293,12 @@ date:
|
||||||
- Ekim
|
- Ekim
|
||||||
- Kasım
|
- Kasım
|
||||||
- Aralık
|
- Aralık
|
||||||
|
- Aralık
|
||||||
order:
|
order:
|
||||||
- :yıl
|
- :year
|
||||||
- :gün
|
- :month
|
||||||
datetime:
|
- :day
|
||||||
|
datetime:
|
||||||
prompts:
|
prompts:
|
||||||
day: Gün
|
day: Gün
|
||||||
hour: Saat
|
hour: Saat
|
||||||
|
|
@ -319,7 +335,7 @@ datetime:
|
||||||
over_x_years:
|
over_x_years:
|
||||||
one: 1 yıldan fazla
|
one: 1 yıldan fazla
|
||||||
other: '%{count} yıldan fazla'
|
other: '%{count} yıldan fazla'
|
||||||
errors:
|
errors:
|
||||||
messages:
|
messages:
|
||||||
blank: boş bırakılamaz
|
blank: boş bırakılamaz
|
||||||
less_than: "%{count}'dan az olmalıdır"
|
less_than: "%{count}'dan az olmalıdır"
|
||||||
|
|
@ -346,8 +362,68 @@ errors:
|
||||||
format: '%{attribute} %{message}'
|
format: '%{attribute} %{message}'
|
||||||
user_unauthorized: '401 Yetkisiz: sadece yetkili kullanıcılar bu özelliğe erişime
|
user_unauthorized: '401 Yetkisiz: sadece yetkili kullanıcılar bu özelliğe erişime
|
||||||
sahiptir.'
|
sahiptir.'
|
||||||
feedlist:
|
feedlist:
|
||||||
actions_completed_last_week: Son 7 günde tamamlanan eylemler
|
actions_completed_last_week: Son 7 günde tamamlanan eylemler
|
||||||
actions_due_next_week: 7 gün veya daha önce bitecek eylemler
|
actions_due_next_week: 7 gün veya daha önce bitecek eylemler
|
||||||
actions_due_today: Bugün veya daha erken bitecek olan eylemler
|
actions_due_today: Bugün veya daha erken bitecek olan eylemler
|
||||||
active_projects_wo_next: Eylemi bulunmayan aktif projeler
|
active_projects_wo_next: Eylemi bulunmayan aktif projeler
|
||||||
|
all_projects: Bütün Projeler
|
||||||
|
choose_context: Almak istediğiniz içeriği seçin
|
||||||
|
projects_and_actions: Aktif projeler ve eylemleri
|
||||||
|
rss_feed: RSS Akışı
|
||||||
|
active_starred_actions: Yıldızlı, etkin eylemler
|
||||||
|
all_actions: Tüm eylemler
|
||||||
|
all_contexts: Bütün İçerikler
|
||||||
|
choose_project: Almak istediğiniz projeyi seçin
|
||||||
|
context_centric_actions: Belirli bir içerikteki tamamlanmamış eylemler için akış
|
||||||
|
context_needed: Akış talep etmeden önce en az bir içerik olmalı
|
||||||
|
ical_feed: iCal akış
|
||||||
|
last_fixed_number: Son %{number} eylem/ler
|
||||||
|
legend: 'Semboller:'
|
||||||
|
notice_incomplete_only: "Not: Akış, aksi işaretlenmedikçe sadece tamamlanmamış eylemleri\
|
||||||
|
\ gösterir. Bu iCal akışları todo listesine eklenebilir. Eğer bitimi yaklaşan\
|
||||||
|
\ todo'ları takvimde görüntülemek istiyorsanız, takvim sayfasından iCal akışını\
|
||||||
|
\ kullanın"
|
||||||
|
plain_text_feed: Düz Yazı Akışı
|
||||||
|
project_centric: Belirli bir projedeki tamamlanmamış eylemler akışı
|
||||||
|
project_needed: Akış talep etmeden önce en az bir proje olmalı
|
||||||
|
select_feed_for_context: Bu içerik için akış seçin
|
||||||
|
select_feed_for_project: Bu proje için akış seçin
|
||||||
|
integrations:
|
||||||
|
sections:
|
||||||
|
email_rich: Zengin Todo Mesaj e-posta formatı
|
||||||
|
message_gateway: Tracks aracılığıyla e-posta gönderebilmek için Tracks'ı e-posta
|
||||||
|
serverine bağlayın
|
||||||
|
automatic_email: Yaklaşan eylemler için kendinize otomatik e-posta gönderin
|
||||||
|
mailgun: Mailgun aracılığıyla Tracks'a e-posta gönder
|
||||||
|
opensearch_description: Tracks'ta ara
|
||||||
|
title: Entegrasyonlar
|
||||||
|
add_your_own: Eklemek istediğiniz araç mı var? Tracks'ın gelecek sürümlerine ekleyebilmemiz
|
||||||
|
için bize gönderin %{tell_us_link}.
|
||||||
|
intro: 'Tracks işinize yarayabilecek diğer araçlarla entegre edilebilir! Bu sayfa
|
||||||
|
bazılarını entegre etmeye yönelik bilgi içerir. Her platforma uygulanabilir olmayabilirler
|
||||||
|
ve bazıları diğerlerine kıyasla daha fazla teknik bilgi gerektirebilir. Ek bilgi
|
||||||
|
için: %{documentation_link}'
|
||||||
|
developer_documentation_link: Tracks için geliştirici dokümantasyonu
|
||||||
|
contents_header: 'İçerikler:'
|
||||||
|
tell_us_link_text: Bunun hakkında bize görüş bildirin
|
||||||
|
cron_2: Başka bir metin kullanabilirsiniz %{feeds_link} Projede birlikte çalıştığınız
|
||||||
|
meslektaşlarınıza neden listeyi e-posta gönderemeyesiniz ki?
|
||||||
|
cron_email_subject: Bitimi 7 gün içerisinde olan Tracks eylemleri
|
||||||
|
feeds_link_text: akış Tracks tarafından sağlanmıştır
|
||||||
|
cron_1: Bu girdiyi crontab üzerinden girerseniz, her gün ÖÖ 5'te 7 gün içerisinde
|
||||||
|
bitimi yaklaşan eylemlerle ilgili bir e-posta alacaksınız.
|
||||||
|
message_gateway:
|
||||||
|
rich_api_tip: Mesaj içeriği tanım, içerik ve proje kısmına, not ise gövde metnine
|
||||||
|
yazarak "çamaşırları yıka @ Ev" veya "Mehmet'i Ara > x projesi" ve benzeri türden
|
||||||
|
görevler oluşturmak için Rich Todo API kullanabilirsiniz.
|
||||||
|
footer:
|
||||||
|
send_feedback: Geri bildirim
|
||||||
|
version: 'Tracks %{version} (%{revision_with_date})'
|
||||||
|
helpers:
|
||||||
|
select:
|
||||||
|
prompt: Seçiniz
|
||||||
|
submit:
|
||||||
|
create: Oluştur %{model}
|
||||||
|
submit: Kaydet %{model}
|
||||||
|
update: Güncelle %{model}
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,13 @@ force_ssl: false
|
||||||
# the relative URL. Mongrel, for example, has a --prefix option.
|
# the relative URL. Mongrel, for example, has a --prefix option.
|
||||||
# subdir: "/tracks"
|
# subdir: "/tracks"
|
||||||
|
|
||||||
|
# Set this to respective values if you're instance is running behind a proxy
|
||||||
|
# (e.g. localhost:3000 is not the client visible host).
|
||||||
|
# default_url_options:
|
||||||
|
# :host: 'example.org'
|
||||||
|
# :protocol: 'https://'
|
||||||
|
# :port: 443
|
||||||
|
|
||||||
# Set to true to allow anyone to sign up for a username.
|
# Set to true to allow anyone to sign up for a username.
|
||||||
open_signups: false
|
open_signups: false
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,55 @@
|
||||||
See doc/upgrading.md for the upgrade documentation!
|
See doc/upgrading.md for the upgrade documentation!
|
||||||
|
|
||||||
|
## Version 2.6.1
|
||||||
|
|
||||||
|
### Deprecations
|
||||||
|
|
||||||
|
* This will be the last release to support Ruby 2.6, which is already end-of-life.
|
||||||
|
|
||||||
|
### Bug fixes
|
||||||
|
|
||||||
|
* Lots of dependencies have been updated (including security updates).
|
||||||
|
* Fixed some documentation.
|
||||||
|
* Updated and added missing Datepicker localisations which caused some locales to fail.
|
||||||
|
* Added PostgreSQL documentation (thanks Sean Pappalardo!)
|
||||||
|
* URL options can be specified to make autocompletion work behind a proxy (thanks Michal Koutný!)
|
||||||
|
|
||||||
|
### Updated translations
|
||||||
|
|
||||||
|
* Finnish (by maintainer Jyri-Petteri ”ZeiP” Paloposki)
|
||||||
|
* Spanish (thanks Francisco Serrador!)
|
||||||
|
* Norwegian Bokmål (thanks Allan Nordhøy!)
|
||||||
|
|
||||||
|
## Version 2.6.0
|
||||||
|
|
||||||
|
### New features
|
||||||
|
|
||||||
|
* Ruby 3.0 is now supported.
|
||||||
|
* Support obsidian links in notes.
|
||||||
|
|
||||||
|
### Removed features
|
||||||
|
|
||||||
|
* No longer supporting EOL Ruby 2.5
|
||||||
|
|
||||||
|
### Bug fixes
|
||||||
|
|
||||||
|
* Fix Docker image functionality in certain cases.
|
||||||
|
* Lots of dependencies have been upgraded.
|
||||||
|
* Fixed some error messages in import.
|
||||||
|
* Fixed import in the Docker image.
|
||||||
|
* Footer shows the Git version hash and date in the Docker image
|
||||||
|
|
||||||
|
### Updated translations
|
||||||
|
|
||||||
|
* Finnish (by maintainer Jyri-Petteri ”ZeiP” Paloposki)
|
||||||
|
* Turkish (thanks Burak Ekseli!)
|
||||||
|
* Spanish (thanks Francisco Serrador!)
|
||||||
|
|
||||||
## Version 2.5.2
|
## Version 2.5.2
|
||||||
|
|
||||||
### New features
|
### New features
|
||||||
|
|
||||||
|
* Whole Tracks is now translatable.
|
||||||
* New Finnish locale by the maintainer Jyri-Petteri ”ZeiP” Paloposki.
|
* New Finnish locale by the maintainer Jyri-Petteri ”ZeiP” Paloposki.
|
||||||
* Update last login field when validating an existing login.
|
* Update last login field when validating an existing login.
|
||||||
* Show more users in the user list and allow changing the order criteria.
|
* Show more users in the user list and allow changing the order criteria.
|
||||||
|
|
|
||||||
|
|
@ -50,8 +50,8 @@ Tracks container. In future there should be an official image in Docker Hub. You
|
||||||
1. Make sure you have Docker properly installed.
|
1. Make sure you have Docker properly installed.
|
||||||
2. Start a database container with either MySQL or PostgreSQL:
|
2. Start a database container with either MySQL or PostgreSQL:
|
||||||
```
|
```
|
||||||
$ docker run -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=password -d postgres
|
$ docker run -d -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=password -d postgres
|
||||||
$ docker run -p 3306:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=password -d mariadb
|
$ docker run -d -p 3306:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=password -d mariadb
|
||||||
```
|
```
|
||||||
3. Create a database and a user for Tracks in the database:
|
3. Create a database and a user for Tracks in the database:
|
||||||
```
|
```
|
||||||
|
|
@ -72,8 +72,8 @@ Tracks container. In future there should be an official image in Docker Hub. You
|
||||||
```
|
```
|
||||||
5. Start the Tracks server:
|
5. Start the Tracks server:
|
||||||
```
|
```
|
||||||
$ docker run -p 3000:3000 --name tracks --link mariadb:db -t tracks
|
$ docker run -d -p 3000:3000 --name tracks --link mariadb:db -t tracks
|
||||||
$ docker run -p 3000:3000 --name tracks --link postgres:db -t tracks
|
$ docker run -d -p 3000:3000 --name tracks --link postgres:db -t tracks
|
||||||
```
|
```
|
||||||
6. You should now be able to access Tracks in http://localhost:3000
|
6. You should now be able to access Tracks in http://localhost:3000
|
||||||
|
|
||||||
|
|
@ -153,13 +153,13 @@ Tracks is built upon a number of Ruby libraries (known as ‘gems’). The Bundl
|
||||||
* If you are using SQLite:
|
* If you are using SQLite:
|
||||||
|
|
||||||
```
|
```
|
||||||
bundle install --without development test mysql
|
bundle install --without "development test mysql"
|
||||||
```
|
```
|
||||||
|
|
||||||
* If you are using MySQL:
|
* If you are using MySQL:
|
||||||
|
|
||||||
```
|
```
|
||||||
bundle install --without development test sqlite
|
bundle install --without "development test sqlite"
|
||||||
```
|
```
|
||||||
|
|
||||||
* If you are installing Tracks on Windows or Mac OS X, or if you have another JavaScript runtime such as Node.js installed, you may also append `therubyracer` as an additional "without" parameter.
|
* If you are installing Tracks on Windows or Mac OS X, or if you have another JavaScript runtime such as Node.js installed, you may also append `therubyracer` as an additional "without" parameter.
|
||||||
|
|
@ -168,10 +168,13 @@ Tracks is built upon a number of Ruby libraries (known as ‘gems’). The Bundl
|
||||||
## Configure variables
|
## Configure variables
|
||||||
|
|
||||||
1. In the `config` folder, copy the files `database.yml.tmpl` and `site.yml.tmpl` to `database.yml` and `site.yml`, respectively.
|
1. In the `config` folder, copy the files `database.yml.tmpl` and `site.yml.tmpl` to `database.yml` and `site.yml`, respectively.
|
||||||
2. Open the file `config/database.yml` and edit the `production:` section with the details of your database. If you are using MySQL the `adapter:` line should read `adapter: mysql2`, `host: localhost` (in the majority of cases), and your username and password should match those you assigned when you created the database. If you are using SQLite3, you should have only two lines under the production section: `adapter: sqlite3` and `database: db/tracks.db`.
|
2. Open the file `config/database.yml` and edit the `production:` section with the details of your database.
|
||||||
3. Open the file `config/site.yml`, and read through the settings to make sure that they suit your setup. In most cases, all you need to change are the `secret_token`, the administrator email address (`admin_email`), and the time zone setting. For the time zone setting you can use the command `bundle exec rake time:zones:local` to see all available timezones on your machine
|
* If you are using MySQL the `adapter:` line should read `adapter: mysql2`, `host: localhost` (in the majority of cases), and your username and password should match those you assigned when you created the database.
|
||||||
4. If you are using Windows, you may need to check the ‘shebang’ lines (`#!/usr/bin/env ruby`) of the `/public/dispatch.*` files and all the files in the `/script` directory. They are set to `#!/usr/bin/env ruby` by default. This should work for all Unix based setups (Linux or Mac OS X), but Windows users will probably have to change it to something like `#c:/ruby/bin/ruby` to point to the Ruby binary on your system.
|
* If you are using PostgreSQL, set the line to `adapter: postgresql` and adjust host, username and password as appropriate.
|
||||||
5. If you intend to use Tracks behind a web server or reverse proxy with https enabled, ensure to set `force_ssl` option to `true`.
|
* If you are using SQLite3, you should have only two lines under the production section: `adapter: sqlite3` and `database: db/tracks.db`.
|
||||||
|
5. Open the file `config/site.yml`, and read through the settings to make sure that they suit your setup. In most cases, all you need to change are the `secret_token`, the administrator email address (`admin_email`), and the time zone setting. For the time zone setting you can use the command `bundle exec rake time:zones:local` to see all available timezones on your machine
|
||||||
|
6. If you are using Windows, you may need to check the ‘shebang’ lines (`#!/usr/bin/env ruby`) of the `/public/dispatch.*` files and all the files in the `/script` directory. They are set to `#!/usr/bin/env ruby` by default. This should work for all Unix based setups (Linux or Mac OS X), but Windows users will probably have to change it to something like `#c:/ruby/bin/ruby` to point to the Ruby binary on your system.
|
||||||
|
7. If you intend to use Tracks behind a web server or reverse proxy with https enabled, ensure to set `force_ssl` option to `true`.
|
||||||
|
|
||||||
### Populate your database with the Tracks schema
|
### Populate your database with the Tracks schema
|
||||||
|
|
||||||
|
|
|
||||||
0
public/uploads/csv/.keep
Normal file
0
public/uploads/csv/.keep
Normal file
|
|
@ -1,10 +1,12 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "==> Polling DB…"
|
||||||
|
|
||||||
appdir=$(cd $(dirname "$0")/.. && pwd)
|
appdir=$(cd $(dirname "$0")/.. && pwd)
|
||||||
[ -f /etc/app-env ] || exec "$appdir/script/docker-environment" $0 $@
|
[ -f /etc/app-env ] || exec "$appdir/script/docker-environment" $0 $@
|
||||||
|
|
||||||
for i in {1..60}; do
|
for i in {1..60}; do
|
||||||
curl -sf db:3306 >/dev/null && exit
|
nc -z -w5 db 3306 && exit
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ services:
|
||||||
web:
|
web:
|
||||||
build:
|
build:
|
||||||
context: ..
|
context: ..
|
||||||
dockerfile: Dockerfile-2.5
|
dockerfile: Dockerfile-3.0
|
||||||
environment:
|
environment:
|
||||||
# These are set in script/ci-build, so we need to pass-thru them.
|
# These are set in script/ci-build, so we need to pass-thru them.
|
||||||
RAILS_ENV: $RAILS_ENV
|
RAILS_ENV: $RAILS_ENV
|
||||||
|
|
@ -1,22 +1,25 @@
|
||||||
version: '3'
|
version: '3'
|
||||||
services:
|
services:
|
||||||
db:
|
db:
|
||||||
image: mysql:5.7
|
image: postgres:13
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ALLOW_EMPTY_PASSWORD: 1
|
POSTGRES_DB: ${DATABASE_NAME:-tracks}
|
||||||
MYSQL_DATABASE: ${TRACKS_DB:-tracks}
|
POSTGRES_PASSWORD: password
|
||||||
volumes:
|
volumes:
|
||||||
- db-data:/var/lib/mysql
|
- db-data:/var/lib/postgresql/data
|
||||||
web:
|
web:
|
||||||
build:
|
build:
|
||||||
context: ..
|
context: ..
|
||||||
dockerfile: Dockerfile-2.6
|
dockerfile: Dockerfile-3.0
|
||||||
environment:
|
environment:
|
||||||
# These are set in script/ci-build, so we need to pass-thru them.
|
# These are set in script/ci-build, so we need to pass-thru them.
|
||||||
RAILS_ENV: $RAILS_ENV
|
RAILS_ENV: $RAILS_ENV
|
||||||
DATABASE_NAME: $DATABASE_NAME
|
DATABASE_NAME: $DATABASE_NAME
|
||||||
DATABASE_USERNAME: root
|
DATABASE_USERNAME: postgres
|
||||||
DATABASE_PASSWORD_EMPTY: 1
|
DATABASE_PASSWORD: password
|
||||||
|
DATABASE_TYPE: postgresql
|
||||||
|
DATABASE_ENCODING: unicode
|
||||||
|
DATABASE_PORT: 5432
|
||||||
volumes:
|
volumes:
|
||||||
- ${VOLUME:-..}:/app:Z
|
- ${VOLUME:-..}:/app:Z
|
||||||
- ${VOLUME:-..}/config/database.docker.yml:/app/config/database.yml:Z
|
- ${VOLUME:-..}/config/database.docker.yml:/app/config/database.yml:Z
|
||||||
17
test-envs/docker-compose-3.0-sqlite.yml
Normal file
17
test-envs/docker-compose-3.0-sqlite.yml
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
build:
|
||||||
|
context: ..
|
||||||
|
dockerfile: Dockerfile-3.0
|
||||||
|
environment:
|
||||||
|
# These are set in script/ci-build, so we need to pass-thru them.
|
||||||
|
RAILS_ENV: $RAILS_ENV
|
||||||
|
DATABASE_NAME: "/app/db.sqlite"
|
||||||
|
DATABASE_TYPE: sqlite3
|
||||||
|
volumes:
|
||||||
|
- ${VOLUME:-..}:/app:Z
|
||||||
|
- ${VOLUME:-..}/config/database.docker.yml:/app/config/database.yml:Z
|
||||||
|
- ${VOLUME:-..}/config/site.docker.yml:/app/config/site.yml:Z
|
||||||
|
ports:
|
||||||
|
- 3000:3000
|
||||||
|
|
@ -4,10 +4,10 @@ class IconHelperTest < ActionView::TestCase
|
||||||
include IconHelper
|
include IconHelper
|
||||||
|
|
||||||
test 'icon_fw generates fixed-width class' do
|
test 'icon_fw generates fixed-width class' do
|
||||||
assert_equal '<i class="fas fa-gear fa-fw"></i>', icon_fw('fas', 'gear')
|
assert_equal '<i class="fas fa-gear fa-fw" aria-hidden="true"></i>', icon_fw('fas', 'gear')
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'icon_fw accepts an additional class' do
|
test 'icon_fw accepts an additional class' do
|
||||||
assert_equal '<i class="fas fa-gear fa-fw myclass"></i>', icon_fw('fas', 'gear', class: 'myclass')
|
assert_equal '<i class="fas fa-gear fa-fw myclass" aria-hidden="true"></i>', icon_fw('fas', 'gear', class: 'myclass')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ class RenderingHelperTest < ActionView::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
test "message link" do
|
test "message link" do
|
||||||
expected = '<p>Call <a href="message://%3C123%3E">message://<123></a>.</p>'
|
expected = '<p>Call <a href="message://<123>">message://<123></a>.</p>'
|
||||||
actual = render_text("Call message://<123>.")
|
actual = render_text("Call message://<123>.")
|
||||||
assert_equal(expected, actual)
|
assert_equal(expected, actual)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
25
test/integration/locale_test.rb
Normal file
25
test/integration/locale_test.rb
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class LocaleTest < ActionDispatch::IntegrationTest
|
||||||
|
|
||||||
|
fixtures :users
|
||||||
|
|
||||||
|
def test_locale_index
|
||||||
|
logs_in_as(users(:other_user_email), 'open')
|
||||||
|
@user = User.find(@request.session['user_id'])
|
||||||
|
locales = I18n.available_locales.map {|l| l.to_s}
|
||||||
|
locales.each do |locale|
|
||||||
|
# Set the locale
|
||||||
|
@user.preference.locale = locale
|
||||||
|
@user.preference.save!
|
||||||
|
logs_in_as(users(:other_user_email), 'open')
|
||||||
|
get '/'
|
||||||
|
assert_response :success
|
||||||
|
assert_template "todos/index"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Finally log in as normal admin user to prevent other tests from failing to the non-English locale.
|
||||||
|
logs_in_as(users(:admin_user), 'abracadabra')
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
@ -2,17 +2,6 @@ require 'test_helper'
|
||||||
|
|
||||||
class RecurringTodosTest < ActionDispatch::IntegrationTest
|
class RecurringTodosTest < ActionDispatch::IntegrationTest
|
||||||
|
|
||||||
def logs_in_as(user,plain_pass)
|
|
||||||
@user = user
|
|
||||||
post "/login", params: { :user_login => @user.login,
|
|
||||||
:user_password => plain_pass,
|
|
||||||
:user_noexpiry => 'n' }
|
|
||||||
assert_response :redirect
|
|
||||||
follow_redirect!
|
|
||||||
assert_response :success
|
|
||||||
assert_template "todos/index"
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_deleting_recurring_todo_clears_reference_from_related_todos
|
def test_deleting_recurring_todo_clears_reference_from_related_todos
|
||||||
logs_in_as(users(:admin_user), 'abracadabra')
|
logs_in_as(users(:admin_user), 'abracadabra')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,6 @@ class RecurringTodoTest < ActiveSupport::TestCase
|
||||||
def test_start_from_in_future
|
def test_start_from_in_future
|
||||||
|
|
||||||
## Test: every day
|
## Test: every day
|
||||||
|
|
||||||
# every_day should return start_day if it is in the future
|
# every_day should return start_day if it is in the future
|
||||||
@every_day.start_from = @in_three_days
|
@every_day.start_from = @in_three_days
|
||||||
due_date = @every_day.get_due_date(nil)
|
due_date = @every_day.get_due_date(nil)
|
||||||
|
|
@ -120,18 +119,14 @@ class RecurringTodoTest < ActiveSupport::TestCase
|
||||||
due_date = @every_day.get_due_date(@in_four_days)
|
due_date = @every_day.get_due_date(@in_four_days)
|
||||||
assert_equal (@in_four_days+1.day).at_midnight, due_date
|
assert_equal (@in_four_days+1.day).at_midnight, due_date
|
||||||
|
|
||||||
|
|
||||||
## Test: Every weekday
|
## Test: Every weekday
|
||||||
|
|
||||||
# 1 Jan 2020 is a Wednesday
|
# 1 Jan 2020 is a Wednesday
|
||||||
@weekly_every_day.start_from = Time.zone.local(2020,1,1)
|
@weekly_every_day.start_from = Time.zone.local(2020,1,1)
|
||||||
assert_equal Time.zone.local(2020,1,1), @weekly_every_day.get_due_date(nil)
|
assert_equal Time.zone.local(2020,1,1), @weekly_every_day.get_due_date(nil)
|
||||||
assert_equal Time.zone.local(2020,1,1), @weekly_every_day.get_due_date(Time.zone.local(2019,10,1))
|
assert_equal Time.zone.local(2020,1,1), @weekly_every_day.get_due_date(Time.zone.local(2019,10,1))
|
||||||
assert_equal Time.zone.local(2020,1,10), @weekly_every_day.get_due_date(Time.zone.local(2020,1,9))
|
assert_equal Time.zone.local(2020,1,10), @weekly_every_day.get_due_date(Time.zone.local(2020,1,9))
|
||||||
|
|
||||||
|
|
||||||
## Test: every month
|
## Test: every month
|
||||||
|
|
||||||
@monthly_every_last_friday.start_from = Time.zone.local(@next_year,3,1)
|
@monthly_every_last_friday.start_from = Time.zone.local(@next_year,3,1)
|
||||||
|
|
||||||
last_friday_in_march = Time.zone.local(@next_year, 3, 31)
|
last_friday_in_march = Time.zone.local(@next_year, 3, 31)
|
||||||
|
|
@ -152,16 +147,17 @@ class RecurringTodoTest < ActiveSupport::TestCase
|
||||||
# Starting from 1 April next year: next due date is the last Friday of April
|
# Starting from 1 April next year: next due date is the last Friday of April
|
||||||
assert_equal last_friday_in_april, @monthly_every_last_friday.get_due_date(Time.zone.local(@next_year,4,1))
|
assert_equal last_friday_in_april, @monthly_every_last_friday.get_due_date(Time.zone.local(@next_year,4,1))
|
||||||
|
|
||||||
|
|
||||||
## Test: every year
|
## Test: every year
|
||||||
|
|
||||||
# start from after june 8th 2008
|
|
||||||
@yearly.start_from = Time.zone.local(2021,6,12)
|
|
||||||
assert_equal Time.zone.local(2022,6,8), @yearly.get_due_date(nil) # jun 8th next year
|
|
||||||
assert_equal Time.zone.local(2022,6,8), @yearly.get_due_date(Time.zone.local(2019,6,1)) # also next year
|
|
||||||
assert_equal Time.zone.local(2022,6,8), @yearly.get_due_date(Time.zone.local(2020,6,15)) # also next year
|
|
||||||
|
|
||||||
this_year = Time.zone.now.utc.year
|
this_year = Time.zone.now.utc.year
|
||||||
|
next_year = this_year + 1
|
||||||
|
|
||||||
|
# Test that we're getting the next due date both without a specific date,
|
||||||
|
# after this year and after the next year's.
|
||||||
|
@yearly.start_from = Time.zone.local(this_year, 6, 12)
|
||||||
|
assert_equal Time.zone.local(next_year, 6, 8), @yearly.get_due_date(nil) # jun 8th next year
|
||||||
|
assert_equal Time.zone.local(next_year, 6, 8), @yearly.get_due_date(Time.zone.local(next_year, 6, 1)) # also next year
|
||||||
|
assert_equal Time.zone.local(next_year + 1, 6, 8), @yearly.get_due_date(Time.zone.local(next_year, 6, 15)) # also next year
|
||||||
|
|
||||||
@yearly.start_from = Time.zone.local(this_year+1,6,12)
|
@yearly.start_from = Time.zone.local(this_year+1,6,12)
|
||||||
due_date = @yearly.get_due_date(nil)
|
due_date = @yearly.get_due_date(nil)
|
||||||
assert_equal due_date.year, this_year+2
|
assert_equal due_date.year, this_year+2
|
||||||
|
|
|
||||||
|
|
@ -109,6 +109,17 @@ end
|
||||||
|
|
||||||
class ActionDispatch::IntegrationTest
|
class ActionDispatch::IntegrationTest
|
||||||
|
|
||||||
|
def logs_in_as(user, plain_pass)
|
||||||
|
@user = user
|
||||||
|
post "/login", params: { :user_login => @user.login,
|
||||||
|
:user_password => plain_pass,
|
||||||
|
:user_noexpiry => 'n' }
|
||||||
|
assert_response :redirect
|
||||||
|
follow_redirect!
|
||||||
|
assert_response :success
|
||||||
|
assert_template "todos/index"
|
||||||
|
end
|
||||||
|
|
||||||
def authenticated_post_xml(url, username, password, parameters, headers = {})
|
def authenticated_post_xml(url, username, password, parameters, headers = {})
|
||||||
post url, params: parameters, headers:
|
post url, params: parameters, headers:
|
||||||
{ 'HTTP_AUTHORIZATION' => "Basic " + Base64.encode64("#{username}:#{password}"),
|
{ 'HTTP_AUTHORIZATION' => "Basic " + Base64.encode64("#{username}:#{password}"),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue