ChiliPresentations - Host HTML-presentations in a ChiliProject installation
DESCRIPTION:
ChiliProject/Redmine plugin which allows you to upload a zipped directory containing a "web-friendly" presentation (HTML/JS/CSS) and associate it with a project. The plugin will unzip it and filter viewing permissions according to your 'permissions' settings.
NOTABLE ITEMS TO CONSIDER
- This plugin is distributed as a gem, but does ship with migrations and asset files (stylesheets, etc). Therefore, the installation procedure is not the standard process.
- This plugin must be deployed behind the nginx web server, or a server which
implements the same
X-Sendfile
behavior as nginx (none that I am aware of do this). The controller which serves up the presentation defers this task to nginx by setting theX-Accel-Redirect
header. If ChiliProject is deployed behind anything other than nginx, it is likely you will only be shown a blank screen. (NOTE: This could easily be changed, but there is no reason in my environment to support other servers. Patches are absolutely welcome.) - You must be able to set up a simple directive in your nginx config and cycle
nginx in order to take advantage of the afforementioned
X-Accel-Redirect
header feature of nginx.
FEATURES:
- Makes it dead simple upload, store, and view HTML-based presentations within a ChiliProject/Redmine (CP/RM) installation.
- Allows you to link presentations to specific "versions" in the CP/RM project
- Adds a "presentation" wiki macro which can be used to link to a presentation in wikis, news items, et cetera.
SYNOPSIS:
- Install the plugin
- Enable the "Presentations" module in a project
A "Presentations" tab will show up in your project. Click the "Add Presentation" link in the contextual menu and use the form to upload a zipped directory containing an @index.html@ file. The new presentation will show up in the list of that project's presentations.
REQUIREMENTS:
-
Gems:
- friendly_id (v3.2.1.1)
- paperclip (v2.7.0)
-
System commands:
-
unzip
must be installed and on the path of the user running the ChiliProject application servers.
-
INSTALL:
In nginx
Add the following block to your ChiliProject nginx config (inside your server
block):
location ~ /contents/ {
# NOTE: Below, `root` is NOT set to `RAILS_ROOT/public`!
root RAILS_ROOT/uploaded_presentations;
internal;
}
Cycle nginx
.
In ChiliProject
gem install chili_presentations
Manual steps after gem installation
In your 'Gemfile', add:
gem 'chili_presentations'
Execute bundle install
(or bundle update chili_presentations
if you had a
previous version installed).
Next, in your 'Rakefile', add:
require 'tasks/chili_presentations_tasks'
Run the installation rake task (runs migrations)
RAILS_ENV=production rake chili_presentations:install
Cycle your application server (mongrel, unicorn, etc) and enable the module in a project.
UNINSTALL:
Run the uninstall rake task (reverts migrations)
RAILS_ENV=production rake chili_videos:uninstall
In your 'Rakefile', remove:
require 'tasks/chili_presentations_tasks'
In your 'Gemfile', remove:
gem 'chili_presentations'
Cycle your application server (mongrel, unicorn, whatevs)...
Then, uninstall the chili_presentations gem:
gem uninstall chili_presentations
Done.
CONTRIBUTING AND/OR SUPPORT:
Found a bug? Have a feature request?
Please file a ticket on the 'Issues' page of the Github project site
You can also drop me a message on Twitter @tomkersten.
Want to contribute?
(Better instructions coming soon)
- Fork the project
- Create a feature branch and implement your idea (preferably with tests)
- Update the History.txt file in the 'Next Release' section (at the top)
- Send a pull request
LICENSE:
Refer to the LICENSE file