zena 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +28 -0
- data/README.rdoc +6 -6
- data/Rakefile +3 -0
- data/app/controllers/users_controller.rb +4 -2
- data/app/models/acl.rb +6 -0
- data/app/models/cached_page.rb +2 -1
- data/app/models/document.rb +3 -4
- data/app/models/node.rb +8 -5
- data/app/models/site.rb +1 -1
- data/app/models/template.rb +2 -2
- data/app/models/user.rb +5 -3
- data/app/views/acls/_add.rhtml +2 -1
- data/app/views/acls/_form.rhtml +15 -7
- data/app/views/acls/_li.rhtml +2 -0
- data/app/views/acls/index.rhtml +3 -1
- data/app/views/acls/show.html.erb +1 -1
- data/app/views/links/destroy.rjs +16 -2
- data/app/views/versions/destroy.rjs +1 -1
- data/app/views/zafu/default/Node-admin.zafu +1 -1
- data/bin/zena +5 -3
- data/bricks/acls/lib/bricks/acls.rb +11 -4
- data/bricks/acls/zena/migrate/20110627193757_add_allowed_mode_and_format_to_acl.rb +11 -0
- data/bricks/acls/zena/test/integration/acl_integration_test.rb +42 -0
- data/bricks/acls/zena/test/sites/erebus/acls.yml +8 -0
- data/bricks/mongrel/zena/deploy.rb +19 -0
- data/bricks/single/lib/bricks/single.rb +15 -0
- data/bricks/single/zena/init.rb +1 -0
- data/bricks/sphinx/zena/tasks.rb +1 -1
- data/bricks/static/lib/bricks/static.rb +151 -0
- data/bricks/static/zena/init.rb +1 -0
- data/bricks/static/zena/migrate/20110702010330_add_static_to_idx_templates.rb +12 -0
- data/bricks/static/zena/skins/blog/Image-edit.zafu +6 -0
- data/bricks/static/zena/skins/blog/Image.zafu +19 -0
- data/bricks/static/zena/skins/blog/Node-+index.zafu +1 -0
- data/bricks/static/zena/skins/blog/Node-+notFound.zafu +7 -0
- data/bricks/static/zena/skins/blog/Node-+search.zafu +19 -0
- data/bricks/static/zena/skins/blog/Node.zafu +66 -0
- data/bricks/static/zena/skins/blog/Post.zafu +12 -0
- data/bricks/static/zena/skins/blog/Project--kml.zafu +30 -0
- data/bricks/static/zena/skins/blog/Project.zafu +45 -0
- data/bricks/static/zena/skins/blog/comments.zafu +30 -0
- data/bricks/static/zena/skins/blog/dict.yml +11 -0
- data/bricks/static/zena/skins/blog/img/dateBg.jpg +0 -0
- data/bricks/static/zena/skins/blog/img/header.png +0 -0
- data/bricks/static/zena/skins/blog/img/mapPin.png +0 -0
- data/bricks/static/zena/skins/blog/img/menu.gif +0 -0
- data/bricks/static/zena/skins/blog/img/menuover.gif +0 -0
- data/bricks/static/zena/skins/blog/img/style.css +110 -0
- data/bricks/static/zena/test/integration/static_integration_test.rb +30 -0
- data/bricks/static/zena/test/unit/static_test.rb +33 -0
- data/bricks/zena/zena/migrate/01_base.rb +1 -2
- data/bricks/zena/zena/migrate/20110623072048_fix_cached_path_index.rb +10 -0
- data/bricks/zena/zena/migrate/20110710113731_remove_icon_field.rb +18 -0
- data/config/bricks.yml +4 -0
- data/config/deploy.rb +17 -2
- data/config/gems.yml +9 -7
- data/config/selenium.yml +38 -0
- data/lib/bricks/requirements_validation.rb +8 -2
- data/lib/gettext_strings.rb +2 -1
- data/lib/tasks/zena.rake +5 -0
- data/lib/zena/app.rb +12 -0
- data/lib/zena/console.rb +9 -1
- data/lib/zena/core_ext/string.rb +7 -2
- data/lib/zena/deploy.rb +60 -6
- data/lib/zena/deploy/app_init.rhtml +56 -0
- data/lib/zena/deploy/haproxy.cnf.rhtml +34 -0
- data/lib/zena/deploy/httpd.rhtml +6 -0
- data/lib/zena/deploy/start_stop.rhtml +35 -0
- data/lib/zena/info.rb +1 -1
- data/lib/zena/remote/connection.rb +1 -1
- data/lib/zena/site_worker.rb +9 -5
- data/lib/zena/use.rb +1 -1
- data/lib/zena/use/action.rb +2 -2
- data/lib/zena/use/ajax.rb +22 -9
- data/lib/zena/use/conditional.rb +5 -0
- data/lib/zena/use/context.rb +6 -1
- data/lib/zena/use/dates.rb +17 -2
- data/lib/zena/use/display.rb +14 -3
- data/lib/zena/use/forms.rb +37 -47
- data/lib/zena/use/html_tags.rb +3 -0
- data/lib/zena/use/node_context.rb +17 -17
- data/lib/zena/use/rendering.rb +1 -1
- data/lib/zena/use/urls.rb +11 -2
- data/lib/zena/use/zafu_attributes.rb +1 -0
- data/lib/zena/use/zafu_safe_definitions.rb +16 -1
- data/lib/zena/use/zafu_templates.rb +39 -24
- data/lib/zena/use/zazen.rb +1 -0
- data/locale/de/LC_MESSAGES/zena.mo +0 -0
- data/locale/de/zena.po +105 -89
- data/locale/en/LC_MESSAGES/zena.mo +0 -0
- data/locale/en/zena.mo +0 -0
- data/locale/en/zena.po +188 -253
- data/locale/fr/LC_MESSAGES/zena.mo +0 -0
- data/locale/fr/zena.mo +0 -0
- data/locale/fr/zena.po +200 -257
- data/locale/zena.pot +95 -85
- data/public/javascripts/zena.js +2 -2
- data/test/fixtures/files/{Node-test.zafu → TestNode.zafu} +206 -4
- data/test/functional/nodes_controller_test.rb +2 -2
- data/test/integration/navigation_test.rb +9 -3
- data/test/integration/query_node/basic.yml +4 -4
- data/test/integration/query_node/filters.yml +2 -2
- data/test/integration/zafu_compiler/ajax.yml +6 -6
- data/test/integration/zafu_compiler/basic.yml +1 -1
- data/test/integration/zafu_compiler/calendar.yml +4 -3
- data/test/integration/zafu_compiler/conditional.yml +3 -10
- data/test/integration/zafu_compiler/context.yml +1 -1
- data/test/integration/zafu_compiler/dates.yml +9 -1
- data/test/integration/zafu_compiler/display.yml +7 -1
- data/test/integration/zafu_compiler/eval.yml +12 -46
- data/test/integration/zafu_compiler/forms.yml +1 -1
- data/test/integration/zafu_compiler/query.yml +2 -2
- data/test/integration/zafu_compiler/relations.yml +19 -9
- data/test/integration/zafu_compiler/roles.yml +12 -0
- data/test/integration/zafu_compiler/safe_definitions.yml +1 -1
- data/test/integration/zafu_compiler/urls.yml +13 -5
- data/test/integration/zafu_compiler/version.yml +6 -0
- data/test/integration/zafu_compiler/zafu_attributes.yml +4 -4
- data/test/integration/zafu_compiler_test.rb +1 -1
- data/test/selenium.readme +8 -0
- data/test/selenium/Add/0setup.rsel +12 -0
- data/test/selenium/Add/add1.rsel +22 -0
- data/test/selenium/Add/add2.rsel +22 -0
- data/test/selenium/Add/add3.rsel +22 -0
- data/test/selenium/Drop/0setup.rsel +12 -0
- data/test/selenium/Drop/drop1.rsel +25 -0
- data/test/selenium/Drop/drop2.rsel +25 -0
- data/test/selenium/Drop/drop3.rsel +51 -0
- data/test/selenium/Drop/drop4.rsel +44 -0
- data/test/selenium/Drop/drop5.rsel +16 -0
- data/test/selenium/Edit/0setup.rsel +12 -0
- data/test/selenium/Edit/edit1.rsel +31 -0
- data/test/selenium/Edit/edit2.rsel +39 -0
- data/test/selenium/Edit/edit3.rsel +40 -0
- data/test/selenium/Form/0setup.rsel +12 -0
- data/test/selenium/Form/form1.rsel +9 -0
- data/test/selenium/Form/form2.rsel +9 -0
- data/test/selenium/Paginate/0setup.rsel +12 -0
- data/test/selenium/Paginate/paginate1.rsel +24 -0
- data/test/selenium/Toggle/0setup.rsel +12 -0
- data/test/selenium/Toggle/toggle1.rsel +21 -0
- data/test/sites/zena/nodes.yml +4 -4
- data/test/sites/zena/roles.yml +3 -2
- data/test/sites/zena/versions.yml +12 -11
- data/test/unit/core_ext_test.rb +23 -5
- data/test/unit/document_test.rb +6 -2
- data/test/unit/node_test.rb +2 -2
- data/test/unit/remote_test.rb +1 -2
- data/test/unit/role_test.rb +2 -2
- data/test/unit/user_test.rb +48 -1
- data/test/unit/virtual_class_test.rb +7 -7
- data/test/unit/zena/acts/secure_test.rb +1 -1
- data/test/unit/zena/use/rendering_test.rb +1 -1
- data/test/unit/zena/use/urls_test.rb +3 -3
- data/zena.gemspec +65 -101
- metadata +67 -103
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run 2.tmCommand +0 -24
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run Context.tmCommand +0 -58
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run Focused Should.tmCommand +0 -88
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run.tmCommand +0 -27
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/YAML to Shoulda.tmCommand +0 -23
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Preferences/Symbol List: Context.tmPreferences +0 -19
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Preferences/Symbol List: Should.tmPreferences +0 -19
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory attributes for.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory build.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_define with class.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_define.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_next.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_sequence.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_bad_value.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_contains.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_does_not_contain.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_good_value.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_same_elements.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_save.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_sent_email.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_valid.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/association.tmSnippet +0 -17
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/attribute.tmSnippet +0 -17
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/before_should block.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block get.tmSnippet +0 -22
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block post.tmSnippet +0 -23
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block with setup.tmSnippet +0 -25
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/setup.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should block with before proc.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should block.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_allow_values_for.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_assign_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_be_restful denied.tmSnippet +0 -20
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_be_restful.tmSnippet +0 -20
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_belong_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_change by.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_change from to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_at_least.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_in_range.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_is.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_value_in_range.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_eventually.tmSnippet +0 -18
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_filter_params.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_and_belong_to_many.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_class_methods.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_db_column.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_db_columns.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_index.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_indices.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_instance_methods.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_many.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_named_scope.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_one.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_readonly_attributes.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_allow_mass_assignment_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_allow_values_for.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_assign_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_change.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_set_the_flash.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_redirect_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_a_form.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_template.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_with_layout.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_without_layout.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_respond_with.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_respond_with_content_type.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_return_from_session.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_route.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_set_the_flash_to.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_acceptance_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_numericality_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_presence_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_uniqueness_of with scope.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_uniqueness_of.tmSnippet +0 -16
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/catch_exception.rb +0 -39
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/run_script.rb +0 -104
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/stdin_dialog.rb +0 -14
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/test.rb +0 -17
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/todo.txt +0 -13
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/bin/yaml_to_shoulda.rb +0 -25
- data/vendor/TextMate/Ruby Shoulda.tmbundle/Syntaxes/Ruby on Rails (Shoulda).tmLanguage +0 -166
- data/vendor/TextMate/Ruby Shoulda.tmbundle/info.plist +0 -304
- data/vendor/TextMate/Zena.tmbundle/Commands/Run all yaml tests.tmCommand +0 -37
- data/vendor/TextMate/Zena.tmbundle/Commands/Run focused yaml test.tmCommand +0 -52
- data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/catch_exception.rb +0 -39
- data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/run_script.rb +0 -118
- data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/stdin_dialog.rb +0 -14
- data/vendor/TextMate/Zena.tmbundle/info.plist +0 -17
data/public/javascripts/zena.js
CHANGED
@@ -648,7 +648,7 @@ Zena.popup_keydown = function(evt) {
|
|
648
648
|
//if (e.keyCode) code = e.keyCode;
|
649
649
|
//else if (e.which) code = e.which;
|
650
650
|
var character = String.fromCharCode(code);
|
651
|
-
alert('Character was ' + character);
|
651
|
+
//alert('Character was ' + character);
|
652
652
|
|
653
653
|
if (code == Event.KEY_LEFT) {
|
654
654
|
if (gallery.prev) {
|
@@ -903,7 +903,7 @@ Zena.plus_minus = function(elem, start, plus, minus) {
|
|
903
903
|
var show = start == 'on' ? 'display:none;' : '';
|
904
904
|
var hide = start == 'on' ? '' : 'display:none;';
|
905
905
|
var trigger_tag = " <a id='off_"+id+"' style='"+show+"' onclick='Zena.m_toggle(\"" + id +"\")' class='plus_btn'>"+plus+"</a><a id='on_"+id+"' style='"+hide+"' onclick='Zena.m_toggle(\"" + id +"\")' class='minus_btn'>"+minus+"</a>";
|
906
|
-
var new_tag = "<"+tag+" style='"+hide+"' id='txt_"+id+"' class='txt'>" + elem.innerHTML + "</"+tag+">";
|
906
|
+
var new_tag = "<"+tag+" style='"+hide+"' id='txt_"+id+"' class='txt" + ' ' + elem.className + "'>" + elem.innerHTML + "</"+tag+">";
|
907
907
|
if (tag.toUpperCase() == 'SPAN' || !elem.previous()) {
|
908
908
|
Element.replace(elem, trigger_tag + ' ' + new_tag);
|
909
909
|
} else {
|
@@ -6,15 +6,216 @@
|
|
6
6
|
<r:stylesheets media='all' list='reset,zena,code,calendar'/>
|
7
7
|
</r:void>
|
8
8
|
<link href="style.css" rel="Stylesheet" type="text/css"/>
|
9
|
-
|
9
|
+
<style>
|
10
|
+
.test { float:left; width:200px; padding:10px; background:#eee; border:1px solid #333; margin:0 10px 10px 0}
|
11
|
+
.test h3 {background:#333; color:white; text-align:center; margin:-10px -10px 10px -10px;}
|
12
|
+
.test a { color:#0067C6}
|
13
|
+
.test input {width:10em; height:1.2em; padding:2px;}
|
14
|
+
.test input[type="checkbox"] {width:1.2em;}
|
15
|
+
.test p { font-size:10px; font-style:italic; margin:-10px -10px 10px -10px; padding:5px; background:#ccc; border-bottom:1px solid #333; line-height:15px;}
|
16
|
+
.test td, .test th { border:1px solid #666; padding:2px;}
|
17
|
+
.test th { color:white; background-color:#666;}
|
18
|
+
.test .btn_x {padding:0; background:none; border:none; float:left; margin:5px 5px 5px 0;}
|
19
|
+
.test li.form {list-style-type:none; padding:0;}
|
20
|
+
.test .drop, .test .box {border:1px solid #888; margin:1em 0}
|
21
|
+
.test .drop {background:#ccc;}
|
22
|
+
.test .drop_hover { background:#ace; border:2px dashed #99f;}
|
23
|
+
</style>
|
10
24
|
<r:javascripts list='prototype,effects,zena,dragdrop'/>
|
11
25
|
<r:uses_datebox/>
|
12
26
|
</r:with>
|
13
27
|
|
14
|
-
|
15
28
|
<r:with part='context'/>
|
16
29
|
|
17
30
|
<r:with part='content' class='project'>
|
31
|
+
|
32
|
+
<div class='test' id='add1' do='selenium'>
|
33
|
+
<h3>add1</h3>
|
34
|
+
<p>Using "add" to create new elements. The parent is guessed from context.</p>
|
35
|
+
<ul do='projects in site'>
|
36
|
+
<li do='add' klass='Project' after='self'/>
|
37
|
+
<li class='#{title}' do='each'><r:link/> <span do='parent' do='title'/></li>
|
38
|
+
</ul>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div class='test' id='add2' do='selenium'>
|
42
|
+
<h3>add2</h3>
|
43
|
+
<p>Using "add" to create new elements. The parent is set witn node[parent_id]='root.id'.</p>
|
44
|
+
<ul do='projects in site'>
|
45
|
+
<li do='add' klass='Project' node[parent_id]='root.id' after='self'/>
|
46
|
+
<li class='#{title}' do='each'><r:link/> <span do='parent' do='title'/></li>
|
47
|
+
</ul>
|
48
|
+
</div>
|
49
|
+
|
50
|
+
<div class='test' id='add3' do='selenium'>
|
51
|
+
<h3>add3</h3>
|
52
|
+
<p>Create new elements with [add_btn] and [form_tag] (in table).</p>
|
53
|
+
<table do='projects in site'>
|
54
|
+
<tr do='add' klass='Project' after='self'>
|
55
|
+
<td do='add_btn'/>
|
56
|
+
</tr>
|
57
|
+
<tr class='#{title}' do='each'>
|
58
|
+
<td><r:link/> <span do='parent' do='title'/></td>
|
59
|
+
</tr>
|
60
|
+
<tr do='form'>
|
61
|
+
<td do='form_tag'><r:input name='title'/><r:input type='submit'/></td>
|
62
|
+
</tr>
|
63
|
+
</table>
|
64
|
+
</div>
|
65
|
+
|
66
|
+
<div class='test' id='edit1' do='selenium'>
|
67
|
+
<h3>edit1</h3>
|
68
|
+
<p>Edit in place, form built from block.</p>
|
69
|
+
<ul do='block'>
|
70
|
+
<li do='edit'/>
|
71
|
+
<li class='title' do='title'/>
|
72
|
+
<li do='if' in='form'><r:input type='submit'/></li>
|
73
|
+
</ul>
|
74
|
+
</div>
|
75
|
+
|
76
|
+
<div class='test' id='edit2' do='selenium'>
|
77
|
+
<h3>edit2</h3>
|
78
|
+
<p>Edit in place with custom from.</p>
|
79
|
+
<ul do='block'>
|
80
|
+
<li do='edit'/>
|
81
|
+
<li class='title' do='title'/>
|
82
|
+
<li do='form' on='edit'>
|
83
|
+
<r:input name='title'/> <r:input type='checkbox' name='v_status' value='50'/>
|
84
|
+
</li>
|
85
|
+
</ul>
|
86
|
+
</div>
|
87
|
+
|
88
|
+
<div class='test' id='edit3' do='selenium'>
|
89
|
+
<h3>edit3</h3>
|
90
|
+
<p>Edit table place (makes form from block). This should not break html (the form should be outside of the "table" tag).</p>
|
91
|
+
<table do='block'>
|
92
|
+
<tr><td colspan='2' do='edit'/></tr>
|
93
|
+
<tr><td>title</td><td class='title' do='title'/></tr>
|
94
|
+
</table>
|
95
|
+
</div>
|
96
|
+
|
97
|
+
<div class='test' id='toggle1' do='selenium'>
|
98
|
+
<h3>toggle1</h3>
|
99
|
+
<p>Toggle relation in list.</p>
|
100
|
+
<ul class='references' do='references'>
|
101
|
+
<li do='each' do='title'/>
|
102
|
+
</ul>
|
103
|
+
<ul do='projects in site'>
|
104
|
+
<li do='each' toggle='reference' for='start' do='title'/>
|
105
|
+
</ul>
|
106
|
+
</div>
|
107
|
+
|
108
|
+
<div class='test' id='paginate1' do='selenium'>
|
109
|
+
<h3>paginate1</h3>
|
110
|
+
<p>Ajax pagination.</p>
|
111
|
+
<table id='paginate1_tbl' do='block' do='nodes in site limit 3 paginate p'>
|
112
|
+
<tr>
|
113
|
+
<th style='width:4em'>klass</th>
|
114
|
+
<th>title</th>
|
115
|
+
</tr>
|
116
|
+
<tr>
|
117
|
+
<td colspan='2'>
|
118
|
+
<span do='link' page='list' update='paginate1_tbl'/>
|
119
|
+
</td>
|
120
|
+
</tr>
|
121
|
+
<tr id='node#{id}' do='each'>
|
122
|
+
<td do='klass'/>
|
123
|
+
<td do='title'/>
|
124
|
+
</tr>
|
125
|
+
</table>
|
126
|
+
</div>
|
127
|
+
|
128
|
+
<div class='test' id='form1' do='selenium'>
|
129
|
+
<h3>form1</h3>
|
130
|
+
<p>Form in [new] to create objects.</p>
|
131
|
+
<r:new klass='Page' title='%{hello}'>
|
132
|
+
<r:form node[v_status]='50'>
|
133
|
+
<r:input label='t' name='title'/>
|
134
|
+
</r:form>
|
135
|
+
</r:new>
|
136
|
+
</div>
|
137
|
+
|
138
|
+
<div class='test' id='form2' do='selenium'>
|
139
|
+
<h3>form2</h3>
|
140
|
+
<p>Form to update object.</p>
|
141
|
+
<r:form node[v_status]='50'>
|
142
|
+
<r:input label='t' name='title'/>
|
143
|
+
</r:form>
|
144
|
+
</div>
|
145
|
+
|
146
|
+
<div class='test' id='drop1' do='selenium'>
|
147
|
+
<h3>drop1</h3>
|
148
|
+
<p>Create a relation by drag and dropping.</p>
|
149
|
+
|
150
|
+
<ul do='pages in site limit 3'>
|
151
|
+
<li do='each' draggable='true' do='title'/>
|
152
|
+
</ul>
|
153
|
+
<ul do='drop' set='reference' change='receiver' do='references'>
|
154
|
+
<li class='#{id}' do='each'><r:unlink/> <r:title/></li>
|
155
|
+
</ul>
|
156
|
+
</div>
|
157
|
+
|
158
|
+
<div class='test' id='drop2' do='selenium'>
|
159
|
+
<h3>drop2</h3>
|
160
|
+
<p>Drop in each loop.</p>
|
161
|
+
|
162
|
+
<ul do='pages in site limit 3'>
|
163
|
+
<li do='each' draggable='true' do='title'/>
|
164
|
+
</ul>
|
165
|
+
|
166
|
+
<r:projects in='site' do='each'>
|
167
|
+
<ul class='drop drop_#{id}' do='drop' set='reference' change='receiver' do='references'>
|
168
|
+
<li class='#{id}' do='each'><r:unlink/> <r:title/></li>
|
169
|
+
</ul>
|
170
|
+
</r:projects>
|
171
|
+
</div>
|
172
|
+
|
173
|
+
<div class='test' id='drop3' do='selenium'>
|
174
|
+
<h3>drop3</h3>
|
175
|
+
<p>Drag from list in each loop.</p>
|
176
|
+
<r:projects in='site' do='each'>
|
177
|
+
<ul class='box' do='pages'>
|
178
|
+
<li class='#{id}' do='each' draggable='true' do='title'/>
|
179
|
+
</ul>
|
180
|
+
</r:projects>
|
181
|
+
|
182
|
+
<ul do='drop' set='reference' change='receiver' do='references'>
|
183
|
+
<li class='#{id}' do='each'><r:unlink/> <r:title/></li>
|
184
|
+
</ul>
|
185
|
+
</div>
|
186
|
+
|
187
|
+
<div class='test' id='drop4' do='selenium'>
|
188
|
+
<h3>drop4</h3>
|
189
|
+
<p>Drag duplicate elements in source.</p>
|
190
|
+
|
191
|
+
<ul class='box' do='pages in project limit 3'>
|
192
|
+
<li class='#{id}' do='each' draggable='true' do='title'/>
|
193
|
+
</ul>
|
194
|
+
|
195
|
+
<ul class='box' do='pages in project limit 3'>
|
196
|
+
<li class='#{id}' do='each' draggable='true' do='title'/>
|
197
|
+
</ul>
|
198
|
+
|
199
|
+
<ul do='drop' set='reference' change='receiver' do='references'>
|
200
|
+
<li class='#{id}' do='each'><r:unlink/> <r:title/></li>
|
201
|
+
</ul>
|
202
|
+
</div>
|
203
|
+
|
204
|
+
<div class='test' id='drop5' do='selenium'>
|
205
|
+
<h3>drop5</h3>
|
206
|
+
<p>Drag from drop loop.</p>
|
207
|
+
|
208
|
+
<ul class='box' do='pages in project limit 3'>
|
209
|
+
<li class='#{id}' do='each' draggable='true' do='title'/>
|
210
|
+
</ul>
|
211
|
+
|
212
|
+
<r:projects in='site' do='each'>
|
213
|
+
<ul class='drop drop_#{id}' do='drop' set='reference' change='receiver' do='references'>
|
214
|
+
<li class='#{id}' do='each' draggable='true'><r:unlink/> <r:title/></li>
|
215
|
+
</ul>
|
216
|
+
</r:projects>
|
217
|
+
</div>
|
218
|
+
<!-- OLD TESTS
|
18
219
|
<div id='related'>
|
19
220
|
<ul do='pages'>
|
20
221
|
<li do='each'><p><b do='show' attr='title' edit='true' publish='true'/> <r:edit/></p>
|
@@ -188,7 +389,7 @@ This filter updates the "distant filter block test"
|
|
188
389
|
<h3>drop set relation (drop in each)</h3>
|
189
390
|
|
190
391
|
<ul do='tags in site'>
|
191
|
-
|
392
|
+
//! drop in each
|
192
393
|
<li style='border:1px solid #400; min_width:100px; min_height:100px;' do='each' do='drop' set='set_tag'>
|
193
394
|
<b do='title'/>
|
194
395
|
<ul do='context' select='tagged'><li do='each' do='unlink' do='img' mode='tiny'/></ul>
|
@@ -199,7 +400,7 @@ This filter updates the "distant filter block test"
|
|
199
400
|
|
200
401
|
|
201
402
|
<ul do='tags in site'>
|
202
|
-
|
403
|
+
//! drop in each
|
203
404
|
<li style='border:1px solid #400; min_width:100px; min_height:100px;' do='each' do='drop' set='set_tag'>
|
204
405
|
<b do='title'/>
|
205
406
|
<ul do='context' select='tagged'><li do='each' do='unlink' do='img' mode='tiny'/></ul>
|
@@ -325,5 +526,6 @@ This filter updates the "distant filter block test"
|
|
325
526
|
|
326
527
|
|
327
528
|
<hr/>
|
529
|
+
-->
|
328
530
|
</r:with>
|
329
531
|
</r:include>
|
@@ -874,7 +874,7 @@ END:VCALENDAR
|
|
874
874
|
get 'edit', :id => nodes_zip(:zena)
|
875
875
|
assert_response :success
|
876
876
|
assert_template 'nodes/edit'
|
877
|
-
assert_match %r{/Default skin/Node
|
877
|
+
assert_match %r{/Default skin/Node-\+popupLayout/en/_main$}, @response.layout
|
878
878
|
end
|
879
879
|
|
880
880
|
def test_crop_image
|
@@ -904,7 +904,7 @@ END:VCALENDAR
|
|
904
904
|
def test_should_get_test_page_without_errors
|
905
905
|
without_files('test.host/zafu') do
|
906
906
|
login(:tiger)
|
907
|
-
get 'show', 'prefix'=>'oo', 'path'=>["
|
907
|
+
get 'show', 'prefix'=>'oo', 'path'=>["testnode#{nodes_zip(:test)}.html"]
|
908
908
|
assert_response :success
|
909
909
|
end
|
910
910
|
end
|
@@ -326,18 +326,24 @@ class NavigationTest < Zena::Integration::TestCase
|
|
326
326
|
assert_response :success
|
327
327
|
end
|
328
328
|
end # in the wrong language
|
329
|
-
|
329
|
+
|
330
330
|
context 'with a mode' do
|
331
|
+
setup do
|
332
|
+
login(:lion)
|
333
|
+
secure(Template) { Template.create(:parent_id => nodes_id(:default), :title => 'Project-changes.zafu', :v_status => Zena::Status::Pub, :text => 'nothing ever changes in "<r:title/>"') }
|
334
|
+
end
|
335
|
+
|
331
336
|
subject do
|
332
|
-
'http://test.host/en/projects-list/Clean-Water-
|
337
|
+
'http://test.host/en/projects-list/Clean-Water-project_changes'
|
333
338
|
end
|
334
339
|
|
335
340
|
should 'get response' do
|
336
341
|
get subject
|
337
342
|
assert_response :success
|
343
|
+
assert_equal 'nothing ever changes in "Clean Water project"', response.body
|
338
344
|
end
|
339
345
|
end # with a mode
|
340
|
-
|
346
|
+
|
341
347
|
end # On a page with custom base
|
342
348
|
|
343
349
|
def test_url_with_custom_base
|
@@ -5,7 +5,7 @@ default:
|
|
5
5
|
visitor: 'ant'
|
6
6
|
src: ""
|
7
7
|
sql: "[%Q{SELECT nodes.* FROM nodes WHERE #{secure_scope('nodes')} AND nodes.parent_id = ? ORDER BY nodes.zip ASC}, @node.id]"
|
8
|
-
res: "Etat des travaux, The lake we love, it's a lake, water, crocodiles, super ouverture
|
8
|
+
res: "Etat des travaux, The lake we love, it's a lake, water, crocodiles, super ouverture"
|
9
9
|
|
10
10
|
nodes:
|
11
11
|
src: "nodes"
|
@@ -14,7 +14,7 @@ nodes:
|
|
14
14
|
pages:
|
15
15
|
src: "pages"
|
16
16
|
sql: "[%Q{SELECT nodes.* FROM nodes WHERE #{secure_scope('nodes')} AND nodes.kpath LIKE 'NP%' AND nodes.parent_id = ? ORDER BY nodes.zip ASC}, @node.id]"
|
17
|
-
res: "Etat des travaux, crocodiles
|
17
|
+
res: "Etat des travaux, crocodiles"
|
18
18
|
|
19
19
|
letters:
|
20
20
|
src: "letters"
|
@@ -45,7 +45,7 @@ pages_or_letters:
|
|
45
45
|
node: zena
|
46
46
|
src: pages or letters
|
47
47
|
sql: "[%Q{SELECT nodes.* FROM nodes WHERE #{secure_scope('nodes')} AND ((nodes.kpath LIKE 'NP%' AND nodes.parent_id = ?) OR (nodes.kpath LIKE 'NNL%' AND nodes.parent_id = ?)) GROUP BY id ORDER BY nodes.zip ASC}, @node.id, @node.id]"
|
48
|
-
res: "people, projects list, Collections, Nature, zena enhancements, Skins (layout themes)"
|
48
|
+
res: "people, projects list, Collections, Kill the bugs, Nature, zena enhancements, Skins (layout themes)"
|
49
49
|
|
50
50
|
project:
|
51
51
|
sql: "[%Q{SELECT nodes.* FROM nodes WHERE #{secure_scope('nodes')} AND nodes.id = ? ORDER BY nodes.zip ASC}, @node.get_project_id]"
|
@@ -78,7 +78,7 @@ vclass_in_project:
|
|
78
78
|
|
79
79
|
vlcass_or_pages:
|
80
80
|
src: "(posts in project) or pages"
|
81
|
-
res: "Etat des travaux, crocodiles, super ouverture
|
81
|
+
res: "Etat des travaux, crocodiles, super ouverture"
|
82
82
|
|
83
83
|
find_relation:
|
84
84
|
context:
|
@@ -87,7 +87,7 @@ filter_with_fullpath:
|
|
87
87
|
# Get all objects under a given node (node the '/' to avoid self)
|
88
88
|
src: "nodes where fullpath like \"#{fullpath}/%\" in site order by fullpath"
|
89
89
|
sql: "[%Q{SELECT nodes.* FROM nodes WHERE #{secure_scope('nodes')} AND nodes.fullpath LIKE ? ORDER BY nodes.fullpath}, \"#{@node.fullpath}/%\"]"
|
90
|
-
res: "Etat des travaux, The lake we love, it's a lake, water, crocodiles, super ouverture
|
90
|
+
res: "Etat des travaux, The lake we love, it's a lake, water, crocodiles, super ouverture"
|
91
91
|
|
92
92
|
class_filter:
|
93
93
|
src: "nodes where class like Image or class = Project in site"
|
@@ -120,7 +120,7 @@ filter_by_parent:
|
|
120
120
|
src: "nodes where parent_id = 11 in site"
|
121
121
|
# nodes where parent.zip = ...
|
122
122
|
sql: "%Q{SELECT nodes.* FROM nodes,nodes AS jn1 WHERE #{secure_scope('nodes')} AND jn1.zip = 11 AND jn1.id = nodes.parent_id AND jn1.site_id = nodes.site_id ORDER BY nodes.zip ASC}"
|
123
|
-
res: 'people, projects list, Collections, Nature, zena enhancements, Skins (layout themes)'
|
123
|
+
res: 'people, projects list, Collections, Kill the bugs, Nature, zena enhancements, Skins (layout themes)'
|
124
124
|
#many_role_filter:
|
125
125
|
# This is not working (or clause on 'indexed' fields is not supported right now)
|
126
126
|
# src: "nodes where role = Original or role = Task in site"
|
@@ -12,7 +12,7 @@ block:
|
|
12
12
|
add:
|
13
13
|
src: "<ul id='children' do='nodes'><li do='each' do='link'/><li do='add'/></ul>"
|
14
14
|
tem: "/\[\"children_add\", \"children_form\"\].each\(Element.toggle\)/"
|
15
|
-
'ajax/add/en/children_form.erb': "/class='form' id='<%= ndom_id\(@node\) %>
|
15
|
+
'ajax/add/en/children_form.erb': "/class='form' id='<%= ndom_id\(@node\) %>'/"
|
16
16
|
'ajax/add/en/children.erb': "<li id='<%= ndom_id(@node) %>'><a href='<%= zen_path(@node) %>'><%= @node.prop['title'] %></a></li>"
|
17
17
|
|
18
18
|
edit_not_each:
|
@@ -51,7 +51,7 @@ form_update:
|
|
51
51
|
src: "<div id='foo' do='block'><r:form update='foo'></r:form></div>"
|
52
52
|
res: "/t_url=ajax%2Fform%2Fupdate%2Ffoo/"
|
53
53
|
'ajax/form/update/en/foo.erb': '/t_url=ajax%2Fform%2Fupdate%2Ffoo'
|
54
|
-
|
54
|
+
|
55
55
|
add_each_no_form:
|
56
56
|
src: "<ul do='children' id='things'><li do='each'>I <p do='title'>blah</p></li><li do='add'/></ul>"
|
57
57
|
tem: "!/</ul><ul></ul>/" # bug in closing group with [add].
|
@@ -128,7 +128,7 @@ make_form:
|
|
128
128
|
src: "<ul do='children'><li do='each' do='title'/><li do='add'/></ul>"
|
129
129
|
tem: "/<li style='display:none;' class='form' id='list1_form'>.*remote_form_for\(:node, var2_new"
|
130
130
|
'ajax/make/form/en/list1.erb': "<li id='<%= ndom_id(@node) %>'><%= @node.prop['title'] %></li>"
|
131
|
-
'ajax/make/form/en/list1_form.erb': "/<li class='form' id='<%= ndom_id\(@node\) %>
|
131
|
+
'ajax/make/form/en/list1_form.erb': "/<li class='form' id='<%= ndom_id\(@node\) %>'>/"
|
132
132
|
|
133
133
|
each_edit_cannot_write:
|
134
134
|
context:
|
@@ -178,7 +178,7 @@ live_filter:
|
|
178
178
|
# Make sure a unique_name is set for the given block
|
179
179
|
tem: "/name='t_url' value='ajax/live/filter/list1'.*<% filter_form\(@node.*ml1.value LIKE \?.*, \"#\{params\[:f\]\}%\"/"
|
180
180
|
'ajax/live/filter/en/list1.erb': "/<div id='<%= ndom_id\(@node\).*, \"#\{params\[:f\]\}%\".*var2.prop\['title'\]/"
|
181
|
-
res: "/<input type='text' name='f'.*<div id='list1'><ol><li>crocodiles</li><li>
|
181
|
+
res: "/<input type='text' name='f'.*<div id='list1'><ol><li>crocodiles</li><li>status title</li></ol></div>/"
|
182
182
|
|
183
183
|
live_filter_single_element:
|
184
184
|
context:
|
@@ -194,7 +194,7 @@ live_filter_select_options:
|
|
194
194
|
src: "<r:filter live='true' do='select' param='f' values='1,2'/><r:block><ol do='pages where title like \"#{params[:f]}%\"'><li do='each' do='title'/></ol></r:block>"
|
195
195
|
tem: "/select name=.f.><%= options_for_select\(\[.1., .2.\], params\[:f\].to_s/"
|
196
196
|
'ajax/live/filter/select/options/en/list1.erb': "/<div id='<%= ndom_id\(@node\) %>'.*params\[:f\]/"
|
197
|
-
res: "/<select name='f'.*<div id='list1'><ol><li>crocodiles</li><li>
|
197
|
+
res: "/<select name='f'.*<div id='list1'><ol><li>crocodiles</li><li>status title</li></ol></div>/"
|
198
198
|
|
199
199
|
draggable_do_syntax:
|
200
200
|
src: "<r:images in='site' do='each' draggable='all' do='img' mode='pv'/>"
|
@@ -299,7 +299,7 @@ drop_add_link:
|
|
299
299
|
src: "<div do='drop' add='favorite'></div>"
|
300
300
|
# without the ugly inspect, this would be '#{id}' or "\#{id}"
|
301
301
|
tem: "/drop_node_path.*\"node\[favorite_id\]\" => \"\\\\#\{id\}\"/"
|
302
|
-
res: "<div class='drop' id='list1'
|
302
|
+
res: "<div class='drop' id='list1'></div>"
|
303
303
|
js: "/Droppables.add\('list1'.*/nodes/22/drop.*node\[favorite_id\]=%23%7Bid%7D"
|
304
304
|
|
305
305
|
drop_var_scope:
|
@@ -36,7 +36,7 @@ each_alternate_class:
|
|
36
36
|
context:
|
37
37
|
node: 'cleanWater'
|
38
38
|
src: "<ol do='pages'><li do='each' alt_class='blue' do='title'/></ol>"
|
39
|
-
res: "<ol><li class=''>crocodiles</li><li class='blue'>status title</li><li class=''>
|
39
|
+
res: "<ol><li class=''>crocodiles</li><li class='blue'>status title</li><li class=''>Kill the bugs</li></ol>"
|
40
40
|
|
41
41
|
each_alternate_class_reverse:
|
42
42
|
context:
|
@@ -15,7 +15,8 @@ calendar_tz:
|
|
15
15
|
context:
|
16
16
|
date: "2006-03-18"
|
17
17
|
src: "<div do='calendar' attr='date' tz='America/New_York' select='posts where #{cal_start} <= date and date < #{cal_end} in project'/>"
|
18
|
-
|
18
|
+
# previous date 00:00 = uses tz in link.
|
19
|
+
res: "/date=2006-02-18\+00%3A00.*<td><p>14</p><ol><li><a href='/oo/projects-list/Clean-Water-project/post27.html'>parc openi…</a></li></ol><\/td>.*<td class='sat ref'>18</td>/"
|
19
20
|
|
20
21
|
calendar_with_blocks:
|
21
22
|
context:
|
@@ -32,8 +33,8 @@ calendar_with_blocks:
|
|
32
33
|
calendar_node_attr:
|
33
34
|
context:
|
34
35
|
date: '2006-03-10'
|
35
|
-
src: "<div do='calendar' attr='created_at' select='
|
36
|
-
res: "/p>10</p>.*
|
36
|
+
src: "<div do='calendar' attr='created_at' select='pages where #{cal_start} <= created_at and created_at < #{cal_end} in site'/>"
|
37
|
+
res: "/p>10</p>.*Kill the b…/"
|
37
38
|
|
38
39
|
calendar_bad_query:
|
39
40
|
src: "<div do='calendar' attr='date' select='posts where #{cal_start} <= starsky and hutch < #{cal_end} in project'/>"
|
@@ -98,13 +98,13 @@ if_has_discussion:
|
|
98
98
|
|
99
99
|
case_ancestor:
|
100
100
|
src: "<r:root><r:pages><r:each join=', '><r:case><r:when eval='is_ancestor?(main)'><b><r:show attr='title'/></b></r:when><r:else><r:show attr='title'/></r:else></r:case></r:each></r:pages></r:root>"
|
101
|
-
res: "Collections, Nature, people, <b>projects list</b>, Skins (layout themes)"
|
101
|
+
res: "Collections, Kill the bugs, Nature, people, <b>projects list</b>, Skins (layout themes)"
|
102
102
|
|
103
103
|
on_if_ancestor_no_class:
|
104
104
|
old_src: "<r:root><r:pages><li do='each' on_if_node='ancestor' join=', '><r:show attr='title'/></li></r:pages></r:root>"
|
105
105
|
src: "<r:root><r:pages><li do='each' on_if='is_ancestor?(main)' join=', '><r:show attr='title'/></li></r:pages></r:root>"
|
106
106
|
tem: '/var3.is_ancestor\?\(@node\)/'
|
107
|
-
res: "<li class=''>Collections</li>, <li class=''>Nature</li>, <li class=''>people</li>, <li class=' on'>projects list</li>, <li class=''>Skins (layout themes)</li>"
|
107
|
+
res: "<li class=''>Collections</li>, <li class=''>Kill the bugs</li>, <li class=''>Nature</li>, <li class=''>people</li>, <li class=' on'>projects list</li>, <li class=''>Skins (layout themes)</li>"
|
108
108
|
|
109
109
|
multiple_class_conditions:
|
110
110
|
src: "<li class='unknown' do='void' one_if='custom_a == 1' two_if='custom_a == 2'>Agrippina</li>"
|
@@ -138,7 +138,7 @@ on_if_attribute_with_edit:
|
|
138
138
|
|
139
139
|
on_if_node_main:
|
140
140
|
src: "<r:parent><r:pages><div do='each' on_if='id == main.id' do='title'>hello</div></r:pages></r:parent>"
|
141
|
-
res: "<div class=''>crocodiles</div><div class='
|
141
|
+
res: "<div class=''>crocodiles</div><div class=' on'>status title</div>"
|
142
142
|
|
143
143
|
if_in_tag:
|
144
144
|
src: "<r:form><p do='if' in='form' do='title'/></r:form><i do='if' in='form' do='title'/>done."
|
@@ -174,13 +174,6 @@ visitor_is_anon:
|
|
174
174
|
src: "<r:if test='visitor.is_anon?'>anonymous<r:else>logged in</r:else></r:if>"
|
175
175
|
res: "anonymous"
|
176
176
|
|
177
|
-
test_in_each:
|
178
|
-
context:
|
179
|
-
node: 'cleanWater'
|
180
|
-
src: "<ul do='pages'><li do='each' on_if='this.title == \"Keeping things clean !\"' do='title'/></ul>"
|
181
|
-
tem: "/var2.prop\['title'\]==\"Keeping things clean !\"/"
|
182
|
-
res: "<ul><li class=''>crocodiles</li><li class=' on'>Keeping things clean !</li><li class=''>status title</li></ul>"
|
183
|
-
|
184
177
|
render_test:
|
185
178
|
src: "<r:can_write?>hello</r:can_write?>"
|
186
179
|
tem: "<% if @node.can_write? %>hello<% end %>"
|