1
0

Added validation on forms. such that if validation fails the form will reload with validation details.

Also added ability to include javacsript in forms. This means that the add album now auto fills the directory and slug name(?).
This commit is contained in:
Ben Smith 2010-02-11 15:36:47 +13:00
parent 3c83eb8c96
commit 3ac02d35f5
78 changed files with 11264 additions and 11066 deletions

View File

@ -1,4 +1,4 @@
#Tue Jan 26 16:51:26 NZDT 2010
#Thu Feb 11 15:27:06 NZDT 2010
eclipse.preferences.version=1
entryPointModules=
filesCopiedToWebInfLib=gwt-servlet.jar

View File

@ -19,16 +19,13 @@
*/
class gwtorganise_event_Core{
/**
* adds the shopping basket administration controls to the admin menu
*/
static function admin_menu($menu, $theme){
$menu->add_after("users_groups",
Menu::factory("link")
static function admin_menu($menu, $theme) {
$menu->add_after("dashboard",
Menu::factory("link")
->id("gwtorganise")
->label(t("GWT Organise"))
->url(url::site("admin/gwtorganise")));
}
}

View File

@ -29,5 +29,5 @@
<when-property-is name="user.agent" value="ie8" />
</any>
</replace-with>
</module>

View File

@ -109,7 +109,7 @@ public class Album extends TreeItem {
public void success(JSONValue aValue) {
updateValues(aValue);
}
},false);
},false,true);
}
@ -281,7 +281,7 @@ public class Album extends TreeItem {
m_View.getCurrentAlbum().expand();
m_View.getCurrentAlbum().select();
}
},true);
},true,true);
}
/**
@ -300,7 +300,7 @@ public class Album extends TreeItem {
public void success(JSONValue aValue) {
m_View.getCurrentAlbum().select();
}
},true);
},true,true);
}
@ -331,7 +331,7 @@ public class Album extends TreeItem {
public void success(JSONValue aValue) {
addAlbums(aValue);
}
},false);
},false,true);
}
@ -344,7 +344,7 @@ public class Album extends TreeItem {
public void success(JSONValue aValue) {
viewAlbum(aValue);
}
},false);
},false,true);
}
@ -445,7 +445,7 @@ public class Album extends TreeItem {
}
}
}
},false);
},false,true);
}

View File

@ -30,29 +30,26 @@ public class AsyncResizer implements RunAsyncCallback{
Canvas upThumb = com.gloopics.g3viewer.client.canvas.Factory.getInstance().createCanvas();
upThumb.decode(m_Blob);
float imageWidth = (float)upThumb.getWidth();
float imageHeight = (float)upThumb.getHeight();
int imageWidth = upThumb.getWidth();
int imageHeight = upThumb.getHeight();
int widthRatio = imageWidth/m_ResizeOptions.getMaxWidth();
int heightRatio = imageHeight/m_ResizeOptions.getMaxHeight();
float widthRatio = imageWidth/((float)m_ResizeOptions.getMaxWidth());
float heightRatio = imageHeight/((float)m_ResizeOptions.getMaxHeight());
if (widthRatio > heightRatio){
if (widthRatio > 1) {
upThumb.resize(m_ResizeOptions.getMaxWidth(), imageHeight / widthRatio );
upThumb.resize(m_ResizeOptions.getMaxWidth(), (int)(imageHeight / widthRatio) );
m_UploadFile.uploadBlob(upThumb.encode());
return;
}
}
else
{
if (heightRatio > 1){
upThumb.resize(imageWidth / heightRatio, m_ResizeOptions.getMaxHeight());
upThumb.resize((int)(imageWidth / heightRatio), m_ResizeOptions.getMaxHeight());
m_UploadFile.uploadBlob(upThumb.encode());
return;
}
}
}
}

View File

@ -61,7 +61,9 @@ public class G3Viewer {
DockPanel dp = new DockPanel();
dp.addStyleName("error");
dp.add(new HTML(error), DockPanel.CENTER);
error = error.replaceAll("<", "&lt;").replaceAll(">", "&gt;");
dp.add(new HTML("<pre>" + error + "</pre>"), DockPanel.CENTER);
// DialogBox is a SimplePanel, so you have to set its widget property to
@ -154,7 +156,7 @@ public class G3Viewer {
/**
* the only dialog box
*/
private final HttpDialogBox m_HttpDialogBox= new HttpDialogBox();
private final HttpDialogBox m_HttpDialogBox= new HttpDialogBox(this);
private class SimplePanelEx extends SimplePanel
{
@ -275,7 +277,7 @@ public class G3Viewer {
}
});
}
},false);
},false,true);
}
@ -326,10 +328,16 @@ public class G3Viewer {
m_ImageDialogBox.doDialog( a_Url);
}
public void doJSONRequest(final String a_URL, final HttpSuccessHandler a_Handler, final boolean a_hasParams){
public void doJSONRequest(final String a_URL, final HttpSuccessHandler a_Handler, final boolean a_hasParams, final boolean a_IncludeCSRF){
doJSONRequest(a_URL, a_Handler, a_hasParams, a_IncludeCSRF, "");
}
public void doJSONRequest(final String a_URL, final HttpSuccessHandler a_Handler, final boolean a_hasParams, final boolean a_IncludeCSRF,
String a_Data ){
try {
String url;
if (m_CSRF != null)
if (m_CSRF != null && a_IncludeCSRF)
{
url = a_URL + (a_hasParams?"&csrf=":"?csrf=") + m_CSRF;
}
@ -338,7 +346,9 @@ public class G3Viewer {
url = a_URL;
}
RequestBuilder requestBuilder = new RequestBuilder(
RequestBuilder.GET, url);
RequestBuilder.POST, url);
requestBuilder.setHeader("Content-Type", "application/x-www-form-urlencoded");
requestBuilder.setHeader("X-Requested-With", "XMLHttpRequest");
requestBuilder.setCallback(new JSONResponseTextHandler(
new JSONResponseCallback() {
@ -370,6 +380,7 @@ public class G3Viewer {
}}
));
requestBuilder.setRequestData(a_Data);
requestBuilder.send();
} catch (RequestException ex) {
displayError("Request Exception", ex.toString() + " - " + a_URL);

View File

@ -8,8 +8,11 @@ import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.http.client.RequestException;
import com.google.gwt.http.client.RequestTimeoutException;
import com.google.gwt.http.client.Response;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
@ -17,8 +20,6 @@ import com.google.gwt.user.client.ui.DockPanel;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteEvent;
import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteHandler;
public class HttpDialogBox extends DialogBox{
@ -27,8 +28,10 @@ public class HttpDialogBox extends DialogBox{
private HttpDialogHandler m_Callback;
private final HTML m_Dialog;
private final G3Viewer m_Parent;
public HttpDialogBox(){
public HttpDialogBox(G3Viewer a_Parent){
m_Parent = a_Parent;
m_Dialog = new HTML("Empty");
initComponents();
}
@ -54,12 +57,9 @@ public class HttpDialogBox extends DialogBox{
public void onClick(ClickEvent event) {
if (m_FormPanel!=null)
{
m_FormPanel.submit();
}
else
{
submitForm();
}
HttpDialogBox.this.hide();
Loading.getInstance().loading("Please Wait..");
}
@ -88,11 +88,6 @@ public class HttpDialogBox extends DialogBox{
}
public void onError(Request request, Throwable exception) {
if (exception instanceof RequestTimeoutException) {
// handle a request timeout
} else {
// handle other request errors
}
showDialog("Could not get " + m_URL + " Exception thrown " + exception.toString());
}
@ -101,11 +96,113 @@ public class HttpDialogBox extends DialogBox{
showDialog(response.getText());
} else {
showDialog(m_URL + response.getText());
// handle non-OK response from the server
}
}
}
public native static String createData(Element form) /*-{
var fieldValue = function(el, successful) {
var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
if (typeof successful == 'undefined') successful = true;
if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
(t == 'checkbox' || t == 'radio') && !el.checked ||
(t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
tag == 'select' && el.selectedIndex == -1))
return null;
if (tag == 'select') {
var index = el.selectedIndex;
if (index < 0) return null;
var a = [], ops = el.options;
var one = (t == 'select-one');
var max = (one ? index+1 : ops.length);
for(var i=(one ? index : 0); i < max; i++) {
var op = ops[i];
if (op.selected) {
var v = op.value;
if (!v) // extra pain for IE...
v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;
if (one) return v;
a.push(v);
}
}
return a;
}
return el.value;
};
var a = "";
var added = false;
var appendA = function(str)
{
if(added)
{
a = a+"&"+str;
}
else
{
a = a+str;
added = true;
}
}
var els = form.getElementsByTagName('*'); //: form.elements;
if (!els) return a;
for(var i=0, max=els.length; i < max; i++) {
var el = els[i];
var n = el.name;
if (!n) continue;
var v = fieldValue(el, true);
if (v && v.constructor == Array) {
for(var j=0, jmax=v.length; j < jmax; j++)
appendA(n+"="+escape(v[j]));
}
else if (v !== null && typeof v != 'undefined')
appendA(n+"="+escape(v));
}
return a;
}-*/;
private void submitForm(){
String url = m_FormPanel.getAction();
String data = createData(m_FormPanel.getElement());
m_Parent.doJSONRequest(url, new HttpSuccessHandler() {
@Override
public void success(JSONValue aValue) {
JSONObject object = aValue.isObject();
if (object != null){
JSONValue result = object.get("result");
if (result != null)
{
if (result.isString().stringValue().equals("success")){
m_Callback.success(aValue.toString());
Loading.getInstance().endLoading();
}
else{
JSONValue resul = object.get("form");
showDialog(resul.isString().stringValue());
}
}
else
{
G3Viewer.displayError("result was null ", aValue.toString() );
}
} else {
G3Viewer.displayError("Only JSON Value Returned ", aValue.toString() );
}
}
}, false ,false, data);
}
private void showDialog(String a_Text){
m_Dialog.setHTML(a_Text);
@ -132,27 +229,49 @@ public class HttpDialogBox extends DialogBox{
Element element = this.getElement().getElementsByTagName("form").getItem(0);
setText(element.getElementsByTagName("legend").getItem(0).getInnerText());
m_FormPanel = FormPanel.wrap(element, true);
m_FormPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() {
@Override
public void onSubmitComplete(SubmitCompleteEvent event) {
m_Callback.success(event.getResults());
Loading.getInstance().endLoading();
}
});
}
else
{
setText(this.getElement().getElementsByTagName("legend").getItem(0).getInnerText());
m_FormPanel = null;
}
setPopupPosition(Window.getClientWidth() / 2 - this.getOffsetWidth() / 2,
Window.getClientHeight() / 2 - this.getOffsetHeight() / 2);
Timer t = new Timer(){
public void run(){
// find any scripts if they exist
NodeList<Element> scripts = HttpDialogBox.this.getElement().getElementsByTagName("script");
for (int i = 0; i < scripts.getLength(); i++ )
{
Element script = scripts.getItem(i);
script.removeFromParent();
Element nscript = DOM.createElement("script");
nscript.setAttribute("type", script.getAttribute("type"));
nscript.setAttribute("src", script.getAttribute("src"));
getElementByTagName("head").appendChild(nscript);
}
}
};
t.schedule(10);
}
/**
* Gets an element by its tag name; handy for single elements like HTML,
* HEAD, BODY.
* @param tagName The name of the tag.
* @return The element with that tag name.
*/
public native static Element getElementByTagName(String tagName) /*-{
var elem = $doc.getElementsByTagName(tagName);
return elem ? elem[0] : null;
}-*/;
public void doDialog(String url, HttpDialogHandler a_Callback){
m_Callback = a_Callback;
Loading.getInstance().loading("Please Wait");

View File

@ -181,7 +181,7 @@ public class Item extends Composite implements HasAllMouseHandlers, DesktopDropp
public void success(JSONValue aValue) {
updateValues(aValue);
}
},false);
},false,true);
}
@ -255,7 +255,7 @@ public class Item extends Composite implements HasAllMouseHandlers, DesktopDropp
public void success(JSONValue aValue) {
// nothing to do
}
},false);
},false,true);
popupPanel.hide();
}
});
@ -273,7 +273,7 @@ public class Item extends Composite implements HasAllMouseHandlers, DesktopDropp
public void success(JSONValue aValue) {
updateImages(aValue);
}
},false);
},false,true);
popupPanel.hide();
}
});
@ -289,7 +289,7 @@ public class Item extends Composite implements HasAllMouseHandlers, DesktopDropp
public void success(JSONValue aValue) {
updateImages(aValue);
}
},false);
},false,true);
popupPanel.hide();
}
});

