Commit 2829c673 authored by elijah's avatar elijah

clean up included documentation

parent 3d1053aa
upgrade to latest thinking sphinx
deleting a page tag causes the discussions to get loaded for the ajax request.
this should not be the case.
destroying groups
needs a lot of work
what to do with orphaned pages?
all the pages that have cached the owner_name should get cleared out.
(or maybe not, instead link to 'anonymous'?)
what about everywhere else? create GroupGhost with the same id but with no content?
when notices are rendered as pages, they still fade.
i18n blows up if the session language is set to swedish.
alert messages don't stack for modalbox
confirmation before destroy contact
page search:
should be 'watching' instead of 'watched'
once active, needs to indicate i clicked on 'my pages -> own'.
need ajaxy history
the split panel is not something that we should keep, unless it can
be made to work when the screen gets small.
wiki:
need history
pages:
need 'show print' option.
Crabgrass is a web application designed for activist groups to be better able to collaborate online.
![crabgrass](public/images/crabgrass.png)
Crabgrass is based on Ruby on Rails and MySQL. It is released under the AGPL license, version 3.
Crabgrass is a web application designed for activist groups to be better able to collaborate online. Mostly, it is a glorified wiki with fine-grain control over access rights.
For installation notes, see INSTALL.
\ No newline at end of file
Crabgrass is based on Ruby on Rails and MySQL. It is released under the AGPL license, version 3.
For installation notes, see [doc/INSTALL.md](doc/INSTALL.md).
Contents:
1. [Install for development](#install-for-development)
2. [Install for testing](#install-for-testing)
3. [Install for production](#install-for-production)
4. [Configuration options](#configuration-options)
1. Install for development
2. Install for testing
3. Install for production
4. Configuration options
5. Database options
6. Troubleshooting
1. Install for development
Install for development
====================================================
Install basic ruby environment
......@@ -43,19 +39,19 @@ Alternatively you can install bundler with your package manager.
Install rails and required gems
cd crabgrass-core
bundle install
cd crabgrass-core
bundle install
Create a secret
rake create_a_secret
rake create_a_secret
Create the database:
cp config/database.yml.example config/database.yml
rake db:create
rake db:schema:load
rake db:fixtures:load
cp config/database.yml.example config/database.yml
rake db:create
rake db:schema:load
rake db:fixtures:load
Install helper applications:
......@@ -80,7 +76,7 @@ Connect to the web application from your browser:
See doc/development_tips for information on the arguments to script/server
2. Install for testing
Install for testing
====================================================
Install additional gems needed for testing:
......@@ -97,7 +93,7 @@ Run tests:
bundle exec rake
3. Install for production
Install for production
====================================================
install prerequisites
......@@ -168,7 +164,7 @@ one for you from the schedule.rb config file.
whenever --update-crontab -f config/misc/schedule.rb
4. Configuration options
Configuration options
====================================================
All the options that you might want to change live in three places:
......@@ -178,10 +174,3 @@ All the options that you might want to change live in three places:
3. config/crabgrass/crabgrass-<mode>.yml.
See config/crabgrass/README for more information.
6. Troubleshooting
====================================================
delayed_job -- Currently, it seems to fail if you have multiple 'daemons' gems install.
If you encounter this problem, run `gem uninstall daemons; gem uninstall delayed_job; rake gems:install` as root.
This diff is collapsed.
Themes are defined by folders in extensions/themes.
Themes are defined by folders in `extensions/themes`.
The structure of the folder is like this:
themename/
images/ -- directory for theme assets
init.rb -- main theme definition
navigation.rb -- navigation definition
themename/
images/ -- directory for theme assets
init.rb -- main theme definition
navigation.rb -- navigation definition
== Assets
## Assets
The "images" is a directory to hold the files that should be publicly available for this theme. The images directory will be available at the url /theme/<themename>/images. If you want to generate a path for a file extensions/themes/themename/images/icon.png, you would do url('icon.png') in init.rb or current_theme.url('icon.png') elsewhere.
== Theme Definition
## Theme Definition
The init.rb is the main theme definition file.
The init.rb is the main theme definition file.
=== Quoting
### Quoting
the theme code does a good job of figuring out if a value, when rendered as css,
should have quotes around it or not. you can force it to not have quotes by
creating a symbol, like so...
masthead {
height :"100px"
}
masthead {
height :"100px"
}
In this case, this is not needed, because values in px units are not quoted by default anyway.
=== HTML blocks
### HTML blocks
'html' is a special option. it takes either a string, a hash, or a block.
'html' is a special option. it takes either a string, a hash, or a block.
* string: inserts this value directly into the template
* hash: the template will call render() and pass in the hash.
* block: this will get eval'ed in the context of the view.
* string: inserts this value directly into the template
* hash: the template will call render() and pass in the hash.
* block: this will get eval'ed in the context of the view.
examples:
html '<h1>hi mom</h1>'
html :partial => '/views/layouts/hi.html'
html { content_tag(:h1, 'hi mom') }
html '<h1>hi mom</h1>'
html :partial => '/views/layouts/hi.html'
html { content_tag(:h1, 'hi mom') }
=== CSS blocks
### CSS blocks
'css' is a special option. The text you feed it will get included in the stylesheet as a sass mixin. This means you can make sass calls (using scss format). For example:
css "background-color: #010203 + #040506;"
css %{
$translucent-red: rgba(255, 0, 0, 0.5);
color: opacify($translucent-red, 0.8);
background-color: transparentize($translucent-red, 50%);
}
css "background-color: #010203 + #040506;"
css %{
$translucent-red: rgba(255, 0, 0, 0.5);
color: opacify($translucent-red, 0.8);
background-color: transparentize($translucent-red, 50%);
}
note: the %{} is a way to define a string in ruby, just not one that is used very often.
== Navigation Definition
## Navigation Definition
The code for the navigation definition is parsed once at startup, but you can include code blocks for any of the values that will get executed at runtime.
crabgrass-core is a basic, paired down crabgrass.
known bugs
==============================
upgrade to latest thinking sphinx
deleting a page tag causes the discussions to get loaded for the ajax request.
this should not be the case.
destroying groups
needs a lot of work
what to do with orphaned pages?
all the pages that have cached the owner_name should get cleared out.
(or maybe not, instead link to 'anonymous'?)
what about everywhere else? create GroupGhost with the same id but with no content?
when notices are rendered as pages, they still fade.
i18n blows up if the session language is set to swedish.
alert messages don't stack for modalbox
confirmation before destroy contact
page search:
should be 'watching' instead of 'watched'
once active, needs to indicate i clicked on 'my pages -> own'.
need ajaxy history
the split panel is not something that we should keep, unless it can
be made to work when the screen gets small.
wiki:
need history
pages:
need 'show print' option.
remote processing
==============================
......@@ -15,52 +50,67 @@ integrate documentcloud.org for displaying pdfs and docs.
things to work on
============================
Misc Quick
* grouphome: summary links break left column formatting
* remove details from page feeds for now
Misc
* banner width problems: https://labs.riseup.net/code/issues/4360
* Speed Problems Across App
* Search
Pages
* gallery > show formatting problems
* tasklist text doesnt line up with checkboxes
* survey page formatting and error message: https://labs.riseup.net/code/issues/4362
* wiki - versioning is a mess, full page edit form is too narrow, trying to open multiple sections for editing isnt working (see issue)
groups
. destroying group
. request to expell
* destroying group
* request to expell
directory
. group
. person
* group
* person
account
. reset lost password
. cracklib
* reset lost password
* cracklib
sphinx
. new sphinx
. better fields for sphinx
. get rid of page_terms
* new sphinx
* better fields for sphinx
* get rid of page_terms
pages
. history
. text page
. poll page
. asset page
. folder page
* history
* text page
* poll page
* asset page
* folder page
plugins
. write new plugin system
* write new plugin system
themes
. add more themes
* add more themes
tests
. minitest
. write more tests
* minitest
* write more tests
i18n
. identify used and unused keys
. a system to translate
. better en.yml organization
* identify used and unused keys
* a system to translate
* better en.yml organization
misc
. replace backgroundrb - kclair
. clean up css class usage for tabs - bootstrap and cg use different ones now - azul
* replace backgroundrb - kclair
* clean up css class usage for tabs - bootstrap and cg use different ones now - azul
new features
. issues
. notices
* issues
* notices
rails 3
============================
......@@ -105,7 +155,7 @@ indexes?
mailing list integration
=============================
two main problems:
two main problems:
(1) queuing and processing incoming messages
(2) queuing outgoing messages
......@@ -185,7 +235,7 @@ delayed database updates
Most of the database updates that are slow for the user are things that don't
need to be done right away. For example, you change one tiny thing about a page
and it kicks of tons and tons of database updates, but these are just for searching
and it kicks of tons and tons of database updates, but these are just for searching
and could be delayed.
A huge speed improvement can be acheived by running these, and the sphinx indexing,
......@@ -218,7 +268,7 @@ networked job queues:
https://github.com/ivanvanderbyl/cloudist (rabbitmq)
https://github.com/defunkt/resque (reddit)
http://mperham.github.com/sidekiq/ (faster than resque, api compatible)
backgrounding long running code:
https://github.com/tra/spawn
https://github.com/Try2Code/jobQueue
......@@ -237,7 +287,7 @@ On linux, fixes thread timeout problems:
http://systemtimer.rubyforge.org/
Unsorted links:
http://code.google.com/p/activemessaging/wiki/ActiveMessaging
http://code.google.com/p/activemessaging/wiki/ActiveMessaging
http://codeforpeople.rubyforge.org/svn/bj/trunk/README
https://github.com/barttenbrinke/worker_queue/
https://github.com/starling/active_queue
......@@ -255,8 +305,8 @@ Type A List
* avatar
* display name
* login
* online status
* you friend/ groups / networks
* online status
* you friend/ groups / networks
Type B List
......@@ -264,7 +314,7 @@ Only visible on the profile page of a user, but there can be Multiple or non at
* pictures, may be multiple.
* contact info
** email
** email
** phone
** instant message
** snail mail address
......@@ -317,3 +367,68 @@ Multi-user field editing
https://github.com/josephg/ShareJS
questions
===================
why rails v3.0 and not v3.x?
why github for rails in Gemfile? (huge extra overhead to pull in entire rails repo, versus the gem)
WIKIS
===========================
clicking 'show' leaves :document locked.
w.reload.section_locks.all_sections
w.section_locks.locks
w.break_locks!
w.lock!(section, user)
w = Wiki.last
u1 = User.find 4
u2 = User.find 5
w.section_locks.locks
test 1
w.lock!(:document, u1)
w.lock!(:document, u1)
test 2
w.lock!(:document, u1)
w.lock!(:document, u2)
sections
----------------
- #- if @wiki.section_open_for?(@section || :document, current_user)
todo
-----
* new page creation tab is 'show' should be 'edit'
scenarios
---------------
[x] user tries to edit page that is locked
w.lock!(:document, u2)
[x] user force unlocks page and saves
w.lock!(:document, u2)
[ ] user tries to saves, but someone as broken lock
w.unlock!(:document, u2, :break => true)
w.lock!(:document, u2)
[ ] user visits page that is empty but locked
[ ] user saves but new version already exists
[ ] user clicks away from edit field without hiting save or cancel
[x] force unlocking a subsection while remove locks on that tree path.
[x] edit section
[x] edit section that is locked
[ ] prevent multiple section edits at once (for now)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment