Author: jharting
Date: 2009-05-26 16:09:24 -0400 (Tue, 26 May 2009)
New Revision: 11007
Added:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java
branches/community/Seam_2_1/examples/tasks/view/categories.js
branches/community/Seam_2_1/examples/tasks/view/categories.xhtml
branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js
Removed:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/UserFactory.java
branches/community/Seam_2_1/examples/tasks/view/contexts.js
branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml
Modified:
branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/components.xml
branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/pages.xml
branches/community/Seam_2_1/examples/tasks/resources/import.sql
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Task.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/User.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ResolvedTaskResourceQuery.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceHome.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceQuery.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ResolvedTaskResourceQueryTest.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/TaskResourceTest.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/testng.xml
branches/community/Seam_2_1/examples/tasks/view/resolved.js
branches/community/Seam_2_1/examples/tasks/view/seam-tasks-client.js
branches/community/Seam_2_1/examples/tasks/view/style.css
branches/community/Seam_2_1/examples/tasks/view/tasks.js
branches/community/Seam_2_1/examples/tasks/view/tasks.xhtml
branches/community/Seam_2_1/examples/tasks/view/template.xhtml
Log:
seam tasks example - changed context -> category in order to distinguish between the
Seam context and GTD context, placed jQuery locally
Modified: branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/components.xml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/components.xml 2009-05-26
16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/components.xml 2009-05-26
20:09:24 UTC (rev 11007)
@@ -26,20 +26,22 @@
<framework:entity-home name="userHome"
entity-class="org.jboss.seam.example.tasks.entity.User"
auto-create="true" />
+
+ <framework:entity-home name="taskHome"
+ entity-class="org.jboss.seam.example.tasks.entity.Task"
auto-create="true" />
- <framework:entity-query name="contextQuery"
- ejbql="select c from Context c">
+ <framework:entity-query name="categoryQuery"
+ ejbql="select c from Category c">
<framework:restrictions>
<value>c.owner.username =
#{user.username}</value>
</framework:restrictions>
</framework:entity-query>
- <resteasy:resource-query name="contextResourceQuery"
- entity-query="#{contextQuery}" path="/auth/context"
- entity-class="org.jboss.seam.example.tasks.entity.Context"
- media-types="application/xml application/json application/fastinfoset">
- </resteasy:resource-query>
+ <resteasy:resource-query name="categoryResourceQuery"
+ entity-query="#{categoryQuery}" path="/auth/category"
+ entity-class="org.jboss.seam.example.tasks.entity.Category"
+ media-types="application/xml application/json application/fastinfoset"/>
<resteasy:application resource-path-prefix="/v1">
<resteasy:media-type-mappings>
Modified: branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/pages.xml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/pages.xml 2009-05-26
16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/pages.xml 2009-05-26
20:09:24 UTC (rev 11007)
@@ -14,7 +14,7 @@
<page view-id="/tasks.xhtml" login-required="true" />
- <page view-id="/contexts.xhtml" login-required="true" />
+ <page view-id="/categories.xhtml" login-required="true" />
<page view-id="/resolved.xhtml" login-required="true" />
Modified: branches/community/Seam_2_1/examples/tasks/resources/import.sql
===================================================================
--- branches/community/Seam_2_1/examples/tasks/resources/import.sql 2009-05-26 16:46:18
UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/resources/import.sql 2009-05-26 20:09:24
UTC (rev 11007)
@@ -1,24 +1,24 @@
insert into User (username, password, admin) values ('demo', 'demo',
false)
insert into User (username, password, admin) values ('admin', 'password',
true)
-insert into Context (id, name, owner_username) values (1, 'School',
'demo')
- insert into Task (id, name, resolved, created, updated, context_id) values (2,
'Build the Turing machine', false, '2009-04-19 16:11:05', null, 1)
- insert into Task (id, name, resolved, created, updated, context_id) values (3,
'Finish the RESTEasy-Seam integration example', false, '2009-04-19
16:11:05', null, 1)
- insert into Task (id, name, resolved, created, updated, context_id) values (4,
'Learn new vocab for English conversations', false, '2009-04-19 16:11:05',
null, 1)
- insert into Task (id, name, resolved, created, updated, context_id) values (5,
'Prepare a presentation for webdesign seminar', false, '2009-04-19
16:11:05', null, 1)
+insert into Category (id, name, owner_username) values (1, 'School',
'demo')
+ insert into Task (id, name, resolved, created, updated, category_id) values (2,
'Build the Turing machine', false, '2009-04-19 16:11:05', null, 1)
+ insert into Task (id, name, resolved, created, updated, category_id) values (3,
'Finish the RESTEasy-Seam integration example', false, '2009-04-19
16:11:05', null, 1)
+ insert into Task (id, name, resolved, created, updated, category_id) values (4,
'Learn new vocab for English conversations', false, '2009-04-19 16:11:05',
null, 1)
+ insert into Task (id, name, resolved, created, updated, category_id) values (5,
'Prepare a presentation for webdesign seminar', false, '2009-04-19
16:11:05', null, 1)
-insert into Context (id, name, owner_username) values (2, 'Work',
'demo')
- insert into Task (id, name, resolved, created, updated, context_id) values (6, 'Pick
up meal tickets', false, '2009-04-19 16:11:05', null, 2)
-insert into Context (id, name, owner_username) values (3, 'Buy', 'demo')
- insert into Task (id, name, resolved, created, updated, context_id) values (7, 'Buy
milk', false, '2009-04-19 16:11:05', null, 3)
- insert into Task (id, name, resolved, created, updated, context_id) values (8, 'Buy
an infinite tape', false, '2009-04-19 16:11:05', null, 3)
- insert into Task (id, name, resolved, created, updated, context_id) values (9,
'Order books', false, '2009-04-19 16:11:05', null, 3)
- insert into Task (id, name, resolved, created, updated, context_id) values (10, 'Buy
a turtle', true, '2009-04-19 16:11:05', '2009-04-22 13:15:33', 3)
-insert into Context (id, name, owner_username) values (4, 'Other stuff',
'demo')
- insert into Task (id, name, resolved, created, updated, context_id) values (11,
'Learn to fly', false, '2009-04-19 16:11:05', null, 4)
- insert into Task (id, name, resolved, created, updated, context_id) values (12,
'Visit grandma', false, '2009-04-19 16:11:05', null, 4)
- insert into Task (id, name, resolved, created, updated, context_id) values (13,
'Extend passport', false, '2009-04-19 16:11:05', null, 4)
- insert into Task (id, name, resolved, created, updated, context_id) values (14, 'Get
a haircut', false, '2009-04-19 16:11:05', null, 4)
+insert into Category (id, name, owner_username) values (2, 'Work',
'demo')
+ insert into Task (id, name, resolved, created, updated, category_id) values (6,
'Pick up meal tickets', false, '2009-04-19 16:11:05', null, 2)
+insert into Category (id, name, owner_username) values (3, 'Buy',
'demo')
+ insert into Task (id, name, resolved, created, updated, category_id) values (7, 'Buy
milk', false, '2009-04-19 16:11:05', null, 3)
+ insert into Task (id, name, resolved, created, updated, category_id) values (8, 'Buy
an infinite tape', false, '2009-04-19 16:11:05', null, 3)
+ insert into Task (id, name, resolved, created, updated, category_id) values (9,
'Order books', false, '2009-04-19 16:11:05', null, 3)
+ insert into Task (id, name, resolved, created, updated, category_id) values (10,
'Buy a turtle', true, '2009-04-19 16:11:05', '2009-04-22
13:15:33', 3)
+insert into Category (id, name, owner_username) values (4, 'Other stuff',
'demo')
+ insert into Task (id, name, resolved, created, updated, category_id) values (11,
'Learn to fly', false, '2009-04-19 16:11:05', null, 4)
+ insert into Task (id, name, resolved, created, updated, category_id) values (12,
'Visit grandma', false, '2009-04-19 16:11:05', null, 4)
+ insert into Task (id, name, resolved, created, updated, category_id) values (13,
'Extend passport', false, '2009-04-19 16:11:05', null, 4)
+ insert into Task (id, name, resolved, created, updated, category_id) values (14,
'Get a haircut', false, '2009-04-19 16:11:05', null, 4)
-insert into Context (id, name, owner_username) values (5, 'Administration',
'admin')
-insert into Task (id, name, resolved, created, updated, context_id) values (15, 'Ban
demo user :-)', false, '2009-05-04 12:35:13', null, 5)
+insert into Category (id, name, owner_username) values (5, 'Administration',
'admin')
+insert into Task (id, name, resolved, created, updated, category_id) values (15, 'Ban
demo user :-)', false, '2009-05-04 12:35:13', null, 5)
Copied:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java
(from rev 10971,
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/ContextHome.java)
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java
(rev 0)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.seam.example.tasks;
+
+import org.jboss.seam.annotations.AutoCreate;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.example.tasks.entity.Category;
+import org.jboss.seam.framework.EntityHome;
+
+/**
+ *
+ * @author Jozef Hartinger
+ *
+ */
+@Name("categoryHome")
+@AutoCreate
+public class CategoryHome extends EntityHome<Category>
+{
+
+ public Category findByUsernameAndCategory(String username, String category)
+ {
+ setInstance((Category)
getEntityManager().createNamedQuery("categoryByNameAndUser").setParameter("username",
username).setParameter("category", category).getSingleResult());
+ return getInstance();
+ }
+
+}
Property changes on:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java
(from rev 10971,
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java)
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java
(rev 0)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -0,0 +1,116 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.seam.example.tasks.entity;
+
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import javax.persistence.UniqueConstraint;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.hibernate.validator.NotNull;
+
+/**
+ *
+ * @author Jozef Hartinger
+ *
+ */
+@Entity
+@XmlRootElement
+@Table(uniqueConstraints = @UniqueConstraint(columnNames = { "NAME",
"OWNER_USERNAME" }))
+@NamedQuery(name = "categoryByNameAndUser", query = "select category from
Category category where category.owner.username like :username and category.name like
:category")
+public class Category
+{
+ private Long id;
+ private String name;
+ private List<Task> tasks;
+ private User owner;
+
+ public Category()
+ {
+ }
+
+ public Category(Long id, String name, List<Task> tasks, User owner)
+ {
+ this.id = id;
+ this.name = name;
+ this.tasks = tasks;
+ this.owner = owner;
+ }
+
+ @Id
+ @GeneratedValue
+ @XmlTransient
+ public Long getId()
+ {
+ return id;
+ }
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ @NotNull
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ @OneToMany(mappedBy = "category", cascade = CascadeType.REMOVE)
+ @XmlTransient
+ public List<Task> getTasks()
+ {
+ return tasks;
+ }
+
+ public void setTasks(List<Task> tasks)
+ {
+ this.tasks = tasks;
+ }
+
+ @ManyToOne
+ @XmlTransient
+ public User getOwner()
+ {
+ return owner;
+ }
+
+ public void setOwner(User owner)
+ {
+ this.owner = owner;
+ }
+
+}
Property changes on:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java 2009-05-26
16:46:18 UTC (rev 11006)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -1,116 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.seam.example.tasks.entity;
-
-import java.util.List;
-
-import javax.persistence.CascadeType;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.persistence.UniqueConstraint;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-
-import org.hibernate.validator.NotNull;
-
-/**
- *
- * @author Jozef Hartinger
- *
- */
-@Entity
-@XmlRootElement
-@Table(uniqueConstraints = @UniqueConstraint(columnNames = { "NAME",
"OWNER_USERNAME" }))
-@NamedQuery(name = "contextByNameAndUser", query = "select context from
Context context where context.owner.username like :username and context.name like
:context")
-public class Context
-{
- private Long id;
- private String name;
- private List<Task> tasks;
- private User owner;
-
- public Context()
- {
- }
-
- public Context(Long id, String name, List<Task> tasks, User owner)
- {
- this.id = id;
- this.name = name;
- this.tasks = tasks;
- this.owner = owner;
- }
-
- @Id
- @GeneratedValue
- @XmlTransient
- public Long getId()
- {
- return id;
- }
-
- public void setId(Long id)
- {
- this.id = id;
- }
-
- @NotNull
- public String getName()
- {
- return name;
- }
-
- public void setName(String name)
- {
- this.name = name;
- }
-
- @OneToMany(mappedBy = "context", cascade = CascadeType.REMOVE)
- @XmlTransient
- public List<Task> getTasks()
- {
- return tasks;
- }
-
- public void setTasks(List<Task> tasks)
- {
- this.tasks = tasks;
- }
-
- @ManyToOne
- @XmlTransient
- public User getOwner()
- {
- return owner;
- }
-
- public void setOwner(User owner)
- {
- this.owner = owner;
- }
-
-}
Modified:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Task.java
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Task.java 2009-05-26
16:46:18 UTC (rev 11006)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Task.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -44,7 +44,7 @@
*/
@Entity
@XmlRootElement
-@NamedQuery(name="taskByNameAndContext", query="select task from Task task
where task.name like :task and task.context.id = :context")
+@NamedQuery(name="taskByNameAndCategory", query="select task from Task
task where task.name like :task and task.category.id = :category")
public class Task
{
private Long id;
@@ -52,7 +52,7 @@
private boolean resolved;
private Date created;
private Date updated;
- private Context context;
+ private Category category;
@Id
@GeneratedValue
@@ -115,26 +115,26 @@
@ManyToOne
@XmlTransient
@NotNull
- public Context getContext()
+ public Category getCategory()
{
- return context;
+ return category;
}
- public void setContext(Context context)
+ public void setCategory(Category category)
{
- this.context = context;
+ this.category = category;
}
@Transient
- @XmlElement(name="context")
- public String getContextName() {
- return context.getName();
+ @XmlElement(name="category")
+ public String getCategoryName() {
+ return category.getName();
}
@Transient
public User getOwner() {
- return context.getOwner();
+ return category.getOwner();
}
}
Modified:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/User.java
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/User.java 2009-05-26
16:46:18 UTC (rev 11006)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/User.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -42,7 +42,7 @@
{
private String username;
private String password;
- private List<Context> contexts;
+ private List<Category> categories;
private boolean admin;
@Id
@@ -69,14 +69,14 @@
@OneToMany(mappedBy = "owner")
@XmlTransient
- public List<Context> getContexts()
+ public List<Category> getCategories()
{
- return contexts;
+ return categories;
}
- public void setContexts(List<Context> contexts)
+ public void setCategories(List<Category> categories)
{
- this.contexts = contexts;
+ this.categories = categories;
}
public boolean isAdmin()
Copied:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java
(from rev 11006,
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java)
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java
(rev 0)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.seam.example.tasks.resource;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.example.tasks.CategoryHome;
+import org.jboss.seam.example.tasks.entity.User;
+
+/**
+ * This resource demonstrates use of plain JAX-RS resource (no ResourceHome
+ * component) with Seam. It allows retrieving (GET), creating (PUT) and deleting
+ * (DELETE) of task categories. To create new category, simply send a PUT request
+ * without entity body to /auth/category/name where "name" is the name of
+ * category. Same path applies for retrieving and deleting of category.
+ *
+ * @author Jozef Hartinger
+ *
+ */
+
+@Path("/auth/category/{category}")
+@Name("categoryResource")
+@Produces( { "application/xml", "application/json",
"application/fastinfoset" })
+@Consumes( { "application/xml", "application/json",
"application/fastinfoset" })
+public class CategoryResource
+{
+ @In
+ private CategoryHome categoryHome;
+
+ @javax.ws.rs.core.Context
+ private UriInfo uriInfo;
+
+ @In
+ private User user;
+
+ @PathParam("category")
+ private String category;
+
+ @GET
+ public Response getCategory()
+ {
+ return Response.ok(categoryHome.findByUsernameAndCategory(user.getUsername(),
category)).build();
+ }
+
+ @PUT
+ public Response putCategory()
+ {
+ categoryHome.getInstance().setName(category);
+ categoryHome.getInstance().setOwner(user);
+ // may cause exception if user already has a category with that name
+ // in that case the exception is handled by exception mapper
+ categoryHome.persist();
+ return Response.created(uriInfo.getAbsolutePath()).build();
+ }
+
+ @DELETE
+ public void deleteCategory()
+ {
+ categoryHome.findByUsernameAndCategory(user.getUsername(), category);
+ categoryHome.remove();
+ }
+}
Property changes on:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java 2009-05-26
16:46:18 UTC (rev 11006)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -1,91 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.seam.example.tasks.resource;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.example.tasks.ContextHome;
-import org.jboss.seam.example.tasks.entity.User;
-
-/**
- * This resource demonstrates use of plain JAX-RS resource (no ResourceHome
- * component) with Seam. It allows retrieving (GET), creating (PUT) and deleting
- * (DELETE) of task contexts. To create new context, simply send a PUT request
- * without entity body to /auth/context/name where "name" is the name of
- * context. Same path applies for retrieving and deleting of context.
- *
- * @author Jozef Hartinger
- *
- */
-
-@Path("/auth/context/{context}")
-@Name("contextResource")
-@Produces( { "application/xml", "application/json",
"application/fastinfoset" })
-@Consumes( { "application/xml", "application/json",
"application/fastinfoset" })
-public class ContextResource
-{
- @In
- private ContextHome contextHome;
-
- @javax.ws.rs.core.Context
- private UriInfo uriInfo;
-
- @In
- private User user;
-
- @PathParam("context")
- private String context;
-
- @GET
- public Response getContext()
- {
- return Response.ok(contextHome.findByUsernameAndContext(user.getUsername(),
context)).build();
- }
-
- @PUT
- public Response putContext()
- {
- contextHome.getInstance().setName(context);
- contextHome.getInstance().setOwner(user);
- // may cause exception if user already has a Context with that name
- // in that case the exception is handled by exception mapper
- contextHome.persist();
- return Response.created(uriInfo.getAbsolutePath()).build();
- }
-
- @DELETE
- public void deleteContext()
- {
- contextHome.findByUsernameAndContext(user.getUsername(), context);
- contextHome.remove();
- }
-}
Modified:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ResolvedTaskResourceQuery.java
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ResolvedTaskResourceQuery.java 2009-05-26
16:46:18 UTC (rev 11006)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ResolvedTaskResourceQuery.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -69,7 +69,7 @@
{
super.create();
List<String> restrictions = new ArrayList<String>();
- restrictions.add("context.owner.username = #{username} AND resolved =
true");
+ restrictions.add("category.owner.username = #{username} AND resolved =
true");
getEntityQuery().setRestrictionExpressionStrings(restrictions);
getEntityQuery().setOrderColumn("updated");
getEntityQuery().setOrderDirection("desc");
Modified:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceHome.java
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceHome.java 2009-05-26
16:46:18 UTC (rev 11006)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceHome.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -31,11 +31,11 @@
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
-import org.jboss.seam.example.tasks.ContextHome;
+import org.jboss.seam.example.tasks.CategoryHome;
import org.jboss.seam.example.tasks.ResourceNotFoundException;
-import org.jboss.seam.example.tasks.TaskHome;
import org.jboss.seam.example.tasks.entity.Task;
import org.jboss.seam.example.tasks.entity.User;
+import org.jboss.seam.framework.EntityHome;
import org.jboss.seam.framework.Home;
import org.jboss.seam.resteasy.ResourceHome;
@@ -47,7 +47,7 @@
* @author Jozef Hartinger
*
*/
-@Path("/auth/context/{context}/{status}")
+@Path("/auth/category/{category}/{status}")
@Name("taskResourceHome")
public class TaskResourceHome extends ResourceHome<Task, Long>
{
@@ -57,11 +57,11 @@
@In
private User user;
@In
- private ContextHome contextHome;
+ private CategoryHome categoryHome;
@In
- private TaskHome taskHome;
- @PathParam("context")
- private String contextName;
+ private EntityHome<Task> taskHome;
+ @PathParam("category")
+ private String categoryName;
public TaskResourceHome()
{
@@ -72,7 +72,7 @@
public Task getEntity(Long id)
{
Task task = super.getEntity(id);
- if (!task.getContext().getName().equals(contextName) ||
!task.getOwner().getUsername().equals(user.getUsername()))
+ if (!task.getCategory().getName().equals(categoryName) ||
!task.getOwner().getUsername().equals(user.getUsername()))
{
throw new ResourceNotFoundException("Task not found");
}
@@ -98,7 +98,7 @@
@Override
public Long createEntity(Task entity)
{
- entity.setContext(contextHome.findByUsernameAndContext(user.getUsername(),
contextName));
+ entity.setCategory(categoryHome.findByUsernameAndCategory(user.getUsername(),
categoryName));
entity.setResolved(false);
entity.setCreated(new Date());
return super.createEntity(entity);
@@ -108,7 +108,7 @@
public void updateEntity(Task entity, Long id)
{
Task task = super.getEntity(id);
- task.setContext(contextHome.findByUsernameAndContext(user.getUsername(),
contextName));
+ task.setCategory(categoryHome.findByUsernameAndCategory(user.getUsername(),
categoryName));
task.setResolved(isResolved());
if (entity.getName() != null)
{
Modified:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceQuery.java
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceQuery.java 2009-05-26
16:46:18 UTC (rev 11006)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceQuery.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -35,21 +35,21 @@
import org.jboss.seam.resteasy.ResourceQuery;
/**
- * This class exposes two lists of tasks for every context. Unresolved tasks can
- * be obtained by sending HTTP GET request to context/{context}/unresolved URI.
- * To obtain a list of already resolved tasks, use context/{context}/resolved
+ * This class exposes two lists of tasks for every category. Unresolved tasks can
+ * be obtained by sending HTTP GET request to category/{category}/unresolved URI.
+ * To obtain a list of already resolved tasks, use category/{category}/resolved
* URI.
*
* @author Jozef Hartinger
*
*/
@Name("taskResourceQuery")
-@Path("/auth/context/{context}/{status}")
+@Path("/auth/category/{category}/{status}")
public class TaskResourceQuery extends ResourceQuery<Task>
{
- @PathParam("context")
- private String contextName;
+ @PathParam("category")
+ private String categoryName;
@PathParam("status")
private String taskStatus;
@@ -64,16 +64,16 @@
{
super.create();
List<String> restrictions = new ArrayList<String>();
- restrictions.add("context.name = #{contextName}");
+ restrictions.add("category.name = #{categoryName}");
restrictions.add("resolved = #{taskStatus}");
- restrictions.add("context.owner.username = #{user.username}");
+ restrictions.add("category.owner.username = #{user.username}");
getEntityQuery().setRestrictionExpressionStrings(restrictions);
}
- @Factory("contextName")
- public String getContextName()
+ @Factory("categoryName")
+ public String getCategoryName()
{
- return contextName;
+ return categoryName;
}
@Factory("taskStatus")
Copied:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java
(from rev 11006,
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java)
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java
(rev 0)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -0,0 +1,167 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.seam.example.tasks.test;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.seam.resteasy.testfwk.ResourceSeamTest;
+import org.jboss.seam.resteasy.testfwk.MockHttpServletResponse;
+import org.jboss.seam.resteasy.testfwk.MockHttpServletRequest;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+/**
+ * Test class for /category part of API
+ * @author Jozef Hartinger
+ *
+ */
+public class CategoryResourceTest extends ResourceSeamTest
+{
+ @DataProvider(name = "query")
+ public String[][] getQueryData()
+ {
+ return new String[][] { new String[] { "application/xml",
"<category><name>School</name></category>" }, new
String[] { "application/json",
"{\"category\":{\"name\":\"School\"}}" } };
+ }
+
+ @Test(dataProvider = "query")
+ public void getCategoryListTest(final String contentType, final String
expectedResponse) throws Exception
+ {
+ new ResourceRequest(Method.GET, "/v1/auth/category")
+ {
+
+ @Override
+ protected void prepareRequest(MockHttpServletRequest request)
+ {
+ super.prepareRequest(request);
+ request.addHeader("Accept", contentType);
+ request.addHeader("Authorization", "Basic ZGVtbzpkZW1v");
// demo:demo
+ }
+
+ @Override
+ protected void onResponse(MockHttpServletResponse response)
+ {
+ super.onResponse(response);
+ assertEquals(response.getStatus(), 200, "Unexpected response
code.");
+ assertTrue(response.getContentAsString().contains(expectedResponse),
"Unexpected response.");
+ }
+
+ }.run();
+ }
+
+ @Test
+ public void deleteCategoryTest() throws Exception
+ {
+ new ResourceRequest(Method.DELETE, "/v1/auth/category/Work")
+ {
+
+ @Override
+ protected void prepareRequest(MockHttpServletRequest request)
+ {
+ super.prepareRequest(request);
+ request.addHeader("Accept", "application/xml");
+ request.addHeader("Authorization", "Basic ZGVtbzpkZW1v");
// demo:demo
+ }
+
+ @Override
+ protected void onResponse(MockHttpServletResponse response)
+ {
+ super.onResponse(response);
+ assertEquals(response.getStatus(), 204, "Unexpected response
code.");
+ }
+
+ }.run();
+ }
+
+ @Test
+ public void createCategoryTest() throws Exception
+ {
+
+ final String uri = "/v1/auth/category/Test%20Category";
+ final String mimeType = "application/json";
+ final String expectedResponse =
"{\"category\":{\"name\":\"Test Category\"}}";
+
+ new ResourceRequest(Method.PUT, uri)
+ {
+
+ @Override
+ protected void prepareRequest(MockHttpServletRequest request)
+ {
+ super.prepareRequest(request);
+ request.addHeader("Authorization", "Basic ZGVtbzpkZW1v");
// demo:demo
+ }
+
+ @Override
+ protected void onResponse(MockHttpServletResponse response)
+ {
+ super.onResponse(response);
+ assertEquals(response.getStatus(), 201, "Unexpected response
code.");
+ }
+
+ }.run();
+
+ new ResourceRequest(Method.GET, uri)
+ {
+
+ @Override
+ protected void prepareRequest(MockHttpServletRequest request)
+ {
+ super.prepareRequest(request);
+ request.addHeader("Accept", mimeType);
+ request.addHeader("Authorization", "Basic ZGVtbzpkZW1v");
// demo:demo
+ }
+
+ @Override
+ protected void onResponse(MockHttpServletResponse response)
+ {
+ super.onResponse(response);
+ assertEquals(response.getStatus(), 200, "Unexpected response
code.");
+ assertEquals(response.getContentAsString(), expectedResponse,
"Unexpected response.");
+ }
+
+ }.run();
+ }
+
+ @Test
+ public void noAuthorizationHeaderTest() throws Exception
+ {
+ new ResourceRequest(Method.GET, "/v1/auth/category")
+ {
+
+ @Override
+ protected void prepareRequest(MockHttpServletRequest request)
+ {
+ super.prepareRequest(request);
+ request.addHeader("Accept", "application/xml");
+ }
+
+ @Override
+ protected void onResponse(MockHttpServletResponse response)
+ {
+ super.onResponse(response);
+ assertEquals(response.getStatus(), 401, "Unexpected response
code.");
+ }
+
+ }.run();
+ }
+
+}
Property changes on:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java 2009-05-26
16:46:18 UTC (rev 11006)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -1,168 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.seam.example.tasks.test;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-import org.jboss.seam.resteasy.testfwk.ResourceSeamTest;
-import org.jboss.seam.resteasy.testfwk.MockHttpServletResponse;
-import org.jboss.seam.resteasy.testfwk.MockHttpServletRequest;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-/**
- * Test class for /context part of API
- * @author Jozef Hartinger
- *
- */
-public class ContextResourceTest extends ResourceSeamTest
-{
- @DataProvider(name = "query")
- public String[][] getQueryData()
- {
- return new String[][] { new String[] { "application/xml",
"<context><name>School</name></context>" }, new String[]
{ "application/json",
"{\"context\":{\"name\":\"School\"}}" } };
- }
-
- @Test(dataProvider = "query")
- public void getContextListTest(final String contentType, final String
expectedResponse) throws Exception
- {
- new ResourceRequest(Method.GET, "/v1/auth/context")
- {
-
- @Override
- protected void prepareRequest(MockHttpServletRequest request)
- {
- super.prepareRequest(request);
- request.addHeader("Accept", contentType);
- request.addHeader("Authorization", "Basic ZGVtbzpkZW1v");
// demo:demo
- }
-
- @Override
- protected void onResponse(MockHttpServletResponse response)
- {
- super.onResponse(response);
- assertEquals(response.getStatus(), 200, "Unexpected response
code.");
- assertTrue(response.getContentAsString().contains(expectedResponse),
"Unexpected response.");
- }
-
- }.run();
- }
-
- @Test
- public void deleteContextTest() throws Exception
- {
- new ResourceRequest(Method.DELETE, "/v1/auth/context/Work")
- {
-
- @Override
- protected void prepareRequest(MockHttpServletRequest request)
- {
- super.prepareRequest(request);
- request.addHeader("Accept", "application/xml");
- request.addHeader("Authorization", "Basic ZGVtbzpkZW1v");
// demo:demo
- }
-
- @Override
- protected void onResponse(MockHttpServletResponse response)
- {
- super.onResponse(response);
- assertEquals(response.getStatus(), 204, "Unexpected response
code.");
- }
-
- }.run();
- }
-
- @Test
- public void createContextTest() throws Exception
- {
-
- final String uri = "/v1/auth/context/Test%20Context";
- final String mimeType = "application/json";
- final String expectedResponse =
"{\"context\":{\"name\":\"Test Context\"}}";
-
- new ResourceRequest(Method.PUT, uri)
- {
-
- @Override
- protected void prepareRequest(MockHttpServletRequest request)
- {
- super.prepareRequest(request);
- request.addHeader("Authorization", "Basic ZGVtbzpkZW1v");
// demo:demo
- }
-
- @Override
- protected void onResponse(MockHttpServletResponse response)
- {
- super.onResponse(response);
- assertEquals(response.getStatus(), 201, "Unexpected response
code.");
- }
-
- }.run();
-
- new ResourceRequest(Method.GET, uri)
- {
-
- @Override
- protected void prepareRequest(MockHttpServletRequest request)
- {
- super.prepareRequest(request);
- request.addHeader("Accept", mimeType);
- request.addHeader("Authorization", "Basic ZGVtbzpkZW1v");
// demo:demo
- }
-
- @Override
- protected void onResponse(MockHttpServletResponse response)
- {
- super.onResponse(response);
- assertEquals(response.getStatus(), 200, "Unexpected response
code.");
- assertEquals(response.getContentAsString(), expectedResponse,
"Unexpected response.");
- }
-
- }.run();
- }
-
- // @Test
- // TODO uncomment once JBSEAM-4152 is resolved
- public void noAuthorizationHeaderTest() throws Exception
- {
- new ResourceRequest(Method.GET, "/v1/auth/context")
- {
-
- @Override
- protected void prepareRequest(MockHttpServletRequest request)
- {
- super.prepareRequest(request);
- request.addHeader("Accept", "application/xml");
- }
-
- @Override
- protected void onResponse(MockHttpServletResponse response)
- {
- super.onResponse(response);
- assertEquals(response.getStatus(), 401, "Unexpected response
code.");
- }
-
- }.run();
- }
-
-}
Modified:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ResolvedTaskResourceQueryTest.java
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ResolvedTaskResourceQueryTest.java 2009-05-26
16:46:18 UTC (rev 11006)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ResolvedTaskResourceQueryTest.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -46,7 +46,7 @@
final String mimeType = "application/xml";
final String representation =
"<task><id>14</id></task>";
- new ResourceRequest(Method.PUT, "/v1/auth/context/School/resolved/14")
+ new ResourceRequest(Method.PUT, "/v1/auth/category/School/resolved/14")
{
@Override
Modified:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/TaskResourceTest.java
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/TaskResourceTest.java 2009-05-26
16:46:18 UTC (rev 11006)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/TaskResourceTest.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -42,7 +42,7 @@
final String mimeType = "application/json";
final String representation =
"{\"task\":{\"name\":\"Test task\"}}";
- new ResourceRequest(Method.POST, "/v1/auth/context/School/unresolved")
+ new ResourceRequest(Method.POST, "/v1/auth/category/School/unresolved")
{
@Override
@@ -71,7 +71,7 @@
final String mimeType = "application/xml";
final String representation =
"<task><id>4</id><name>Learn new English
vocabulary</name></task>";
- new ResourceRequest(Method.PUT, "/v1/auth/context/School/unresolved/4")
+ new ResourceRequest(Method.PUT, "/v1/auth/category/School/unresolved/4")
{
@Override
@@ -93,7 +93,7 @@
}.run();
- new ResourceRequest(Method.GET, "/v1/auth/context/School/unresolved/4")
+ new ResourceRequest(Method.GET, "/v1/auth/category/School/unresolved/4")
{
@Override
@@ -118,7 +118,7 @@
@Test
public void deleteTaskTest() throws Exception
{
- new ResourceRequest(Method.DELETE,
"/v1/auth/context/School/unresolved/2")
+ new ResourceRequest(Method.DELETE,
"/v1/auth/category/School/unresolved/2")
{
@Override
Deleted:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/UserFactory.java
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/UserFactory.java 2009-05-26
16:46:18 UTC (rev 11006)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/UserFactory.java 2009-05-26
20:09:24 UTC (rev 11007)
@@ -1,48 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.seam.example.tasks.test;
-
-import org.jboss.seam.annotations.Factory;
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.example.tasks.entity.User;
-import org.jboss.seam.framework.EntityHome;
-
-/**
- * Ugly hack that allows the tests tu run until JBSEAM-4152 is resolved.
- * @author Jozef Hartinger
- *
- */
-
-@Name("userFactory")
-public class UserFactory
-{
-
- @In private EntityHome<User> userHome;
-
- @Factory(autoCreate=true, value="user")
- public User getDemo() {
- userHome.setId("demo");
- return userHome.find();
- }
-
-}
Modified:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/testng.xml
===================================================================
---
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/testng.xml 2009-05-26
16:46:18 UTC (rev 11006)
+++
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/testng.xml 2009-05-26
20:09:24 UTC (rev 11007)
@@ -4,7 +4,7 @@
<test name="Tasks">
<classes>
- <class
name="org.jboss.seam.example.tasks.test.ContextResourceTest"/>
+ <class
name="org.jboss.seam.example.tasks.test.CategoryResourceTest"/>
<class
name="org.jboss.seam.example.tasks.test.TaskResourceTest"/>
<class
name="org.jboss.seam.example.tasks.test.ResolvedTaskResourceQueryTest"/>
</classes>
Copied: branches/community/Seam_2_1/examples/tasks/view/categories.js (from rev 11006,
branches/community/Seam_2_1/examples/tasks/view/contexts.js)
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/categories.js
(rev 0)
+++ branches/community/Seam_2_1/examples/tasks/view/categories.js 2009-05-26 20:09:24 UTC
(rev 11007)
@@ -0,0 +1,30 @@
+$(document).ready(function() {
+ // load category list
+ getCategories(function(data) {
+ $(data).find('category').each(function() {
+ var categoryName = $(this).find('name').text();
+ addCategory(categoryName);
+ });
+ });
+ // create new category on submit
+ $('#editCategorySubmit').click(function(event) {
+ event.preventDefault();
+ var categoryName = $('#editCategoryName').attr('value');
+ putCategory(categoryName, function() {
+ addCategory(categoryName);
+ $('#editCategoryName').attr('value', '');
+ });
+ });
+});
+
+function addCategory(categoryName) {
+ var nameCell = $('<td/>').addClass('name').text(categoryName);
+ var deleteButton = $('<img/>').attr('src',
'img/task-delete.png').attr('title', 'Delete this
category').click(function(event) {
+ event.preventDefault();
+ deleteCategory(categoryName, function() {
+ $('[id=' + categoryName + ']').remove();
+ });
+ });
+ var buttonCell = $('<td/>').append(deleteButton);
+ $('<tr/>').attr('id',
categoryName).append(buttonCell).append(nameCell).appendTo('#categories tbody');
+}
\ No newline at end of file
Property changes on: branches/community/Seam_2_1/examples/tasks/view/categories.js
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: branches/community/Seam_2_1/examples/tasks/view/categories.xhtml (from rev 11006,
branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml)
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/categories.xhtml
(rev 0)
+++ branches/community/Seam_2_1/examples/tasks/view/categories.xhtml 2009-05-26 20:09:24
UTC (rev 11007)
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:h="http://java.sun.com/jsf/html"
+
xmlns:f="http://java.sun.com/jsf/core"
template="template.xhtml">
+
+ <ui:define name="head">
+ <script src="categories.js" type="text/javascript" />
+ </ui:define>
+ <ui:define name="body">
+ <table id="categories">
+ <thead>
+ <tr><td
colspan="2"><h2>Categories</h2></td></tr>
+ </thead>
+ <tbody/>
+ </table>
+
+ <hr />
+
+ <form action="" id="newCategoryForm">
+ <h2>Care for a new category?</h2>
+ <input id="editCategoryName" type="text" />
+ <input id="editCategorySubmit" type="button"
value="Create" />
+ </form>
+ </ui:define>
+</ui:composition>
\ No newline at end of file
Property changes on: branches/community/Seam_2_1/examples/tasks/view/categories.xhtml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: branches/community/Seam_2_1/examples/tasks/view/contexts.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/contexts.js 2009-05-26 16:46:18 UTC
(rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/contexts.js 2009-05-26 20:09:24 UTC
(rev 11007)
@@ -1,30 +0,0 @@
-$(document).ready(function() {
- // load context list
- getContexts(function(data) {
- $(data).find('context').each(function() {
- var contextName = $(this).find('name').text();
- addContext(contextName);
- });
- });
- // create new context on submit
- $('#editContextSubmit').click(function(event) {
- event.preventDefault();
- var contextName = $('#editContextName').attr('value');
- putContext(contextName, function() {
- addContext(contextName);
- $('#editContextName').attr('value', '');
- });
- });
-});
-
-function addContext(contextName) {
- var nameCell = $('<td/>').addClass('name').text(contextName);
- var deleteButton = $('<img/>').attr('src',
'img/task-delete.png').attr('title', 'Delete this
context').click(function(event) {
- event.preventDefault();
- deleteContext(contextName, function() {
- $('#' + contextName).remove();
- });
- });
- var buttonCell = $('<td/>').append(deleteButton);
- $('<tr/>').attr('id',
contextName).append(buttonCell).append(nameCell).appendTo('#contexts tbody');
-}
\ No newline at end of file
Deleted: branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml 2009-05-26 16:46:18 UTC
(rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml 2009-05-26 20:09:24 UTC
(rev 11007)
@@ -1,27 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
-
xmlns:ui="http://java.sun.com/jsf/facelets"
-
xmlns:h="http://java.sun.com/jsf/html"
-
xmlns:f="http://java.sun.com/jsf/core"
template="template.xhtml">
-
- <ui:define name="head">
- <script src="contexts.js" type="text/javascript" />
- </ui:define>
- <ui:define name="body">
- <table id="contexts">
- <thead>
- <tr><td
colspan="2"><h2>Contexts</h2></td></tr>
- </thead>
- <tbody/>
- </table>
-
- <hr />
-
- <form action="" id="newContextForm">
- <h2>Care for a new context?</h2>
- <input id="editContextName" type="text" />
- <input id="editContextSubmit" type="button"
value="Create" />
- </form>
- </ui:define>
-</ui:composition>
\ No newline at end of file
Added: branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js
(rev 0)
+++ branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js 2009-05-26
20:09:24 UTC (rev 11007)
@@ -0,0 +1,19 @@
+/*
+ * jQuery JavaScript Library v1.3.2
+ *
http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ *
http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new
o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return
this}if(typeof E==="string"){var
G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var
I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var
F=o(I||[]);F.context=document;F.selector=E;return F}}else{return
o(H).find(E)}}else{if(o.isFunction(E)){return
o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return
this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return
this.length},get:function(E){return
E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var
G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?"
":"")+E}else{if(!
H){G.selector=this.selector+"."+H+"("+E+")"}}return
G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return
this},each:function(F,E){return o.each(this,F,E)},index:function(E){return
o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof
F==="string"){if(H===g){return
this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return
this.each(function(I){for(F in
E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return
this.attr(E,F,"curCSS")},text:function(F){if(typeof
F!=="object"&&F!=null){return
this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var
E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return
E},wrapAll:function(E){if(this[0]){var
F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(fun!
ction(){var G=this;while(G.firstChild){G=G.firstChild}return G}).appen
d(this)}return this},wrapInner:function(E){return
this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return
this.each(function(){o(this).wrapAll(E)})},append:function(){return
this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return
this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return
this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return
this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return
this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var
F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return
F}else{return this.pushStack(o.unique(o.map(this,function(G){return
o.find(E,G)})),"find",E)}},clone:function(G){var
E=this.map(function(){if(!o.support.no!
CloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var
J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return
o.clean([I.replace(/
jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return
this.cloneNode(true)}});if(G===true){var
H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var
I=o.data(H[F],"events");for(var K in I){for(var J in
I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return
this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return
E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return
F.nodeType===1})),"filter",E)},closest:function(E){var
G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var
H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return
H}H=H.parentNode;F++}})},not:function(E){if(typeof
E==="string"){if(f.test(E)){return this.pu!
shStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,thi
s)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return
this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return
this.pushStack(o.unique(o.merge(this.get(),typeof
E==="string"?o(E):o.makeArray(E))))},is:function(E){return
!!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return
!!E&&this.is("."+E)},val:function(K){if(K===g){var
E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var
I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return
null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var
G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return
L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof
K==="number"){K+=""}return
this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var
N=o.!
makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return
E===g?(this[0]?this[0].innerHTML.replace(/
jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return
this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return
this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return
this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return
this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var
I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var
G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return
this;functi!
on K(N,O){return
M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getEl
ementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function
z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function
e(){return +new Date}o.extend=o.fn.extend=function(){var
J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof
J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof
J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var
F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof
L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return
J};var
b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return
o},isFunction:function(E){return s.call(E)==="[object Function]"}!
,isArray:function(E){return s.call(E)==="[object
Array]"},isXMLDoc:function(E){return
E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var
F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return
F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var
E,H=0,I=G.length;if(F){if(I===g){for(E in
G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E
in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var
J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return
G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof
I==="number"&&G=="curCSS"&&!b.test(E)?!
I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),fun
ction(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?"
":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return
!o.className.has(F,G)}).join(" "):""}},has:function(F,E){return
F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var
E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in
G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var
L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function
I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return
Math.max(0,Math.round(L))}ret!
urn o.curCSS(H,F,J)},curCSS:function(I,F,G){var
L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return
L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var
M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var
J=F.replace(/\-(\w)/g,function(N,O){return
O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var
H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return
L},clean:function(F,K,I){K=K||document;if(typeof
K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof
F[0]==="string"){var
H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var
G=[],E=[],L=K.createElement("di!
v");o.each(F,function(P,S){if(typeof
S==="number"){S+=""}if(!S){return
}if(typeof
S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return
T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var
O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var
Q=!O.indexOf("<opt")&&[1,"<select
multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var
R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var
M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.le!
ngth){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var
J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return
E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var
H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var
F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G
in
J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type
property can't be
changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return
J.getAttributeNode(G).nodeValue}!
if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return
I&&I.spe
cified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return
J[G]}if(!o.support.style&&H&&G=="style"){return
o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var
E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return
E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return
J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return
N.toUpperCase()});if(L){J[G]=K}return
J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var
E=[];if(G!=null){var F=G.length;if(F==null||typeof
G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return
E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}!
return -1},merge:function(H,E){var
F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return
H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var
J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return
F},grep:function(F,J,E){var G=[];for(var
H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return
G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var
I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var
C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/:
]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return
E.parentNode},parents:function(E){return
o.dir(E,"parentNode")},next:function(E){return
o.nth(E,2,"nextSibling")},prev:function(E){retu!
rn o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"n
extSibling")},prevAll:function(E){return
o.dir(E,"previousSibling")},siblings:function(E){return
o.sibling(E.parentNode.firstChild,E)},children:function(E){return
o.sibling(E.firstChild)},contents:function(E){return
o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var
H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return
this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var
J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var
I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return
this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeo!
f
E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return
this.each(F,arguments)}});function j(E,F){return
E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var
h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var
H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return
E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var
H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in
o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete
F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete
o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"q!
ueue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(
H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var
E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var
H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var
F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return
F===g&&H[1]?this.data(H[0]):F}else{return
this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return
this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof
E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return
this.each(function(){var
G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return
this.each(function(){o.dequeue(this,E)})}});
+/*
+ * Sizzle CSS Selector Engine - v0.9.3
+ * Copyright 2009, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information:
http://sizzlejs.com/
+ */
+(function(){var
R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^
>+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var
F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof
Y!=="string"){return ab}var
Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var
ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var
ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax
error, unrecognized expression: "+(ah||Y)!
}if(H.call(ai)==="[object
Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var
aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var
aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var
aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return
ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var
Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var
Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var
U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var
V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var
ab in I.filter){!
if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if
(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var
X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var
ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax
error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var
I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{!
"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return
T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof
T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var
W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var
X=typeof
U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var
V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var
W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var
Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var
V=L++,T=S;if(!U.match(/\W/)){var
X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var
V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var
X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof
V.getElementByI!
d!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NA
ME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var
U=[],X=Y.getElementsByName(V[1]);for(var
W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return
U.length===0?null:U}},TAG:function(T,U){return
U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W="
"+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var
X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&("
"+Y.className+"
").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return
false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var
V=0;T[V]===false;V++){}return
T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var
U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return
T},ATTR:function(X,U,V,T,Y,Z){var
W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]="
"+X[4]+" "}ret!
urn
X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var
W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return
false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return
X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return
T.disabled===false&&T.type!=="hidden"},disabled:function(T){return
T.disabled===true},checked:function(T){return
T.checked===true},selected:function(T){T.parentNode.selectedIndex;return
T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return
!T.firstChild},has:function(V,U,T){return
!!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"sub!
mit"===T.type},image:function(T){return"image"===T.type},reset:functio
n(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return
T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return
T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return
U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return
T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var
U=V[1],X=I.filters[U];if(X){return
X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var
Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return
true}}}},CHILD:function(T,W){var
Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return
false}}if(Z=="first"){return
true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}!
}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return
true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var
X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var
aa=T.nodeIndex-ac;if(V==0){return
aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return
U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return("
"+(U.className||U.getAttribute("class"))+"
").indexOf(T)>-1},ATTR:function(Y,W){var
V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return
T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?("
"+Z+"
").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var
T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var !
M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].sourc
e+/(?![^\[]*\])(?![^\(]*\))/.source)}var
E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return
U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var
U=W||[];if(H.call(X)==="[object
Array]"){Array.prototype.push.apply(U,X)}else{if(typeof
X.length==="number"){for(var
V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return
U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var
V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return
V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var
V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return
V}}else{if(document.createRange){G=function(W,U){var
V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var
X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplic!
ate=true}return X}}}}(function(){var
U=document.createElement("form"),V="script"+(new
Date).getTime();U.innerHTML="<input name='"+V+"'/>";var
T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof
Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return
W?W.id===X[1]||typeof
W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var
X=typeof
Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return
Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var
T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var
X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var
V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a
href='#'></a>";if(T.firstChild&&typeof
T.firstChild.getAttribute!=="undef!
ined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=func
tion(U){return
U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var
T=F,U=document.createElement("div");U.innerHTML="<p
class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return
E(X.querySelectorAll(Y),V)}catch(Z){}}return
T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var
T=document.createElement("div");T.innerHTML="<div class='test
e'></div><div
class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof
V.getElementsByClassName!=="undefined"&&!W){return
V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var
ab=U=="previousSibling"&&!ac;f!
or(var W=0,V=ad.length;W<V;W++){var
T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var
X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function
S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var
W=0,V=ad.length;W<V;W++){var
T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var
X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof
Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var
K=document.compareDocumentPosition?function(U,T){return
U.compareDocumentPosition(T)&16}:function(U,T){return
U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return
T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var
J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.!
match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.rela
tive[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return
F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return
T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return
T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return
o.grep(o.timers,function(U){return
T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return
F.matches(V,T)};o.dir=function(V,U){var
T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return
T};o.nth=function(X,T,V,W){T=T||1;var
U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return
X};o.sibling=function(V,U){var
T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return
T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var
G=H;H=this.proxy(G);!
H.data=K}var
E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return
typeof
o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var
O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var
L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var
G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof
H==="string"&&H.charAt(0)==".")){for(var I in
G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var
Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort(!
).join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete
G[O][J.guid]}else{for
(var P in G[O]){if(N.test(G[O][P].type)){delete
G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in
G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete
G[O]}}})}for(F in G){break}if(!F){var
L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var
G=I.type||I;if(!E){I=typeof
I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return
g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var
J=o.data(H,"handle");if(J){J.apply(H,K)!
}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var
F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var
J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var
L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var
I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var
G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var
F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey
attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey
currentTarget data detail eventPhase fromElement handler keyCode metaK!
ey newValue originalTarget pageX pageY prevValue relatedNode relatedTa
rget screenX screenY shiftKey srcElement target toElement view wheelDelta
which".split(" "),fix:function(H){if(H[h]){return H}var
F=H;H=o.Event(F);for(var
G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var
I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return
H},proxy:function(F,E){E=E||function(){return
F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},s!
pecial:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var
E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return
new
o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function
k(){return false}function u(){return
true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var
E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var
E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagatio!
nStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.
relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return
F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var
E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return
this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return
this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return
this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var
F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return
F.result}},toggle:function(G){var
E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}r!
eturn
this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return
E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return
this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return
this},live:function(G,F){var
E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return
this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return
this}});function c(H){var
E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var
K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return
o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return
G}function i(F,E){return["live",F,E.replace(/!
\./g,"`").replace(/
/g,"|")].join(".")}o.extend({isReady:false,readyLi
st:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var
x=false;function
B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,e!
rror").split(","),function(F,E){o.fn[E]=function(G){return
G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in
o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var
F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new
Date).getTime();K.style.display="none";K.innerHTML='
<link/><table></table><a href="/a"
style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var
H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.st!
yle.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noClo
neEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete
l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var
L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var
w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof
G!=="string"){return this._load(G)}var I=G.indexOf("
");if(I>=0){var E=G.s!
lice(I,G.length);G=G.slice(0,I)}var
H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof
J==="object"){J=o.param(J);H="POST"}}}var
F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return
this},serialize:function(){return
o.param(this.serializeArray())},serializeArray:function(){return
this.map(function(){return
this.elements?o.makeArray(this.elements):this}).filter(function(){return
this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var
G=o(this).val();return
G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o!
.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:fu
nction(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return
o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return
o.get(E,null,F,"script")},getJSON:function(E,F,G){return
o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return
o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return
l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new
XMLHttpRequest()},accepts:{xml:"application/xml,
text/xml",html:"text/html",script:"text/javascript,
application/javascript",json:"application/json,
text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var
W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof
M.data!=="string"){M.dat!
a=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete
l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var
E=e();var
U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var
Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.h!
ost)){var H=document.getElementsByTagName("head")[0];var T=document.cr
eateElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var
O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return
g}var K=false;var
J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu,
01 Jan 1970 00:00:00
GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+",
*/*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return
false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var
N=function(X){if(J.readyState!
==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var
Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var
P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function
I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function
L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxSt!
op")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,
G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return
!F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return
false},httpNotModified:function(G,E){try{var
H=G.getResponseHeader("Last-Modified");return
G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var
F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof
I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return
I},param:function(E){var G=[];function
H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var
F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunctio!
n(E[F])?E[F]():E[F])}}}return
G.join("&").replace(/%20/g,"+")}});var
m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function
t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return
G}o.fn.extend({show:function(J,L){if(J){return
this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var
E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var
G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+"
/>").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var
H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return
this}},hide:function(H,I){if(H){return
this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var
E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G]!
,"olddisplay",o.css(this[G],"display"))}}for(var
G=0,F=this.length;G<F
;G++){this[G].style.display="none"}return
this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof
G==="boolean";return
o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var
H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return
this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return
this[E.queue===false?"each":"queue"](function(){var
K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M
in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return
K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var
R=new
o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var
Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cu!
r(true)||0;if(Q){var
N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return
true})},stop:function(F,E){var
G=o.timers;if(F){this.queue([])}this.each(function(){for(var
H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return
this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return
this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof
G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof
E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};retur!
n E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H
,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return
this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return
E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var
E=this;function F(J){return
E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var
K=o.timers;for(var
J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n)!
;n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var
G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var
E=true;for(var F in
this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var
I in
this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.e!
lem)}return false}else{var J=G-this.startTime;this.state=J/this.option
s.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return
true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return
o.offset.bodyOffset(this[0])}var
G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this!
[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return
o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var
J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{to!
p:N,left:I}}}o.offset={initialize:function(){if(this.initialized){retu
rn}var
L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div
style="position:absolute;top:0;left:0;margin:0;border:5px solid
#000;padding:0;width:1px;height:1px;"><div></div></div><table
style="position:absolute;top:0;left:0;margin:0;border:5px solid
#000;padding:0;width:1px;height:1px;" cellpadding="0"
cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E
in
M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:functi!
on(E){o.offset.initialized||o.offset.initialize();var
G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var
I=0,H=0,F;if(this[0]){var
G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return
F},offsetParent:function(){var
E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return
o(E)}});o.each(["Left","Top"],function(F,E){var
G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return
H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||th!
is[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&docum
ent.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var
E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return
this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return
this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var
J=G.toLowerCase();o.fn[J]=function(K){return
this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof
K==="string"?K:K+"px")}})})();
\ No newline at end of file
Property changes on: branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: branches/community/Seam_2_1/examples/tasks/view/resolved.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/resolved.js 2009-05-26 16:46:18 UTC
(rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/resolved.js 2009-05-26 20:09:24 UTC
(rev 11007)
@@ -45,7 +45,7 @@
function addTask(task) {
var taskId = $(task).find('id').text();
var taskName = $(task).find('name').text();
- var contextName = $(task).find('context').text();
+ var categoryName = $(task).find('category').text();
var taskCompleted = $(task).find('completed').text();
var parent = $('#tasks tbody');
@@ -53,13 +53,13 @@
var completedCell =
$('<td/>').addClass('completed').text(taskCompleted);
var undoButton = $('<img/>').attr('src',
'img/task-undo.png').attr('title', 'Undo this
task').click(function(event) {
event.preventDefault();
- putTask(contextName, taskId, taskName, false, function() {
+ putTask(categoryName, taskId, taskName, false, function() {
$('#' + taskId).remove();
});
});
var deleteButton = $('<img/>').attr('src',
'img/task-delete.png').attr('title', 'Delete this
task').click(function(event) {
event.preventDefault();
- deleteTask(contextName, taskId, true, function() {
+ deleteTask(categoryName, taskId, true, function() {
$('#' + taskId).remove();
});
});
Modified: branches/community/Seam_2_1/examples/tasks/view/seam-tasks-client.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/seam-tasks-client.js 2009-05-26
16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/seam-tasks-client.js 2009-05-26
20:09:24 UTC (rev 11007)
@@ -1,31 +1,31 @@
-function getContexts(callback) {
- $.get("seam/resource/v1/auth/context", callback);
+function getCategories(callback) {
+ $.get("seam/resource/v1/auth/category", callback);
}
-function putContext(contextName, callback) {
+function putCategory(categoryName, callback) {
$.ajax({
type: "PUT",
- url: "seam/resource/v1/auth/context/" + contextName,
+ url: "seam/resource/v1/auth/category/" + categoryName,
contentType: "application/xml",
success: callback
});
}
-function deleteContext(contextName, callback) {
+function deleteCategory(categoryName, callback) {
$.ajax({
type: "DELETE",
- url: "seam/resource/v1/auth/context/" + contextName,
+ url: "seam/resource/v1/auth/category/" + categoryName,
success: callback
});
}
-function getTask(contextName, taskId, taskDone, callback) {
- var URI = escape("seam/resource/v1/auth/context/" + contextName + (taskDone ?
"/resolved" : "/unresolved"));
+function getTask(categoryName, taskId, taskDone, callback) {
+ var URI = escape("seam/resource/v1/auth/category/" + categoryName + (taskDone
? "/resolved" : "/unresolved"));
$.get(URI, callback);
}
-function getTasksForContext(contextName, taskDone, callback) {
- var URI = escape("seam/resource/v1/auth/context/" + contextName + (taskDone ?
"/resolved" : "/unresolved"));
+function getTasksForCategory(categoryName, taskDone, callback) {
+ var URI = escape("seam/resource/v1/auth/category/" + categoryName + (taskDone
? "/resolved" : "/unresolved"));
$.get(URI, function(data) {
callback(data);
});
@@ -39,14 +39,13 @@
});
}
-function postTask(contextName, taskName, callback) {
- var URI = escape("seam/resource/v1/auth/context/" + contextName +
"/unresolved");
+function postTask(categoryName, taskName, callback) {
+ var URI = escape("seam/resource/v1/auth/category/" + categoryName +
"/unresolved");
var data = '<task><name>' + taskName +
'</name></task>';
var request = $.ajax({
type: "POST",
url: URI,
contentType: "application/xml",
- dataType: "application/xml",
data: data,
success: function() {
callback(request.getResponseHeader('Location'));
@@ -54,8 +53,8 @@
});
}
-function putTask(contextName, taskId, taskName, taskDone, callback) {
- var URI = escape("seam/resource/v1/auth/context/" + contextName + (taskDone ?
"/resolved/" : "/unresolved/") + taskId);
+function putTask(categoryName, taskId, taskName, taskDone, callback) {
+ var URI = escape("seam/resource/v1/auth/category/" + categoryName + (taskDone
? "/resolved/" : "/unresolved/") + taskId);
var data = '<task><id>' + taskId + '</id><name>'
+ taskName + '</name></task>'
$.ajax({
type: "PUT",
@@ -68,12 +67,11 @@
});
}
-function deleteTask(contextName, taskId, taskDone, callback) {
- var URI = escape("seam/resource/v1/auth/context/" + contextName + (taskDone ?
"/resolved/" : "/unresolved/") + taskId);
+function deleteTask(categoryName, taskId, taskDone, callback) {
+ var URI = escape("seam/resource/v1/auth/category/" + categoryName + (taskDone
? "/resolved/" : "/unresolved/") + taskId);
$.ajax({
type: "DELETE",
url: URI,
- dataType: "application/xml",
success: callback
});
}
\ No newline at end of file
Modified: branches/community/Seam_2_1/examples/tasks/view/style.css
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/style.css 2009-05-26 16:46:18 UTC (rev
11006)
+++ branches/community/Seam_2_1/examples/tasks/view/style.css 2009-05-26 20:09:24 UTC (rev
11007)
@@ -84,10 +84,10 @@
}
#rightPanel {
- width: 280px;
- margin-top: 30px;
- margin-right: 20px;
+ width: 270px;
+ margin: 30px 30px 0px 0px;
float: right;
+ text-align: justify;
}
table td.name {
@@ -102,7 +102,7 @@
color: #899ea6;
}
-#newTask, #newContextForm {
+#newTask, #newCategoryForm {
margin: 10px 20px 10px 20px;
}
Modified: branches/community/Seam_2_1/examples/tasks/view/tasks.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/tasks.js 2009-05-26 16:46:18 UTC (rev
11006)
+++ branches/community/Seam_2_1/examples/tasks/view/tasks.js 2009-05-26 20:09:24 UTC (rev
11007)
@@ -1,37 +1,37 @@
$(document).ready(function() {
- printContexts();
+ printCategories();
$('#editTaskSubmit').click(function() {
var name = $('#editTaskName').val();
- var contextName = $('#editTaskContext').val()
- postTask(contextName, name, function(location) {
+ var categoryName = $('#editTaskCategory').val()
+ postTask(categoryName, name, function(location) {
$('#editTaskName').val('');
$.get(location, function(data) {
- addTask($(data).find('task'), contextName);
+ addTask($(data).find('task'), categoryName);
});
});
});
});
-function showTaskEditForm(contextName, taskId) {
- var contexts = $('#editTaskContext').clone();
- $(contexts).find('[value=' + contextName + ']').attr('selected',
'selected');
+function showTaskEditForm(categoryName, taskId) {
+ var categories = $('#editTaskCategory').clone();
+ $(categories).find('[value=' + categoryName +
']').attr('selected', 'selected');
var taskName = $('#' + taskId + " .name").text();
var name = $('<input/>').attr('type',
'text').addClass('nameField').val(taskName);
var update = $('<input/>').attr('type',
'button').attr('id',
'update').val('Update').click(function() {
- var newContextName = $(contexts).val();
+ var newCategoryName = $(categories).val();
var callback = function(data) {
removeTaskEditForm(taskId, taskName);
- if (contextName == newContextName) {
+ if (categoryName == newCategoryName) {
updateTaskNameOnUI(taskId, data); // just update the name
} else {
- $('#' + taskId).remove(); // add the task into new context
- addTask(data, newContextName);
+ $('#' + taskId).remove(); // add the task into new category
+ addTask(data, newCategoryName);
}
}
- putTask(newContextName, taskId, $(name).val(), false, callback);
+ putTask(newCategoryName, taskId, $(name).val(), false, callback);
});
- var form = $('<form/>').attr('id',
'updateTask').append(contexts).append(name).append(update);
+ var form = $('<form/>').attr('id',
'updateTask').append(categories).append(name).append(update);
$('#' + taskId + ' .name').replaceWith(form);
}
@@ -39,56 +39,56 @@
$('#' + taskId + '
form').replaceWith($('<span/>').addClass('name').text(taskName));
}
-function printContexts() {
- getContexts(function(data) {
- $(data).find('context').each(function() {
- addContext($(this));
+function printCategories() {
+ getCategories(function(data) {
+ $(data).find('category').each(function() {
+ addCategory($(this));
});
});
}
-function addContext(context) {
- var contextName = $(context).find('name').text();
- var escapedContextName = escape(contextName);
- var contextCell = $('<td/>').attr('colspan',
'2').addClass('name').text(contextName);
- var contextRow = $('<tr/>').attr('id',
contextName).append(contextCell);
- $('#contexts tbody').append(contextRow).appendTo('#contexts');
- $('<option/>').attr('value',
contextName).text(contextName).appendTo('#editTaskContext');
- getTasksForContext(contextName, false, function(data) {
+function addCategory(category) {
+ var categoryName = $(category).find('name').text();
+ var escapedCategoryName = escape(categoryName);
+ var categoryCell = $('<td/>').attr('colspan',
'2').addClass('name').text(categoryName);
+ var categoryRow = $('<tr/>').attr('id',
categoryName).append(categoryCell);
+ $('#categories tbody').append(categoryRow).appendTo('#categories');
+ $('<option/>').attr('value',
categoryName).text(categoryName).appendTo('#editTaskCategory');
+ getTasksForCategory(categoryName, false, function(data) {
$(data).find('task').each(function() {
- addTask($(this), contextName);
+ addTask($(this), categoryName);
});
});
}
-function addTask(task, contextName) {
+function addTask(task, categoryName) {
var taskId = $(task).find('id').text();
var taskName = $(task).find('name').text();
- var parent = $('[id=' + contextName + ']');
+ var parent = $('[id=' + categoryName + ']');
var nameCell =
$('<td/>').append($('<span/>').addClass('name').text(taskName));
var doneButton = $('<img/>').attr('src',
'img/task-done.png').attr('title', 'Resolve this
task').click(function(event) {
event.preventDefault();
- putTask(contextName, taskId, taskName, true, function() {
+ putTask(categoryName, taskId, taskName, true, function() {
$('#' + taskId).remove();
});
});
var editButton = $('<img/>').attr('src',
'img/task-edit.png').attr('title', 'Edit this
task').click(function(event) {
event.preventDefault();
if ($('#' + taskId + ' #updateTask').size() == 0) {
- showTaskEditForm(contextName, taskId);
+ showTaskEditForm(categoryName, taskId);
} else {
removeTaskEditForm(taskId, taskName);
}
});
var deleteButton = $('<img/>').attr('src',
'img/task-delete.png').attr('title', 'Delete this
task').click(function(event) {
event.preventDefault();
- deleteTask(contextName, taskId, false, function() {
+ deleteTask(categoryName, taskId, false, function() {
$('#' + taskId).remove();
});
});
var buttonCell =
$('<td/>').append(doneButton).append(editButton).append(deleteButton);
- $('<tr/>').attr('id',
taskId).append(buttonCell).append(nameCell).insertAfter('[id=' + contextName +
']');
+ $('<tr/>').attr('id',
taskId).append(buttonCell).append(nameCell).insertAfter('[id=' + categoryName +
']');
}
function updateTaskNameOnUI(taskId, task) {
Modified: branches/community/Seam_2_1/examples/tasks/view/tasks.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/tasks.xhtml 2009-05-26 16:46:18 UTC
(rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/tasks.xhtml 2009-05-26 20:09:24 UTC
(rev 11007)
@@ -11,7 +11,7 @@
</ui:define>
<ui:define name="body">
- <table id="contexts">
+ <table id="categories">
<thead>
<tr>
<td colspan="2"><h2>Yet, unresolved
tasks.</h2></td>
@@ -22,7 +22,7 @@
<hr/>
<form id="newTask">
<h2>Create new task</h2>
- <select id="editTaskContext" /> <input
id="editTaskName" type="text" />
+ <select id="editTaskCategory" /> <input
id="editTaskName" type="text" />
<input id="editTaskSubmit" type="button"
value="Create" />
</form>
</ui:define>
Modified: branches/community/Seam_2_1/examples/tasks/view/template.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/template.xhtml 2009-05-26 16:46:18 UTC
(rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/template.xhtml 2009-05-26 20:09:24 UTC
(rev 11007)
@@ -9,9 +9,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" />
<title>Seam Tasks</title>
- <script
-
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js&q...
- type="text/javascript" />
+ <script src="jquery-1.3.2.min.js"
type="text/javascript" />
<script src="seam-tasks-client.js"
type="text/javascript" />
<link href="style.css" rel="stylesheet"
type="text/css" />
<ui:insert name="head" />
@@ -23,7 +21,7 @@
<s:div rendered="#{identity.loggedIn}">
<ul id="menu">
<li><a
href="tasks.seam">Tasks</a></li>
- <li><a
href="contexts.seam">Contexts</a></li>
+ <li><a
href="categories.seam">Categories</a></li>
<li><a href="resolved.seam">Resolved
tasks</a></li>
<li>
<s:link id="menuLogoutId"
action="#{identity.logout}" value="Logout"
propagation="none" />