View File

@ -29,5 +29,5 @@
<when-property-is name="user.agent" value="ie8" />
</any>
</replace-with>
</module>

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +0,0 @@
function sS(){}
function ES(){return dP}
function IS(){var a;while(xS){a=xS;xS=xS.c;!xS&&(yS=null);qo(a.b)}}
function FS(){AS=true;zS=(CS(),new sS);jy((gy(),fy),1);!!$stats&&$stats(Py(irb,kib,null,null));zS.ac();!!$stats&&$stats(Py(irb,jrb,null,null))}
function qo(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(hrb);e.decode(a.b);d=e.width;c=e.height;f=~~(d/a.c.c);b=~~(c/a.c.b);if(f>b){if(f>1){e.resize(a.c.c,~~(c/f));fv(a.d,e.encode())}}else{if(b>1){e.resize(~~(d/b),a.c.b);fv(a.d,e.encode())}}}
var krb='AsyncLoader1',hrb='beta.canvas',irb='runCallbacks1';_=sS.prototype=new tS;_.gC=ES;_.ac=IS;_.tI=0;var dP=P3(Xob,krb);FS();

View File

@ -1,4 +0,0 @@
function ry(){my(fy)}
function my(a){jy(a,a.e)}
function jy(a,b){var c;c=b==a.e?iib:jib+b;oy(c,jrb,O4(b),null);if(ly(a,b)){Ay(a.f);Y6(a.b,O4(b));qy(a)}}
var jrb='end';ry();

