Git Product home page Git Product logo

ui_alchemy-rails's People

Contributors

abenari avatar bbuckingham avatar ehelms avatar hbrock-redhat avatar ifarkas avatar jcoufal avatar jeckersb avatar jlsherrill avatar jsomara avatar knowncitizen avatar mbacovsky avatar mccun934 avatar n1zyy avatar parthaa avatar xsuchy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ui_alchemy-rails's Issues

Add Responsive Pretty View to Tables

Notes:

  • All haml as the same view - no more distinction that the customer can invoke.
  • CSS media queries for density, collapsing and breaking into blocks
  • Use js to detect the fold or number of items in a set: maybe go with a few simple rules
  • js for counting the number of rows and
  • Classing on a threshold .blocks (less than 12 rows)
    http://codepen.io/andyfitz/pen/LIwKi

Responsive Design

This is to track the discussion around responsive design elements.

Buttons

This is to track the discussion and design of buttons.

Header Updates

This is to track the discussion of updates for the header.

Modernizr

This is to track the discussion of the addition of Modernizr.

Renaming project

Discussion about possible cool names for Converge-UI. Since we want to have it as an independent upstream project, Converge-UI doesn't work that well.

We are also looking for name for our online guide (web where are presented components and related information). Or will it be just .......-web (-guide)?

Login and Password resets workflow proposal

So as Conductor demands to work with or without javascript, I would like to propose
some changes in the converge-ui login views and layouts. Unfortunatelly these changes also
require some work in Katello to be done. But overall I think this will lead to better solution
then we have now.

The basic idea is to get rid of the converge-ui's login_layout.html.haml and separate
the forms into partials which would be then rendered in corresponding views. So the
converge-ui changes would be following:

Organize views:

  • instead of login_layout.html.haml create separate partials for each
    form (action) eg. converge-ui/rails/views/partials/_user_sessions_new.haml.haml.
  • we can remove the get_string helpers as it will not be necessaryas we can
    provide the translated strings as locals in rendering the partial (see below)

In Conductor/Katello we'll have converge-ui symlinks:

app/views/layouts/converge-ui/_user_sessions_new.html.haml
app/views/layouts/converge-ui/_password_resets_new.html.haml
app/views/layouts/converge-ui/_password_resets_edit.html.haml
app/views/layouts/converge-ui/_login_retrieval_new.html.haml
app/views/layouts/converge-ui/_user_session_layout.html.haml

The example of partial(_user_sessions_new.html.haml):

= content_for(:content) do
  .card#user_sessions_new
    = form_tag path, :id => 'login_form', :method => "post", :remote=>true do
      %fieldset.primary
        = label_tag :username, username_string
        = text_field_tag :username, params[:username], :class => 'username', :id => "username"
      %fieldset.primary
        = label_tag :password, password_string
        = password_field_tag :password, params[:password], :class => 'password', :id => 'password-input'
      %div.group.secondary_actions
        %span
          = login_password_retrieval_string
      = submit_tag login_submit_string, :class => "button fr", :id => 'login_btn'
      .spinner

The get_string() calls are substituted by local variables which are passed
when rendering the partial.

With these changes, we can use the following "cascaded" views structure for the login:

Restful user_sessions#new action renders app/views/user_sessions/new.html.haml

render :partial => "layouts/converge-ui/user_sessions_new", :locals => { :form_path => user_session_path, :password_string => t("user_sessions.password") }

the view will be rendered with layout "login" which is Conductor's own and is specified in controller.

app/views/layouts/login.html.haml - Conductor's layout that includes contents_for head with styles, js, login_logo, title, notifications etc. that are common for all the login views.

...
render :partial => "layouts/converge-ui/user_session_layout", :locals => {:no_script_string => t("noscript_warning")})

app/views/layouts/converge-ui/user_session_layout.html.haml

...
render :partial => "layouts/converge-ui/base"

Restful Controllers structure:

UserSessionsController

before_filter :require_no_user, :only => [:new, :create]
before_filter :require_user, :only => :destroy
layout "login"

new - displays login form

create - authenticate user and either redirects to root_url

       or renders #new with error

destroy - destroy

PasswordResetsController

layout "login"
before_filter :require_no_user

new - displays password reset form

create - sends the email with reset link if email and username

      matches, redirects to user_sessions#new with success notice

edit - checks for user with password_token and if it's not timed out:

      redirect_to user_sessions#new with notice || displays password
      reset form

update - checks for user with password_token and if it's not timed out,

      updates the user (logs him in) and redirects to root_url with
      the reset successful message

**LoginRetrievalsController*

layout "login"
before_filter :requires_no_user

new - displays usernames retrieval form

create - sends the email with usernames related to given email

      and redirects to user_sessions#new with success notice

PROS & CONS:

  • we get nice restful solution ready to support js and non-js responses
  • get rid of the get_string() method and related helpers, it will not matter
    which translation solution we use.
  • Katello will have to update it's solution to changes done in converge-ui

Progress Bar

This is to discuss alternatives to jQuery UI progress bar.

Helper Classes

Tracking the discussion and addition of helper classes.

menu navigation system needed

Like Katello, a hierarchical navigation system is needed. When visiting a page, it is useful to have some form of nav system. For example here on github you'll see Code, Network, Pull Requests,... and then once clicking there you'll see the next level of hierarchy (Issues -> Browse Issues, Milestones), and even a third level (eg. in new issue there is Write and Preview).

