summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFuXiaoHei <fuxiaohei@hexiaz.com>2014-03-29 20:46:36 +0800
committerFuXiaoHei <fuxiaohei@hexiaz.com>2014-03-29 20:46:36 +0800
commitf0d5c3992b03f4d6a82b272ac513d2989ffb8d81 (patch)
tree14bf6ea5bb3e9326cb345fd1f7c691b3983d3bec
parentbf2e76fc7ef187ce3b3e1ed9172cedf55d8fd5cb (diff)
downloadgitea-f0d5c3992b03f4d6a82b272ac513d2989ffb8d81.tar.gz
gitea-f0d5c3992b03f4d6a82b272ac513d2989ffb8d81.zip
issue ajax edit
-rw-r--r--public/js/app.js55
-rw-r--r--templates/issue/view.tmpl9
2 files changed, 56 insertions, 8 deletions
diff --git a/public/js/app.js b/public/js/app.js
index 9299a6b7aa..b03d9070a7 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -56,6 +56,43 @@ var Gogits = {
},
toggleShow: function () {
$(this).removeClass("hidden");
+ },
+ toggleAjax: function (successCallback) {
+ var url = $(this).data("ajax");
+ var method = $(this).data('ajax-method') || 'get';
+ var ajaxName = $(this).data('ajax-name');
+ var data = {};
+ $('[data-ajax-rel=' + ajaxName + ']').each(function () {
+ var field = $(this).data("ajax-field");
+ var t = $(this).data("ajax-val");
+ if (t == "val") {
+ data[field] = $(this).val();
+ return true;
+ }
+ if (t == "txt") {
+ data[field] = $(this).text();
+ return true;
+ }
+ if (t == "html") {
+ data[field] = $(this).html();
+ return true;
+ }
+ if (t == "data") {
+ data[field] = $(this).data("ajax-data");
+ return true;
+ }
+ return true;
+ });
+ $.ajax({
+ url: url,
+ method: method.toUpperCase(),
+ data: data,
+ success: function (d) {
+ if (successCallback) {
+ successCallback(d);
+ }
+ }
+ })
}
})
}(jQuery));
@@ -386,11 +423,11 @@ function initIssue() {
var $openBtn = $('#issue-open-btn');
$('#issue-reply-content').on("keyup", function () {
if ($(this).val().length) {
- $closeBtn.text($closeBtn.data("text"));
- $openBtn.text($openBtn.data("text"));
+ $closeBtn.val($closeBtn.data("text"));
+ $openBtn.val($openBtn.data("text"));
} else {
- $closeBtn.text($closeBtn.data("origin"));
- $openBtn.text($openBtn.data("origin"));
+ $closeBtn.val($closeBtn.data("origin"));
+ $openBtn.val($openBtn.data("origin"));
}
});
}());
@@ -406,6 +443,16 @@ function initIssue() {
$('#issue-edit-title,#issue-edit-content,.issue-edit-cancel,.issue-edit-save').toggleHide();
})
}());
+
+ // issue ajax update
+ $('.issue-edit-save').on("click", function () {
+ $(this).toggleAjax(function(json){
+ if(json.ok){
+ $('.issue-head h1.title').text(json.title);
+ $('.issue-main > .issue-content .content').html(json.content);
+ }
+ });
+ });
}
(function ($) {
diff --git a/templates/issue/view.tmpl b/templates/issue/view.tmpl
index 516206da96..4266bcbf44 100644
--- a/templates/issue/view.tmpl
+++ b/templates/issue/view.tmpl
@@ -9,11 +9,12 @@
<div class="number pull-right">#{{.Issue.Index}}</div>
<a class="author pull-left" href="/user/{{.Issue.Poster.Name}}"><img class="avatar" src="{{.Issue.Poster.AvatarLink}}" alt="" width="30"/></a>
<h1 class="title pull-left">{{.Issue.Name}}</h1>
- <input id="issue-edit-title" class="form-control input-lg pull-left hidden" type="text" value="{issue.title}" data-ajax-rel="issue-save"/>
+ <input id="issue-edit-title" class="form-control input-lg pull-left hidden" type="text" value="{issue.title}" data-ajax-rel="issue-edit-save" data-ajax-val="val" data-ajax-field="title"/>
+ <input type="hidden" value="{issue.id}" data-ajax-rel="issue-edit-save" data-ajax-val="val" data-ajax-field="issue_id"/>
<p class="info pull-left">
- <!-- <a class="btn btn-default pull-right issue-edit" href="#" id="issue-edit-btn">Edit</a> -->
+ <a class="btn btn-default pull-right issue-edit" href="#" id="issue-edit-btn">Edit</a>
<a class="btn btn-danger pull-right issue-edit-cancel hidden" href="#">Cancel</a>
- <a class="btn btn-primary pull-right issue-edit-save hidden" href="#" data-ajax="{issue.save.link}" data-ajax-name="issue-save">Save</a>
+ <a class="btn btn-primary pull-right issue-edit-save hidden" href="#" data-ajax="{issue.edit.save.link}" data-ajax-name="issue-edit-save" data-ajax-method="post">Save</a>
<span class="status label label-{{if .Issue.IsClosed}}danger{{else}}success{{end}}">{{if .Issue.IsClosed}}Closed{{else}}Open{{end}}</span>
<a href="/user/{{.Issue.Poster.Name}}" class="author"><strong>{{.Issue.Poster.Name}}</strong></a> opened this issue
<span class="time">{{TimeSince .Issue.Created}}</span> ยท {{.Issue.NumComments}} comments
@@ -25,7 +26,7 @@
<div class="content">
{{str2html .Issue.Content}}
</div>
- <textarea class="form-control hidden" name="content" id="issue-edit-content" rows="10" data-ajax-rel="issue-save">content</textarea>
+ <textarea class="form-control hidden" name="content" id="issue-edit-content" rows="10" data-ajax-rel="issue-edit-save" data-ajax-val="val" data-ajax-field="content">{issue.content}</textarea>
</div>
</div>
{{range .Comments}}