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:
parent
3c83eb8c96
commit
3ac02d35f5
@ -1,4 +1,4 @@
|
|||||||
#Tue Jan 26 16:51:26 NZDT 2010
|
#Thu Feb 11 15:27:06 NZDT 2010
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
entryPointModules=
|
entryPointModules=
|
||||||
filesCopiedToWebInfLib=gwt-servlet.jar
|
filesCopiedToWebInfLib=gwt-servlet.jar
|
||||||
|
@ -19,16 +19,13 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
class gwtorganise_event_Core{
|
class gwtorganise_event_Core{
|
||||||
/**
|
|
||||||
* adds the shopping basket administration controls to the admin menu
|
|
||||||
*/
|
|
||||||
static function admin_menu($menu, $theme){
|
|
||||||
|
|
||||||
|
static function admin_menu($menu, $theme) {
|
||||||
$menu->add_after("users_groups",
|
$menu->add_after("dashboard",
|
||||||
Menu::factory("link")
|
Menu::factory("link")
|
||||||
->id("gwtorganise")
|
->id("gwtorganise")
|
||||||
->label(t("GWT Organise"))
|
->label(t("GWT Organise"))
|
||||||
->url(url::site("admin/gwtorganise")));
|
->url(url::site("admin/gwtorganise")));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -109,7 +109,7 @@ public class Album extends TreeItem {
|
|||||||
public void success(JSONValue aValue) {
|
public void success(JSONValue aValue) {
|
||||||
updateValues(aValue);
|
updateValues(aValue);
|
||||||
}
|
}
|
||||||
},false);
|
},false,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -281,7 +281,7 @@ public class Album extends TreeItem {
|
|||||||
m_View.getCurrentAlbum().expand();
|
m_View.getCurrentAlbum().expand();
|
||||||
m_View.getCurrentAlbum().select();
|
m_View.getCurrentAlbum().select();
|
||||||
}
|
}
|
||||||
},true);
|
},true,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -300,7 +300,7 @@ public class Album extends TreeItem {
|
|||||||
public void success(JSONValue aValue) {
|
public void success(JSONValue aValue) {
|
||||||
m_View.getCurrentAlbum().select();
|
m_View.getCurrentAlbum().select();
|
||||||
}
|
}
|
||||||
},true);
|
},true,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -331,7 +331,7 @@ public class Album extends TreeItem {
|
|||||||
public void success(JSONValue aValue) {
|
public void success(JSONValue aValue) {
|
||||||
addAlbums(aValue);
|
addAlbums(aValue);
|
||||||
}
|
}
|
||||||
},false);
|
},false,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -344,7 +344,7 @@ public class Album extends TreeItem {
|
|||||||
public void success(JSONValue aValue) {
|
public void success(JSONValue aValue) {
|
||||||
viewAlbum(aValue);
|
viewAlbum(aValue);
|
||||||
}
|
}
|
||||||
},false);
|
},false,true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -445,7 +445,7 @@ public class Album extends TreeItem {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},false);
|
},false,true);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -30,29 +30,26 @@ public class AsyncResizer implements RunAsyncCallback{
|
|||||||
Canvas upThumb = com.gloopics.g3viewer.client.canvas.Factory.getInstance().createCanvas();
|
Canvas upThumb = com.gloopics.g3viewer.client.canvas.Factory.getInstance().createCanvas();
|
||||||
upThumb.decode(m_Blob);
|
upThumb.decode(m_Blob);
|
||||||
|
|
||||||
|
float imageWidth = (float)upThumb.getWidth();
|
||||||
|
float imageHeight = (float)upThumb.getHeight();
|
||||||
|
|
||||||
int imageWidth = upThumb.getWidth();
|
float widthRatio = imageWidth/((float)m_ResizeOptions.getMaxWidth());
|
||||||
int imageHeight = upThumb.getHeight();
|
float heightRatio = imageHeight/((float)m_ResizeOptions.getMaxHeight());
|
||||||
|
|
||||||
int widthRatio = imageWidth/m_ResizeOptions.getMaxWidth();
|
|
||||||
int heightRatio = imageHeight/m_ResizeOptions.getMaxHeight();
|
|
||||||
|
|
||||||
if (widthRatio > heightRatio){
|
if (widthRatio > heightRatio){
|
||||||
if (widthRatio > 1) {
|
if (widthRatio > 1) {
|
||||||
upThumb.resize(m_ResizeOptions.getMaxWidth(), imageHeight / widthRatio );
|
upThumb.resize(m_ResizeOptions.getMaxWidth(), (int)(imageHeight / widthRatio) );
|
||||||
m_UploadFile.uploadBlob(upThumb.encode());
|
m_UploadFile.uploadBlob(upThumb.encode());
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (heightRatio > 1){
|
if (heightRatio > 1){
|
||||||
upThumb.resize(imageWidth / heightRatio, m_ResizeOptions.getMaxHeight());
|
upThumb.resize((int)(imageWidth / heightRatio), m_ResizeOptions.getMaxHeight());
|
||||||
m_UploadFile.uploadBlob(upThumb.encode());
|
m_UploadFile.uploadBlob(upThumb.encode());
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,9 @@ public class G3Viewer {
|
|||||||
|
|
||||||
DockPanel dp = new DockPanel();
|
DockPanel dp = new DockPanel();
|
||||||
dp.addStyleName("error");
|
dp.addStyleName("error");
|
||||||
dp.add(new HTML(error), DockPanel.CENTER);
|
|
||||||
|
error = error.replaceAll("<", "<").replaceAll(">", ">");
|
||||||
|
dp.add(new HTML("<pre>" + error + "</pre>"), DockPanel.CENTER);
|
||||||
|
|
||||||
|
|
||||||
// DialogBox is a SimplePanel, so you have to set its widget property to
|
// DialogBox is a SimplePanel, so you have to set its widget property to
|
||||||
@ -154,7 +156,7 @@ public class G3Viewer {
|
|||||||
/**
|
/**
|
||||||
* the only dialog box
|
* the only dialog box
|
||||||
*/
|
*/
|
||||||
private final HttpDialogBox m_HttpDialogBox= new HttpDialogBox();
|
private final HttpDialogBox m_HttpDialogBox= new HttpDialogBox(this);
|
||||||
|
|
||||||
private class SimplePanelEx extends SimplePanel
|
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);
|
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 {
|
try {
|
||||||
String url;
|
String url;
|
||||||
if (m_CSRF != null)
|
if (m_CSRF != null && a_IncludeCSRF)
|
||||||
{
|
{
|
||||||
url = a_URL + (a_hasParams?"&csrf=":"?csrf=") + m_CSRF;
|
url = a_URL + (a_hasParams?"&csrf=":"?csrf=") + m_CSRF;
|
||||||
}
|
}
|
||||||
@ -338,7 +346,9 @@ public class G3Viewer {
|
|||||||
url = a_URL;
|
url = a_URL;
|
||||||
}
|
}
|
||||||
RequestBuilder requestBuilder = new RequestBuilder(
|
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(
|
requestBuilder.setCallback(new JSONResponseTextHandler(
|
||||||
new JSONResponseCallback() {
|
new JSONResponseCallback() {
|
||||||
|
|
||||||
@ -370,6 +380,7 @@ public class G3Viewer {
|
|||||||
}}
|
}}
|
||||||
));
|
));
|
||||||
|
|
||||||
|
requestBuilder.setRequestData(a_Data);
|
||||||
requestBuilder.send();
|
requestBuilder.send();
|
||||||
} catch (RequestException ex) {
|
} catch (RequestException ex) {
|
||||||
displayError("Request Exception", ex.toString() + " - " + a_URL);
|
displayError("Request Exception", ex.toString() + " - " + a_URL);
|
||||||
|
@ -8,8 +8,11 @@ import com.google.gwt.http.client.Request;
|
|||||||
import com.google.gwt.http.client.RequestBuilder;
|
import com.google.gwt.http.client.RequestBuilder;
|
||||||
import com.google.gwt.http.client.RequestCallback;
|
import com.google.gwt.http.client.RequestCallback;
|
||||||
import com.google.gwt.http.client.RequestException;
|
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.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.Window;
|
||||||
import com.google.gwt.user.client.ui.Button;
|
import com.google.gwt.user.client.ui.Button;
|
||||||
import com.google.gwt.user.client.ui.DialogBox;
|
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.FlowPanel;
|
||||||
import com.google.gwt.user.client.ui.FormPanel;
|
import com.google.gwt.user.client.ui.FormPanel;
|
||||||
import com.google.gwt.user.client.ui.HTML;
|
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{
|
public class HttpDialogBox extends DialogBox{
|
||||||
|
|
||||||
@ -27,8 +28,10 @@ public class HttpDialogBox extends DialogBox{
|
|||||||
private HttpDialogHandler m_Callback;
|
private HttpDialogHandler m_Callback;
|
||||||
|
|
||||||
private final HTML m_Dialog;
|
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");
|
m_Dialog = new HTML("Empty");
|
||||||
initComponents();
|
initComponents();
|
||||||
}
|
}
|
||||||
@ -54,12 +57,9 @@ public class HttpDialogBox extends DialogBox{
|
|||||||
public void onClick(ClickEvent event) {
|
public void onClick(ClickEvent event) {
|
||||||
if (m_FormPanel!=null)
|
if (m_FormPanel!=null)
|
||||||
{
|
{
|
||||||
m_FormPanel.submit();
|
submitForm();
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
HttpDialogBox.this.hide();
|
HttpDialogBox.this.hide();
|
||||||
Loading.getInstance().loading("Please Wait..");
|
Loading.getInstance().loading("Please Wait..");
|
||||||
}
|
}
|
||||||
@ -88,11 +88,6 @@ public class HttpDialogBox extends DialogBox{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onError(Request request, Throwable exception) {
|
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());
|
showDialog("Could not get " + m_URL + " Exception thrown " + exception.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,11 +96,113 @@ public class HttpDialogBox extends DialogBox{
|
|||||||
showDialog(response.getText());
|
showDialog(response.getText());
|
||||||
} else {
|
} else {
|
||||||
showDialog(m_URL + response.getText());
|
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){
|
private void showDialog(String a_Text){
|
||||||
|
|
||||||
m_Dialog.setHTML(a_Text);
|
m_Dialog.setHTML(a_Text);
|
||||||
@ -132,27 +229,49 @@ public class HttpDialogBox extends DialogBox{
|
|||||||
Element element = this.getElement().getElementsByTagName("form").getItem(0);
|
Element element = this.getElement().getElementsByTagName("form").getItem(0);
|
||||||
setText(element.getElementsByTagName("legend").getItem(0).getInnerText());
|
setText(element.getElementsByTagName("legend").getItem(0).getInnerText());
|
||||||
|
|
||||||
|
|
||||||
m_FormPanel = FormPanel.wrap(element, true);
|
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
|
else
|
||||||
{
|
{
|
||||||
setText(this.getElement().getElementsByTagName("legend").getItem(0).getInnerText());
|
setText(this.getElement().getElementsByTagName("legend").getItem(0).getInnerText());
|
||||||
|
m_FormPanel = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
setPopupPosition(Window.getClientWidth() / 2 - this.getOffsetWidth() / 2,
|
setPopupPosition(Window.getClientWidth() / 2 - this.getOffsetWidth() / 2,
|
||||||
Window.getClientHeight() / 2 - this.getOffsetHeight() / 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){
|
public void doDialog(String url, HttpDialogHandler a_Callback){
|
||||||
m_Callback = a_Callback;
|
m_Callback = a_Callback;
|
||||||
Loading.getInstance().loading("Please Wait");
|
Loading.getInstance().loading("Please Wait");
|
||||||
|
@ -181,7 +181,7 @@ public class Item extends Composite implements HasAllMouseHandlers, DesktopDropp
|
|||||||
public void success(JSONValue aValue) {
|
public void success(JSONValue aValue) {
|
||||||
updateValues(aValue);
|
updateValues(aValue);
|
||||||
}
|
}
|
||||||
},false);
|
},false,true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -255,7 +255,7 @@ public class Item extends Composite implements HasAllMouseHandlers, DesktopDropp
|
|||||||
public void success(JSONValue aValue) {
|
public void success(JSONValue aValue) {
|
||||||
// nothing to do
|
// nothing to do
|
||||||
}
|
}
|
||||||
},false);
|
},false,true);
|
||||||
popupPanel.hide();
|
popupPanel.hide();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -273,7 +273,7 @@ public class Item extends Composite implements HasAllMouseHandlers, DesktopDropp
|
|||||||
public void success(JSONValue aValue) {
|
public void success(JSONValue aValue) {
|
||||||
updateImages(aValue);
|
updateImages(aValue);
|
||||||
}
|
}
|
||||||
},false);
|
},false,true);
|
||||||
popupPanel.hide();
|
popupPanel.hide();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -289,7 +289,7 @@ public class Item extends Composite implements HasAllMouseHandlers, DesktopDropp
|
|||||||
public void success(JSONValue aValue) {
|
public void success(JSONValue aValue) {
|
||||||
updateImages(aValue);
|
updateImages(aValue);
|
||||||
}
|
}
|
||||||
},false);
|
},false,true);
|
||||||
popupPanel.hide();
|
popupPanel.hide();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
modules/gwtorganise/war/WEB-INF/lib/appengine-api-labs-1.2.5.jar
Normal file
BIN
modules/gwtorganise/war/WEB-INF/lib/appengine-api-labs-1.2.5.jar
Normal file
Binary file not shown.
Binary file not shown.
BIN
modules/gwtorganise/war/WEB-INF/lib/datanucleus-core-1.1.5.jar
Normal file
BIN
modules/gwtorganise/war/WEB-INF/lib/datanucleus-core-1.1.5.jar
Normal file
Binary file not shown.
BIN
modules/gwtorganise/war/WEB-INF/lib/datanucleus-jpa-1.1.5.jar
Normal file
BIN
modules/gwtorganise/war/WEB-INF/lib/datanucleus-jpa-1.1.5.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
modules/gwtorganise/war/WEB-INF/lib/gwt-servlet.jar
Normal file
BIN
modules/gwtorganise/war/WEB-INF/lib/gwt-servlet.jar
Normal file
Binary file not shown.
BIN
modules/gwtorganise/war/WEB-INF/lib/jdo2-api-2.3-eb.jar
Normal file
BIN
modules/gwtorganise/war/WEB-INF/lib/jdo2-api-2.3-eb.jar
Normal file
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
@ -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();
|
|
@ -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();
|
|
@ -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();
|
@ -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();
|
@ -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();
|
@ -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();
|
@ -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();
|
|
@ -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();
|
|
@ -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();
|
@ -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();
|
@ -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();
|
|
@ -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();
|
|
@ -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();
|
|
@ -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();
|
|
@ -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();
|
|
@ -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();
|
|
@ -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();
|
@ -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();
|
@ -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();
|
@ -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();
|
@ -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();
|
@ -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();
|
@ -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();
|
|
@ -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();
|
|
@ -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 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}
|
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)}}
|
;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 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}
|
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)}}
|
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)}
|
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();
|
g3viewer();
|
@ -1,3 +1,6 @@
|
|||||||
<?
|
<?
|
||||||
$url = $_REQUEST['url'];
|
$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>
|
||||||
|
@ -25,8 +25,8 @@ class user_homes_event_Core {
|
|||||||
* is refreshed after logging in the direction can occur.
|
* is refreshed after logging in the direction can occur.
|
||||||
*/
|
*/
|
||||||
static function user_login($user) {
|
static function user_login($user) {
|
||||||
$home = ORM::factory("user_home")->where("id", $user->id)->find();
|
$home = ORM::factory("user_home")->where("id", "=", $user->id)->find();
|
||||||
if ($home->loaded && $home->home != 0) {
|
if ($home->loaded() && $home->home != 0) {
|
||||||
Session::instance()->set("redirect_home", $home->home);
|
Session::instance()->set("redirect_home", $home->home);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -52,7 +52,7 @@ class user_homes_event_Core {
|
|||||||
*/
|
*/
|
||||||
static function user_before_delete($user) {
|
static function user_before_delete($user) {
|
||||||
ORM::factory("user_home")
|
ORM::factory("user_home")
|
||||||
->where("id", $user->id)
|
->where("id", "=", $user->id)
|
||||||
->delete_all();
|
->delete_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ class user_homes_event_Core {
|
|||||||
* Called after a user has been added
|
* Called after a user has been added
|
||||||
*/
|
*/
|
||||||
static function user_add_form_admin_completed($user, $form) {
|
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->id = $user->id;
|
||||||
$home->home = $form->add_user->user_home->value;
|
$home->home = $form->add_user->user_home->value;
|
||||||
$home->save();
|
$home->save();
|
||||||
@ -80,8 +80,8 @@ class user_homes_event_Core {
|
|||||||
* Called when admin is editing a user
|
* Called when admin is editing a user
|
||||||
*/
|
*/
|
||||||
static function user_edit_form_admin($user, $form) {
|
static function user_edit_form_admin($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;
|
$selected = $home->home;
|
||||||
} else {
|
} else {
|
||||||
$selected = 0;
|
$selected = 0;
|
||||||
@ -96,7 +96,7 @@ class user_homes_event_Core {
|
|||||||
* Called after a user had been edited by the admin
|
* Called after a user had been edited by the admin
|
||||||
*/
|
*/
|
||||||
static function user_edit_form_admin_completed($user, $form) {
|
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->id = $user->id;
|
||||||
$home->home = $form->edit_user->user_home->value;
|
$home->home = $form->edit_user->user_home->value;
|
||||||
$home->save();
|
$home->save();
|
||||||
@ -107,9 +107,9 @@ class user_homes_event_Core {
|
|||||||
* Called when user is editing their own form
|
* Called when user is editing their own form
|
||||||
*/
|
*/
|
||||||
static function user_edit_form($user, $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;
|
$selected = $home->home;
|
||||||
} else {
|
} else {
|
||||||
$selected = 0;
|
$selected = 0;
|
||||||
@ -125,7 +125,7 @@ class user_homes_event_Core {
|
|||||||
* Called after a user had been edited by the user
|
* Called after a user had been edited by the user
|
||||||
*/
|
*/
|
||||||
static function user_edit_form_completed($user, $form) {
|
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->id = $user->id;
|
||||||
$home->home = $form->edit_user->user_home->value;
|
$home->home = $form->edit_user->user_home->value;
|
||||||
$home->save();
|
$home->save();
|
||||||
@ -152,12 +152,26 @@ class user_homes_event_Core {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$albums = ORM::factory("item")
|
$albums = ORM::factory("item")
|
||||||
->where(array("parent_id" => $parent->id, "type" => "album"))
|
->where("parent_id", "=", $parent->id)
|
||||||
->orderby(array("title" => "ASC"))
|
->where("type", "=", "album")
|
||||||
|
->order_by("title", "ASC")
|
||||||
->find_all();
|
->find_all();
|
||||||
foreach ($albums as $album) {
|
foreach ($albums as $album) {
|
||||||
self::tree($album, "-$dashes", $array);
|
self::tree($album, "-$dashes", $array);
|
||||||
}
|
}
|
||||||
return;
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,27 +20,20 @@
|
|||||||
|
|
||||||
class user_homes_installer {
|
class user_homes_installer {
|
||||||
static function install() {
|
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 = Database::instance();
|
||||||
$db->query("CREATE TABLE IF NOT EXISTS {user_homes} (
|
$db->query("CREATE TABLE IF NOT EXISTS {user_homes} (
|
||||||
`id` int(9) NOT NULL,
|
`id` int(9) NOT NULL,
|
||||||
`home` int(9) default NULL,
|
`home` int(9) default NULL,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE KEY(`id`))
|
UNIQUE KEY(`id`))
|
||||||
ENGINE=InnoDB DEFAULT CHARSET=utf8;");
|
DEFAULT CHARSET=utf8;");
|
||||||
module::set_version("user_homes", 1);
|
module::set_version("user_homes", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Drops the table of user homes when the module is uninstalled.
|
* Drops the table of user homes when the module is uninstalled.
|
||||||
*/
|
*/
|
||||||
static function deactivate() {
|
static function uninstall() {
|
||||||
$db = Database::instance();
|
$db = Database::instance();
|
||||||
$db->query("DROP TABLE IF EXISTS {user_homes};");
|
$db->query("DROP TABLE IF EXISTS {user_homes};");
|
||||||
}
|
}
|
||||||
|
10
modules/user_homes/views/user_profile_home.html.php
Normal file
10
modules/user_homes/views/user_profile_home.html.php
Normal 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>
|
Reference in New Issue
Block a user