// -------------------------------------------------------------------------
ns.find_text_block_id = function(clicked_elt) {
- // console.log("id: " + $(clicked_elt).attr('id'));
var id = $(clicked_elt).attr('id');
+ // console.log("id: " + id);
if (/^text-block-\d+$/.test(id)) {
// console.log("find_text_block_id: case 1: " + id.substr(11));
return id.substr(11) * 1;
return id.substr(3) * 1;
}
- // console.log("find_text_block_id: case undef");
+ // console.log("find_text_block_id: case undef, id: " + id);
return undefined;
};
if (output_position)
return output_position;
- var type = $(clicked_elt).closest('#tb-back,#tb-front').data('type');
+ var type = $(clicked_elt).closest('#tb-back,#tb-front').data('type') || $('#current_content_type').val();
if (/^text-blocks-(front|back)/.test(type))
return type == "text-blocks-front" ? 0 : 1;
return true;
};
+ns.text_block_input_key_down = function(event) {
+ if(event.keyCode == 13) {
+ event.preventDefault();
+ var prefix = $(this).attr('id').match("^edit_function_block_\\d+")[0];
+ $("#" + prefix + "_submit").click();
+ return false;
+ }
+};
+
// --------------------------------------------------------------------------------
// ------------------------------ sections and items ------------------------------
// --------------------------------------------------------------------------------
};
ns.disable_add_function_block_command = function(key, opt) {
- if (ns.find_item_id(opt.$trigger))
- return false;
- return opt.$trigger.attr('id') != "section-list-empty";
+ return opt.$trigger.attr('id') == "sections";
};
ns.cancel_edit_item_form = function(form_id_base, options) {
// -------------------------------------------------------------------------
ns.paste_template = function(key, opt, other_data) {
- open_jqm_window({ url: 'controller.pl?action=RequirementSpec/select_template_to_paste' });
+ kivi.popup_dialog({ url: 'controller.pl?action=RequirementSpec/select_template_to_paste', dialog: { title: kivi.t8("Select template to paste") } });
};
ns.paste_selected_template = function(template_id) {
- $('#jqm_popup_dialog').jqmClose();
+ $('#jqueryui_popup_dialog').dialog("close");
var data = {
action: "RequirementSpec/paste_template",
return true;
};
+// -------------------------------------------------------------------------
+// ---------------------------- basic settings -----------------------------
+// -------------------------------------------------------------------------
+ns.standard_basic_settings_ajax_call = function(key, opt) {
+ if (key == 'cancel') {
+ if (confirm(kivi.t8('Do you really want to cancel?'))) {
+ $('#basic_settings').show();
+ $('#basic_settings_form').remove();
+ }
+ return true;
+ }
+
+ var data = 'action=RequirementSpec/ajax_' + key + '&id=' + encodeURIComponent($('#requirement_spec_id').val());
+
+ $.post("controller.pl", data, kivi.eval_json_result);
+
+ return true;
+};
+
// -------------------------------------------------------------------------
// -------------------------- time/cost estimate ---------------------------
// -------------------------------------------------------------------------
ns.standard_time_cost_estimate_ajax_call = function(key, opt) {
- if ((key == 'cancel') && !confirm(kivi.t8('Do you really want to cancel?')))
+ if (key == 'cancel') {
+ if (confirm(kivi.t8('Do you really want to cancel?'))) {
+ $('#time_cost_estimate').show();
+ $('#time_cost_estimate_form_container').remove();
+ }
return true;
+ }
var data = "action=RequirementSpec/ajax_" + key + "_time_and_cost_estimate&";
return true;
};
+ns.time_cost_estimate_input_key_down = function(event) {
+ if(event.keyCode == 13) {
+ event.preventDefault();
+ ns.standard_time_cost_estimate_ajax_call('save');
+ return false;
+ }
+};
+
// -------------------------------------------------------------------------
// --------------------------- quotations/orders ---------------------------
// -------------------------------------------------------------------------
};
ns.standard_quotation_order_ajax_call = function(key, opt) {
- if ((key == 'cancel') && !confirm(kivi.t8('Do you really want to cancel?')))
+ if (key == 'cancel') {
+ if (confirm(kivi.t8('Do you really want to cancel?'))) {
+ $('#quotations_and_orders').show();
+ $('#quotations_and_orders_article_assignment,#quotations_and_orders_new,#quotations_and_orders_update').remove();
+ }
return true;
+ }
+
+ else if ((key == 'create') && $('#quotations_and_orders_form INPUT[name="sections[].order_part_id"]').filter(function(idx, elt) { return ($(elt).val() || '') == '' }).size()) {
+ alert(kivi.t8('There is one or more sections for which no part has been assigned yet; therefore creating the new record is not possible yet.'));
+ return false;
+ }
var data = 'action=RequirementSpecOrder/' + key
+ '&' + $('#requirement_spec_id').serialize();
return true;
};
+ns.ask_delete_quotation_order = function(key, opt) {
+ if (confirm(kivi.t8("Are you sure?")))
+ ns.standard_quotation_order_ajax_call(key, opt);
+ return true;
+};
+
ns.disable_edit_quotation_order_commands = function(key, opt) {
return ns.find_quotation_order_id(opt.$trigger) == undefined;
};
};
ns.assign_order_part_id_to_all = function() {
- var order_part_id = $('#quoations_and_orders_order_id').val();
- $('#quotations_and_orders_form SELECT[name="sections[].order_part_id"]').each(function(idx, elt) {
+ var order_part_id = $('#quotations_and_orders_order_id').val();
+ var order_part_name = $('#quotations_and_orders_order_id_name').val();
+
+ $('#quotations_and_orders_form INPUT[name="sections[].order_part_id"]').each(function(idx, elt) {
$(elt).val(order_part_id);
});
+
+ $('#quotations_and_orders_form [id^=quotations_and_orders_sections_order_pard_id_]').filter(function() {
+ return $(this).attr('id') && $(this).attr('id').match("^quotations_and_orders_sections_order_pard_id_[0-9]+_name$");
+ }).each(function(idx, elt) {
+ $(elt).val(order_part_name);
+ });
};
// -------------------------------------------------------------------------
};
ns.create_version = function() {
- open_jqm_window({ url: 'controller.pl',
- data: { action: 'RequirementSpecVersion/new',
- requirement_spec_id: $('#requirement_spec_id').val() },
- id: 'new_requirement_spec_version_window' });
+ kivi.popup_dialog({ url: 'controller.pl',
+ data: { action: 'RequirementSpecVersion/new',
+ requirement_spec_id: $('#requirement_spec_id').val() },
+ dialog: { title: kivi.t8('Create a new version') }});
return true;
};
return true;
};
+// -------------------------------------------------------------------------
+// ------------------------------- tab widget ------------------------------
+// -------------------------------------------------------------------------
+var content_div_ids_for_tab_headers = {
+ 'tab-header-function-block': 'function-blocks-tab'
+ , 'tab-header-basic-settings': 'ui-tabs-1'
+ , 'tab-header-time-cost-estimate': 'ui-tabs-2'
+ , 'tab-header-versions': 'ui-tabs-3'
+ , 'tab-header-quotations-orders': 'ui-tabs-4'
+};
+
+ns.tabs_before_activate = function(event, ui) {
+ if (!ui.oldTab)
+ return true;
+
+ var content_div_id = content_div_ids_for_tab_headers[ $(ui.oldTab).attr('id') ];
+ if (!content_div_id || (content_div_id == 'function-blocks-tab'))
+ return true;
+
+ var inputs = $('#' + content_div_id).find('input,select,textarea').filter('[type!=hidden]');
+ if (!inputs.size() || confirm(kivi.t8("If you switch to a different tab without saving you will lose the data you've entered in the current tab.")))
+ return true;
+
+ var new_focus = $(inputs).filter(':focusable')[0];
+ if (new_focus)
+ $(new_focus).focus();
+
+ return false;
+};
+
// -------------------------------------------------------------------------
// ----------------------------- context menus -----------------------------
// -------------------------------------------------------------------------
}, general_actions)
});
+ $.contextMenu({
+ selector: '.basic-settings-context-menu',
+ 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 }
+ }, general_actions)
+ });
+
+ $.contextMenu({
+ selector: '.edit-basic-settings-context-menu',
+ 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 }
+ , cancel: { name: kivi.t8('Cancel'), icon: "close", callback: kivi.requirement_spec.standard_basic_settings_ajax_call }
+ }, general_actions)
+ });
+
$.contextMenu({
selector: '.time-cost-estimate-context-menu',
items: $.extend({