/*\r
* Nitdoc Clipboard\r
*\r
- * Allow user to copy signatures to clipboard\r
+ * Allow user to copy signatures to clipboard with ZeroClipboard flahs plugin\r
+ * See: https://github.com/zeroclipboard/ZeroClipboard\r
*/\r
define([\r
"jquery",\r
+ "jQueryUI",\r
"ZeroClipboard"\r
-], function($, ZeroClipboard) {\r
-\r
+], function($, ui, ZeroClipboard) {\r
//FIXME mouseover makes button disappear\r
- var Clipboard = {\r
- // Allow user to copy signatures to clipboard with ZeroClipboard flahs plugin\r
- // See: https://github.com/zeroclipboard/ZeroClipboard\r
- enable: function(copySelector) {\r
- $(copySelector).each(function() {\r
- var btn = $(document.createElement("button"))\r
- .addClass("nitdoc-ui-copy")\r
- .attr("data-clipboard-text", $(this).attr("data-untyped-signature"))\r
+ $.widget("nitdoc.clipboard", {\r
+ options: {\r
+ btnClass: "nitdoc-ui-copy",\r
+ btnImage: "./resources/icons/copy.png",\r
+ dataKey: "data-untyped-signature",\r
+ zeroConfig: {\r
+ moviePath: "./ZeroClipboard.swf"\r
+ }\r
+ },\r
+\r
+ _create: function() {\r
+ this.btn = $("<button/>")\r
+ .addClass(this.options.btnClass)\r
+ .attr("data-clipboard-text", this.element.attr(this.options.dataKey))\r
.append(\r
- $(document.createElement("img"))\r
- .attr("src", './resources/icons/copy.png')\r
+ $("<img/>").attr("src", this.options.btnImage)\r
);\r
- $(this).append(btn);\r
- });\r
-\r
- var clip = new ZeroClipboard($("button.nitdoc-ui-copy"), {\r
- moviePath: "./ZeroClipboard.swf"\r
- });\r
+ this.element.append(this.btn);\r
+ new ZeroClipboard(this.btn, this.options.zeroConfig);\r
}\r
- }\r
-\r
- Clipboard.enable(".signature");\r
+ });\r
\r
- return Clipboard;\r
+ $(".signature").clipboard();\r
});\r