Changeset 21489
- Timestamp:
- 08/27/09 09:45:58 (4 years ago)
- Files:
-
- plugins/diemPlugin/trunk/TODO (modified) (4 diffs)
- plugins/diemPlugin/trunk/dmAdminPlugin/modules/dmAdminGenerator/templates/_markdown.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmCorePlugin/config/dm/assets.yml (modified) (1 diff)
- plugins/diemPlugin/trunk/dmCorePlugin/data/i18n/en_fr.yml (modified) (1 diff)
- plugins/diemPlugin/trunk/dmCorePlugin/lib/dm.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmCorePlugin/lib/markdown/dmMarkdown.php (modified) (4 diffs)
- plugins/diemPlugin/trunk/dmCorePlugin/lib/model/doctrine/media/PluginDmMediaFolderTable.class.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmCorePlugin/lib/search/plugin/dmSearchIndex.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmCorePlugin/lib/view/html/media/dmMediaTag.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmCorePlugin/web/js/dmCoreEditPlugins.js (modified) (1 diff)
- plugins/diemPlugin/trunk/dmCorePlugin/web/js/dmCorePlugins.js (modified) (2 diffs)
- plugins/diemPlugin/trunk/dmCorePlugin/web/lib/dmMarkitup/sets/markdown/set.js (modified) (1 diff)
- plugins/diemPlugin/trunk/dmCorePlugin/web/lib/jquery-ui/js/jquery-ui-1.7.2.front.min.js (modified) (1 diff)
- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmFilter/dmFrontAssetFilter.php (modified) (3 diffs)
- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/base/dmWidgetBaseForm.php (modified) (4 diffs)
- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/base/dmWidgetBaseView.php (modified) (3 diffs)
- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/base/project/model/dmWidgetProjectModelView.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/breadCrumb/dmWidgetNavigationBreadCrumbView.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/list/dmWidgetListView.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/media/dmWidgetContentMediaForm.php (modified) (2 diffs)
- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/media/dmWidgetContentMediaView.php (modified) (2 diffs)
- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/search/dmWidgetAdvancedSearchFormView.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/search/dmWidgetAdvancedSearchResultsView.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/text/dmWidgetContentTextForm.php (modified) (2 diffs)
- plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/text/dmWidgetContentTextView.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmPage/actions/actions.class.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmPage/templates/editSuccess.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmWidget/templates/_dmWidgetContentText.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmWidget/templates/forms/dmWidgetContentMedia.php (modified) (1 diff)
- plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmWidget/templates/forms/dmWidgetContentText.php (added)
- plugins/diemPlugin/trunk/dmFrontPlugin/web/css/form.css (modified) (1 diff)
- plugins/diemPlugin/trunk/dmFrontPlugin/web/css/pageEditForm.css (modified) (1 diff)
- plugins/diemPlugin/trunk/dmFrontPlugin/web/js/dmFrontForm.js (modified) (1 diff)
- plugins/diemPlugin/trunk/dmFrontPlugin/web/js/page/dmWidget.js (modified) (2 diffs)
- plugins/diemPlugin/trunk/dmFrontPlugin/web/js/page/dmWidgetForms.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
plugins/diemPlugin/trunk/TODO
r21473 r21489 39 39 * improve zone/widget drag&drop design in front edition 40 40 41 * open & select current page in front page tree 41 * open & select current page in front page tree, and open home in admin page tree 42 42 43 43 * fix fast navigation in admin edit pages … … 45 45 * fix widget drop into zones don't work when page were loaded without edit mode 46 46 47 * allow admin list booleans ajax edition 47 * allow admin list booleans ajax edition ( and maybe other kind of data like simple text ? ) 48 48 49 49 * fix first delete link in admin record edit page : javascript confirmation fails … … 69 69 * fix admin pagination. when a table has relations, pagination count is false ( 8 elements in place of 10 for example ) 70 70 71 * include a default ready to use search engine71 * [DONE] include a default ready to use search engine 72 72 73 * create a check config page like http://iliaz.com/dmsPlugin/index.php73 * [DONE] create a check config page like http://iliaz.com/dmsPlugin/index.php 74 74 75 75 * improve record loremizer. Currently when only one record is loremized, associations with other tables are not created. … … 88 88 89 89 * use Zend Code Generator to create/update front modules 90 91 * add the text widget 92 93 * {INTERNET} front edit : dynamically load widget forms js & css ( tabs, markdown... ) for performance reasons 94 95 * front edit dmWidgetMedia is broken : can not add a file by upload 96 97 * sfWidgetFormDmDate should extend sfWidgetFormI18nDate instead of currently sfWidgetFormDate plugins/diemPlugin/trunk/dmAdminPlugin/modules/dmAdminGenerator/templates/_markdown.php
r21423 r21489 30 30 <label class="fnone"><?php echo __('Preview'); ?></label> 31 31 <div class="markdown_preview markdown"> 32 <?php echo dmMarkdown:: get($form->getObject()->$getter())?>32 <?php echo dmMarkdown::toHtml($form->getObject()->$getter())?> 33 33 </div> 34 34 </div> plugins/diemPlugin/trunk/dmCorePlugin/config/dm/assets.yml
r21423 r21489 8 8 editCtrl: dmCoreEditCtrl 9 9 form: dmCoreForm 10 tabForm: dmCoreTabForm 10 11 toolBar: dmCoreToolBar 11 12 pageBar: dmCorePageBar plugins/diemPlugin/trunk/dmCorePlugin/data/i18n/en_fr.yml
r21423 r21489 193 193 "Show page structure": "Afficher la structure de la page" 194 194 "Generate sitemap": "Générer le sitemap" 195 "Links": "Liens" plugins/diemPlugin/trunk/dmCorePlugin/lib/dm.php
r21423 r21489 43 43 case 'markdown': 44 44 require_once(implode(DIRECTORY_SEPARATOR, array(dm::getDir(), 'dmCorePlugin', 'lib', 'markdown', 'dmMarkdown.php'))); 45 print isset($_REQUEST['text']) ? dmMarkdown:: get($_REQUEST['text']) : '';45 print isset($_REQUEST['text']) ? dmMarkdown::toHtml($_REQUEST['text']) : ''; 46 46 break; 47 47 default: plugins/diemPlugin/trunk/dmCorePlugin/lib/markdown/dmMarkdown.php
r21423 r21489 8 8 protected static $instance; 9 9 10 public static function get($text)10 public static function toHtml($text) 11 11 { 12 12 if(is_null(self::$instance)) … … 20 20 public static function toText($text) 21 21 { 22 return strip_tags(self:: get($text));22 return strip_tags(self::toHtml($text)); 23 23 } 24 24 25 25 public function transform($text) 26 26 { 27 $text = $this->preTransform($text); 28 29 $text = parent::transform($text); 30 31 $text = $this->postTransform($text); 32 33 return $text; 27 return self::postTransform(parent::transform(self::preTransform($text))); 34 28 } 35 29 36 protected function preTransform($text)30 protected static function preTransform($text) 37 31 { 38 32 // clean text 39 $text = $this->cleanText($text);33 $text = self::cleanText($text); 40 34 41 35 // replace lines with only a dot by a <br /> … … 48 42 } 49 43 50 protected function postTransform($text)44 protected static function postTransform($text) 51 45 { 52 46 … … 54 48 } 55 49 56 protected function cleanText($text)50 protected static function cleanText($text) 57 51 { 58 52 return strtr($text, array( 59 "\r" => "" // réparation des sauts de ligne mac/windows 60 , "\t" => " " // tabs -> double espace 61 , "’" => "'" // apostrophe 53 "’" => "'" // apostrophe 62 54 , '“' => '&lquot;' 63 55 , '”' => '&rquot;' plugins/diemPlugin/trunk/dmCorePlugin/lib/model/doctrine/media/PluginDmMediaFolderTable.class.php
r21423 r21489 30 30 'rel_path' => $relPath 31 31 )); 32 33 $record-> getNode()->insertAsLastChildOf($parent);32 33 $record->Node->insertAsLastChildOf($parent); 34 34 } 35 35 36 return $record; 36 37 } plugins/diemPlugin/trunk/dmCorePlugin/lib/search/plugin/dmSearchIndex.php
r21446 r21489 1 1 <?php 2 3 require_once('Zend/Search/Lucene.php'); 2 4 3 5 abstract class dmSearchIndex extends dmSearchIndexCommon plugins/diemPlugin/trunk/dmCorePlugin/lib/view/html/media/dmMediaTag.php
r21423 r21489 10 10 $resource = new dmMediaResource($source); 11 11 12 if (!$resource->getSource()) 13 { 14 throw new dmException(sprintf( 15 'Can not display media wich has no source' 16 )); 17 } 18 12 19 $mediaClass = 'dmMedia'.dmString::camelize($resource->getMime()).'Tag'; 13 20 14 21 if (!class_exists($mediaClass) || $mediaClass === 'dmMediaTag') 15 22 { plugins/diemPlugin/trunk/dmCorePlugin/web/js/dmCoreEditPlugins.js
r21423 r21489 126 126 * Make ui dialogs fixed 127 127 */ 128 129 128 if ($.ui.dialog) 130 129 { plugins/diemPlugin/trunk/dmCorePlugin/web/js/dmCorePlugins.js
r21423 r21489 1 1 (function($) 2 2 { 3 var isFirstDebug = true; 3 4 4 5 $.dbg = function() 5 6 { 7 /* 8 * Fix firefox 3.6 alpha firebug bug 9 */ 10 if (isFirstDebug) 11 { 12 try 13 { 14 console.debug('dm : start debugging'); 15 } 16 catch(e) 17 { 18 19 } 20 21 isFirstDebug = false; 22 } 6 23 if (!$.dm.ctrl.options.debug) 7 24 { … … 12 29 console.debug(arguments); 13 30 } 14 catch (e)31 catch(e) 15 32 { 33 34 alert(e); 16 35 for (var i in arguments) 17 36 { plugins/diemPlugin/trunk/dmCorePlugin/web/lib/dmMarkitup/sets/markdown/set.js
r21423 r21489 1 // -------------------------------------------------------------------2 // markItUp!3 // -------------------------------------------------------------------4 // Copyright (C) 2008 Jay Salvat5 // http://markitup.jaysalvat.com/6 // -------------------------------------------------------------------7 // MarkDown tags example8 // http://en.wikipedia.org/wiki/Markdown9 // http://daringfireball.net/projects/markdown/10 // -------------------------------------------------------------------11 // Feel free to add more tags12 // -------------------------------------------------------------------13 1 dmMarkitupMarkdown = { 14 2 previewParserPath: '', plugins/diemPlugin/trunk/dmCorePlugin/web/lib/jquery-ui/js/jquery-ui-1.7.2.front.min.js
r21423 r21489 60 60 */ 61 61 (function(c){var b={dragStart:"start.draggable",drag:"drag.draggable",dragStop:"stop.draggable",maxHeight:"maxHeight.resizable",minHeight:"minHeight.resizable",maxWidth:"maxWidth.resizable",minWidth:"minWidth.resizable",resizeStart:"start.resizable",resize:"drag.resizable",resizeStop:"stop.resizable"},a="ui-dialog ui-widget ui-widget-content ui-corner-all ";c.widget("ui.dialog",{_init:function(){this.originalTitle=this.element.attr("title");var l=this,m=this.options,j=m.title||this.originalTitle||" ",e=c.ui.dialog.getTitleId(this.element),k=(this.uiDialog=c("<div/>")).appendTo(document.body).hide().addClass(a+m.dialogClass).css({position:"absolute",overflow:"hidden",zIndex:m.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(n){(m.closeOnEscape&&n.keyCode&&n.keyCode==c.ui.keyCode.ESCAPE&&l.close(n))}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(n){l.moveToTop(false,n)}),g=this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(k),f=(this.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(k),i=c('<a href="#"/>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){i.addClass("ui-state-hover")},function(){i.removeClass("ui-state-hover")}).focus(function(){i.addClass("ui-state-focus")}).blur(function(){i.removeClass("ui-state-focus")}).mousedown(function(n){n.stopPropagation()}).click(function(n){l.close(n);return false}).appendTo(f),h=(this.uiDialogTitlebarCloseText=c("<span/>")).addClass("ui-icon ui-icon-closethick").text(m.closeText).appendTo(i),d=c("<span/>").addClass("ui-dialog-title").attr("id",e).html(j).prependTo(f);f.find("*").add(f).disableSelection();(m.draggable&&c.fn.draggable&&this._makeDraggable());(m.resizable&&c.fn.resizable&&this._makeResizable());this._createButtons(m.buttons);this._isOpen=false;(m.bgiframe&&c.fn.bgiframe&&k.bgiframe());(m.autoOpen&&this.open())},destroy:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();(this.originalTitle&&this.element.attr("title",this.originalTitle))},close:function(f){var d=this;if(false===d._trigger("beforeclose",f)){return}(d.overlay&&d.overlay.destroy());d.uiDialog.unbind("keypress.ui-dialog");(d.options.hide?d.uiDialog.hide(d.options.hide,function(){d._trigger("close",f)}):d.uiDialog.hide()&&d._trigger("close",f));c.ui.dialog.overlay.resize();d._isOpen=false;if(d.options.modal){var e=0;c(".ui-dialog").each(function(){if(this!=d.uiDialog[0]){e=Math.max(e,c(this).css("z-index"))}});c.ui.dialog.maxZ=e}},isOpen:function(){return this._isOpen},moveToTop:function(f,e){if((this.options.modal&&!f)||(!this.options.stack&&!this.options.modal)){return this._trigger("focus",e)}if(this.options.zIndex>c.ui.dialog.maxZ){c.ui.dialog.maxZ=this.options.zIndex}(this.overlay&&this.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=++c.ui.dialog.maxZ));var d={scrollTop:this.element.attr("scrollTop"),scrollLeft:this.element.attr("scrollLeft")};this.uiDialog.css("z-index",++c.ui.dialog.maxZ);this.element.attr(d);this._trigger("focus",e)},open:function(){if(this._isOpen){return}var e=this.options,d=this.uiDialog;this.overlay=e.modal?new c.ui.dialog.overlay(this):null;(d.next().length&&d.appendTo("body"));this._size();this._position(e.position);d.show(e.show);this.moveToTop(true);(e.modal&&d.bind("keypress.ui-dialog",function(h){if(h.keyCode!=c.ui.keyCode.TAB){return}var g=c(":tabbable",this),i=g.filter(":first")[0],f=g.filter(":last")[0];if(h.target==f&&!h.shiftKey){setTimeout(function(){i.focus()},1)}else{if(h.target==i&&h.shiftKey){setTimeout(function(){f.focus()},1)}}}));c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();this._trigger("open");this._isOpen=true},_createButtons:function(g){var f=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");this.uiDialog.find(".ui-dialog-buttonpane").remove();(typeof g=="object"&&g!==null&&c.each(g,function(){return !(d=true)}));if(d){c.each(g,function(h,i){c('<button type="button"></button>').addClass("ui-state-default ui-corner-all").text(h).click(function(){i.apply(f.element[0],arguments)}).hover(function(){c(this).addClass("ui-state-hover")},function(){c(this).removeClass("ui-state-hover")}).focus(function(){c(this).addClass("ui-state-focus")}).blur(function(){c(this).removeClass("ui-state-focus")}).appendTo(e)});e.appendTo(this.uiDialog)}},_makeDraggable:function(){var d=this,f=this.options,e;this.uiDialog.draggable({cancel:".ui-dialog-content",handle:".ui-dialog-titlebar",containment:"document",start:function(){e=f.height;c(this).height(c(this).height()).addClass("ui-dialog-dragging");(f.dragStart&&f.dragStart.apply(d.element[0],arguments))},drag:function(){(f.drag&&f.drag.apply(d.element[0],arguments))},stop:function(){c(this).removeClass("ui-dialog-dragging").height(e);(f.dragStop&&f.dragStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}})},_makeResizable:function(g){g=(g===undefined?this.options.resizable:g);var d=this,f=this.options,e=typeof g=="string"?g:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",alsoResize:this.element,maxWidth:f.maxWidth,maxHeight:f.maxHeight,minWidth:f.minWidth,minHeight:f.minHeight,start:function(){c(this).addClass("ui-dialog-resizing");(f.resizeStart&&f.resizeStart.apply(d.element[0],arguments))},resize:function(){(f.resize&&f.resize.apply(d.element[0],arguments))},handles:e,stop:function(){c(this).removeClass("ui-dialog-resizing");f.height=c(this).height();f.width=c(this).width();(f.resizeStop&&f.resizeStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}}).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_position:function(i){var e=c(window),f=c(document),g=f.scrollTop(),d=f.scrollLeft(),h=g;if(c.inArray(i,["center","top","right","bottom","left"])>=0){i=[i=="right"||i=="left"?i:"center",i=="top"||i=="bottom"?i:"middle"]}if(i.constructor!=Array){i=["center","middle"]}if(i[0].constructor==Number){d+=i[0]}else{switch(i[0]){case"left":d+=0;break;case"right":d+=e.width()-this.uiDialog.outerWidth();break;default:case"center":d+=(e.width()-this.uiDialog.outerWidth())/2}}if(i[1].constructor==Number){g+=i[1]}else{switch(i[1]){case"top":g+=0;break;case"bottom":g+=e.height()-this.uiDialog.outerHeight();break;default:case"middle":g+=(e.height()-this.uiDialog.outerHeight())/2}}g=Math.max(g,h);this.uiDialog.css({top:g,left:d})},_setData:function(e,f){(b[e]&&this.uiDialog.data(b[e],f));switch(e){case"buttons":this._createButtons(f);break;case"closeText":this.uiDialogTitlebarCloseText.text(f);break;case"dialogClass":this.uiDialog.removeClass(this.options.dialogClass).addClass(a+f);break;case"draggable":(f?this._makeDraggable():this.uiDialog.draggable("destroy"));break;case"height":this.uiDialog.height(f);break;case"position":this._position(f);break;case"resizable":var d=this.uiDialog,g=this.uiDialog.is(":data(resizable)");(g&&!f&&d.resizable("destroy"));(g&&typeof f=="string"&&d.resizable("option","handles",f));(g||this._makeResizable(f));break;case"title":c(".ui-dialog-title",this.uiDialogTitlebar).html(f||" ");break;case"width":this.uiDialog.width(f);break}c.widget.prototype._setData.apply(this,arguments)},_size:function(){var e=this.options;this.element.css({height:0,minHeight:0,width:"auto"});var d=this.uiDialog.css({height:"auto",width:e.width}).height();this.element.css({minHeight:Math.max(e.minHeight-d,0),height:e.height=="auto"?"auto":Math.max(e.height-d,0)})}});c.extend(c.ui.dialog,{version:"1.7.2",defaults:{autoOpen:true,bgiframe:false,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1000},getter:"isOpen",uuid:0,maxZ:0,getTitleId:function(d){return"ui-dialog-title-"+(d.attr("id")||++this.uuid)},overlay:function(d){this.$el=c.ui.dialog.overlay.create(d)}});c.extend(c.ui.dialog.overlay,{instances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(d){return d+".dialog-overlay"}).join(" "),create:function(e){if(this.instances.length===0){setTimeout(function(){if(c.ui.dialog.overlay.instances.length){c(document).bind(c.ui.dialog.overlay.events,function(f){var g=c(f.target).parents(".ui-dialog").css("zIndex")||0;return(g>c.ui.dialog.overlay.maxZ)})}},1);c(document).bind("keydown.dialog-overlay",function(f){(e.options.closeOnEscape&&f.keyCode&&f.keyCode==c.ui.keyCode.ESCAPE&&e.close(f))});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var d=c("<div></div>").appendTo(document.body).addClass("ui-widget-overlay").css({width:this.width(),height:this.height()});(e.options.bgiframe&&c.fn.bgiframe&&d.bgiframe());this.instances.push(d);return d},destroy:function(d){this.instances.splice(c.inArray(this.instances,d),1);if(this.instances.length===0){c([document,window]).unbind(".dialog-overlay")}d.remove();var e=0;c.each(this.instances,function(){e=Math.max(e,this.css("z-index"))});this.maxZ=e},height:function(){if(c.browser.msie&&c.browser.version<7){var e=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);var d=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(e<d){return c(window).height()+"px"}else{return e+"px"}}else{return c(document).height()+"px"}},width:function(){if(c.browser.msie&&c.browser.version<7){var d=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);var e=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);if(d<e){return c(window).width()+"px"}else{return d+"px"}}else{return c(document).width()+"px"}},resize:function(){var d=c([]);c.each(c.ui.dialog.overlay.instances,function(){d=d.add(this)});d.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery); 62 /* jQuery UI Tabs */ 63 (function(a){a.widget("ui.tabs",{_init:function(){if(this.options.deselectable!==undefined){this.options.collapsible=this.options.deselectable}this._tabify(true)},_setData:function(b,c){if(b=="selected"){if(this.options.collapsible&&c==this.options.selected){return}this.select(c)}else{this.options[b]=c;if(b=="deselectable"){this.options.collapsible=c}this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+a.data(b)},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+a.data(this.list[0]));return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(c,b){return{tab:c,panel:b,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(n){this.list=this.element.children("ul:first");this.lis=a("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);var p=this,d=this.options;var c=/^#.+/;this.anchors.each(function(r,o){var q=a(o).attr("href");var s=q.split("#")[0],u;if(s&&(s===location.toString().split("#")[0]||(u=a("base")[0])&&s===u.href)){q=o.hash;o.href=q}if(c.test(q)){p.panels=p.panels.add(p._sanitizeSelector(q))}else{if(q!="#"){a.data(o,"href.tabs",q);a.data(o,"load.tabs",q.replace(/#.*$/,""));var w=p._tabId(o);o.href="#"+w;var v=a("#"+w);if(!v.length){v=a(d.panelTemplate).attr("id",w).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(p.panels[r-1]||p.list);v.data("destroy.tabs",true)}p.panels=p.panels.add(v)}else{d.disabled.push(r)}}});if(n){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(d.selected===undefined){if(location.hash){this.anchors.each(function(q,o){if(o.hash==location.hash){d.selected=q;return false}})}if(typeof d.selected!="number"&&d.cookie){d.selected=parseInt(p._cookie(),10)}if(typeof d.selected!="number"&&this.lis.filter(".ui-tabs-selected").length){d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}d.selected=d.selected||0}else{if(d.selected===null){d.selected=-1}}d.selected=((d.selected>=0&&this.anchors[d.selected])||d.selected<0)?d.selected:0;d.disabled=a.unique(d.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(q,o){return p.lis.index(q)}))).sort();if(a.inArray(d.selected,d.disabled)!=-1){d.disabled.splice(a.inArray(d.selected,d.disabled),1)}this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(d.selected>=0&&this.anchors.length){this.panels.eq(d.selected).removeClass("ui-tabs-hide");this.lis.eq(d.selected).addClass("ui-tabs-selected ui-state-active");p.element.queue("tabs",function(){p._trigger("show",null,p._ui(p.anchors[d.selected],p.panels[d.selected]))});this.load(d.selected)}a(window).bind("unload",function(){p.lis.add(p.anchors).unbind(".tabs");p.lis=p.anchors=p.panels=null})}else{d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}this.element[d.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");if(d.cookie){this._cookie(d.selected,d.cookie)}for(var g=0,m;(m=this.lis[g]);g++){a(m)[a.inArray(g,d.disabled)!=-1&&!a(m).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled")}if(d.cache===false){this.anchors.removeData("cache.tabs")}this.lis.add(this.anchors).unbind(".tabs");if(d.event!="mouseover"){var f=function(o,i){if(i.is(":not(.ui-state-disabled)")){i.addClass("ui-state-"+o)}};var j=function(o,i){i.removeClass("ui-state-"+o)};this.lis.bind("mouseover.tabs",function(){f("hover",a(this))});this.lis.bind("mouseout.tabs",function(){j("hover",a(this))});this.anchors.bind("focus.tabs",function(){f("focus",a(this).closest("li"))});this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var b,h;if(d.fx){if(a.isArray(d.fx)){b=d.fx[0];h=d.fx[1]}else{b=h=d.fx}}function e(i,o){i.css({display:""});if(a.browser.msie&&o.opacity){i[0].style.removeAttribute("filter")}}var k=h?function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.hide().removeClass("ui-tabs-hide").animate(h,h.duration||"normal",function(){e(o,h);p._trigger("show",null,p._ui(i,o[0]))})}:function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.removeClass("ui-tabs-hide");p._trigger("show",null,p._ui(i,o[0]))};var l=b?function(o,i){i.animate(b,b.duration||"normal",function(){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");e(i,b);p.element.dequeue("tabs")})}:function(o,i,q){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");p.element.dequeue("tabs")};this.anchors.bind(d.event+".tabs",function(){var o=this,r=a(this).closest("li"),i=p.panels.filter(":not(.ui-tabs-hide)"),q=a(p._sanitizeSelector(this.hash));if((r.hasClass("ui-tabs-selected")&&!d.collapsible)||r.hasClass("ui-state-disabled")||r.hasClass("ui-state-processing")||p._trigger("select",null,p._ui(this,q[0]))===false){this.blur();return false}d.selected=p.anchors.index(this);p.abort();if(d.collapsible){if(r.hasClass("ui-tabs-selected")){d.selected=-1;if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){l(o,i)}).dequeue("tabs");this.blur();return false}else{if(!i.length){if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this));this.blur();return false}}}if(d.cookie){p._cookie(d.selected,d.cookie)}if(q.length){if(i.length){p.element.queue("tabs",function(){l(o,i)})}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this))}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(a.browser.msie){this.blur()}});this.anchors.bind("click.tabs",function(){return false})},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var c=a.data(this,"href.tabs");if(c){this.href=c}var d=a(this).unbind(".tabs");a.each(["href","load","cache"],function(e,f){d.removeData(f+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){if(a.data(this,"destroy.tabs")){a(this).remove()}else{a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}});if(b.cookie){this._cookie(null,b.cookie)}},add:function(e,d,c){if(c===undefined){c=this.anchors.length}var b=this,g=this.options,i=a(g.tabTemplate.replace(/#\{href\}/g,e).replace(/#\{label\}/g,d)),h=!e.indexOf("#")?e.replace("#",""):this._tabId(a("a",i)[0]);i.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var f=a("#"+h);if(!f.length){f=a(g.panelTemplate).attr("id",h).data("destroy.tabs",true)}f.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(c>=this.lis.length){i.appendTo(this.list);f.appendTo(this.list[0].parentNode)}else{i.insertBefore(this.lis[c]);f.insertBefore(this.panels[c])}g.disabled=a.map(g.disabled,function(k,j){return k>=c?++k:k});this._tabify();if(this.anchors.length==1){i.addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[c],this.panels[c]))},remove:function(b){var d=this.options,e=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();if(e.hasClass("ui-tabs-selected")&&this.anchors.length>1){this.select(b+(b+1<this.anchors.length?1:-1))}d.disabled=a.map(a.grep(d.disabled,function(g,f){return g!=b}),function(g,f){return g>=b?--g:g});this._tabify();this._trigger("remove",null,this._ui(e.find("a")[0],c[0]))},enable:function(b){var c=this.options;if(a.inArray(b,c.disabled)==-1){return}this.lis.eq(b).removeClass("ui-state-disabled");c.disabled=a.grep(c.disabled,function(e,d){return e!=b});this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]))},disable:function(c){var b=this,d=this.options;if(c!=d.selected){this.lis.eq(c).addClass("ui-state-disabled");d.disabled.push(c);d.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}},select:function(b){if(typeof b=="string"){b=this.anchors.index(this.anchors.filter("[href$="+b+"]"))}else{if(b===null){b=-1}}if(b==-1&&this.options.collapsible){b=this.options.selected}this.anchors.eq(b).trigger(this.options.event+".tabs")},load:function(e){var c=this,g=this.options,b=this.anchors.eq(e)[0],d=a.data(b,"load.tabs");this.abort();if(!d||this.element.queue("tabs").length!==0&&a.data(b,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(e).addClass("ui-state-processing");if(g.spinner){var f=a("span",b);f.data("label.tabs",f.html()).html(g.spinner)}this.xhr=a.ajax(a.extend({},g.ajaxOptions,{url:d,success:function(i,h){a(c._sanitizeSelector(b.hash)).html(i);c._cleanup();if(g.cache){a.data(b,"cache.tabs",true)}c._trigger("load",null,c._ui(c.anchors[e],c.panels[e]));try{g.ajaxOptions.success(i,h)}catch(j){}c.element.dequeue("tabs")}}))},abort:function(){this.element.queue([]);this.panels.stop(false,true);if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup()},url:function(c,b){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",b)},length:function(){return this.anchors.length}});a.extend(a.ui.tabs,{version:"1.7.2",getter:"length",defaults:{ajaxOptions:null,cache:false,cookie:null,collapsible:false,disabled:[],event:"click",fx:null,idPrefix:"ui-tabs-",panelTemplate:"<div></div>",spinner:"<em>Loading…</em>",tabTemplate:'<li><a href="#{href}"><span>#{label}</span></a></li>'}});a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(d,f){var b=this,g=this.options;var c=b._rotate||(b._rotate=function(h){clearTimeout(b.rotation);b.rotation=setTimeout(function(){var i=g.selected;b.select(++i<b.anchors.length?i:0)},d);if(h){h.stopPropagation()}});var e=b._unrotate||(b._unrotate=!f?function(h){if(h.clientX){b.rotate(null)}}:function(h){t=g.selected;c()});if(d){this.element.bind("tabsshow",c);this.anchors.bind(g.event+".tabs",e);c()}else{clearTimeout(b.rotation);this.element.unbind("tabsshow",c);this.anchors.unbind(g.event+".tabs",e);delete this._rotate;delete this._unrotate}}})})(jQuery); 64 /* jQuery UI Resizable */ 65 (function(c){c.widget("ui.resizable",c.extend({},c.ui.mouse,{_init:function(){var e=this,j=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(j.aspectRatio),aspectRatio:j.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:j.helper||j.ghost||j.animate?j.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&c.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f<k.length;f++){var h=c.trim(k[f]),d="ui-resizable-"+h;var g=c('<div class="ui-resizable-handle '+d+'"></div>');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidth<k.width),l=a(k.height)&&h.maxHeight&&(h.maxHeight<k.height),g=a(k.width)&&h.minWidth&&(h.minWidth>k.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e<this._proportionallyResizeElements.length;e++){var g=this._proportionallyResizeElements[e];if(!this.borderDif){var d=[g.css("borderTopWidth"),g.css("borderRightWidth"),g.css("borderBottomWidth"),g.css("borderLeftWidth")],h=[g.css("paddingTop"),g.css("paddingRight"),g.css("paddingBottom"),g.css("paddingLeft")];this.borderDif=c.map(d,function(k,m){var l=parseInt(k,10)||0,n=parseInt(h[m],10)||0;return l+n})}if(c.browser.msie&&!(!(c(f).is(":hidden")||c(f).parents(":hidden").length))){continue}g.css({height:(f.height()-this.borderDif[0]-this.borderDif[2])||0,width:(f.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var e=this.element,h=this.options;this.elementOffset=e.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)){s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery); plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmFilter/dmFrontAssetFilter.php
r21423 r21489 14 14 'lib.form', 15 15 'lib.hotkeys', 16 'lib.markitup', 17 'lib.markitupSet', 16 18 'core.config', 17 19 'core.plugins', … … 20 22 'core.editCtrl', 21 23 'core.form', 24 'core.tabForm', 22 25 'core.toolBar', 23 26 'core.pageBar', … … 58 61 $cssArray = array( 59 62 'lib.ui', 63 'lib.markitup', 64 'lib.markitupSet', 60 65 'core.util', 61 66 'core.editMode', plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/base/dmWidgetBaseForm.php
r21423 r21489 4 4 { 5 5 protected 6 $ widget;6 $dmWidget; 7 7 8 8 protected … … 16 16 * @param string $CSRFSecret A CSRF secret (false to disable CSRF protection, null to use the global CSRF secret) 17 17 */ 18 public function __construct($widget = array(), $options = array(), $CSRFSecret = null)18 public function __construct($widget, $options = array(), $CSRFSecret = null) 19 19 { 20 20 if (!$widget instanceof DmWidget) … … 69 69 protected function renderActions() 70 70 { 71 $i18n = dm::getI18n(); 72 71 73 return sprintf( 72 74 '<div class="actions"> 73 <div class="actions_part clearfix"> 74 %s%s 75 </div> 76 <div class="actions_part clearfix"> 77 %s%s 78 </div> 75 <div class="actions_part clearfix">%s%s</div> 76 <div class="actions_part clearfix">%s%s</div> 79 77 </div>', 80 sprintf('<a class="dm cancel close_dialog button fleft">%s</a>', dm::getI18n()->__('Cancel')),81 sprintf('<input type="submit" class="submit try blue fright" name="try" value="%s" />', dm::getI18n()->__('Try')),82 sprintf('<a class="dm delete button red fleft" title="%s">%s</a>', dm::getI18n()->__('Delete this widget'), dm::getI18n()->__('Delete')),83 sprintf('<input type="submit" class="submit and_save green fright" name="and_save" value="%s" />', dm::getI18n()->__('Save and close'))78 sprintf('<a class="dm cancel close_dialog button fleft">%s</a>', $i18n->__('Cancel')), 79 sprintf('<input type="submit" class="submit try blue fright" name="try" value="%s" />', $i18n->__('Try')), 80 sprintf('<a class="dm delete button red fleft" title="%s">%s</a>', $i18n->__('Delete this widget'), $i18n->__('Delete')), 81 sprintf('<input type="submit" class="submit and_save green fright" name="and_save" value="%s" />', $i18n->__('Save and close')) 84 82 ); 85 83 } … … 125 123 return $this->firstDefaults; 126 124 } 127 128 /* 129 * Static methods 130 */ 125 131 126 } plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/base/dmWidgetBaseView.php
r21423 r21489 26 26 return array_unique($this->requiredVars); 27 27 } 28 29 public function isRequiredVar($var) 30 { 31 return in_array($var, $this->getRequiredVars()); 32 } 28 33 29 34 public function addRequiredVar($var) … … 37 42 $this->requiredVars[] = $var; 38 43 } 44 } 45 46 public function removeRequiredVar($var) 47 { 48 if (is_array($var)) 49 { 50 foreach($var as $v) 51 { 52 $this->removeRequiredVar($v); 53 } 54 } 55 elseif (false !== ($varIndex = array_search($var, $this->requiredVars))) 56 { 57 unset($this->requiredVars[$varIndex]); 58 } 39 59 } 40 60 … … 70 90 } 71 91 72 public function getViewVars( $vars = array())92 public function getViewVars(array $vars = array()) 73 93 { 74 94 return array_merge( plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/base/project/model/dmWidgetProjectModelView.php
r21423 r21489 15 15 * @return array viewVars 16 16 */ 17 public function getViewVars( $vars = array())17 public function getViewVars(array $vars = array()) 18 18 { 19 19 $viewVars = parent::getViewVars($vars); plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/breadCrumb/dmWidgetNavigationBreadCrumbView.php
r21423 r21489 9 9 } 10 10 11 public function getViewVars( $vars = array())11 public function getViewVars(array $vars = array()) 12 12 { 13 13 $vars = parent::getViewVars($vars); plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/list/dmWidgetListView.php
r21423 r21489 26 26 * @return array viewVars 27 27 */ 28 public function getViewVars( $vars = array())28 public function getViewVars(array $vars = array()) 29 29 { 30 30 $viewVars = parent::getViewVars($vars); plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/media/dmWidgetContentMediaForm.php
r21423 r21489 89 89 90 90 $this->validatorSchema->setPostValidator( 91 new sfValidatorCallback(array('callback' => array($this, 'check Source')))91 new sfValidatorCallback(array('callback' => array($this, 'checkMediaSource'))) 92 92 ); 93 93 … … 95 95 } 96 96 97 public function check Source($validator, $values)97 public function checkMediaSource($validator, $values) 98 98 { 99 99 if (!$values['mediaId'] && !$values['file']) plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/media/dmWidgetContentMediaView.php
r21423 r21489 3 3 class dmWidgetContentMediaView extends dmWidgetPluginView 4 4 { 5 5 6 public function configure() 6 7 { … … 10 11 } 11 12 12 public function getViewVars( $vars = array())13 public function getViewVars(array $vars = array()) 13 14 { 14 15 $vars = parent::getViewVars($vars); 15 16 16 $media = dmDb::query('DmMedia m, m.Folder f') 17 ->where('m.id = ?', $vars['mediaId']) 18 ->fetchOne(); 19 20 $mediaTag = dmMediaTag::build($media); 21 22 if (!empty($vars['width']) || !empty($vars['height'])) 23 { 24 $mediaTag->size(dmArray::get($vars, 'width'), dmArray::get($vars, 'height')); 25 } 26 27 $mediaTag->method($vars['method']); 28 29 if ($vars['method'] === 'fit') 30 { 31 $mediaTag->background($vars['background']); 32 } 33 34 $vars['media'] = $mediaTag; 17 if (!empty($vars['mediaId']) || $this->isRequiredVar('mediaId')) 18 { 19 $media = dmMediaTag::build(dmDb::table('DmMedia')->findOneByIdWithFolder($vars['mediaId'])); 20 21 if (!empty($vars['width']) || !empty($vars['height'])) 22 { 23 $media->size(dmArray::get($vars, 'width'), dmArray::get($vars, 'height')); 24 } 25 26 $media->method($vars['method']); 27 28 if ($vars['method'] === 'fit') 29 { 30 $media->background($vars['background']); 31 } 32 } 33 else 34 { 35 $media = null; 36 } 37 38 $vars['media'] = $media; 35 39 36 40 return $vars; plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/search/dmWidgetAdvancedSearchFormView.php
r21446 r21489 9 9 } 10 10 11 public function getViewVars( $vars = array())11 public function getViewVars(array $vars = array()) 12 12 { 13 13 $vars = parent::getViewVars($vars); plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/search/dmWidgetAdvancedSearchResultsView.php
r21446 r21489 9 9 } 10 10 11 public function getViewVars( $vars = array())11 public function getViewVars(array $vars = array()) 12 12 { 13 13 $vars = parent::getViewVars($vars); plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/text/dmWidgetContentTextForm.php
r21423 r21489 1 1 <?php 2 2 3 class dmWidgetContentTextForm extends dmWidget PluginForm3 class dmWidgetContentTextForm extends dmWidgetContentMediaForm 4 4 { 5 5 … … 17 17 $this->validatorSchema['text'] = new sfValidatorString(array('required' => false)); 18 18 19 $ mediaForm = new dmWidgetContentMediaForm($this->dmWidget);20 $this-> mergeForm($mediaForm);19 $this->widgetSchema['mediaLink'] = new sfWidgetFormInputText(); 20 $this->validatorSchema['mediaLink'] = new sfValidatorString(array('required' => false)); 21 21 } 22 22 23 protected function renderContent($attributes) 24 { 25 return dmContext::getInstance()->getHelper()->renderPartial('dmWidget', 'forms/dmWidgetContentText', array( 26 'form' => $this, 27 'baseTabId' => 'dm_widget_text_'.$this->dmWidget->id, 28 'hasMedia' => (boolean) $this->getValueOrDefault('mediaId') 29 )); 30 } 31 32 /* 33 * Disable media source validation 34 * because a text widget may have no media 35 */ 36 public function checkMediaSource($validator, $values) 37 { 38 return $values; 39 } 23 40 } plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/text/dmWidgetContentTextView.php
r21423 r21489 1 1 <?php 2 2 3 class dmWidgetContentTextView extends dmWidget PluginView3 class dmWidgetContentTextView extends dmWidgetContentMediaView 4 4 { 5 5 6 public function configure() 7 { 8 parent::configure(); 9 10 $this->removeRequiredVar(array('mediaId', 'method')); 11 } 12 13 public function getViewVars(array $vars = array()) 14 { 15 $vars = parent::getViewVars($vars); 16 17 if (!empty($vars['mediaId'])) 18 { 19 $vars['mediaClass'] = ''; 20 $vars['mediaPosition'] = 'top'; 21 } 22 23 $vars['titlePosition'] = 'outside'; 24 25 $vars['style'] = 'default'; 26 27 if(!isset($vars['title'])) 28 { 29 $vars['title'] = null; 30 } 31 32 if(!isset($vars['text'])) 33 { 34 $vars['text'] = null; 35 } 36 37 return $vars; 38 } 6 39 } plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmPage/actions/actions.class.php
r21423 r21489 41 41 { 42 42 $this->js = 43 file_get_contents(dmOs::join(sfConfig::get('sf_web_dir'), sfConfig::get('dm_core_asset'), 'lib/jquery-ui/js/ui.tabs.min.js')).44 43 dmJsMinifier::transform( 45 file_get_contents(dmOs::join(sfConfig::get('sf_web_dir'), sfConfig::get('dm_core_asset'), 'js/dmCoreTabForm.js')).46 44 file_get_contents(dmOs::join(sfConfig::get('sf_web_dir'), sfConfig::get('dm_front_asset'), 'js/dmFrontPageEditForm.js')) 47 45 ) plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmPage/templates/editSuccess.php
r21423 r21489 6 6 $form['id']. 7 7 8 £('div.dm.dm_page_edit ',8 £('div.dm.dm_page_edit.dm_tabbed_form', 9 9 10 10 £('ul.tabs', plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmWidget/templates/_dmWidgetContentText.php
r21423 r21489 1 1 <?php 2 2 3 return;3 echo £o('div.dm_text.text_'.$style); 4 4 5 echo £o("div.dm_text.text_".$style); 5 if ($title && $titlePosition == 'outside') 6 { 7 echo £('h2.text_title.outside', $title); 8 } 9 10 echo £o('div.text_content.clearfix'); 6 11 7 echo £o('div.text_head.clearfix'); 8 echo £('h2.title', $title); 12 if ($media && $mediaPosition != 'bottom') 13 { 14 echo £('div.text_image'.$mediaClass, $media); 15 } 16 17 if ($title && $titlePosition == 'inside') 18 { 19 echo £('h2.text_title.inside', $title); 20 } 21 22 echo £('text_markdown', dmMarkdown::toHtml($text)); 23 24 if ($media && $mediaPosition == 'bottom') 25 { 26 echo £('div.text_image'.$mediaClass, $media); 27 } 28 9 29 echo £c('div'); 10 30 11 // wrappers de style 12 echo '<div class="blob_content_left"><div class="blob_content_right">'; 13 14 echo £o("div.clearfix.columns_".$blob->getColumns()); // contenu en colonnes 15 16 switch($blob->getImagePosition()) // choix de la classe de l'image en fonction de la template choisie 17 { 18 case "img_left": $img_css = ".fleft.imgleft"; break; 19 case "img_right": $img_css = ".fright.imgright"; break; 20 case "img_top": $img_css = ".imgtop"; break; 21 default: $img_css = false; 22 } 23 if ($img_css && $blob->getMedia()) // affichage de l'image 24 { 25 echo £("div.blob_image".$img_css, $blob->getImageWithLink()); 26 } 27 28 if($blob->getNom() && $blob->getTitlePosition() == "title_in") // affichage du titre à l'intérieur 29 { 30 echo £('h2.blob_nom.title_in', $blob->getNom()); 31 } 32 33 // affichage du texte 34 echo £('div.blob_description', aze::markdown($blob->getDescription(), false)); 35 36 if($blob->getImagePosition() == 'img_bottom') 37 { 38 echo £("div.blob_image.imgbottom", $blob->getImageWithLink()); 39 } 40 41 echo £c("div"); // fin du contenu en colonnes 42 43 // fin des wrappers de style 44 echo '</div></div><div class="blob_foot_left"><div class="blob_foot_right"></div></div>'; 45 46 echo £c("div"); // fin de blob_style 31 echo £c('div'); plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmWidget/templates/forms/dmWidgetContentMedia.php
r21423 r21489 1 1 <?php 2 2 3 echo $form->renderGlobalErrors();3 //echo $form->renderGlobalErrors(); 4 4 5 5 echo £o('li.toggle_group'); 6 6 7 echo $form['mediaId'] ;7 echo $form['mediaId']->render(array('class' => 'dm_media_id')); 8 8 9 9 if ($hasMedia) plugins/diemPlugin/trunk/dmFrontPlugin/web/css/form.css
r21423 r21489 61 61 margin: 5px; 62 62 } 63 64 .dm_tabbed_form.ui-tabs { 65 border: 0; 66 } 67 68 .dm_tabbed_form .ui-tabs-panel { 69 padding: 5px 0 0 0; 70 } 71 72 .dm_form textarea.markItUpEditor { 73 width: 97%; 74 } plugins/diemPlugin/trunk/dmFrontPlugin/web/css/pageEditForm.css
r21423 r21489 1 .dm_page_edit.ui-tabs .ui-tabs-panel {2 padding: 5px 0;3 }4 5 1 .dm_page_edit_wrap .actions { 6 2 margin-top: 10px; plugins/diemPlugin/trunk/dmFrontPlugin/web/js/dmFrontForm.js
r21423 r21489 9 9 this.form = $('form:first', this.element); 10 10 11 this.linkDroppable(); 11 this.markitup(); 12 this.linkDroppable(); 13 this.hotKeys(); 14 }, 15 16 hotKeys: function() 17 { 18 var self = this; 12 19 13 this.element.bindKey('Ctrl+s', function() { 14 self.form.submit(); 15 return false; 16 }); 20 self.element.bindKey('Ctrl+s', function() { 21 self.form.submit(); 22 return false; 23 }); 24 }, 25 26 markitup: function() 27 { 28 var self = this; 29 30 $('textarea.dm_markdown', self.form).each(function() 31 { 32 var $editor = $(this); 33 34 $editor.markItUp(dmMarkitupMarkdown); 35 36 $editor.resizable({handles: 's'}); 37 }); 17 38 } 18 39 plugins/diemPlugin/trunk/dmFrontPlugin/web/js/page/dmWidget.js
r21423 r21489 12 12 openEditDialog: function() 13 13 { 14 var widget = this ;14 var widget = this, activeTab = null; 15 15 16 16 var $dialog = $.dm.ctrl.ajaxDialog({ … … 47 47 $form[formClass](widget); 48 48 } 49 /* 50 * Restore active tab 51 */ 52 if(activeTab) 53 { 54 $form.find('div.dm_tabbed_form').tabs('select', activeTab); 55 } 49 56 $form.find('form').dmAjaxForm({ 50 57 beforeSubmit: function(data) { 51 58 $dialog.block(); 52 59 widget.element.block(); 60 if ($tabbedFormActiveTab = $form.find('ul.ui-tabs-nav > li.ui-tabs-selected:first').orNot()) 61 { 62 activeTab = $tabbedFormActiveTab.find('>a').attr('href'); 63 } 53 64 }, 54 65 success: function(data) { plugins/diemPlugin/trunk/dmFrontPlugin/web/js/page/dmWidgetForms.js
r21423 r21489 15 15 tolerance: 'touch', 16 16 drop: function(event, ui) { 17 $('input #dm_widget_content_media_form_mediaId', self).val(ui.draggable.attr('id').replace(/dmm/, ''));17 $('input.dm_media_id', self).val(ui.draggable.attr('id').replace(/dmm/, '')); 18 18 $form.submit(); 19 19 } … … 28 28 }).trigger('change'); 29 29 }, 30 31 dmWidgetContentLinkForm: function(widget) 32 { 30 31 dmWidgetContentTextForm: function(widget) 32 { 33 var self = this, $form = self.find('form:first'), $tabs = $form.find('div.dm_tabbed_form').dmCoreTabForm({}); 33 34 34 } 35 self.dmWidgetContentMediaForm(widget); 36 }, 37 38 dmWidgetContentLinkForm: function(widget) 39 { 40 41 } 35 42 36 43 });