View File

@ -0,0 +1,6 @@
function JS(){}
function VS(){return uP}
function ZS(){var a;while(OS){a=OS;OS=OS.c;!OS&&(PS=null);ro(a.b)}}
function WS(){RS=true;QS=(TS(),new JS);ty((qy(),py),1);!!$stats&&$stats(Zy(Yrb,Zib,null,null));QS.ac();!!$stats&&$stats(Zy(Yrb,Zrb,null,null))}
function ro(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(Xrb);e.decode(a.b);d=e.width;c=e.height;f=d/a.c.c;b=c/a.c.b;if(f>b){if(f>1){e.resize(a.c.c,~~Math.max(Math.min(c/f,2147483647),-2147483648));zv(a.d,e.encode());return}}else{if(b>1){e.resize(~~Math.max(Math.min(d/b,2147483647),-2147483648),a.c.b);zv(a.d,e.encode());return}}}
var $rb='AsyncLoader1',Xrb='beta.canvas',Yrb='runCallbacks1';_=JS.prototype=new KS;_.gC=VS;_.ac=ZS;_.tI=0;var uP=_3(Lpb,$rb);WS();

View File

@ -0,0 +1,4 @@
function By(){wy(py)}
function wy(a){ty(a,a.e)}
function ty(a,b){var c;c=b==a.e?Xib:Yib+b;yy(c,Zrb,$4(b),null);if(vy(a,b)){Ky(a.f);k7(a.b,$4(b));Ay(a)}}
var Zrb='end';By();

View File

@ -0,0 +1,6 @@
function qS(){}
function CS(){return dP}
function GS(){var a;while(vS){a=vS;vS=vS.c;!vS&&(wS=null);ko(a.b)}}
function DS(){yS=true;xS=(AS(),new qS);my((jy(),iy),1);!!$stats&&$stats(Sy(irb,oib,null,null));xS.Zb();!!$stats&&$stats(Sy(irb,jrb,null,null))}
function ko(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(hrb);e.decode(a.b);d=e.width;c=e.height;f=d/a.c.c;b=c/a.c.b;if(f>b){if(f>1){e.resize(a.c.c,~~Math.max(Math.min(c/f,2147483647),-2147483648));sv(a.d,e.encode());return}}else{if(b>1){e.resize(~~Math.max(Math.min(d/b,2147483647),-2147483648),a.c.b);sv(a.d,e.encode());return}}}
var krb='AsyncLoader1',hrb='beta.canvas',irb='runCallbacks1';_=qS.prototype=new rS;_.gC=CS;_.Zb=GS;_.tI=0;var dP=q3(Zob,krb);DS();

View File

@ -0,0 +1,4 @@
function uy(){py(iy)}
function py(a){my(a,a.e)}
function my(a,b){var c;c=b==a.e?mib:nib+b;ry(c,jrb,p4(b),null);if(oy(a,b)){Dy(a.f);B6(a.b,p4(b));ty(a)}}
var jrb='end';uy();

View File

@ -1,6 +0,0 @@
function _R(){}
function lS(){return OO}
function pS(){var a;while(eS){a=eS;eS=eS.c;!eS&&(fS=null);jo(a.b)}}
function mS(){hS=true;gS=(jS(),new _R);cy((_x(),$x),1);!!$stats&&$stats(Iy(uqb,Bhb,null,null));gS.Zb();!!$stats&&$stats(Iy(uqb,vqb,null,null))}
function jo(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(tqb);e.decode(a.b);d=e.width;c=e.height;f=~~(d/a.c.c);b=~~(c/a.c.b);if(f>b){if(f>1){e.resize(a.c.c,~~(c/f));$u(a.d,e.encode())}}else{if(b>1){e.resize(~~(d/b),a.c.b);$u(a.d,e.encode())}}}
var wqb='AsyncLoader1',tqb='beta.canvas',uqb='runCallbacks1';_=_R.prototype=new aS;_.gC=lS;_.Zb=pS;_.tI=0;var OO=e3(job,wqb);mS();

View File

@ -1,4 +0,0 @@
function ky(){fy($x)}
function fy(a){cy(a,a.e)}
function cy(a,b){var c;c=b==a.e?zhb:Ahb+b;hy(c,vqb,d4(b),null);if(ey(a,b)){ty(a.f);n6(a.b,d4(b));jy(a)}}
var vqb='end';ky();

View File

