ns.create_context_menus(data.is_template);
$('#requirement_spec_tabs').on("tabsbeforeactivate", ns.tabs_before_activate);
+
+ ns.time_based_units = data.time_based_units;
};
// -------------------------------------------------------------------------
}).each(function(idx, elt) {
$(elt).val(order_part_name);
});
+
+ var unit = $('#quotations_and_orders_order_id').closest('td').data('unit');
+ var text = ns.time_based_units[unit] ? kivi.t8("time and effort based position") : kivi.t8("flat-rate position");
+
+ $('#quotations_and_orders_form [data-unit-column=1]').html(unit);
+ $('#quotations_and_orders_form [data-position-type-column=1]').html(text);
+};
+
+ns.assign_order_part_on_part_picked = function(event, item) {
+ if (!item || !item.unit)
+ return;
+
+ var $elt = $(this),
+ id = $elt.prop('id');
+
+ if (id == 'quotations_and_orders_order_id')
+ $elt.closest('td').data('unit', item.unit);
+
+ else {
+ var $tr = $elt.closest('tr');
+ var text = ns.time_based_units[item.unit] ? kivi.t8("time and effort based position") : kivi.t8("flat-rate position");
+
+ $tr.find('[data-unit-column=1]').html(item.unit);
+ $tr.find('[data-position-type-column=1]').html(text);
+ }
};
// -------------------------------------------------------------------------
ns.find_versioned_copy_id = function(clicked_elt) {
var id = $(clicked_elt).find("[name=versioned_copy_id]");
- return id ? id.val() : undefined;
+ return id.size() ? id.val() : undefined;
};
ns.disable_versioned_copy_item_commands = function(key, opt) {
ns.create_pdf_for_versioned_copy_ajax_call = function(key, opt) {
var data = {
action: "RequirementSpec/create_pdf",
- id: ns.find_versioned_copy_id(opt.$trigger)
+ id: ns.find_versioned_copy_id(opt.$trigger) || $('#requirement_spec_id').val()
};
$.download("controller.pl", data);
});
$.contextMenu({
- selector: '.basic-settings-context-menu',
+ selector: ':has(> .basic-settings-context-menu:visible)',
items: $.extend({
heading: { name: kivi.t8('Basic settings actions'), className: 'context-menu-heading' }
, edit: { name: kivi.t8('Edit'), icon: "edit", callback: kivi.requirement_spec.standard_basic_settings_ajax_call }
});
$.contextMenu({
- selector: '.edit-project-link-context-menu',
+ selector: ':has(> .edit-project-link-context-menu:visible)',
items: $.extend({
heading: { name: kivi.t8('Project link actions'), className: 'context-menu-heading' }
, save: { name: kivi.t8('Save'), icon: "save", callback: kivi.requirement_spec.standard_basic_settings_ajax_call }
});
$.contextMenu({
- selector: '.edit-basic-settings-context-menu',
+ selector: ':has(> .edit-basic-settings-context-menu:visible)',
items: $.extend({
heading: { name: kivi.t8('Basic settings actions'), className: 'context-menu-heading' }
, save: { name: kivi.t8('Save'), icon: "save", callback: kivi.requirement_spec.standard_basic_settings_ajax_call }
});
$.contextMenu({
- selector: '.time-cost-estimate-context-menu',
+ selector: ':has(> div > .time-cost-estimate-context-menu:visible)',
items: $.extend({
heading: { name: kivi.t8('Time/cost estimate actions'), className: 'context-menu-heading' }
, edit: { name: kivi.t8('Edit'), icon: "edit", callback: kivi.requirement_spec.standard_time_cost_estimate_ajax_call }
});
$.contextMenu({
- selector: '.edit-time-cost-estimate-context-menu',
+ selector: ':has(> .edit-time-cost-estimate-context-menu:visible)',
items: $.extend({
heading: { name: kivi.t8('Time/cost estimate actions'), className: 'context-menu-heading' }
, save: { name: kivi.t8('Save'), icon: "save", callback: kivi.requirement_spec.standard_time_cost_estimate_ajax_call }
});
$.contextMenu({
- selector: '.additional-parts-context-menu',
+ selector: ':has(> .additional-parts-context-menu:visible)',
items: $.extend({
heading: { name: kivi.t8('Additional articles actions'), className: 'context-menu-heading' }
, edit: { name: kivi.t8('Edit'), icon: "edit", callback: kivi.requirement_spec.standard_additional_parts_ajax_call }
};
$.contextMenu({
- selector: '.edit-additional-parts-context-menu',
+ selector: ':has(> .edit-additional-parts-context-menu:visible)',
items: $.extend({
heading: { name: kivi.t8('Additional articles actions'), className: 'context-menu-heading' }
}, additional_parts_actions, general_actions)
});
$.contextMenu({
- selector: '.quotations-and-orders-context-menu,.quotations-and-orders-order-context-menu',
+ selector: ':has(> .quotations-and-orders-context-menu:visible),.quotations-and-orders-order-context-menu',
items: $.extend({
heading: { name: kivi.t8('Quotations/Orders actions'), className: 'context-menu-heading' }
, edit_assignment: { name: kivi.t8('Edit article/section assignments'), icon: "edit", callback: ns.standard_quotation_order_ajax_call }
});
$.contextMenu({
- selector: '.quotations-and-orders-edit-assignment-context-menu',
+ selector: ':has(> .quotations-and-orders-edit-assignment-context-menu:visible)',
items: $.extend({
heading: { name: kivi.t8('Edit article/section assignments'), className: 'context-menu-heading' }
, save_assignment: { name: kivi.t8('Save'), icon: "edit", callback: ns.standard_quotation_order_ajax_call }
});
$.contextMenu({
- selector: '.quotations-and-orders-new-context-menu',
+ selector: ':has(> .quotations-and-orders-new-context-menu:visible)',
items: $.extend({
heading: { name: kivi.t8('Create new quotation/order'), className: 'context-menu-heading' }
, create: { name: kivi.t8('Create'), icon: "edit", callback: ns.standard_quotation_order_ajax_call }
});
$.contextMenu({
- selector: '.quotations-and-orders-update-context-menu',
+ selector: ':has(> .quotations-and-orders-update-context-menu:visible)',
items: $.extend({
heading: { name: kivi.t8('Update quotation/order'), className: 'context-menu-heading' }
, do_update: { name: kivi.t8('Update'), icon: "update", callback: ns.standard_quotation_order_ajax_call }
};
}); // end of namespace(...., function() {...
+
+function local_reinit_widgets() {
+ kivi.run_once_for('#quotations_and_orders_order_id,[name="sections[].order_part_id"]', "assign_order_part_on_part_picked", function(elt) {
+ $(elt).on('set_item:PartPicker', kivi.requirement_spec.assign_order_part_on_part_picked);
+ });
+}