File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
/**
* Yobi, Project Hosting SW
*
* Copyright 2013 NAVER Corp.
* http://yobi.io
*
* @author JiHan Kim
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* 프로젝트 페이지 전역에 영향을 주는 공통모듈
* projectMenu.scala.html 에서 호출함
*/
(function(ns) {
var oNS = $yobi.createNamespace(ns);
oNS.container[oNS.name] = function(htOptions) {
var htVar = {};
var htElement = {};
var clientErrorStatus = /^4[0-9][0-9]$/
var serverErrorStatus = /^5[0-9][0-9]$/
var networkErrorStatus = 0;
/**
* initialize
*/
function _init(htOptions) {
_initVar(htOptions);
_initElement();
_attachEvent();
// htKeyMap is optional
if(typeof htOptions.htKeyMap === "object"){
_initShortcutKey(htOptions.htKeyMap);
}
}
/**
* initialize normal variables
*/
function _initVar(htOptions){
}
/**
* initialize element variables
*/
function _initElement() {
htElement.welBtnWatch = $(".watchBtn, #btnWatch");
htElement.welBtnEnroll = $("#enrollBtn");
htElement.welForkedFrom = $("#forkedFrom");
htElement.weBtnHeaderToggle = $('.project-header-toggle-btn');
}
/**
* attach event handlers
*/
function _attachEvent() {
htElement.welBtnWatch.on('click',_onClickBtnWatch);
htElement.welBtnEnroll.on('click',_onClickBtnEnroll);
}
/**
* @param {Wrapped Event} weEvt
*/
function _onClickBtnWatch(weEvt){
var sURL = $(this).attr('href');
$.ajax(sURL, {
"method" : "post",
"success": function(){
document.location.reload();
},
"error": function(){
$yobi.notify("Server Error");
}
})
weEvt.preventDefault();
return false;
}
/**
* @param {Wrapped Event} weEvt
*/
function _onClickBtnEnroll(weEvt){
var sURL = $(this).attr('href');
$.ajax(sURL, {
"method" : "post",
"success": function(){
document.location.reload();
},
"error": function(oXHR){
if(oXHR.readyState == networkErrorStatus){
$yobi.notify(Messages("user.enroll.failed.network"), 3000);
}else{
switch(true){
case oXHR.status == 403:
$yobi.notify(Messages("error.forbidden"), 3000);
break;
case clientErrorStatus.test(oXHR.status):
$yobi.notify(Messages("user.enroll.failed.client"), 3000);
break;
case serverErrorStatus.test(oXHR.status):
$yobi.notify(Messages("user.enroll.failed.server"), 3000);
break;
default:
$yobi.notify(Messages("user.enroll.failed"), 3000);
break;
}
}
}
})
weEvt.preventDefault();
return false;
}
/**
* @param {Hash Table} htKeyMap
* @require yobi.ShortcutKey
*/
function _initShortcutKey(htKeyMap){
yobi.ShortcutKey.setKeymapLink(htKeyMap);
}
_init(htOptions || {});
};
})("yobi.project.Global");