載入中
<form id="guild_register_form" style="display:none">
<tbody></tbody>
編號: | <input type="number" required="required" max="999999" min="1" /> |
名稱: | <input type="text" required="required" maxlength="20" /> |
等級: | <select><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option></select> |
人數: | <input type="number" required="required" max="30" min="1" /> |
簡介: | <textarea style="resize:none" maxlength="50" required="required" wrap="physical" cols="50" rows="10"></textarea> |
<input type="submit" value="提交" /><input id="guild_register_delete" type="button" value="刪除" />
</form> <script type="text/javascript" src="http://www.parsecdn.com/js/parse-1.2.19.min.js"></script> <script type="text/javascript">
(function GuildRegister(){ if (typeof jQuery == 'undefined') { setTimeout(GuildRegister, 100); return; } if (typeof mw == 'undefined') { setTimeout(GuildRegister, 100); return; } if (typeof mw.user.anonymous == 'function'); else { setTimeout(GuildRegister, 100); return; } Parse.initialize('VnDhS3WyA3EtGcIweisPYWbDKPb5XK4KZxxF8JAE','a8iJGp8RUY0Jwj1S0XCS0irksHsILPOfbnHWFRVc'); var user = null; var guild = null; var form = $('#guild_register_form'); var Guild = Parse.Object.extend('Guild'); /*function*/ function showStatus (text, type) { var bar = $('#guild_register_status_bar'); var clazz = ; switch (type) { case 0: clazz = 'attr-w'; break; case 1: clazz = 'attr-l'; break; case 2: clazz = 'attr-f'; break; } bar.text(text).removeClass('attr-w attr-f attr-l').addClass(clazz); } function getMaxPeople (level) { return 25 + 5 * level; } function createUser (u, p) { user = new Parse.User(); user.set('username', u); user.set('password', p); user.signUp(null, { success: function(u){ showStatus('成功創建用戶數據', 0); user = u; form.show('slow'); }, error: function(){ showStatus('創建用戶數據失敗,請聯絡管理員', 2); } }); } function loadGuildData () { var query = new Parse.Query('Guild'); query.equalTo('user', user.getUsername()); query.find({ success: function(result) { showStatus('成功載入公會數據', 0); if(result.length > 0) { guild = result[0]; form.find('input:eq(0)').val(guild.get('guildId')); form.find('input:eq(1)').val(guild.get('name')); form.find('select:eq(0)').val(guild.get('level')); form.find('input:eq(2)').attr('max', getMaxPeople(guild.get('level'))).val(guild.get('people')); form.find('textarea:eq(0)').val(guild.get('summary')); } form.show('slow'); }, error: function() { showStatus('載入公會數據失敗', 2); } }); } function saveGuildData () { showStatus('正在儲存公會數據', 1); form.find('input,textarea,select').attr('disabled','disabled'); if(guild == null)guild = new Guild(); var acl = new Parse.ACL(user); acl.setRoleWriteAccess('Administrator', true); acl.setPublicReadAccess(true); guild.setACL(acl); guild.save({ guildId: parseInt(form.find('input:eq(0)').val()), name: form.find('input:eq(1)').val(), level: parseInt(form.find('select:eq(0)').val()), people: parseInt(form.find('input:eq(2)').val()), summary: form.find('textarea:eq(0)').val(), user: user.getUsername() }, { success: function(){ showStatus('成功儲存公會數據', 0); form.find('input,textarea,select').attr('disabled',false); }, error: function(o, e){ if (e.message == '已存在相同的公會') showStatus('已存在相同的公會', 2); else showStatus('儲存公會數據失敗', 2); form.find('input,textarea,select').attr('disabled',false); } }); } function deleteGuildData () { if(guild == null){ showStatus('您尚未有任何公會記錄', 2); return; } showStatus('正在刪除公會記錄', 1); guild.destroy({ success: function() { showStatus('成功刪除公會記錄', 0); guild = null; form.find('input,textarea,select').attr('disabled',false); form.children('table').find('input,textarea').val(); }, error: function() { showStatus('刪除公會記錄失敗', 2); form.find('input,textarea,select').attr('disabled',false); } }); } function verify () { if (form.find('textarea:eq(0)').val() > 50) { showStatus('簡介最大限制五十字,目前字數為' + form.find('textarea:eq(0)').val(), 2); alert('簡介最大限制五十字,目前字數為' + form.find('textarea:eq(0)').val()); return false; } } /*start*/ if (mw.user.anonymous()) { showStatus('請先登入Wikia', 2); return; } $.get('http://zh.tos.wikia.com/api.php', { format: 'json', action: 'query', list: 'blocks', bkprop: 'user' }, function (data) { var blockedUser = []; var tmp = data.query.blocks; for (var i = 0; i < tmp.length; i++) { blockedUser.push(tmp[i].user); } if ($.inArray(mw.user.name(), blockedUser) >= 0) { showStatus('您的帳戶已被封禁,不可使用此功能', 2); return; }
var u = mw.user.name(); var p = mw.config.get('wgTrackID') + ; Parse.User.logIn(u, p, { success: function (u) { if (u.has('forbidden')) { showStatus('您的帳戶已被封禁,不可使用此功能', 2); return; } user = u; showStatus('成功載入用戶記錄', 1); loadGuildData(); }, error: function () { showStatus('未找到任何記錄,正在創建用戶資料', 1); createUser(u, p); } }); }, 'json');
$('#guild_register_form').submit(function(e){ e.preventDefault(); saveGuildData(); });
$('#guild_register_delete').click(function(){ deleteGuildData(); });
form.find('select:eq(0)').on('change', function(){ var max = getMaxPeople(parseInt($(this).val())); form.find('input:eq(2)').attr('max', max); }); })();
</script>