|
256 | 256 | col.append('<p>'+rowRelation.body.getDisplayTitle()+'</p>');
|
257 | 257 | });
|
258 | 258 | }
|
259 |
| - } |
| 259 | + }, |
260 | 260 |
|
| 261 | + addMetadataTableForNodeToElement: function(node, element) { |
| 262 | + var table = $( '<table></table>' ).appendTo(element); |
| 263 | + // basic Scalar properties |
| 264 | + table.append('<tr><td>Scalar URL</td><td><a href="'+node.url+'">'+node.url+'</a> (version '+node.current.number+')</td></tr>'); |
| 265 | + table.append('<tr><td>Source URL</td><td><a href="'+node.current.sourceFile+'">'+node.current.sourceFile+'</a> ('+node.current.mediaSource.contentType+'/'+node.current.mediaSource.name+')</td></tr>'); |
| 266 | + table.append('<tr><td>dcterms:title</td><td>'+node.getDisplayTitle()+'</td></tr>'); |
| 267 | + if (null!=node.current.description) table.append('<tr><td>dcterms:description</td><td>'+node.current.description+'</td></tr>'); |
| 268 | + if (null!=node.current.source) table.append('<tr><td>dcterms:source</td><td>'+node.current.source+'</td></tr>'); |
| 269 | + if (null!=node.current.sourceLocation) table.append('<tr><td>art:sourceLocation</td><td><a href="'+node.current.sourceLocation+'">'+node.current.sourceLocation+'</a></td></tr>'); |
| 270 | + // auxiliary properties |
| 271 | + for ( prop in node.current.auxProperties ) { |
| 272 | + for ( i in node.current.auxProperties[ prop ] ) { |
| 273 | + value = node.current.auxProperties[ prop ][ i ]; |
| 274 | + table.append( '<tr><td>' + prop + '</td><td>' + value + '</td></tr>'); |
| 275 | + } |
| 276 | + } |
| 277 | + // API links |
| 278 | + table.append('<tr><td>View as</td><td><a href="'+node.url+'.rdfxml">RDF-XML</a>, <a href="'+node.url+'.rdfjson">RDF-JSON</a>, or <a href="'+node.url+'.meta">HTML</a></td></tr>'); |
| 279 | + } |
261 | 280 | }
|
262 | 281 |
|
263 | 282 | var node = mediaelement.model.node;
|
|
288 | 307 | }
|
289 | 308 | break;
|
290 | 309 |
|
| 310 | + case 'metadata': |
| 311 | + description = $('<div></div>'); |
| 312 | + media.addMetadataTableForNodeToElement(node, description); |
| 313 | + description.unwrap(); |
| 314 | + break; |
| 315 | + |
291 | 316 | default:
|
292 | 317 | description = node.current.description;
|
293 | 318 | if ( node.current.description == null ) {
|
|
297 | 322 |
|
298 | 323 | }
|
299 | 324 | if ( media.options.caption != 'none' ) {
|
300 |
| - if ( node.current.source != null ) { |
301 |
| - description += '<br><i>Source: ' + node.current.source + '</i>'; |
| 325 | + var descriptionPane = $('<div class="media_description pane"></div>').appendTo(element); |
| 326 | + if (node.current.source != null) { |
| 327 | + if (media.options.caption != 'metadata') { |
| 328 | + description += '<br><i>Source: ' + node.current.source + '</i>'; |
| 329 | + } else { |
| 330 | + descriptionPane.addClass('media_metadata'); |
| 331 | + } |
302 | 332 | }
|
303 |
| - var descriptionPane = $('<div class="media_description pane">'+description+'</div>').appendTo(element); |
| 333 | + descriptionPane.append(description); |
304 | 334 | var descriptionTab = $('<div class="media_tab select">Description</div>').appendTo(mediaTabs);
|
305 | 335 | descriptionTab.click(function() {
|
306 | 336 | $(this).parent().parent().find('.pane').hide();
|
|
379 | 409 | }
|
380 | 410 | }
|
381 | 411 |
|
382 |
| - var metadataTab = $('<div class="media_tab">Details</div>').appendTo(mediaTabs); |
383 |
| - var metadataPane = $('<div class="media_metadata pane"></div>').appendTo(element); |
384 |
| - metadataTab.click(function() { |
385 |
| - $(this).parent().parent().find('.pane').hide(); |
386 |
| - media.minimizeAnnotationPane(); |
387 |
| - metadataPane.show(); |
388 |
| - $(this).parent().find('.media_tab').removeClass('select'); |
389 |
| - metadataTab.addClass('select'); |
390 |
| - if (currentRelation != null) { |
391 |
| - media.showAnnotation(null, currentRelation, mediaelement, true); |
392 |
| - } |
393 |
| - }); |
394 |
| - var table = $( '<table></table>' ).appendTo( metadataPane ); |
395 |
| - // basic Scalar properties |
396 |
| - table.append('<tr><td>Scalar URL</td><td><a href="'+node.url+'">'+node.url+'</a> (version '+node.current.number+')</td></tr>'); |
397 |
| - table.append('<tr><td>Source URL</td><td><a href="'+node.current.sourceFile+'">'+node.current.sourceFile+'</a> ('+node.current.mediaSource.contentType+'/'+node.current.mediaSource.name+')</td></tr>'); |
398 |
| - table.append('<tr><td>dcterms:title</td><td>'+node.getDisplayTitle()+'</td></tr>'); |
399 |
| - if (null!=node.current.description) table.append('<tr><td>dcterms:description</td><td>'+node.current.description+'</td></tr>'); |
400 |
| - if (null!=node.current.source) table.append('<tr><td>dcterms:source</td><td>'+node.current.source+'</td></tr>'); |
401 |
| - if (null!=node.current.sourceLocation) table.append('<tr><td>art:sourceLocation</td><td><a href="'+node.current.sourceLocation+'">'+node.current.sourceLocation+'</a></td></tr>'); |
402 |
| - // auxiliary properties |
403 |
| - for ( prop in node.current.auxProperties ) { |
404 |
| - for ( i in node.current.auxProperties[ prop ] ) { |
405 |
| - value = node.current.auxProperties[ prop ][ i ]; |
406 |
| - table.append( '<tr><td>' + prop + '</td><td>' + value + '</td></tr>'); |
| 412 | + // hide metadata tab if the media's description tab includes the metadata |
| 413 | + if (media.options.caption != 'metadata') { |
| 414 | + var metadataTab = $('<div class="media_tab">Details</div>').appendTo(mediaTabs); |
| 415 | + var metadataPane = $('<div class="media_metadata pane"></div>').appendTo(element); |
| 416 | + metadataTab.click(function() { |
| 417 | + $(this).parent().parent().find('.pane').hide(); |
| 418 | + media.minimizeAnnotationPane(); |
| 419 | + metadataPane.show(); |
| 420 | + $(this).parent().find('.media_tab').removeClass('select'); |
| 421 | + metadataTab.addClass('select'); |
| 422 | + if (currentRelation != null) { |
| 423 | + media.showAnnotation(null, currentRelation, mediaelement, true); |
| 424 | + } |
| 425 | + }); |
| 426 | + media.addMetadataTableForNodeToElement(node, metadataPane); |
| 427 | + if (!foundAuxContent) { |
| 428 | + element.find('.media_metadata').show(); |
| 429 | + metadataTab.addClass('select'); |
| 430 | + foundAuxContent = true; |
407 | 431 | }
|
408 | 432 | }
|
409 |
| - // API links |
410 |
| - table.append('<tr><td>View as</td><td><a href="'+node.url+'.rdfxml">RDF-XML</a>, <a href="'+node.url+'.rdfjson">RDF-JSON</a>, or <a href="'+node.url+'.meta">HTML</a></td></tr>'); |
411 |
| - if (!foundAuxContent) { |
412 |
| - element.find('.media_metadata').show(); |
413 |
| - metadataTab.addClass('select'); |
414 |
| - foundAuxContent = true; |
415 |
| - } |
416 | 433 |
|
417 | 434 | var detailsTab = $( '<div class="media_tab">Citations</div>' ).appendTo( mediaTabs );
|
418 | 435 | detailsTab.click( function() {
|
|
0 commit comments