@ -0,0 +1,6 @@
function yS(){}
function KS(){return gP}
function OS(){var a;while(DS){a=DS;DS=DS.b;!DS&&(ES=null);jo(a.a)}}
function LS(){GS=true;FS=(IS(),new yS);ny((ky(),jy),1);!!$stats&&$stats(Ty(Urb,Nib,null,null));FS.Zb();!!$stats&&$stats(Ty(Urb,Vrb,null,null))}
function jo(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(Trb);e.decode(a.a);d=e.width;c=e.height;f=d/a.b.b;b=c/a.b.a;if(f>b){if(f>1){e.resize(a.b.b,~~Math.max(Math.min(c/f,2147483647),-2147483648));qv(a.c,e.encode());return}}else{if(b>1){e.resize(~~Math.max(Math.min(d/b,2147483647),-2147483648),a.b.a);qv(a.c,e.encode());return}}}
var Wrb='AsyncLoader1',Trb='beta.canvas',Urb='runCallbacks1';_=yS.prototype=new zS;_.gC=KS;_.Zb=OS;_.tI=0;var gP=W3(Dpb,Wrb);LS();

View File

@ -0,0 +1,4 @@
function vy(){qy(jy)}
function qy(a){ny(a,a.d)}
function ny(a,b){var c;c=b==a.d?Lib:Mib+b;sy(c,Vrb,V4(b),null);if(py(a,b)){Ey(a.e);e7(a.a,V4(b));uy(a)}}
var Vrb='end';vy();

View File

@ -1,6 +0,0 @@
function hS(){}
function tS(){return RO}
function xS(){var a;while(mS){a=mS;mS=mS.b;!mS&&(nS=null);io(a.a)}}
function uS(){pS=true;oS=(rS(),new hS);dy((ay(),_x),1);!!$stats&&$stats(Jy(erb,$hb,null,null));oS.Zb();!!$stats&&$stats(Jy(erb,frb,null,null))}
function io(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(drb);e.decode(a.a);d=e.width;c=e.height;f=~~(d/a.b.b);b=~~(c/a.b.a);if(f>b){if(f>1){e.resize(a.b.b,~~(c/f));Yu(a.c,e.encode())}}else{if(b>1){e.resize(~~(d/b),a.b.a);Yu(a.c,e.encode())}}}
var grb='AsyncLoader1',drb='beta.canvas',erb='runCallbacks1';_=hS.prototype=new iS;_.gC=tS;_.Zb=xS;_.tI=0;var RO=K3(Pob,grb);uS();

View File

@ -1,4 +0,0 @@
function ly(){gy(_x)}
function gy(a){dy(a,a.d)}
function dy(a,b){var c;c=b==a.d?Yhb:Zhb+b;iy(c,frb,J4(b),null);if(fy(a,b)){uy(a.e);S6(a.a,J4(b));ky(a)}}
var frb='end';ly();

View File

@ -1,6 +0,0 @@
function YR(){}
function iS(){return MO}
function mS(){var a;while(bS){a=bS;bS=bS.c;!bS&&(cS=null);io(a.b)}}
function jS(){eS=true;dS=(gS(),new YR);ay((Zx(),Yx),1);!!$stats&&$stats(Gy(cqb,nhb,null,null));dS.$b();!!$stats&&$stats(Gy(cqb,dqb,null,null))}
function io(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(bqb);e.decode(a.b);d=e.width;c=e.height;f=~~(d/a.c.c);b=~~(c/a.c.b);if(f>b){if(f>1){e.resize(a.c.c,~~(c/f));Yu(a.d,e.encode())}}else{if(b>1){e.resize(~~(d/b),a.c.b);Yu(a.d,e.encode())}}}
var eqb='AsyncLoader1',bqb='beta.canvas',cqb='runCallbacks1';_=YR.prototype=new ZR;_.gC=iS;_.$b=mS;_.tI=0;var MO=R2(Unb,eqb);jS();

View File

@ -1,4 +0,0 @@
function iy(){dy(Yx)}
function dy(a){ay(a,a.e)}
function ay(a,b){var c;c=b==a.e?lhb:mhb+b;fy(c,dqb,Q3(b),null);if(cy(a,b)){ry(a.f);_5(a.b,Q3(b));hy(a)}}
var dqb='end';iy();

View File

@ -1,6 +0,0 @@
function zS(){}
function LS(){return fP}
function PS(){var a;while(ES){a=ES;ES=ES.b;!ES&&(FS=null);ko(a.a)}}
function MS(){HS=true;GS=(JS(),new zS);gy((dy(),cy),1);!!$stats&&$stats(My(zsb,Oib,null,null));GS.Zb();!!$stats&&$stats(My(zsb,Asb,null,null))}
function ko(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(ysb);e.decode(a.a);d=e.width;c=e.height;f=~~(d/a.b.b);b=~~(c/a.b.a);if(f>b){if(f>1){e.resize(a.b.b,~~(c/f));$u(a.c,e.encode())}}else{if(b>1){e.resize(~~(d/b),a.b.a);$u(a.c,e.encode())}}}
var Bsb='AsyncLoader1',ysb='beta.canvas',zsb='runCallbacks1';_=zS.prototype=new AS;_.gC=LS;_.Zb=PS;_.tI=0;var fP=z4(gqb,Bsb);MS();

View File

@ -1,4 +0,0 @@
function oy(){jy(cy)}
function jy(a){gy(a,a.d)}
function gy(a,b){var c;c=b==a.d?Mib:Nib+b;ly(c,Asb,y5(b),null);if(iy(a,b)){xy(a.e);H7(a.a,y5(b));ny(a)}}
var Asb='end';oy();

View File

@ -0,0 +1,6 @@
function QS(){}
function aT(){return wP}
function eT(){var a;while(VS){a=VS;VS=VS.b;!VS&&(WS=null);lo(a.a)}}
function bT(){YS=true;XS=($S(),new QS);qy((ny(),my),1);!!$stats&&$stats(Wy(ntb,Bjb,null,null));XS.Zb();!!$stats&&$stats(Wy(ntb,otb,null,null))}
function lo(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(mtb);e.decode(a.a);d=e.width;c=e.height;f=d/a.b.b;b=c/a.b.a;if(f>b){if(f>1){e.resize(a.b.b,~~Math.max(Math.min(c/f,2147483647),-2147483648));sv(a.c,e.encode());return}}else{if(b>1){e.resize(~~Math.max(Math.min(d/b,2147483647),-2147483648),a.b.a);sv(a.c,e.encode());return}}}
var ptb='AsyncLoader1',mtb='beta.canvas',ntb='runCallbacks1';_=QS.prototype=new RS;_.gC=aT;_.Zb=eT;_.tI=0;var wP=L4(Wqb,ptb);bT();

