97 lines
3.1 KiB
JavaScript
97 lines
3.1 KiB
JavaScript
(function($) {
|
|
$(document).bind('cobalt-load', function(evt, cobalt) {
|
|
var plugin = {
|
|
'version': 0,
|
|
'catalogs': {},
|
|
'handlers': []
|
|
};
|
|
|
|
plugin['catalogs']['vocabularies'] = {
|
|
'update': function(last_update, callback) {
|
|
$.getJSON(Drupal.settings.basePath + 'cobalt/data/taxonomy_json', {}, function (data) {
|
|
cobalt.emptyCatalog('vocabularies');
|
|
var access = data.access ? 'w' : '';
|
|
for (var id in data.vocabularies) {
|
|
cobalt.addEntry({id:id, name:data.vocabularies[id], information:access, catalog:'vocabularies', classname:'vocabulary'});
|
|
}
|
|
cobalt.emptyCatalog('terms');
|
|
for (var id in data.terms) {
|
|
cobalt.addEntry({id:id, name:data.terms[id][0], information:{'perm': access, 'vid': data.terms[id][1]}, catalog:'terms', classname:'term'});
|
|
}
|
|
callback(false);
|
|
});
|
|
},
|
|
'install': function() {
|
|
},
|
|
'uninstall': function() {
|
|
},
|
|
'update_rate': 60000
|
|
};
|
|
|
|
// Insert empty catalog, the update function is handled for both catalogs in
|
|
// the vocabularies catalog.
|
|
plugin['catalogs']['terms'] = {};
|
|
|
|
|
|
// Register handlers
|
|
plugin['handlers'].push({
|
|
'id': 'vocabulary_list',
|
|
'name': Drupal.t('List terms'),
|
|
'data_class': 'vocabulary',
|
|
'applicable': function(text, item) {
|
|
return item.information == 'w';
|
|
},
|
|
'handler': function(text, item) {
|
|
window.location.href = Drupal.settings.basePath + 'admin/structure/taxonomy/' + item.id + '/list';
|
|
}
|
|
});
|
|
|
|
plugin['handlers'].push({
|
|
'id': 'vocabulary_edit',
|
|
'name': Drupal.t('Edit'),
|
|
'data_class': 'vocabulary',
|
|
'applicable': function(text, item) {
|
|
return item.information == 'w';
|
|
},
|
|
'handler': function(text, item) {
|
|
window.location.href = Drupal.settings.basePath + 'admin/structure/taxonomy/edit/vocabulary/' + item.id + '?destination=' + Drupal.settings.cobalt.path;
|
|
}
|
|
});
|
|
|
|
plugin['handlers'].push({
|
|
'id': 'vocabulary_add',
|
|
'name': Drupal.t('Add terms'),
|
|
'data_class': 'vocabulary',
|
|
'applicable': function(text, item) {
|
|
return item.information == 'w';
|
|
},
|
|
'handler': function(text, item) {
|
|
window.location.href = Drupal.settings.basePath + 'admin/structure/taxonomy/' + item.id + '/list/add';
|
|
}
|
|
});
|
|
|
|
plugin['handlers'].push({
|
|
'id': 'term_view',
|
|
'name': Drupal.t('View'),
|
|
'data_class': 'term',
|
|
'handler': function(text, item) {
|
|
window.location.href = Drupal.settings.basePath + 'taxonomy/term/' + item.id;
|
|
}
|
|
});
|
|
|
|
plugin['handlers'].push({
|
|
'id': 'term_edit',
|
|
'name': Drupal.t('Edit'),
|
|
'data_class': 'term',
|
|
'applicable': function(text, item) {
|
|
return item.information.perm == 'w';
|
|
},
|
|
'handler': function(text, item) {
|
|
window.location.href = Drupal.settings.basePath + 'taxonomy/term/' + item.id + '/edit?destination=' + Drupal.settings.cobalt.path;
|
|
}
|
|
});
|
|
|
|
cobalt.registerPlugin('cobalttaxonomy', plugin);
|
|
});
|
|
})(jQuery);
|