q&!b+O2iWAPxy}ZV|-WnfPmY`TP*8i4tlQHfDumnJg
zHqo|$m3*DrE!^4|AMX(!d?BuFA$o>**cUYo0G!dP{~7?5T)H7UzEOPu0000
+// Encoding: any
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible. We strongly believe that
+// Unicode is the answer to a real internationalized world. Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("Diumenge",
+ "Dilluns",
+ "Dimarts",
+ "Dimecres",
+ "Dijous",
+ "Divendres",
+ "Dissabte",
+ "Diumenge");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary. We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+// Calendar._SDN_len = N; // short day name length
+// Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("dg",
+ "dl",
+ "dt",
+ "dc",
+ "dj",
+ "dv",
+ "ds",
+ "dg");
+
+// First day of the week. "0" means display Sunday first, "1" means display
+// Monday first, etc.
+Calendar._FD = 0;
+
+// full month names
+Calendar._MN = new Array
+("Gener",
+ "Febrer",
+ "Març",
+ "Abril",
+ "Maig",
+ "Juny",
+ "Juliol",
+ "Agost",
+ "Setembre",
+ "Octubre",
+ "Novembre",
+ "Desembre");
+
+// short month names
+Calendar._SMN = new Array
+("Gen",
+ "Feb",
+ "Mar",
+ "Abr",
+ "Mai",
+ "Jun",
+ "Jul",
+ "Ago",
+ "Set",
+ "Oct",
+ "Nov",
+ "Des");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Quant al calendari";
+
+Calendar._TT["ABOUT"] =
+"Selector DHTML de data/hora\n" +
+"(c) dynarch.com 2002-2005 / Autor: Mihai Bazon\n" + // don't translate this this ;-)
+"Per a aconseguir l'última versió visiteu: http://www.dynarch.com/projects/calendar/\n" +
+"Distribuït sota la llicència GNU LGPL. Vegeu http://gnu.org/licenses/lgpl.html per a més detalls." +
+"\n\n" +
+"Selecció de la data:\n" +
+"- Utilitzeu els botons \xab, \xbb per a seleccionar l'any\n" +
+"- Utilitzeu els botons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per a selecciona el mes\n" +
+"- Mantingueu premut el botó del ratolí sobre qualsevol d'aquests botons per a uns selecció més ràpida.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Selecció de l'hora:\n" +
+"- Feu clic en qualsevol part de l'hora per a incrementar-la\n" +
+"- o premeu majúscules per a disminuir-la\n" +
+"- o feu clic i arrossegueu per a una selecció més ràpida.";
+
+Calendar._TT["PREV_YEAR"] = "Any anterior (mantenir per menú)";
+Calendar._TT["PREV_MONTH"] = "Mes anterior (mantenir per menú)";
+Calendar._TT["GO_TODAY"] = "Anar a avui";
+Calendar._TT["NEXT_MONTH"] = "Mes següent (mantenir per menú)";
+Calendar._TT["NEXT_YEAR"] = "Any següent (mantenir per menú)";
+Calendar._TT["SEL_DATE"] = "Sel·lecciona data";
+Calendar._TT["DRAG_TO_MOVE"] = "Arrossega per a moure";
+Calendar._TT["PART_TODAY"] = " (avui)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "Primer mostra el %s";
+
+// This may be locale-dependent. It specifies the week-end days, as an array
+// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "0,6";
+
+Calendar._TT["CLOSE"] = "Tanca";
+Calendar._TT["TODAY"] = "Avui";
+Calendar._TT["TIME_PART"] = "(Majúscules-)Feu clic o arrossegueu per a canviar el valor";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%A, %e de %B de %Y";
+
+Calendar._TT["WK"] = "set";
+Calendar._TT["TIME"] = "Hora:";
diff --git a/public/javascripts/jstoolbar/lang/jstoolbar-ca.js b/public/javascripts/jstoolbar/lang/jstoolbar-ca.js
new file mode 100644
index 0000000..3d652a4
--- /dev/null
+++ b/public/javascripts/jstoolbar/lang/jstoolbar-ca.js
@@ -0,0 +1,16 @@
+jsToolBar.strings = {};
+jsToolBar.strings['Strong'] = 'Negreta';
+jsToolBar.strings['Italic'] = 'Cursiva';
+jsToolBar.strings['Underline'] = 'Subratllat';
+jsToolBar.strings['Deleted'] = 'Barrat';
+jsToolBar.strings['Code'] = 'Codi en línia';
+jsToolBar.strings['Heading 1'] = 'Encapçalament 1';
+jsToolBar.strings['Heading 2'] = 'Encapçalament 2';
+jsToolBar.strings['Heading 3'] = 'Encapçalament 3';
+jsToolBar.strings['Unordered list'] = 'Llista sense ordre';
+jsToolBar.strings['Ordered list'] = 'Llista ordenada';
+jsToolBar.strings['Quote'] = 'Cometes';
+jsToolBar.strings['Unquote'] = 'Sense cometes';
+jsToolBar.strings['Preformatted text'] = 'Text formatat';
+jsToolBar.strings['Wiki link'] = 'Enllaça a una pàgina Wiki';
+jsToolBar.strings['Image'] = 'Imatge';
diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css
index 643ebe7..8c41734 100644
--- a/public/stylesheets/application.css
+++ b/public/stylesheets/application.css
@@ -582,7 +582,6 @@ vertical-align: middle;
.icon-mypage { background-image: url(../images/user_page.png); }
.icon-admin { background-image: url(../images/admin.png); }
.icon-projects { background-image: url(../images/projects.png); }
-.icon-logout { background-image: url(../images/logout.png); }
.icon-help { background-image: url(../images/help.png); }
.icon-attachment { background-image: url(../images/attachment.png); }
.icon-index { background-image: url(../images/index.png); }
diff --git a/public/stylesheets/jstoolbar.css b/public/stylesheets/jstoolbar.css
index 4e9d44b..9514e3e 100644
--- a/public/stylesheets/jstoolbar.css
+++ b/public/stylesheets/jstoolbar.css
@@ -60,15 +60,9 @@
.jstb_del {
background-image: url(../images/jstoolbar/bt_del.png);
}
-.jstb_quote {
- background-image: url(../images/jstoolbar/bt_quote.png);
-}
.jstb_code {
background-image: url(../images/jstoolbar/bt_code.png);
}
-.jstb_br {
- background-image: url(../images/jstoolbar/bt_br.png);
-}
.jstb_h1 {
background-image: url(../images/jstoolbar/bt_h1.png);
}
diff --git a/public/stylesheets/scm.css b/public/stylesheets/scm.css
index d5a879b..ecd3193 100644
--- a/public/stylesheets/scm.css
+++ b/public/stylesheets/scm.css
@@ -1,4 +1,32 @@
+div.changeset-changes ul { margin: 0; padding: 0; }
+div.changeset-changes ul > ul { margin-left: 18px; padding: 0; }
+
+li.change {
+ list-style-type:none;
+ background-image: url(../images/bullet_black.png);
+ background-position: 1px 1px;
+ background-repeat: no-repeat;
+ padding-top: 1px;
+ padding-bottom: 1px;
+ padding-left: 20px;
+ margin: 0;
+}
+li.change.folder { background-image: url(../images/folder_open.png); }
+li.change.folder.change-A { background-image: url(../images/folder_open_add.png); }
+li.change.folder.change-M { background-image: url(../images/folder_open_orange.png); }
+li.change.change-A { background-image: url(../images/bullet_add.png); }
+li.change.change-M { background-image: url(../images/bullet_orange.png); }
+li.change.change-C { background-image: url(../images/bullet_blue.png); }
+li.change.change-R { background-image: url(../images/bullet_purple.png); }
+li.change.change-D { background-image: url(../images/bullet_delete.png); }
+
+li.change .copied-from { font-style: italic; color: #999; font-size: 0.9em; }
+li.change .copied-from:before { content: " - "}
+
+#changes-legend { float: right; font-size: 0.8em; margin: 0; }
+#changes-legend li { float: left; background-position: 5px 0; }
+
table.filecontent { border: 1px solid #ccc; border-collapse: collapse; width:98%; }
table.filecontent th { border: 1px solid #ccc; background-color: #eee; }
table.filecontent th.filename { background-color: #e4e4d4; text-align: left; padding: 0.2em;}
diff --git a/test/functional/repositories_subversion_controller_test.rb b/test/functional/repositories_subversion_controller_test.rb
index 8320be7..245a170 100644
--- a/test/functional/repositories_subversion_controller_test.rb
+++ b/test/functional/repositories_subversion_controller_test.rb
@@ -125,16 +125,18 @@ class RepositoriesSubversionControllerTest < Test::Unit::TestCase
get :revision, :id => 1, :rev => 2
assert_response :success
assert_template 'revision'
- assert_tag :tag => 'tr',
- :child => { :tag => 'td',
+ assert_tag :tag => 'ul',
+ :child => { :tag => 'li',
# link to the entry at rev 2
- :child => { :tag => 'a', :attributes => {:href => 'repositories/entry/ecookbook/test/some/path/in/the/repo?rev=2'},
- :content => %r{/test/some/path/in/the/repo} }
- },
- :child => { :tag => 'td',
- # link to partial diff
- :child => { :tag => 'a', :attributes => { :href => '/repositories/diff/ecookbook/test/some/path/in/the/repo?rev=2' } }
- }
+ :child => { :tag => 'a',
+ :attributes => {:href => '/repositories/entry/ecookbook/test/some/path/in/the/repo?rev=2'},
+ :content => 'repo',
+ # link to partial diff
+ :sibling => { :tag => 'a',
+ :attributes => { :href => '/repositories/diff/ecookbook/test/some/path/in/the/repo?rev=2' }
+ }
+ }
+ }
end
def test_revision_with_repository_pointing_to_a_subdirectory
@@ -145,11 +147,18 @@ class RepositoriesSubversionControllerTest < Test::Unit::TestCase
get :revision, :id => 1, :rev => 2
assert_response :success
assert_template 'revision'
- assert_tag :tag => 'tr',
- :child => { :tag => 'td', :content => %r{/test/some/path/in/the/repo} },
- :child => { :tag => 'td',
- :child => { :tag => 'a', :attributes => { :href => '/repositories/diff/ecookbook/path/in/the/repo?rev=2' } }
- }
+ assert_tag :tag => 'ul',
+ :child => { :tag => 'li',
+ # link to the entry at rev 2
+ :child => { :tag => 'a',
+ :attributes => {:href => '/repositories/entry/ecookbook/path/in/the/repo?rev=2'},
+ :content => 'repo',
+ # link to partial diff
+ :sibling => { :tag => 'a',
+ :attributes => { :href => '/repositories/diff/ecookbook/path/in/the/repo?rev=2' }
+ }
+ }
+ }
end
def test_diff
diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb
index 6db029a..7ef47f5 100644
--- a/test/unit/helpers/application_helper_test.rb
+++ b/test/unit/helpers/application_helper_test.rb
@@ -38,10 +38,18 @@ class ApplicationHelperTest < HelperTestCase
'This is a link: http://foo.bar.' => 'This is a link: http://foo.bar.',
'A link (eg. http://foo.bar).' => 'A link (eg. http://foo.bar).',
'http://foo.bar/foo.bar#foo.bar.' => 'http://foo.bar/foo.bar#foo.bar.',
+ 'http://www.foo.bar/Test_(foobar)' => 'http://www.foo.bar/Test_(foobar)',
+ '(see inline link : http://www.foo.bar/Test_(foobar))' => '(see inline link : http://www.foo.bar/Test_(foobar))',
+ '(see inline link : http://www.foo.bar/Test)' => '(see inline link : http://www.foo.bar/Test)',
+ '(see inline link : http://www.foo.bar/Test).' => '(see inline link : http://www.foo.bar/Test).',
+ '(see "inline link":http://www.foo.bar/Test_(foobar))' => '(see inline link)',
+ '(see "inline link":http://www.foo.bar/Test)' => '(see inline link)',
+ '(see "inline link":http://www.foo.bar/Test).' => '(see inline link).',
'www.foo.bar' => 'www.foo.bar',
'http://foo.bar/page?p=1&t=z&s=' => 'http://foo.bar/page?p=1&t=z&s=',
'http://foo.bar/page#125' => 'http://foo.bar/page#125',
'http://foo@www.bar.com' => 'http://foo@www.bar.com',
+ 'http://foo:bar@www.bar.com' => 'http://foo:bar@www.bar.com',
'ftp://foo.bar' => 'ftp://foo.bar',
}
to_test.each { |text, result| assert_equal "#{result}
", textilizable(text) }