logilogi-svn Mailing List for LogiLogi - Software Libre for the Web (Page 7)
Status: Beta
Brought to you by:
wybow
You can subscribe to this list here.
| 2007 |
Jan
|
Feb
|
Mar
(7) |
Apr
(18) |
May
(59) |
Jun
(73) |
Jul
(31) |
Aug
(19) |
Sep
(18) |
Oct
(31) |
Nov
(9) |
Dec
(15) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
(30) |
Feb
(62) |
Mar
(70) |
Apr
(75) |
May
(139) |
Jun
(85) |
Jul
(28) |
Aug
(33) |
Sep
(145) |
Oct
(45) |
Nov
(76) |
Dec
(48) |
| 2009 |
Jan
(12) |
Feb
(39) |
Mar
(5) |
Apr
(6) |
May
(23) |
Jun
(44) |
Jul
(17) |
Aug
(15) |
Sep
(49) |
Oct
(28) |
Nov
(14) |
Dec
(6) |
| 2010 |
Jan
(22) |
Feb
(24) |
Mar
(14) |
Apr
(3) |
May
(2) |
Jun
(30) |
Jul
(9) |
Aug
(9) |
Sep
(10) |
Oct
(1) |
Nov
|
Dec
(1) |
| 2011 |
Jan
(2) |
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <wy...@us...> - 2009-10-28 23:06:37
|
Revision: 1634
http://logilogi.svn.sourceforge.net/logilogi/?rev=1634&view=rev
Author: wybow
Date: 2009-10-28 23:06:30 +0000 (Wed, 28 Oct 2009)
Log Message:
-----------
Removed debugging alert
Modified Paths:
--------------
trunk/app/views/logi_inserts/new.html.erb
Modified: trunk/app/views/logi_inserts/new.html.erb
===================================================================
--- trunk/app/views/logi_inserts/new.html.erb 2009-10-28 22:48:06 UTC (rev 1633)
+++ trunk/app/views/logi_inserts/new.html.erb 2009-10-28 23:06:30 UTC (rev 1634)
@@ -50,7 +50,6 @@
body_inserter = new BodyInserter('body_with_inserts',
'selected_text_field','selected_text_text',
'<%= Const::Logi::INSERT_STRING %>','<%= _('No selection made') %>');
- alert('dsf');
<% end -%>
</div>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-28 22:48:18
|
Revision: 1633
http://logilogi.svn.sourceforge.net/logilogi/?rev=1633&view=rev
Author: wybow
Date: 2009-10-28 22:48:06 +0000 (Wed, 28 Oct 2009)
Log Message:
-----------
Removed html escaping for logi-editing
Modified Paths:
--------------
trunk/app/views/logi_inserts/new.html.erb
trunk/app/views/logis/_edit.html.erb
Modified: trunk/app/views/logi_inserts/new.html.erb
===================================================================
--- trunk/app/views/logi_inserts/new.html.erb 2009-10-28 22:18:19 UTC (rev 1632)
+++ trunk/app/views/logi_inserts/new.html.erb 2009-10-28 22:48:06 UTC (rev 1633)
@@ -20,7 +20,7 @@
<% render :layout => 'logis/logi', :locals => {:id => "logi_insert"} do %>
<div id="hidden_div" style="visibility: hidden;">
<h1><%= truncate(@logi_version.title, :length => 25) %></h1>
- <%= text_area_tag 'body_with_inserts', h(@logi_version.body),
+ <%= text_area_tag 'body_with_inserts', @logi_version.body,
:class => 'readonly', :autocomplete => "off" %>
</div>
<% end %>
@@ -50,6 +50,7 @@
body_inserter = new BodyInserter('body_with_inserts',
'selected_text_field','selected_text_text',
'<%= Const::Logi::INSERT_STRING %>','<%= _('No selection made') %>');
+ alert('dsf');
<% end -%>
</div>
Modified: trunk/app/views/logis/_edit.html.erb
===================================================================
--- trunk/app/views/logis/_edit.html.erb 2009-10-28 22:18:19 UTC (rev 1632)
+++ trunk/app/views/logis/_edit.html.erb 2009-10-28 22:48:06 UTC (rev 1633)
@@ -8,7 +8,7 @@
<div id="EditorDiv" style="visibility: hidden;">
<%= text_area_tag 'logi[body]',
- (logi_version.nil? ? nil : h(logi_version.body)),
+ (logi_version.nil? ? nil : logi_version.body),
:class => 'editable', :id => 'logi_edit_body' %>
</div>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-28 22:18:28
|
Revision: 1632
http://logilogi.svn.sourceforge.net/logilogi/?rev=1632&view=rev
Author: wybow
Date: 2009-10-28 22:18:19 +0000 (Wed, 28 Oct 2009)
Log Message:
-----------
Fixed floating-dots problem
Modified Paths:
--------------
tools/t-llre/t-llre
Modified: tools/t-llre/t-llre
===================================================================
--- tools/t-llre/t-llre 2009-10-28 22:16:38 UTC (rev 1631)
+++ tools/t-llre/t-llre 2009-10-28 22:18:19 UTC (rev 1632)
@@ -315,7 +315,7 @@
end
def replace_latex(text, link)
- text.gsub!(/^%.*\n/, "")
+ text.gsub!(/^%.*(\n|$)/, "")
text.gsub!("\\_", "_")
text.gsub!("---", "-")
text.gsub!("\\dots", "...")
@@ -331,15 +331,19 @@
text.gsub!("\\end{quote}", "")
text.gsub!("\\textsterling", "£")
text.gsub!(/\\begin\{figure.*?\}.*?\\end\{figure.*?\}/m, "")
- text.gsub!(/\\\w*footnote\{.*?\}/m, "")
- text.gsub!(/\\\w*ref\{.*?\}/m, "")
- text.gsub!(/\\\w*cite\w*((\[.*?\])?\{.*?\})+/m, "")
+ text.gsub!(/\s?\\\w*footnote\{.*?\}/m, "")
+ text.gsub!(/\s?\\\w*ref\{.*?\}/m, "")
+ text.gsub!(/\s?\\\w*cite\w*((\[.*?\])?\{.*?\})+/m, "")
text.gsub!(/\{\\it``\s*(.*?)''\}/m, "<em>\"\\1\"</em>")
- text.gsub!(/\{\\em(.*?)\}/m, "<em>\"\\1\"</em>")
- text.gsub!(/\\emph\{(.*?)\}/m, "<em>\"\\1\"</em>")
- text.gsub!(/\\textit\{(.*?)\}/m, "<em>\"\\1\"</em>")
- text.gsub!(/\\textsf\{(.*?)\}/m, "<em>\"\\1\"</em>")
+ text.gsub!(/\{\\em(.*?)\}/m, "<em>\\1</em>")
+ text.gsub!(/\\emph\{(.*?)\}/m, "<em>\\1</em>")
+ text.gsub!(/\\textit\{(.*?)\}/m, "<em>\\1</em>")
+ text.gsub!(/\\textsf\{(.*?)\}/m, "<em>\\1</em>")
text.gsub!(/\{\\it\s*(.*?)\}/m, "<em>\\1</em>")
+ text.gsub!("``", "\"")
+ text.gsub!("''", "\"")
+ text.gsub!("\\printbibliography", "")
+ text.gsub!("\\end{document}", "")
if text =~ /\\[^\s].*\n/
match = $~
@errors << "latex in logi: " + link + " : " + match[0]
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-28 22:16:55
|
Revision: 1631
http://logilogi.svn.sourceforge.net/logilogi/?rev=1631&view=rev
Author: wybow
Date: 2009-10-28 22:16:38 +0000 (Wed, 28 Oct 2009)
Log Message:
-----------
Added channels for types
Modified Paths:
--------------
trunk/app/models/commenting.rb
trunk/app/models/external_link.rb
trunk/app/models/link.rb
trunk/app/models/remark.rb
trunk/app/models/vote.rb
Modified: trunk/app/models/commenting.rb
===================================================================
--- trunk/app/models/commenting.rb 2009-10-28 21:38:23 UTC (rev 1630)
+++ trunk/app/models/commenting.rb 2009-10-28 22:16:38 UTC (rev 1631)
@@ -38,7 +38,7 @@
# Has reply
m = LogLogMessage.new(
:kind => "Reply",
- :channel_names => ['all',
+ :channel_names => ['all', 'replies',
'for_' + self.from_logi.creator.unix_name].join(','),
:title => 'Received:' + self.to_logi.current_title,
:author => self.user.name,
Modified: trunk/app/models/external_link.rb
===================================================================
--- trunk/app/models/external_link.rb 2009-10-28 21:38:23 UTC (rev 1630)
+++ trunk/app/models/external_link.rb 2009-10-28 22:16:38 UTC (rev 1631)
@@ -80,7 +80,7 @@
if GlobalConfig.use_log_log
m = LogLogMessage.new(
:kind => "External Link",
- :channel_names => ['all',
+ :channel_names => ['all', 'external_links',
'for_' + self.logi.creator.unix_name].join(','),
:title => 'In:' + self.logi.current_title,
:author => self.user.name,
Modified: trunk/app/models/link.rb
===================================================================
--- trunk/app/models/link.rb 2009-10-28 21:38:23 UTC (rev 1630)
+++ trunk/app/models/link.rb 2009-10-28 22:16:38 UTC (rev 1631)
@@ -921,7 +921,7 @@
# Outgoing
m = LogLogMessage.new(
:kind => "Link",
- :channel_names => ['all',
+ :channel_names => ['all', 'links',
'for_' + self.from_logi.creator.unix_name].join(','),
:title => 'Outgoing:' + self.from_logi.current_title,
:author => self.user.name,
Modified: trunk/app/models/remark.rb
===================================================================
--- trunk/app/models/remark.rb 2009-10-28 21:38:23 UTC (rev 1630)
+++ trunk/app/models/remark.rb 2009-10-28 22:16:38 UTC (rev 1631)
@@ -76,7 +76,7 @@
if GlobalConfig.use_log_log
m = LogLogMessage.new(
:kind => "Remark",
- :channel_names => ['all',
+ :channel_names => ['all', 'remarks',
'for_' + self.logi.creator.unix_name].join(','),
:author => self.user.name,
:title => 'On: ' + self.logi.current_title,
Modified: trunk/app/models/vote.rb
===================================================================
--- trunk/app/models/vote.rb 2009-10-28 21:38:23 UTC (rev 1630)
+++ trunk/app/models/vote.rb 2009-10-28 22:16:38 UTC (rev 1631)
@@ -57,7 +57,7 @@
if self.score > 0
m = LogLogMessage.new(
:kind => "Vote",
- :channel_names => ['all',
+ :channel_names => ['all', 'votes',
'for_' + self.rating.logi.creator.unix_name].join(','),
:author => self.user.name,
:title => 'For: ' + self.rating.logi.current_title,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-28 21:38:50
|
Revision: 1630
http://logilogi.svn.sourceforge.net/logilogi/?rev=1630&view=rev
Author: wybow
Date: 2009-10-28 21:38:23 +0000 (Wed, 28 Oct 2009)
Log Message:
-----------
Added anchors for easy reading
Modified Paths:
--------------
trunk/app/helpers/application_helper.rb
trunk/app/views/logis/_logi.html.erb
trunk/app/views/logis/_steps.html.erb
Modified: trunk/app/helpers/application_helper.rb
===================================================================
--- trunk/app/helpers/application_helper.rb 2009-10-26 23:00:49 UTC (rev 1629)
+++ trunk/app/helpers/application_helper.rb 2009-10-28 21:38:23 UTC (rev 1630)
@@ -691,7 +691,7 @@
else
text = self.pre_truncate_options(logi.to_s(:for => :show), options)
end
- link_to text, @controller.logi_ll_url(logi), html_options
+ link_to text, @controller.logi_ll_url(logi, :anchor => options[:anchor]), html_options
end
def logi_extended_link(logi, options = {}, html_options = {})
Modified: trunk/app/views/logis/_logi.html.erb
===================================================================
--- trunk/app/views/logis/_logi.html.erb 2009-10-26 23:00:49 UTC (rev 1629)
+++ trunk/app/views/logis/_logi.html.erb 2009-10-28 21:38:23 UTC (rev 1630)
@@ -1,3 +1,4 @@
+<a name="logi_top"></a>
<div id="<%= id %>" class="box logi logi_body logi_current">
<%= (local_assigns[:action] == :view ?
button_to('Insert into logi',
@@ -10,13 +11,15 @@
</div>
<% if local_assigns[:action] == :view and @path
index = @path.steps.index(@path.steps.detect {|s| s.logi == @logi})
- next_logi = @path.steps[index + 1].logi %>
- <div class="next_step">
- <%= button_to 'Next', logi_ll_url(next_logi),
- :class => 'next_button' %>
- <span class="link">Next on read-path: <%= logi_ll_link(
- next_logi, :show => :title, :length => 38) %></span>
- <div class="spacer"></div>
- </div>
+ if index + 1 < @path.steps.size
+ next_logi = @path.steps[index + 1].logi %>
+ <div class="next_step">
+ <%= button_to 'Next', logi_ll_url(next_logi, :anchor => 'logi_top'),
+ :class => 'next_button' %>
+ <span class="link">Next on read-path: <%= logi_ll_link(
+ next_logi, :show => :title, :length => 38, :anchor => 'logi_top') %></span>
+ <div class="spacer"></div>
+ </div>
+ <% end %>
<% end %>
</div>
Modified: trunk/app/views/logis/_steps.html.erb
===================================================================
--- trunk/app/views/logis/_steps.html.erb 2009-10-26 23:00:49 UTC (rev 1629)
+++ trunk/app/views/logis/_steps.html.erb 2009-10-28 21:38:23 UTC (rev 1630)
@@ -16,7 +16,7 @@
puts steps.size
%>
<% if index > 1 %>
- <%= button_to 'Previous', logi_ll_url(steps[index - 1].logi),
+ <%= button_to 'Previous', logi_ll_url(steps[index - 1].logi, :anchor => 'logi_top'),
:class => 'up_button' %>
<div class="spacer"></div>
<% end %>
@@ -34,7 +34,7 @@
<div class="step step_current">
<div class="panel_content_padding">
<div class="level<%= step.level %>">
- <%= logi_ll_link(step.logi, :show => :title, :length => 52) %>
+ <%= logi_ll_link(step.logi, :anchor => 'logi_top', :show => :title, :length => 52) %>
</div>
<div class="spacer"></div>
</div>
@@ -42,7 +42,7 @@
<% else %>
<div class="step">
<div class="level<%= step.level %>">
- <%= logi_ll_link(step.logi, :show => :title, :length => 52) %>
+ <%= logi_ll_link(step.logi, :anchor => 'logi_top', :show => :title, :length => 52) %>
</div>
</div>
<% end %>
@@ -57,7 +57,7 @@
<% end %>
<% if index + 1 < steps.size %>
<div class="spacer"></div>
- <%= button_to 'Next', logi_ll_url(steps[index + 1].logi),
+ <%= button_to 'Next', logi_ll_url(steps[index + 1].logi, :anchor => 'logi_top'),
:class => 'down_button' %>
<% end %>
<% end %>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-26 23:01:01
|
Revision: 1629
http://logilogi.svn.sourceforge.net/logilogi/?rev=1629&view=rev
Author: wybow
Date: 2009-10-26 23:00:49 +0000 (Mon, 26 Oct 2009)
Log Message:
-----------
Reduced max title lenght in next_step
Modified Paths:
--------------
trunk/app/views/logis/_logi.html.erb
Modified: trunk/app/views/logis/_logi.html.erb
===================================================================
--- trunk/app/views/logis/_logi.html.erb 2009-10-26 22:45:09 UTC (rev 1628)
+++ trunk/app/views/logis/_logi.html.erb 2009-10-26 23:00:49 UTC (rev 1629)
@@ -14,7 +14,8 @@
<div class="next_step">
<%= button_to 'Next', logi_ll_url(next_logi),
:class => 'next_button' %>
- <span class="link">Next on read-path: <%= logi_ll_link(next_logi, :show => :title, :length => 48) %></span>
+ <span class="link">Next on read-path: <%= logi_ll_link(
+ next_logi, :show => :title, :length => 38) %></span>
<div class="spacer"></div>
</div>
<% end %>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-26 22:45:27
|
Revision: 1628
http://logilogi.svn.sourceforge.net/logilogi/?rev=1628&view=rev
Author: wybow
Date: 2009-10-26 22:45:09 +0000 (Mon, 26 Oct 2009)
Log Message:
-----------
Paths usable now
Modified Paths:
--------------
trunk/app/views/layouts/_foot.html.erb
trunk/app/views/logis/_logi.html.erb
trunk/app/views/logis/_steps.html.erb
trunk/public/images/select.png
trunk/public/images/select.svg
trunk/public/stylesheets/logilogi.css
Added Paths:
-----------
trunk/public/images/down_button.svg
trunk/public/images/next_button.svg
trunk/public/images/up_button.svg
Modified: trunk/app/views/layouts/_foot.html.erb
===================================================================
--- trunk/app/views/layouts/_foot.html.erb 2009-10-26 20:56:11 UTC (rev 1627)
+++ trunk/app/views/layouts/_foot.html.erb 2009-10-26 22:45:09 UTC (rev 1628)
@@ -60,6 +60,15 @@
'stretch_side' : 'right'});
mcorners.add('div.insert_button', {'scaled_image' : 'insert_button.svg',
'corner_size' : 7, 'stretch_side' : 'right'});
+ mcorners.add('div.up_button', {
+ 'scaled_image' : 'up_button.svg', 'corner_size' : 7,
+ 'stretch_side' : 'right'});
+ mcorners.add('div.down_button', {
+ 'scaled_image' : 'down_button.svg', 'corner_size' : 7,
+ 'stretch_side' : 'right'});
+ mcorners.add('div.next_button', {
+ 'scaled_image' : 'next_button.svg', 'corner_size' : 7,
+ 'stretch_side' : 'right'});
mcorners.prepare_defered();
mcorners.run();
<% end -%>
Modified: trunk/app/views/logis/_logi.html.erb
===================================================================
--- trunk/app/views/logis/_logi.html.erb 2009-10-26 20:56:11 UTC (rev 1627)
+++ trunk/app/views/logis/_logi.html.erb 2009-10-26 22:45:09 UTC (rev 1628)
@@ -8,4 +8,14 @@
<%= yield %>
<div class="spacer"></div>
</div>
+ <% if local_assigns[:action] == :view and @path
+ index = @path.steps.index(@path.steps.detect {|s| s.logi == @logi})
+ next_logi = @path.steps[index + 1].logi %>
+ <div class="next_step">
+ <%= button_to 'Next', logi_ll_url(next_logi),
+ :class => 'next_button' %>
+ <span class="link">Next on read-path: <%= logi_ll_link(next_logi, :show => :title, :length => 48) %></span>
+ <div class="spacer"></div>
+ </div>
+ <% end %>
</div>
Modified: trunk/app/views/logis/_steps.html.erb
===================================================================
--- trunk/app/views/logis/_steps.html.erb 2009-10-26 20:56:11 UTC (rev 1627)
+++ trunk/app/views/logis/_steps.html.erb 2009-10-26 22:45:09 UTC (rev 1628)
@@ -1,4 +1,35 @@
-<% steps.each do |step| %>
+<% if steps.size > 11
+ index = steps.index(steps.detect {|s| s.logi == current_logi})
+ if index + 6 > steps.size
+ i_start = steps.size - 11
+ else
+ i_start = index - 5
+ end
+ i_start = 0 if i_start < 0
+ if index < 6
+ i_end = 10
+ else
+ i_end = index + 6
+ end
+ i_end = steps.size if i_end > steps.size
+ puts i_end
+ puts steps.size
+%>
+ <% if index > 1 %>
+ <%= button_to 'Previous', logi_ll_url(steps[index - 1].logi),
+ :class => 'up_button' %>
+ <div class="spacer"></div>
+ <% end %>
+ <% if i_start != 0 %>
+ <div class="step">
+ <div class="level2">
+ ...
+ </div>
+ </div>
+ <% end %>
+<% end %>
+
+<% steps[i_start...i_end].each do |step| %>
<% if current_logi == step.logi %>
<div class="step step_current">
<div class="panel_content_padding">
@@ -16,3 +47,17 @@
</div>
<% end %>
<% end %>
+<% if steps.size > 11 %>
+ <% if i_end != steps.size %>
+ <div class="step">
+ <div class="level2">
+ ...
+ </div>
+ </div>
+ <% end %>
+ <% if index + 1 < steps.size %>
+ <div class="spacer"></div>
+ <%= button_to 'Next', logi_ll_url(steps[index + 1].logi),
+ :class => 'down_button' %>
+ <% end %>
+<% end %>
Added: trunk/public/images/down_button.svg
===================================================================
--- trunk/public/images/down_button.svg (rev 0)
+++ trunk/public/images/down_button.svg 2009-10-26 22:45:09 UTC (rev 1628)
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="400"
+ height="40"
+ id="svg3408"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="next_down_button.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="/home/wybo/logilogi/trunk/public/images/add_icon_16.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs3410">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3416" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.979899"
+ inkscape:cx="208.95176"
+ inkscape:cy="0.34176457"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1366"
+ inkscape:window-height="693"
+ inkscape:window-x="0"
+ inkscape:window-y="27" />
+ <metadata
+ id="metadata3413">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ ry="10"
+ rx="10"
+ y="0"
+ x="-400"
+ height="40"
+ width="400"
+ id="rect6887"
+ style="fill:#30367e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:2.02999989999999997;stroke-opacity:1;display:inline"
+ transform="scale(-1,1)" />
+ <g
+ style="display:inline"
+ id="g5821"
+ transform="matrix(0,-1.4876271,1.2883229,0,-333.8776,581.63956)">
+ <path
+ transform="translate(-456.01531,113.93376)"
+ d="M 825.90072,162.67438 L 841.81063,153.48879 L 841.81062,171.85996 L 825.90072,162.67438 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="4.1887902"
+ sodipodi:arg1="3.1415927"
+ sodipodi:r2="5.3033009"
+ sodipodi:r1="10.606601"
+ sodipodi:cy="162.67438"
+ sodipodi:cx="836.50732"
+ sodipodi:sides="3"
+ id="path5831"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:2.0299999;stroke-opacity:1"
+ sodipodi:type="star" />
+ </g>
+ </g>
+</svg>
Added: trunk/public/images/next_button.svg
===================================================================
--- trunk/public/images/next_button.svg (rev 0)
+++ trunk/public/images/next_button.svg 2009-10-26 22:45:09 UTC (rev 1628)
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="400"
+ height="40"
+ id="svg3408"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="next_button.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="/home/wybo/logilogi/trunk/public/images/add_icon_16.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs3410">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3416" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.979899"
+ inkscape:cx="208.95176"
+ inkscape:cy="0.34176457"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1366"
+ inkscape:window-height="693"
+ inkscape:window-x="0"
+ inkscape:window-y="27" />
+ <metadata
+ id="metadata3413">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ ry="10"
+ rx="10"
+ y="0"
+ x="-400"
+ height="40"
+ width="400"
+ id="rect6887"
+ style="fill:#30367e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:2.02999989999999997;stroke-opacity:1;display:inline"
+ transform="scale(-1,1)" />
+ <g
+ style="display:inline"
+ id="g5821"
+ transform="matrix(-1.4876271,0,0,-1.2883229,580.56856,375.91459)">
+ <path
+ transform="translate(-456.01531,113.93376)"
+ d="M 825.90072,162.67438 L 841.81063,153.48879 L 841.81062,171.85996 L 825.90072,162.67438 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="4.1887902"
+ sodipodi:arg1="3.1415927"
+ sodipodi:r2="5.3033009"
+ sodipodi:r1="10.606601"
+ sodipodi:cy="162.67438"
+ sodipodi:cx="836.50732"
+ sodipodi:sides="3"
+ id="path5831"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:2.0299999;stroke-opacity:1"
+ sodipodi:type="star" />
+ </g>
+ </g>
+</svg>
Modified: trunk/public/images/select.png
===================================================================
(Binary files differ)
Modified: trunk/public/images/select.svg
===================================================================
--- trunk/public/images/select.svg 2009-10-26 20:56:11 UTC (rev 1627)
+++ trunk/public/images/select.svg 2009-10-26 22:45:09 UTC (rev 1628)
@@ -16,7 +16,7 @@
version="1.0"
sodipodi:docname="select.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
- inkscape:export-filename="/home/bruno/Documents/work/GNU/logilogi.org/trunk/public/images/select.png"
+ inkscape:export-filename="/home/wybo/logilogi/trunk/public/images/select.png"
inkscape:export-xdpi="60.75"
inkscape:export-ydpi="60.75">
<defs
@@ -67,9 +67,9 @@
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1151"
- inkscape:window-height="727"
+ inkscape:window-height="689"
inkscape:window-x="55"
- inkscape:window-y="24" />
+ inkscape:window-y="27" />
<metadata
id="metadata3413">
<rdf:RDF>
@@ -120,9 +120,9 @@
inkscape:rounded="0"
inkscape:randomized="0"
d="M 287.82253,-15.882627 L 273.24625,-15.882627 L 258.66996,-15.882628 L 265.9581,-28.506061 L 273.24625,-41.129496 L 280.53439,-28.506062 L 287.82253,-15.882627 z"
- transform="matrix(-0.9246239,0,0,-0.9246239,631.88385,-6.3296086)" />
+ transform="matrix(-0.9246239,0,0,-0.9246239,627.88385,-6.3296086)" />
<path
- transform="matrix(-0.9246239,0,0,-0.9246239,631.88385,33.670392)"
+ transform="matrix(-0.9246239,0,0,-0.9246239,627.88385,33.670392)"
d="M 287.82253,-15.882627 L 273.24625,-15.882627 L 258.66996,-15.882628 L 265.9581,-28.506061 L 273.24625,-41.129496 L 280.53439,-28.506062 L 287.82253,-15.882627 z"
inkscape:randomized="0"
inkscape:rounded="0"
Added: trunk/public/images/up_button.svg
===================================================================
--- trunk/public/images/up_button.svg (rev 0)
+++ trunk/public/images/up_button.svg 2009-10-26 22:45:09 UTC (rev 1628)
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="400"
+ height="40"
+ id="svg3408"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="previous_button.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="/home/wybo/logilogi/trunk/public/images/add_icon_16.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs3410">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3416" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.979899"
+ inkscape:cx="208.95176"
+ inkscape:cy="0.34176457"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1366"
+ inkscape:window-height="693"
+ inkscape:window-x="0"
+ inkscape:window-y="27" />
+ <metadata
+ id="metadata3413">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ ry="10"
+ rx="10"
+ y="0"
+ x="-400"
+ height="40"
+ width="400"
+ id="rect6887"
+ style="fill:#30367e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:2.02999989999999997;stroke-opacity:1;display:inline"
+ transform="scale(-1,1)" />
+ <g
+ style="display:inline"
+ id="g5821"
+ transform="matrix(0,1.4876271,-1.2883229,0,378.8436,-542.53157)">
+ <path
+ transform="translate(-456.01531,113.93376)"
+ d="M 825.90072,162.67438 L 841.81063,153.48879 L 841.81062,171.85996 L 825.90072,162.67438 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="true"
+ sodipodi:arg2="4.1887902"
+ sodipodi:arg1="3.1415927"
+ sodipodi:r2="5.3033009"
+ sodipodi:r1="10.606601"
+ sodipodi:cy="162.67438"
+ sodipodi:cx="836.50732"
+ sodipodi:sides="3"
+ id="path5831"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:2.0299999;stroke-opacity:1"
+ sodipodi:type="star" />
+ </g>
+ </g>
+</svg>
Modified: trunk/public/stylesheets/logilogi.css
===================================================================
--- trunk/public/stylesheets/logilogi.css 2009-10-26 20:56:11 UTC (rev 1627)
+++ trunk/public/stylesheets/logilogi.css 2009-10-26 22:45:09 UTC (rev 1628)
@@ -271,6 +271,20 @@
padding-top: 0.3em;
padding-bottom: 0.3em;
}
+#paths .button {
+ float: left;
+}
+.next_step {
+ padding-bottom: 0.8em;
+}
+.next_step .button {
+ margin-right: 0;
+}
+.next_step .link {
+ float: right;
+ margin-top: 1em;
+ margin-right: 1em;
+}
/* panels with tabs */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-26 20:56:24
|
Revision: 1627
http://logilogi.svn.sourceforge.net/logilogi/?rev=1627&view=rev
Author: wybow
Date: 2009-10-26 20:56:11 +0000 (Mon, 26 Oct 2009)
Log Message:
-----------
Added DH2010 poster paper
Modified Paths:
--------------
docs/papers/DH2009/logilogi.tex
docs/papers/DH2009/paper.pdf
docs/papers/DH2009/talia.tex
Added Paths:
-----------
docs/papers/DH2010/
docs/papers/DH2010/paper.bib
docs/papers/DH2010/paper.pdf
docs/papers/DH2010/paper.tex
Modified: docs/papers/DH2009/logilogi.tex
===================================================================
--- docs/papers/DH2009/logilogi.tex 2009-10-26 01:26:00 UTC (rev 1626)
+++ docs/papers/DH2009/logilogi.tex 2009-10-26 20:56:11 UTC (rev 1627)
@@ -1,6 +1,6 @@
\logi\ is an hypertext web-platform developed for LogiLogi.org by the
-LogiLogi Foundation\footnote{\href{http://logilogi.org} and
-\href{http://foundation.logilogi.org}}. It tries to combine the virtues of
+LogiLogi Foundation\footnote{\url{http://logilogi.org} and
+\url{http://foundation.logilogi.org}}. It tries to combine the virtues of
good conversations and the written word by providing a form of quick,
informal publication and annotation of short texts (so called
\emph{Logis}) via the web.
Modified: docs/papers/DH2009/paper.pdf
===================================================================
(Binary files differ)
Modified: docs/papers/DH2009/talia.tex
===================================================================
--- docs/papers/DH2009/talia.tex 2009-10-26 01:26:00 UTC (rev 1626)
+++ docs/papers/DH2009/talia.tex 2009-10-26 20:56:11 UTC (rev 1627)
@@ -1,5 +1,5 @@
\talia\ and \philo\ are developed within the Discovery
-project\footnote{\href{http://www.discovery-project.eu}}. \talia\ is a
+project\footnote{\url{http://www.discovery-project.eu}}. \talia\ is a
distributed semantic digital library and publishing system, that acts
as a container for \emph{Sources}, i.e., for Corpora of philosophers
or texts on a certain philosophical topic, and for scholarly
Added: docs/papers/DH2010/paper.bib
===================================================================
--- docs/papers/DH2010/paper.bib (rev 0)
+++ docs/papers/DH2010/paper.bib 2009-10-26 20:56:11 UTC (rev 1627)
@@ -0,0 +1,57 @@
+@inproceedings{wiersma_two_2009,
+ title = {Two Scholarly {Web-Agoras:} The {LogiLogi} and {Talia/Philospace} Approaches},
+ booktitle = {{ECAP} 2009 Abstract},
+ author = {Wybo Wiersma and S. David},
+ year = {2009}
+ },
+
+@inproceedings{wiersma_logilogi:_2008,
+ title = {{LogiLogi:} Combining Openness and Quality of Content},
+ booktitle = {{FKFT} 2008 Proceedings},
+ author = {Wybo Wiersma and M. Lezama},
+ year = {2008}
+ },
+
+@inproceedings{wiersma_logilogi:webplatform_2008,
+ title = {{LogiLogi:} A Webplatform for Philosophers},
+ booktitle = {Digital Humanities 2008 Book of Abstracts},
+ author = {Wybo Wiersma and B. Sarlo},
+ year = {2008},
+ pages = {221--222}
+ },
+
+@misc{wiersma_logilogi:beyond_2009,
+ title = {LogiLogi: Philosophy beyond the Book},
+ author = {Wybo Wiersma},
+ howpublished = "\url{http://www.logilogi.org/pub/beyond/paper.pdf},
+ \url{http://en.logilogi.org/Logi_Logi/Beyond_Paper/ Introduction=Wybo_Wiersma_84}"
+ },
+
+@misc{logilogi_foundation_2009,
+ title = {The {LogiLogi} Foundation - Software Libre for Your Web of Free Deliberation},
+ url = {http://foundation.logilogi.org/},
+ year = {2009},
+ howpublished = {http://foundation.logilogi.org/}
+ }
+
+@misc{pyramid_of_agile_2007,
+ title = {The Great Pyramid of Agile},
+ author = {Alex Papadimoulis},
+ url = {http://thedailywtf.com/Articles/The-Great-Pyramid-of-Agile.aspx},
+ year = {2007},
+ howpublished = {http://thedailywtf.com/Articles/The-Great-Pyramid-of-Agile.aspx}
+ }
+
+@article{abrahamsson_2002,
+ title = {Agile Software Development Methods: Review and Analysis},
+ journal = {VTT Publications 478},
+ author = {P. Abrahamsson, O. Salo, J. Ronkainen, J. Warsta},
+ year = {2002}
+ },
+
+@article{prasar_2008,
+ title = {Creating critical mass in collaboration systems: Insights from Wikipedia},
+ journal = {Digital Ecosystems and Technologies, 2008. DEST 2008. 2nd IEEE International Conference on},
+ author = {P. Prasarnphanich, C. Wagner},
+ year = {2008}
+ }
Added: docs/papers/DH2010/paper.pdf
===================================================================
(Binary files differ)
Property changes on: docs/papers/DH2010/paper.pdf
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: docs/papers/DH2010/paper.tex
===================================================================
--- docs/papers/DH2010/paper.tex (rev 0)
+++ docs/papers/DH2010/paper.tex 2009-10-26 20:56:11 UTC (rev 1627)
@@ -0,0 +1,73 @@
+\documentclass[a4paper,12pt]{article}
+\usepackage{../styles/colacl06-dh09}
+\usepackage{times}
+\usepackage[flushmargin]{footmisc}
+\usepackage[pdftex]{graphicx}
+\usepackage[T1]{fontenc}
+\usepackage[style=verbose-ibid,hyperref]{biblatex}
+\usepackage[colorlinks=false,draft=true]{hyperref}
+\bibliography{paper}
+\usepackage{fancyhdr}
+\usepackage{dcolumn}
+
+\setlength\titlebox{4.5cm}
+
+% possibly without Two in front
+\title{LogiLogi: The Quest for Critical Mass}
+
+\author
+{Wybo Wiersma\\
+ King's College London\\
+ {\tt wy...@lo...}}
+
+%\date{DRAFT of~\today}
+
+\begin{document}
+
+\maketitle
+
+\section{Introduction}
+
+In this abstract, and more so in the poster-presentation, we will report on the the process of, and the problems involved in gaining a critical mass of users for an interactive, hypertext-based Digital Humanities application. The aim of any DH application ultimately is to be used, but for interactive ones, in which the contributions and interactions of the users are what make it worthwile for new visitors, gaining an initial critical mass of users is especially important, and notoriously hard.
+
+First of all LogiLogi, the system on which we are going to try to get a community started, is briefly introduced. Next the strategy for gaining users, some possible improvements, and attempts so far are explicated. Here we will also discuss the kinds of users we target and the possible size of the application's critical mass. We finish with an overview of the usage data that our poster will report on.
+
+\section{System}
+
+LogiLogi is a Web2.0 application that tries to find an informal middle-road between good conversations and journal-papers by providing a form of quick, informal publication, peer-review, and annotation of short philosophical texts. \autocites[]{wiersma_logilogi:webplatform_2008}[]{wiersma_logilogi:beyond_2009}. It is intended for all those ideas that one cannot turn into a full sized paper, but that one deems too interesting to leave to the winds\autocites[]{wiersma_two_2009}.
+
+It does not make use of forum-threads (avoiding their many problems), but of tags and links that can also be added to texts by others than the original author. And it features a rating-system modeled after Journal-based-review, in which well-rated texts earn authors more voting-power within their peergroup (of which there are multiple)\autocites[]{wiersma_logilogi:_2008}.
+
+LogiLogi is Free Software, has been under development by between 2 and 10 people for 3 years, and a public beta is already online and fully functional at \url{www.LogiLogi.org}\autocites[]{logilogi_foundation_2009}.
+
+\section{Strategy}
+
+Things that have been done so far to gain users are, first of all, making sure that it works properly. LogiLogi has been extensively tested and improved at the LIRMM lab of the University of Montpellier this September. And it was used there by about 30 active users for internal discussions until the end of October. Secondly, some seed-content has been added (about 80 philosophical texts, some of which are part of larger essays). And finally since October it has been made possible for users to easily track new replies, annotations, and votes for their documents both through a personalized RSS feed and e-mail alerts. Thus making LogiLogi practical to use for the first time.
+
+\subsection{Target Audience}
+
+LogiLogi has not yet been advertised widely, and changing this is one of the first things we will do next. LogiLogi aims for a wide audience of scholars, students, and people interested in philosophy, but to set the right tone, we first aim for people in the academy (students and scholars). Among them, most success is expected with students, both because of their limited access to other publishing channels and their greater average computer-literacy. Possible places to reach them are forums,
+newsgroups, and (limited) advertising via Google Adwords.
+
+\subsection{Process}
+
+Then, as part of user-driven, agile development, feedback will be collected from users on possible improvements. Both ongoing, from users on the web, and from a small group of philosophy-students in an usability test. Some of these improvements will then be implemented, after which we repeat the process with another round of usability testing and improvements (at least two rounds)\autocites[]{abrahamsson_2002}[]{pyramid_of_agile_2007}.
+
+\subsection{Improvements}
+
+A possible improvement so far identified is simplifying the application, for example by (temporarily) limiting the number of voting-communities (peergroups) to one. This would have the additional advantage that the size of the needed critical mass would be reduced, because votes are no longer limited to, and divided between groups. While it is hard to determine in advance what the critical mass of LogiLogi would be, from what we saw in the LIRMM case it most likely lies between 30 to 60 active users per peergroup (or for the whole site if there's only one peergroup).
+
+Another place for improvement is the editing and annotation process. Especially it's responsiveness, and it's multimedia capabilities could be improved by integrating LogiLogi with Google Wave. LogiLogi currently requires people to open a new page when they want to insert annotations or links, while Wave, a new communication and collaboration tool by Google, that aims for the the middle-ground between wiki's, forums, e-mail, instant messaging and social networks, allows one to do this immediately, and even by dragging and dropping things onto the page (also allows one to insert images and video's through this process). It currently is in preview-release, and expected to be generally available around the end of 2009.
+
+\subsection{Report}
+
+In our poster we will report on developments in the number of users, on the strategies and improvements we applied, and on their practical, and causal relationships. Also we will not just be reporting the number of registered users, or unique visitors, but also on the number of documents, annotations, replies, and votes given over the time-period from November 2009 until June 2010. Thus a detailed view will be given of the process of gaining critical mass.
+
+\section{Conclusion}
+
+Whether we succeed or not in gaining the critical mass for LogiLogi, there will be meaningful results from this experiment. As it not only involves presenting, or further improving an already quite usable interactive Digital Humanities application, but foremostly trying to give it a critical mass of users, and exploring this process, producing insights and a valuable case-study (of success or failure) for future Digital Humanities projects to learn from. Projects which will, most likely, be more interactive than their predecessors, and thus will sooner or later face the same challenge of gaining a critical mass of users.
+
+\nocite{*}
+\printbibliography
+
+\end{document}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-26 01:26:14
|
Revision: 1626
http://logilogi.svn.sourceforge.net/logilogi/?rev=1626&view=rev
Author: wybow
Date: 2009-10-26 01:26:00 +0000 (Mon, 26 Oct 2009)
Log Message:
-----------
Fixed steps-layout, not final yet.
Modified Paths:
--------------
trunk/app/views/logis/_steps.html.erb
trunk/public/stylesheets/logilogi.css
Modified: trunk/app/views/logis/_steps.html.erb
===================================================================
--- trunk/app/views/logis/_steps.html.erb 2009-10-24 11:42:57 UTC (rev 1625)
+++ trunk/app/views/logis/_steps.html.erb 2009-10-26 01:26:00 UTC (rev 1626)
@@ -3,7 +3,7 @@
<div class="step step_current">
<div class="panel_content_padding">
<div class="level<%= step.level %>">
- <%= logi_ll_link(step.logi, :show => :title, :length => 28) %>
+ <%= logi_ll_link(step.logi, :show => :title, :length => 52) %>
</div>
<div class="spacer"></div>
</div>
@@ -11,7 +11,7 @@
<% else %>
<div class="step">
<div class="level<%= step.level %>">
- <%= logi_ll_link(step.logi, :show => :title, :length => 28) %>
+ <%= logi_ll_link(step.logi, :show => :title, :length => 52) %>
</div>
</div>
<% end %>
Modified: trunk/public/stylesheets/logilogi.css
===================================================================
--- trunk/public/stylesheets/logilogi.css 2009-10-24 11:42:57 UTC (rev 1625)
+++ trunk/public/stylesheets/logilogi.css 2009-10-26 01:26:00 UTC (rev 1626)
@@ -261,15 +261,15 @@
}
.panel div.step div.level1 {
padding-left: 0.5em;
- font-size: 1.8em;
+ font-size: 1.6em;
padding-top: 0.3em;
padding-bottom: 0.3em;
}
.panel div.step div.level2 {
padding-left: 1.5em;
font-size: 1.4em;
- padding-top: 0.5em;
- padding-bottom: 0.5em;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
}
/* panels with tabs */
@@ -774,7 +774,7 @@
}
#paths .step_current {
padding: 20px 0 20px 2.6em;
- height: 2.6em;
+ height: 2.2em;
margin: -20px 0px -18px -30px;
}
#home_page .logi_current .panel_content_padding,
@@ -783,7 +783,7 @@
}
#paths .step .panel_content_padding {
padding-top: 0em;
- padding-bottom: 0.3em;
+ padding-bottom: 0.1em;
padding-left: 0em;
}
#home_page .logi .author,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-24 11:43:05
|
Revision: 1625
http://logilogi.svn.sourceforge.net/logilogi/?rev=1625&view=rev
Author: wybow
Date: 2009-10-24 11:42:57 +0000 (Sat, 24 Oct 2009)
Log Message:
-----------
Fixed small loglog-bug & improved loglog-messages
Modified Paths:
--------------
trunk/app/models/log_log_subscription.rb
trunk/app/models/notifier.rb
trunk/app/models/rating.rb
trunk/app/models/vote.rb
trunk/app/views/notifier/for_log.erb
trunk/test/unit/user_test.rb
Modified: trunk/app/models/log_log_subscription.rb
===================================================================
--- trunk/app/models/log_log_subscription.rb 2009-10-24 11:22:00 UTC (rev 1624)
+++ trunk/app/models/log_log_subscription.rb 2009-10-24 11:42:57 UTC (rev 1625)
@@ -26,7 +26,7 @@
page = Net::HTTP.get_response(url)
periodical = page.body
if periodical =~ /[^\s]/
- Notifier.deliver_for_log(user, period.camelize, periodical)
+ Notifier.deliver_for_log(user, period, periodical)
end
rescue
end
Modified: trunk/app/models/notifier.rb
===================================================================
--- trunk/app/models/notifier.rb 2009-10-24 11:22:00 UTC (rev 1624)
+++ trunk/app/models/notifier.rb 2009-10-24 11:42:57 UTC (rev 1625)
@@ -15,7 +15,7 @@
### Mailers
def for_log(user, period, periodical)
- subject period + " for " + user.name + " on " + GlobalConfig.domain
+ subject "Update for " + user.name + " on " + GlobalConfig.domain
from "LogiLogi Notifier <no...@lo...>"
recipients user.email
sent_on Time.now
Modified: trunk/app/models/rating.rb
===================================================================
--- trunk/app/models/rating.rb 2009-10-24 11:22:00 UTC (rev 1624)
+++ trunk/app/models/rating.rb 2009-10-24 11:42:57 UTC (rev 1625)
@@ -87,13 +87,16 @@
vote = nil
conditions = 'created_at > "' + 1.week.ago.to_s(:db) + '"'
if !user.anonymous?
- vote = self.votes.find_by_user_id(user.id, :conditions => conditions)
+ vote = self.votes.find_by_user_id(user.id,
+ :conditions => conditions)
elsif ip_address
- vote = self.votes.find_by_ip_address(ip_address, :conditions => conditions)
+ vote = self.votes.find_by_ip_address(ip_address,
+ :conditions => conditions)
end
if vote.nil?
weight = self.peer_group.membership_for(user).power
- vote = self.votes.build(:user => user, :weight => weight, :ip_address => ip_address)
+ vote = self.votes.build(:user => user, :weight => weight,
+ :ip_address => ip_address)
end
return vote
end
@@ -132,7 +135,6 @@
if !vote.powered?
raise 'You have no voting-power in this peergroup'
end
- self.votes << vote
# calculation
if self.powered?
old_power_income = self.power_income
@@ -149,6 +151,7 @@
end
# saving
self.save
+ vote.save
end
### Filter-functions
Modified: trunk/app/models/vote.rb
===================================================================
--- trunk/app/models/vote.rb 2009-10-24 11:22:00 UTC (rev 1624)
+++ trunk/app/models/vote.rb 2009-10-24 11:42:57 UTC (rev 1625)
@@ -62,8 +62,9 @@
:author => self.user.name,
:title => 'For: ' + self.rating.logi.current_title,
:text => 'Score: ' + self.score.to_s +
- ', it\'s rating is now: ' + self.rating.score.to_s +
- ' (weight' + self.rating.weight.to_s + ')',
+ ' (weight: ' + self.weight.to_s + ")\n" +
+ 'It\'s average rating is now: ' + self.rating.score.to_s +
+ ' (weight: ' + self.rating.weight.to_s + ')',
:url => GlobalConfig.site_url + self.rating.logi.link.to_s)
m.save
end
Modified: trunk/app/views/notifier/for_log.erb
===================================================================
--- trunk/app/views/notifier/for_log.erb 2009-10-24 11:22:00 UTC (rev 1624)
+++ trunk/app/views/notifier/for_log.erb 2009-10-24 11:42:57 UTC (rev 1625)
@@ -1,3 +1,7 @@
-<%= @period %> update for <%= @user.name %> on <%= GlobalConfig.domain %>.
+Dear <%= @user.name %>,
+Hereby your personalized <%= @period %> update for <%= GlobalConfig.domain %>.
+
+It is only sent if something happened related to your logis.
+
<%= @periodical %>
Modified: trunk/test/unit/user_test.rb
===================================================================
--- trunk/test/unit/user_test.rb 2009-10-24 11:22:00 UTC (rev 1624)
+++ trunk/test/unit/user_test.rb 2009-10-24 11:42:57 UTC (rev 1625)
@@ -179,8 +179,8 @@
assert [], Logi.find_by_creator_user_id(nil)
assert [], LogiVersion.find_by_editor_user_id(u.id)
assert [], LogiVersion.find_by_editor_user_id(nil)
- assert [], Trail.find_by_user_id(u.id)
- assert [], Trail.find_by_user_id(nil)
+ assert [], Path.find_by_user_id(u.id)
+ assert [], Path.find_by_user_id(nil)
l = Logi.find(l_id)
assert_equal User.anonymous, l.creator
end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-24 11:22:10
|
Revision: 1624
http://logilogi.svn.sourceforge.net/logilogi/?rev=1624&view=rev
Author: wybow
Date: 2009-10-24 11:22:00 +0000 (Sat, 24 Oct 2009)
Log Message:
-----------
Fixed title line, added unique id
Modified Paths:
--------------
projects/loglog/trunk/app/controllers/application_controller.rb
projects/loglog/trunk/app/controllers/apps_controller.rb
projects/loglog/trunk/app/controllers/channels_controller.rb
projects/loglog/trunk/app/controllers/feeds_controller.rb
projects/loglog/trunk/app/controllers/messages_controller.rb
projects/loglog/trunk/app/models/message.rb
projects/loglog/trunk/app/views/periods/show.txt.erb
projects/loglog/trunk/config/environment.rb
projects/loglog/trunk/db/schema.rb
projects/loglog/trunk/lib/capistrano/loglog.rb
projects/loglog/trunk/test/fixtures/messages.yml
projects/loglog/trunk/test/functional/messages_controller_test.rb
projects/loglog/trunk/test/unit/message_test.rb
Added Paths:
-----------
projects/loglog/trunk/config/config.rb.tmpl
projects/loglog/trunk/db/migrate/20091005214451_add_unique_id.rb
Modified: projects/loglog/trunk/app/controllers/application_controller.rb
===================================================================
--- projects/loglog/trunk/app/controllers/application_controller.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/app/controllers/application_controller.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -54,6 +54,15 @@
end
end
+ def page_name
+ @page_name = self.auto_page_name
+ end
+
+ def auto_page_name
+ return (params[:controller] + ' ' + params[:action]).gsub(/(^|\s)(.)/) {
+ $1 + $2.upcase }
+ end
+
# Scrub sensitive parameters from your log
# filter_parameter_logging :password
end
Modified: projects/loglog/trunk/app/controllers/apps_controller.rb
===================================================================
--- projects/loglog/trunk/app/controllers/apps_controller.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/app/controllers/apps_controller.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -18,7 +18,7 @@
### Filters
- before_filter :find
+ before_filter :find, :page_name
### Filter-method
Modified: projects/loglog/trunk/app/controllers/channels_controller.rb
===================================================================
--- projects/loglog/trunk/app/controllers/channels_controller.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/app/controllers/channels_controller.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -21,13 +21,8 @@
before_filter :find_app
before_filter :find,
:except => :index
+ before_filter :page_name
- ### Filter-functions
-
- def find
- @channel = @app.channels.find_or_build_by_name(params[:id])
- end
-
### Bodies
# see the BodyBuilder plugin.
@@ -46,7 +41,17 @@
def show
end
- ### Body-methods
+ ### Filter-functions
-# protected
+ def find
+ @channel = @app.channels.find_or_build_by_name(params[:id])
+ end
+
+ def page_name
+ if params[:action] == "show"
+ @page_name = "Channel " + @channel.name
+ else
+ super
+ end
+ end
end
Modified: projects/loglog/trunk/app/controllers/feeds_controller.rb
===================================================================
--- projects/loglog/trunk/app/controllers/feeds_controller.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/app/controllers/feeds_controller.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -22,7 +22,7 @@
@messages = @channel.messages.find(:all, :order => "created_at DESC", :limit => 30)
respond_to do |format|
format.atom do
- @title = 'LogLog ' + @channel.name + ' channel'
+ @title = 'LogLog Channel ' + @channel.name
end
end
end
Modified: projects/loglog/trunk/app/controllers/messages_controller.rb
===================================================================
--- projects/loglog/trunk/app/controllers/messages_controller.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/app/controllers/messages_controller.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -33,15 +33,15 @@
def create
if current_app == @app
- mess = params[:message].dup
+ m_params = params[:message].dup
ok, last_message = true
- if mess[:channel_names]
- mess.delete(:channel_names).split(',').each do |channel_name|
- ok = self.save_message(mess, @app, channel_name) if ok
+ if m_params[:channel_names]
+ m_params.delete(:channel_names).split(',').each do |channel_name|
+ ok = self.save_message(m_params, @app, channel_name) if ok
end
- elsif mess[:channel_name]
- channel_name = mess.delete(:channel_name)
- ok = self.save_message(mess, @app, channel_name)
+ elsif m_params[:channel_name]
+ channel_name = m_params.delete(:channel_name)
+ ok = self.save_message(m_params, @app, channel_name)
end
if ok
@@ -61,6 +61,11 @@
def save_message(mess, app, channel_name)
last_message = Message.new(mess)
last_message.set_channel_from(app, channel_name)
- return last_message.save
+ ok = last_message.save
+ if ok or last_message.not_unique?
+ return true
+ else
+ return false
+ end
end
end
Modified: projects/loglog/trunk/app/models/message.rb
===================================================================
--- projects/loglog/trunk/app/models/message.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/app/models/message.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -32,8 +32,20 @@
end }
}
+ ###### Validations
+
+ validates_uniqueness_of :unique_id, :scope => :channel_id, :allow_nil => :true
+
### Methods
+ # For finding out if this is a duplicate
+ #
+ def not_unique?
+ Message.find_by_unique_id(self.unique_id)
+ end
+
+ # Gets a channel for the given name & app
+ #
def set_channel_from(app, channel_name)
self.channel = app.channels.find_or_build_by_name(channel_name)
end
Modified: projects/loglog/trunk/app/views/periods/show.txt.erb
===================================================================
--- projects/loglog/trunk/app/views/periods/show.txt.erb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/app/views/periods/show.txt.erb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -7,7 +7,7 @@
if message.title and !message.title.empty?
%><%= message.title %>
-<% end %> <%= word_wrap(message.text, :line_width => 70) %>
+<% end %> <%= word_wrap(message.text + ' ...', :line_width => 70) %>
- <%= message.author %>
<%= message.url %>
Added: projects/loglog/trunk/config/config.rb.tmpl
===================================================================
--- projects/loglog/trunk/config/config.rb.tmpl (rev 0)
+++ projects/loglog/trunk/config/config.rb.tmpl 2009-10-24 11:22:00 UTC (rev 1624)
@@ -0,0 +1,4 @@
+SITE_NAME = "LogLog.org"
+TITLE_LINE = "Updates, your way"
+HEADER_KEYWORDS = "tweets, notices, logs, messages, application"
+HEADER_DESCRIPTION = "Messages from your application to your users. The easy way for RSS-feeds, e-mail alerts and more"
Modified: projects/loglog/trunk/config/environment.rb
===================================================================
--- projects/loglog/trunk/config/environment.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/config/environment.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -44,7 +44,5 @@
# config.i18n.default_locale = :de
end
-SITE_NAME = "LogLog.org"
-TITLE_LINE = "Yo"
-HEADER_KEYWORDS = "Yo"
-HEADER_DESCRIPTION = "Yo"
+# And at last load the configuration
+require File.join(RAILS_ROOT, 'config', 'config')
Added: projects/loglog/trunk/db/migrate/20091005214451_add_unique_id.rb
===================================================================
--- projects/loglog/trunk/db/migrate/20091005214451_add_unique_id.rb (rev 0)
+++ projects/loglog/trunk/db/migrate/20091005214451_add_unique_id.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -0,0 +1,9 @@
+class AddUniqueId < ActiveRecord::Migration
+ def self.up
+ add_column :messages, :unique_id, :string
+ end
+
+ def self.down
+ remove_column :messages, :unique_id
+ end
+end
Modified: projects/loglog/trunk/db/schema.rb
===================================================================
--- projects/loglog/trunk/db/schema.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/db/schema.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -9,7 +9,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20090713120351) do
+ActiveRecord::Schema.define(:version => 20091005214451) do
create_table "apps", :force => true do |t|
t.string "name", :limit => 20, :null => false
@@ -37,6 +37,7 @@
t.string "text", :limit => 300, :null => false
t.string "url", :limit => 150
t.datetime "created_at", :null => false
+ t.string "unique_id"
end
create_table "sessions", :force => true do |t|
Modified: projects/loglog/trunk/lib/capistrano/loglog.rb
===================================================================
--- projects/loglog/trunk/lib/capistrano/loglog.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/lib/capistrano/loglog.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -24,6 +24,7 @@
# Copied from something.rb.tmpl to something.rb
SHARED_TEMPLATE_FILES = [
+ "config/config.rb",
"config/database.yml",
"config/mongrel_cluster.yml"
]
Modified: projects/loglog/trunk/test/fixtures/messages.yml
===================================================================
--- projects/loglog/trunk/test/fixtures/messages.yml 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/test/fixtures/messages.yml 2009-10-24 11:22:00 UTC (rev 1624)
@@ -56,3 +56,12 @@
text: 'And thus and there and so Sanders remark2'
url: 'http://www.logilogi.org/Mooo'
created_at: <%= 6.weeks.ago.to_s(:db) %>
+logi_unique_logis:
+ channel: logis
+ kind: 'Logi'
+ title: 'So it was unique'
+ author: 'Unique'
+ text: 'And thus and there and so Unique a logi'
+ url: 'http://www.logilogi.org/Mooouniq'
+ created_at: <%= 20.hours.ago.to_s(:db) %>
+ unique_id: 'hapatraplla043'
Modified: projects/loglog/trunk/test/functional/messages_controller_test.rb
===================================================================
--- projects/loglog/trunk/test/functional/messages_controller_test.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/test/functional/messages_controller_test.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -63,4 +63,25 @@
logis.reload
assert_equal messages_count + 1, logis.messages.count
end
+
+ def test_create_non_unique
+ enll = apps(:enll)
+ logis = channels(:logis)
+ messages_count = logis.messages.count
+ login(enll)
+
+ # Non-unique message, not created
+ m1 = messages(:logi_unique_logis)
+ post :create, :app_id => enll.name, :format => "xml",
+ :message => {
+ :kind => "Logi",
+ :channel_names => logis.name.to_s + ",u_eduard_edison",
+ :title => "This is a second logi",
+ :author => "Eduard Edison",
+ :text => "Hi, welcome to another logi",
+ :url => "http://www.yahoo.com",
+ :unique_id => m1.unique_id}
+ logis.reload
+ assert_equal messages_count, logis.messages.count
+ end
end
Modified: projects/loglog/trunk/test/unit/message_test.rb
===================================================================
--- projects/loglog/trunk/test/unit/message_test.rb 2009-10-23 22:41:05 UTC (rev 1623)
+++ projects/loglog/trunk/test/unit/message_test.rb 2009-10-24 11:22:00 UTC (rev 1624)
@@ -16,10 +16,30 @@
class MessageTest < ActiveSupport::TestCase
fixtures :all
+ # Saving
+
+ def test_validations_uniqueness
+ m1 = messages(:logi_unique_logis)
+ m2 = Message.new(:channel_id => m1.channel_id,
+ :text => 'Muha',
+ :unique_id => m1.unique_id)
+ assert !m2.save
+ end
+
+ # Methods
+
def test_set_channel_from
# set
m = messages(:logi_john_johnson_logis)
m.set_channel_from(apps(:enll), 'remarks')
assert_equal channels(:remarks), m.channel
end
+
+ def test_not_unique
+ m1 = messages(:logi_unique_logis)
+ m2 = Message.new(:channel_id => m1.channel_id,
+ :text => 'Muha',
+ :unique_id => m1.unique_id)
+ assert m2.not_unique?
+ end
end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-23 22:41:11
|
Revision: 1623
http://logilogi.svn.sourceforge.net/logilogi/?rev=1623&view=rev
Author: wybow
Date: 2009-10-23 22:41:05 +0000 (Fri, 23 Oct 2009)
Log Message:
-----------
Added support for read-paths
Modified Paths:
--------------
tools/t-llre/t-llre
Modified: tools/t-llre/t-llre
===================================================================
--- tools/t-llre/t-llre 2009-10-23 22:36:19 UTC (rev 1622)
+++ tools/t-llre/t-llre 2009-10-23 22:41:05 UTC (rev 1623)
@@ -75,6 +75,7 @@
VERSION = '0.5.0'
SPLITTER = "%ll:/"
+ PATH = "%ll:path"
CONFIG_FILE = File.expand_path('~/.ll_remote')
attr_accessor :errors, :options
@@ -166,53 +167,112 @@
contents = f.read
end
- parsed_logis, part_lines = self.parse_contents(contents)
+ parts_lines = unzip_contents(contents, SPLITTER)
+ parsed_logis = parse_logis(parts_lines)
check_errors("Not saved any logi")
puts "# Parsed all logis successfully" if @options.verbose
puts "### Processing" if @options.verbose
- part_lines = self.process_logis(parsed_logis, part_lines)
+ parsed_logis, parts_lines = self.process_logis(parsed_logis, parts_lines)
+ contents = zip_parts_lines(parts_lines)
puts "# Processed all logis successfully" if @options.verbose
+ puts "# Processing paths" if @options.verbose
+ parts_lines = unzip_contents(contents, PATH)
- update_file(@options.filename, part_lines)
+ parsed_path = self.parse_path(parsed_logis, parts_lines)
+
+ parts_lines = self.process_paths(parsed_path, parts_lines)
+
+ puts "# Processed paths successfully" if @options.verbose
+
+ update_file(@options.filename, zip_parts_lines(parts_lines))
end
- def parse_contents(contents)
- parts = contents.split(/^#{SPLITTER}/)
-
+ def parse_logis(parts_lines)
parsed_logis = []
- part_lines = [parts[0].split("\n")]
- parts[1..-1].each do |part|
- part_lines << part.split("\n")
- link, title, body = parse_part(part.dup)
+ parts_lines[1..-1].each do |part_lines|
+ link, title, body, level = parse_part(part_lines.join("\n"))
parsed_logis << {:link => link,
:title => replace_latex(title, link),
- :body => replace_latex(body, link)}
+ :body => replace_latex(body, link),
+ :level => level}
end
- return parsed_logis, part_lines
+ return parsed_logis
end
- def process_logis(parsed_logis, part_lines)
+ def parse_path(parsed_logis, parts_lines)
+ parsed_path = {}
+ if parts_lines.size > 1 # A PATH was in there
+ parsed_path[:id] = parse_path_id(parts_lines[1][0])
+ parsed_path[:enabled] = true
+ parsed_path[:step_hashes] = []
+ i = 0
+ parsed_logis.each do |logi_hash|
+ parsed_path[:step_hashes] << {
+ :logi_link => logi_hash[:logi_link],
+ :title => logi_hash[:title],
+ :level => logi_hash[:level],
+ :position => i}
+ i += 1
+ end
+ end
+ return parsed_path
+ end
+
+ def process_logis(parsed_logis, parts_lines)
LLRemote.setup(:access_token => @options.api_token, :server_url => @options.server_url)
parsed_logis.each_with_index do |parsed, index|
l = LLRemote::Logi.new(parsed)
l.save
- part_lines[index + 1][0] = SPLITTER + l.link
- puts '# Processed: ' + l.link if @options.verbose
+ parsed[:logi_link] = l.link
+ parts_lines[index + 1][0] = SPLITTER + parsed[:logi_link]
+ puts '# Processed: ' + parsed[:logi_link] if @options.verbose
end
- return part_lines
+ return parsed_logis, parts_lines
end
- def update_file(filename, part_lines)
- if part_lines[0].join.empty?
+ def process_paths(parsed_path, parts_lines)
+ if parsed_path[:enabled]
+ LLRemote.setup(:access_token => @options.api_token, :server_url => @options.server_url)
+ if parsed_path[:id]
+ old_path = LLRemote::Path.find(parsed_path[:id])
+ old_path.destroy
+ end
+ path = LLRemote::Path.new
+ path.save
+ parsed_path[:step_hashes].each do |step_hash|
+ step = LLRemote::Step.new(:path => path, :logi_link => step_hash[:logi_link],
+ :level => step_hash[:level], :position => step_hash[:position])
+ step.save
+ end
+ parts_lines[1][0] = PATH + '_' + path.id.to_s
+ end
+ return parts_lines
+ end
+
+ def unzip_contents(contents, splitter)
+ parts = contents.split(/^#{splitter}/)
+
+ parts_lines = [parts[0].split("\n")]
+ parts[1..-1].each do |part|
+ parts_lines << part.split("\n")
+ end
+ return parts_lines
+ end
+
+ def zip_parts_lines(parts_lines)
+ if parts_lines[0].join.empty?
# for cases with nothing before the ll
- part_lines.shift
+ parts_lines.shift
end
- contents = part_lines.collect {|t| t.join("\n")}.join("\n\n").chomp
+ return parts_lines.collect {|t| t.join("\n")}.join("\n\n").chomp
+ end
+
+ def update_file(filename, contents)
File.open(filename, 'w') do |f|
f.write(contents)
end
@@ -224,7 +284,8 @@
title = replace_latex(parse_title(part),link)
body = replace_latex(raw_body,link)
- return link, title, body
+ level = parse_level(part)
+ return link, title, body, level
end
def parse_title(part)
@@ -233,12 +294,26 @@
return match[1]
end
+ def parse_level(part)
+ part =~ /^\\(\w*)section.*/
+ match = $~
+ return match[1].scan('sub').size + 1
+ end
+
def parse_link(raw_link)
link = raw_link.split("\n")[0]
link.strip!
return link
end
+ def parse_path_id(path_line)
+ path_line =~ /^_(.*)/
+ match = $~
+ if match
+ return match[1].to_i
+ end
+ end
+
def replace_latex(text, link)
text.gsub!(/^%.*\n/, "")
text.gsub!("\\_", "_")
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-23 22:36:28
|
Revision: 1622
http://logilogi.svn.sourceforge.net/logilogi/?rev=1622&view=rev
Author: wybow
Date: 2009-10-23 22:36:19 +0000 (Fri, 23 Oct 2009)
Log Message:
-----------
Added preliminary paths, updatable via API
Modified Paths:
--------------
trunk/app/controllers/logis_controller.rb
trunk/app/helpers/application_helper.rb
trunk/app/models/logi.rb
trunk/app/views/layouts/_foot.html.erb
trunk/app/views/logis/_list.html.erb
trunk/app/views/logis/_side_menu.html.erb
trunk/config/routes.rb
trunk/public/images/logi_current.svg
trunk/public/stylesheets/logilogi.css
Added Paths:
-----------
trunk/app/controllers/paths_controller.rb
trunk/app/controllers/steps_controller.rb
trunk/app/views/logis/_paths.html.erb
trunk/app/views/logis/_steps.html.erb
trunk/app/views/paths/
trunk/app/views/paths/create.erb
trunk/app/views/paths/show.erb
Modified: trunk/app/controllers/logis_controller.rb
===================================================================
--- trunk/app/controllers/logis_controller.rb 2009-10-21 21:55:28 UTC (rev 1621)
+++ trunk/app/controllers/logis_controller.rb 2009-10-23 22:36:19 UTC (rev 1622)
@@ -21,7 +21,7 @@
before_filter :resolve_context, :page_name,
:except => [:check]
before_filter :find_logi_and_logi_version,
- : [:show, :edit, :remove, :update, :destroy, :toolbar_help]
+ : [:show, :edit, :update, :destroy]
### Constants
@@ -332,21 +332,28 @@
@selected = "comments_on"
elsif @logi.home_page?
@selected = "home_page"
+ elsif !@logi.steps.empty?
+ @selected = "paths"
else
@selected = "contending_logis"
end
end
- self.contending_logis
+ self.side_menu_selected
end
- def contending_logis
+ def side_menu_selected
+ if @selected == "paths"
+ @path = @logi.steps.first.path
+ end
render_ajax_body :partial => 'side_menu.html.erb', :locals => {
:selected => @selected}
end
- alias :home_page :contending_logis
- alias :comments_on :contending_logis
- alias :incoming_links :contending_logis
+ alias :contending_logis :side_menu_selected
+ alias :home_page :side_menu_selected
+ alias :comments_on :side_menu_selected
+ alias :incoming_links :side_menu_selected
+ alias :paths :side_menu_selected
def activity
case @logi.kind
Added: trunk/app/controllers/paths_controller.rb
===================================================================
--- trunk/app/controllers/paths_controller.rb (rev 0)
+++ trunk/app/controllers/paths_controller.rb 2009-10-23 22:36:19 UTC (rev 1622)
@@ -0,0 +1,50 @@
+#--#
+# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...>
+#
+# License:
+# This file is part of the LogiLogi program. LogiLogi is Free Software.
+# You can run/distribute/modify LogiLogi under the terms of the GNU Affero
+# General Public License version 3. The Affero GPL states that running a
+# modified version or a derivative work also requires you to make the source
+# code of that work available to everyone that can interact with it. We
+# chose the Affero GPL to ensure that LogiLogi remains open and libre
+# (doc/LICENSE contains the full text of the legally binding license).
+#++#
+
+class PathsController < ApplicationController
+ ### Filters
+
+ before_filter :find,
+ : [:show, :destroy]
+
+ ### REST-methods
+
+ def show
+ respond_to do |format|
+ format.xml { render :xml => @path }
+ end
+ end
+
+ def create
+ path = Path.new(:user => current_user)
+
+ if !current_user.anonymous? and path.save
+ render :xml => path, :status => :created,
+ :location => path
+ else
+ render :xml => path.errors, :status => :unprocessable_entity
+ end
+ end
+
+ def destroy
+ @path.destroy
+
+ head :ok
+ end
+
+ ### Filter-functions
+
+ def find
+ @path = Path.find_by_id(params[:id])
+ end
+end
Added: trunk/app/controllers/steps_controller.rb
===================================================================
--- trunk/app/controllers/steps_controller.rb (rev 0)
+++ trunk/app/controllers/steps_controller.rb 2009-10-23 22:36:19 UTC (rev 1622)
@@ -0,0 +1,35 @@
+#--#
+# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...>
+#
+# License:
+# This file is part of the LogiLogi program. LogiLogi is Free Software.
+# You can run/distribute/modify LogiLogi under the terms of the GNU Affero
+# General Public License version 3. The Affero GPL states that running a
+# modified version or a derivative work also requires you to make the source
+# code of that work available to everyone that can interact with it. We
+# chose the Affero GPL to ensure that LogiLogi remains open and libre
+# (doc/LICENSE contains the full text of the legally binding license).
+#++#
+
+class StepsController < ApplicationController
+ ### REST-methods
+
+ def create
+ s_params = params[:step].dup
+ if s_params[:logi_link]
+ l = Link.new_from_s(s_params.delete(:logi_link))
+ l.resolve
+ s_params[:logi] = l.to_logi
+ end
+ s_params[:path] = Path.find_by_id(s_params[:path][:id])
+
+ step = Step.new(s_params)
+
+ if !current_user.anonymous? and step.save
+ render :xml => step, :status => :created,
+ :location => step
+ else
+ render :xml => step.errors, :status => :unprocessable_entity
+ end
+ end
+end
Modified: trunk/app/helpers/application_helper.rb
===================================================================
--- trunk/app/helpers/application_helper.rb 2009-10-21 21:55:28 UTC (rev 1621)
+++ trunk/app/helpers/application_helper.rb 2009-10-23 22:36:19 UTC (rev 1622)
@@ -95,7 +95,10 @@
:description => _("Logis competing for the same tags")},
{:text => _("In Reply to"), :name => "comments_on",
:description => _("This logi replies to the following logis"),
- :disabled => logi.comments_on_logis.empty?}])
+ :disabled => logi.comments_on_logis.empty?},
+ {:text => _("Path"), :name => "paths",
+ :description => _("This logi is part of a read-path"),
+ :disabled => logi.steps.empty?}])
end
tabs.concat([
Modified: trunk/app/models/logi.rb
===================================================================
--- trunk/app/models/logi.rb 2009-10-21 21:55:28 UTC (rev 1621)
+++ trunk/app/models/logi.rb 2009-10-23 22:36:19 UTC (rev 1622)
@@ -331,7 +331,7 @@
# Returns a smaller version of the current snippet.
#
def current_tiny_snippet
- return self.current_snippet[0..150]
+ return LogiVersion.chop_body(self.current_snippet, 150)
end
# Returns all things that are inserted in this logi.
Modified: trunk/app/views/layouts/_foot.html.erb
===================================================================
--- trunk/app/views/layouts/_foot.html.erb 2009-10-21 21:55:28 UTC (rev 1621)
+++ trunk/app/views/layouts/_foot.html.erb 2009-10-23 22:36:19 UTC (rev 1622)
@@ -13,6 +13,8 @@
'corner_size' : 16});
mcorners.add('div.side_column div.logi_current', {
'image' : 'logi_current.svg', 'corner_size' : 32});
+ mcorners.add('div.side_column div.step_current', {
+ 'image' : 'logi_current.svg', 'corner_size' : 32});
mcorners.add('div.border_panel', {
'corner_size' : 16});
mcorners.add('div.secondary_border_panel', {
Modified: trunk/app/views/logis/_list.html.erb
===================================================================
--- trunk/app/views/logis/_list.html.erb 2009-10-21 21:55:28 UTC (rev 1621)
+++ trunk/app/views/logis/_list.html.erb 2009-10-23 22:36:19 UTC (rev 1622)
@@ -1,5 +1,4 @@
<% logis[0...3].each do |logi| %>
- <% logi_version = logi.current_logi_version %>
<% if current_logi == logi %>
<div class="logi logi_current snippet">
<div class="panel_content_padding">
Added: trunk/app/views/logis/_paths.html.erb
===================================================================
--- trunk/app/views/logis/_paths.html.erb (rev 0)
+++ trunk/app/views/logis/_paths.html.erb 2009-10-23 22:36:19 UTC (rev 1622)
@@ -0,0 +1,7 @@
+<div id="contenders_padding">
+ <div class="path">
+ <%= render :partial => 'steps', :locals => {:steps => @path.steps,
+ :current_logi => @logi} %>
+ </div>
+ <div class="spacer"></div>
+</div>
Modified: trunk/app/views/logis/_side_menu.html.erb
===================================================================
--- trunk/app/views/logis/_side_menu.html.erb 2009-10-21 21:55:28 UTC (rev 1621)
+++ trunk/app/views/logis/_side_menu.html.erb 2009-10-23 22:36:19 UTC (rev 1622)
@@ -6,14 +6,17 @@
<% render :layout => 'application/panel_with_tabs_ajax', :locals => {
:tabs => tabs, :selected => selected, :id => "contenders",
:update_selected => true} do %>
- <% if selected == "home_page" %>
+ <% case selected
+ when "home_page" %>
<%= render :partial => 'home_page', :locals => {
:contender_logis => current_context.contending_logis} %>
- <% elsif selected == "contending_logis"%>
+ <% when "contending_logis"%>
<%= render :partial => 'contending_logis', :locals => {
:contender_logis => current_context.contending_logis} %>
- <% elsif selected == "comments_on"%>
+ <% when "comments_on"%>
<%= render :partial => 'comments_on' %>
+ <% when "paths"%>
+ <%= render :partial => 'paths' %>
<% else %>
<div class="panel_content_padding">
<%= render :partial => "incoming_links", :locals => {
Added: trunk/app/views/logis/_steps.html.erb
===================================================================
--- trunk/app/views/logis/_steps.html.erb (rev 0)
+++ trunk/app/views/logis/_steps.html.erb 2009-10-23 22:36:19 UTC (rev 1622)
@@ -0,0 +1,18 @@
+<% steps.each do |step| %>
+ <% if current_logi == step.logi %>
+ <div class="step step_current">
+ <div class="panel_content_padding">
+ <div class="level<%= step.level %>">
+ <%= logi_ll_link(step.logi, :show => :title, :length => 28) %>
+ </div>
+ <div class="spacer"></div>
+ </div>
+ </div>
+ <% else %>
+ <div class="step">
+ <div class="level<%= step.level %>">
+ <%= logi_ll_link(step.logi, :show => :title, :length => 28) %>
+ </div>
+ </div>
+ <% end %>
+<% end %>
Modified: trunk/config/routes.rb
===================================================================
--- trunk/config/routes.rb 2009-10-21 21:55:28 UTC (rev 1621)
+++ trunk/config/routes.rb 2009-10-23 22:36:19 UTC (rev 1622)
@@ -40,7 +40,7 @@
:requirements => { :ll_link_string => /.*/ }
map.resources :users, :peer_group_admin_memberships, :peer_group_memberships,
:user_groups, :prefs_profiles, :invitations, :votes, :remarks, :comments, :links,
- :ratings,
+ :ratings, :paths, :steps,
:path_prefix => 'do'
map.resources :peer_groups,
:path_prefix => 'do', :has_many => :invitations, :shallow => true
Modified: trunk/public/images/logi_current.svg
===================================================================
--- trunk/public/images/logi_current.svg 2009-10-21 21:55:28 UTC (rev 1621)
+++ trunk/public/images/logi_current.svg 2009-10-23 22:36:19 UTC (rev 1622)
@@ -9,7 +9,7 @@
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="600"
- height="250"
+ height="400"
id="svg3408"
sodipodi:version="0.32"
inkscape:version="0.46"
@@ -36,16 +36,16 @@
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="2.8"
- inkscape:cx="7.4994602"
- inkscape:cy="59.137498"
+ inkscape:zoom="0.49497475"
+ inkscape:cx="378.51359"
+ inkscape:cy="-4.3343864"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1270"
- inkscape:window-height="949"
- inkscape:window-x="0"
- inkscape:window-y="21" />
+ inkscape:window-height="689"
+ inkscape:window-x="50"
+ inkscape:window-y="27" />
<metadata
id="metadata3413">
<rdf:RDF>
@@ -63,23 +63,23 @@
id="layer1">
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
- d="M 22.223355,20.027858 L 20.20305,231.47461 C 3.4092641,233.76003 3.5412179,251.18367 3.3903409,251.19364 L -5.3033015,251.76777 L -7.8286825,-0.93280778 L 2.7112706,-1.1285743 C 3.0846784,-1.1355099 0.47131877,13.672814 22.223355,20.027858 z"
+ d="M 22.223355,20.027858 L 20.20305,381.47461 C 3.4092641,383.76003 3.5412183,401.18368 3.3903409,401.19364 L -5.3033015,401.76777 L -7.8286825,-0.93280778 L 2.7112706,-1.1285743 C 3.0846784,-1.1355099 0.47131877,13.672814 22.223355,20.027858 z"
id="rect4229"
sodipodi:nodetypes="ccsccsc" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:#55679e;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
- d="M 17.999999,18 L 582,18 C 590.864,18 598,25.136001 598,34.000002 L 598,216 C 598,224.864 590.864,232 582,232 L 17.999999,232"
+ d="M 17.999999,18 L 582,18 C 590.864,18 598,25.136001 598,34.000002 L 598,366 C 598,374.864 590.864,382 582,382 L 17.999999,382"
id="rect4199"
sodipodi:nodetypes="cccccc" />
<path
- style="fill:none;fill-opacity:1;stroke:#55679e;stroke-width:3.99999951999999981;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
- d="M 3.0714284,251.01015 L 3.0714284,248 C 3.0714284,239.136 10.207428,232 19.071428,232 L 482,232"
+ style="fill:none;fill-opacity:1;stroke:#55679e;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3.0714284,401.01 L 3.0714284,397.99985 C 3.0714284,389.13585 10.207428,381.99985 19.071428,381.99985 L 482,381.99985"
id="rect4201"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
id="path4207"
d="M 3.0714284,-1.5152288 L 3.0714284,2 C 3.0714284,10.864 10.207428,18 19.071428,18 L 482,18"
- style="fill:none;fill-opacity:1;stroke:#55679e;stroke-width:3.99999951999999981;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ style="fill:none;fill-opacity:1;stroke:#55679e;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
</g>
</svg>
Modified: trunk/public/stylesheets/logilogi.css
===================================================================
--- trunk/public/stylesheets/logilogi.css 2009-10-21 21:55:28 UTC (rev 1621)
+++ trunk/public/stylesheets/logilogi.css 2009-10-23 22:36:19 UTC (rev 1622)
@@ -201,7 +201,8 @@
white-space: nowrap;
display: block;
}
-.logi_current .content_padding {
+.logi_current .content_padding,
+.step_current .content_padding {
display: block;
}
.border_panel .panel_content_padding,
@@ -253,6 +254,23 @@
padding-left: 0.2em;
list-style: none;
}
+.panel div.step div.level1,
+.panel div.step div.level2 {
+ font-family: "Times New Roman", Times, serif;
+ line-height: 1em;
+}
+.panel div.step div.level1 {
+ padding-left: 0.5em;
+ font-size: 1.8em;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+}
+.panel div.step div.level2 {
+ padding-left: 1.5em;
+ font-size: 1.4em;
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+}
/* panels with tabs */
@@ -754,10 +772,20 @@
height: 7em;
margin: -16px 0px -0.4em -18px;
}
+#paths .step_current {
+ padding: 20px 0 20px 2.6em;
+ height: 2.6em;
+ margin: -20px 0px -18px -30px;
+}
#home_page .logi_current .panel_content_padding,
#contending_logis .logi_current .panel_content_padding {
padding-right: 1.2em;
}
+#paths .step .panel_content_padding {
+ padding-top: 0em;
+ padding-bottom: 0.3em;
+ padding-left: 0em;
+}
#home_page .logi .author,
#contending_logis .logi .author {
padding: 0 0 0 0;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-21 21:55:40
|
Revision: 1621
http://logilogi.svn.sourceforge.net/logilogi/?rev=1621&view=rev
Author: wybow
Date: 2009-10-21 21:55:28 +0000 (Wed, 21 Oct 2009)
Log Message:
-----------
Added DH-sem,
Modified Paths:
--------------
docs/bibliography/logilogi.bib
Added Paths:
-----------
docs/abstracts/DHSem09/
docs/abstracts/DHSem09/abstract.txt
Removed Paths:
-------------
docs/abstracts/ECAP09/
docs/ui-designs/UI.svg
docs/ui-designs/UI_proposal_A.svg
docs/ui-designs/UI_proposal_B.svg
docs/ui-designs/UI_proposal_B_editing.svg
docs/ui-designs/UI_proposal_C.svg
docs/ui-designs/UI_proposal_D.svg
docs/ui-designs/UI_proposal_D_editing.svg
docs/ui-designs/UI_proposal_D_editing_softblues.svg
docs/ui-designs/UI_proposal_D_editing_wizzard_softblues.svg
docs/ui-designs/UI_proposal_D_greens.svg
docs/ui-designs/UI_proposal_D_main_softblues.svg
docs/ui-designs/UI_proposal_D_softblues.svg
docs/ui-designs/UI_proposal_D_softblues_better_edit.svg
docs/ui-designs/UI_proposal_D_softblues_better_edit_simple.svg
docs/ui-designs/UI_proposal_D_softcolors.svg
docs/ui-designs/UI_proposal_Mix_Blue.svg
docs/ui-designs/UI_proposal_Mix_Green.svg
docs/ui-designs/UI_proposal_Tags.svg
docs/ui-designs/UI_proposal_Tags2_Logi_View.svg
docs/ui-designs/UI_proposal_Tags2_Search_View.svg
docs/ui-designs/UI_proposal_Tags3_Search_View.svg
docs/ui-designs/UI_proposal_lattice_tags.svg
docs/ui-designs/tag_browsing_draft.svg
Added: docs/abstracts/DHSem09/abstract.txt
===================================================================
--- docs/abstracts/DHSem09/abstract.txt (rev 0)
+++ docs/abstracts/DHSem09/abstract.txt 2009-10-21 21:55:28 UTC (rev 1621)
@@ -0,0 +1,28 @@
+Wybo Wiersma, LogiLogi: Philosophy beyond the Paper
+
+LogiLogi tries to find an informal middle-road between good
+conversations and journal-papers by providing a form of quick,
+informal publication, peer-review, and annotation of short texts.
+
+It is intended for all those ideas that one cannot turn into a
+full sized paper, but that one deem too interesting to leave to
+the winds.
+
+It does not make use of forum-threads (avoiding their many
+problems), but of tags and links that can also be added to texts
+by others than the original author. And it features a rating-
+system modeled after Journal-based-review, in which well-rated
+texts earn authors more voting-power.
+
+LogiLogi is Free Software, has been under development by between
+2 and 10 people for 3 years, and a public beta is already online
+and fully functional at www.LogiLogi.org.
+
+In the presentation I will explain what LogiLogi is, elaborate on
+some of the ideas & design-choices behind it & hope to inspire
+some discussion and constructive criticism.
+
+For more information on LogiLogi see:
+http://www.logilogi.org/pub/beyond/paper.pdf
+or:
+http://en.logilogi.org/Logi_Logi=Admin_User_4
Modified: docs/bibliography/logilogi.bib
===================================================================
--- docs/bibliography/logilogi.bib 2009-10-20 22:55:40 UTC (rev 1620)
+++ docs/bibliography/logilogi.bib 2009-10-21 21:55:28 UTC (rev 1621)
@@ -144,4 +144,33 @@
\url{http://www.logilogi.org}"
)
+@inproceedings(wiersma_two_2009,
+ title = {Two Scholarly {Web-Agoras:} The {LogiLogi} and {Talia/Philospace} Approaches},
+ booktitle = {{ECAP} 2009 Abstract},
+ author = {Wybo Wiersma and S. David},
+ year = {2009}
+ )
+
+@inproceedings(wiersma_logilogi:_2008,
+ title = {{LogiLogi:} Combining Openness and Quality of Content},
+ booktitle = {{FKFT} 2008 Proceedings},
+ author = {Wybo Wiersma and M. Lezama},
+ year = {2008}
+ )
+
+@inproceedings(wiersma_logilogi:webplatform_2008,
+ title = {{LogiLogi:} A Webplatform for Philosophers},
+ booktitle = {Digital Humanities 2008 Book of Abstracts},
+ author = {Wybo Wiersma and B. Sarlo},
+ year = {2008},
+ pages = {221--222}
+ )
+
+@misc(wiersma_logilogi:beyond_2009:,
+ title = {LogiLogi: Philosophy beyond the Book},
+ author = {Wybo Wiersma},
+ howpublished = "\url{http://www.logilogi.org/pub/beyond/paper.pdf},
+ \url{http://en.logilogi.org/Logi_Logi/Beyond_Paper/ Introduction=Wybo_Wiersma_84}"
+ )
+
\end{thebibliography}
Deleted: docs/ui-designs/UI.svg
===================================================================
--- docs/ui-designs/UI.svg 2009-10-20 22:55:40 UTC (rev 1620)
+++ docs/ui-designs/UI.svg 2009-10-21 21:55:28 UTC (rev 1621)
@@ -1,1455 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="1024"
- height="1500"
- id="svg2"
- sodipodi:version="0.32"
- inkscape:version="0.46"
- sodipodi:docname="UI.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape"
- version="1.0"
- style="display:inline">
- <defs
- id="defs4">
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- id="perspective10" />
- <inkscape:perspective
- id="perspective2390"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 526.18109 : 1"
- sodipodi:type="inkscape:persp3d" />
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3409">
- <path
- sodipodi:nodetypes="ccccccc"
- id="path3411"
- d="M -7.4966469,198.3577 L 428.98283,198.3577 C 435.41851,198.3577 440.59958,203.53877 440.59958,209.97445 L 440.59958,219.41193 C 387.4854,219.41193 10.601626,219.41193 -19.113401,219.41193 L -19.113401,209.97445 C -19.113401,203.53877 -13.932329,198.3577 -7.4966469,198.3577 z"
- style="fill:#ccccff;fill-opacity:1;stroke:#ccccff;stroke-width:1.15899312;stroke-opacity:1" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3413">
- <path
- sodipodi:nodetypes="ccccccc"
- id="path3415"
- d="M -7.4966469,198.3577 L 428.98283,198.3577 C 435.41851,198.3577 440.59958,203.53877 440.59958,209.97445 L 440.59958,219.41193 C 387.4854,219.41193 10.601626,219.41193 -19.113401,219.41193 L -19.113401,209.97445 C -19.113401,203.53877 -13.932329,198.3577 -7.4966469,198.3577 z"
- style="fill:#ccccff;fill-opacity:1;stroke:#ccccff;stroke-width:1.15899312;stroke-opacity:1" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3417">
- <path
- sodipodi:nodetypes="ccccccc"
- id="path3419"
- d="M -7.4966469,198.3577 L 428.98283,198.3577 C 435.41851,198.3577 440.59958,203.53877 440.59958,209.97445 L 440.59958,219.41193 C 387.4854,219.41193 10.601626,219.41193 -19.113401,219.41193 L -19.113401,209.97445 C -19.113401,203.53877 -13.932329,198.3577 -7.4966469,198.3577 z"
- style="fill:#ccccff;fill-opacity:1;stroke:#ccccff;stroke-width:1.15899312;stroke-opacity:1" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3421">
- <path
- sodipodi:nodetypes="ccccccc"
- id="path3423"
- d="M -7.4966469,198.3577 L 428.98283,198.3577 C 435.41851,198.3577 440.59958,203.53877 440.59958,209.97445 L 440.59958,219.41193 C 387.4854,219.41193 10.601626,219.41193 -19.113401,219.41193 L -19.113401,209.97445 C -19.113401,203.53877 -13.932329,198.3577 -7.4966469,198.3577 z"
- style="fill:#ccccff;fill-opacity:1;stroke:#ccccff;stroke-width:1.15899312;stroke-opacity:1" />
- </clipPath>
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3425">
- <path
- sodipodi:nodetypes="ccccccc"
- id="path3427"
- d="M -7.4966469,198.3577 L 428.98283,198.3577 C 435.41851,198.3577 440.59958,203.53877 440.59958,209.97445 L 440.59958,219.41193 C 387.4854,219.41193 10.601626,219.41193 -19.113401,219.41193 L -19.113401,209.97445 C -19.113401,203.53877 -13.932329,198.3577 -7.4966469,198.3577 z"
- style="fill:#ccccff;fill-opacity:1;stroke:#ccccff;stroke-width:1.15899312;stroke-opacity:1" />
- </clipPath>
- <inkscape:perspective
- id="perspective4001"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 526.18109 : 1"
- sodipodi:type="inkscape:persp3d" />
- <clipPath
- clipPathUnits="userSpaceOnUse"
- id="clipPath3494">
- <rect
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect3496"
- width="1309.1577"
- height="499.58966"
- x="-157.5838"
- y="550.7522"
- rx="16.033583"
- ry="18.249851" />
- </clipPath>
- <style
- type="text/css"
- id="style2435">
-
- .str0 {stroke:#000000;stroke-width:3}
- .fil1 {fill:none}
- .fil2 {fill:#0039F0}
- .fil0 {fill:#FFFF00}
-
- </style>
- <marker
- markerUnits="strokeWidth"
- refX="10"
- refY="5"
- markerWidth="4"
- markerHeight="3"
- orient="auto"
- viewBox="0 0 10 10"
- id="ArrowStart">
- <path
- d="M 10,0 L 0,5 L 10,10 L 10,0 z"
- id="path553" />
- </marker>
- <marker
- markerUnits="strokeWidth"
- refX="0"
- refY="5"
- markerWidth="4"
- markerHeight="3"
- orient="auto"
- viewBox="0 0 10 10"
- id="ArrowEnd">
- <path
- d="M 0,0 L 10,5 L 0,10 L 0,0 z"
- id="path551" />
- </marker>
- <inkscape:perspective
- id="perspective4193"
- inkscape:persp3d-origin="375 : 166.66667 : 1"
- inkscape:vp_z="750 : 250 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 250 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4899"
- inkscape:persp3d-origin="450 : 200 : 1"
- inkscape:vp_z="900 : 300 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 300 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4919"
- inkscape:persp3d-origin="500 : 200 : 1"
- inkscape:vp_z="1000 : 300 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 300 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4941"
- inkscape:persp3d-origin="750 : 333.33333 : 1"
- inkscape:vp_z="1500 : 500 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 500 : 1"
- sodipodi:type="inkscape:persp3d" />
- <clipPath
- id="border">
- <rect
- id="rect4953"
- height="15"
- width="30"
- y="-7.5"
- x="-15" />
- </clipPath>
- <inkscape:perspective
- id="perspective4967"
- inkscape:persp3d-origin="600 : 200 : 1"
- inkscape:vp_z="1200 : 300 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 300 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective4992"
- inkscape:persp3d-origin="450 : 200 : 1"
- inkscape:vp_z="900 : 300 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 300 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3349"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 526.18109 : 1"
- sodipodi:type="inkscape:persp3d" />
- <inkscape:perspective
- id="perspective3366"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 526.18109 : 1"
- sodipodi:type="inkscape:persp3d" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.9899495"
- inkscape:cx="536.43197"
- inkscape:cy="1202.8606"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- inkscape:window-width="1142"
- inkscape:window-height="753"
- inkscape:window-x="0"
- inkscape:window-y="25"
- showguides="true"
- inkscape:guide-bbox="true">
- <sodipodi:guide
- orientation="1,0"
- position="-132.32998,825.29463"
- id="guide3601" />
- </sodipodi:namedview>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:groupmode="layer"
- id="layer2"
- inkscape:label="screenshots"
- style="opacity:1;display:inline" />
- <g
- inkscape:label="Capa 1"
- inkscape:groupmode="layer"
- id="layer1"
- style="opacity:1;display:inline">
- <text
- xml:space="preserve"
- style="font-size:31.40777587999999900px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Georgia;-inkscape-font-specification:Georgia"
- x="101.54983"
- y="288.12784"
- id="text3449"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3451"
- x="101.54983"
- y="288.12784">Wellcome to LogiLogi</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="97.282082"
- y="311.0784"
- id="text3453"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3455"
- x="97.282082"
- y="311.0784"><tspan
- style="font-style:italic;-inkscape-font-specification:Lucida Sans Unicode Italic;fill:#b3b3b3"
- id="tspan3457">by</tspan><tspan
- style="fill:#b3b3b3"
- id="tspan7845">:</tspan> BRUNO SARLO</tspan></text>
- <g
- id="g3562"
- style="opacity:1"
- transform="translate(58.588848,16.162441)">
- <path
- transform="matrix(0.7887243,0,0,0.7887243,69.088645,67.476571)"
- d="M 292.14285,277.36219 L 294.45201,282.04105 L 299.61544,282.79134 L 295.87915,286.43333 L 296.76117,291.57589 L 292.14285,289.1479 L 287.52454,291.57589 L 288.40656,286.43333 L 284.67027,282.79134 L 289.8337,282.04105 L 292.14285,277.36219 z"
- inkscape:randomized="0"
- inkscape:rounded="0"
- inkscape:flatsided="false"
- sodipodi:arg2="-0.9424778"
- sodipodi:arg1="-1.5707963"
- sodipodi:r2="3.9285715"
- sodipodi:r1="7.8571429"
- sodipodi:cy="285.21933"
- sodipodi:cx="292.14285"
- sodipodi:sides="5"
- id="path3459"
- style="fill:#e0eaf3;fill-opacity:1;stroke:#bdcfdb;stroke-opacity:1;display:inline"
- sodipodi:type="star" />
- <path
- sodipodi:type="star"
- style="fill:#e0eaf3;fill-opacity:1;stroke:#bdcfdb;stroke-opacity:1;display:inline"
- id="path3461"
- sodipodi:sides="5"
- sodipodi:cx="292.14285"
- sodipodi:cy="285.21933"
- sodipodi:r1="7.8571429"
- sodipodi:r2="3.9285715"
- sodipodi:arg1="-1.5707963"
- sodipodi:arg2="-0.9424778"
- inkscape:flatsided="false"
- inkscape:rounded="0"
- inkscape:randomized="0"
- d="M 292.14285,277.36219 L 294.45201,282.04105 L 299.61544,282.79134 L 295.87915,286.43333 L 296.76117,291.57589 L 292.14285,289.1479 L 287.52454,291.57589 L 288.40656,286.43333 L 284.67027,282.79134 L 289.8337,282.04105 L 292.14285,277.36219 z"
- transform="matrix(0.7887243,0,0,0.7887243,83.017216,67.476571)" />
- <path
- transform="matrix(0.7887243,0,0,0.7887243,96.58865,67.476571)"
- d="M 292.14285,277.36219 L 294.45201,282.04105 L 299.61544,282.79134 L 295.87915,286.43333 L 296.76117,291.57589 L 292.14285,289.1479 L 287.52454,291.57589 L 288.40656,286.43333 L 284.67027,282.79134 L 289.8337,282.04105 L 292.14285,277.36219 z"
- inkscape:randomized="0"
- inkscape:rounded="0"
- inkscape:flatsided="false"
- sodipodi:arg2="-0.9424778"
- sodipodi:arg1="-1.5707963"
- sodipodi:r2="3.9285715"
- sodipodi:r1="7.8571429"
- sodipodi:cy="285.21933"
- sodipodi:cx="292.14285"
- sodipodi:sides="5"
- id="path3463"
- style="fill:#e0eaf3;fill-opacity:1;stroke:#bdcfdb;stroke-opacity:1;display:inline"
- sodipodi:type="star" />
- <path
- sodipodi:type="star"
- style="fill:#e0eaf3;fill-opacity:1;stroke:#bdcfdb;stroke-opacity:1;display:inline"
- id="path3465"
- sodipodi:sides="5"
- sodipodi:cx="292.14285"
- sodipodi:cy="285.21933"
- sodipodi:r1="7.8571429"
- sodipodi:r2="3.9285715"
- sodipodi:arg1="-1.5707963"
- sodipodi:arg2="-0.9424778"
- inkscape:flatsided="false"
- inkscape:rounded="0"
- inkscape:randomized="0"
- d="M 292.14285,277.36219 L 294.45201,282.04105 L 299.61544,282.79134 L 295.87915,286.43333 L 296.76117,291.57589 L 292.14285,289.1479 L 287.52454,291.57589 L 288.40656,286.43333 L 284.67027,282.79134 L 289.8337,282.04105 L 292.14285,277.36219 z"
- transform="matrix(0.7887243,0,0,0.7887243,110.87436,67.476571)" />
- <path
- transform="matrix(0.7887243,0,0,0.7887243,125.16007,67.476571)"
- d="M 292.14285,277.36219 L 294.45201,282.04105 L 299.61544,282.79134 L 295.87915,286.43333 L 296.76117,291.57589 L 292.14285,289.1479 L 287.52454,291.57589 L 288.40656,286.43333 L 284.67027,282.79134 L 289.8337,282.04105 L 292.14285,277.36219 z"
- inkscape:randomized="0"
- inkscape:rounded="0"
- inkscape:flatsided="false"
- sodipodi:arg2="-0.9424778"
- sodipodi:arg1="-1.5707963"
- sodipodi:r2="3.9285715"
- sodipodi:r1="7.8571429"
- sodipodi:cy="285.21933"
- sodipodi:cx="292.14285"
- sodipodi:sides="5"
- id="path3467"
- style="fill:#e0eaf3;fill-opacity:1;stroke:#bdcfdb;stroke-opacity:1;display:inline"
- sodipodi:type="star" />
- <text
- sodipodi:linespacing="125%"
- id="text3469"
- y="296.89865"
- x="266.19324"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="296.89865"
- x="266.19324"
- id="tspan3471"
- sodipodi:role="line">X</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="280.83609"
- y="296.89865"
- id="text3473"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3475"
- x="280.83609"
- y="296.89865">X</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3477"
- y="296.5415"
- x="366.19324"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="296.5415"
- x="366.19324"
- id="tspan3479"
- sodipodi:role="line">-</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="377.97894"
- y="295.47003"
- id="text3481"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3483"
- x="377.97894"
- y="295.47003">power:</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3485"
- y="295.47003"
- x="426.90753"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#b47c11;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="295.47003"
- x="426.90753"
- id="tspan3487"
- sodipodi:role="line">~</tspan></text>
- </g>
- <path
- style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline"
- d="M 39.424945,318.93552 L 498.71066,318.93552"
- id="path3489" />
- <rect
- style="opacity:1;fill:#d4fdd6;fill-opacity:1;stroke:#ccccff;stroke-width:2.69644189;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
- id="rect2406"
- width="1033.2274"
- height="68.99424"
- x="-4.6973085"
- y="20.245247"
- ry="0"
- rx="0" />
- <text
- xml:space="preserve"
- style="font-size:40.29371262000000100px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="107.86503"
- y="73.469093"
- id="text2428"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan2430"
- x="107.86503"
- y="73.469093">es.LogiLogi.org</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:12.99183464000000000px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#a196b0;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="249.53621"
- y="14.268367"
- id="text2432"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan2434"
- x="249.53621"
- y="14.268367">Part of the LogiLogi Network: The LogiLogi Foundation - LogiLogi.org - OgOg.org</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:15.28222656000000000px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode Italic"
- x="393.79553"
- y="42.180653"
- id="text2458"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan2460"
- x="393.79553"
- y="42.180653">Public Beta</tspan></text>
- <path
- style="opacity:1;fill:#e7e7f3;fill-opacity:1;stroke:none;display:inline"
- d="M 998.65737,90.097707 L 998.65737,174.44546 C 998.65737,183.39945 991.44893,190.6079 982.49493,190.6079 L 44.063438,190.6079 C 35.109446,190.6079 27.900997,183.39945 27.900997,174.44546 L 27.900997,90.097707 C 124.13125,90.097707 935.45088,90.097707 998.65737,90.097707 z"
- id="rect2404"
- sodipodi:nodetypes="ccccccc" />
- <g
- inkscape:transform-center-y="48.571429"
- inkscape:transform-center-x="-25.714286"
- id="g3412"
- style="opacity:1;display:inline"
- transform="translate(116.23941,-9.993458)">
- <rect
- ry="4.8087382"
- rx="4.8087382"
- y="145.17203"
- x="73.671303"
- height="18.571428"
- width="65.892853"
- id="rect3414"
- style="opacity:1;fill:#ccffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
- <text
- sodipodi:linespacing="125%"
- id="text3416"
- y="158.53946"
- x="77.885483"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="158.53946"
- x="77.885483"
- id="tspan3418"
- sodipodi:role="line">Logi Logi</tspan></text>
- </g>
- <text
- xml:space="preserve"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="39.538067"
- y="117.85659"
- id="text3241"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3243"
- x="39.538067"
- y="117.85659">Search:</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="38.507607"
- y="148.68655"
- id="text3245"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3247"
- x="38.507607"
- y="148.68655">Searched for:</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="38.760143"
- y="177.96069"
- id="text3249"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3251"
- x="38.760143"
- y="177.96069">Found result:</tspan></text>
- <g
- inkscape:transform-center-y="48.571429"
- inkscape:transform-center-x="-25.714286"
- id="g3420"
- style="opacity:1;display:inline"
- transform="translate(56.775128,17.863685)">
- <g
- id="g3428">
- <rect
- style="opacity:1;fill:#ccffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="rect3422"
- width="65.892853"
- height="18.571428"
- x="73.671303"
- y="145.17203"
- rx="4.8087382"
- ry="4.8087382" />
- <text
- xml:space="preserve"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="77.885483"
- y="158.53946"
- id="text3424"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3426"
- x="77.885483"
- y="158.53946">Logi Logi</tspan></text>
- </g>
- </g>
- <text
- xml:space="preserve"
- style="font-size:13px;font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode Italic"
- x="134.97717"
- y="148.68655"
- id="text3257"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3259"
- x="134.97717"
- y="148.68655">content:</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="217.05208"
- y="146.41371"
- id="text3265"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3267"
- x="217.05208"
- y="146.41371"> </tspan></text>
- <rect
- style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ccccff;stroke-opacity:1;display:inline"
- id="rect2456"
- width="459.61942"
- height="21.213203"
- x="131.96703"
- y="102.04729" />
- <text
- xml:space="preserve"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="138.73306"
- y="117.45625"
- id="text3269"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3271"
- x="138.73306"
- y="117.45625">Logi_Logi</tspan></text>
- <g
- style="opacity:1"
- id="g3677"
- transform="translate(58.588848,16.162441)">
- <g
- id="g3756">
- <rect
- style="opacity:1;fill:#d4d0c8;fill-opacity:1;stroke:#ccccff;stroke-opacity:1;display:inline"
- id="rect3237"
- width="34.345188"
- height="22.223356"
- x="537.52301"
- y="85.046951" />
- <text
- sodipodi:linespacing="125%"
- id="text3669"
- y="100.6879"
- x="546.4682"
- style="font-size:15.43288612px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="100.6879"
- x="546.4682"
- id="tspan3671"
- sodipodi:role="line">go</tspan></text>
- </g>
- </g>
- <g
- style="opacity:1"
- id="g3751"
- transform="translate(58.588848,18.162441)">
- <rect
- y="83.531708"
- x="579.42401"
- height="23.233509"
- width="62.629459"
- id="rect3239"
- style="fill:#d4d0c8;fill-opacity:1;stroke:#ccccff;stroke-opacity:1;display:inline" />
- <text
- sodipodi:linespacing="125%"
- id="text3673"
- y="100.6879"
- x="585.86414"
- style="font-size:15.43288612px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="100.6879"
- x="585.86414"
- id="tspan3675"
- sodipodi:role="line">search</tspan></text>
- </g>
- <g
- id="g3607"
- style="opacity:1"
- transform="translate(58.588848,16.162441)">
- <path
- sodipodi:nodetypes="ccccccc"
- id="rect3273"
- d="M -7.3748357,198.7686 L 429.10464,198.7686 C 435.54032,198.7686 440.72139,203.94967 440.72139,210.38535 L 440.72139,219.82283 C 387.60721,219.82283 10.723437,219.82283 -18.99159,219.82283 L -18.99159,210.38535 C -18.99159,203.94967 -13.810518,198.7686 -7.3748357,198.7686 z"
- style="opacity:1;fill:#e7e7f3;fill-opacity:1;stroke:none;stroke-width:1.15899312000000010;stroke-opacity:1;display:inline" />
- <rect
- transform="matrix(1.0000019,0,0,0.9984886,0.1214402,0.7108217)"
- clip-path="url(#clipPath3425)"
- y="196.42865"
- x="-9.4257107"
- height="25.038565"
- width="65.444702"
- id="rect3293"
- style="opacity:1;fill:#e7e7ff;fill-opacity:1;stroke:#cccccc;stroke-width:1.08893895;stroke-opacity:1;display:inline" />
- <rect
- mask="none"
- transform="matrix(1.0000019,0,0,0.9984886,0.1214402,0.7108217)"
- clip-path="url(#clipPath3421)"
- style="opacity:1;fill:#e7e7ff;fill-opacity:1;stroke:#cccccc;stroke-width:1.22655308;stroke-opacity:1;display:inline"
- id="rect3295"
- width="83.489838"
- height="24.900951"
- x="142.16597"
- y="196.49745" />
- <rect
- transform="matrix(1.0000019,0,0,0.9984886,0.1214402,0.7108217)"
- clip-path="url(#clipPath3417)"
- y="196.39708"
- x="234.49455"
- height="25.101685"
- width="57.931683"
- id="rect3297"
- style="opacity:1;fill:#e7e7ff;fill-opacity:1;stroke:#cccccc;stroke-width:1.02581978;stroke-opacity:1;display:inline" />
- <rect
- transform="matrix(1.0000019,0,0,0.9984886,0.1214402,0.7108217)"
- clip-path="url(#clipPath3413)"
- style="opacity:1;fill:#e7e7ff;fill-opacity:1;stroke:#cccccc;stroke-width:0.84386295;stroke-opacity:1;display:inline"
- id="rect3299"
- width="38.920742"
- height="25.283642"
- x="301.07364"
- y="196.30611" />
- <rect
- transform="matrix(1.0000019,0,0,0.9984886,0.1214402,0.7108217)"
- clip-path="url(#clipPath3409)"
- y="196.36566"
- x="348.10532"
- height="25.16453"
- width="50.923462"
- id="rect3301"
- style="opacity:1;fill:#e7e7ff;fill-opacity:1;stroke:#cccccc;stroke-width:0.96297479;stroke-opacity:1;display:inline" />
- <text
- sodipodi:linespacing="125%"
- id="text3429"
- y="214.41595"
- x="-3.8067598"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="214.41595"
- x="-3.8067598"
- id="tspan3431"
- sodipodi:role="line">new logi</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="149.40752"
- y="214.41595"
- id="text3433"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3435"
- x="149.40752"
- y="214.41595">+comment</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3437"
- y="214.41595"
- x="241.19324"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="214.41595"
- x="241.19324"
- id="tspan3439"
- sodipodi:role="line">history</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="307.97897"
- y="214.41595"
- id="text3441"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3443"
- x="307.97897"
- y="214.41595">edit</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3445"
- y="214.41595"
- x="355.47897"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="214.41595"
- x="355.47897"
- id="tspan3447"
- sodipodi:role="line">show</tspan></text>
- </g>
- <g
- id="g3649"
- style="opacity:1"
- transform="translate(58.588848,16.162441)">
- <path
- sodipodi:nodetypes="ccccccc"
- id="rect2413"
- d="M 457.07316,44.074493 L 515.86071,44.074493 C 523.40158,44.074493 529.47239,50.145302 529.47239,57.686171 L 529.47239,71.369635 C 498.51412,71.369635 465.13132,71.369635 443.46148,71.369635 L 443.46148,57.686171 C 443.46148,50.145302 449.53229,44.074493 457.07316,44.074493 z"
- style="opacity:1;fill:#bfe3fd;fill-opacity:1;stroke:none;display:inline" />
- <path
- style="opacity:1;fill:#bfe3fd;fill-opacity:1;stroke:none;display:inline"
- d="M 548.32316,44.074493 L 579.61071,44.074493 C 587.15158,44.074493 593.22239,50.145302 593.22239,57.686171 L 593.22239,71.369635 C 562.26412,71.369635 556.38132,71.369635 534.71148,71.369635 L 534.71148,57.686171 C 534.71148,50.145302 540.78229,44.074493 548.32316,44.074493 z"
- id="path2418"
- sodipodi:nodetypes="ccccccc" />
- <path
- sodipodi:nodetypes="ccccccc"
- id="path2420"
- d="M 802.96602,44.200762 L 864.74351,44.200762 C 872.28438,44.200762 878.35519,50.271571 878.35519,57.81244 L 878.35519,71.495904 C 847.39692,71.495904 811.02418,71.495904 789.35434,71.495904 L 789.35434,57.81244 C 789.35434,50.271571 795.42515,44.200762 802.96602,44.200762 z"
- style="opacity:1;fill:#bfe3fd;fill-opacity:1;stroke:none;display:inline" />
- <path
- style="opacity:1;fill:#bfe3fd;fill-opacity:1;stroke:none;display:inline"
- d="M 896.91021,44.200762 L 927.12043,44.200762 C 934.6613,44.200762 940.73211,50.271571 940.73211,57.81244 L 940.73211,71.495904 C 909.77384,71.495904 904.96837,71.495904 883.29853,71.495904 L 883.29853,57.81244 C 883.29853,50.271571 889.36934,44.200762 896.91021,44.200762 z"
- id="path2422"
- sodipodi:nodetypes="ccccccc" />
- <path
- sodipodi:nodetypes="ccccccc"
- id="path2424"
- d="M 612.46785,44.074493 L 697.79856,44.074493 C 705.33943,44.074493 711.41024,50.145302 711.41024,57.686171 L 711.41024,71.369635 C 680.45197,71.369635 620.52601,71.369635 598.85617,71.369635 L 598.85617,57.686171 C 598.85617,50.145302 604.92698,44.074493 612.46785,44.074493 z"
- style="opacity:1;fill:#bfe3fd;fill-opacity:1;stroke:none;display:inline" />
- <path
- style="opacity:1;fill:#bfe3fd;fill-opacity:1;stroke:none;display:inline"
- d="M 731.16077,44.074493 L 770.52954,44.074493 C 778.07041,44.074493 784.14122,50.145302 784.14122,57.686171 L 784.14122,71.369635 C 753.18295,71.369635 739.21893,71.369635 717.54909,71.369635 L 717.54909,57.686171 C 717.54909,50.145302 723.6199,44.074493 731.16077,44.074493 z"
- id="path2426"
- sodipodi:nodetypes="ccccccc" />
- <text
- sodipodi:linespacing="125%"
- id="text3625"
- y="64.432991"
- x="456.08389"
- style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="64.432991"
- x="456.08389"
- id="tspan3627"
- sodipodi:role="line">changes</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="548.00775"
- y="64.432991"
- id="text3629"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3631"
- x="548.00775"
- y="64.432991">tags</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3633"
- y="64.432991"
- x="612.15247"
- style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="64.432991"
- x="612.15247"
- id="tspan3635"
- sodipodi:role="line">peer groups</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="731.35046"
- y="64.432991"
- id="text3637"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3639"
- x="731.35046"
- y="64.432991">users</tspan></text>
- <text
- sodipodi:linespacing="125%"
- id="text3641"
- y="64.432991"
- x="802.56622"
- style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="64.432991"
- x="802.56622"
- id="tspan3643"
- sodipodi:role="line">sandbox</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="895.50024"
- y="64.432991"
- id="text3645"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3647"
- x="895.50024"
- y="64.432991">help</tspan></text>
- </g>
- <g
- id="g3781"
- style="opacity:1;display:inline"
- transform="translate(58.588848,16.162441)">
- <rect
- ry="16.162441"
- rx="16.0704"
- y="198.6891"
- x="704.95581"
- height="199.50513"
- width="220.46579"
- id="rect2398"
- style="opacity:1;fill:#f6f1de;fill-opacity:1;stroke:none;display:inline" />
- <text
- sodipodi:linespacing="120%"
- id="text3720"
- y="304.31714"
- x="722.61743"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477000000000%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="304.31714"
- x="722.61743"
- id="tspan3722"
- sodipodi:role="line">Signup for a new account</tspan></text>
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:#ccccff;stroke-width:0.58508402000000004;stroke-opacity:1;display:inline"
- id="rect3687"
- width="154.32004"
- height="21.628119"
- x="719.83325"
- y="268.30951" />
- <g
- transform="translate(340.94825,182.63212)"
- id="g3689"
- style="opacity:1;display:inline">
- <rect
- y="85.046951"
- x="537.52301"
- height="22.223356"
- width="31.845188"
- id="rect3691"
- style="opacity:1;fill:#d4d0c8;fill-opacity:1;stroke:#ccccff;stroke-opacity:1;display:inline" />
- <text
- xml:space="preserve"
- style="font-size:13.55018711px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="544.95667"
- y="101.25762"
- id="text3693"
- sodipodi:linespacing="125%"><tspan
- id="tspan3744"
- sodipodi:role="line"
- x="544.95667"
- y="101.25762">Go</tspan></text>
- </g>
- <text
- sodipodi:linespacing="125%"
- id="text3699"
- y="227.21855"
- x="744.28375"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#cf5808;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Georgia;-inkscape-font-specification:Georgia"
- xml:space="preserve"><tspan
- y="227.21855"
- x="744.28375"
- id="tspan3701"
- sodipodi:role="line"><tspan
- id="tspan3703"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#cf5808;fill-opacity:1;font-family:Georgia;-inkscape-font-specification:Georgia">LogiLogi</tspan></tspan></text>
- <path
- id="path3707"
- d="M 718.92857,234.50504 L 912.5,234.50504"
- style="opacity:1;fill:#666666;fill-rule:evenodd;stroke:#808080;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
- <text
- sodipodi:linespacing="100%"
- id="text3709"
- y="227.21855"
- x="718.86188"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#446c27;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Georgia;-inkscape-font-specification:Georgia Bold"
- xml:space="preserve"><tspan
- y="227.21855"
- x="718.86188"
- id="tspan3711"
- sodipodi:role="line">My</tspan></text>
- <text
- sodipodi:linespacing="120%"
- id="text3716"
- y="262.42291"
- x="719.22858"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477000000000%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#cf5808;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="262.42291"
- x="719.22858"
- id="tspan3718"
- sodipodi:role="line">OpenID Login</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477000000000%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#cf5808;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="719.22858"
- y="332.12344"
- id="text3724"
- sodipodi:linespacing="120%"><tspan
- sodipodi:role="line"
- id="tspan3726"
- x="719.22858"
- y="332.12344">Quick Select</tspan></text>
- <text
- sodipodi:linespacing="120%"
- id="text3728"
- y="357.12473"
- x="719.22858"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477000000000%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#aaaaaa;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="357.12473"
- x="719.22858"
- id="tspan3730"
- sodipodi:role="line">Peergroup:</tspan></text>
- <g
- id="g3761">
- <text
- sodipodi:linespacing="120%"
- id="text3732"
- y="381.05328"
- x="719.22858"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477000000000%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#aaaaaa;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="381.05328"
- x="719.22858"
- id="tspan3734"
- sodipodi:role="line">Your voting power is:</tspan></text>
- <text
- sodipodi:linespacing="120%"
- id="text3736"
- y="380.8985"
- x="857.82843"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:120.00000477000000000%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#cf5808;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Georgia;-inkscape-font-specification:Georgia Bold"
- xml:space="preserve"><tspan
- y="380.8985"
- x="857.82843"
- id="tspan3738"
- sodipodi:role="line">0.1</tspan></text>
- </g>
- <g
- id="g3812">
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:#ccccff;stroke-width:0.49527695999999999;stroke-opacity:1;display:inline"
- id="rect3771"
- width="110.12413"
- height="21.717926"
- x="790.14545"
- y="342.19318" />
- <text
- sodipodi:linespacing="120%"
- id="text3773"
- y="357.14108"
- x="796.06024"
- style="font-size:12.09476662000000000px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477000000000%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#aaaaaa;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- xml:space="preserve"><tspan
- y="357.14108"
- x="796.06024"
- id="tspan3775"
- sodipodi:role="line">General</tspan></text>
- <path
- sodipodi:type="star"
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
- id="path3779"
- sodipodi:sides="3"
- sodipodi:cx="886.60712"
- sodipodi:cy="351.82648"
- sodipodi:r1="3.7669685"
- sodipodi:r2="1.8834842"
- sodipodi:arg1="1.5707963"
- sodipodi:arg2="2.6179939"
- inkscape:flatsided="false"
- inkscape:rounded="0"
- inkscape:randomized="0"
- d="M 886.60712,355.59345 L 884.97597,352.76822 L 883.34483,349.94299 L 886.60712,349.94299 L 889.86941,349.94299 L 888.23826,352.76822 L 886.60712,355.59345 z"
- transform="matrix(0.9175889,0,0,0.9175889,75.29937,29.339858)" />
- </g>
- </g>
- <g
- id="g14171">
- <rect
- style="fill:#f6f1de;fill-opacity:1;stroke:none;display:inline"
- id="rect3820"
- width="219.20311"
- height="100.944"
- x="528.71051"
- y="215.85141"
- rx="16.162441"
- ry="16.162441" />
- <text
- xml:space="preserve"
- style="font-size:13px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;fill:#326ea1;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Lucida Sans Unicode;-inkscape-font-specification:Lucida Sans Unicode"
- x="547.63483"
- y="299.05103"
- id="text3822"
- sodipodi:linespacing="120%"><tspan
- sodipodi:role="line"
- id="tspan3824"
- x="547.63483"
- y="299.05103">Eduard Edison</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#cf5808;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Georgia;-inkscape-font-specification:Georgia"
- x="649.30115"
- y="243.381"
- id="text3836"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan3838"
- x="649.30115"
- y="243.381">Logis<tspan
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#cf5808;fill-opacity:1;font-family:Georgia;-inkscape-font-specification:Georgia"
- id="tspan3840" /></tspan></text>
- <path
- style="fill:#666666;fill-rule:evenodd;stroke:#808080;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 543.94598,250.66748 L 737.51741,250.66748"
- id="path3842" />
- <text
- xml:space="preserve"
- style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:...
[truncated message content] |
|
From: <wy...@us...> - 2009-10-20 22:55:47
|
Revision: 1620
http://logilogi.svn.sourceforge.net/logilogi/?rev=1620&view=rev
Author: wybow
Date: 2009-10-20 22:55:40 +0000 (Tue, 20 Oct 2009)
Log Message:
-----------
Fixed problem in daemons & added rudimentary paths
Modified Paths:
--------------
trunk/app/models/logi.rb
trunk/app/models/user.rb
trunk/db/schema.rb
trunk/lib/daemons/logilogi.rb
trunk/lib/tasks/daemons.rake
trunk/test/unit/user_test.rb
Added Paths:
-----------
trunk/app/models/path.rb
trunk/app/models/step.rb
trunk/db/migrate/20091019213633_add_paths.rb
trunk/test/fixtures/paths.yml
trunk/test/fixtures/steps.yml
trunk/test/unit/path_test.rb
trunk/test/unit/step_test.rb
Modified: trunk/app/models/logi.rb
===================================================================
--- trunk/app/models/logi.rb 2009-10-19 21:35:55 UTC (rev 1619)
+++ trunk/app/models/logi.rb 2009-10-20 22:55:40 UTC (rev 1620)
@@ -80,6 +80,7 @@
has_many :remarks, :dependent => :destroy,
:extend => InsertPositionRangeListExtensionModule
# Getting the position-ranges
+ has_many :steps, :dependent => :destroy
tags_strings nil
# see TagsStringsModule for tags and tags_string
Added: trunk/app/models/path.rb
===================================================================
--- trunk/app/models/path.rb (rev 0)
+++ trunk/app/models/path.rb 2009-10-20 22:55:40 UTC (rev 1620)
@@ -0,0 +1,22 @@
+#--#
+# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...>
+#
+# License:
+# This file is part of the LogiLogi program. LogiLogi is Free Software.
+# You can run/distribute/modify LogiLogi under the terms of the GNU Affero
+# General Public License version 3. The Affero GPL states that running a
+# modified version or a derivative work also requires you to make the source
+# code of that work available to everyone that can interact with it. We
+# chose the Affero GPL to ensure that LogiLogi remains open and libre
+# (doc/LICENSE contains the full text of the legally binding license).
+#++#
+#
+# Trails create read-paths through logis
+
+class Path < ActiveRecord::Base
+ ### Relationships
+
+ belongs_to :user
+ has_many :steps, :order => :position, :dependent => :destroy
+ has_many :logis, :through => :steps
+end
Added: trunk/app/models/step.rb
===================================================================
--- trunk/app/models/step.rb (rev 0)
+++ trunk/app/models/step.rb 2009-10-20 22:55:40 UTC (rev 1620)
@@ -0,0 +1,41 @@
+#--#
+# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...>
+#
+# License:
+# This file is part of the LogiLogi program. LogiLogi is Free Software.
+# You can run/distribute/modify LogiLogi under the terms of the GNU Affero
+# General Public License version 3. The Affero GPL states that running a
+# modified version or a derivative work also requires you to make the source
+# code of that work available to everyone that can interact with it. We
+# chose the Affero GPL to ensure that LogiLogi remains open and libre
+# (doc/LICENSE contains the full text of the legally binding license).
+#++#
+#
+# Steps link Logis to Trails
+
+class Step < ActiveRecord::Base
+ ### Relationships
+
+ belongs_to :path
+ belongs_to :logi
+
+ ### Validations
+
+ validates_uniqueness_of :logi_id, :scope => :path_id
+
+ ### Acts as
+
+ acts_as_list :scope => :path
+
+ ### Filters
+
+ after_destroy :destroy_empty_path
+
+ ### Filter-functions
+
+ def destroy_empty_path
+ if self.path.steps.count == 0
+ self.path.destroy
+ end
+ end
+end
Modified: trunk/app/models/user.rb
===================================================================
--- trunk/app/models/user.rb 2009-10-19 21:35:55 UTC (rev 1619)
+++ trunk/app/models/user.rb 2009-10-20 22:55:40 UTC (rev 1620)
@@ -36,6 +36,7 @@
has_many :prefs_profiles, :dependent => :destroy
has_many :commentings
has_many :links
+ has_many :paths
has_many :user_group_memberships, :dependent => :destroy
has_many :peer_group_memberships, :dependent => :destroy
has_many :created_logis, :class_name => 'Logi',
@@ -279,6 +280,10 @@
logi_version.editor = User.anonymous
logi_version.save
end
+ self.paths.each do |path|
+ path.user = User.anonymous
+ path.save
+ end
return true
end
Added: trunk/db/migrate/20091019213633_add_paths.rb
===================================================================
--- trunk/db/migrate/20091019213633_add_paths.rb (rev 0)
+++ trunk/db/migrate/20091019213633_add_paths.rb 2009-10-20 22:55:40 UTC (rev 1620)
@@ -0,0 +1,18 @@
+class AddPaths < ActiveRecord::Migration
+ def self.up
+ create_table "paths", :force => true do |t|
+ t.references :user, :null => false
+ t.datetime :created_at, :null => false
+ end
+
+ create_table "steps", :force => true do |t|
+ t.references :path, :null => false
+ t.references :logi, :null => false
+ t.integer :level, :default => 1, :null => false
+ t.integer :position, :null => false
+ end
+ end
+
+ def self.down
+ end
+end
Modified: trunk/db/schema.rb
===================================================================
--- trunk/db/schema.rb 2009-10-19 21:35:55 UTC (rev 1619)
+++ trunk/db/schema.rb 2009-10-20 22:55:40 UTC (rev 1620)
@@ -9,7 +9,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20091005232423) do
+ActiveRecord::Schema.define(:version => 20091019213633) do
create_table "acts_as_xapian_jobs", :force => true do |t|
t.string "model", :null => false
@@ -166,6 +166,11 @@
t.string "salt", :null => false
end
+ create_table "paths", :force => true do |t|
+ t.integer "user_id", :null => false
+ t.datetime "created_at", :null => false
+ end
+
create_table "peer_group_memberships", :force => true do |t|
t.integer "peer_group_id", :null => false
t.integer "user_id", :null => false
@@ -224,6 +229,13 @@
add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id"
add_index "sessions", ["updated_at"], :name => "index_sessions_on_updated_at"
+ create_table "steps", :force => true do |t|
+ t.integer "path_id", :null => false
+ t.integer "logi_id", :null => false
+ t.integer "level", :default => 1, :null => false
+ t.integer "position", :null => false
+ end
+
create_table "used_tags", :force => true do |t|
t.string "string", :limit => 80, :null => false
t.integer "use_count", :default => 0, :null => false
Modified: trunk/lib/daemons/logilogi.rb
===================================================================
--- trunk/lib/daemons/logilogi.rb 2009-10-19 21:35:55 UTC (rev 1619)
+++ trunk/lib/daemons/logilogi.rb 2009-10-20 22:55:40 UTC (rev 1620)
@@ -29,12 +29,12 @@
" nice -n 17 rake daemons:run:constant RAILS_ENV=" + RAILS_ENV
if Time.now.hour > 3 and Time.now.hour < 6
- if done_daily == false
+ if $done_daily == false
trapped_system "cd #{File.dirname(__FILE__)}/../..;" +
" nice -n 17 rake daemons:run:daily RAILS_ENV=" + RAILS_ENV
$done_daily = true
end
-# if Time.now.wday == 0 and done_weekly == false
+# if Time.now.wday == 0 and $done_weekly == false
# trapped_system "cd #{File.dirname(__FILE__)}/../..;" +
# " nice -n 17 rake daemons:run:weekly RAILS_ENV=" + RAILS_ENV
# $done_weekly = true
Modified: trunk/lib/tasks/daemons.rake
===================================================================
--- trunk/lib/tasks/daemons.rake 2009-10-19 21:35:55 UTC (rev 1619)
+++ trunk/lib/tasks/daemons.rake 2009-10-20 22:55:40 UTC (rev 1620)
@@ -21,7 +21,8 @@
namespace :run do
desc "Does a set of re-indexings, called by daemon"
task :constant => :environment do
- ActiveRecord::Base.logger.add(Logger::INFO, "Constantly running at #{Time.now}.\n")
+ ActiveRecord::Base.logger.auto_flushing = true
+ ActiveRecord::Base.logger.info "Constantly running at #{Time.now}.\n"
500.times do
exit if !$drunning
@@ -35,7 +36,8 @@
desc "Daily run, devaluates weights, called by daemon"
task :daily => :environment do
- ActiveRecord::Base.logger.add(Logger::INFO, "Daily started at #{Time.now}.\n")
+ ActiveRecord::Base.logger.auto_flushing = true
+ ActiveRecord::Base.logger.info "Daily started at #{Time.now}.\n"
Rating.devaluate_weights(GlobalConfig.daily_fraction)
@@ -46,18 +48,19 @@
LogLogSubscription.send_out_alerts('daily')
end
- ActiveRecord::Base.logger.add(Logger::INFO, "Daily finished at #{Time.now}.\n")
+ ActiveRecord::Base.logger.info "Daily finished at #{Time.now}.\n"
end
desc "Weekly run, sends out alerts, called by daemon"
task :weekly => :environment do
- ActiveRecord::Base.logger.add(Logger::INFO, "Weekly started at #{Time.now}.\n")
+ ActiveRecord::Base.logger.auto_flushing = true
+ ActiveRecord::Base.logger.info "Weekly started at #{Time.now}.\n"
if GlobalConfig.use_log_log
LogLogSubscription.send_out_alerts('weekly')
end
- ActiveRecord::Base.logger.add(Logger::INFO, "Weekly finished at #{Time.now}.\n")
+ ActiveRecord::Base.logger.info "Weekly finished at #{Time.now}.\n"
end
end
end
Added: trunk/test/fixtures/paths.yml
===================================================================
--- trunk/test/fixtures/paths.yml (rev 0)
+++ trunk/test/fixtures/paths.yml 2009-10-20 22:55:40 UTC (rev 1620)
@@ -0,0 +1,3 @@
+history:
+ user: john_johnson
+ created_at: <%= 1.day.ago.to_s(:db) %>
Added: trunk/test/fixtures/steps.yml
===================================================================
--- trunk/test/fixtures/steps.yml (rev 0)
+++ trunk/test/fixtures/steps.yml 2009-10-20 22:55:40 UTC (rev 1620)
@@ -0,0 +1,15 @@
+history_1:
+ path: history
+ logi: michel_foucault_politics_medieval_peter_abelard_economics
+ level: 1
+ position: 1
+history_2:
+ path: history
+ logi: peter_abelard_botanics
+ level: 2
+ position: 2
+history_3:
+ path: history
+ logi: medieval_economics_politics
+ level: 2
+ position: 3
Added: trunk/test/unit/path_test.rb
===================================================================
--- trunk/test/unit/path_test.rb (rev 0)
+++ trunk/test/unit/path_test.rb 2009-10-20 22:55:40 UTC (rev 1620)
@@ -0,0 +1,22 @@
+#--#
+# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...>
+#
+# License:
+# This file is part of the LogiLogi program. LogiLogi is Free Software.
+# You can run/distribute/modify LogiLogi under the terms of the GNU Affero
+# General Public License version 3. The Affero GPL states that running a
+# modified version or a derivative work also requires you to make the source
+# code of that work available to everyone that can interact with it. We
+# chose the Affero GPL to ensure that LogiLogi remains open and libre
+# (doc/LICENSE contains the full text of the legally binding license).
+#++#
+
+require File.dirname(__FILE__) + '/../test_helper'
+
+class PathTest < ActiveSupport::TestCase
+ fixtures :all
+
+ def test_true
+ assert true
+ end
+end
Added: trunk/test/unit/step_test.rb
===================================================================
--- trunk/test/unit/step_test.rb (rev 0)
+++ trunk/test/unit/step_test.rb 2009-10-20 22:55:40 UTC (rev 1620)
@@ -0,0 +1,31 @@
+#--#
+# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...>
+#
+# License:
+# This file is part of the LogiLogi program. LogiLogi is Free Software.
+# You can run/distribute/modify LogiLogi under the terms of the GNU Affero
+# General Public License version 3. The Affero GPL states that running a
+# modified version or a derivative work also requires you to make the source
+# code of that work available to everyone that can interact with it. We
+# chose the Affero GPL to ensure that LogiLogi remains open and libre
+# (doc/LICENSE contains the full text of the legally binding license).
+#++#
+
+require File.dirname(__FILE__) + '/../test_helper'
+
+class StepTest < ActiveSupport::TestCase
+ fixtures :all
+
+ def test_destroy_path
+ t_id = paths(:history)
+ s1 = steps(:history_1)
+ s2 = steps(:history_2)
+ s3 = steps(:history_3)
+
+ s1.destroy
+ s2.destroy
+ assert Path.find_by_id(t_id)
+ s3.destroy
+ assert !Path.find_by_id(t_id)
+ end
+end
Modified: trunk/test/unit/user_test.rb
===================================================================
--- trunk/test/unit/user_test.rb 2009-10-19 21:35:55 UTC (rev 1619)
+++ trunk/test/unit/user_test.rb 2009-10-20 22:55:40 UTC (rev 1620)
@@ -179,6 +179,8 @@
assert [], Logi.find_by_creator_user_id(nil)
assert [], LogiVersion.find_by_editor_user_id(u.id)
assert [], LogiVersion.find_by_editor_user_id(nil)
+ assert [], Trail.find_by_user_id(u.id)
+ assert [], Trail.find_by_user_id(nil)
l = Logi.find(l_id)
assert_equal User.anonymous, l.creator
end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-19 21:36:11
|
Revision: 1619
http://logilogi.svn.sourceforge.net/logilogi/?rev=1619&view=rev
Author: wybow
Date: 2009-10-19 21:35:55 +0000 (Mon, 19 Oct 2009)
Log Message:
-----------
Updated tools
Modified Paths:
--------------
tools/b-rex/b-rex
tools/t-llre/t-llre
Modified: tools/b-rex/b-rex
===================================================================
--- tools/b-rex/b-rex 2009-10-19 21:01:12 UTC (rev 1618)
+++ tools/b-rex/b-rex 2009-10-19 21:35:55 UTC (rev 1619)
@@ -55,7 +55,8 @@
# == Requirements
# Ruby (inc rdoc, not included in Debian & Ubuntu, needs ruby and rdoc
# packages there), Latex beamer, and a working TeX Live (the texlive
-# and latex-beamer packages are all you need on Ubuntu)
+# texlive-latex-extra, and latex-beamer packages are all you need on
+# Ubuntu)
#
# == Copyright
# Copyright (c) 2007 The LogiLogi Foundation. Licensed under the
@@ -196,7 +197,8 @@
"pdflatex #{processed_head}",
"pdflatex #{processed_head}",
"mv #{processed_head}.pdf #{to_pdf_file}",
- "rm #{processed_head}.*"
+ "rm -f #{processed_head}.*",
+ "rm -f #{processed_head}-blx.*"
].each do |action|
system "cd #{BASE_PATH}; #{action}"
end
Modified: tools/t-llre/t-llre
===================================================================
--- tools/t-llre/t-llre 2009-10-19 21:01:12 UTC (rev 1618)
+++ tools/t-llre/t-llre 2009-10-19 21:35:55 UTC (rev 1619)
@@ -241,14 +241,17 @@
def replace_latex(text, link)
text.gsub!(/^%.*\n/, "")
+ text.gsub!("\\_", "_")
text.gsub!("---", "-")
text.gsub!("\\dots", "...")
text.gsub!("\\ldots", "...")
text.gsub!("\\'{e}", "é")
text.gsub!("\\`{e}", "è")
+ text.gsub!("\\c{c}", "ç")
text.gsub!("\\$", "$")
text.gsub!("\\%", "%")
text.gsub!("\\&", "&")
+ text.gsub!("\\bigskip", "")
text.gsub!("\\begin{quote}", "")
text.gsub!("\\end{quote}", "")
text.gsub!("\\textsterling", "£")
@@ -257,7 +260,10 @@
text.gsub!(/\\\w*ref\{.*?\}/m, "")
text.gsub!(/\\\w*cite\w*((\[.*?\])?\{.*?\})+/m, "")
text.gsub!(/\{\\it``\s*(.*?)''\}/m, "<em>\"\\1\"</em>")
+ text.gsub!(/\{\\em(.*?)\}/m, "<em>\"\\1\"</em>")
+ text.gsub!(/\\emph\{(.*?)\}/m, "<em>\"\\1\"</em>")
text.gsub!(/\\textit\{(.*?)\}/m, "<em>\"\\1\"</em>")
+ text.gsub!(/\\textsf\{(.*?)\}/m, "<em>\"\\1\"</em>")
text.gsub!(/\{\\it\s*(.*?)\}/m, "<em>\\1</em>")
if text =~ /\\[^\s].*\n/
match = $~
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-19 21:01:18
|
Revision: 1618
http://logilogi.svn.sourceforge.net/logilogi/?rev=1618&view=rev
Author: wybow
Date: 2009-10-19 21:01:12 +0000 (Mon, 19 Oct 2009)
Log Message:
-----------
Made daily
Modified Paths:
--------------
trunk/lib/tasks/daemons.rake
Modified: trunk/lib/tasks/daemons.rake
===================================================================
--- trunk/lib/tasks/daemons.rake 2009-10-19 20:48:58 UTC (rev 1617)
+++ trunk/lib/tasks/daemons.rake 2009-10-19 21:01:12 UTC (rev 1618)
@@ -43,7 +43,7 @@
PeerGroupMembership.drop_the_powerless
if GlobalConfig.use_log_log
- LogLogSubscription.send_out_daily_alerts
+ LogLogSubscription.send_out_alerts('daily')
end
ActiveRecord::Base.logger.add(Logger::INFO, "Daily finished at #{Time.now}.\n")
@@ -54,7 +54,7 @@
ActiveRecord::Base.logger.add(Logger::INFO, "Weekly started at #{Time.now}.\n")
if GlobalConfig.use_log_log
- LogLogSubscription.send_out_weekly_alerts
+ LogLogSubscription.send_out_alerts('weekly')
end
ActiveRecord::Base.logger.add(Logger::INFO, "Weekly finished at #{Time.now}.\n")
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-19 20:49:05
|
Revision: 1617
http://logilogi.svn.sourceforge.net/logilogi/?rev=1617&view=rev
Author: wybow
Date: 2009-10-19 20:48:58 +0000 (Mon, 19 Oct 2009)
Log Message:
-----------
Fixed daemons & made alerts daily
Modified Paths:
--------------
trunk/app/models/log_log_subscription.rb
trunk/lib/daemons/logilogi.rb
trunk/lib/daemons/logilogi_ctl
trunk/lib/tasks/daemons.rake
Modified: trunk/app/models/log_log_subscription.rb
===================================================================
--- trunk/app/models/log_log_subscription.rb 2009-10-19 20:13:22 UTC (rev 1616)
+++ trunk/app/models/log_log_subscription.rb 2009-10-19 20:48:58 UTC (rev 1617)
@@ -18,14 +18,15 @@
# self.element_name = "message"
# end
- def self.send_out_weekly_alerts
+ def self.send_out_alerts(period)
User.find_each do |user|
- url = URI.parse(GlobalConfig.log_log_site + "/channels/for_" + user.unix_name + "/periods/weekly.txt")
+ url = URI.parse(GlobalConfig.log_log_site +
+ "/channels/for_" + user.unix_name + "/periods/" + period + ".txt")
begin
page = Net::HTTP.get_response(url)
periodical = page.body
if periodical =~ /[^\s]/
- Notifier.deliver_for_log(user, 'Weekly', periodical)
+ Notifier.deliver_for_log(user, period.camelize, periodical)
end
rescue
end
Modified: trunk/lib/daemons/logilogi.rb
===================================================================
--- trunk/lib/daemons/logilogi.rb 2009-10-19 20:13:22 UTC (rev 1616)
+++ trunk/lib/daemons/logilogi.rb 2009-10-19 20:48:58 UTC (rev 1617)
@@ -34,11 +34,11 @@
" nice -n 17 rake daemons:run:daily RAILS_ENV=" + RAILS_ENV
$done_daily = true
end
- if Time.now.wday == 0 and done_weekly == false
- trapped_system "cd #{File.dirname(__FILE__)}/../..;" +
- " nice -n 17 rake daemons:run:weekly RAILS_ENV=" + RAILS_ENV
- $done_weekly = true
- end
+# if Time.now.wday == 0 and done_weekly == false
+# trapped_system "cd #{File.dirname(__FILE__)}/../..;" +
+# " nice -n 17 rake daemons:run:weekly RAILS_ENV=" + RAILS_ENV
+# $done_weekly = true
+# end
else
$done_daily = false
$done_weekly = false
Modified: trunk/lib/daemons/logilogi_ctl
===================================================================
--- trunk/lib/daemons/logilogi_ctl 2009-10-19 20:13:22 UTC (rev 1616)
+++ trunk/lib/daemons/logilogi_ctl 2009-10-19 20:48:58 UTC (rev 1617)
@@ -1,10 +1,9 @@
#!/usr/bin/env ruby
require 'rubygems'
-require 'active_support'
require "daemons"
require 'yaml'
require 'erb'
-#require File.dirname(__FILE__) + "/../../config/initializers/daemons.rb"
+require 'active_support'
options = YAML.load(
ERB.new(
Modified: trunk/lib/tasks/daemons.rake
===================================================================
--- trunk/lib/tasks/daemons.rake 2009-10-19 20:13:22 UTC (rev 1616)
+++ trunk/lib/tasks/daemons.rake 2009-10-19 20:48:58 UTC (rev 1617)
@@ -20,9 +20,7 @@
namespace :run do
desc "Does a set of re-indexings, called by daemon"
- task :constant do
- require "#{File.dirname(__FILE__)}/../../config/environment.rb"
-
+ task :constant => :environment do
ActiveRecord::Base.logger.add(Logger::INFO, "Constantly running at #{Time.now}.\n")
500.times do
exit if !$drunning
@@ -36,9 +34,7 @@
end
desc "Daily run, devaluates weights, called by daemon"
- task :daily do
- require "#{File.dirname(__FILE__)}/../../config/environment.rb"
-
+ task :daily => :environment do
ActiveRecord::Base.logger.add(Logger::INFO, "Daily started at #{Time.now}.\n")
Rating.devaluate_weights(GlobalConfig.daily_fraction)
@@ -46,13 +42,15 @@
PeerGroupMembership.recalculate_percentiles
PeerGroupMembership.drop_the_powerless
+ if GlobalConfig.use_log_log
+ LogLogSubscription.send_out_daily_alerts
+ end
+
ActiveRecord::Base.logger.add(Logger::INFO, "Daily finished at #{Time.now}.\n")
end
desc "Weekly run, sends out alerts, called by daemon"
- task :weekly do
- require "#{File.dirname(__FILE__)}/../../config/environment.rb"
-
+ task :weekly => :environment do
ActiveRecord::Base.logger.add(Logger::INFO, "Weekly started at #{Time.now}.\n")
if GlobalConfig.use_log_log
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-19 20:13:30
|
Revision: 1616
http://logilogi.svn.sourceforge.net/logilogi/?rev=1616&view=rev
Author: wybow
Date: 2009-10-19 20:13:22 +0000 (Mon, 19 Oct 2009)
Log Message:
-----------
Small fix in update
Modified Paths:
--------------
trunk/db/migrate/20091005232423_add_unix_names.rb
Modified: trunk/db/migrate/20091005232423_add_unix_names.rb
===================================================================
--- trunk/db/migrate/20091005232423_add_unix_names.rb 2009-10-19 20:02:37 UTC (rev 1615)
+++ trunk/db/migrate/20091005232423_add_unix_names.rb 2009-10-19 20:13:22 UTC (rev 1616)
@@ -18,7 +18,7 @@
user.save
end
PeerGroup.find(:all).each do |peer_group|
- user.set_unix_name
+ peer_group.set_unix_name
peer_group.save
end
end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-19 20:02:44
|
Revision: 1615
http://logilogi.svn.sourceforge.net/logilogi/?rev=1615&view=rev
Author: wybow
Date: 2009-10-19 20:02:37 +0000 (Mon, 19 Oct 2009)
Log Message:
-----------
Added new files for alert-system
Added Paths:
-----------
trunk/config/initializers/active_record.rb
trunk/db/migrate/20091005232423_add_unix_names.rb
trunk/lib/modules/unix_name_module.rb
Added: trunk/config/initializers/active_record.rb
===================================================================
--- trunk/config/initializers/active_record.rb (rev 0)
+++ trunk/config/initializers/active_record.rb 2009-10-19 20:02:37 UTC (rev 1615)
@@ -0,0 +1,24 @@
+#--#
+# Copyright: (c) 2007 The LogiLogi Foundation <fou...@lo...>
+#
+# License:
+# This file is part of the OgOg program. OgOg is Free Software. You can run/
+# distribute/modify OgOg under the terms of the GNU Affero General Public
+# License version 3. The Affero GPL states that running a modified version
+# or a derivative work also requires you to make the sourcecode of that work
+# available to everyone that can interact with it. We chose the Affero GPL
+# to ensure that OgOg remains open and libre (doc/LICENSE contains the
+# full text of the legally binding license).
+#++#
+
+# To provide end_form_tag for the rubaidh formbuilder
+module ActiveRecord
+ class Base
+ class << self
+ def exists?(id_or_conditions = {})
+ find_initial(
+ :conditions => expand_id_conditions(id_or_conditions)) ? true : false
+ end
+ end
+ end
+end
Added: trunk/db/migrate/20091005232423_add_unix_names.rb
===================================================================
--- trunk/db/migrate/20091005232423_add_unix_names.rb (rev 0)
+++ trunk/db/migrate/20091005232423_add_unix_names.rb 2009-10-19 20:02:37 UTC (rev 1615)
@@ -0,0 +1,25 @@
+class AddUnixNames < ActiveRecord::Migration
+ def self.up
+ add_column :users, :unix_name, :string, :null => false
+ add_column :peer_groups, :unix_name, :string, :null => false
+
+ if GlobalConfig.available?
+ AddUnixNames.update
+ end
+ end
+
+ def self.down
+ raise 'No way back'
+ end
+
+ def self.update
+ User.find(:all).each do |user|
+ user.set_unix_name
+ user.save
+ end
+ PeerGroup.find(:all).each do |peer_group|
+ user.set_unix_name
+ peer_group.save
+ end
+ end
+end
Added: trunk/lib/modules/unix_name_module.rb
===================================================================
--- trunk/lib/modules/unix_name_module.rb (rev 0)
+++ trunk/lib/modules/unix_name_module.rb 2009-10-19 20:02:37 UTC (rev 1615)
@@ -0,0 +1,41 @@
+#--#
+# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...>
+#
+# License:
+# This file is part of the LogiLogi program. LogiLogi is Free Software.
+# You can run/distribute/modify LogiLogi under the terms of the GNU Affero
+# General Public License version 3. The Affero GPL states that running a
+# modified version or a derivative work also requires you to make the source
+# code of that work available to everyone that can interact with it. We
+# chose the Affero GPL to ensure that LogiLogi remains open and libre
+# (doc/LICENSE contains the full text of the legally binding license).
+#++#
+
+module UnixNameModule
+ ### Class methods
+
+ module ClassMethods
+ def initialize_module
+ ### Validations
+
+ validates_uniqueness_of :unix_name
+ end
+ end
+
+ def self.included(base)
+ base.extend(ClassMethods)
+ base.send(:initialize_module)
+ end
+
+ ### Filter-functions
+
+ # sets the unix-name of the object, based on it's name.
+ #
+ def set_unix_name
+ begin
+ self.unix_name = self.name.downcase.gsub(/[\ .-]/,'_').gsub(/[^a-z_]/,'')
+ rescue
+ self.errors.add(:name, "not unique in reduced format")
+ end
+ end
+end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-19 19:58:18
|
Revision: 1614
http://logilogi.svn.sourceforge.net/logilogi/?rev=1614&view=rev
Author: wybow
Date: 2009-10-19 19:58:08 +0000 (Mon, 19 Oct 2009)
Log Message:
-----------
Improved alert-system & updated for Rails 2.3.4
Modified Paths:
--------------
trunk/app/models/commenting.rb
trunk/app/models/external_link.rb
trunk/app/models/link.rb
trunk/app/models/logi.rb
trunk/app/models/peer_group.rb
trunk/app/models/rating.rb
trunk/app/models/remark.rb
trunk/app/models/user.rb
trunk/app/models/vote.rb
trunk/app/views/logis/_commenting_logis.html.erb
trunk/app/views/logis/_tag_list.html.erb
trunk/config/environment.rb
trunk/db/schema.rb
trunk/lib/modules/cache_methods_module.rb
trunk/test/fixtures/peer_groups.yml
trunk/test/fixtures/users.yml
trunk/test/unit/user_test.rb
Modified: trunk/app/models/commenting.rb
===================================================================
--- trunk/app/models/commenting.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/commenting.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -20,6 +20,7 @@
### Filters
+ after_create :log_create_to_log_log
after_destroy :destroy_matching_link
### Validations
@@ -30,6 +31,33 @@
### Filter-functions
+ # Logs the link's creation to LogLog
+ #
+ def log_create_to_log_log
+ if GlobalConfig.use_log_log
+ # Has reply
+ m = LogLogMessage.new(
+ :kind => "Reply",
+ :channel_names => ['all',
+ 'for_' + self.from_logi.creator.unix_name].join(','),
+ :title => 'Received:' + self.to_logi.current_title,
+ :author => self.user.name,
+ :text => self.to_logi.current_snippet,
+ :url => GlobalConfig.site_url + self.to_logi.link.to_s)
+ m.save
+ # In reply to
+ m = LogLogMessage.new(
+ :kind => "Reply",
+ :channel_name =>
+ 'for_' + self.to_logi.creator.unix_name,
+ :title => 'To:' + self.from_logi.current_title,
+ :author => self.user.name,
+ :text => self.from_logi.current_snippet,
+ :url => GlobalConfig.site_url + self.from_logi.link.to_s)
+ m.save
+ end
+ end
+
# Destroys links from and to the same logi
#
def destroy_matching_link
Modified: trunk/app/models/external_link.rb
===================================================================
--- trunk/app/models/external_link.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/external_link.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -26,6 +26,7 @@
# after_initialize
before_validation_on_create :set_text_if_nil
before_validation :stringify_position_ranges
+ after_create :log_create_to_log_log
### Validations
@@ -73,6 +74,22 @@
end
end
+ # Logs the link's creation to LogLog
+ #
+ def log_create_to_log_log
+ if GlobalConfig.use_log_log
+ m = LogLogMessage.new(
+ :kind => "External Link",
+ :channel_names => ['all',
+ 'for_' + self.logi.creator.unix_name].join(','),
+ :title => 'In:' + self.logi.current_title,
+ :author => self.user.name,
+ :text => self.text + '\n' + self.url,
+ :url => GlobalConfig.site_url + self.logi.link.to_s)
+ m.save
+ end
+ end
+
### Validation-functions
protected
Modified: trunk/app/models/link.rb
===================================================================
--- trunk/app/models/link.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/link.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -98,6 +98,7 @@
before_validation :stringify_position_ranges,
:tags_strings_before_validation # see TagsStringsModule
after_destroy :destroy_matching_commenting
+ after_create :log_create_to_log_log
###### Cached Methods
@@ -913,6 +914,47 @@
end
end
+ # Logs the link's creation to LogLog
+ #
+ def log_create_to_log_log
+ if GlobalConfig.use_log_log
+ # Outgoing
+ m = LogLogMessage.new(
+ :kind => "Link",
+ :channel_names => ['all',
+ 'for_' + self.from_logi.creator.unix_name].join(','),
+ :title => 'Outgoing:' + self.from_logi.current_title,
+ :author => self.user.name,
+ :text => GlobalConfig.site_url + self.to_s,
+ :url => GlobalConfig.site_url + self.from_logi.link.to_s)
+ m.save
+ # Incoming
+ if self.to_logi
+ m = LogLogMessage.new(
+ :kind => "Link",
+ :channel_name =>
+ 'for_' + self.to_logi.creator.unix_name,
+ :title => 'Incoming:' + self.to_logi.current_title,
+ :author => self.user.name,
+ :text => GlobalConfig.site_url + self.to_s,
+ :url => GlobalConfig.site_url + self.to_logi.link.to_s)
+ m.save
+ else
+ self.matching_logis.each do |logi|
+ m = LogLogMessage.new(
+ :kind => "Link",
+ :channel_name =>
+ 'for_' + logi.creator.unix_name,
+ :title => 'Incoming:' + logi.current_title,
+ :author => self.user.name,
+ :text => GlobalConfig.site_url + self.to_s,
+ :url => GlobalConfig.site_url + logi.link.to_s)
+ m.save
+ end
+ end
+ end
+ end
+
###### Validation-functions
public
Modified: trunk/app/models/logi.rb
===================================================================
--- trunk/app/models/logi.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/logi.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -498,7 +498,7 @@
if GlobalConfig.use_log_log
m = LogLogMessage.new(
:kind => "Logi",
- :channel_names => ['logis',
+ :channel_names => ['all','logis',
'for_' + self.creator.unix_name,
'by_' + self.creator.unix_name].join(','),
:title => self.current_title,
Modified: trunk/app/models/peer_group.rb
===================================================================
--- trunk/app/models/peer_group.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/peer_group.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -35,6 +35,7 @@
### Inclusions
include HomePageModule # Creating and destroying homepages
+ include UnixNameModule # Unix-name for LogLog channels
### Relationships
@@ -52,7 +53,8 @@
### Filters
- before_validation_on_create :set_home_page_tag # see HomePageModule
+ before_validation_on_create :set_home_page_tag, :set_unix_name
+ # see HomePageModule and UnixNameModule
after_create :create_home_page
before_destroy :reset_prefs_profiles
after_destroy :destroy_memberships, :destroy_home_pages
Modified: trunk/app/models/rating.rb
===================================================================
--- trunk/app/models/rating.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/rating.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -39,6 +39,7 @@
### Filters
+ after_save :log_positive_to_log_log
after_destroy :revoke_voting_power
### Validations
@@ -154,6 +155,25 @@
protected
+ # Logs positively voted to peergroup channel on log.logilogi.org
+ #
+ def log_positive_to_log_log
+ if GlobalConfig.use_log_log
+ if self.score > 0 and (self.new_record? or self.score_was < 0)
+ m = LogLogMessage.new(
+ :kind => "Logi",
+ :channel_name =>
+ 'for_' + self.peer_group.unix_name,
+ :title => self.logi.current_title,
+ :author => self.logi.creator.name,
+ :text => self.logi.current_snippet,
+ :url => GlobalConfig.site_url + self.logi.link.to_s,
+ :unique_id => self.logi.perma_id)
+ m.save
+ end
+ end
+ end
+
# Revokes the voting-power the user received via this rating.
#
def revoke_voting_power
Modified: trunk/app/models/remark.rb
===================================================================
--- trunk/app/models/remark.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/remark.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -76,8 +76,8 @@
if GlobalConfig.use_log_log
m = LogLogMessage.new(
:kind => "Remark",
- :channel_name =>
- 'for_' + self.logi.creator.unix_name,
+ :channel_names => ['all',
+ 'for_' + self.logi.creator.unix_name].join(','),
:author => self.user.name,
:title => 'On: ' + self.logi.current_title,
:text => self.message,
Modified: trunk/app/models/user.rb
===================================================================
--- trunk/app/models/user.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/user.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -17,6 +17,7 @@
### Inclusions
include HomePageModule # Creating and destroying homepages
+ include UnixNameModule # Unix-name for LogLog channels
### Acts as
@@ -51,7 +52,8 @@
### Filters
- before_validation_on_create :set_home_page_tag # see HomePageModule
+ before_validation_on_create :set_home_page_tag, :set_unix_name
+ # see HomePageModule and UnixNameModule
validate :name_not_reserved, :normalize_openid_identifier
before_create :assert_persistence_token
after_create :create_personal_user_group, :create_prefs_profiles, :create_home_page
@@ -172,14 +174,10 @@
return self.home_page_link_for(Tag.user)
end
- # Returns the name of the user, but reduced and all lowercase.
- #
- def unix_name
- self.name.downcase.gsub(/[\ .-]/,'_').gsub(/[^a-z_]/,'')
- end
-
# Sending out e-mail
+ # Delivers instructions for password reset
+ #
def deliver_password_reset_instructions!
reset_perishable_token!
Notifier.deliver_password_reset_instructions(self)
Modified: trunk/app/models/vote.rb
===================================================================
--- trunk/app/models/vote.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/models/vote.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -57,8 +57,8 @@
if self.score > 0
m = LogLogMessage.new(
:kind => "Vote",
- :channel_name =>
- 'for_' + self.rating.logi.creator.unix_name,
+ :channel_names => ['all',
+ 'for_' + self.rating.logi.creator.unix_name].join(','),
:author => self.user.name,
:title => 'For: ' + self.rating.logi.current_title,
:text => 'Score: ' + self.score.to_s +
Modified: trunk/app/views/logis/_commenting_logis.html.erb
===================================================================
--- trunk/app/views/logis/_commenting_logis.html.erb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/views/logis/_commenting_logis.html.erb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -1,5 +1,5 @@
<% render :layout => 'application/panel_with_header',
- :locals => {:title => _("Replying Logis"), :id => "commenting"} do %>
+ :locals => {:title => _("Received replying Logis"), :id => "commenting"} do %>
<div class="mirrored_notice_cloud"><%= _('Want to give a more in-depth response ?') %></div>
<div class="description">
<p><%= _('%{nr} Logis are replying') % {:nr => logis.size} %></p>
Modified: trunk/app/views/logis/_tag_list.html.erb
===================================================================
--- trunk/app/views/logis/_tag_list.html.erb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/app/views/logis/_tag_list.html.erb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -15,7 +15,7 @@
:class => 'tag_list', :autocomplete => 'off' %>
<%= content_tag('div', '', :class => 'auto_complete', :id => 'tag_auto_complete') %>
<%= auto_complete_field (name + '_input'),
- :url => formatted_used_tags_path(:js), :method => :get,
+ :url => used_tags_path(:format => :js), :method => :get,
:param_name => 'search', :update => 'tag_auto_complete',
:min_chars => 1 %>
<%= button_to_function 'Add tag',
Modified: trunk/config/environment.rb
===================================================================
--- trunk/config/environment.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/config/environment.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -4,7 +4,7 @@
# you don't control web/app server and can't set it the proper way
# ENV['RAILS_ENV'] ||= 'production'
-RAILS_GEM_VERSION = '2.3.2' unless defined? RAILS_GEM_VERSION
+RAILS_GEM_VERSION = '2.3.4' unless defined? RAILS_GEM_VERSION
# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')
Modified: trunk/db/schema.rb
===================================================================
--- trunk/db/schema.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/db/schema.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -9,7 +9,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20090926215800) do
+ActiveRecord::Schema.define(:version => 20091005232423) do
create_table "acts_as_xapian_jobs", :force => true do |t|
t.string "model", :null => false
@@ -182,6 +182,7 @@
t.datetime "created_at", :null => false
t.integer "memberships_count", :default => 0
t.string "home_page_tag_string", :null => false
+ t.string "unix_name", :null => false
end
add_index "peer_groups", ["name"], :name => "index_peer_groups_on_name", :unique => true
@@ -262,6 +263,7 @@
t.string "perishable_token", :default => "", :null => false
t.datetime "last_login_at"
t.string "single_access_token", :null => false
+ t.string "unix_name", :null => false
end
add_index "users", ["email"], :name => "index_users_on_email", :unique => true
Modified: trunk/lib/modules/cache_methods_module.rb
===================================================================
--- trunk/lib/modules/cache_methods_module.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/lib/modules/cache_methods_module.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -19,13 +19,11 @@
# Initializes or resets the cache, call before using.
#
def reset_methods_cache(keys = [])
+ if @cache_hash.nil?
+ @cache_hash = {}
+ end
if keys.empty?
- if @cache_hash.nil?
- @cache_hash = {}
- return
- else
- keys = @cache_hash.keys
- end
+ keys = @cache_hash.keys
end
keys.each {|k|
@cache_hash.delete(k)
Modified: trunk/test/fixtures/peer_groups.yml
===================================================================
--- trunk/test/fixtures/peer_groups.yml 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/test/fixtures/peer_groups.yml 2009-10-19 19:58:08 UTC (rev 1614)
@@ -1,4 +1,5 @@
biologers:
name: 'Biologers'
+ unix_name: 'biologers'
home_page_tag_string: 'Biologers'
memberships_count: 2
Modified: trunk/test/fixtures/users.yml
===================================================================
--- trunk/test/fixtures/users.yml 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/test/fixtures/users.yml 2009-10-19 19:58:08 UTC (rev 1614)
@@ -3,6 +3,7 @@
default_prefs_profile: default_profile_of_eduard_edison
personal_user_group: eduard_edisons_personal_user_group
name: 'Eduard Edison'
+ unix_name: 'eduard_edison'
email: 'ad...@co...'
next_logi_nr: 26
home_page_tag_string: 'Eduard_Edison'
@@ -16,6 +17,7 @@
default_prefs_profile: personal_profile_of_john_johnson
personal_user_group: john_johnsons_personal_user_group
name: 'John Johnson'
+ unix_name: 'john_johnson'
email: 'us...@co...'
next_logi_nr: 4
home_page_tag_string: 'John_Johnson'
@@ -28,6 +30,7 @@
default_prefs_profile: personal_profile_of_johnny_runner
personal_user_group: johnny_runners_personal_user_group
name: 'Johnny Runner'
+ unix_name: 'johnny_runner'
email: 'va...@ca...'
next_logi_nr: 1
home_page_tag_string: 'Johnny_Runner'
@@ -43,6 +46,7 @@
default_prefs_profile: personal_profile_of_eddy_crawler
personal_user_group: eddy_crawlers_personal_user_group
name: 'Eddy Crawler'
+ unix_name: 'eddy_crawler'
email: 'to...@ca...'
next_logi_nr: 1
home_page_tag_string: 'Eddy_Crawler'
Modified: trunk/test/unit/user_test.rb
===================================================================
--- trunk/test/unit/user_test.rb 2009-10-04 23:55:17 UTC (rev 1613)
+++ trunk/test/unit/user_test.rb 2009-10-19 19:58:08 UTC (rev 1614)
@@ -83,6 +83,13 @@
assert u.save
end
+ def test_unix_name
+ u = User.new(:openid_identifier => 'http://the.pond.com',
+ :name => 'Kermit T.h.e F-rogé', :email => 'le...@th...')
+ u.save!
+ assert_equal 'kermit_t_h_e_f_rog', u.unix_name
+ end
+
def test_create_destroy_create
PrefsProfile.use_default
hash = {:openid_identifier => 'http://lake.com',
@@ -151,12 +158,6 @@
assert_equal "Eduard_Edison/User", u.home_page_link.to_s
end
- def test_reduced_name
- u = User.new(:openid_identifier => 'http://the.pond.com',
- :name => 'Kermit T.h.e F-rogé', :email => 'le...@th...')
- assert_equal 'kermit_t_h_e_f_rog', u.unix_name
- end
-
def test_order_created_logis
u = users(:eduard_edison)
created_logis = u.created_logis.order_by_created_at(:limit => 2)
@@ -170,7 +171,7 @@
def test_destroy_reset_dependents
u = users(:john_johnson)
- l_id = u.created_logis.last.id
+ l_id = logis(:michel_foucault).id
assert u.destroy
assert [], Link.find_by_user_id(u.id)
assert [], Link.find_by_user_id(nil)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-04 23:55:27
|
Revision: 1613
http://logilogi.svn.sourceforge.net/logilogi/?rev=1613&view=rev
Author: wybow
Date: 2009-10-04 23:55:17 +0000 (Sun, 04 Oct 2009)
Log Message:
-----------
First working version of alert system
Modified Paths:
--------------
trunk/app/controllers/logis_controller.rb
trunk/app/helpers/application_helper.rb
trunk/app/models/log_log_subscription.rb
trunk/app/models/notifier.rb
trunk/app/models/user.rb
trunk/app/views/changes/_recent_or_new_logis.html.erb
trunk/app/views/logis/_created_by_user.html.erb
trunk/app/views/logis/_rated_by_peer_group.html.erb
trunk/app/views/main_page/_recent_or_new_logis.html.erb
trunk/test/unit/notifier_test.rb
trunk/test/unit/user_test.rb
Added Paths:
-----------
trunk/app/views/notifier/for_log.erb
Removed Paths:
-------------
trunk/app/views/notifier/log.erb
Modified: trunk/app/controllers/logis_controller.rb
===================================================================
--- trunk/app/controllers/logis_controller.rb 2009-10-04 22:10:55 UTC (rev 1612)
+++ trunk/app/controllers/logis_controller.rb 2009-10-04 23:55:17 UTC (rev 1613)
@@ -316,7 +316,9 @@
self.get_logis
case @logi.kind
when Const::Logi::KINDS[:user]
- render_body 'created_by_user', :locals => {:logis => @logis}
+ render_body 'created_by_user', :locals => {
+ :logis => @logis,
+ :user => @logi.home_pages_user}
when Const::Logi::KINDS[:peer_group]
render_body 'rated_by_peer_group', :locals => {:logis => @logis}
else
Modified: trunk/app/helpers/application_helper.rb
===================================================================
--- trunk/app/helpers/application_helper.rb 2009-10-04 22:10:55 UTC (rev 1612)
+++ trunk/app/helpers/application_helper.rb 2009-10-04 23:55:17 UTC (rev 1613)
@@ -326,14 +326,19 @@
return @controller.return_url_or_default(default_url)
end
- def rss_link(options = {})
- if !current_context.nil?
- options[:ll_link_string] ||= current_context.link.to_s(:step => -1)
+ def log_log_link(options = {})
+ if options[:controller] == 'feed' and options[:channel]
+ GlobalConfig.log_log_site + "/channels/" + options[:channel] + "/feed.atom"
+ else
+ raise 'Missing attr'
end
- '<div class="rss_link">' + link_to(image_tag('rss.png'),
- url_for(options.merge(:format => :atom))) + '</div>'
end
+ def log_log_feed_link(options = {})
+ url = log_log_link(options.merge(:controller => 'feed'))
+ '<div class="rss_link">' + link_to(image_tag('rss.png'), url) + '</div>'
+ end
+
# cloud
def tag_cloud(objects, classes, &proc)
Modified: trunk/app/models/log_log_subscription.rb
===================================================================
--- trunk/app/models/log_log_subscription.rb 2009-10-04 22:10:55 UTC (rev 1612)
+++ trunk/app/models/log_log_subscription.rb 2009-10-04 23:55:17 UTC (rev 1613)
@@ -25,7 +25,7 @@
page = Net::HTTP.get_response(url)
periodical = page.body
if periodical =~ /[^\s]/
- Notifier.deliver_log(user, user.unix_name, periodical)
+ Notifier.deliver_for_log(user, 'Weekly', periodical)
end
rescue
end
Modified: trunk/app/models/notifier.rb
===================================================================
--- trunk/app/models/notifier.rb 2009-10-04 22:10:55 UTC (rev 1612)
+++ trunk/app/models/notifier.rb 2009-10-04 23:55:17 UTC (rev 1613)
@@ -14,12 +14,13 @@
class Notifier < ActionMailer::Base
### Mailers
- def log(user, channel, periodical)
- subject "Update for " + channel + " on " + GlobalConfig.domain
+ def for_log(user, period, periodical)
+ subject period + " for " + user.name + " on " + GlobalConfig.domain
from "LogiLogi Notifier <no...@lo...>"
recipients user.email
sent_on Time.now
- body :channel => channel,
+ body :user => user,
+ :period => period,
:periodical => periodical
end
Modified: trunk/app/models/user.rb
===================================================================
--- trunk/app/models/user.rb 2009-10-04 22:10:55 UTC (rev 1612)
+++ trunk/app/models/user.rb 2009-10-04 23:55:17 UTC (rev 1613)
@@ -175,7 +175,7 @@
# Returns the name of the user, but reduced and all lowercase.
#
def unix_name
- self.name.downcase.gsub(/[\ .-]/,'_')
+ self.name.downcase.gsub(/[\ .-]/,'_').gsub(/[^a-z_]/,'')
end
# Sending out e-mail
Modified: trunk/app/views/changes/_recent_or_new_logis.html.erb
===================================================================
--- trunk/app/views/changes/_recent_or_new_logis.html.erb 2009-10-04 22:10:55 UTC (rev 1612)
+++ trunk/app/views/changes/_recent_or_new_logis.html.erb 2009-10-04 23:55:17 UTC (rev 1613)
@@ -2,10 +2,10 @@
<div id="<%= selected %>" class="index">
<% render :layout => 'application/panel_with_tabs_ajax', :locals => {:tabs => [
{:text => _("Recently changed Logis"), :name => "recently_changed_logis",
- :rss_link => rss_link(),
+ :rss_link => (GlobalConfig.use_log_log ? log_log_feed_link(:channel => 'logis') : nil),
:description => '<h2>' + _("Logis that have recenly been edited") + '</h2>'},
{:text => _("New Logis"), :name => "new_logis",
- :rss_link => rss_link(:controller => :main_page),
+ :rss_link => (GlobalConfig.use_log_log ? log_log_feed_link(:channel => 'changes') : nil),
:description => '<h2>' + _("Logis that have just been created") + '</h2>'}],
:selected => selected, :id => "recenting", :update => 'recent_or_new_logis'} do %>
<% if selected == "new_logis" %>
Modified: trunk/app/views/logis/_created_by_user.html.erb
===================================================================
--- trunk/app/views/logis/_created_by_user.html.erb 2009-10-04 22:10:55 UTC (rev 1612)
+++ trunk/app/views/logis/_created_by_user.html.erb 2009-10-04 23:55:17 UTC (rev 1613)
@@ -1,6 +1,6 @@
<div id="created_by_user">
<%= render :partial => 'application/header', :locals => {
- :title => _("Recent writings"), :link => rss_link()} %>
+ :title => _("Recent writings"), :link => (GlobalConfig.use_log_log ? log_log_feed_link(:channel => 'by_' + user.unix_name) : nil)} %>
<% if !logis.empty? %>
<%= render :partial => 'snippets_pagination', :locals => {:logis => logis} %>
<% end %>
Modified: trunk/app/views/logis/_rated_by_peer_group.html.erb
===================================================================
--- trunk/app/views/logis/_rated_by_peer_group.html.erb 2009-10-04 22:10:55 UTC (rev 1612)
+++ trunk/app/views/logis/_rated_by_peer_group.html.erb 2009-10-04 23:55:17 UTC (rev 1613)
@@ -1,7 +1,7 @@
<div id="comments">
<%= render :partial => 'application/header', :locals => {
:title => _("Recently positively rated"),
- :link => rss_link()} %>
+ :link => nil} %>
<% if !logis.empty? %>
<%= render :partial => 'snippets_pagination', :locals => {:logis => logis} %>
<% end %>
Modified: trunk/app/views/main_page/_recent_or_new_logis.html.erb
===================================================================
--- trunk/app/views/main_page/_recent_or_new_logis.html.erb 2009-10-04 22:10:55 UTC (rev 1612)
+++ trunk/app/views/main_page/_recent_or_new_logis.html.erb 2009-10-04 23:55:17 UTC (rev 1613)
@@ -2,10 +2,10 @@
<div id="<%= selected %>">
<% render :layout => 'application/panel_with_tabs_ajax', :locals => {:tabs => [
{:text => _("New Logis"), :name => "new_logis",
- :rss_link => rss_link(),
+ :rss_link => (GlobalConfig.use_log_log ? log_log_feed_link(:channel => 'logis') : nil),
:description => _("Logis that have just been created")},
{:text => _("Recently changed Logis"), :name => "recently_changed_logis",
- :rss_link => rss_link(:controller => :changes),
+ :rss_link => (GlobalConfig.use_log_log ? log_log_feed_link(:channel => 'changes') : nil),
:description => _("Logis that have recenly been edited")}],
:selected => selected, :id => "recenting", :update_selected => true} do %>
<% if selected == "new_logis" %>
Added: trunk/app/views/notifier/for_log.erb
===================================================================
--- trunk/app/views/notifier/for_log.erb (rev 0)
+++ trunk/app/views/notifier/for_log.erb 2009-10-04 23:55:17 UTC (rev 1613)
@@ -0,0 +1,3 @@
+<%= @period %> update for <%= @user.name %> on <%= GlobalConfig.domain %>.
+
+<%= @periodical %>
Deleted: trunk/app/views/notifier/log.erb
===================================================================
--- trunk/app/views/notifier/log.erb 2009-10-04 22:10:55 UTC (rev 1612)
+++ trunk/app/views/notifier/log.erb 2009-10-04 23:55:17 UTC (rev 1613)
@@ -1,3 +0,0 @@
-Update for channel <%= @channel %> on <%= GlobalConfig.domain %>.
-
-<%= @periodical %>
Modified: trunk/test/unit/notifier_test.rb
===================================================================
--- trunk/test/unit/notifier_test.rb 2009-10-04 22:10:55 UTC (rev 1612)
+++ trunk/test/unit/notifier_test.rb 2009-10-04 23:55:17 UTC (rev 1613)
@@ -24,10 +24,10 @@
@expected = TMail::Mail.new
end
- def test_log
+ def test_for_log
u = users(:eduard_edison)
- assert Notifier.create_log(u, "for_eduard_edison", "~ Moo ~\n Cows\n Boy!")
+ assert Notifier.create_for_log(u, "for_eduard_edison", "~ Moo ~\n Cows\n Boy!")
end
def test_welcome
Modified: trunk/test/unit/user_test.rb
===================================================================
--- trunk/test/unit/user_test.rb 2009-10-04 22:10:55 UTC (rev 1612)
+++ trunk/test/unit/user_test.rb 2009-10-04 23:55:17 UTC (rev 1613)
@@ -153,7 +153,7 @@
def test_reduced_name
u = User.new(:openid_identifier => 'http://the.pond.com',
- :name => 'Kermit T.h.e F-rog', :email => 'le...@th...')
+ :name => 'Kermit T.h.e F-rogé', :email => 'le...@th...')
assert_equal 'kermit_t_h_e_f_rog', u.unix_name
end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-04 22:11:23
|
Revision: 1612
http://logilogi.svn.sourceforge.net/logilogi/?rev=1612&view=rev
Author: wybow
Date: 2009-10-04 22:10:55 +0000 (Sun, 04 Oct 2009)
Log Message:
-----------
LogLog alerts working now
Modified Paths:
--------------
trunk/app/models/logi.rb
trunk/app/models/logi_version.rb
trunk/test/unit/logi_test.rb
trunk/test/unit/logi_version_test.rb
Modified: trunk/app/models/logi.rb
===================================================================
--- trunk/app/models/logi.rb 2009-10-04 22:04:37 UTC (rev 1611)
+++ trunk/app/models/logi.rb 2009-10-04 22:10:55 UTC (rev 1612)
@@ -196,10 +196,9 @@
:user_group => options[:user_group],
:restriction => options[:restriction],
:kind => options[:kind])
- logi_version = LogiVersion.new(:logi => logi,
+ logi.logi_versions.build(:logi => logi,
:title => options[:title], :body => options[:body],
:text => options[:text], :editor => options[:creator])
- logi.logi_versions << logi_version
return logi
end
@@ -514,19 +513,27 @@
#
def log_save_to_log_log
if GlobalConfig.use_log_log
- if self.current_logi_version.nr == 1
- what = "Create"
+ if self.text_stack_changed?
+ if self.current_logi_version.nr == 1
+ change = "Create"
+ else
+ change = "Edit"
+ end
+ elsif self.tags_string_changed?
+ change = "Tagging"
else
- what = "Edit"
+ change = nil
end
- m = LogLogMessage.new(
- :kind => what,
- :channel_name => 'changes',
- :author => self.creator.name,
- :title => self.current_title,
- :text => 'Current version: ' + self.current_logi_version.nr.to_s,
- :url => GlobalConfig.site_url + self.link.to_s)
- m.save
+ if change
+ m = LogLogMessage.new(
+ :kind => change,
+ :channel_name => 'changes',
+ :author => self.creator.name,
+ :title => self.current_title,
+ :text => 'Current version: ' + self.current_logi_version.nr.to_s,
+ :url => GlobalConfig.site_url + self.link.to_s)
+ m.save
+ end
end
end
Modified: trunk/app/models/logi_version.rb
===================================================================
--- trunk/app/models/logi_version.rb 2009-10-04 22:04:37 UTC (rev 1611)
+++ trunk/app/models/logi_version.rb 2009-10-04 22:10:55 UTC (rev 1612)
@@ -220,8 +220,10 @@
new_text, :separator => DiffLCS::WordSplitArray::SEPARATOR)
new_matches = diff_hash[:remaining_new].stack_adjacent(:space => 1).translate!(
self.logi.text_stack.size + 1)
- self.logi.text_stack += DiffLCS::WordSplitArray::SEPARATOR +
- added_text
+ if !added_text.empty?
+ self.logi.text_stack += DiffLCS::WordSplitArray::SEPARATOR +
+ added_text
+ end
self.position_ranges = matched_old.insert_at_ranges!(new_matches,
diff_hash[:remaining_new])
end
Modified: trunk/test/unit/logi_test.rb
===================================================================
--- trunk/test/unit/logi_test.rb 2009-10-04 22:04:37 UTC (rev 1611)
+++ trunk/test/unit/logi_test.rb 2009-10-04 22:10:55 UTC (rev 1612)
@@ -374,16 +374,19 @@
:editor => u)
# No change
+ l_id = l.id
+ l_text_stack_size = l.text_stack.size
l_v_size = l.logi_versions.size
l.update_if_changed(l_v)
- l.reload
+ l = Logi.find(l_id)
+ assert_equal l_text_stack_size, l.text_stack.size
assert_equal l_v_size, l.logi_versions.size
# Only the link changed
- l_id = l.id
l.tag_with_link(Link.new_from_s("Babooba/Soha"))
l.update_if_changed(l_v)
l = Logi.find(l_id)
+ assert_equal l_text_stack_size, l.text_stack.size
assert_equal l_v_size, l.logi_versions.size
assert_equal [Tag.from_s('Babooba'), Tag.from_s('Soha')], l.tags
@@ -395,6 +398,27 @@
l.update_if_changed(l_v2)
l = Logi.find(l_id)
assert_equal l_v_size + 1, l.logi_versions.size
+
+ # New, small logi
+ l = Logi.new_with(:creator => u,
+ :text => "<h1>min</h1> <p>three words</p>",
+ :user_group => u.default_prefs_profile.user_group)
+ l.tag_with_link(Link.new_from_s('Ronaldo/Duck'))
+ l.save
+ l_id = l.id
+ l = Logi.find(l_id)
+ c_l_v = l.current_logi_version
+ l_text_stack_size = l.text_stack.size
+ l_v_size = l.logi_versions.size
+ l_v = LogiVersion.new(:logi => l,
+ :title => c_l_v.title,
+ :body => c_l_v.body,
+ :editor => u)
+ l.tag_with_link(Link.new_from_s('Ronaldo/Duck/Tale'))
+ l.update_if_changed(l_v)
+ l = Logi.find(l_id)
+ assert_equal l_text_stack_size, l.text_stack.size
+ assert_equal l_v_size, l.logi_versions.size
end
def test_tag_with_link
Modified: trunk/test/unit/logi_version_test.rb
===================================================================
--- trunk/test/unit/logi_version_test.rb 2009-10-04 22:04:37 UTC (rev 1611)
+++ trunk/test/unit/logi_version_test.rb 2009-10-04 22:10:55 UTC (rev 1612)
@@ -382,6 +382,20 @@
assert_equal({:matched_old => target_matched_old,
:remaining_new => target_remaining_new},
l_v.diff_new_text(new_text))
+
+ # small, new logi
+ john = users(:john_johnson)
+ l = Logi.new_with(:creator => john,
+ :text => "<h1>min</h1> <p>three words</p>",
+ :user_group => john.default_prefs_profile.user_group)
+ l.tag_with_link(Link.new_from_s('Ronaldo/Duck'))
+ l.save
+ l = Logi.find(l.id)
+ l_v = l.current_logi_version
+ old_text = l.text_stack
+ assert_equal({:matched_old => l_v.position_ranges,
+ :remaining_new => []},
+ l_v.diff_new_text(old_text))
end
def test_text_assignment
@@ -444,6 +458,21 @@
assert_equal "<h1>Bla</h1> <p>lalala Lo Jo</p>", l_v.text
end
+ def test_update_small_logi
+ john = users(:john_johnson)
+ l = Logi.new_with(:creator => john,
+ :text => "<h1>qwe</h1> <p>rty</p>",
+ :user_group => john.default_prefs_profile.user_group)
+ l.tag_with_link(Link.new_from_s('Ronaldo/Duck'))
+ l.save
+ l_id = l.id
+ l_text_stack_size = l.text_stack.size
+ l.tag_with_link(Link.new_from_s('Ronaldo/Duck/Tale'))
+ l.save
+ l = Logi.find(l_id)
+ assert_equal l_text_stack_size, l.text_stack.size
+ end
+
### Helper methods
def brbrpp(text)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-04 22:04:47
|
Revision: 1611
http://logilogi.svn.sourceforge.net/logilogi/?rev=1611&view=rev
Author: wybow
Date: 2009-10-04 22:04:37 +0000 (Sun, 04 Oct 2009)
Log Message:
-----------
Updated with tests and auto-channel if non-existant
Modified Paths:
--------------
projects/loglog/trunk/app/controllers/application_controller.rb
projects/loglog/trunk/app/controllers/channels_controller.rb
projects/loglog/trunk/app/controllers/feeds_controller.rb
projects/loglog/trunk/app/models/app.rb
projects/loglog/trunk/app/models/message.rb
projects/loglog/trunk/app/views/feeds/show.atom.builder
projects/loglog/trunk/test/unit/app_test.rb
Modified: projects/loglog/trunk/app/controllers/application_controller.rb
===================================================================
--- projects/loglog/trunk/app/controllers/application_controller.rb 2009-10-04 18:39:41 UTC (rev 1610)
+++ projects/loglog/trunk/app/controllers/application_controller.rb 2009-10-04 22:04:37 UTC (rev 1611)
@@ -20,7 +20,7 @@
end
def find_channel
- @channel = @app.channels.find_by_name(params[:channel_id])
+ @channel = @app.channels.find_or_build_by_name(params[:channel_id])
end
# Returns the current app session, see authlogic.
Modified: projects/loglog/trunk/app/controllers/channels_controller.rb
===================================================================
--- projects/loglog/trunk/app/controllers/channels_controller.rb 2009-10-04 18:39:41 UTC (rev 1610)
+++ projects/loglog/trunk/app/controllers/channels_controller.rb 2009-10-04 22:04:37 UTC (rev 1611)
@@ -25,7 +25,7 @@
### Filter-functions
def find
- @channel = @app.channels.find_by_name(params[:id])
+ @channel = @app.channels.find_or_build_by_name(params[:id])
end
### Bodies
Modified: projects/loglog/trunk/app/controllers/feeds_controller.rb
===================================================================
--- projects/loglog/trunk/app/controllers/feeds_controller.rb 2009-10-04 18:39:41 UTC (rev 1610)
+++ projects/loglog/trunk/app/controllers/feeds_controller.rb 2009-10-04 22:04:37 UTC (rev 1611)
@@ -19,7 +19,7 @@
### REST-methods
def show
- @messages = @channel.messages
+ @messages = @channel.messages.find(:all, :order => "created_at DESC", :limit => 30)
respond_to do |format|
format.atom do
@title = 'LogLog ' + @channel.name + ' channel'
Modified: projects/loglog/trunk/app/models/app.rb
===================================================================
--- projects/loglog/trunk/app/models/app.rb 2009-10-04 18:39:41 UTC (rev 1610)
+++ projects/loglog/trunk/app/models/app.rb 2009-10-04 22:04:37 UTC (rev 1611)
@@ -20,7 +20,16 @@
### Relationships
- has_many :channels, :dependent => :destroy
+ has_many :channels, :dependent => :destroy do
+ def find_or_build_by_name(name)
+ channel = find_by_name(name)
+ if channel
+ return channel
+ else
+ return Channel.new(:app => proxy_owner, :name => name)
+ end
+ end
+ end
### Filters
@@ -37,17 +46,6 @@
:message => "is incorrect, please check for typo's"
validates_length_of :password, :minimum => 6, :on => :create, :allow_nil => true
- ### Methods
-
- def or_new_channel_for_name(name)
- c = self.channels.find_by_name(name)
- if c.nil?
- return Channel.new(:app => self, :name => name)
- else
- return c
- end
- end
-
### Filter-functions (some are public)
protected
Modified: projects/loglog/trunk/app/models/message.rb
===================================================================
--- projects/loglog/trunk/app/models/message.rb 2009-10-04 18:39:41 UTC (rev 1610)
+++ projects/loglog/trunk/app/models/message.rb 2009-10-04 22:04:37 UTC (rev 1611)
@@ -35,6 +35,6 @@
### Methods
def set_channel_from(app, channel_name)
- self.channel = app.or_new_channel_for_name(channel_name)
+ self.channel = app.channels.find_or_build_by_name(channel_name)
end
end
Modified: projects/loglog/trunk/app/views/feeds/show.atom.builder
===================================================================
--- projects/loglog/trunk/app/views/feeds/show.atom.builder 2009-10-04 18:39:41 UTC (rev 1610)
+++ projects/loglog/trunk/app/views/feeds/show.atom.builder 2009-10-04 22:04:37 UTC (rev 1611)
@@ -1,6 +1,10 @@
atom_feed do |feed|
feed.title(@title)
- feed.updated((@messages.first.created_at))
+ if @messages.empty?
+ feed.updated(Time.now)
+ else
+ feed.updated(@messages.first.created_at)
+ end
feed.link "rel" => "self",
"href" => url_for(:only_path => false, :format => 'atom')
feed.link "rel" => "alternate",
Modified: projects/loglog/trunk/test/unit/app_test.rb
===================================================================
--- projects/loglog/trunk/test/unit/app_test.rb 2009-10-04 18:39:41 UTC (rev 1610)
+++ projects/loglog/trunk/test/unit/app_test.rb 2009-10-04 22:04:37 UTC (rev 1611)
@@ -16,15 +16,15 @@
class AppTest < ActiveSupport::TestCase
fixtures :all
- def test_or_new_channel_for_name
+ def test_channels_find_or_build_by_name
a = apps(:enll)
# existing
assert_equal channels(:logis),
- a.or_new_channel_for_name('logis')
+ a.channels.find_or_build_by_name('logis')
# new
assert_equal 'far_cries',
- a.or_new_channel_for_name('far_cries').name
+ a.channels.find_or_build_by_name('far_cries').name
end
def test_assert_persistence_token
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <wy...@us...> - 2009-10-04 18:39:48
|
Revision: 1610
http://logilogi.svn.sourceforge.net/logilogi/?rev=1610&view=rev
Author: wybow
Date: 2009-10-04 18:39:41 +0000 (Sun, 04 Oct 2009)
Log Message:
-----------
Adding new LogLog files
Modified Paths:
--------------
trunk/lib/tasks/daemons.rake
Added Paths:
-----------
trunk/app/models/log_log_subscription.rb
trunk/app/views/notifier/log.erb
Added: trunk/app/models/log_log_subscription.rb
===================================================================
--- trunk/app/models/log_log_subscription.rb (rev 0)
+++ trunk/app/models/log_log_subscription.rb 2009-10-04 18:39:41 UTC (rev 1610)
@@ -0,0 +1,34 @@
+#--#
+# Copyright: (c) 2006-2009 The LogiLogi Foundation <fou...@lo...>
+#
+# License:
+# This file is part of the LogiLogi program. LogiLogi is Free Software.
+# You can run/distribute/modify LogiLogi under the terms of the GNU Affero
+# General Public License version 3. The Affero GPL states that running a
+# modified version or a derivative work also requires you to make the source
+# code of that work available to everyone that can interact with it. We
+# chose the Affero GPL to ensure that LogiLogi remains open and libre
+# (doc/LICENSE contains the full text of the legally binding license).
+#++#
+
+class LogLogSubscription # < ActiveResource::Base
+# if GlobalConfig.done_with_basics? and GlobalConfig.use_log_log
+# self.site = GlobalConfig.log_log_site
+# self.user = GlobalConfig.log_log_api_key
+# self.element_name = "message"
+# end
+
+ def self.send_out_weekly_alerts
+ User.find_each do |user|
+ url = URI.parse(GlobalConfig.log_log_site + "/channels/for_" + user.unix_name + "/periods/weekly.txt")
+ begin
+ page = Net::HTTP.get_response(url)
+ periodical = page.body
+ if periodical =~ /[^\s]/
+ Notifier.deliver_log(user, user.unix_name, periodical)
+ end
+ rescue
+ end
+ end
+ end
+end
Added: trunk/app/views/notifier/log.erb
===================================================================
--- trunk/app/views/notifier/log.erb (rev 0)
+++ trunk/app/views/notifier/log.erb 2009-10-04 18:39:41 UTC (rev 1610)
@@ -0,0 +1,3 @@
+Update for channel <%= @channel %> on <%= GlobalConfig.domain %>.
+
+<%= @periodical %>
Modified: trunk/lib/tasks/daemons.rake
===================================================================
--- trunk/lib/tasks/daemons.rake 2009-10-04 17:43:39 UTC (rev 1609)
+++ trunk/lib/tasks/daemons.rake 2009-10-04 18:39:41 UTC (rev 1610)
@@ -55,7 +55,9 @@
ActiveRecord::Base.logger.add(Logger::INFO, "Weekly started at #{Time.now}.\n")
- LogLogSubscription.send_out_weekly_alerts
+ if GlobalConfig.use_log_log
+ LogLogSubscription.send_out_weekly_alerts
+ end
ActiveRecord::Base.logger.add(Logger::INFO, "Weekly finished at #{Time.now}.\n")
end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|