#56: Nested navigation widgets are rendered in wrong order
---------------------------------------+------------------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: defect | Status: new
Priority: low | Milestone: 0.2
Component: weblocks | Version: pre-0.1
Keywords: navigation stylesheet css |
---------------------------------------+------------------------------------
Nested navigation widgets are rendered in unintuitive order. By default we
should style navigation widgets in a way that would be intuitive to the
user.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/56>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#17: Create a script that automates starting new weblocks projects
---------------------------------+------------------------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: enhancement | Status: new
Priority: high | Milestone: 0.1
Component: weblocks | Version: pre-0.1
Keywords: script new projects |
---------------------------------+------------------------------------------
We should create a script that automates the process of starting a new
weblocks project. It should create required fileset (asdf, 'init-user-
session' template, copy over stylesheets, etc.) Usage of the script should
be documented in the manual.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/17>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#10: When a widget is being modified, move focus to that control and change page
title
-----------------------------------------------------+----------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: enhancement | Status: new
Priority: low | Milestone: 0.1
Component: weblocks | Version: pre-0.1
Keywords: accessibility focus widget change title |
-----------------------------------------------------+----------------------
If a page has a number of widgets and a particular action causes some
widget to change, that widget should receive focus (via JS for ajax, and
via anchor otherwise) to ease the pain for users with screenreaders. Also,
page title should change to a phrase that describes the current state of
the widget in question.
We need to think of what to do when multiple widgets change on the page.
Perhaps the most likely solution is not to set focus/title in such cases,
or set a title that describes state of all widgets.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/10>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#14: Standardize fonts accross browsers and OSes (perhaps via Yahoo Font CSS?)
--------------------------------------+-------------------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: enhancement | Status: new
Priority: low | Milestone: 0.1
Component: weblocks | Version: pre-0.1
Keywords: fonts yahoo css standard |
--------------------------------------+-------------------------------------
Currently default weblocks styles for fonts look different on various
browsers and OSes. While there is no perfect solution, Yahoo provides a
CSS that alleviates some of these problems. We should look into using it.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/14>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#40: Rename gridedit widget to a more fitting name
-----------------------------+----------------------------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: enhancement | Status: new
Priority: low | Milestone: 0.1
Component: weblocks | Version: pre-0.1
Keywords: rename gridedit |
-----------------------------+----------------------------------------------
Gridedit doesn't seem to be a good name. We need to find a better name for
gridedit widget.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/40>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#55: Fix issues related to adding items to gridedit with JS turned off
----------------------------------------------+-----------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: defect | Status: new
Priority: medium | Milestone: 0.1
Component: weblocks | Version: pre-0.1
Keywords: gridedit javascript off addition |
----------------------------------------------+-----------------------------
When !JavaScript is turned off, dataform widget in add-item function of
gridedit doesn't behave correctly. Gridedit creates a new dataform widget
with every request so any validation errors and intermediate input fields
aren't properly displayed.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/55>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#19: Extra tags div currently uses contents which makes unstyled pages
look unattractive
----------------------------+-----------------------------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: defect | Status: new
Priority: low | Milestone: 0.1
Component: weblocks | Version: pre-0.1
Keywords: extra tags div |
----------------------------+-----------------------------------------------
Weblocks places extra HTML tags in many places in order to allow for
styling hooks. Currently the tags have contents which make the page
look unattractive when it's unstyled. Additionally this is incorrent -
there should be no contents in those tags. A comment <!-- empty --> should
be sufficient.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/19>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#15: Fix friendly URLs and form actions in W3M
-------------------------------------------+--------------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: defect | Status: new
Priority: high | Milestone: 0.1
Component: weblocks | Version: pre-0.1
Keywords: w3m friendly URL form actions |
-------------------------------------------+--------------------------------
Currently form actions and friendly URLs appear to be broken in W3M. W3M
seems to handle absolute links differently from other browsers which
appears to be the root of the problem.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/15>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#45: Don't use gensym for actions to avoid XSS attacks
-----------------------+----------------------------------------------------
Reporter: anonymous | Owner: sakhmechet
Type: defect | Status: new
Priority: critical | Milestone:
Component: weblocks | Version:
Keywords: security |
-----------------------+----------------------------------------------------
gensym-based action urls can be guessed and thus the following attack is
possible:
A user has his weblock-based bank system open. In gmail, the user gets a
link to a web-page that will generate lots of guessed action urls that
transfers funds out of the users bank account.
Ways to fix:
1. Require session id in URLs[[BR]]
2. Or, generate stronger non-gensym based action ids
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/45>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#29: Refactor form and input markup into snippets
------------------------------------------+---------------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: enhancement | Status: new
Priority: medium | Milestone: 0.1
Component: weblocks | Version: pre-0.1
Keywords: refactor form markup snippet |
------------------------------------------+---------------------------------
Currently various widgets output form and input markup manually. We should
refactor this functionality into snippets and convert existing widgets to
use the snippets.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/29>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#24: 'Blocks' should be renamed to 'snippets'
------------------------------------+---------------------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: enhancement | Status: new
Priority: low | Milestone: 0.1
Component: weblocks | Version: pre-0.1
Keywords: blocks snippets rename |
------------------------------------+---------------------------------------
A 'block' is a bad name. A 'snippet' is much better. We should rename
blocks to snippets.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/24>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#34: Sanitize input to prevent cross-site scripting and SQL injection
---------------------------------------------------------+------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: defect | Status: new
Priority: high | Milestone: 0.1
Component: weblocks | Version: pre-0.1
Keywords: cross-site scripting SQL injection sanitize |
---------------------------------------------------------+------------------
We should sanitize form input to prevent cross-site scripting and SQL
injection. Sanitation should ideally be done in a centralized place (in
particular, request-object-mapping).
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/34>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#16: Make page titles dynamic (perhaps based on the navigation widget)
-----------------------------------+----------------------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: enhancement | Status: new
Priority: medium | Milestone: 0.1
Component: weblocks | Version: pre-0.1
Keywords: page title navigation |
-----------------------------------+----------------------------------------
Currently page title is hardcoded in the 'with-page' function. We should
make page titles dynamic. The should probably come from the navigation
widget.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/16>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#12: Make stylesheet and javascript requirements dynamic
---------------------------------------------------------+------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: enhancement | Status: new
Priority: high | Milestone: 0.1
Component: weblocks | Version: pre-0.1
Keywords: harcoded stylesheet javascript requirements |
---------------------------------------------------------+------------------
Currently stylesheet and javascript requirements are hardcoded in the
'with-page' function. The only way for users to override this is to
redefine the function. We need to make these requirements configurable,
and widgets should be able to register files that they require.
Additionally, some form of dependecy graph or priority system needs to be
implemented (order matters since some stylesheets override others).
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/12>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#51: Make debug toolbar a part of the regular flow
---------------------------+------------------------------------------------
Reporter: anonymous | Owner: sakhmechet
Type: enhancement | Status: new
Priority: low | Milestone: 0.2
Component: weblocks | Version: pre-0.1
Keywords: debug toolbar |
---------------------------+------------------------------------------------
Currently debug toolbar is rendered via a specialized code path in
'render-page'. The function that renders the toolbar presents no
opportunity for extensibility. We need to generalize the code to make the
debug toolbar a widget that's added as a part of regular flow.
Additionally, the widget should open itself for user extensibility.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/51>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#49: Bad type declaration for (or bad initialization of) STATE slot in US-STATE
-----------------------+----------------------------------------------------
Reporter: anonymous | Owner: sakhmechet
Type: defect | Status: new
Priority: low | Milestone:
Component: weblocks | Version:
Keywords: |
-----------------------+----------------------------------------------------
In the US-STATE class definition it is asserted that the slot STATE will
only hold values of type STRING. There is a US-STATE method which passes
NIL as a value to initialize STATE.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/49>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#46: Use css sprites to improve latency of default style
-----------------------------------------+----------------------------------
Reporter: anonymous | Owner: sakhmechet
Type: defect | Status: new
Priority: wishlist | Milestone:
Component: weblocks | Version:
Keywords: latency performance css png |
-----------------------------------------+----------------------------------
The default page will load 33 pngs. A lot of these average at around 200-
300 bytes in size. Using CSS sprites can improve latency and the feel of
a weblocks application a lot.
I am measuring around 2s load time using firebug on the default weblocks-
demo page.
My guess is that CSS sprites can shave off around .5 seconds.
How to reproduce:
{{{
(require :weblocks-demo)
(weblocks:start-server)
}}}
In firefox, install firebug.
Enable firebug for your site.
Do a "shift-reload" (holding shift down while doing a reload) to do a
fresh load of the front-page. Inspect the "Net" tab in firebug to get a
timeline.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/46>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#47: combine js and css files to improve latency of default style
---------------------------------------------------+------------------------
Reporter: anonymous | Owner: sakhmechet
Type: enhancement | Status: new
Priority: wishlist | Milestone:
Component: weblocks | Version:
Keywords: latency performance css javascript js |
---------------------------------------------------+------------------------
Latency of the default page could be improved a lot by combining the js-
files into one file. The weblocks-demo default page loads 5 js files.
These loads are serialized and it takes 1.2 seconds to load all of the JS.
Making sure only necessary files are loaded (ticket #16) can be combined
with this ticket by creating a cache of combinations of js-files that are
required for a given page.
The same applies to CSS. 11 CSS files are being used. Firefox loads them
serially, spending roughly 0.7 seconds on this.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/47>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#18: Create a default page for weblocks server
--------------------------+-------------------------------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: defect | Status: new
Priority: high | Milestone: 0.1
Component: weblocks | Version: pre-0.1
Keywords: default page |
--------------------------+-------------------------------------------------
Currently when weblocks server starts up and no application is defined
weblocks displays an Error 500. We should create a default welcome page
with basic links and instructions on how to proceed. Manual should be
updated accordingly.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/18>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#11: Make the path to files that needs to be accessible via the webserver
configurable
---------------------------------+------------------------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: defect | Status: new
Priority: critical | Milestone: 0.1
Component: weblocks | Version: pre-0.1
Keywords: hardcoded directory |
---------------------------------+------------------------------------------
Currently the path to public files (stylesheets, !JavaScript code, images,
etc.) is hard coded. This gives a bad impression when framework is first
obtained and needs to be fixed.
Ideally we should standardize on how ASDF sets the current directory and
determine the path automatically. We should also make this configurable so
users can set this directory to their own liking.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/11>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#43: Consider resetting state of widgets when moving accross navigation
-------------------------------------------+--------------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: enhancement | Status: new
Priority: low | Milestone: 0.2
Component: weblocks | Version: pre-0.1
Keywords: reset widget state navigation |
-------------------------------------------+--------------------------------
Currently if a state of a widget's UI is changed on one page, then
navigation state is changed to another page, and moved back to the
original page, the UI of the widget will not be reset. This may or may not
be counter-intuitive to the user. We should consider resetting UI state of
widgets when moving accross navigation.
This may be related to ticket #22. In particular, if we choose to garbage
collect widgets when moving accross navigation, we'll have to
reinstantiate widgets, thereby resetting them.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/43>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#41: Design authentication and permissions mechanism
--------------------------------------------------+-------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: defect | Status: new
Priority: medium | Milestone: 0.2
Component: weblocks | Version: pre-0.1
Keywords: authentication permissions mechanism |
--------------------------------------------------+-------------------------
Currently Weblocks provides no mechanism for authentication and
permissions. We should devise such a mechanism, make it reasonably
flexible, and integrate it with the rest of the framework.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/41>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#39: Allow item selection in datagrid beyond current page
--------------------------------------------+-------------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: enhancement | Status: new
Priority: medium | Milestone: 0.2
Component: weblocks | Version: pre-0.1
Keywords: datagrid selection beyond page |
--------------------------------------------+-------------------------------
Currently if the user makes a search for some items, selects an item, and
modifies the search, the selected item disappears. Similarly, when 'all'
is clicked there is no way to select all items beyond the current page
(like in Gmail). We should design and add functionality to make this
possible (designing a UI for this that isn't confusing is very tricky, so
pushed to 0.2)
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/39>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#38: Highlight selected rows in datagrid
----------------------------------------------+-----------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: enhancement | Status: new
Priority: low | Milestone: 0.2
Component: weblocks | Version: pre-0.1
Keywords: highlight row datagrid selection |
----------------------------------------------+-----------------------------
In datagrid, when a row/item is selected we should attempt to highlight
the row. We can do this via !JavaScript, or an AJAX callback to the server
to mark the item as selected.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/38>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks
#31: Use widget names to render headings markup to improve accessibility
-------------------------------------------+--------------------------------
Reporter: sakhmechet | Owner: sakhmechet
Type: enhancement | Status: new
Priority: medium | Milestone: 0.2
Component: weblocks | Version: pre-0.1
Keywords: headings accessibility markup |
-------------------------------------------+--------------------------------
We should take advantage of widget names whenever they are provided to
render headings markup that should improve accessibility. Lack of headings
makes navigation very hard for users with screen readers.
--
Ticket URL: <http://trac.common-lisp.net/cl-weblocks/ticket/31>
cl-weblocks <http://common-lisp.net/project/cl-weblocks>
cl-weblocks