gogs/public/js/app.js
2014-03-16 23:25:01 +08:00

124 lines
3.2 KiB
JavaScript

var Gogits = {
"PageIsSignup": false
};
(function ($) {
Gogits.showTab = function (selector, index) {
if (!index) {
index = 0;
}
$(selector).tab("show");
$(selector).find("li:eq(" + index + ") a").tab("show");
};
Gogits.validateForm = function (selector, options) {
var $form = $(selector);
options = options || {};
options.showErrors = function (map, list) {
var $error = $form.find('.form-error').addClass('hidden');
$('.has-error').removeClass("has-error");
$error.text(list[0].message).show().removeClass("hidden");
$(list[0].element).parents(".form-group").addClass("has-error");
};
$form.validate(options);
};
// ----- init elements
Gogits.initModals = function () {
var modals = $("[data-toggle=modal]");
if (modals.length < 1) {
return;
}
$.each(modals, function (i, item) {
var hide = $(item).data('modal');
$(item).modal(hide ? hide : "hide");
});
};
Gogits.initTooltips = function () {
$("body").tooltip({
selector: "[data-toggle=tooltip]"
//container: "body"
});
};
Gogits.initTabs = function () {
var $tabs = $('[data-init=tabs]');
$tabs.find("li:eq(0) a").tab("show");
}
})(jQuery);
// ajax utils
(function ($) {
Gogits.ajaxDelete = function (url, data, success) {
data = data || {};
data._method = "DELETE";
$.ajax({
url: url,
data: data,
method: "POST",
dataType: "json",
success: function (json) {
if (success) {
success(json);
}
}
})
}
})(jQuery);
function initCore() {
Gogits.initTooltips();
Gogits.initTabs();
Gogits.initModals();
}
function initRegister() {
$.getScript("/js/jquery.validate.min.js", function () {
Gogits.validateForm("#gogs-login-card", {
rules: {
"username": {
required: true,
maxlength: 30
},
"email": {
required: true,
email: true
},
"passwd": {
required: true,
minlength: 6,
maxlength: 30
},
"re-passwd": {
required: true,
equalTo: "input[name=passwd]"
}
}
});
});
}
function initUserSetting(){
$('#gogs-ssh-keys .delete').confirmation({
singleton: true,
onConfirm: function(e, $this){
Gogits.ajaxDelete("",{"id":$this.data("del")},function(json){
if(json.ok){
window.location.reload();
}else{
alert(json.err);
}
});
}
});
}
;(function($){
// on Dom Ready
$(function(){
var $pre = $('.markdown').find('pre > code').parent();
$pre.addClass("prettyprint");
prettyPrint();
});
})(jQuery);