[mb-commits] r9855 - in mb_server/trunk: cgi-bin cgi-bin/MusicBrainz/Server cgi-bin/MusicBrainz/Server/Moderation htdocs/cdi htdocs/comp/release_editor

root at musicbrainz.org root at musicbrainz.org
Thu May 29 22:41:36 UTC 2008


Author: robert
Date: 2008-05-29 22:41:36 +0000 (Thu, 29 May 2008)
New Revision: 9855

Modified:
   mb_server/trunk/cgi-bin/Insert.pm
   mb_server/trunk/cgi-bin/MusicBrainz/Server/Moderation/MOD_ADD_RELEASE.pm
   mb_server/trunk/cgi-bin/MusicBrainz/Server/Track.pm
   mb_server/trunk/htdocs/cdi/enter.html
   mb_server/trunk/htdocs/comp/release_editor/entermoderations-add
   mb_server/trunk/htdocs/comp/release_editor/form
Log:
Allow MBID submitters to provider track ids. Fixes #3624


Modified: mb_server/trunk/cgi-bin/Insert.pm
===================================================================
--- mb_server/trunk/cgi-bin/Insert.pm	2008-05-29 21:21:29 UTC (rev 9854)
+++ mb_server/trunk/cgi-bin/Insert.pm	2008-05-29 22:41:36 UTC (rev 9855)
@@ -82,7 +82,8 @@
 #				tracknum => $seq,
 #				duration => $len, 
 #				trmid => $TRM,
-#				puid => $PUID
+#				puid => $PUID,
+#				trackid => $mbid (optinal, only for mbid submitters)
 #			}
 #		] (always exactly one track)
 #
@@ -151,6 +152,7 @@
 #  tracks -> array of hash refs:                           [required]
 #    track    title                                        [required]
 #    tracknum                                              [required]
+#    trackid                                               [optional]
 #    artist or artistid                                    [MACs only]
 #    sortname                                              [MACs only]
 #    trmid                                                 [optional]
@@ -567,7 +569,9 @@
 
 			# insert track using the verified track artist            
             $mar->SetId($ar->GetId);
-            $trackid = $tr->Insert($al, $mar);
+			my $tid;
+			$tid = $track->{trackid} if (exists $track->{trackid});
+            $trackid = $tr->Insert($al, $mar, $tid);
             $track->{track_insertid} = $trackid if ($tr->GetNewInsert());
         }
         else

Modified: mb_server/trunk/cgi-bin/MusicBrainz/Server/Moderation/MOD_ADD_RELEASE.pm
===================================================================
--- mb_server/trunk/cgi-bin/MusicBrainz/Server/Moderation/MOD_ADD_RELEASE.pm	2008-05-29 21:21:29 UTC (rev 9854)
+++ mb_server/trunk/cgi-bin/MusicBrainz/Server/Moderation/MOD_ADD_RELEASE.pm	2008-05-29 22:41:36 UTC (rev 9855)
@@ -69,6 +69,7 @@
 	# |--- ReleaseId (OPTIONAL -- only for MBID Submitters)
 	# \--- for tracks 1..n:
 	#      |--- Track/n/ 	- name
+	#      |--- TrackID/n/ 	- name  (only used for MBID submitters)
 	#      |--- Artist/n/ 	- ??? id or name ???
 	#      \--- TrackDur/n/ 	- duration in ms ?
 	#
@@ -152,6 +153,11 @@
 			track => $name,
 			tracknum => $i,
 		);
