- "base64",\r
- "Markdown.Converter",\r
- "plugins/github/ui",\r
- "plugins/github/commitbox",\r
-], function($, Base64, mkdown, UI, CommitBox) {\r
-\r
- // Init new modal box instance\r
- var CommentBox = function(infos) {\r
- this.infos = infos;\r
- this.commentBoxDiv;\r
- };\r
-\r
- CommentBox.prototype.open = function(baseArea) {\r
- //TODO redo\r
- //UI.addOpenedComments();\r
- var instance = this;\r
-\r
- if(this.infos.requestID) {\r
- // get comment from last pull request\r
- var requests = JSON.parse(localStorage.requests);\r
- this.infos.newComment = Base64.decode(requests[this.infos.requestID].comment);\r
- } else {\r
- this.infos.newComment = false;\r
- }\r
+ "jQueryUI"\r
+], function($) {\r
+ $.widget("nitdoc.commentbox", {\r
+\r
+ options: {\r
+ previewTxt: "preview",\r
+ commitTxt: "Commit...",\r
+ cancelTxt: "Cancel"\r
+ },\r
+\r
+ _create: function() {\r
+ this.commentBox = $("<div/>")\r
+ .addClass("nitdoc-github-commentbox")\r
+ .append(\r
+ $("<textarea/>")\r
+ .addClass("nitdoc-github-commentarea")\r
+ .keyup($.proxy(this._doKeyUp, this))\r
+ .keydown($.proxy(this._doKeyDown, this))\r
+ )\r
+ .append(\r
+ $("<a/>")\r
+ .addClass("nitdoc-github-preview")\r
+ .html(this.options.previewTxt)\r
+ .click($.proxy(this._doPreviewClick, this))\r
+ )\r
+ .append(\r
+ $("<button/>")\r
+ .addClass("nitdoc-github-button")\r
+ .addClass("nitdoc-github-commit")\r
+ .html(this.options.commitTxt)\r
+ .click($.proxy(this._doCommitClick, this))\r
+ )\r
+ .append(\r
+ $("<button/>")\r
+ .addClass("nitdoc-github-button")\r
+ .addClass("nitdoc-github-cancel")\r
+ .html(this.options.cancelTxt)\r
+ .click($.proxy(this._doCancelClick, this))\r
+ );\r
+\r
+ this.element.after(this.commentBox);\r
+ },\r
+\r
+ /* public actions */\r
+\r
+ open: function(value) {\r
+ this._originalValue = value;\r
+ this._setValue(value);\r
+ this._autosize();\r
+ this.commentBox.show();\r
+ var cbw = this.commentBox.innerWidth();\r
+ var taw = this._getArea().outerWidth();\r
+ this._getArea().width(cbw - (taw - cbw));\r
+ this.commentBox.find("textarea").trigger("keyup");\r
+ this.commentBox.find("textarea").focus();\r
+ this._trigger("_open", null, {commentBox: this});\r
+ },\r
+\r
+ close: function() {\r
+ this.commentBox.hide();\r
+ this._trigger("_close", null, {commentBox: this});\r
+ },\r
+\r
+ /* internals */\r
+\r
+ _autosize: function() {\r
+ this._getArea().height(this._getArea().val().split(/\r|\n/).length * 16);\r
+ },\r