{"id":262,"date":"2011-09-07T21:08:24","date_gmt":"2011-09-07T19:08:24","guid":{"rendered":"http:\/\/hasselba.ch\/blog\/?p=262"},"modified":"2011-09-07T21:08:24","modified_gmt":"2011-09-07T19:08:24","slug":"zeta-dialog-erweiterung-um-closable-parameter","status":"publish","type":"post","link":"https:\/\/hasselba.ch\/blog\/?p=262","title":{"rendered":"Zeta-Dialog: Erweiterung um &#8222;Closable&#8220;-Parameter"},"content":{"rendered":"<p>Jeremy Hodge hat den <a title=\"dojocampus.org: dijit.Dialog\" href=\"http:\/\/docs.dojocampus.org\/dijit\/Dialog\" target=\"_blank\">dijit.Dialog<\/a> erweitert und die wunderbare Komponente <a title=\"xpagesblog.com: XPages-Kompatibler Dojo-Dialog\" href=\"http:\/\/xpagesblog.com\/xpages-blog\/2010\/4\/10\/xpages-compatible-dojo-dialog-reusable-component.html\" target=\"_blank\">ZetaDialog<\/a> f\u00fcr die Domino-Welt bereitgestellt, einen XPages-Kompatiblen Dojo Dialog. Doch leider fehlt dem Dialog eine Kleinigkeit, n\u00e4mlich die M\u00f6glichkeit, zu Verhindern, das der User das Dialogfenster per &lt;ESC&gt; oder Close-Icon einfach schlie\u00dft.<\/p>\n<p>Daher habe ich den Code erg\u00e4nzt, so dass dies programmatisch unterbunden werden kann:<\/p>\n<pre>&lt;xp:scriptBlock id=\"scriptBlockZetaDialog\"&gt;\r\n\u00a0\u00a0 \u00a0&lt;xp:this.value&gt;&lt;![CDATA[dojo.addOnLoad( function(){ \r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0<strong>dijit.byId('#{id:zeta}').setCloseButtonDisabled( true );<\/strong>\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0dijit.byId('#{id:zeta}').show(); } )]]&gt;\r\n\u00a0\u00a0 \u00a0&lt;\/xp:this.value&gt;\r\n&lt;\/xp:scriptBlock&gt;<\/pre>\n<p><em>[In Fett: die Funktion setCloseButtonDisabled verhindert das Schlie\u00dfen durch den User]<\/em><\/p>\n<p>Hier der vollst\u00e4ndige erg\u00e4nzte Sourcecode:<\/p>\n<pre>\/\/Licensed under http:\/\/creativecommons.org\/licenses\/by\/3.0\/\r\n\/\/\r\n\/\/Modified by Sven Hasselbach: Now dialog no longer closable if required!\r\n\/\/http:\/\/blog.hasselba.ch\r\n\/\/\r\n\/\/Oringinal Code from Jeremy Hodge on the XPages Blog\r\n\/\/http:\/\/xpagesblog.com\/xpages-blog\/2010\/4\/10\/xpages-compatible-dojo-dialog-reusable-component.html\r\n\r\n\/\/ com.ZetaOne.Widget.Dialog\r\ndojo.provide('com.ZetaOne.widget.Dialog');\r\ndojo.require('dijit.Dialog');\r\n(function(){\r\n\u00a0\u00a0 \u00a0dojo.declare(\"com.ZetaOne.widget.Dialog\", dijit.Dialog, {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0disableCloseButton: false,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 \u00a0\u00a0 \u00a0_onKey: function(evt)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if(this.disableCloseButton &amp;&amp; \r\n                   evt.charOrCode == dojo.keys.ESCAPE) return;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.inherited(arguments);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0},\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0setCloseButtonDisabled: function(flag)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.disableCloseButton = flag;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._updateCloseButtonState();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0},\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0_updateCloseButtonState: function()\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0{\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0dojo.style(this.closeButtonNode,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\"display\",this.disableCloseButton ? \"none\" : \"block\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0},\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0postCreate: function(){\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.inherited(arguments);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._updateCloseButtonState();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0dojo.query('form', dojo.body())[0].appendChild(this.domNode);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0},\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0_setup: function() {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.inherited(arguments);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (this.domNode.parentNode.nodeName.toLowerCase() == 'body')\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0dojo.query('form', dojo.body())[0].appendChild(this.domNode);\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0})\r\n}());<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Jeremy Hodge hat den dijit.Dialog erweitert und die wunderbare Komponente ZetaDialog f\u00fcr die Domino-Welt bereitgestellt, einen XPages-Kompatiblen Dojo Dialog. Doch leider fehlt dem Dialog eine Kleinigkeit, n\u00e4mlich die M\u00f6glichkeit, zu Verhindern, das der User das Dialogfenster per &lt;ESC&gt; oder Close-Icon &hellip; <a href=\"https:\/\/hasselba.ch\/blog\/?p=262\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,75,19,9,81,74],"tags":[8,7,77,4,12,3],"class_list":["post-262","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-dojo","category-html","category-javascript","category-web","category-xpages","tag-dojo","tag-domino","tag-html","tag-js","tag-web","tag-xpages"],"_links":{"self":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/262","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=262"}],"version-history":[{"count":2,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/262\/revisions"}],"predecessor-version":[{"id":264,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/262\/revisions\/264"}],"wp:attachment":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}