+
+		if (exists $new{"TrackID$i"})
+		{
+			$tmp{trackid} = $new{"TrackID$i"};
+		}
 		
 		if ($isva)
 		{

Modified: mb_server/trunk/cgi-bin/MusicBrainz/Server/Track.pm
===================================================================
--- mb_server/trunk/cgi-bin/MusicBrainz/Server/Track.pm	2008-05-29 21:21:29 UTC (rev 9854)
+++ mb_server/trunk/cgi-bin/MusicBrainz/Server/Track.pm	2008-05-29 22:41:36 UTC (rev 9855)
@@ -322,7 +322,7 @@
 # inited/loaded artist must also be passed in. The new track id is returned
 sub Insert
 {
-    my ($this, $al, $ar) = @_;
+    my ($this, $al, $ar, $trackid) = @_;
     $this->{new_insert} = 0;
 
 	my $name = $this->GetName;
@@ -365,7 +365,7 @@
 	return $track if $track;
 
 	my %row = (
-		gid => $this->CreateNewGlobalId,
+		gid => $trackid ? $trackid : $this->CreateNewGlobalId,
 		name => $this->GetName,
 		artist => $artist,
 		modpending	=> 0,

Modified: mb_server/trunk/htdocs/cdi/enter.html
===================================================================
--- mb_server/trunk/htdocs/cdi/enter.html	2008-05-29 21:21:29 UTC (rev 9854)
+++ mb_server/trunk/htdocs/cdi/enter.html	2008-05-29 22:41:36 UTC (rev 9855)
@@ -91,12 +91,26 @@
 		or return $m->comp("/comp/layout/badarguments",
 			text => "The argument <strong>artistid</strong> is missing or has a wrong format.");
 
+	# Check for a user supplied release id
 	if (!UserStuff->IsMBIDSubmitter($session{"privs"}) || !MusicBrainz::Server::Validation::IsGUID($releasembid))
 	{
 		$releasembid = "";
-		$ARGS{releasembid} = "";
+		delete $ARGS{releasembid};
 	}
 
+	# Check for user supplied track ids
+	for(0..$tracks)
+	{
+		my $key = "tr$_"."id";
+		if (exists $ARGS{$key})
+		{
+	        if (!UserStuff->IsMBIDSubmitter($session{"privs"}) || !MusicBrainz::Server::Validation::IsGUID($ARGS{$key}))
+			{
+				delete $ARGS{$key};
+			}
+		}
+	}
+
 	# SETUP FORM STATE
 	# ---------------------------------------------------------------
 	# initialise the submit buttons, and un-muddle the "submitvalue"

Modified: mb_server/trunk/htdocs/comp/release_editor/entermoderations-add
===================================================================
--- mb_server/trunk/htdocs/comp/release_editor/entermoderations-add	2008-05-29 21:21:29 UTC (rev 9854)
+++ mb_server/trunk/htdocs/comp/release_editor/entermoderations-add	2008-05-29 22:41:36 UTC (rev 9855)
@@ -163,6 +163,10 @@
 					my $new_artistid = $ARGS{sprintf "tr%d_artistid", $i};
 					$trackdata .= "ArtistID" . ($realtracks) . "=" . $new_artistid . "\n";
 				}
+				if ($ARGS{"tr$i"."_id"})
+				{
+				    $trackdata .= "TrackID" . ($realtracks) . "=" . $ARGS{"tr$i"."_id"} . "\n";
+				}
 
 				# handled this track, increment non-deleted tracks counter
 				$realtracks++;

Modified: mb_server/trunk/htdocs/comp/release_editor/form
===================================================================
--- mb_server/trunk/htdocs/comp/release_editor/form	2008-05-29 21:21:29 UTC (rev 9854)
+++ mb_server/trunk/htdocs/comp/release_editor/form	2008-05-29 22:41:36 UTC (rev 9855)
@@ -389,6 +389,9 @@
 							value => $track,
 							enabled => !$trackdel,
 							cssclass => ($checkfields{"track$i"} ? " missing" : "") &>
+%		if (exists $ARGS{"tr".$i."_id"}) {
+						<br/><span style="font-size: x-small">Track id: <% $ARGS{"tr".$i."_id"} %></span>
+%		}
 					</td>
 					<td>
 						<& /comp/form/tracktimefield,
@@ -493,7 +496,6 @@
 							cssclass => ($checkfields{$artistnamefield} ? " missing" : "") &>
 
 %		}
-
 					</td>
 					<td>&nbsp;</td>
 					<td class="field">




More information about the MusicBrainz-commits mailing list