Selecting a nav level should update either the URL or a breadcrumb system.

Unlike Katello's, having the menus dynamic is preferable. This allows customization of what is shown to be modified at runtime and not just at server restart.

Variables

This issue is created for us to specify notation and unified rules of creating and referring variables across multiple UI components.

Notifications Center / event logs View

The header for katello will have the total of unread events
Clicking the header notofication number should mark all the notifications displayed on that page as read.

The header for conductor will include an additional sticky messages factor for notifications that require acknowledging in some way.

This would be displayed as [ 9 ] -of- [ 40 ] for example where clicking either will take you to to the notification centre

Implementation for existing UI

We will style the katello notification list and conductor event log to use the same table class

<table class="notifications">  
  <tr class="error">
    <td class="date">05:02 on 29-08-2012 ....
    <td class="description"> Something failed  ? ...
    <td class="actions">
      <a class="btn accept">restart </a>
      <a class="btn delete ">delete </a> ...
  </tr>
</table>

datestamp will get a reduced visual priority while the status class on the TR will style the event

Header Notifications

"The header for katello will have the total of unread events
Clicking the header notofication number should mark all the notifications displayed on that page as read.

The header for conductor will include an additional sticky messages factor for notifications that require acknowledging in some way.

This would be displayed as [ 9 ] -of- [ 40 ] for example where clicking either will take you to to the notification centre" - @andyfitz

Mixins

  • Rework current SCSS files so that they use Compass mixins (especially for CSS3 features).
  • For future files, keep using Compass
  • Create new mixin only if it is not covered by Compass library,
  • Document all mixins which are available for us to use

(Compass documentation http://compass-style.org/reference/compass/)

Tables

This is to track the addition of tables as a feature within ConvergeUI.

Select Box

This is to discuss ideas around a JS-enhanced select box.

File Chooser

This is to discuss ideas around a JS-enhanced file chooser.

Date Picker

This is to discuss ideas around a JS-enhanced datepicker.

Dialog

This is to discuss alternatives to jQuery UI dialog.

Multiple Select

This thread is to discuss possibilities for a JS-enhanced multi-select form input.

Requirements Tracking

Originally posted by Tzu-Mainn Chen:

"Hi,

I was wondering if it would be practical to have requirements-level documentation published somewhere for the great amount of converge-ui work coming up. It would ensure that everyone was on the same page, and also give a good starting point for outsiders like myself to find answers to questions, and possibly raise concerns.

For example, on Friday, Andy showed some really nice tab navigation, and true to my contrary nature, I spent five minutes figuring out how to ask where the subnavigation would go (I had thought that the tabs would be dropdowns). He was kind enough to explain the answer to me, but I'm guessing it would have been easier for everyone involved if I had been told to RTFM.

I don't think it would have to be anything too detailed; something along the lines of the text here, without the HAML on top:

http://convergeui.readthedocs.org/en/latest/resources/layouts.html

I dunno, what do people think?

Thanks,
Tzu-Mainn Chen"

Resizable

This is to discuss the addition of a JS-library to handle resizing of components.

First-use interactive tours

So I was thinking "wouldn't it be nice if we could just print a regular html ordered list of useful tips as a first-use tour for conductor/katello and have it progressively enhance until it was a full fledged tour system.

Turns out someone had that idea first.
http://www.zurb.com/playground/jquery-joyride-feature-tour-plugin

It's a very good implementation. I'm thinking we should loot it completely and only strip out the css to replace with our own (button/message style).

Take it from an Aussie, there is no shame in stealing.

Long Text and Ellipsis

A common problem on dense/complex web application's is that long names don't fit in the spaces they set for them. The natural approach is to ellipsis text up to a point and provide a tooltip that displays the missing text. While CSS3 and thus some browsers supports this for single-line text, a mechanism needs to be provided to in an intelligent way use CSS and JavaScript to ellipsis text for multiple lines and instantiate a tooltip only when text has an ellipsis.

Header Tab Updates

The tabs need an updated styling that will be reflected as part of the header update work. These tab updates should still support the optional configuration of having a 'context switcher' due to the Katello requirement for the ability to switch organizations.

rubygem-alchemy fails to build on Fedora 17

DEBUG util.py:257:  Error: Package: rubygem-alchemy-1.0.0-1.git.0.c319a39.fc17.noarch (build)
DEBUG util.py:257:             Requires: rubygem(compass) < 0.12.0
DEBUG util.py:257:             Installing: rubygem-compass-0.12.2-2.fc17.noarch (build)
DEBUG util.py:257:                 rubygem(compass) = 0.12.2

Range Input

This is to discuss a JS-enhanced range input.

Number Input

This is to discuss a JS-enhanced number input.

Stateful Classes

Notes:

  • Started / starting as pulse animation ( wont work in ie but acceptable )
  • red border - some problems?
  • red border flashing - some problems happening right now
  • red background white text - massive
  • black background white text represents a blocker maybe?

Grid Systems

This is to track the addition of a grid system.

Typography

This is to track addition and updates to typography.

Animation classes

http://codepen.io/andyfitz/pen/DdjoK

They do not stack (as in you cannot do .spin-forever.pulse )

useful for declaring what nice animation you would like upon introduction of an element.

.fade-down would be useful for almost all our disclosures like the notification stack.

these shouldn't be done with JS implementations as animations are only nice to have an not essential

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.