View File

@ -0,0 +1,4 @@
function yy(){ty(my)}
function ty(a){qy(a,a.d)}
function qy(a,b){var c;c=b==a.d?zjb:Ajb+b;vy(c,otb,K5(b),null);if(sy(a,b)){Hy(a.e);V7(a.a,K5(b));xy(a)}}
var otb='end';yy();

View File

@ -0,0 +1,6 @@
function nS(){}
function zS(){return bP}
function DS(){var a;while(sS){a=sS;sS=sS.c;!sS&&(tS=null);jo(a.b)}}
function AS(){vS=true;uS=(xS(),new nS);ky((hy(),gy),1);!!$stats&&$stats(Qy(Sqb,aib,null,null));uS.$b();!!$stats&&$stats(Qy(Sqb,Tqb,null,null))}
function jo(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(Rqb);e.decode(a.b);d=e.width;c=e.height;f=d/a.c.c;b=c/a.c.b;if(f>b){if(f>1){e.resize(a.c.c,~~Math.max(Math.min(c/f,2147483647),-2147483648));qv(a.d,e.encode());return}}else{if(b>1){e.resize(~~Math.max(Math.min(d/b,2147483647),-2147483648),a.c.b);qv(a.d,e.encode());return}}}
var Uqb='AsyncLoader1',Rqb='beta.canvas',Sqb='runCallbacks1';_=nS.prototype=new oS;_.gC=zS;_.$b=DS;_.tI=0;var bP=b3(Iob,Uqb);AS();

View File

@ -0,0 +1,4 @@
function sy(){ny(gy)}
function ny(a){ky(a,a.e)}
function ky(a,b){var c;c=b==a.e?$hb:_hb+b;py(c,Tqb,a4(b),null);if(my(a,b)){By(a.f);n6(a.b,a4(b));ry(a)}}
var Tqb='end';sy();

View File

@ -0,0 +1,6 @@
function QS(){}
function aT(){return AP}
function eT(){var a;while(VS){a=VS;VS=VS.c;!VS&&(WS=null);qo(a.b)}}
function bT(){YS=true;XS=($S(),new QS);ry((oy(),ny),1);!!$stats&&$stats(Xy(Xrb,Wib,null,null));XS.cc();!!$stats&&$stats(Xy(Xrb,Yrb,null,null))}
function qo(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(Wrb);e.decode(a.b);d=e.width;c=e.height;f=d/a.c.c;b=c/a.c.b;if(f>b){if(f>1){e.resize(a.c.c,~~Math.max(Math.min(c/f,2147483647),-2147483648));xv(a.d,e.encode());return}}else{if(b>1){e.resize(~~Math.max(Math.min(d/b,2147483647),-2147483648),a.c.b);xv(a.d,e.encode());return}}}
var Zrb='AsyncLoader1',Wrb='beta.canvas',Xrb='runCallbacks1';_=QS.prototype=new RS;_.gC=aT;_.cc=eT;_.tI=0;var AP=b4(Jpb,Zrb);bT();

View File

@ -0,0 +1,4 @@
function zy(){uy(ny)}
function uy(a){ry(a,a.e)}
function ry(a,b){var c;c=b==a.e?Uib:Vib+b;wy(c,Yrb,a5(b),null);if(ty(a,b)){Iy(a.f);m7(a.b,a5(b));yy(a)}}
var Yrb='end';zy();

View File

@ -1,6 +0,0 @@
function zS(){}
function LS(){return jP}
function PS(){var a;while(ES){a=ES;ES=ES.c;!ES&&(FS=null);po(a.b)}}
function MS(){HS=true;GS=(JS(),new zS);hy((ey(),dy),1);!!$stats&&$stats(Ny(hrb,hib,null,null));GS.cc();!!$stats&&$stats(Ny(hrb,irb,null,null))}
function po(a){var b,c,d,e,f;e=($wnd.google&&$wnd.google.gears&&$wnd.google.gears.factory).create(grb);e.decode(a.b);d=e.width;c=e.height;f=~~(d/a.c.c);b=~~(c/a.c.b);if(f>b){if(f>1){e.resize(a.c.c,~~(c/f));dv(a.d,e.encode())}}else{if(b>1){e.resize(~~(d/b),a.c.b);dv(a.d,e.encode())}}}
var jrb='AsyncLoader1',grb='beta.canvas',hrb='runCallbacks1';_=zS.prototype=new AS;_.gC=LS;_.cc=PS;_.tI=0;var jP=R3(Vob,jrb);MS();

View File

@ -1,4 +0,0 @@
function py(){ky(dy)}
function ky(a){hy(a,a.e)}
function hy(a,b){var c;c=b==a.e?fib:gib+b;my(c,irb,Q4(b),null);if(jy(a,b)){yy(a.f);$6(a.b,Q4(b));oy(a)}}
var irb='end';py();

View File

@ -1,4 +1,4 @@
function g3viewer(){var M='',nb='" for "gwt:onLoadErrorFn"',lb='" for "gwt:onPropertyErrorFn"',Y='"><\/script>',$='#',Wb='.cache.html',ab='/',Lb='0031994593072F3F8665BB367C2904F3',Mb='063AB00068E7F94442F89D1B4262AD00',Nb='2625E6CD0659684104018A069A188996',Ob='36CF5446615AAE9D0FDDA0B123643155',Pb='373CE923F09A0C2270E1B0F2D934E253',Qb='4FEE434A493BF0E4969DA18CF936A5FD',Rb='5DDD50A96AC2DC41C6BF0EB870994C49',Sb='6B11280F72B8881FCDF44A0B47F1E96A',Tb='8E9AF58E0E2BDFC35328028FC368ECD2',gc='<script defer="defer">g3viewer.onInjectionDone(\'g3viewer\')<\/script>',X='<script id="',ec='<script language="javascript" src="',ib='=',_='?',kb='Bad handler "',cc='DOMContentLoaded',Ub='F0ACC41901D1A45069B29563B600C0E1',Vb='FFDD2B79ACD26336C36A836612DAEC0A',bc='G3viewer.css',vb='Gears.Factory',Z='SCRIPT',W='__gwt_marker_g3viewer',wb='application/x-googlegears',bb='base',Q='begin',P='bootstrap',db='clear.cache.gif',hb='content',V='end',xb='false',N='g3viewer',sb='gears.installed',dc='gears_init.js',fc='gears_init.js"><\/script>',Fb='gecko',Gb='gecko1_8',R='gwt.codesvr=',S='gwt.hosted=',T='gwt.hybrid',Xb='gwt/standard/standard.css',mb='gwt:onLoadErrorFn',jb='gwt:onPropertyErrorFn',gb='gwt:property',ac='head',Jb='hosted.html?g3viewer',_b='href',Eb='ie6',Db='ie8',ob='iframe',cb='img',pb="javascript:''",Yb='link',Ib='loadExternalRefs',eb='meta',rb='moduleRequested',U='moduleStartup',Cb='msie',fb='name',zb='opera',qb='position:absolute;width:0;height:0;border:none',Zb='rel',Bb='safari',Kb='selectingPermutation',O='startup',$b='stylesheet',ub='true',tb='undefined',Hb='unknown',yb='user.agent',Ab='webkit';var k=window,l=document,m=k.__gwtStatsEvent?function(a){return k.__gwtStatsEvent(a)}:null,n=k.__gwtStatsSessionId?k.__gwtStatsSessionId:null,o,p,q,r=M,s={},t=[],u=[],v=[],w,x;m&&m({moduleName:N,sessionId:n,subSystem:O,evtGroup:P,millis:(new Date).getTime(),type:Q});if(!k.__gwt_stylesLoaded){k.__gwt_stylesLoaded={}}if(!k.__gwt_scriptsLoaded){k.__gwt_scriptsLoaded={}}function y(){var b=false;try{var c=k.location.search;return (c.indexOf(R)!=-1||(c.indexOf(S)!=-1||k.external&&k.external.gwtOnLoad))&&c.indexOf(T)==-1}catch(a){}y=function(){return b};return b}
function g3viewer(){var M='',nb='" for "gwt:onLoadErrorFn"',lb='" for "gwt:onPropertyErrorFn"',Y='"><\/script>',$='#',Wb='.cache.html',ab='/',Lb='00989C656651F0D5EE0AC3B1C0DB9F09',Mb='063AB00068E7F94442F89D1B4262AD00',Nb='1C6EF2263B95B70FEFB69075540C8FAC',Ob='2CA9529BA3D2A8BF52BC74B8758F03DD',Pb='36CF5446615AAE9D0FDDA0B123643155',Qb='373CE923F09A0C2270E1B0F2D934E253',Rb='6B11280F72B8881FCDF44A0B47F1E96A',Sb='905F76789A7E0B9ACA517C854153BBE0',Tb='9DDA675D3D2BA7BAD28770635C23097F',gc='<script defer="defer">g3viewer.onInjectionDone(\'g3viewer\')<\/script>',X='<script id="',ec='<script language="javascript" src="',ib='=',_='?',kb='Bad handler "',Ub='D46C6991F70043F942032A2954A64834',cc='DOMContentLoaded',Vb='FFDD2B79ACD26336C36A836612DAEC0A',bc='G3viewer.css',vb='Gears.Factory',Z='SCRIPT',W='__gwt_marker_g3viewer',wb='application/x-googlegears',bb='base',Q='begin',P='bootstrap',db='clear.cache.gif',hb='content',V='end',xb='false',N='g3viewer',sb='gears.installed',dc='gears_init.js',fc='gears_init.js"><\/script>',Fb='gecko',Gb='gecko1_8',R='gwt.codesvr=',S='gwt.hosted=',T='gwt.hybrid',Xb='gwt/standard/standard.css',mb='gwt:onLoadErrorFn',jb='gwt:onPropertyErrorFn',gb='gwt:property',ac='head',Jb='hosted.html?g3viewer',_b='href',Eb='ie6',Db='ie8',ob='iframe',cb='img',pb="javascript:''",Yb='link',Ib='loadExternalRefs',eb='meta',rb='moduleRequested',U='moduleStartup',Cb='msie',fb='name',zb='opera',qb='position:absolute;width:0;height:0;border:none',Zb='rel',Bb='safari',Kb='selectingPermutation',O='startup',$b='stylesheet',ub='true',tb='undefined',Hb='unknown',yb='user.agent',Ab='webkit';var k=window,l=document,m=k.__gwtStatsEvent?function(a){return k.__gwtStatsEvent(a)}:null,n=k.__gwtStatsSessionId?k.__gwtStatsSessionId:null,o,p,q,r=M,s={},t=[],u=[],v=[],w,x;m&&m({moduleName:N,sessionId:n,subSystem:O,evtGroup:P,millis:(new Date).getTime(),type:Q});if(!k.__gwt_stylesLoaded){k.__gwt_stylesLoaded={}}if(!k.__gwt_scriptsLoaded){k.__gwt_scriptsLoaded={}}function y(){var b=false;try{var c=k.location.search;return (c.indexOf(R)!=-1||(c.indexOf(S)!=-1||k.external&&k.external.gwtOnLoad))&&c.indexOf(T)==-1}catch(a){}y=function(){return b};return b}
function z(){if(o&&p){var b=l.getElementById(N);var c=b.contentWindow;if(y()){c.__gwt_getProperty=function(a){return F(a)}}g3viewer=null;c.gwtOnLoad(w,N,r);m&&m({moduleName:N,sessionId:n,subSystem:O,evtGroup:U,millis:(new Date).getTime(),type:V})}}
function A(){var e,f=W,g;l.write(X+f+Y);g=l.getElementById(f);e=g&&g.previousSibling;while(e&&e.tagName!=Z){e=e.previousSibling}function h(a){var b=a.lastIndexOf($);if(b==-1){b=a.length}var c=a.indexOf(_);if(c==-1){c=a.length}var d=a.lastIndexOf(ab,Math.min(c,b));return d>=0?a.substring(0,d+1):M}
;if(e&&e.src){r=h(e.src)}if(r==M){var i=l.getElementsByTagName(bb);if(i.length>0){r=i[i.length-1].href}else{r=h(l.location.href)}}else if(r.match(/^\w+:\/\//)){}else{var j=l.createElement(cb);j.src=r+db;r=h(j.src)}if(g){g.parentNode.removeChild(g)}}
@ -6,6 +6,6 @@ function B(){var b=document.getElementsByTagName(eb);for(var c=0,d=b.length;c<d;
function E(a,b){var c=v;for(var d=0,e=a.length-1;d<e;++d){c=c[a[d]]||(c[a[d]]=[])}c[a[e]]=b}
function F(a){var b=u[a](),c=t[a];if(b in c){return b}var d=[];for(var e in c){d[c[e]]=e}if(x){x(a,d,b)}throw null}
var G;function H(){if(!G){G=true;var a=l.createElement(ob);a.src=pb;a.id=N;a.style.cssText=qb;a.tabIndex=-1;l.body.appendChild(a);m&&m({moduleName:N,sessionId:n,subSystem:O,evtGroup:U,millis:(new Date).getTime(),type:rb});a.contentWindow.location.replace(r+J)}}
u[sb]=function(){if(typeof GearsFactory!=tb){return ub}try{new ActiveXObject(vb);return ub}catch(a){if(typeof navigator.mimeTypes!=tb&&navigator.mimeTypes[wb]){return ub}}return xb};t[sb]={'false':0,'true':1};u[yb]=function(){var b=navigator.userAgent.toLowerCase();var c=function(a){return parseInt(a[1])*1000+parseInt(a[2])};if(b.indexOf(zb)!=-1){return zb}else if(b.indexOf(Ab)!=-1){return Bb}else if(b.indexOf(Cb)!=-1){if(document.documentMode>=8){return Db}else{var d=/msie ([0-9]+)\.([0-9]+)/.exec(b);if(d&&d.length==3){var e=c(d);if(e>=6000){return Eb}}}}else if(b.indexOf(Fb)!=-1){var d=/rv:([0-9]+)\.([0-9]+)/.exec(b);if(d&&d.length==3){if(c(d)>=1008)return Gb}return Fb}return Hb};t[yb]={gecko:0,gecko1_8:1,ie6:2,ie8:3,opera:4,safari:5};g3viewer.onScriptLoad=function(){if(G){p=true;z()}};g3viewer.onInjectionDone=function(){o=true;m&&m({moduleName:N,sessionId:n,subSystem:O,evtGroup:Ib,millis:(new Date).getTime(),type:V});z()};A();var I;var J;if(y()){if(k.external&&(k.external.initModule&&k.external.initModule(N))){k.location.reload();return}J=Jb;I=M}B();m&&m({moduleName:N,sessionId:n,subSystem:O,evtGroup:P,millis:(new Date).getTime(),type:Kb});if(!y()){try{E([ub,Fb],Lb);E([xb,Eb],Mb);E([xb,Db],Mb);E([ub,Gb],Nb);E([xb,zb],Ob);E([xb,Bb],Pb);E([ub,Db],Qb);E([ub,zb],Rb);E([xb,Fb],Sb);E([ub,Eb],Tb);E([ub,Bb],Ub);E([xb,Gb],Vb);I=v[F(sb)][F(yb)];J=I+Wb}catch(a){return}}var K;function L(){if(!q){q=true;if(!__gwt_stylesLoaded[Xb]){var a=l.createElement(Yb);__gwt_stylesLoaded[Xb]=a;a.setAttribute(Zb,$b);a.setAttribute(_b,r+Xb);l.getElementsByTagName(ac)[0].appendChild(a)}if(!__gwt_stylesLoaded[bc]){var a=l.createElement(Yb);__gwt_stylesLoaded[bc]=a;a.setAttribute(Zb,$b);a.setAttribute(_b,r+bc);l.getElementsByTagName(ac)[0].appendChild(a)}z();if(l.removeEventListener){l.removeEventListener(cc,L,false)}if(K){clearInterval(K)}}}
u[sb]=function(){if(typeof GearsFactory!=tb){return ub}try{new ActiveXObject(vb);return ub}catch(a){if(typeof navigator.mimeTypes!=tb&&navigator.mimeTypes[wb]){return ub}}return xb};t[sb]={'false':0,'true':1};u[yb]=function(){var b=navigator.userAgent.toLowerCase();var c=function(a){return parseInt(a[1])*1000+parseInt(a[2])};if(b.indexOf(zb)!=-1){return zb}else if(b.indexOf(Ab)!=-1){return Bb}else if(b.indexOf(Cb)!=-1){if(document.documentMode>=8){return Db}else{var d=/msie ([0-9]+)\.([0-9]+)/.exec(b);if(d&&d.length==3){var e=c(d);if(e>=6000){return Eb}}}}else if(b.indexOf(Fb)!=-1){var d=/rv:([0-9]+)\.([0-9]+)/.exec(b);if(d&&d.length==3){if(c(d)>=1008)return Gb}return Fb}return Hb};t[yb]={gecko:0,gecko1_8:1,ie6:2,ie8:3,opera:4,safari:5};g3viewer.onScriptLoad=function(){if(G){p=true;z()}};g3viewer.onInjectionDone=function(){o=true;m&&m({moduleName:N,sessionId:n,subSystem:O,evtGroup:Ib,millis:(new Date).getTime(),type:V});z()};A();var I;var J;if(y()){if(k.external&&(k.external.initModule&&k.external.initModule(N))){k.location.reload();return}J=Jb;I=M}B();m&&m({moduleName:N,sessionId:n,subSystem:O,evtGroup:P,millis:(new Date).getTime(),type:Kb});if(!y()){try{E([ub,Fb],Lb);E([xb,Eb],Mb);E([xb,Db],Mb);E([ub,Gb],Nb);E([ub,Db],Ob);E([xb,zb],Pb);E([xb,Bb],Qb);E([xb,Fb],Rb);E([ub,Eb],Sb);E([ub,zb],Tb);E([ub,Bb],Ub);E([xb,Gb],Vb);I=v[F(sb)][F(yb)];J=I+Wb}catch(a){return}}var K;function L(){if(!q){q=true;if(!__gwt_stylesLoaded[Xb]){var a=l.createElement(Yb);__gwt_stylesLoaded[Xb]=a;a.setAttribute(Zb,$b);a.setAttribute(_b,r+Xb);l.getElementsByTagName(ac)[0].appendChild(a)}if(!__gwt_stylesLoaded[bc]){var a=l.createElement(Yb);__gwt_stylesLoaded[bc]=a;a.setAttribute(Zb,$b);a.setAttribute(_b,r+bc);l.getElementsByTagName(ac)[0].appendChild(a)}z();if(l.removeEventListener){l.removeEventListener(cc,L,false)}if(K){clearInterval(K)}}}
if(l.addEventListener){l.addEventListener(cc,function(){H();L()},false)}var K=setInterval(function(){if(/loaded|complete/.test(l.readyState)){H();L()}},50);m&&m({moduleName:N,sessionId:n,subSystem:O,evtGroup:P,millis:(new Date).getTime(),type:V});m&&m({moduleName:N,sessionId:n,subSystem:O,evtGroup:Ib,millis:(new Date).getTime(),type:Q});if(!__gwt_scriptsLoaded[dc]){__gwt_scriptsLoaded[dc]=true;document.write(ec+r+fc)}l.write(gc)}
g3viewer();

View File

@ -1,3 +1,6 @@
<?
$url = $_REQUEST['url'];
?><html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Gallery Administration</title><script type="text/javascript" language="javascript" src="g3viewer/g3viewer.nocache.js"></script></head><body><input type="hidden" id="baseurl" value="<?= $url ?>"/><div id="main"></div></body></html>
?><html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Gallery Administration</title>
<script type="text/javascript" language="javascript" src="<?= $url ?>lib/jquery.js"></script>
<script type="text/javascript" language="javascript" src="g3viewer/g3viewer.nocache.js"></script>
</head><body><input type="hidden" id="baseurl" value="<?= $url ?>"/><div id="main"></div></body></html>

View File

@ -25,8 +25,8 @@ class user_homes_event_Core {
* is refreshed after logging in the direction can occur.
*/
static function user_login($user) {
$home = ORM::factory("user_home")->where("id", $user->id)->find();
if ($home->loaded && $home->home != 0) {
$home = ORM::factory("user_home")->where("id", "=", $user->id)->find();
if ($home->loaded() && $home->home != 0) {
Session::instance()->set("redirect_home", $home->home);
}
}
@ -52,7 +52,7 @@ class user_homes_event_Core {
*/
static function user_before_delete($user) {
ORM::factory("user_home")
->where("id", $user->id)
->where("id", "=", $user->id)
->delete_all();
}
@ -70,7 +70,7 @@ class user_homes_event_Core {
* Called after a user has been added
*/
static function user_add_form_admin_completed($user, $form) {
$home = ORM::factory("user_home")->where("id", $user->id)->find();
$home = ORM::factory("user_home")->where("id", "=", $user->id)->find();
$home->id = $user->id;
$home->home = $form->add_user->user_home->value;
$home->save();
@ -80,8 +80,8 @@ class user_homes_event_Core {
* Called when admin is editing a user
*/
static function user_edit_form_admin($user, $form) {
$home = ORM::factory("user_home")->where("id", $user->id)->find();
if ($home->loaded) {
$home = ORM::factory("user_home")->where("id", "=", $user->id)->find();
if ($home->loaded()) {
$selected = $home->home;
} else {
$selected = 0;
@ -96,7 +96,7 @@ class user_homes_event_Core {
* Called after a user had been edited by the admin
*/
static function user_edit_form_admin_completed($user, $form) {
$home = ORM::factory("user_home")->where("id", $user->id)->find();
$home = ORM::factory("user_home")->where("id", "=", $user->id)->find();
$home->id = $user->id;
$home->home = $form->edit_user->user_home->value;
$home->save();
@ -107,9 +107,9 @@ class user_homes_event_Core {
* Called when user is editing their own form
*/
static function user_edit_form($user, $form) {
$home = ORM::factory("user_home")->where("id", $user->id)->find();
$home = ORM::factory("user_home")->where("id", "=", $user->id)->find();
if ($home->loaded) {
if ($home->loaded()) {
$selected = $home->home;
} else {
$selected = 0;
@ -125,7 +125,7 @@ class user_homes_event_Core {
* Called after a user had been edited by the user
*/
static function user_edit_form_completed($user, $form) {
$home = ORM::factory("user_home")->where("id", $user->id)->find();
$home = ORM::factory("user_home")->where("id", "=", $user->id)->find();
$home->id = $user->id;
$home->home = $form->edit_user->user_home->value;
$home->save();
@ -152,12 +152,26 @@ class user_homes_event_Core {
}
$albums = ORM::factory("item")
->where(array("parent_id" => $parent->id, "type" => "album"))
->orderby(array("title" => "ASC"))
->where("parent_id", "=", $parent->id)
->where("type", "=", "album")
->order_by("title", "ASC")
->find_all();
foreach ($albums as $album) {
self::tree($album, "-$dashes", $array);
}
return;
}
static function show_user_profile($data) {
$home = ORM::factory("user_home")->where("id", "=", $data->user->id)->find();
if ($home->loaded()) {
$view = new View("user_profile_home.html");
$item = ORM::factory("item")->where("id", "=", $home->home)->find();
if ($item->loaded()) {
$view->item = $item;
$data->content[] = (object)array("title" => t("Home album"), "view" => $view);
}
}
}
}

View File

@ -20,27 +20,20 @@
class user_homes_installer {
static function install() {
module::set_version("user_homes", 1);
}
/**
* Installs the table of user homes when the module is installed.
*/
static function activate() {
$db = Database::instance();
$db->query("CREATE TABLE IF NOT EXISTS {user_homes} (
`id` int(9) NOT NULL,
`home` int(9) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY(`id`))
ENGINE=InnoDB DEFAULT CHARSET=utf8;");
DEFAULT CHARSET=utf8;");
module::set_version("user_homes", 1);
}
/**
* Drops the table of user homes when the module is uninstalled.
*/
static function deactivate() {
static function uninstall() {
$db = Database::instance();
$db->query("DROP TABLE IF EXISTS {user_homes};");
}

View File

@ -0,0 +1,10 @@
<?php defined("SYSPATH") or die("No direct script access.") ?>
<div id="g-user-home-detail">
<ul>
<li id="g-user_home-<?= $item->id ?>">
<a href="<?= $item->url() ?>">
<?= html::purify($item->title) ?>
</a>
</li>
</ul>
</div>