12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- (function($) {
- $(document).bind('cobalt-load', function(evt, cobalt) {
- var plugin = {
- 'version': 0,
- 'catalogs': {},
- 'handlers': []
- };
- plugin['catalogs']['menu'] = {
- 'update': function(last_update, callback) {
- $.getJSON(Drupal.settings.basePath + 'cobalt/data/menu_json', {}, function (data) {
- cobalt.emptyCatalog('menu');
- for (var id in data) {
- cobalt.addEntry({id:id, name:data[id][1], extra:data[id][0], information: data[id][0], catalog:'menu', classname:'url_data'});
- }
- callback(false);
- });
- },
- 'install': function() {
- },
- 'uninstall': function() {
- },
- 'item_formatter': function(item) {
- return item.name + ' <small>' + item.information + '</small>';
- },
- 'update_rate': 60000
- };
- var uri_from_item = function(item, omitDestination) {
- var path = item.information;
- var destination = Drupal.settings.cobalt.path;
- if (typeof(path) == 'object') {
- destination = path.destination;
- path = path.path;
- }
- if (path=='<front>') {
- path = '';
- }
- if (destination && !omitDestination) {
- path = path + '?destination=' + destination;
- }
- return Drupal.settings.basePath + path;
- };
- plugin['handlers'].push({
- 'id': 'menu_goto',
- 'name': Drupal.t('Go to and return'),
- 'data_class': 'url_data',
- 'handler': function(text, item) {
- window.location.href = uri_from_item(item);
- }
- });
- plugin['handlers'].push({
- 'id': 'menu_goto_stay',
- 'name': Drupal.t('Go to'),
- 'data_class': 'url_data',
- 'handler': function(text, item) {
- window.location.href = uri_from_item(item, true);
- }
- });
- plugin['handlers'].push({
- 'id': 'menu_open_in_new_window',
- 'name': Drupal.t('Open in new window'),
- 'data_class': 'url_data',
- 'handler': function(text, item) {
- var form = document.createElement("form");
- $(form).attr({
- 'method': 'GET',
- 'action': uri_from_item(item),
- 'target': '_blank'
- }).appendTo('body');
- try {
- form.submit();
- }
- catch(e) {
- var message = $('<div></div>');
- message.append('<h1>' + Drupal.t('Could not open window') + '</h1>');
- message.append('<p>' + Drupal.t('You might be using a popup blocker, which stopped Cobalt from opening a new window.') + '</p>');
- cobalt.showHtml(message);
- }
- $(form).remove();
- }
- });
- cobalt.registerPlugin('cobalt_menu', plugin);
- });
- })(jQuery);
|