/*jsl:import ipa.js */ /* Authors: * Endi S. Dewata * * Copyright (C) 2010 Red Hat * see file 'COPYING' for use and warranty information * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /* REQUIRES: ipa.js, details.js, search.js, add.js, entity.js */ IPA.entitle = {}; IPA.entity_factories.entitle = function() { var builder = IPA.entity_builder(); builder. entity('entitle'). facet({ factory: IPA.entitle.search_facet, columns: [ { name: 'product', label: 'Product' }, { name: 'quantity', label: 'Quantity' }, { name: 'start', label: 'Start' }, { name: 'end', label: 'End' } ], search_all: true }). dialog({ factory: IPA.entitle.consume_dialog, name: 'consume', title: 'Consume Entitlements', fields: [ { name: 'quantity', label: 'Quantity', undo: false } ] }). details_facet({ sections: [ { name: 'identity', label: IPA.messages.details.identity, fields: ['ipaentitlementid'] } ] }). standard_association_facets(); return builder.build(); }; IPA.entitle.search_facet = function(spec) { spec = spec || {}; var that = IPA.search_facet(spec); that.create_action_panel = function(container) { that.facet_create_action_panel(container); var li = $('.action-controls', container); var buttons = $('', { 'class': 'search-buttons' }).appendTo(li); $('', { type: 'button', name: 'consume', value: 'Consume' }).appendTo(buttons); }; that.setup = function(container) { that.search_facet_setup(container); var action_panel = that.get_action_panel(); var button = $('input[name=consume]', action_panel); that.consume_button = IPA.action_button({ label: 'Consume', icon: 'ui-icon-plus', click: function() { var dialog = that.get_dialog('consume'); dialog.open(that.container); } }); button.replaceWith(that.consume_button); }; that.refresh = function() { function on_success(data, text_status, xhr) { that.table.empty(); var result = data.result.result; for (var i = 0; iError: '+error_thrown.name+'

'); summary.append('

'+error_thrown.title+'

'); summary.append('

'+error_thrown.message+'

'); } var command = IPA.command({ method: 'entitle_get', options: { all: that.search_all }, on_success: on_success, on_error: on_error }); command.execute(); }; return that; }; IPA.entitle.consume_dialog = function(spec) { spec = spec || {}; var that = IPA.dialog(spec); that.add_button('Consume', function() { var record = {}; that.save(record); var command = IPA.command({ method: 'entitle_consume', args: [ record.quantity ], on_success: function() { var entity = IPA.get_entity(that.entity_name); var facet = entity.get_facet('search'); facet.table.refresh(); that.close(); } }); command.execute(); }); that.add_button('Cancel', function() { that.close(); }); return that; };