[mb-commits] branch, beta, updated. Merge remote-tracking branch 'reosarevok/mbs-5304' into beta Allowing us to u...

MusicBrainz Git Server <[email protected]> Mon, 21 Jan 2013 08:26:20 +0000
Newsgroups gmane.comp.audio.musicbrainz.cvs
Message-ID <E1TxChw-0005CW-2q@wiley>
The branch, beta has been updated
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=0cbc8970b4efa9803f5bccf5084e8afea282e440 (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=d36dd30bbbfb85346961ed296189bfaa2b69b418 (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=fd2d59b65bf4845e9d8dd2e7bc5866a64655514b (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=d66c84a700f7097f5c847f46e8335449f64461a0 (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=97d759293a3cfc2b82c68f56b49d274726ddebb7 (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=ff47da870b77af88205e965ed01582a566186169 (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=cd305994bd797dd7392a662f0df6774e68b50e27 (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=eba93dc333281d28dfd2f7586126af368cd31739 (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=e2515c95d00ec83e161530e98233e2d59fb77527 (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=e8722b74b290c6566579754197a71a7ca8816275 (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=4a3dd880afbaafec4dceb7ba7bfc354c8e3e4b5c (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=2e204faa54288ded3ffed7355009bfe91b41b50c (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=02edcd8f8799ac90a479fac11fa0c3b7c83f2f1a (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=474a61a07abdcad5b48fc16c4488395b552019e7 (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=bf333ca6d7c3cc31f56a7fbdb0f9e216d58eddc2 (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=4742273b8eee81de79c2f49c820cadccf31b659d (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=c6e09020d879e588deabcd44f597a375f7970b40 (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=b4718ce593e2b90a5f2d7fc22d28bd5f5f7edb2f (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=8e99dc2e3204c3abca4a1e2212188920e42c8e76 (commit)
       via  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=e0509c6e68d7019d445843d6e7dad0379e122912 (commit)
      from  http://git.musicbrainz.org/gitweb/?p=musicbrainz-server/core.git;a=commit;h=1300f0c144a48105c2016253d209da5cfd7e2408 (commit)

Summary of changes:
 lib/MusicBrainz/Server/Data/URL.pm                 |    2 +-
 lib/MusicBrainz/Server/Filters.pm                  |   24 +++++++----
 root/components/common-macros.tt                   |    4 +-
 root/components/forms.tt                           |   20 +++------
 root/release/edit/information.tt                   |    4 +-
 root/release/edit/tracklist.tt                     |   38 ++++++-----------
 root/static/images/icons/add_row.png               |  Bin 515 -> 450 bytes
 root/static/images/icons/collapse.png              |  Bin 272 -> 246 bytes
 root/static/images/icons/delete_row.png            |  Bin 231 -> 180 bytes
 root/static/images/icons/down.png                  |  Bin 271 -> 243 bytes
 root/static/images/icons/expand.png                |  Bin 286 -> 241 bytes
 root/static/images/icons/filter.png                |  Bin 334 -> 250 bytes
 root/static/images/icons/guesscase.32x32.png       |  Bin 596 -> 316 bytes
 root/static/images/icons/guesscase.png             |  Bin 417 -> 333 bytes
 root/static/images/icons/help.png                  |  Bin 268 -> 211 bytes
 root/static/images/icons/mblookup-tagger.png       |  Bin 417 -> 390 bytes
 root/static/images/icons/track-down.png            |  Bin 321 -> 271 bytes
 root/static/images/icons/track-up.png              |  Bin 331 -> 274 bytes
 root/static/images/icons/up.png                    |  Bin 276 -> 246 bytes
 root/static/images/icons/warning.png               |  Bin 2854 -> 2141 bytes
 .../images/ui-bg_gloss-wave_35_f6a828_500x100.png  |  Bin 3762 -> 1986 bytes
 root/static/scripts/edit/MB/Control/URLCleanup.js  |    4 +-
 root/static/scripts/tests/Control/URLCleanup.js    |    4 ++
 root/static/styles/extra/jquery/tablesort.css      |   12 -----
 root/static/styles/forms.css                       |   45 ++++++++++++++++++++
 root/static/styles/layout.css                      |   12 ++++-
 t/lib/t/MusicBrainz/Server/Filters.pm              |   22 +++++-----
 27 files changed, 111 insertions(+), 80 deletions(-)
 delete mode 100644 root/static/styles/extra/jquery/tablesort.css

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 0cbc8970b4efa9803f5bccf5084e8afea282e440
Merge: d36dd30 d66c84a
Author: Ian McEwen <[email protected]>
Date:   Mon Jan 21 01:25:47 2013 -0700

    Merge remote-tracking branch 'reosarevok/mbs-5304' into beta
    
    * reosarevok/mbs-5304:
      Allowing us to use permanent citation URLs from Trove
    
    Conflicts:
    	lib/MusicBrainz/Server/Data/URL.pm
    	root/static/scripts/edit/MB/Control/URLCleanup.js

diff --cc lib/MusicBrainz/Server/Data/URL.pm
index 30584dc,b46146e..fff5758
--- a/lib/MusicBrainz/Server/Data/URL.pm
+++ b/lib/MusicBrainz/Server/Data/URL.pm
@@@ -53,8 -53,7 +53,8 @@@ my %URL_SPECIALIZATIONS = 
      'SoundCloud'      => qr{^https?://(?:www.)?soundcloud.com/}i,
      'SpiritOfMetal'   => qr{^https?://(?:www.)?spirit-of-metal.com/}i,
      'Theatricalia'    => qr{^https?://(?:www.)?theatricalia.com/}i,
 +    'TheSession'      => qr{^https?://(?:www.)?thesession.org/}i,
-     'Trove'           => qr{^https?://(?:www.)?trove.nla.gov.au/}i,
+     'Trove'           => qr{^https?://(?:www.)?(?:trove.)?nla.gov.au/}i,
      'Twitter'         => qr{^https?://(?:www.)?twitter.com/}i,
      'VGMdb'           => qr{^https?://(?:www.)?vgmdb.net/}i,
      'Wikipedia'       => qr{^https?://([\w-]{2,})\.wikipedia.org/wiki/}i,
diff --cc root/components/common-macros.tt
index c130741,fff3431..5bed815
--- a/root/components/common-macros.tt
+++ b/root/components/common-macros.tt
@@@ -716,10 -718,9 +716,10 @@@ END -%
      ELSIF url.url.host.search('ocremix.org'); 'ocremix';
      ELSIF url.url.host.search('musik-sammler.de'); 'musiksammler';
      ELSIF url.url.host.search('encyclopedisque.fr'); 'encyclopedisque';
-     ELSIF url.url.host.search('trove.nla.gov.au'); 'trove';
+     ELSIF url.url.host.search('nla.gov.au'); 'trove';
      ELSIF url.url.host.search('rockinchina.com'); 'ric';
      ELSIF url.url.host.search('dhhu.dk'); 'dhhu';
 +    ELSIF url.url.host.search('thesession.org'); 'thesession';
      ELSIF url.url.as_string.search('recmusic.org/lieder'); 'lieder';
      ELSE; '';
  END -%]
diff --cc root/static/scripts/edit/MB/Control/URLCleanup.js
index 677d5b2,cd6a4a4..309fada
--- a/root/static/scripts/edit/MB/Control/URLCleanup.js
+++ b/root/static/scripts/edit/MB/Control/URLCleanup.js
@@@ -373,7 -373,7 +373,7 @@@ MB.constants.CLEANUPS = 
          type: MB.constants.LINK_TYPES.vgmdb
      },
      otherdatabases: {
-         match: new RegExp("^(https?://)?(www\\.)?(rateyourmusic\\.com/|worldcat\\.org/|musicmoz\\.org/|45cat\\.com/|musik-sammler\\.de/|discografia\\.dds\\.it/|tallinn\\.ester\\.ee/|tartu\\.ester\\.ee/|encyclopedisque\\.fr/|discosdobrasil\\.com\\.br/|isrc\\.ncl\\.edu\\.tw/|rolldabeats\\.com/|psydb\\.net/|metal-archives\\.com/|spirit-of-metal\\.com/|ibdb\\.com/|lortel.\\org/|theatricalia\\.com/|ocremix\\.org/|trove\\.nla\\.gov\\.au/|(wiki\\.)?rockinchina\\.com|(www\\.)?dhhu\\.dk|thesession\\.org)", "i"),
 -        match: new RegExp("^(https?://)?(www\\.)?(rateyourmusic\\.com/|worldcat\\.org/|musicmoz\\.org/|45cat\\.com/|musik-sammler\\.de/|discografia\\.dds\\.it/|tallinn\\.ester\\.ee/|tartu\\.ester\\.ee/|encyclopedisque\\.fr/|discosdobrasil\\.com\\.br/|isrc\\.ncl\\.edu\\.tw/|rolldabeats\\.com/|psydb\\.net/|metal-archives\\.com/|spirit-of-metal\\.com/|ibdb\\.com/|lortel.\\org/|theatricalia\\.com/|ocremix\\.org/|(trove\\.)?nla\\.gov\\.au/|(wiki\\.)?rockinchina\\.com|(www\\.)?dhhu\\.dk)", "i"),
++        match: new RegExp("^(https?://)?(www\\.)?(rateyourmusic\\.com/|worldcat\\.org/|musicmoz\\.org/|45cat\\.com/|musik-sammler\\.de/|discografia\\.dds\\.it/|tallinn\\.ester\\.ee/|tartu\\.ester\\.ee/|encyclopedisque\\.fr/|discosdobrasil\\.com\\.br/|isrc\\.ncl\\.edu\\.tw/|rolldabeats\\.com/|psydb\\.net/|metal-archives\\.com/|spirit-of-metal\\.com/|ibdb\\.com/|lortel.\\org/|theatricalia\\.com/|ocremix\\.org/|(trove\\.)?nla\\.gov\\.au/|(wiki\\.)?rockinchina\\.com|(www\\.)?dhhu\\.dk|thesession\\.org)", "i"),
          type: MB.constants.LINK_TYPES.otherdatabases,
          clean: function(url) {
              //Removing cruft from Worldcat URLs

commit d36dd30bbbfb85346961ed296189bfaa2b69b418
Merge: fd2d59b e2515c9
Author: Ian McEwen <[email protected]>
Date:   Mon Jan 21 01:23:31 2013 -0700

    Merge branch 'mbs-5044-partial-new' into beta
    
    * mbs-5044-partial-new:
      reoptimize changed add_row.png
      MBS-5044: losslessly optimize ui-bg_gloss-wave_35_f6a828_500x100.png
      style: wrap new forms.css declarations at 80 characters
      MBS-5044: remove tablesort.css, which is unused
      MBS-5044: remove remaining <img> uses of add_row/delete_row
      MBS-5044: collapse forms.css declarations somewhat
      optimize .png files
      MBS-5044: migrate inline & non-background style images:
      MBS-5044: don't use absolute paths for favicon images
    
    Conflicts:
    	root/release/edit/information.tt

diff --cc root/release/edit/information.tt
index 44751c8,c1f3008..1bf8151
--- a/root/release/edit/information.tt
+++ b/root/release/edit/information.tt
@@@ -99,9 -99,9 +99,9 @@@
  
          [% WRAPPER form_row %]
            <div class="add-label" style="text-align: right; width: 100%; ">
 -            <span class="add-label" style="padding: 0 1em;">[% l('Add Label') %]</span>
 +            <span class="add-label" style="padding: 0 1em;">[% lp('Add Label', 'header') %]</span>
              <a class="icon add-label" href="#add_label" style="margin-right: 14px;">
-               <img src="[% c.uri_for('/static/images/icons/add_row.png') %]" title="[% lp('Add Label', 'button/menu') %]" alt="[% lp('Add Label', 'button/menu') %]" />
 -              <div class="icon img" title="[% l('Add Label') %]"></div>
++              <div class="icon img" title="[% lp('Add Label', 'button/menu') %]"></div>
              </a>
            </div>
          [% END %]

commit fd2d59b65bf4845e9d8dd2e7bc5866a64655514b
Merge: 1300f0c 97d7592
Author: Ian McEwen <[email protected]>
Date:   Mon Jan 21 01:21:37 2013 -0700

    Merge branch 'mbs-5614-edit-note-links-https' into beta
    
    * mbs-5614-edit-note-links-https:
      MBS-5614-ext: only the first MBID link was getting expanded, and switch to relative links
      MBS-5614: update and document tests
      MBS-5614: Use a new _make_link function to produce entity links conditionally
      MBS-5614-aux: link entities to correct ssl/non-ssl in annotations
      MBS-5614: Link edit notes (and annotation wikidocs links) correctly depending on https/non-https state


commit d66c84a700f7097f5c847f46e8335449f64461a0
Author: reosarevok <[email protected]>
Date:   Tue Jan 15 14:35:09 2013 +0000

    Allowing us to use permanent citation URLs from Trove

diff --git a/lib/MusicBrainz/Server/Data/URL.pm b/lib/MusicBrainz/Server/Data/URL.pm
index 13f7c56..b46146e 100644
--- a/lib/MusicBrainz/Server/Data/URL.pm
+++ b/lib/MusicBrainz/Server/Data/URL.pm
@@ -53,7 +53,7 @@ my %URL_SPECIALIZATIONS = (
     'SoundCloud'      => qr{^https?://(?:www.)?soundcloud.com/}i,
     'SpiritOfMetal'   => qr{^https?://(?:www.)?spirit-of-metal.com/}i,
     'Theatricalia'    => qr{^https?://(?:www.)?theatricalia.com/}i,
-    'Trove'           => qr{^https?://(?:www.)?trove.nla.gov.au/}i,
+    'Trove'           => qr{^https?://(?:www.)?(?:trove.)?nla.gov.au/}i,
     'Twitter'         => qr{^https?://(?:www.)?twitter.com/}i,
     'VGMdb'           => qr{^https?://(?:www.)?vgmdb.net/}i,
     'Wikipedia'       => qr{^https?://([\w-]{2,})\.wikipedia.org/wiki/}i,
diff --git a/root/components/common-macros.tt b/root/components/common-macros.tt
index ee84d23..fff3431 100644
--- a/root/components/common-macros.tt
+++ b/root/components/common-macros.tt
@@ -718,7 +718,7 @@ END -%]
     ELSIF url.url.host.search('ocremix.org'); 'ocremix';
     ELSIF url.url.host.search('musik-sammler.de'); 'musiksammler';
     ELSIF url.url.host.search('encyclopedisque.fr'); 'encyclopedisque';
-    ELSIF url.url.host.search('trove.nla.gov.au'); 'trove';
+    ELSIF url.url.host.search('nla.gov.au'); 'trove';
     ELSIF url.url.host.search('rockinchina.com'); 'ric';
     ELSIF url.url.host.search('dhhu.dk'); 'dhhu';
     ELSIF url.url.as_string.search('recmusic.org/lieder'); 'lieder';
diff --git a/root/static/scripts/edit/MB/Control/URLCleanup.js b/root/static/scripts/edit/MB/Control/URLCleanup.js
index 74966f8..cd6a4a4 100644
--- a/root/static/scripts/edit/MB/Control/URLCleanup.js
+++ b/root/static/scripts/edit/MB/Control/URLCleanup.js
@@ -373,7 +373,7 @@ MB.constants.CLEANUPS = {
         type: MB.constants.LINK_TYPES.vgmdb
     },
     otherdatabases: {
-        match: new RegExp("^(https?://)?(www\\.)?(rateyourmusic\\.com/|worldcat\\.org/|musicmoz\\.org/|45cat\\.com/|musik-sammler\\.de/|discografia\\.dds\\.it/|tallinn\\.ester\\.ee/|tartu\\.ester\\.ee/|encyclopedisque\\.fr/|discosdobrasil\\.com\\.br/|isrc\\.ncl\\.edu\\.tw/|rolldabeats\\.com/|psydb\\.net/|metal-archives\\.com/|spirit-of-metal\\.com/|ibdb\\.com/|lortel.\\org/|theatricalia\\.com/|ocremix\\.org/|trove\\.nla\\.gov\\.au/|(wiki\\.)?rockinchina\\.com|(www\\.)?dhhu\\.dk)", "i"),
+        match: new RegExp("^(https?://)?(www\\.)?(rateyourmusic\\.com/|worldcat\\.org/|musicmoz\\.org/|45cat\\.com/|musik-sammler\\.de/|discografia\\.dds\\.it/|tallinn\\.ester\\.ee/|tartu\\.ester\\.ee/|encyclopedisque\\.fr/|discosdobrasil\\.com\\.br/|isrc\\.ncl\\.edu\\.tw/|rolldabeats\\.com/|psydb\\.net/|metal-archives\\.com/|spirit-of-metal\\.com/|ibdb\\.com/|lortel.\\org/|theatricalia\\.com/|ocremix\\.org/|(trove\\.)?nla\\.gov\\.au/|(wiki\\.)?rockinchina\\.com|(www\\.)?dhhu\\.dk)", "i"),
         type: MB.constants.LINK_TYPES.otherdatabases,
         clean: function(url) {
             //Removing cruft from Worldcat URLs
@@ -383,7 +383,7 @@ MB.constants.CLEANUPS = {
             //Standardising ESTER to their default parameters
             url = url.replace(/^(?:https?:\/\/)?(tallinn|tartu)\.ester\.ee\/record=([^~]+)(?:.*)?$/, "http://$1.ester.ee/record=$2~S1*est");
             //Standardising Trove
-            url = url.replace(/^(?:https?:\/\/)?trove.nla.gov.au\/([^\/]+)\/([^\/?]+)(?:\?.*)?$/, "http://trove.nla.gov.au/$1/$2");
+            url = url.replace(/^(?:https?:\/\/)?trove.nla.gov.au\/work\/([^\/?]+)(?:\?.*)?$/, "http://trove.nla.gov.au/work/$1");
             //Standardising RIC
             url = url.replace(/^(?:https?:\/\/)?(wiki|www)\.rockinchina\.com\/w\/(.*)+$/, "http://www.rockinchina.com/w/$2");
             //Standardising DHHU
diff --git a/root/static/scripts/tests/Control/URLCleanup.js b/root/static/scripts/tests/Control/URLCleanup.js
index 3a81b83..a2b9d4c 100644
--- a/root/static/scripts/tests/Control/URLCleanup.js
+++ b/root/static/scripts/tests/Control/URLCleanup.js
@@ -88,6 +88,10 @@ MB.tests.URLCleanup.GuessType = function() {
                     MB.constants.LINK_TYPES.downloadfree.recording
                 ],
                 [
+                    'release', 'http://nla.gov.au/anbd.bib-an11701020',
+                    MB.constants.LINK_TYPES.otherdatabases.release
+                ],
+                [
                     'release', 'http://www.jamendo.com/en/list/a84763/crossing-state-lines',
                     MB.constants.LINK_TYPES.downloadfree.release
                 ],

commit 97d759293a3cfc2b82c68f56b49d274726ddebb7
Author: Ian McEwen <[email protected]>
Date:   Thu Jan 3 05:10:00 2013 -0700

    MBS-5614-ext: only the first MBID link was getting expanded, and switch to relative links

diff --git a/lib/MusicBrainz/Server/Filters.pm b/lib/MusicBrainz/Server/Filters.pm
index 4222b88..764e10d 100644
--- a/lib/MusicBrainz/Server/Filters.pm
+++ b/lib/MusicBrainz/Server/Filters.pm
@@ -86,7 +86,7 @@ sub format_wikitext
        [0-9a-f]{4} -
        [0-9a-f]{4} -
        [0-9a-f]{12})(?:\|([^\]]+))?\]
-    /_make_link($1,$2,$3)/eix;
+    /_make_link($1,$2,$3)/eixg;
 
     return decode(
         'utf-8',
@@ -105,7 +105,7 @@ sub _make_link
     my ($type, $mbid, $content) = @_;
     $content //= "$type:$mbid";
     my $ws = DBDefs->WEB_SERVER;
-    return "<a href=\"//$ws/$type/$mbid/\">$content</a>"
+    return "<a href=\"/$type/$mbid/\">$content</a>"
 }
 
 sub _display_trimmed {
diff --git a/t/lib/t/MusicBrainz/Server/Filters.pm b/t/lib/t/MusicBrainz/Server/Filters.pm
index 6699184..bb274d5 100644
--- a/t/lib/t/MusicBrainz/Server/Filters.pm
+++ b/t/lib/t/MusicBrainz/Server/Filters.pm
@@ -45,9 +45,9 @@ test 'Wiki documentation syntax' => sub {
     for my $type (qw( artist label recording release release-group url work )) {
         my $mbid = 'b3b1e2b3-cbb8-4b46-a7d0-0031ec13492c';
         like(format_wikitext("[$type:$mbid]"),
-             qr{<a href="//localhost/$type/$mbid/">$type:$mbid</a>}, "plain [$type:mbid] links");
+             qr{<a href="/$type/$mbid/">$type:$mbid</a>}, "plain [$type:mbid] links");
         like(format_wikitext("[$type:$mbid|alt text]"),
-             qr{<a href="//localhost/$type/$mbid/">alt text</a>}, "[$type:mbid|text] links");
+             qr{<a href="/$type/$mbid/">alt text</a>}, "[$type:mbid|text] links");
     }
 };
 

commit ff47da870b77af88205e965ed01582a566186169
Author: Ian McEwen <[email protected]>
Date:   Thu Jan 3 01:49:10 2013 -0700

    MBS-5614: update and document tests

diff --git a/t/lib/t/MusicBrainz/Server/Filters.pm b/t/lib/t/MusicBrainz/Server/Filters.pm
index 3c3ad28..6699184 100644
--- a/t/lib/t/MusicBrainz/Server/Filters.pm
+++ b/t/lib/t/MusicBrainz/Server/Filters.pm
@@ -7,20 +7,20 @@ use utf8;
 use MusicBrainz::Server::Filters qw( format_editnote format_wikitext );
 
 test 'Edit note syntax' => sub {
-    is(format_editnote("'''bold'''"), '<strong>bold</strong>');
-    is(format_editnote("''italic''"), '<em>italic</em>');
-    is(format_editnote("'''''bold + italic'''''"), '<em><strong>bold + italic</strong></em>');
+    is(format_editnote("'''bold'''"), '<strong>bold</strong>', 'triple-quotes produce bold');
+    is(format_editnote("''italic''"), '<em>italic</em>', 'double-quotes produce italics');
+    is(format_editnote("'''''bold + italic'''''"), '<em><strong>bold + italic</strong></em>', 'double and triple quotes together produce bold + italic');
     is(format_editnote("<script>alert('in ur edit notez')</script>"),
-       "&lt;script&gt;alert('in ur edit notez')&lt;/script&gt;");
+       "&lt;script&gt;alert('in ur edit notez')&lt;/script&gt;", 'script tags are sanitized');
 
     is(format_editnote("http://musicbrainz.org"),
-       '<a href="http://musicbrainz.org">http://musicbrainz.org</a>');
+       '<a href="http://musicbrainz.org">http://musicbrainz.org</a>', 'plain-http links are created');
 
     is(format_editnote("https://musicbrainz.org"),
-       '<a href="https://musicbrainz.org">https://musicbrainz.org</a>');
+       '<a href="https://musicbrainz.org">https://musicbrainz.org</a>', 'https links are created');
 
     is(format_editnote("www.musicbrainz.org"),
-       '<a href="http://www.musicbrainz.org">www.musicbrainz.org</a>');
+       '<a href="http://www.musicbrainz.org">www.musicbrainz.org</a>', 'links marked only by www. get linked');
 
     is(format_editnote("http://allmusic.com/artist/house-of-lords-p4516/biography"),
        '<a href="http://allmusic.com/artist/house-of-lords-p4516/biography">http://allmusic.com/artist/house-of-lords-p4516/&#8230;</a>');
@@ -35,19 +35,19 @@ test 'Edit note syntax' => sub {
        '<a href="http://www.discogs.com/artist/House+Of+Lords+(2)">http://www.discogs.com/artist/House+Of+Lords+(2)</a>');
 
     is(format_editnote("Problems with this edit\n\n1."),
-       "Problems with this edit<br/><br/>1.");
+       "Problems with this edit<br/><br/>1.", 'newlines -> br');
 
     like(format_editnote("Please see edit   1"),
-         qr{Please see <a href=".*">edit #1</a>});
+         qr{Please see <a href=".*">edit #1</a>}, 'edit links work with many spaces');
 };
 
 test 'Wiki documentation syntax' => sub {
     for my $type (qw( artist label recording release release-group url work )) {
         my $mbid = 'b3b1e2b3-cbb8-4b46-a7d0-0031ec13492c';
         like(format_wikitext("[$type:$mbid]"),
-             qr{<a href="http://localhost/$type/$mbid/">http://localhost/$type/$mbid/</a>});
+             qr{<a href="//localhost/$type/$mbid/">$type:$mbid</a>}, "plain [$type:mbid] links");
         like(format_wikitext("[$type:$mbid|alt text]"),
-             qr{<a href="http://localhost/$type/$mbid/">alt text</a>});
+             qr{<a href="//localhost/$type/$mbid/">alt text</a>}, "[$type:mbid|text] links");
     }
 };
 

commit cd305994bd797dd7392a662f0df6774e68b50e27
Author: Ian McEwen <[email protected]>
Date:   Thu Jan 3 01:48:56 2013 -0700

    MBS-5614: Use a new _make_link function to produce entity links conditionally

diff --git a/lib/MusicBrainz/Server/Filters.pm b/lib/MusicBrainz/Server/Filters.pm
index 0e82f95..4222b88 100644
--- a/lib/MusicBrainz/Server/Filters.pm
+++ b/lib/MusicBrainz/Server/Filters.pm
@@ -78,7 +78,6 @@ sub format_wikitext
     $text =~ s/>/&gt;/g;
 
     # MBS-2437: Expand MBID entity links
-    my $ws = DBDefs->WEB_SERVER;
     $text =~ s/
       \[
       (artist|label|recording|release|release-group|url|work):
@@ -86,18 +85,8 @@ sub format_wikitext
        [0-9a-f]{4} -
        [0-9a-f]{4} -
        [0-9a-f]{4} -
-       [0-9a-f]{12})\]
-    /<a href="\/\/$ws\/$1\/$2\/">$1:$2<\/a>/ix;
-
-    $text =~ s/
-      \[
-      (artist|label|recording|release|release-group|url|work):
-      ([0-9a-f]{8} -
-       [0-9a-f]{4} -
-       [0-9a-f]{4} -
-       [0-9a-f]{4} -
-       [0-9a-f]{12})\|([^\]]+)\]
-    /<a href="\/\/$ws\/$1\/$2\/">$3<\/a>/ix;
+       [0-9a-f]{12})(?:\|([^\]]+))?\]
+    /_make_link($1,$2,$3)/eix;
 
     return decode(
         'utf-8',
@@ -111,6 +100,14 @@ sub format_wikitext
       );
 }
 
+sub _make_link
+{
+    my ($type, $mbid, $content) = @_;
+    $content //= "$type:$mbid";
+    my $ws = DBDefs->WEB_SERVER;
+    return "<a href=\"//$ws/$type/$mbid/\">$content</a>"
+}
+
 sub _display_trimmed {
     my $url = shift;
 

commit eba93dc333281d28dfd2f7586126af368cd31739
Merge: c6e0902 d45b07d
Author: Ian McEwen <[email protected]>
Date:   Thu Jan 3 01:33:29 2013 -0700

    Merge branch 'master' into mbs-5614-edit-note-links-https


commit e2515c95d00ec83e161530e98233e2d59fb77527
Author: Ian McEwen <[email protected]>
Date:   Thu Jan 3 01:28:56 2013 -0700

    reoptimize changed add_row.png

diff --git a/root/static/images/icons/add_row.png b/root/static/images/icons/add_row.png
index c0f9eb4..e13f546 100644
Binary files a/root/static/images/icons/add_row.png and b/root/static/images/icons/add_row.png differ

commit e8722b74b290c6566579754197a71a7ca8816275
Merge: 4a3dd88 d45b07d
Author: Ian McEwen <[email protected]>
Date:   Thu Jan 3 01:27:44 2013 -0700

    Merge branch 'master' into mbs-5044-partial-new
    
    Conflicts:
    	root/components/forms.tt
    	root/static/images/icons/add_row.png

diff --cc root/components/forms.tt
index 438d989,59ddc73..6881d0f
--- a/root/components/forms.tt
+++ b/root/components/forms.tt
@@@ -102,15 -102,19 +102,15 @@@
        <div class="form-row-text-list">
            <div style="display: none;"
                 class="text-list-row [%- r.form.field(field_name).html_name _ "-template" -%]">
-               <input type="text" value="" name="" class="value">
+               <input type="text" value="" name="" class="value" />
 -              <button class="nobutton icon remove">
 -                <img src="[% c.uri_for('/static/images/icons/delete_row.png') %]"
 -                     title="[% l('Remove {item}', item => item_name) %]"
 -                       alt="[% l('Remove {item}', item => item_name) %]" />
 +              <button class="nobutton icon remove" href="#remove_row">
 +                <div class="remove-item icon img" title="[% l('Remove {item}', item => item_name) %]"></div>
                </button>
            </div>
-           <div style="text-align: right; width: 100%; ">
+           <div class="form-row-add">
 -            <button class="nobutton add">
 -              <span class="add-row">
 -                [% l('Add {item}', item => item_name) %]
 -              </span>
 -              <img src="[% c.uri_for('/static/images/icons/add_row.png') %]" />
 +            <button class="nobutton add" style="margin-right: 8px;">
 +              <span class="add-row" style="padding: 0 1em;">[% l('Add {item}', item => item_name) %]</span>
 +              <div class="add-item icon img" title="[% l('Add {item}', item => item_name) %]"></div>
              </button>
            </div>
        </div>

commit 4a3dd880afbaafec4dceb7ba7bfc354c8e3e4b5c
Author: Ian McEwen <[email protected]>
Date:   Wed Oct 10 03:20:50 2012 -0700

    MBS-5044: losslessly optimize ui-bg_gloss-wave_35_f6a828_500x100.png

diff --git a/root/static/lib/jquery.ui/themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/root/static/lib/jquery.ui/themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
index 39d5824..8bf6a3c 100644
Binary files a/root/static/lib/jquery.ui/themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png and b/root/static/lib/jquery.ui/themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png differ

commit 2e204faa54288ded3ffed7355009bfe91b41b50c
Author: Ian McEwen <[email protected]>
Date:   Wed Oct 10 03:11:13 2012 -0700

    style: wrap new forms.css declarations at 80 characters

diff --git a/root/static/styles/forms.css b/root/static/styles/forms.css
index 65e84d1..80ea780 100644
--- a/root/static/styles/forms.css
+++ b/root/static/styles/forms.css
@@ -320,7 +320,8 @@ input.add-artist-credit, input.add-track, a.add-label div, div.add-item {
     background-image: url('../images/icons/add_row.png');
 }
 
-input.remove-artist-credit, input.remove-track, input.remove-disc, a.remove-label div, div.remove-item {
+input.remove-artist-credit, input.remove-track, input.remove-disc,
+a.remove-label div, div.remove-item {
     background-image: url('../images/icons/delete_row.png');
 }
 

commit 02edcd8f8799ac90a479fac11fa0c3b7c83f2f1a
Author: Ian McEwen <[email protected]>
Date:   Wed Oct 10 03:09:08 2012 -0700

    MBS-5044: remove tablesort.css, which is unused

diff --git a/root/static/styles/extra/jquery/tablesort.css b/root/static/styles/extra/jquery/tablesort.css
deleted file mode 100644
index d649f0a..0000000
--- a/root/static/styles/extra/jquery/tablesort.css
+++ /dev/null
@@ -1,12 +0,0 @@
-.header {
-    background-repeat: no-repeat;
-    background-position: center right;
-    padding-right: 12pt;
-    cursor: pointer;
-}
-.headerSortUp {
-    background-image: url(../images/icon/a.gif);
-}
-.headerSortDown {
-    background-image: url(../images/icon/d.gif);
-}

commit 474a61a07abdcad5b48fc16c4488395b552019e7
Author: Ian McEwen <[email protected]>
Date:   Wed Oct 10 02:43:53 2012 -0700

    MBS-5044: remove remaining <img> uses of add_row/delete_row

diff --git a/root/components/forms.tt b/root/components/forms.tt
index 0bdfe06..438d989 100644
--- a/root/components/forms.tt
+++ b/root/components/forms.tt
@@ -104,15 +104,13 @@
                class="text-list-row [%- r.form.field(field_name).html_name _ "-template" -%]">
               <input type="text" value="" name="" class="value">
               <button class="nobutton icon remove" href="#remove_row">
-                <img src="[% c.uri_for('/static/images/icons/delete_row.png') %]"
-                     title="[% l('Remove {item}', item => item_name) %]"
-                       alt="[% l('Remove {item}', item => item_name) %]" />
+                <div class="remove-item icon img" title="[% l('Remove {item}', item => item_name) %]"></div>
               </button>
           </div>
           <div style="text-align: right; width: 100%; ">
             <button class="nobutton add" style="margin-right: 8px;">
               <span class="add-row" style="padding: 0 1em;">[% l('Add {item}', item => item_name) %]</span>
-              <img src="[% c.uri_for('/static/images/icons/add_row.png') %]" />
+              <div class="add-item icon img" title="[% l('Add {item}', item => item_name) %]"></div>
             </button>
           </div>
       </div>
diff --git a/root/release/edit/information.tt b/root/release/edit/information.tt
index 5d5cf3e..31df011 100644
--- a/root/release/edit/information.tt
+++ b/root/release/edit/information.tt
@@ -90,7 +90,7 @@
           <span class="remove-label">
             [%- r.hidden(field.field('deleted')) -%]
             <a class="icon remove-label" href="#remove_label">
-              <img src="[% c.uri_for('/static/images/icons/delete_row.png') %]" title="[% l('Remove Label') %]" alt="[% l('Remove Label') %]" />
+              <div class="icon img" title="[% l('Remove Label') %]"></div>
             </a>
           </span>
 
@@ -101,7 +101,7 @@
           <div class="add-label" style="text-align: right; width: 100%; ">
             <span class="add-label" style="padding: 0 1em;">[% l('Add Label') %]</span>
             <a class="icon add-label" href="#add_label" style="margin-right: 14px;">
-              <img src="[% c.uri_for('/static/images/icons/add_row.png') %]" title="[% l('Add Label') %]" alt="[% l('Add Label') %]" />
+              <div class="icon img" title="[% l('Add Label') %]"></div>
             </a>
           </div>
         [% END %]
diff --git a/root/static/styles/forms.css b/root/static/styles/forms.css
index 2e191cf..65e84d1 100644
--- a/root/static/styles/forms.css
+++ b/root/static/styles/forms.css
@@ -307,18 +307,20 @@ ul.conditions button.remove img {
     display: none;
 }
 
-input.icon {
+input.icon, div.icon.img {
     width: 16px;
     height: 16px;
     border: 0 !important;
     background-repeat: no-repeat;
 }
 
-input.add-artist-credit, input.add-track {
+div.img { display: inline-block; }
+
+input.add-artist-credit, input.add-track, a.add-label div, div.add-item {
     background-image: url('../images/icons/add_row.png');
 }
 
-input.remove-artist-credit, input.remove-track, input.remove-disc {
+input.remove-artist-credit, input.remove-track, input.remove-disc, a.remove-label div, div.remove-item {
     background-image: url('../images/icons/delete_row.png');
 }
 

commit bf333ca6d7c3cc31f56a7fbdb0f9e216d58eddc2
Author: Ian McEwen <[email protected]>
Date:   Tue Oct 9 16:51:26 2012 -0700

    MBS-5044: collapse forms.css declarations somewhat

diff --git a/root/static/styles/forms.css b/root/static/styles/forms.css
index 41c7408..2e191cf 100644
--- a/root/static/styles/forms.css
+++ b/root/static/styles/forms.css
@@ -307,65 +307,45 @@ ul.conditions button.remove img {
     display: none;
 }
 
-.icon.add-artist-credit, .icon.add-track {
-    background-image: url('../images/icons/add_row.png');
+input.icon {
     width: 16px;
     height: 16px;
-    border: 0;
+    border: 0 !important;
+    background-repeat: no-repeat;
+}
+
+input.add-artist-credit, input.add-track {
+    background-image: url('../images/icons/add_row.png');
 }
 
-.icon.remove-artist-credit, .icon.remove-track, .icon.remove-disc {
+input.remove-artist-credit, input.remove-track, input.remove-disc {
     background-image: url('../images/icons/delete_row.png');
-    width: 16px;
-    height: 16px;
-    border: 0;
 }
 
-.icon.guesscase-track, .icon.guesscase-medium {
+input.guesscase-track, input.guesscase-medium {
     background-image: url('../images/icons/guesscase.png');
-    width: 16px;
-    height: 16px;
-    border: 0;
 }
 
-.icon.collapse-disc {
+input.collapse-disc {
     background-image: url('../images/icons/collapse.png');
-    width: 16px;
-    height: 16px;
-    border: 0;
 }
 
-.icon.expand-disc {
+input.expand-disc {
     background-image: url('../images/icons/expand.png');
-    width: 16px;
-    height: 16px;
-    border: 0;
 }
 
-.icon.disc-down {
-    background-image: url('../images/icons/down.png');
-    width: 16px;
-    height: 16px;
-    border: 0;
+input.track-down {
+    background-image: url('../images/icons/track-down.png');
 }
 
-.icon.disc-up {
-    background-image: url('../images/icons/up.png');
-    width: 16px;
-    height: 16px;
-    border: 0;
+input.disc-down {
+    background-image: url('../images/icons/down.png');
 }
 
-.icon.track-down {
-    background-image: url('../images/icons/track-down.png');
-    width: 16px;
-    height: 16px;
-    border: 0;
+input.track-up {
+    background-image: url('../images/icons/track-up.png');
 }
 
-.icon.track-up {
-    background-image: url('../images/icons/track-up.png');
-    width: 16px;
-    height: 16px;
-    border: 0;
+input.disc-up {
+    background-image: url('../images/icons/up.png');
 }

commit 4742273b8eee81de79c2f49c820cadccf31b659d
Author: Ian McEwen <[email protected]>
Date:   Tue Oct 9 16:19:00 2012 -0700

    optimize .png files

diff --git a/root/static/images/icons/add_row.png b/root/static/images/icons/add_row.png
index c12c3aa..c0f9eb4 100644
Binary files a/root/static/images/icons/add_row.png and b/root/static/images/icons/add_row.png differ
diff --git a/root/static/images/icons/collapse.png b/root/static/images/icons/collapse.png
index 0676381..03d1283 100644
Binary files a/root/static/images/icons/collapse.png and b/root/static/images/icons/collapse.png differ
diff --git a/root/static/images/icons/delete_row.png b/root/static/images/icons/delete_row.png
index 50aee35..9cf0521 100644
Binary files a/root/static/images/icons/delete_row.png and b/root/static/images/icons/delete_row.png differ
diff --git a/root/static/images/icons/down.png b/root/static/images/icons/down.png
index f3a6f66..9baa16b 100644
Binary files a/root/static/images/icons/down.png and b/root/static/images/icons/down.png differ
diff --git a/root/static/images/icons/expand.png b/root/static/images/icons/expand.png
index 0a937a7..2d23670 100644
Binary files a/root/static/images/icons/expand.png and b/root/static/images/icons/expand.png differ
diff --git a/root/static/images/icons/filter.png b/root/static/images/icons/filter.png
index c44e419..193adfe 100644
Binary files a/root/static/images/icons/filter.png and b/root/static/images/icons/filter.png differ
diff --git a/root/static/images/icons/guesscase.32x32.png b/root/static/images/icons/guesscase.32x32.png
index 05087da..531e79b 100644
Binary files a/root/static/images/icons/guesscase.32x32.png and b/root/static/images/icons/guesscase.32x32.png differ
diff --git a/root/static/images/icons/guesscase.png b/root/static/images/icons/guesscase.png
index 4e0b6ff..27d7b55 100644
Binary files a/root/static/images/icons/guesscase.png and b/root/static/images/icons/guesscase.png differ
diff --git a/root/static/images/icons/help.png b/root/static/images/icons/help.png
index 182c909..75e69de 100644
Binary files a/root/static/images/icons/help.png and b/root/static/images/icons/help.png differ
diff --git a/root/static/images/icons/mblookup-tagger.png b/root/static/images/icons/mblookup-tagger.png
index 7f2beec..a7e2cce 100644
Binary files a/root/static/images/icons/mblookup-tagger.png and b/root/static/images/icons/mblookup-tagger.png differ
diff --git a/root/static/images/icons/track-down.png b/root/static/images/icons/track-down.png
index ecd7820..51f5363 100644
Binary files a/root/static/images/icons/track-down.png and b/root/static/images/icons/track-down.png differ
diff --git a/root/static/images/icons/track-up.png b/root/static/images/icons/track-up.png
index 1a2017c..9c18447 100644
Binary files a/root/static/images/icons/track-up.png and b/root/static/images/icons/track-up.png differ
diff --git a/root/static/images/icons/up.png b/root/static/images/icons/up.png
index 886aac5..1fb40e3 100644
Binary files a/root/static/images/icons/up.png and b/root/static/images/icons/up.png differ
diff --git a/root/static/images/icons/warning.png b/root/static/images/icons/warning.png
index 2da725a..d25ac5f 100644
Binary files a/root/static/images/icons/warning.png and b/root/static/images/icons/warning.png differ

commit c6e09020d879e588deabcd44f597a375f7970b40
Author: Ian McEwen <[email protected]>
Date:   Mon Nov 26 22:12:40 2012 -0700

    MBS-5614-aux: link entities to correct ssl/non-ssl in annotations

diff --git a/lib/MusicBrainz/Server/Filters.pm b/lib/MusicBrainz/Server/Filters.pm
index 8b40c4a..0e82f95 100644
--- a/lib/MusicBrainz/Server/Filters.pm
+++ b/lib/MusicBrainz/Server/Filters.pm
@@ -74,6 +74,9 @@ sub format_wikitext
 
     return '' unless $text;
 
+    $text =~ s/</&lt;/g;
+    $text =~ s/>/&gt;/g;
+
     # MBS-2437: Expand MBID entity links
     my $ws = DBDefs->WEB_SERVER;
     $text =~ s/
@@ -83,11 +86,19 @@ sub format_wikitext
        [0-9a-f]{4} -
        [0-9a-f]{4} -
        [0-9a-f]{4} -
-       [0-9a-f]{12})
-    /[http:\/\/$ws\/$1\/$2\//ix;
+       [0-9a-f]{12})\]
+    /<a href="\/\/$ws\/$1\/$2\/">$1:$2<\/a>/ix;
+
+    $text =~ s/
+      \[
+      (artist|label|recording|release|release-group|url|work):
+      ([0-9a-f]{8} -
+       [0-9a-f]{4} -
+       [0-9a-f]{4} -
+       [0-9a-f]{4} -
+       [0-9a-f]{12})\|([^\]]+)\]
+    /<a href="\/\/$ws\/$1\/$2\/">$3<\/a>/ix;
 
-    $text =~ s/</&lt;/g;
-    $text =~ s/>/&gt;/g;
     return decode(
         'utf-8',
         Text::WikiFormat::format(

commit b4718ce593e2b90a5f2d7fc22d28bd5f5f7edb2f
Author: Ian McEwen <[email protected]>
Date:   Mon Nov 26 22:01:40 2012 -0700

    MBS-5614: Link edit notes (and annotation wikidocs links) correctly depending on https/non-https state

diff --git a/lib/MusicBrainz/Server/Filters.pm b/lib/MusicBrainz/Server/Filters.pm
index ba8f1da..8b40c4a 100644
--- a/lib/MusicBrainz/Server/Filters.pm
+++ b/lib/MusicBrainz/Server/Filters.pm
@@ -92,7 +92,7 @@ sub format_wikitext
         'utf-8',
         Text::WikiFormat::format(
             encode('utf-8' => $text), {}, {
-                prefix => "http://wiki.musicbrainz.org/",
+                prefix => "//wiki.musicbrainz.org/",
                 extended => 1,
                 absolute_links => 1,
                 implicit_links => 0
@@ -134,7 +134,7 @@ sub format_editnote
     my $server = DBDefs->WEB_SERVER;
 
     # Pre-pass the edit note to attempt to normalise any URLs
-    $html =~ s{(http://[^\s]+)}{normalise_url($1)}eg;
+    $html =~ s{(https?://[^\s]+)}{normalise_url($1)}eg;
 
     # Encode < and >
     $html =~ s/</&lt;/g;
@@ -165,7 +165,7 @@ sub format_editnote
     }{_display_trimmed($1, $2, $3, $4)}egsxi;
 
     $html =~ s[\b(?:mod(?:eration)? #?|edit[#:\h]+|edit id[#:\h]+|change[#:\h]+)(\d+)\b]
-         [<a href="http://$server/edit/$1">edit #$1</a>]gi;
+         [<a href="//$server/edit/$1">edit #$1</a>]gi;
 
     # links to wikidocs
     $html =~ s/doc:(\w[\/\w]*)(``)*/<a href="\/doc\/$1">$1<\/a>/gi;

commit 8e99dc2e3204c3abca4a1e2212188920e42c8e76
Author: Ian McEwen <[email protected]>
Date:   Tue Oct 9 01:57:59 2012 -0700

    MBS-5044: migrate inline & non-background style images:
    
     * add_row.png
     * delete_row.png
     * guesscase.png
     * expand.png
     * collapse.png
     * up.png
     * down.png
     * track-up.png
     * track-down.png
     * mblookup-tagger.png

diff --git a/root/components/common-macros.tt b/root/components/common-macros.tt
index 31c2bdd..a93081f 100644
--- a/root/components/common-macros.tt
+++ b/root/components/common-macros.tt
@@ -406,12 +406,10 @@ END-%]
         [% USE date %]
         <a href="http://127.0.0.1:[% c.session.tport %]/openalbum?id=[% entity.gid %]&t=[% date.now %]"
             target="tagger-iframe" class="tagger-icon" title="[% l('Open in tagger') %]">
-            <img src="[% c.uri_for('/static/images/icons/mblookup-tagger.png') %]" alt="[% l('Tagger') %]" />
         </a>
     [%- ELSIF entity.isa('MusicBrainz::Server::Entity::Recording') -%]
         <a href="http://127.0.0.1:[% c.session.tport %]/opennat?id=[% entity.gid %]"
             target="tagger-iframe" class="tagger-icon" title="[% l('Open in tagger') %]">
-            <img src="[% c.uri_for('/static/images/icons/mblookup-tagger.png') %]" alt="[% l('Tagger') %]" />
         </a>
     [%- END -%]
 [%- END -%]
diff --git a/root/components/forms.tt b/root/components/forms.tt
index 08bcdaf..0bdfe06 100644
--- a/root/components/forms.tt
+++ b/root/components/forms.tt
@@ -256,8 +256,7 @@
             </span>
 
             <input type="button" class="icon remove-artist-credit"
-              title="[% l('Remove Artist Credit') %]" 
-              style="background-image: url([% c.uri_for("/static/images/icons/delete_row.png") %]); width: 16px; height: 16px; border: 0;" />
+              title="[% l('Remove Artist Credit') %]" />
 
           </div>
 
@@ -286,8 +285,7 @@
             </button>
         </span>
         <input type="button" class="icon add-artist-credit"
-          title="[% l('Add Artist Credit') %]" 
-          style="background-image: url([% c.uri_for("/static/images/icons/add_row.png") %]); width: 16px; height: 16px; border: 0;" />
+          title="[% l('Add Artist Credit') %]" />
       </div>
 
     </div>
diff --git a/root/release/edit/tracklist.tt b/root/release/edit/tracklist.tt
index 8424fe8..74a945c 100644
--- a/root/release/edit/tracklist.tt
+++ b/root/release/edit/tracklist.tt
@@ -70,8 +70,7 @@
       </td>
       <td class="icon">
         <input type="button" class="icon remove-artist-credit"
-          title="[% l('Remove Artist Credit') %]"
-          style="background-image: url([% c.uri_for("/static/images/icons/delete_row.png") %]); width: 16px; height: 16px; border: 0;" />
+          title="[% l('Remove Artist Credit') %]" />
       </td>
     </tr>
   [% END %]
@@ -86,8 +85,7 @@
       </td>
       <td class="icon">
         <input type="button" class="icon add-artist-credit"
-          title="[% l('Add Artist Credit') %]"
-          style="background-image: url([% c.uri_for("/static/images/icons/add_row.png") %]); width: 16px; height: 16px; border: 0;" />
+          title="[% l('Add Artist Credit') %]" />
       </td>
     </tr>
   </tbody>
@@ -307,11 +305,9 @@
         </td>
         <td class="reorder">
             <input type="button" class="icon track-down"
-              title="[% l('Move track down') %]"
-              style="background-image: url([% c.uri_for("/static/images/icons/track-down.png") %]); width: 16px; height: 16px; border: 0;" />
+              title="[% l('Move track down') %]" />
             <input type="button" class="icon track-up"
-              title="[% l('Move track up') %]"
-              style="background-image: url([% c.uri_for("/static/images/icons/track-up.png") %]); width: 16px; height: 16px; border: 0;" />
+              title="[% l('Move track up') %]" />
         <td class="title">
           <input type="hidden" class="id" />
           <input type="text" class="track-name" />
@@ -330,13 +326,11 @@
         </td>
         <td class="icon">
           <input type="button" class="icon guesscase-track"
-            title="[% l('Guess case track') %]"
-            style="background-image: url([% c.uri_for("/static/images/icons/guesscase.png") %]); width: 16px; height: 16px; border: 0;" />
+            title="[% l('Guess case track') %]" />
 
           <input type="hidden" class="deleted" value="0" />
           <input type="button" class="icon remove-track"
-            title="[% l('Remove track') %]"
-            style="background-image: url([% c.uri_for("/static/images/icons/delete_row.png") %]); width: 16px; height: 16px; border: 0;" />
+            title="[% l('Remove track') %]" />
         </td>
       </tr>
       <tr class="track-artist-credit container" style="display: none">
@@ -358,11 +352,10 @@
         <tr>
           <td class="icon">
             <input type="button" class="icon expand-disc"
-              title="[% l('Expand Disc') %]"
-              style="background-image: url([% c.uri_for("/static/images/icons/expand.png") %]); width: 16px; height: 16px; border: 0;" />
+              title="[% l('Expand Disc') %]" />
             <input type="button" class="icon collapse-disc"
               title="[% l('Collapse Disc') %]"
-              style="display: none; background-image: url([% c.uri_for("/static/images/icons/collapse.png") %]); width: 16px; height: 16px; border: 0;" />
+              style="display: none;" />
           </td>
 
           <td class="format">
@@ -382,8 +375,7 @@
                   [% r.text(medium_field.field('name'), class => 'name') %]
 
                   <input type="button" class="icon guesscase-medium"
-                      title="[% l('Guess case disc title') %]"
-                      style="background-image: url([% c.uri_for("/static/images/icons/guesscase.png") %]); width: 16px; height: 16px; border: 0;" />
+                      title="[% l('Guess case disc title') %]" />
 
                 </div>
             </div>
@@ -397,15 +389,12 @@
 
           <td class="icon" style="text-align: right;">
             <input type="button" class="icon disc-down"
-              title="[% l('Move disc down') %]"
-              style="background-image: url([% c.uri_for("/static/images/icons/down.png") %]); width: 16px; height: 16px; border: 0;" />
+              title="[% l('Move disc down') %]" />
             <input type="button" class="icon disc-up"
-              title="[% l('Move disc up') %]"
-              style="background-image: url([% c.uri_for("/static/images/icons/up.png") %]); width: 16px; height: 16px; border: 0;" />
+              title="[% l('Move disc up') %]" />
             <span class="empty-icon" style="display: inline-block; width: 16px; height: 16px;"> </span>
             <input type="button" class="icon remove-disc"
-              title="[% l('Remove disc') %]"
-              style="background-image: url([% c.uri_for("/static/images/icons/delete_row.png") %]); width: 16px; height: 16px; border: 0;" />
+              title="[% l('Remove disc') %]" />
           </td>
         </tr>
       </table>
@@ -454,8 +443,7 @@
           [% l('Add {num} track(s)', num => '<input type="text" class="add-track-count" value="1" />') %]
         </span>
         <input type="button" class="icon add-track"
-            title="[% l('Add track(s)') %]"
-            style="background-image: url([% c.uri_for("/static/images/icons/add_row.png") %]); width: 16px; height: 16px; border: 0;" />
+            title="[% l('Add track(s)') %]" />
       </div>
 
     </fieldset>
diff --git a/root/static/styles/forms.css b/root/static/styles/forms.css
index 2c9826f..41c7408 100644
--- a/root/static/styles/forms.css
+++ b/root/static/styles/forms.css
@@ -307,3 +307,65 @@ ul.conditions button.remove img {
     display: none;
 }
 
+.icon.add-artist-credit, .icon.add-track {
+    background-image: url('../images/icons/add_row.png');
+    width: 16px;
+    height: 16px;
+    border: 0;
+}
+
+.icon.remove-artist-credit, .icon.remove-track, .icon.remove-disc {
+    background-image: url('../images/icons/delete_row.png');
+    width: 16px;
+    height: 16px;
+    border: 0;
+}
+
+.icon.guesscase-track, .icon.guesscase-medium {
+    background-image: url('../images/icons/guesscase.png');
+    width: 16px;
+    height: 16px;
+    border: 0;
+}
+
+.icon.collapse-disc {
+    background-image: url('../images/icons/collapse.png');
+    width: 16px;
+    height: 16px;
+    border: 0;
+}
+
+.icon.expand-disc {
+    background-image: url('../images/icons/expand.png');
+    width: 16px;
+    height: 16px;
+    border: 0;
+}
+
+.icon.disc-down {
+    background-image: url('../images/icons/down.png');
+    width: 16px;
+    height: 16px;
+    border: 0;
+}
+
+.icon.disc-up {
+    background-image: url('../images/icons/up.png');
+    width: 16px;
+    height: 16px;
+    border: 0;
+}
+
+.icon.track-down {
+    background-image: url('../images/icons/track-down.png');
+    width: 16px;
+    height: 16px;
+    border: 0;
+}
+
+.icon.track-up {
+    background-image: url('../images/icons/track-up.png');
+    width: 16px;
+    height: 16px;
+    border: 0;
+}
diff --git a/root/static/styles/layout.css b/root/static/styles/layout.css
index e96e5cb..5c97a23 100644
--- a/root/static/styles/layout.css
+++ b/root/static/styles/layout.css
@@ -990,3 +990,9 @@ span.release-group-type {
     border-radius: 3px;
     padding: 0 3px;
 }
+
+a.tagger-icon {
+    background: url('../images/icons/mblookup-tagger.png') no-repeat;
+    width: 41px;
+    height: 16px;
+}

commit e0509c6e68d7019d445843d6e7dad0379e122912
Author: Ian McEwen <[email protected]>
Date:   Mon Oct 8 23:02:08 2012 -0700

    MBS-5044: don't use absolute paths for favicon images

diff --git a/root/static/styles/layout.css b/root/static/styles/layout.css
index e038716..e96e5cb 100644
--- a/root/static/styles/layout.css
+++ b/root/static/styles/layout.css
@@ -436,7 +436,7 @@ div.warning img.warning {
 }
 
 #sidebar ul.external_links li.all-relationships {
-	background-image: none;
+    background-image: none;
 }
 
 #sidebar ul.external_links li.home {
@@ -444,7 +444,7 @@ div.warning img.warning {
 }
 
 #sidebar ul.external_links li.allmusic {
-    background-image: url("/static/images/favicons/allmusic-16.png");
+    background-image: url("../images/favicons/allmusic-16.png");
 }
 
 #sidebar ul.external_links li.amazon {
@@ -460,7 +460,7 @@ div.warning img.warning {
 }
 
 #sidebar ul.external_links li.lastfm {
-    background-image: url("/static/images/favicons/lastfm-16.png");
+    background-image: url("../images/favicons/lastfm-16.png");
 }
 
 #sidebar ul.external_links li.myspace {

-----------------------------------------------------------------------


hooks/post-receive
-- 
mb_server