├── .coveralls.yml
├── .devcontainer
├── Dockerfile
├── create-db-user.sql
├── devcontainer.json
├── docker-compose.yml
└── post-create.sh
├── .flow
├── .github
└── workflows
│ ├── build.yml
│ └── release.yml
├── .gitignore
├── .hgeol
├── .hgflow
├── .hgignore
├── .redmine.code-workspace
├── .travis.yml
├── GPL.txt
├── Gemfile_for_test
├── README.md
├── app
├── controllers
│ ├── code_review_controller.rb
│ └── code_review_settings_controller.rb
├── helpers
│ └── code_review_helper.rb
├── models
│ ├── code_review.rb
│ ├── code_review_assignment.rb
│ ├── code_review_project_setting.rb
│ ├── code_review_user_setting.rb
│ └── review_mailer.rb
└── views
│ ├── code_review
│ ├── _add_success.html.erb
│ ├── _body_bottom.html.erb
│ ├── _change_attachement_view.html.erb
│ ├── _change_entry_norevision_view.html.erb
│ ├── _change_repository_view.html.erb
│ ├── _change_revision_view.html.erb
│ ├── _history.html.erb
│ ├── _html_header.html.erb
│ ├── _issues_show_details_bottom.html.erb
│ ├── _new_form.html.erb
│ ├── _reply.html.erb
│ ├── _show.html.erb
│ ├── _show_error.html.erb
│ ├── _update_diff_view.html.erb
│ ├── _update_revisions.html.erb
│ └── index.html.erb
│ └── code_review_settings
│ ├── _filters.html.erb
│ └── _show.html.erb
├── assets
├── images
│ ├── 1downarrow.png
│ ├── 1uparrow.png
│ ├── 2downarrow.png
│ ├── 2uparrow.png
│ ├── closed_review.png
│ └── review.png
├── javascripts
│ └── code_review.js
└── stylesheets
│ ├── activity.css
│ ├── code_review.css
│ └── window_js
│ ├── MIT-LICENSE
│ ├── alert.css
│ ├── alert
│ ├── bottom.gif
│ ├── bottom_left.gif
│ ├── bottom_right.gif
│ ├── left.gif
│ ├── overlay.png
│ ├── progress.gif
│ ├── right.gif
│ ├── top.gif
│ ├── top_left.gif
│ └── top_right.gif
│ ├── alert_lite.css
│ ├── alphacube.css
│ ├── alphacube
│ ├── bottom-left-c.gif
│ ├── bottom-middle.gif
│ ├── bottom-right-c.gif
│ ├── button-close-focus.gif
│ ├── button-max-focus.gif
│ ├── button-min-focus.gif
│ ├── frame-left.gif
│ ├── frame-right.gif
│ ├── left-top.gif
│ ├── right-top.gif
│ └── top-middle.gif
│ ├── behavior.htc
│ ├── darkX.css
│ ├── darkX
│ ├── button-close-focused.png
│ ├── button-maximize-focused.png
│ ├── button-minimize-focused.png
│ ├── frame-bottom-left-focused.png
│ ├── frame-bottom-mid-focused.png
│ ├── frame-bottom-right-focused.png
│ ├── frame-left-focused.png
│ ├── frame-right-focused.png
│ ├── titlebar-left-focused.png
│ ├── titlebar-mid-focused.png
│ └── titlebar-right-focused.png
│ ├── debug.css
│ ├── default.css
│ ├── default
│ ├── bottom_left.gif
│ ├── bottom_mid.gif
│ ├── bottom_right.gif
│ ├── bottom_right_resize.gif
│ ├── center_left.gif
│ ├── center_right.gif
│ ├── clear.gif
│ ├── close.gif
│ ├── inspect.gif
│ ├── maximize.gif
│ ├── minimize.gif
│ ├── overlay.png
│ ├── resize.gif
│ ├── sizer.gif
│ ├── top_left.gif
│ ├── top_mid.gif
│ └── top_right.gif
│ ├── iefix
│ ├── blank.gif
│ ├── iepngfix.css
│ └── iepngfix.htc
│ ├── lighting.css
│ ├── lighting
│ ├── background_buttons.gif
│ ├── bottom-left-blue.png
│ ├── bottom-left-darkblue.png
│ ├── bottom-left-green.png
│ ├── bottom-left-grey.png
│ ├── bottom-middle-blue.png
│ ├── bottom-middle-darkblue.png
│ ├── bottom-middle-green.png
│ ├── bottom-middle-grey.png
│ ├── bottom-right-blue.png
│ ├── bottom-right-darkblue.png
│ ├── bottom-right-green.png
│ ├── bottom-right-grey.png
│ ├── button-close-blue.png
│ ├── button-close-darkblue.png
│ ├── button-close-green.png
│ ├── button-close-grey.png
│ ├── button-maximize-blue.png
│ ├── button-maximize-darkblue.png
│ ├── button-maximize-green.png
│ ├── button-maximize-grey.png
│ ├── button-minimize-blue.png
│ ├── button-minimize-darkblue.png
│ ├── button-minimize-green.png
│ ├── button-minimize-grey.png
│ ├── left-blue.png
│ ├── left-darkblue.png
│ ├── left-green.png
│ ├── left-grey.png
│ ├── pngbehavior.htc
│ ├── right-blue.png
│ ├── right-darkblue.png
│ ├── right-green.png
│ ├── right-grey.png
│ ├── spinner.gif
│ ├── top-left-blue.png
│ ├── top-left-darkblue.png
│ ├── top-left-green.png
│ ├── top-left-grey.png
│ ├── top-middle-blue.png
│ ├── top-middle-darkblue.png
│ ├── top-middle-green.png
│ ├── top-middle-grey.png
│ ├── top-right-blue.png
│ ├── top-right-darkblue.png
│ ├── top-right-green.png
│ └── top-right-grey.png
│ ├── mac_os_x.css
│ ├── mac_os_x
│ ├── B.png
│ ├── BL.png
│ ├── BL_Main.png
│ ├── BR.png
│ ├── BR_Main.png
│ ├── B_Main.png
│ ├── L.png
│ ├── L_Main.png
│ ├── R.png
│ ├── R_Main.png
│ ├── T.png
│ ├── TL.png
│ ├── TL_Main.png
│ ├── TR.png
│ ├── TR_Main.png
│ ├── T_Main.png
│ ├── close.gif
│ ├── maximize.gif
│ └── minimize.gif
│ ├── mac_os_x_dialog.css
│ ├── mac_os_x_dialog
│ ├── B.png
│ ├── BL.png
│ ├── BR.png
│ ├── L.png
│ ├── R.png
│ ├── T.png
│ ├── TL.png
│ ├── TR.png
│ ├── bg.gif
│ ├── close.gif
│ ├── maximize.gif
│ └── minimize.gif
│ ├── nuncio.css
│ ├── nuncio
│ ├── bottom_left.png
│ ├── bottom_mid.png
│ ├── bottom_right.png
│ ├── center_left.png
│ ├── center_right.png
│ ├── close.png
│ ├── minimize.png
│ ├── overlay.png
│ ├── top_left.png
│ ├── top_mid.png
│ └── top_right.png
│ ├── spread.css
│ └── spread
│ ├── bottom-left-c.gif
│ ├── bottom-middle.gif
│ ├── bottom-right-c.gif
│ ├── button-close-focus.gif
│ ├── button-max-focus.gif
│ ├── button-min-focus.gif
│ ├── frame-left.gif
│ ├── frame-right.gif
│ ├── left-top.gif
│ ├── right-top.gif
│ └── top-middle.gif
├── build-scripts
├── build.sh
├── cleanup.sh
├── database.yml
├── env.sh
└── install.sh
├── config
├── locales
│ ├── bg.yml
│ ├── de.yml
│ ├── en.yml
│ ├── es.yml
│ ├── fr.yml
│ ├── hu.yml
│ ├── ja.yml
│ ├── ko.yml
│ ├── nl.yml
│ ├── pl.yml
│ ├── pt-BR.yml
│ ├── ru.yml
│ ├── sk.yml
│ ├── sv.yml
│ ├── zh-TW.yml
│ └── zh.yml
└── routes.rb
├── db
└── migrate
│ ├── 0001_create_code_reviews.rb
│ ├── 0002_add_updated_by.rb
│ ├── 0003_add_lock_version.rb
│ ├── 0004_add_status_changed.rb
│ ├── 0005_create_code_review_user_settings.rb
│ ├── 0006_link_to_issue.rb
│ ├── 0007_rename_user.rb
│ ├── 0008_create_code_review_project_settings.rb
│ ├── 0009_add_hide_tab.rb
│ ├── 0010_add_action_type.rb
│ ├── 0011_add_auto_relation.rb
│ ├── 0012_add_attachment_id.rb
│ ├── 0013_add_file_count.rb
│ ├── 0014_create_code_review_assignments.rb
│ ├── 0015_add_assignment_tracker.rb
│ ├── 0016_add_changeset_id.rb
│ ├── 0017_add_auto_assign.rb
│ ├── 0018_add_lock_version_to_project_settings.rb
│ ├── 0019_delete_old_fields.rb
│ ├── 0020_add_tracker_to_review_dialog.rb
│ ├── 0021_add_diff_all.rb
│ └── 20220312104356_add_repository_id_to_code_reviews.rb
├── init.rb
├── lib
├── code_review_application_hooks.rb
├── code_review_attachment_patch.rb
├── code_review_auto_assign_settings.rb
├── code_review_change_patch.rb
├── code_review_changeset_patch.rb
├── code_review_issue_hooks.rb
├── code_review_issue_patch.rb
└── code_review_projects_helper_patch.rb
├── test
├── code_review_object_daddy_helpers.rb
├── exemplars
│ └── code_review_exemplar.rb
├── fixtures
│ ├── code_review_assignments.yml
│ ├── code_review_project_settings.yml
│ ├── code_review_user_settings.yml
│ └── code_reviews.yml
├── functional
│ ├── attachments_controller_test.rb
│ ├── code_review_controller_test.rb
│ ├── code_review_settings_controller_test.rb
│ ├── issues_controller_test.rb
│ ├── projects_controller_test.rb
│ └── repositories_controller_test.rb
├── test_helper.rb
├── test_runner.rb
└── unit
│ ├── code_review_assignment_test.rb
│ ├── code_review_attachment_patch_test.rb
│ ├── code_review_auto_assign_settings_test.rb
│ ├── code_review_change_patch_test.rb
│ ├── code_review_changeset_patch_test.rb
│ ├── code_review_project_settings_test.rb
│ ├── code_review_test.rb
│ └── code_review_user_setting_test.rb
└── travis
├── env.sh
├── travis.sh
└── travis_install.sh
/.coveralls.yml:
--------------------------------------------------------------------------------
1 | service_name: travis-ci
--------------------------------------------------------------------------------
/.devcontainer/Dockerfile:
--------------------------------------------------------------------------------
1 | ARG RUBY_VERSION=3.2
2 | ARG REDMINE_VERSION=master
3 | FROM haru/redmine_devcontainer:${REDMINE_VERSION}-ruby${RUBY_VERSION}
4 | COPY .devcontainer/post-create.sh /post-create.sh
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.devcontainer/create-db-user.sql:
--------------------------------------------------------------------------------
1 | CREATE USER vscode CREATEDB;
2 | CREATE DATABASE vscode WITH OWNER vscode;
3 |
--------------------------------------------------------------------------------
/.devcontainer/devcontainer.json:
--------------------------------------------------------------------------------
1 | // For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
2 | // https://github.com/microsoft/vscode-dev-containers/tree/v0.202.5/containers/ruby-rails-postgres
3 | // Update the VARIANT arg in docker-compose.yml to pick a Ruby version
4 | {
5 | "name": "Ruby on Rails & Postgres",
6 | "dockerComposeFile": "docker-compose.yml",
7 | "service": "app",
8 |
9 | "mounts": [
10 | "source=${localWorkspaceFolder},target=/workspaces/${localWorkspaceFolderBasename},type=bind"
11 | ],
12 | "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
13 | // "workspaceFolder": "/workspaces/dev.code-workspace",
14 |
15 | // Set *default* container specific settings.json values on container create.
16 | "settings": {
17 | "sqltools.connections": [
18 | {
19 | "name": "Rails Development Database",
20 | "driver": "PostgreSQL",
21 | "previewLimit": 50,
22 | "server": "localhost",
23 | "port": 5432,
24 |
25 | // update this to match config/database.yml
26 | "database": "app_development",
27 | "username": "vscode"
28 | },
29 | {
30 | "name": "Rails Test Database",
31 | "driver": "PostgreSQL",
32 | "previewLimit": 50,
33 | "server": "localhost",
34 | "port": 5432,
35 |
36 | // update this to match config/database.yml
37 | "database": "app_test",
38 | "username": "vscode"
39 | }
40 | ]
41 | },
42 |
43 | // Add the IDs of extensions you want installed when the container is created.
44 | "extensions": [
45 | "rebornix.Ruby",
46 | "mtxr.sqltools",
47 | "mtxr.sqltools-driver-pg",
48 | "craigmaslowski.erb",
49 | "hridoy.rails-snippets",
50 | "misogi.ruby-rubocop",
51 | "jnbt.vscode-rufo",
52 | "donjayamanne.git-extension-pack",
53 | "ms-azuretools.vscode-docker",
54 | "KoichiSasada.vscode-rdbg",
55 | "Serhioromano.vscode-gitflow",
56 | "github.vscode-github-actions"
57 | ],
58 |
59 | // Use 'forwardPorts' to make a list of ports inside the container available locally.
60 | // "forwardPorts": [3000, 5432],
61 |
62 | // Use 'postCreateCommand' to run commands after the container is created.
63 | "postCreateCommand": "sh -x /post-create.sh",
64 |
65 | // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
66 | "remoteUser": "vscode",
67 | "features": {
68 | // "git": "latest"
69 | },
70 |
71 | "containerEnv": {
72 | "PLUGIN_NAME": "${localWorkspaceFolderBasename}"
73 | },
74 |
75 | "forwardPorts": [3000]
76 | }
--------------------------------------------------------------------------------
/.devcontainer/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: '3'
2 |
3 | services:
4 | app:
5 | build:
6 | context: ..
7 | dockerfile: .devcontainer/Dockerfile
8 | args:
9 | # Update 'VARIANT' to pick a version of Ruby: 3, 3.0, 2, 2.7, 2.6
10 | # Append -bullseye or -buster to pin to an OS version.
11 | # Use -bullseye variants on local arm64/Apple Silicon.
12 | RUBY_VERSION: "3.2"
13 | # Optional Node.js version to install
14 | NODE_VERSION: "lts/*"
15 | REDMINE_VERSION: "6.0-stable"
16 |
17 | # Overrides default command so things don't shut down after the process ends.
18 | command: sleep infinity
19 |
20 | # Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function.
21 | # network_mode: service:postgres
22 | # Uncomment the next line to use a non-root user for all processes.
23 | # user: vscode
24 |
25 | # Use "forwardPorts" in **devcontainer.json** to forward an app port locally.
26 | # (Adding the "ports" property to this file will not forward from a Codespace.)
27 |
28 | postgres:
29 | image: postgres:latest
30 | restart: unless-stopped
31 | volumes:
32 | - postgres-data:/var/lib/postgresql/data
33 | - ./create-db-user.sql:/docker-entrypoint-initdb.d/create-db-user.sql
34 | environment:
35 | POSTGRES_USER: postgres
36 | POSTGRES_DB: redmine
37 | POSTGRES_PASSWORD: postgres
38 | # Add "forwardPorts": ["5432"] to **devcontainer.json** to forward PostgreSQL locally.
39 | # (Adding the "ports" property to this file will not forward from a Codespace.)
40 |
41 | mysql:
42 | image: mysql:latest
43 | restart: unless-stopped
44 | volumes:
45 | - mysql-data:/var/lib/mysql
46 | # network_mode: service:postgres
47 | command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
48 | environment:
49 | MYSQL_ROOT_PASSWORD: root
50 | MYSQL_USER: redmine
51 | MYSQL_DB: redmine
52 | MYSQL_PASSWORD: remine
53 | volumes:
54 | postgres-data: null
55 | mysql-data: null
56 |
--------------------------------------------------------------------------------
/.devcontainer/post-create.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | cd /usr/local/redmine
3 |
4 | ln -s /workspaces/${PLUGIN_NAME} plugins/${PLUGIN_NAME}
5 | if [ -f plugins/${PLUGIN_NAME}/Gemfile_for_test ]
6 | then
7 | cp plugins/${PLUGIN_NAME}/Gemfile_for_test plugins/${PLUGIN_NAME}/Gemfile
8 | fi
9 | cp plugins/${PLUGIN_NAME}/test/fixtures/*.yml test/fixtures
10 | ln -s /workspaces/${PLUGIN_NAME}/.devcontainer/launch.json .vscode/launch.json
11 |
12 | bundle install
13 | bundle exec rake redmine:plugins:migrate
14 | bundle exec rake redmine:plugins:migrate RAILS_ENV=test
15 |
16 | initdb() {
17 | bundle exec rake db:create
18 | bundle exec rake db:migrate
19 | bundle exec rake redmine:plugins:migrate
20 |
21 | bundle exec rake db:drop RAILS_ENV=test
22 | bundle exec rake db:create RAILS_ENV=test
23 | bundle exec rake db:migrate RAILS_ENV=test
24 | bundle exec rake redmine:plugins:migrate RAILS_ENV=test
25 | }
26 |
27 | initdb
28 |
29 | export DB=mysql2
30 | export DB_NAME=redmine
31 | export DB_USERNAME=root
32 | export DB_PASSWORD=root
33 | export DB_HOST=mysql
34 | export DB_PORT=3306
35 |
36 | initdb
37 |
38 | export DB=postgresql
39 | export DB_NAME=redmine
40 | export DB_USERNAME=postgres
41 | export DB_PASSWORD=postgres
42 | export DB_HOST=postgres
43 | export DB_PORT=5432
44 |
45 | initdb
--------------------------------------------------------------------------------
/.flow:
--------------------------------------------------------------------------------
1 | [branchname]
2 | hotfix=hotfix/
3 | develop=develop
4 | master=default
5 | release=release/
6 | support=support/
7 | feature=feature/
8 |
--------------------------------------------------------------------------------
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: build
2 | on: [push, pull_request]
3 | env:
4 | SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
5 | jobs:
6 | build:
7 | runs-on: ubuntu-latest
8 | # Supported Matrix:
9 | # Redmine 5.0-stable: Ruby 2.7, 3.0, 3.1
10 | # Redmine 5.1-stable: Ruby 2.7, 3.0, 3.1, 3.2
11 | # Redmine 6.0-stable: Ruby 3.1, 3.2, 3.3
12 | # Redmine master: Ruby 3.1, 3.2, 3.3
13 | strategy:
14 | matrix:
15 | db: [sqlite3, mysql, postgres]
16 | ruby_version: ["3.0", "3.1", "3.2", "3.3"]
17 | redmine_version: [5.0-stable, 5.1-stable, 6.0-stable, master]
18 | exclude:
19 | - ruby_version: "3.2"
20 | redmine_version: 5.0-stable
21 | - ruby_version: "3.3"
22 | redmine_version: 5.0-stable
23 | - ruby_version: "3.3"
24 | redmine_version: 5.1-stable
25 | - ruby_version: "3.0"
26 | redmine_version: 6.0-stable
27 | - ruby_version: "3.0"
28 | redmine_version: master
29 | services:
30 | mysql:
31 | image: mysql:5.7
32 | options: --health-cmd "mysqladmin ping -h localhost" --health-interval 20s --health-timeout 10s --health-retries 10
33 | env:
34 | MYSQL_ROOT_PASSWORD: dbpassword
35 | postgres:
36 | image: postgres
37 | env:
38 | POSTGRES_USER: root
39 | POSTGRES_PASSWORD: dbpassword
40 | options: >-
41 | --health-cmd pg_isready
42 | --health-interval 10s
43 | --health-timeout 5s
44 | --health-retries 5
45 | container:
46 | image: ruby:${{ matrix.ruby_version }}
47 | env:
48 | DB: ${{ matrix.db }}
49 | DB_USERNAME: root
50 | DB_PASSWORD: dbpassword
51 | DB_HOST: ${{ matrix.db }}
52 | REDMINE_VER: ${{ matrix.redmine_version }}
53 | steps:
54 | - uses: actions/checkout@v4
55 | - name: Install
56 | run: bash -x ./build-scripts/install.sh
57 | - name: Build
58 | run: bash -x ./build-scripts/build.sh
59 | - name: Clean
60 | run: bash -x ./build-scripts/cleanup.sh
61 | - uses: codecov/codecov-action@v5
62 | with:
63 | token: ${{ secrets.CODECOV_TOKEN }}
64 | fail_ci_if_error: true
65 | - name: Slack Notification on Failure
66 | uses: rtCamp/action-slack-notify@v2.0.2
67 | if: failure()
68 | env:
69 | SLACK_CHANNEL: plugin-code_review
70 | SLACK_TITLE: Test Failure
71 | SLACK_COLOR: danger
72 |
--------------------------------------------------------------------------------
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | name: build_archive
2 | on:
3 | push:
4 | branches-ignore:
5 | - '**'
6 | tags:
7 | - '**'
8 | env:
9 | SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
10 | jobs:
11 | archive:
12 | runs-on: ubuntu-latest
13 | steps:
14 | - name: Set version
15 | id: version
16 | run: |
17 | REPOSITORY=$(echo ${{ github.repository }} | sed -e "s#.*/##")
18 | VERSION=$(echo ${{ github.ref }} | sed -e "s#refs/tags/##g")
19 | echo ::set-output name=version::$VERSION
20 | echo ::set-output name=filename::$REPOSITORY-$VERSION
21 | echo ::set-output name=plugin::$REPOSITORY
22 | - uses: actions/checkout@v4
23 | - name: Archive
24 | run: |
25 | cd ..; zip -r ${{ steps.version.outputs.filename }}.zip ${{ steps.version.outputs.plugin }}/ -x "*.git*"; mv ${{ steps.version.outputs.filename }}.zip ${{ steps.version.outputs.plugin }}/
26 | - name: Create Release
27 | id: create_release
28 | uses: actions/create-release@v1
29 | env:
30 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
31 | with:
32 | tag_name: ${{ steps.version.outputs.version }}
33 | release_name: ${{ steps.version.outputs.version }}
34 | body: ''
35 | draft: false
36 | prerelease: true
37 | - name: Upload Release Asset
38 | id: upload-release-asset
39 | uses: actions/upload-release-asset@v1
40 | env:
41 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
42 | with:
43 | upload_url: ${{ steps.create_release.outputs.upload_url }}
44 | asset_path: ${{ steps.version.outputs.filename }}.zip
45 | asset_name: ${{ steps.version.outputs.filename }}.zip
46 | asset_content_type: application/zip
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | coverage
2 | Gemfile
3 | Gemfile.lock
4 | test/tmp/*
--------------------------------------------------------------------------------
/.hgeol:
--------------------------------------------------------------------------------
1 | [patterns]
2 | **.* = NATIVE
3 |
--------------------------------------------------------------------------------
/.hgflow:
--------------------------------------------------------------------------------
1 | [branchname]
2 | master = default
3 | develop = develop
4 | feature = feature/
5 | release = release/
6 | hotfix = hotfix/
7 | support = support/
8 |
--------------------------------------------------------------------------------
/.hgignore:
--------------------------------------------------------------------------------
1 | ^coverage/
2 | ^rails/
3 | ^VERSION$
4 | ^code_review.gemspec
5 | ^pkg/
6 | ^Gemfile.lock$
7 | ^Gemfile$
8 | syntax: glob
9 | test/coverage
10 | .flow
--------------------------------------------------------------------------------
/.redmine.code-workspace:
--------------------------------------------------------------------------------
1 | {
2 | "folders": [
3 | {
4 | "path": "."
5 | },
6 | {
7 | "path": "../../usr/local/redmine"
8 | }
9 | ],
10 | "settings": {}
11 | }
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: ruby
2 | rvm:
3 | - 2.4
4 | - 2.5
5 | - 2.6
6 | - 2.7
7 | - 3.0
8 | env:
9 | - REDMINE_VER=4.1-stable
10 | - REDMINE_VER=4.2-stable
11 | - REDMINE_VER=master
12 | matrix:
13 | exclude:
14 | - rvm: 2.4
15 | env: REDMINE_VER=master
16 | - rvm: 2.7
17 | env: REDMINE_VER=4.1-stable
18 | - rvm: 3.0
19 | env: REDMINE_VER=4.1-stable
20 | - rvm: 3.0
21 | env: REDMINE_VER=4.2-stable
22 | install:
23 | - bash -x ./travis/travis_install.sh
24 | script:
25 | - bash -x ./travis/travis.sh
26 | notifications:
27 | slack:
28 | secure: XhtN5XeJKyYhGYRFGfxGpGaVcUnUsZoxX3ZL3RgHikcBhD0hY6Ogn09BSiygP381lbIlV7+2nlRvNoSUKYmx2uX5w8AUYCE4yo9yJGlY+70rD2kjWsuG9OK4L/QPCXIUf8NFX24PdY9CRITK5CfR1/hEZCx9ygT6GLAqpjqNDtfMpSRx7S3olVjX58ucB9azDcvaT75vPY1nEnnn/IuOwGF27KBk9lLZtMaG1ohI6+9jW9xCxz8cLfUUPIu+PH4/AvJ8GMNJtlc3Yvgbg57lCtulvHyrXqXHMvMDL2aTdIj2XsjVSvXV4jRrNuhJga6gDAtl/3Lzm+UZZAeHpR4qHDZN06za25HypX/GbX5pZtpr30t+HHs3cd+ecHb4uP/Tnxko0KzNywg6Ayn/8TC548eu0JRITzPS5C9/NKzA+XnAjVgKMzqy0zU1VVk83hBXshgpfqplfZzdIrn75kcV/3qsiaD4qEFM2MqNYD15Epq8a7W/9IKdhd95LsQjp1Fb0g7XiQcM3ahIgMLIjP5tZfQ8b7tVlmDx1GCP4uRFOBeDeoz9i++UaT/FdPHOFGirWfDZMJoVq3MXixaTudEPFomO2HktErAMIEjQQyVe4FylglGnE52RCqEJ0qiD/kh1HV1VnVqyTJ9o3DXgLTIMdFiw+jHtTuorYPG0Qn1Dqbg=
29 |
--------------------------------------------------------------------------------
/Gemfile_for_test:
--------------------------------------------------------------------------------
1 | group :test do
2 | gem "simplecov-cobertura"
3 | gem "factory_bot_rails"
4 | gem "shoulda"
5 | gem "rails-controller-testing"
6 | end
7 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://github.com/haru/redmine_code_review/actions/workflows/build.yml)
2 | [](https://codeclimate.com/github/haru/redmine_code_review/maintainability)
3 | [](https://codecov.io/gh/haru/redmine_code_review)
4 |
5 | # Redmine Code Review Plugin
6 |
7 | This is a plugin for Redmine which lets you annotate source code within the repository browser.
8 |
9 | http://www.r-labs.org/wiki/r-labs/Code_Review
10 |
11 | ## Plugin installation
12 |
13 | 1. Copy the plugin directory into the plugins directory
14 |
15 | 2. Migrate plugin:
16 | rake redmine:plugins:migrate RAILS_ENV=production
17 |
18 | 3. Start Redmine
19 |
20 | 4. Add code review module into your project.
21 |
22 | 5. Go to code review setting tab in the project setting page and select tracker.
23 |
24 | 6. Go to "Roles and permissions" and add "Code Review" permissions to the roles you want to see/edit/manage code reviews.
25 |
26 | ## Language contributors
27 |
28 | * de.yml - Michael Diederich, Sebastian Bernhard
29 | * fr.yml - Thomas M, fcrespel
30 | * hu.yml - Péter Major, József Kószó
31 | * ko.yml - Ki-yong Kim, Ki Won Kim
32 | * nl.yml - Stefan Verstege
33 | * pt-br.yml - Alessandro Hecht
34 | * zh.yml - Marshall Wu
35 | * zh-tw.yml - Andrew Liu
36 | * ru.yml - Mykhaylo Sorochan
37 | * sk.yml - Milan Freml
38 | * es.yml - Ignacio Carrera
39 | * pl.yml - Rafal Grzymkowski
40 | * sv.yml - André Jonsson
41 | * bg.yml - Ivan Cenov, jwalkerbg
42 |
--------------------------------------------------------------------------------
/app/helpers/code_review_helper.rb:
--------------------------------------------------------------------------------
1 | # Code Review plugin for Redmine
2 | # Copyright (C) 2009-2023 Haruyuki Iida
3 | #
4 | # This program is free software; you can redistribute it and/or
5 | # modify it under the terms of the GNU General Public License
6 | # as published by the Free Software Foundation; either version 2
7 | # of the License, or (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program; if not, write to the Free Software
16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 | module CodeReviewHelper
18 |
19 | def show_assignments(assignments, project, options = {})
20 | html = "#{l(:review_assignments)}:"
21 | assignments.each do |assignment|
22 | issue = assignment.issue
23 | html << link_to("##{issue.id} ", {:controller => 'issues', :action => 'show', :id => issue.id},
24 | :class => issue.css_classes, :title => "#{issue}(#{issue.status})")
25 | end if assignments
26 |
27 | link = link_to(l(:button_add), {:controller => 'code_review',
28 | :action => 'assign', :id => project, :action_type => options[:action_type],
29 | :rev => options[:rev], :rev_to => options[:rev_to], :path => options[:path],
30 | :change_id => options[:change_id], :attachment_id => options[:attachment_id],
31 | :changeset_id => options[:changeset_id]}, :class => 'icon icon-add')
32 |
33 | html << link if link
34 |
35 | html
36 | end
37 | end
38 |
--------------------------------------------------------------------------------
/app/models/code_review_assignment.rb:
--------------------------------------------------------------------------------
1 | # Code Review plugin for Redmine
2 | # Copyright (C) 2010-2023 Haruyuki Iida
3 | #
4 | # This program is free software; you can redistribute it and/or
5 | # modify it under the terms of the GNU General Public License
6 | # as published by the Free Software Foundation; either version 2
7 | # of the License, or (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program; if not, write to the Free Software
16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 |
18 | class CodeReviewAssignment < ActiveRecord::Base
19 | belongs_to :issue
20 | belongs_to :change
21 | belongs_to :changeset
22 | belongs_to :attachment
23 | validates_presence_of :issue_id
24 |
25 | def is_closed?
26 | issue.closed?
27 | end
28 |
29 | def path
30 | file_path
31 | end
32 |
33 | def revision
34 | return rev if rev
35 | changeset.revision if changeset
36 | end
37 |
38 | def repository
39 | @repository ||= change.changeset.repository if change
40 | @repository ||= changeset.repository if changeset
41 | @repository
42 | end
43 |
44 | def repository_identifier
45 | return nil unless repository
46 | @repository_identifier ||= repository.identifier_param if repository.respond_to?("identifier_param")
47 | end
48 |
49 | def self.create_with_changeset(changeset)
50 | project = changeset.project
51 | setting = CodeReviewProjectSetting.find_or_create(project)
52 | auto_assign = setting.auto_assign_settings
53 | assignment = CodeReviewAssignment.new
54 | issue = Issue.new
55 | issue.subject = auto_assign.subject
56 | issue.subject = I18n.t(:code_review_requrest) if issue.subject.blank?
57 | issue.subject = issue.subject.sub("$REV", changeset.revision)
58 | issue.subject = issue.subject.sub("$COMMENTS", changeset.comments.split(//u)[0..60].join) unless changeset.comments.blank?
59 | issue.tracker_id = setting.assignment_tracker_id
60 | issue.project = project
61 | issue.author = User.find(auto_assign.author_id)
62 | issue.assigned_to_id = auto_assign.select_assign_to(project, changeset.user)
63 | issue.description = auto_assign.description
64 | issue.description = issue.description.sub("$REV", changeset.revision) unless issue.description.blank?
65 | issue.description = issue.description.sub("$COMMENTS", changeset.comments) unless changeset.comments.blank?
66 |
67 | issue.save!
68 |
69 | assignment.issue_id = issue.id
70 | assignment.changeset_id = changeset.id
71 | assignment.save!
72 | assignment
73 | end
74 |
75 | def diff_all
76 | path.blank?
77 | end
78 | end
79 |
--------------------------------------------------------------------------------
/app/models/code_review_project_setting.rb:
--------------------------------------------------------------------------------
1 | # Code Review plugin for Redmine
2 | # Copyright (C) 2009-2023 Haruyuki Iida
3 | #
4 | # This program is free software; you can redistribute it and/or
5 | # modify it under the terms of the GNU General Public License
6 | # as published by the Free Software Foundation; either version 2
7 | # of the License, or (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program; if not, write to the Free Software
16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 | class CodeReviewProjectSetting < ActiveRecord::Base
18 | include Redmine::SafeAttributes
19 | include CodeReviewAutoAssignSettings
20 |
21 | belongs_to :project
22 | belongs_to :tracker
23 | belongs_to :assignment_tracker, :class_name => 'Tracker'
24 |
25 | validates_presence_of :project_id
26 | validates_presence_of :tracker_id
27 | validates_presence_of :assignment_tracker_id
28 |
29 | before_save :set_assignment_settings
30 |
31 | #attr_accessible :tracker_id, :assignment_tracker_id, :hide_code_review_tab, :auto_relation, :tracker_in_review_dialog, :auto_assign
32 |
33 | AUTORELATION_TYPE_NONE = 0
34 | AUTORELATION_TYPE_RELATES = 1
35 | AUTORELATION_TYPE_BLOCKS = 2
36 |
37 | def self.find_or_create(project)
38 | setting = CodeReviewProjectSetting.find_by_project_id(project.id)
39 | unless setting
40 | setting = CodeReviewProjectSetting.new
41 | setting.project_id = project.id
42 | return setting if project.trackers.length == 0
43 | setting.tracker = project.trackers[0]
44 | setting.assignment_tracker = project.trackers[0]
45 | setting.save!
46 | end
47 | setting
48 | end
49 |
50 | def auto_assign_settings
51 | @auto_assign_settings ||= AutoAssignSettings.load(auto_assign)
52 | end
53 |
54 | def auto_assign_settings=(settings)
55 | @auto_assign_settings = settings
56 | end
57 |
58 | def issue_relation_type
59 | return IssueRelation::TYPE_RELATES if auto_relation == CodeReviewProjectSetting::AUTORELATION_TYPE_RELATES
60 | return IssueRelation::TYPE_BLOCKS if auto_relation == CodeReviewProjectSetting::AUTORELATION_TYPE_BLOCKS
61 | return nil
62 | end
63 |
64 | def auto_relation?
65 | issue_relation_type != nil
66 | end
67 |
68 | private
69 |
70 | def set_assignment_settings
71 | if auto_assign_settings
72 | self.auto_assign = auto_assign_settings.to_s
73 | else
74 | self.auto_assign = nil
75 | end
76 | end
77 | end
78 |
--------------------------------------------------------------------------------
/app/models/code_review_user_setting.rb:
--------------------------------------------------------------------------------
1 | # Code Review plugin for Redmine
2 | # Copyright (C) 2023 Haruyuki Iida
3 | #
4 | # This program is free software; you can redistribute it and/or
5 | # modify it under the terms of the GNU General Public License
6 | # as published by the Free Software Foundation; either version 2
7 | # of the License, or (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program; if not, write to the Free Software
16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 | class CodeReviewUserSetting < ActiveRecord::Base
18 | belongs_to :user
19 |
20 | validates_presence_of :user_id
21 | validates_presence_of :mail_notification
22 | validates_uniqueness_of :user_id
23 |
24 | NOTIFCIATION_NONE = 0
25 | NOTIFICATION_INVOLVED_IN = 1
26 | NOTIFICATION_ALL = 2
27 |
28 | def CodeReviewUserSetting.find_or_create(uid)
29 | setting = CodeReviewUserSetting.find_by(user_id: uid)
30 | return setting if setting
31 | setting = CodeReviewUserSetting.new
32 | setting.user_id = uid
33 | setting.mail_notification = NOTIFICATION_INVOLVED_IN
34 | setting.save
35 | return setting
36 | end
37 |
38 | def mail_notification_none?
39 | mail_notification == NOTIFCIATION_NONE
40 | end
41 |
42 | def mail_notification_involved_in?
43 | mail_notification == NOTIFICATION_INVOLVED_IN
44 | end
45 |
46 | def mail_notification_all?
47 | mail_notification == NOTIFICATION_ALL
48 | end
49 | end
50 |
--------------------------------------------------------------------------------
/app/views/code_review/_add_success.html.erb:
--------------------------------------------------------------------------------
1 | <%
2 | # Code Review plugin for Redmine
3 | # Copyright (C) 2009 Haruyuki Iida
4 | #
5 | # This program is free software; you can redistribute it and/or
6 | # modify it under the terms of the GNU General Public License
7 | # as published by the Free Software Foundation; either version 2
8 | # of the License, or (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program; if not, write to the Free Software
17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 | -%>
19 | <%= javascript_tag do %>
20 |
21 | var line = <%= @review.line %>;
22 | var review_id = <%= @review.id %>;
23 | var file_count = <%= @review.file_count %>;
24 | hideForm();
25 | setShowReviewButton(line, review_id, false, file_count);
26 |
27 | <% end %>
--------------------------------------------------------------------------------
/app/views/code_review/_change_attachement_view.html.erb:
--------------------------------------------------------------------------------
1 | <%
2 | # Code Review plugin for Redmine
3 | # Copyright (C) 2010-2012 Haruyuki Iida
4 | #
5 | # This program is free software; you can redistribute it and/or
6 | # modify it under the terms of the GNU General Public License
7 | # as published by the Free Software Foundation; either version 2
8 | # of the License, or (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program; if not, write to the Free Software
17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 | -%>
19 | <%
20 | parameters = request.parameters
21 | id = parameters[:id].to_i
22 | attachment = Attachment.find(id)
23 | return '' unless attachment.is_text? or attachment.is_diff?
24 | review_id = parameters[:review_id] unless parameters[:review_id].blank?
25 | url = url_for :controller => 'code_review', :action => 'update_attachment_view', :id => project
26 | -%>
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/app/views/code_review/_change_entry_norevision_view.html.erb:
--------------------------------------------------------------------------------
1 | <%
2 | # Code Review plugin for Redmine
3 | # Copyright (C) 2010-2011 Haruyuki Iida
4 | #
5 | # This program is free software; you can redistribute it and/or
6 | # modify it under the terms of the GNU General Public License
7 | # as published by the Free Software Foundation; either version 2
8 | # of the License, or (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program; if not, write to the Free Software
17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 | -%>
19 | <%
20 | parameters = request.parameters
21 | path = parameters['path']
22 | rev = parameters['rev']
23 | repository_id = @repository.identifier_param if @repository.respond_to?("identifier_param")
24 | unless path.blank? or path.empty?
25 | changesets = @repository.latest_changesets(path, rev, Setting.repository_log_display_limit.to_i)
26 | change = changesets[0]
27 |
28 | if change
29 | link = link_to(l(:label_add_review), {:controller => 'code_review',
30 | :action => 'forward_to_revision', :id => project, :path => path, :rev => rev, :repository_id => repository_id},
31 | :class => 'icon icon-edit')
32 | %>
33 |
34 |
37 | <% end %>
38 |
39 | <% end %>
--------------------------------------------------------------------------------
/app/views/code_review/_change_repository_view.html.erb:
--------------------------------------------------------------------------------
1 | <%
2 | # Code Review plugin for Redmine
3 | # Copyright (C) 2010-2012 Haruyuki Iida
4 | #
5 | # This program is free software; you can redistribute it and/or
6 | # modify it under the terms of the GNU General Public License
7 | # as published by the Free Software Foundation; either version 2
8 | # of the License, or (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program; if not, write to the Free Software
17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 | -%>
19 | <%
20 |
21 | if @changesets
22 | changeset_ids = ''
23 | @changesets.each { |changeset|
24 | changeset_ids << changeset.revision
25 | changeset_ids << ','
26 | }
27 |
28 | repository_id = @repository.identifier_param if @repository.respond_to?("identifier_param")
29 | url = url_for :controller => 'code_review', :action => 'update_revisions_view', :id => project, :repository_id => repository_id
30 | %>
31 |
32 |
33 |
34 |
35 |
40 |
41 | <% end %>
--------------------------------------------------------------------------------
/app/views/code_review/_change_revision_view.html.erb:
--------------------------------------------------------------------------------
1 | <%
2 | # Code Review plugin for Redmine
3 | # Copyright (C) 2010-2011 Haruyuki Iida
4 | #
5 | # This program is free software; you can redistribute it and/or
6 | # modify it under the terms of the GNU General Public License
7 | # as published by the Free Software Foundation; either version 2
8 | # of the License, or (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program; if not, write to the Free Software
17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 | -%>
19 | <%
20 | repository_id = @repository.identifier_param if @repository.respond_to?("identifier_param")
21 | if @changeset
22 | urlprefix = url_for(:controller => 'repositories', :action => 'revisions', :id => project, :repository_id => repository_id) +
23 | '/' + @changeset.identifier + '/entry'
24 | %>
25 | <%- if User.current.allowed_to?(:assign_code_review, @project) -%>
26 |
27 | <%=h l(:review_assignments)%>
28 | <% @changeset.code_review_assignments.each do |assignment|
29 | issue = assignment.issue %>
30 | <%= link_to("##{issue.id} ", {:controller => 'issues', :action => 'show', :id => issue.id},
31 | :class => issue.css_classes, :title => "#{issue}(#{issue.status})") %>
32 | <% end if @changeset.code_review_assignments %>
33 |
34 | <%= link_to(l(:button_add), {:controller => 'code_review',
35 | :action => 'assign', :id=>project,
36 | :rev => @changeset.revision,
37 | :changeset_id => @changeset.id, :repository_id => repository_id}, :class => 'icon icon-add') %>
38 |
39 | <%- end -%>
40 |
41 |
75 | <% end %>
76 |
--------------------------------------------------------------------------------
/app/views/code_review/_history.html.erb:
--------------------------------------------------------------------------------
1 | <%
2 | # Code Review plugin for Redmine
3 | # Copyright (C) 2009 Haruyuki Iida
4 | #
5 | # This program is free software; you can redistribute it and/or
6 | # modify it under the terms of the GNU General Public License
7 | # as published by the Free Software Foundation; either version 2
8 | # of the License, or (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program; if not, write to the Free Software
17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 | -%>
19 | <% for journal in journals %>
20 |
21 |
22 | <% if not journal.initial? %>
23 |
24 |
25 | <%
26 | header = <<-HTML
27 |
28 | #{authoring journal.created_at, journal.user, :label => :label_updated_time_by}
29 | #{content_tag('a', '', :name => "note-#{journal.anchor}")}
30 |
31 |
32 |
33 | #{avatar(journal.user, :size => "40")}
34 |
35 | HTML
36 |
37 | if not journal.notes.blank?
38 | if User.current.logged?
39 | editable = User.current.allowed_to?(:edit_issue_notes, journal.project)
40 | if journal.user == User.current
41 | editable ||= User.current.allowed_to?(:edit_own_issue_notes, journal.project)
42 | end
43 | end
44 |
45 | links = [].tap do |l|
46 | if editable
47 | l << link_to_in_place_notes_editor(image_tag('edit.png'), "journal-#{journal.id}-notes",
48 | { :controller => 'journals', :action => 'edit', :id => journal },
49 | :title => l(:button_edit))
50 | end
51 | end
52 |
53 | css_classes = "wiki"
54 | css_classes << " editable" if editable
55 |
56 | content = ''
57 | content << content_tag('div', links.join(' '), :class => 'contextual') unless links.empty?
58 | content << textilizable(journal, :notes)
59 |
60 | header << content_tag("div", content, :id => "journal-#{journal.id}-notes", :class => css_classes)
61 | end
62 | %>
63 |
64 |
65 | <%
66 | details = ''
67 | if journal.details.any?
68 | content = journal.details.collect do |detail|
69 | if d = journal.render_detail(detail)
70 | content_tag("li", d)
71 | end
72 | end.compact.join(' ')
73 |
74 | details = content_tag("ul", content, :class => "details journal-attributes") unless content.empty?
75 | end
76 | %>
77 |
78 |
79 | <%= content_tag "div", "#{header}#{details}",
80 | { :id => "change-#{journal.id}", :class => journal.css_classes } %>
81 |
82 | <% end %>
83 |
84 | <% end %>
85 |
--------------------------------------------------------------------------------
/app/views/code_review/_html_header.html.erb:
--------------------------------------------------------------------------------
1 | <%
2 | # Code Review plugin for Redmine
3 | # Copyright (C) 2010-2012 Haruyuki Iida
4 | #
5 | # This program is free software; you can redistribute it and/or
6 | # modify it under the terms of the GNU General Public License
7 | # as published by the Free Software Foundation; either version 2
8 | # of the License, or (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program; if not, write to the Free Software
17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 | -%>
19 | <% if @project and @project.module_enabled?('code_review') %>
20 | <%
21 | baseurl = Redmine::Utils.relative_url_root
22 |
23 | -%>
24 | <%= javascript_include_tag("code_review.js", plugin: "redmine_code_review") %>
25 | <%= javascript_include_tag('jstoolbar/jstoolbar') %>
26 | <%= javascript_include_tag("jstoolbar/lang/jstoolbar-#{@project.current_language.to_s.downcase}.js") %>
27 |
28 | <%= include_calendar_headers_tags %>
29 | <%= stylesheet_link_tag("code_review.css", plugin: "redmine_code_review") %>
30 | <%= stylesheet_link_tag("jstoolbar.css") %>
31 |
32 | <% end %>
--------------------------------------------------------------------------------
/app/views/code_review/_issues_show_details_bottom.html.erb:
--------------------------------------------------------------------------------
1 | <%#
2 | # To change this template, choose Tools | Templates
3 | # and open the template in the editor.
4 | %>
5 |
6 | <%
7 | unless User.current.allowed_to?({:controller => 'code_review', :action => 'show'}, project)
8 | return
9 | end
10 |
11 | %>
12 |
13 | <% if issue.code_review %>
14 | <%
15 | review = issue.code_review
16 | %>
17 |
18 | <%= l(:code_review) %>: |
19 |
20 | <%
21 | if review.attachment
22 | label = URI.decode_www_form_component("#{review.attachment.filename}#{'@' + review.revision if review.revision}:line #{review.line}")
23 | else
24 | label = URI.decode_www_form_component("#{review.repository_identifier + ':' if review.repository_identifier}#{review.path}#{'@' + review.revision if review.revision}:line #{review.line}")
25 | end
26 | -%>
27 | <%= link_to(label,
28 | :controller => 'code_review', :action => 'show', :id => project, :review_id => review.id, :repository_id => review.repository_identifier) %>
29 | |
30 |
31 | <% end %>
32 | <% if issue.code_review_assignment %>
33 | <%
34 | assignment = issue.code_review_assignment
35 | repository_id = assignment.repository_identifier
36 | %>
37 |
38 | <%= l(:review_assigned_for) %>: |
39 |
40 | <% if assignment.path %>
41 | <%
42 | label = URI.decode_www_form_component("#{repository_id + ':' if repository_id}#{assignment.path}#{'@' + assignment.revision if assignment.revision}")
43 | -%>
44 | <%= link_to(label,
45 | :controller => 'code_review', :action => 'show', :id => project, :assignment_id => assignment.id, :repository_id => repository_id) %>
46 | <% elsif assignment.revision %>
47 | <%
48 | repo = project unless repository_id
49 | repo ||= assignment.repository
50 | %>
51 | <%= l(:label_revision) + " "%>
52 | <%= link_to_revision(assignment.revision, repo) %>
53 | <% elsif assignment.attachment %>
54 | <%= link_to(assignment.attachment.filename, :controller => 'attachments', :action => 'show', :id => assignment.attachment.id) %>
55 | <% end %>
56 | |
57 |
58 |
59 | <% end %>
60 |
61 |
--------------------------------------------------------------------------------
/app/views/code_review/_reply.html.erb:
--------------------------------------------------------------------------------
1 | <%
2 | # Code Review plugin for Redmine
3 | # Copyright (C) 2009 Haruyuki Iida
4 | #
5 | # This program is free software; you can redistribute it and/or
6 | # modify it under the terms of the GNU General Public License
7 | # as published by the Free Software Foundation; either version 2
8 | # of the License, or (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program; if not, write to the Free Software
17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 | -%>
19 | <% if reply.notes.present? %>
20 |
21 |
22 | <%= authoring reply.created_on, reply.user %>.
23 |
24 | <%= avatar(reply.user, :size => "32") %>
25 |
26 |
27 | <%= textilizable reply, :notes %>
28 |
29 |
30 |
31 |
32 | <% end %>
33 |
--------------------------------------------------------------------------------
/app/views/code_review/_show_error.html.erb:
--------------------------------------------------------------------------------
1 |
2 |
Error
3 |
4 |
change not found.
5 |
6 | @path = '<%=h @path %>'
7 | @changeset = <%=h @changeset %>
8 | @rev = <%=h @rev %>
9 | <% if @changeset %>
10 |
11 | <% for change in @changeset.changes do%>
12 | -
13 | '<%=h change.path%>'
14 |
15 | <% end %>
16 |
17 | <% end %>
18 |
19 |
20 |
--------------------------------------------------------------------------------
/app/views/code_review/_update_revisions.html.erb:
--------------------------------------------------------------------------------
1 | <%#
2 | # Code Review plugin for Redmine
3 | # Copyright (C) 2009-2011 Haruyuki Iida
4 | #
5 | # This program is free software; you can redistribute it and/or
6 | # modify it under the terms of the GNU General Public License
7 | # as published by the Free Software Foundation; either version 2
8 | # of the License, or (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program; if not, write to the Free Software
17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 | %>
19 |
20 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/assets/images/1downarrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/images/1downarrow.png
--------------------------------------------------------------------------------
/assets/images/1uparrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/images/1uparrow.png
--------------------------------------------------------------------------------
/assets/images/2downarrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/images/2downarrow.png
--------------------------------------------------------------------------------
/assets/images/2uparrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/images/2uparrow.png
--------------------------------------------------------------------------------
/assets/images/closed_review.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/images/closed_review.png
--------------------------------------------------------------------------------
/assets/images/review.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/images/review.png
--------------------------------------------------------------------------------
/assets/stylesheets/activity.css:
--------------------------------------------------------------------------------
1 |
2 | dt.code_review {
3 | background-image: url(../images/review.png);
4 | }
--------------------------------------------------------------------------------
/assets/stylesheets/code_review.css:
--------------------------------------------------------------------------------
1 | /*
2 | # Code Review plugin for Redmine
3 | # Copyright (C) 2009 Haruyuki Iida
4 | #
5 | # This program is free software; you can redistribute it and/or
6 | # modify it under the terms of the GNU General Public License
7 | # as published by the Free Software Foundation; either version 2
8 | # of the License, or (at your option) any later version.
9 | #
10 | # This program is distributed in the hope that it will be useful,
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | # GNU General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU General Public License
16 | # along with this program; if not, write to the Free Software
17 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 | */
19 | #review-form-frame {
20 | height: 100%;
21 | }
22 |
23 | .autoscroll table.filecontent th.line-num {
24 | white-space: nowrap;
25 | vertical-align: bottom;
26 | padding-top: 0;
27 | padding-bottom: 0;
28 | text-align:left;
29 | }
30 |
31 | table.filecontent th.line-num img{
32 | padding: 0;
33 | margin: 0;
34 | cursor: pointer;
35 | }
36 |
37 |
38 | .code-review-form-title {
39 | background-color: #002059;
40 | color: white;
41 | padding-left: 2px;
42 | padding-right: 2px;
43 | cursor: default;
44 | }
45 |
46 |
47 | .code_review_viewer {
48 |
49 | min-width: 300px;
50 | /*
51 | max-width: 60%;
52 | */
53 | /* max-height: 400px; */
54 | }
55 |
56 | .code_review_viewer .issue{
57 |
58 | }
59 |
60 | .code_review_body {
61 | background-color: white;
62 |
63 | padding:2px;
64 |
65 | }
66 |
67 | #code_review_list table.list td {
68 | text-align: center;
69 | }
70 |
71 | #code_review_list table.list td.path {
72 | text-align: left;
73 | }
74 |
75 | #code_review_list table.list td.subject {
76 | text-align: left;
77 | }
78 |
79 | .icon-review {
80 | background-image: url(../images/review.png);
81 | background-repeat: no-repeat;
82 | }
83 |
84 | .icon-closed-review {
85 | background-image: url(../images/closed_review.png);
86 | background-repeat: no-repeat;
87 | }
88 |
89 | .icon-settings {
90 | background-image: url(../../../images/changeset.png);
91 | background-repeat: no-repeat;
92 | }
93 |
94 |
95 | li.code_review_summary {
96 | list-style-type: none;
97 | }
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/MIT-LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2006 Sébastien Gruhier (http://xilinus.com, http://itseb.com)
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
14 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
16 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
17 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
18 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
19 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alert.css:
--------------------------------------------------------------------------------
1 | .overlay_alert {
2 | background-color: #85BBEF;
3 | filter:alpha(opacity=60);
4 | -moz-opacity: 0.6;
5 | opacity: 0.6;
6 | }
7 |
8 | .alert_nw {
9 | width: 5px;
10 | height: 5px;
11 | background: transparent url(alert/top_left.gif) no-repeat bottom left;
12 | }
13 |
14 | .alert_n {
15 | height: 5px;
16 | background: transparent url(alert/top.gif) repeat-x bottom left;
17 | }
18 |
19 | .alert_ne {
20 | width: 5px;
21 | height: 5px;
22 | background: transparent url(alert/top_right.gif) no-repeat bottom left
23 | }
24 |
25 | .alert_e {
26 | width: 5px;
27 | background: transparent url(alert/right.gif) repeat-y 0 0;
28 | }
29 |
30 | .alert_w {
31 | width: 5px;
32 | background: transparent url(alert/left.gif) repeat-y 0 0;
33 | }
34 |
35 | .alert_sw {
36 | width: 5px;
37 | height: 5px;
38 | background: transparent url(alert/bottom_left.gif) no-repeat 0 0;
39 | }
40 |
41 | .alert_s {
42 | height: 5px;
43 | background: transparent url(alert/bottom.gif) repeat-x 0 0;
44 | }
45 |
46 | .alert_se, .alert_sizer {
47 | width: 5px;
48 | height: 5px;
49 | background: transparent url(alert/bottom_right.gif) no-repeat 0 0;
50 | }
51 |
52 | .alert_close {
53 | width:0px;
54 | height:0px;
55 | display:none;
56 | }
57 |
58 | .alert_minimize {
59 | width:0px;
60 | height:0px;
61 | display:none;
62 | }
63 |
64 | .alert_maximize {
65 | width:0px;
66 | height:0px;
67 | display:none;
68 | }
69 |
70 | .alert_title {
71 | float:left;
72 | height:1px;
73 | width:100%;
74 | }
75 |
76 | .alert_content {
77 | overflow:visible;
78 | color: #000;
79 | font-family: Tahoma, Arial, sans-serif;
80 | font: 12px arial;
81 | background: #FFF;
82 | }
83 |
84 | /* For alert/confirm dialog */
85 | .alert_window {
86 | background: #FFF;
87 | padding:20px;
88 | margin-left:auto;
89 | margin-right:auto;
90 | width:400px;
91 | }
92 |
93 | .alert_message {
94 | font: 12px arial;
95 | width:100%;
96 | color:#F00;
97 | padding-bottom:10px;
98 | }
99 |
100 | .alert_buttons {
101 | text-align:center;
102 | width:100%;
103 | }
104 |
105 | .alert_buttons input {
106 | width:20%;
107 | margin:10px;
108 | }
109 |
110 | .alert_progress {
111 | float:left;
112 | margin:auto;
113 | text-align:center;
114 | width:100%;
115 | height:16px;
116 | background: #FFF url('alert/progress.gif') no-repeat center center
117 | }
118 |
119 |
120 |
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alert/bottom.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alert/bottom.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alert/bottom_left.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alert/bottom_left.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alert/bottom_right.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alert/bottom_right.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alert/left.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alert/left.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alert/overlay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alert/overlay.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alert/progress.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alert/progress.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alert/right.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alert/right.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alert/top.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alert/top.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alert/top_left.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alert/top_left.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alert/top_right.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alert/top_right.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alert_lite.css:
--------------------------------------------------------------------------------
1 | .overlay_alert_lite {
2 | background-color: #85BBEF;
3 | filter:alpha(opacity=60);
4 | -moz-opacity: 0.6;
5 | opacity: 0.6;
6 | }
7 |
8 | .alert_lite_sizer {
9 | width:0px;
10 | height:0px;
11 | display:none;
12 | }
13 |
14 | .alert_lite_close {
15 | width:0px;
16 | height:0px;
17 | display:none;
18 | }
19 |
20 | .alert_lite_minimize {
21 | width:0px;
22 | height:0px;
23 | display:none;
24 | }
25 |
26 | .alert_lite_maximize {
27 | width:0px;
28 | height:0px;
29 | display:none;
30 | }
31 |
32 | .alert_lite_title {
33 | width:0px;
34 | height:0px;
35 | display:none;
36 | }
37 |
38 | .alert_lite_content {
39 | overflow:auto;
40 | color: #000;
41 | font-family: Tahoma, Arial, sans-serif;
42 | font-size: 10px;
43 | background: #FFF;
44 | }
45 |
46 |
47 | /* For alert/confirm dialog */
48 | .alert_lite_window {
49 | border:1px solid #F00;
50 | background: #FFF;
51 | padding:20px;
52 | margin-left:auto;
53 | margin-right:auto;
54 | width:400px;
55 | }
56 |
57 | .alert_lite_message {
58 | font-size:16px;
59 | text-align:center;
60 | width:100%;
61 | color:#F00;
62 | padding-bottom:10px;
63 | }
64 |
65 | .alert_lite_buttons {
66 | text-align:center;
67 | width:100%;
68 | }
69 |
70 | .alert_lite_buttons input {
71 | width:20%;
72 | margin:10px;
73 | }
74 |
75 | .alert_lite_progress {
76 | float:left;
77 | margin:auto;
78 | text-align:center;
79 | width:100%;
80 | height:16px;
81 | background: #FFF url('alert/progress.gif') no-repeat center center
82 | }
83 |
84 | table.alert_lite_header {
85 | border:1px solid #F00;
86 | background:#FFF
87 | }
88 |
89 |
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alphacube/bottom-left-c.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alphacube/bottom-left-c.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alphacube/bottom-middle.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alphacube/bottom-middle.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alphacube/bottom-right-c.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alphacube/bottom-right-c.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alphacube/button-close-focus.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alphacube/button-close-focus.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alphacube/button-max-focus.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alphacube/button-max-focus.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alphacube/button-min-focus.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alphacube/button-min-focus.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alphacube/frame-left.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alphacube/frame-left.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alphacube/frame-right.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alphacube/frame-right.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alphacube/left-top.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alphacube/left-top.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alphacube/right-top.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alphacube/right-top.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/alphacube/top-middle.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/alphacube/top-middle.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/behavior.htc:
--------------------------------------------------------------------------------
1 |
2 |
3 |
51 |
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/darkX.css:
--------------------------------------------------------------------------------
1 | .overlay_darkX {
2 | background-color: #85BBEF;
3 | filter:alpha(opacity=60);
4 | -moz-opacity: 0.6;
5 | opacity: 0.6;
6 | }
7 |
8 | .darkX_nw {
9 | background: transparent url(darkX/titlebar-left-focused.png) no-repeat 0 0;
10 | width:6px;
11 | height:21px;
12 | }
13 | .darkX_n {
14 | background: transparent url(darkX/titlebar-mid-focused.png) repeat-x 0 0;
15 | height:21px;
16 | }
17 | .darkX_ne {
18 | background: transparent url(darkX/titlebar-right-focused.png) no-repeat 0 0;
19 | width:6px;
20 | height:21px;
21 | }
22 | .darkX_w {
23 | background: transparent url(darkX/frame-left-focused.png) repeat-y top left;
24 | width:3px;
25 | }
26 |
27 | .darkX_e {
28 | background: transparent url(darkX/frame-right-focused.png) repeat-y top right;
29 | width:3px;
30 | }
31 |
32 | .darkX_sw {
33 | background: transparent url(darkX/frame-bottom-left-focused.png) no-repeat 0 0;
34 | width:5px;
35 | height:3px;
36 | }
37 | .darkX_s {
38 | background: transparent url(darkX/frame-bottom-mid-focused.png) repeat-x 0 0;
39 | height:3px;
40 | }
41 | .darkX_se, .darkX_sizer {
42 | background: transparent url(darkX/frame-bottom-right-focused.png) no-repeat 0 0;
43 | width:5px;
44 | height:3px;
45 | }
46 |
47 | .darkX_sizer {
48 | cursor:se-resize;
49 | }
50 |
51 | .darkX_close {
52 | width: 21px;
53 | height: 21px;
54 | background: transparent url(darkX/button-close-focused.png) no-repeat 0 0;
55 | position:absolute;
56 | top:0px;
57 | right:5px;
58 | cursor:pointer;
59 | z-index:1000;
60 | }
61 |
62 | .darkX_minimize {
63 | width: 21px;
64 | height: 21px;
65 | background: transparent url(darkX/button-minimize-focused.png) no-repeat 0 0;
66 | position:absolute;
67 | top:0px;
68 | right:26px;
69 | cursor:pointer;
70 | z-index:1000;
71 | }
72 |
73 | .darkX_maximize {
74 | width: 21px;
75 | height: 21px;
76 | background: transparent url(darkX/button-maximize-focused.png) no-repeat 0 0;
77 | position:absolute;
78 | top:0px;
79 | right:47px;
80 | cursor:pointer;
81 | z-index:1000;
82 | }
83 |
84 |
85 | .darkX_title {
86 | float:left;
87 | height:14px;
88 | font-size:12px;
89 | text-align:center;
90 | margin-top:2px;
91 | width:100%;
92 | color:#FFF;
93 | }
94 |
95 | .darkX_content {
96 | overflow:auto;
97 | color: #E6DF2A;
98 | font-family: Tahoma, Arial, sans-serif;
99 | font-size: 14px;
100 | background:#5E5148;
101 | }
102 |
103 |
104 | /* FOR IE */
105 | * html .darkX_minimize {
106 | background-color: transparent;
107 | background-image: none;
108 | filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-minimize-focused.png", sizingMethod="crop");
109 | }
110 |
111 | * html .darkX_maximize {
112 | background-color: transparent;
113 | background-image: none;
114 | filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-maximize-focused.png", sizingMethod="scale");
115 | }
116 |
117 | * html .darkX_close {
118 | background-color: transparent;
119 | background-image: none;
120 | filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/darkX/button-close-focused.png", sizingMethod="crop");
121 | }
122 |
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/darkX/button-close-focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/darkX/button-close-focused.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/darkX/button-maximize-focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/darkX/button-maximize-focused.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/darkX/button-minimize-focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/darkX/button-minimize-focused.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/darkX/frame-bottom-left-focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/darkX/frame-bottom-left-focused.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/darkX/frame-bottom-mid-focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/darkX/frame-bottom-mid-focused.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/darkX/frame-bottom-right-focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/darkX/frame-bottom-right-focused.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/darkX/frame-left-focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/darkX/frame-left-focused.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/darkX/frame-right-focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/darkX/frame-right-focused.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/darkX/titlebar-left-focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/darkX/titlebar-left-focused.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/darkX/titlebar-mid-focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/darkX/titlebar-mid-focused.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/darkX/titlebar-right-focused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/darkX/titlebar-right-focused.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/debug.css:
--------------------------------------------------------------------------------
1 | div.inspector div.inspectable {
2 | padding: 0.25em 0 0.25em 1em;
3 | background-color: Gray;
4 | color: white;
5 | border: outset 2px white;
6 | cursor: pointer;
7 | }
8 |
9 | div.inspector div.child {
10 | margin: 0 0 0 1em;
11 | }
12 |
13 | #debug_window_content { /* DIV container for debug sizing*/
14 | width:250px;
15 | height:100px;
16 | background-color:#000;
17 | }
18 |
19 | #debug { /* DIV container for debug contents*/
20 | padding:3px;
21 | color:#0f0;
22 | font-family:monaco, Tahoma, Verdana, Arial, Helvetica, sans-serif;
23 | font-size:10px;
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/bottom_left.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/bottom_left.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/bottom_mid.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/bottom_mid.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/bottom_right.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/bottom_right.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/bottom_right_resize.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/bottom_right_resize.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/center_left.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/center_left.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/center_right.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/center_right.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/clear.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/clear.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/close.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/close.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/inspect.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/inspect.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/maximize.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/maximize.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/minimize.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/minimize.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/overlay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/overlay.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/resize.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/resize.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/sizer.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/sizer.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/top_left.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/top_left.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/top_mid.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/top_mid.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/default/top_right.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/default/top_right.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/iefix/blank.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/iefix/blank.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/iefix/iepngfix.css:
--------------------------------------------------------------------------------
1 | /* PNG fix for all themes that uses PNG images on IE */
2 | td, div { behavior: url(../themes/iefix/iepngfix.htc) }
3 |
4 |
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/iefix/iepngfix.htc:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
54 |
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/background_buttons.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/background_buttons.gif
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/bottom-left-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/bottom-left-blue.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/bottom-left-darkblue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/bottom-left-darkblue.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/bottom-left-green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/bottom-left-green.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/bottom-left-grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/bottom-left-grey.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/bottom-middle-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/bottom-middle-blue.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/bottom-middle-darkblue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/bottom-middle-darkblue.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/bottom-middle-green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/bottom-middle-green.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/bottom-middle-grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/bottom-middle-grey.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/bottom-right-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/bottom-right-blue.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/bottom-right-darkblue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/bottom-right-darkblue.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/bottom-right-green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/bottom-right-green.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/bottom-right-grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/bottom-right-grey.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/button-close-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/button-close-blue.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/button-close-darkblue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/button-close-darkblue.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/button-close-green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/button-close-green.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/button-close-grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/button-close-grey.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/button-maximize-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/button-maximize-blue.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/button-maximize-darkblue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/button-maximize-darkblue.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/button-maximize-green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/button-maximize-green.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/button-maximize-grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/button-maximize-grey.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/button-minimize-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/button-minimize-blue.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/button-minimize-darkblue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/button-minimize-darkblue.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/button-minimize-green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/button-minimize-green.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/button-minimize-grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/button-minimize-grey.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/left-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/left-blue.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/left-darkblue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/left-darkblue.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/left-green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/left-green.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/left-grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/haru/redmine_code_review/4dd759306350420cd4200896ee0ee58cdfba08f4/assets/stylesheets/window_js/lighting/left-grey.png
--------------------------------------------------------------------------------
/assets/stylesheets/window_js/lighting/pngbehavior.htc:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |