Created
February 14, 2012 07:06
-
-
Save zag/1824385 to your computer and use it in GitHub Desktop.
invites
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
goog.provide('con.ui.mod_invites'); | |
goog.require('soy'); | |
goog.require('goog.events'); | |
goog.require('con.tmpl.mod_invites'); | |
//goog.require('goog.ui.Container'); | |
goog.require('goog.ui.Component'); | |
goog.require('zag.ui.Table'); | |
goog.require('goog.net.XhrIo'); | |
goog.require('goog.ui.Zippy'); | |
goog.require('wbask.form'); | |
goog.require('goog.net.IframeIo'); | |
goog.require('goog.ui.CustomButton'); | |
goog.require('goog.dom.classes'); | |
/** | |
* @param {Table.Rows=} table_rows | |
* @constructor | |
* @extends {goog.ui.Component} | |
*/ | |
con.ui.mod_invites = function( indata, opt_renderer, opt_domHelper) { | |
goog.base( this, opt_renderer, opt_domHelper); | |
this.setModel(indata); | |
}; | |
goog.inherits(con.ui.mod_invites, goog.ui.Component); | |
con.ui.mod_invites.prototype.formatRow = function(rowData, tr , num) { | |
var html = con.tmpl.mod_invites.row({ | |
dcreate: rowData['dcreate'], | |
dused : rowData['dused'], | |
id : rowData['id'], | |
type : rowData['type'], | |
wcreate : rowData['wcreate'], | |
wused : rowData['wused'] | |
}); | |
tr.innerHTML = html; | |
if (! goog.isNull( rowData['dused'] ) ) return; | |
var bot1 = new goog.ui.CustomButton(null /* content */); | |
var b = this.dom_.getElementsByTagNameAndClass(undefined,'btn_cancel', tr)[0]; | |
bot1.setEnabled(true); | |
bot1.setCaption("X"); | |
bot1.setTooltip('drop'); | |
bot1.render(b); | |
goog.events.listen( | |
bot1.getElement(), | |
goog.events.EventType.CLICK, | |
function ( e ){ | |
this.update(rowData['id']); | |
} | |
, false, this | |
); | |
}; | |
con.ui.mod_invites.prototype.update = function(id) { | |
var url = this.getModel()['url_method']; | |
var me = this; | |
var params = ''; | |
if (id) params = "?id="+id; | |
goog.net.XhrIo.send(url + '/List'+params, function(e) { | |
// e.type will be goog.net.EventType.COMPLETE | |
var xhr = /** @type {goog.net.XhrIo} */ (e.target); | |
var responseText = xhr.getResponseText(); | |
try { | |
var obj = xhr.getResponseJson(); | |
} catch (ex) { | |
alert('error' + ex); | |
} | |
me.table.fillRows(me.table.tbody,obj['rows']); | |
}, "GET", "id="+id, {"Accept":"application/javascript"}); | |
} | |
con.ui.mod_invites.prototype.fillCreate = function(cont) { | |
var html = con.tmpl.mod_invites.createForm({root_url: this.getModel()['url_method']}); | |
cont.innerHTML = html; | |
var b1 = this.dom_.getElementsByTagNameAndClass(undefined,'invite_enter', cont)[0]; | |
var b2 = this.dom_.getElementsByTagNameAndClass(undefined,'invite_form', cont)[0]; | |
/* Initialize upload form*/ | |
this.form_ = this.dom_.getElementsByTagNameAndClass("form", undefined,cont)[0]; | |
this.input_ = this.dom_.getElementsByTagNameAndClass("input","invite_code", cont)[0]; | |
}; | |
con.ui.mod_invites.prototype.createDom = function() { | |
goog.base(this, 'createDom'); | |
var el = this.getElement(); | |
var make = this.getDomHelper().createDom('div'); | |
goog.dom.appendChild(el, make); | |
this.fillCreate(make); | |
var table = new zag.ui.Table(); | |
this.table = table; | |
var self = this; | |
table.formatRow = function(rowData, tr , num) { | |
self.formatRow(rowData, tr , num) | |
}; | |
table.formatHead = function(thead){thead.innerHTML = con.tmpl.mod_invites.header({}) }; | |
table.render(el); | |
goog.dom.classes.add(table.getElement(), 'func'); | |
table.fillRows(table.tbody, this.getModel().rows); | |
} | |
con.ui.mod_invites.prototype.onComplete = function(e) { | |
var iframeIo = /** @type {goog.net.IframeIo} */ (e.target); | |
if (iframeIo.isSuccess()) { | |
var json = iframeIo.getResponseJson(); | |
this.input_.value= json.id; | |
this.input_.focus(); | |
this.input_.setSelectionRange(0,this.input_.value.length); | |
} else { | |
alert("Error"); | |
} | |
iframeIo.dispose(); | |
goog.dom.forms.setDisabled(this.form_, false); | |
this.update() | |
} | |
con.ui.mod_invites.prototype.enterDocument = function() { | |
var z1 = new goog.ui.Zippy('invite_enter', 'invite_form'); | |
var self = this; | |
wbask.form.processForms(this.getElement(),{'onload': function( doc, form ){ | |
var res = {}; | |
var error = 0; | |
try { | |
res = eval("("+doc+")"); | |
} catch (e) { | |
error=1; | |
res={}; | |
} | |
if (!error) { | |
if ( ! res['error'] ) { | |
self.input_.value= res['id']; | |
self.input_.focus(); | |
self.input_.setSelectionRange(0,self.input_.value.length); | |
//goog.dom.getElement("reg_status").innerHTML=" "; | |
} else { | |
alert('error'); | |
//goog.dom.getElement("reg_status").innerHTML = res['error']; | |
} | |
} else { | |
alert("da"); | |
//goog.dom.getElement("reg_status").innerHTML = "Process failure: " + e; | |
} | |
goog.dom.forms.setDisabled(self.form_, false); | |
self.update() | |
}}); | |
/* | |
goog.events.listen(this.form_, goog.events.EventType.SUBMIT, function(e){ | |
var iform = e.target; | |
goog.dom.appendChild( iform, this.getDomHelper().createDom(goog.dom.TagName.INPUT,{'style': 'display:none', 'type' :'hidden', 'name' : '_modal_prefer', 'value' : '1'} )); | |
var iframeIo = new goog.net.IframeIo(); | |
// iform.target = iframeIo.name_; | |
goog.events.listen(iframeIo, goog.net.EventType.COMPLETE, this.onComplete, false, this); | |
goog.dom.forms.setDisabled(iform, true); | |
e.preventDefault(); | |
// iform.submit(); | |
iframeIo.sendFromForm(iform); | |
},true, this); | |
*/ | |
} | |
/** @inheritDoc */ | |
if (!COMPILED) { | |
wbask.onModuleLoad('con.ui.mod_invites'); | |
} | |
goog.exportSymbol('window.con.ui.mod_invites', con.ui.mod_invites); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{namespace con.tmpl.mod_invites} | |
/** | |
* Table header | |
*/ | |
{template .header} | |
<th>Создано</th><th>Кем</th><th>Использовано</th><th>Кем</th><th>Как</th><th>Код</th><th>Удалить</th> | |
{/template} | |
/** | |
* @param dcreate | |
* @param wcreate | |
* @param dused | |
* @param wused | |
* //param type | |
* @param id | |
* | |
*/ | |
{template .row} | |
<td>{$dcreate}</td> | |
<td>{$wcreate}</td> | |
<td>{if $dused} {$dused} {else} ... {/if}</td> | |
<td>{if $wused} {$wused} {else} ... {/if}</td> | |
<td>Регистрация</td> | |
<td>{$id}</td> | |
<td><div class="btn_cancel"></div></td> | |
{/template} | |
/** | |
* @param root_url | |
* | |
*/ | |
{template .createForm} | |
<h3 style="cursor: pointer;" id="invite_enter" class="invite_enter"><img style="width: 19px;height: 16px;" src="/static/css/blank.gif" /> создать приглашние для ...</h3> | |
<div id="invite_form"> | |
<form action="{$root_url}/Create" method="GET" > | |
<div style="float:left; width: 15em"> | |
<select id="action" name="type"> | |
<option value="1" selected="selected">регистрация</option> | |
</select> | |
<div class="comment">тип приглашения</div> | |
</div> | |
<div style="float:left; width: 5em"> | |
<input type="submit"/> | |
<div class="error-status" id="reg_status"> </div> | |
</div> | |
</form> | |
<div style="clear:both;"> | |
<input class="invite_code" value="" size="40" name="invite_code"/> | |
<div class="comment">код созданного приглашения</div> | |
</div> | |
</div> | |
{/template} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment