add rss icon
[opensuse:openfate.git] / README
1 == openFATE ==
2
3
4 = Environment requirements =
5
6 The code is currently written for rails 2.0
7
8 zypper in libxml2-devel libxslt-devel ruby-mysql rubygem-rails rubygems rubygem-json
9 gem install ruby-xslt
10
11 RubyGems >= 0.9.4, ruby-xml-smart and rubygem-libxml-ruby(>=0.9.4), rubygem-ruby-openid from buildservice 
12 (repos: http://download.opensuse.org/repositories/devel:/languages:/ruby:/extensions/ 
13 http://download.opensuse.org/repositories/openSUSE:/infrastructure/ )
14  
15
16 If one of the dependencies is missing, you will get sth. like: 
17 undefined method `options' for []:Array (NoMethodError)
18 from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:32:in `gem_original_require' 
19 during startup.
20
21     
22     
23 =======
24 = Development environment =
25
26 To debug rails, install ruby-debug: 
27 gem install ruby-debug
28
29 To have the debug messages in the webserver log. use mongrel: 
30 sudo zypper in rubygem-mongrel
31
32
33 = Mongrel cluster =
34 We are using a mongrel cluster consisting of 4 mongrel processes, driven by apache proxy balancer. 
35 Therefore one mongrel_cluster (gem install mongrel_cluster).
36 The mongrels listen on port 8000-8003
37
38 To start openfate, run
39 /etc/init.d/mongrel_cluster start
40
41 , to stop 
42 /etc/init.d/mongrel_cluster stop
43
44
45 = Sessions = 
46
47 Old sessions are deleted with the clearsessions rake Task,
48 which deletes all session that are uchanged for 2 days:
49
50     rake clearsessions
51
52 It might be a good idea to put that call in a cronjob that runs every day, for example.
53
54
55
56 = Inplace editing =
57
58 Elements that should be editable by the user need to be prepared in 3 steps:
59
60   1. Add a hook that will be replaced with the edit button in the form of 
61
62         "<!--#elementname#_hook-->
63
64   2. Give the according HTML element an id that is called #elementname#, so that it can 
65      be hidden by the javascript, e.g. 
66
67        <h3 id="title">The Title <!--title_hook--></h3>
68
69   3. Put the HTML in an div with the id "#elementname#_container". The HTML code for the
70      editing interface will be appended on the end of this container.
71
72        <div id="title_container">
73          <h3 id="title">The Title <!--title_hook--></h3>
74        </div>
75
76
77 In the rails code 2 functions need to be called.
78
79   1. add_edit_button(), which replaces the hook with the edit button, e.g.
80
81        xml = add_edit_button( xml, "title", @feature.title )
82
83   2. add_edit_form, which generates an html formular for that elemen, e.g.
84
85        add_edit_form( "description", :text_area, @newdescription_value, @newdescription_error ) %>
86
87      Possible values for the second parameter, which describes the HTML element that will 
88      be used for the editing are :text_area and :text_field at the moment.
89