/* * Inline validation */ .formlibInlineValidation input[type="text"]:blur { action-server: kss_formlib_inline_validation; kss_formlib_inline_validation-formname: kssAttr('formname', true); kss_formlib_inline_validation-fieldname: kssAttr('fieldname', true); kss_formlib_inline_validation-value: currentFormVar(); kss_formlib_inline_validation-kssSubmitForm: currentForm(); } .formlibInlineValidation input[type="password"]:blur { action-server: kss_formlib_inline_validation; kss_formlib_inline_validation-formname: kssAttr('formname', true); kss_formlib_inline_validation-fieldname: kssAttr('fieldname', true); kss_formlib_inline_validation-value: currentFormVar(); kss_formlib_inline_validation-kssSubmitForm: currentForm(); } .formlibInlineValidation input[type="checkbox"]:blur { action-server: kss_formlib_inline_validation; kss_formlib_inline_validation-formname: kssAttr('formname', true); kss_formlib_inline_validation-fieldname: kssAttr('fieldname', true); kss_formlib_inline_validation-value: currentFormVar(); kss_formlib_inline_validation-kssSubmitForm: currentForm(); } .formlibInlineValidation input[type="radio"]:blur { action-server: kss_formlib_inline_validation; kss_formlib_inline_validation-formname: kssAttr('formname', true); kss_formlib_inline_validation-fieldname: kssAttr('fieldname', true); kss_formlib_inline_validation-value: currentFormVar(); kss_formlib_inline_validation-kssSubmitForm: currentForm(); } .formlibInlineValidation select:blur { action-server: kss_formlib_inline_validation; kss_formlib_inline_validation-formname: kssAttr('formname', true); kss_formlib_inline_validation-fieldname: kssAttr('fieldname', true); kss_formlib_inline_validation-value: currentFormVar(); kss_formlib_inline_validation-kssSubmitForm: currentForm(); } .formlibInlineValidation textarea:blur { action-server: kss_formlib_inline_validation; kss_formlib_inline_validation-formname: kssAttr('formname', true); kss_formlib_inline_validation-fieldname: kssAttr('fieldname', true); kss_formlib_inline_validation-value: currentFormVar(); kss_formlib_inline_validation-kssSubmitForm: currentForm(); } /* * Inline editing * * - Note: We don't use inherited KSS attributes for 'fieldname', since it * should be sufficient to set it on the same element as the marker * class. We also don't use it on the 'structure' argument to "begin", * to avoid accidentally inheriting it. We do use it on "save", but here * we have control over the form. */ /* begin on click */ .formlibInlineEditable:click { evt-click-allowbubbling: true; action-server: kss_formlib_inline_edit_begin; kss_formlib_inline_edit_begin-formname: kssAttr('formname', true); kss_formlib_inline_edit_begin-fieldname: kssAttr('fieldname'); kss_formlib_inline_edit_begin-structure: kssAttr('structure'); } .formlibInlineEditable a:click { evt-click-preventbubbling: true; } .formlibInlineEditable form.formlibInlineForm:click { evt-click-allowbubbling: true; evt-click-preventbubbling: true; } /* save on Enter or the Save button */ form.inlineForm input[type="text"]:keyup { evt-keyup-preventdefault: true; evt-keyup-keycodes: 13; action-server: kss_formlib_inline_edit_save; kss_formlib_inline_edit_save-kssSubmitForm: currentForm(); kss_formlib_inline_edit_save-formname: kssAttr('formname', true); kss_formlib_inline_edit_save-fieldname: kssAttr('fieldname', true); kss_formlib_inline_edit_save-structure: kssAttr('structure', true); } form.formlibInlineForm input[type="text"]:keydown { evt-keydown-preventdefault: true; evt-keydown-keycodes: 13; action-client: log; } form.formlibInlineForm input[type="text"]:keypress { evt-keypress-preventdefault: true; evt-keypress-keycodes: 13; action-client: log; } form.formlibInlineForm input[name=kss-save]:click { evt-click-preventdefault: true; action-server: kss_formlib_inline_edit_save; kss_formlib_inline_edit_save-kssSubmitForm: currentForm(); kss_formlib_inline_edit_save-formname: kssAttr('formname', true); kss_formlib_inline_edit_save-fieldname: kssAttr('fieldname', true); kss_formlib_inline_edit_save-structure: kssAttr('structure', true); } /* cancel on Escape or the Cancel button */ form.formlibInlineForm input:keypress(inlineescape) { evt-keypress-keycodes: '27'; action-server: kss_formlib_inline_edit_cancel; kss_formlib_inline_edit_cancel-fieldname: kssAttr('fieldname', true); } form.formlibInlineForm select:keypress(inlineescape) { evt-keypress-keycodes: '27'; action-server: kss_formlib_inline_edit_cancel; kss_formlib_inline_edit_cancel-fieldname: kssAttr('fieldname', true); } form.formlibInlineForm textarea:keypress(inlineescape) { evt-keypress-keycodes: '27'; action-server: kss_formlib_inline_edit_cancel; kss_formlib_inline_edit_cancel-fieldname: kssAttr('fieldname', true); } form.formlibInlineForm input[name=kss-cancel]:click { evt-click-preventdefault: true; action-server: kss_formlib_inline_edit_cancel; kss_formlib_inline_edit_cancel-fieldname: kssAttr('fieldname', true); }