All Downloads are FREE. Search and download functionalities are using the official Maven repository.

data.resources.editors.directedit.jq_edit.js Maven / Gradle / Ivy

Go to download

OpenCms is an enterprise-ready, easy to use website content management system based on Java and XML technology. Offering a complete set of features, OpenCms helps content managers worldwide to create and maintain beautiful websites fast and efficiently.

The newest version!
/** 
 * Creates the direct edit buttons dynamically and places them at the correct position.
 * Additionally it activates the hover effects and actions.

* * Version: 1.0 * * Requires: jQuery 1.2.+ * jQuery Dimensions 1.2 * jQuery FlyDOM 3.0.5 */ /** Flag if the buttons should be shown or not. **/ var ocms_de_visible = true; /** Contains all data for each direct edit button. **/ var ocms_de_data = new Array(); /** For the hover effect. **/ var ocms_de_mbo=3; var ocms_hover_border_width=1; /** Template to create the div and the form. **/ var t_ocms_de_template = function() { return [ 'div', { className: 'ocms_de_bt', id: 'buttons_' + this.id }, [ 'form', {name: 'form_' + this.id, id: 'form_' + this.id, method: 'post', className: 'ocms_nomargin', target: '_top', action: this.editLink},[ 'input', { type: 'hidden', name: 'resource', NAME: 'resource', value: this.resource }, [], 'input', { type: 'hidden', name: 'directedit', NAME: 'directedit', value: 'true' }, [], 'input', { type: 'hidden', name: 'elementlanguage', NAME: 'elementlanguage', value: this.language }, [], 'input', { type: 'hidden', name: 'elementname', NAME: 'elementname', value: this.element }, [], 'input', { type: 'hidden', name: 'backlink', NAME: 'backlink', value: this.backlink }, [], 'input', { type: 'hidden', name: 'newlink', NAME: 'newlink', value: this.newlink }, [], 'input', { type: 'hidden', name: 'closelink', NAME: 'closelink', value: this.closelink }, [], 'input', { type: 'hidden', name: 'deletelink', NAME: 'deletelink', value: this.deletelink }, [], 'input', { type: 'hidden', name: 'redirect', NAME: 'redirect', value: 'true' }, [], 'input', { type: 'hidden', name: 'editortitle', NAME: 'editortitle', value: this.editortitle } ] ] ]; }; /** Template to create each direct edit button. **/ var t_ocms_de_buttonEnabled = function() { return [ 'a', { href: '#'+ this.id, className: this.typeClass, title: this.title, rel: this.typeClass} ]; }; /** Template to create a disabled direct edit button. **/ var t_ocms_de_buttonDisabled = function() { return [ 'span', { className: this.typeClass +' '+ this.typeClass+'_disabled', title: this.title} ]; }; /** Template to create the hover effect for the direct edit buttons. **/ var t_ocms_de_hoverEffect = function() { return [ 'div', { className: 'directedit-highlight directedit-highlight-top', style: 'width: '+ this.width+'px; left: ' +(this.offset.left-ocms_de_mbo-ocms_hover_border_width)+'px; top: '+ (this.offset.top-ocms_de_mbo-ocms_hover_border_width)+'px;'}, [], 'div', { className: 'directedit-highlight directedit-highlight-right', style: 'height: '+ this.height+'px; left: '+(this.offset.left+this.width-ocms_de_mbo-ocms_hover_border_width)+'px; top: '+ (this.offset.top-ocms_de_mbo)+'px;'}, [], 'div', { className: 'directedit-highlight directedit-highlight-bottom', style: 'width: '+ this.width+'px; left: ' +(this.offset.left-ocms_de_mbo-ocms_hover_border_width)+'px; top: '+ (this.offset.top+this.height-ocms_de_mbo)+'px;'}, [], 'div', { className: 'directedit-highlight directedit-highlight-left', style: 'height: '+ this.height+'px; left: '+(this.offset.left-ocms_de_mbo-ocms_hover_border_width)+'px; top: '+ (this.offset.top-ocms_de_mbo)+'px;'}, [], 'div', { className: 'directedit-highlight directedit-highlight-all', style: 'height: '+ this.height+'px; left: '+(this.offset.left-ocms_de_mbo-ocms_hover_border_width)+'px; top: '+ (this.offset.top-ocms_de_mbo)+'px; width: '+ this.width+'px;'} ]; }; $(document).ready(function(){ /** Creates the structure with the form and divs. **/ $("div[id^='ocms_']").each(function() { $(this).tplAppend(ocms_de_data[this.id], t_ocms_de_template); var btWidth=0; var t_buttons=t_ocms_de_buttonDisabled; if(!ocms_de_data[this.id].disabled){ t_buttons=t_ocms_de_buttonEnabled; } // Creates the buttons if(ocms_de_data[this.id].hasEdit){ btWidth= btWidth + 20; $('#buttons_'+ this.id).tplAppend({typeClass: 'ocms_de_edit', title: ocms_de_data[this.id].button_edit, id: this.id},t_buttons); $('#buttons_'+ this.id).width(btWidth); } if(ocms_de_data[this.id].hasDelete){ btWidth= btWidth+ 20; $('#buttons_'+ this.id).tplAppend({typeClass: 'ocms_de_delete', title: ocms_de_data[this.id].button_delete, id: this.id},t_buttons); $('#buttons_'+ this.id).width(btWidth); } if(ocms_de_data[this.id].hasNew){ $('#buttons_'+ this.id).tplAppend({typeClass: 'ocms_de_new', title: ocms_de_data[this.id].button_new, id: this.id},t_buttons); btWidth= btWidth+ 20; $('#buttons_'+ this.id).width(btWidth); } }); /** For the first load set the buttons to the correct position. **/ $("div[id^='ocms_']").each(func_ocms_de_reposition); /** By the resize of the window set the buttons to the correct position. **/ $(window).resize(function(){ $("div[id^='ocms_']").each(func_ocms_de_reposition); }); /** If "[STRG] or [SHIFT] + [SPACE]" is pressed, then show or not the direct edit buttons. **/ $(document).keyup(function(event){ if ((event.keyCode == 32) && (event.ctrlKey || event.shiftKey)) { if(ocms_de_visible) { ocms_de_visible=false; $("div[id^='buttons_ocms_']").css('visibility', "hidden"); } else { ocms_de_visible=true; $("div[id^='buttons_ocms_']").css('visibility', "visible"); } } }); /** This sets the effects to the direct edit buttons. **/ $(".ocms_de_bt").hover(func_ocms_de_activate,func_ocms_de_deactivate); /** After click of the direct edit button the form is submitted. **/ $('a.ocms_de_edit, a.ocms_de_delete, a.ocms_de_new').click(func_ocms_de_submit).mouseover(function(){ var atr=$(this).attr('rel'); if(!$(this).hasClass(atr+'_hover')) { $(this).addClass(atr+'_hover'); } }).mouseout(function(){ var atr=$(this).attr('rel'); if($(this).hasClass(atr+'_hover')) { $(this).removeClass(atr+'_hover'); } }); }); /** Function to activate the hover effects. **/ var func_ocms_de_activate = function() { var id = this.id; var type = id.substr(id.indexOf('ocms_')); // remove margin-bottom of the last element var last = $('#' + type + ' > :not(:last)'); var marginBottom = parseFloat(jQuery.css(last[0], "margin-bottom", true)) || 0; if(!$('#'+ type).hasClass('ocms_de_selected')) { $('#'+ type).addClass('ocms_de_selected'); var pointTo={ offset: $('#'+ type).calcOcmsDeOffset(), width: ($('#'+ type).width() + 2*ocms_de_mbo), height: ($('#'+ type).height() - marginBottom + 2*ocms_de_mbo)}; $('#'+ type).parent().tplAppend(pointTo,t_ocms_de_hoverEffect); $(".directedit-highlight-all").opacity(.1); } }; /** Function to deactivate the hover effects. **/ var func_ocms_de_deactivate = function() { var id = this.id; var type = id.substr(id.indexOf('ocms_')); if($('#'+ type).hasClass('ocms_de_selected')) { $('#'+ type).removeClass('ocms_de_selected'); $('div.directedit-highlight').remove(); $('.directedit-highlight-all').remove(); } }; /** Function to set the position of the buttons to the correct position. **/ var func_ocms_de_reposition = function() { var offset = $(this).calcOcmsDeOffset(); offset.left = offset.left + $(this).width() - $('#buttons_'+this.id).width(); $('#buttons_'+this.id).css(offset); if(ocms_de_visible) { $('#buttons_'+this.id).css('visibility', "visible"); } else { $('#buttons_'+this.id).css('visibility', "hidden"); } }; /** Function submit the form after clicking the direct edit button. **/ var func_ocms_de_submit = function() { var href = this.href; var id = href.substr(href.indexOf('#')+1); if($(this).hasClass('ocms_de_edit')){ $("#form_"+id +"> input[name='editortitle']").val(''); $("#form_"+id +"> input[name='newlink']").val(''); $('#form_'+id).submit(); return; } else if($(this).hasClass('ocms_de_delete')){ $('#form_'+id).attr('action', $("#form_"+id +"> input[name='deletelink']").val()); $('#form_'+id).submit(); return; } else if($(this).hasClass('ocms_de_new')){ $('#form_'+id).submit(); return; } alert("Unknown form action [" + id + "/ ]"); }; /** Function to calculate the offset or position of this element. **/ $.fn.calcOcmsDeOffset = function() { if($.browser.msie && !jQuery.boxModel){ return $(this).offset(); } return $(this).position(); } /** * Opacity function for jQuery * * @name .opacity * @cat Plugins/Effects * @author Woody Gilk/[email protected] * * @example $(this).opacity(.2); */ $.fn.opacity = function(amount) { if (amount > 1) amount = 1; if (amount < 0) amount = 0; if ($.browser.msie) { amount = (parseFloat(amount) * 100); this.css('filter', 'alpha(opacity='+amount+')'); } else { this.css('opacity', amount); this.css('-moz-opacity', amount); } return this; }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy