128 lines
4.1 KiB
JavaScript
128 lines
4.1 KiB
JavaScript
|
|
/**
|
|
* @file
|
|
* Create the 'Vimeo' tab for the WYSIWYG plugins.
|
|
*/
|
|
|
|
// (function ($) {
|
|
// namespace('Drupal.media.browser.plugin');
|
|
//
|
|
// Drupal.media.browser.plugin.media_vimeo = function(mediaBrowser, options) {
|
|
// return {
|
|
// init: function() {
|
|
// tabset = mediaBrowser.getTabset();
|
|
// tabset.tabs('add', '#media_vimeo', 'Vimeo');
|
|
// mediaBrowser.listen('tabs.show', function (e, id) {
|
|
// if (id == 'media_vimeo') {
|
|
// // We only need to set this once.
|
|
// // We probably could set it upon load.
|
|
// if (mediaBrowser.getActivePanel().html() == '') {
|
|
// mediaBrowser.getActivePanel().html(options.media_vimeo);
|
|
// }
|
|
// }
|
|
// });
|
|
// }
|
|
// }
|
|
// };
|
|
//
|
|
// // For now, I guess self registration makes sense.
|
|
// // Really though, we should be doing it via drupal_add_js and some settings
|
|
// // from the drupal variable.
|
|
// //@todo: needs a review.
|
|
// Drupal.media.browser.register('media_vimeo', Drupal.media.browser.plugin.media_vimeo, {});
|
|
// })(jQuery);
|
|
|
|
(function ($) {
|
|
namespace('media.browser.plugin');
|
|
|
|
Drupal.media.browser.plugin.vimeo_library = function(mediaBrowser, options) {
|
|
|
|
return {
|
|
mediaFiles: [],
|
|
init: function() {
|
|
tabset = mediaBrowser.getTabset();
|
|
tabset.tabs('add', '#vimeo_library', 'Vimeo');
|
|
var that = this;
|
|
mediaBrowser.listen('tabs.show', function (e, id) {
|
|
if (id == 'vimeo_library') {
|
|
// This is kinda rough, I'm not sure who should delegate what here.
|
|
mediaBrowser.getActivePanel().addClass('throbber');
|
|
mediaBrowser.getActivePanel().html('');
|
|
//mediaBrowser.getActivePanel().addClass('throbber');
|
|
|
|
// Assumes we have to refresh everytime.
|
|
// Remove any existing content
|
|
mediaBrowser.getActivePanel().append('<ul></ul>');
|
|
that.browser = $('ul', mediaBrowser.getActivePanel());
|
|
that.browser.addClass('clearfix');
|
|
that.getMedia();
|
|
}
|
|
});
|
|
},
|
|
|
|
getStreams: function () {
|
|
return ['vimeo://'];
|
|
},
|
|
|
|
getConditions: function () {
|
|
return {};
|
|
//return this.settings.conditions;
|
|
},
|
|
|
|
getMedia: function() {
|
|
var that = this;
|
|
var callback = mediaBrowser.getCallbackUrl('getMedia');
|
|
var params = {
|
|
conditions: JSON.stringify(this.getConditions()),
|
|
streams: JSON.stringify(this.getStreams())
|
|
};
|
|
jQuery.get(
|
|
callback,
|
|
params,
|
|
function(data, status) {
|
|
that.mediaFiles = data.media;
|
|
that.emptyMessage = data.empty;
|
|
that.pager = data.pager;
|
|
that.render();
|
|
},
|
|
'json'
|
|
);
|
|
},
|
|
|
|
render: function() {
|
|
var that = this;
|
|
mediaBrowser.getActivePanel().removeClass('throbber');
|
|
if (this.mediaFiles.length < 1) {
|
|
jQuery('<div id="media-empty-message" class="media-empty-message"></div>').appendTo(this.browser)
|
|
.html(this.emptyMessage);
|
|
return;
|
|
}
|
|
|
|
for (var m in this.mediaFiles) {
|
|
mediaFile = this.mediaFiles[m];
|
|
|
|
var listItem = jQuery('<li></li>').appendTo(this.browser)
|
|
.attr('id', 'media-file-' + mediaFile.fid)
|
|
.addClass('media-file');
|
|
|
|
var imgLink = jQuery('<a href="#"></a>').appendTo(listItem)
|
|
.html(mediaFile.preview)
|
|
.bind('click', mediaFile, function(e) {
|
|
// Notify the main browser
|
|
//this.selectedMedia = mediaFile;
|
|
$('div.media-thumbnail img').removeClass('selected');
|
|
$('div.media-thumbnail img', $(this)).addClass('selected');
|
|
mediaBrowser.notify('mediaSelected', {mediaFiles: [e.data]});
|
|
//that.settings.onSelect(mediaFile);
|
|
return false;
|
|
});
|
|
}
|
|
jQuery('<div id="media-pager" class="media-pager"></div>').appendTo(this.browser)
|
|
.html(this.pager);
|
|
}
|
|
};
|
|
};
|
|
|
|
Drupal.media.browser.register('vimeo_library', Drupal.media.browser.plugin.vimeo_library);
|
|
})(jQuery);
|