Giter VIP home page Giter VIP logo

lu's Introduction

                                                  _____            _____          
                                                 /\    \          /\    \         
                                                /::\____\        /::\____\        
                                               /:::/    /       /:::/    /        
                                              /:::/    /       /:::/    /         
                                             /:::/    /       /:::/    /          
                                            /:::/    /       /:::/    /           
                                           /:::/    /       /:::/    /            
                                          /:::/    /       /:::/    /      _____  
                                         /:::/    /       /:::/____/      /\    \ 
                                        /:::/____/       |:::|    /      /::\____\
                                        \:::\    \       |:::|____\     /:::/    /
                                         \:::\    \       \:::\    \   /:::/    / 
                                          \:::\    \       \:::\    \ /:::/    /  
                                           \:::\    \       \:::\    /:::/    /   
                                            \:::\    \       \:::\__/:::/    /    
                                             \:::\    \       \::::::::/    /     
                                              \:::\    \       \::::::/    /      
                                               \:::\____\       \::::/    /       
                                                \::/    /        \::/____/        
                                                 \/____/          ~~

                                     

##To start contributing:##

  1. Fork Lu
  2. Install Node
  3. Install PhantomJS.
  4. In a terminal from the Lu directory:$npm install
  5. In a new terminal from the Lu directory:$npm start

Before making pull requests test and lint your code! See our test directory for test examples. Run $grunt lint and $grunt qunit.

To build Lu run: $grunt build while the Lu server is is running.

lu's People

Contributors

brendean avatar drewlee avatar iheartweb avatar jakobo avatar jimgskoop avatar krisk avatar mattpowell avatar neborn avatar zackthehuman avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lu's Issues

Refactor Parser

The parser should allow developers to pre load required components before execution.
The paser should relay on Jquery to do deep dom traversals.

Alert Control

build an alert control; also merge together Container, Loader, and Tip

JS Code
HTML examples
Functional completeness
Documentation + Example in Primer
Unit testing (work with Kiro)

Consolidate Container and Loader

Container should be merged with loader. Container should additionally take a content setting. This setting should accept either a string or a URL. If it is a URL the content should be a-synced in and then an Iframe should be created with the height and width of the container and a src of the url. If the setting is a string, it should be escaped and then injected into the container.

Whenever content is injected, the container should set it's height/width to the contents height/width unless already specified w/CSS.

Also, keep in mind that the container should be as generic as possible. It's instances should respond to use case specific events and apply styles.

Yay! Root Canals are awesome.

Buttons are Broken

Buttons seem to have stopped working. A Next button doesn't seem to trigger a "next" event, nor does a Select button trigger a "select" event. Investigating.

CSS Classes During init

Since Athena uses CSS for its hooks throughout, can we add classes to the html tag as we are initializing? This would help with ensuring things render correctly when Athena does not load properly. For example, $(html).addClass("athena-pending") while the athena framework is loading, and $(html).toggleClass("athena-pending athena-ready") after the ready event fires?

The primary use case is something like a carousel. I'd like to be able to avoid the flash of unstyled content if I know JavaScript is working, but when JavaScript is disabled, let the carousel display all of its items.

"data is not defined"

Hi Robert, I just cloned a fresh copy of AthenaUIFramework, and when I go to carousel_a.html in my browser, I get an error stating "data is not defined". Do you also get that error, or do you have outstanding changes that aren't yet checked in? Thanks! --Jim

Build Tabs

Build/fix Tabs control

JS Code
HTML examples
Functional completeness
Documentation + Example in Primer
Unit testing (work with Kiro)

Autoplay carousel shouldn't play when it's not visible

This is probably solved by application programming, but there is the case when a Carousel is in a Tab. In that case, the Tab knows when the Carousel is and is not visible and so, the Tab can trigger a "pause" event on hide and a "play" event on show.

Carousel: incorrect item transitioning

Unit testing caught this one.

Details: Calling pause, then play, then pause, then play, skips items intermittently.
Cause: the timer
Solution: When the carousel is paused, the timer in the recurse() function should be cleared, otherwise the function will continue executing.

Tip Control

Build/fix Tip control

JS Code
HTML examples
Functional completeness
Documentation + Example in Primer
Unit testing (work with Kiro)

Investigate localstorage errors in IE6,7

Local Storage errors are thrown in early versions of IE. I suspect this is an issue with inject. Please Investigate, fix it if it the error is in Lu, or file a ticket for inject.

MVP for Build Script

MVP is:

  • Asks for a path to output lu.js and Lu controls to.
  • Asks what version of Lu controls to copy.
    • Subsequently, can grep for what versions are available.
  • Accepts command line args
  • Will combine underscore mixins, ptClass, and lu.js
    • Only if specified by user.
  • Asks for a compilation level and then compiles both lu.js and Lu controls at that level.

Carousel Control

Build/fix Carousel control.

JS Code
HTML examples
Functional completeness
Documentation + Example in Primer
Unit testing (work with Kiro)

Add a console helper

This should fàcade browser developer consoles where available and catch console calls when a browser console is not avaliable.

Dropdown Control

Build/fix Dropdown control

JS Code
HTML examples
Functional completeness
Documentation + Example in Primer
Unit testing (work with Kiro)

Tip.html - Object #<klass> has no method 'trigger'

Steps to repro:

  1. Checkout latest AthenaUIFramework
  2. Start server: node server.js
  3. In Chrome, open: http://localhost:3000/examples/Tip.html

Stacktrace:

Uncaught TypeError: Object #<klass> has no method 'trigger'
Athena.execute.setData.executed                                         /scripts/libraries/athena/athena.js:194
_.each._.forEach                                                                       underscore.js:82
execute                                                                                        /scripts/libraries/athena/athena.js:193
Athena.execute                                                                          /scripts/libraries/athena/athena.js:240
jQuery.extend.each                                                                   jquery-1.7.js:660
jQuery.fn.jQuery.each                                                               jquery-1.7.js:274
Athena.execute                                                                          /scripts/libraries/athena/athena.js:237
require.ensure.ensureExecutionCallback                            inject.js:1279
execute                                                                                        inject.js:1015
afterDownload                                                                            inject.js:977
afterDownload                                                                            inject.js:977
afterDownload                                                                            inject.js:977
afterDownload                                                                            inject.js:977

Also, Tip:Right seems to still work...

Athena Button Causing jQuery Error

Clicking on 'athena-data="Button"' elements on the in_arbys page, regardless of DOM placement or config/no config, causes a "event is undefined" jQuery error. All other types of buttons work fine (e.g. Button:Next, etc.).

Adding a container div breaks tabs

Example:

<div class="tab-control" data-athena="Tabs">
  <ul class="tab-panels" data-athena="List">
    <li id="a1" class="athena-selected" data-athena="Container">
      <img width="600" height="229" src="http://www.arbys.com/assets/templates/arbys/images/ultimateAngusMainImage.png" alt="Ultimate Angus Sandwiches">
    </li>
    <li id="a2" data-athena="Container">
      <img width="600" height="305" src="http://www.arbys.com/assets/images/sandwiches_melts_category.png" alt="Roast Beef and Curly Fries">
    </li>
    <li id="a3" data-athena="Container">
      <img width="375" height="219" src="http://www.arbys.com/assets/images/market_fresh_sandwiches_category.png" alt="Old School Sandwich Deliciousness">
    </li>
  </ul>
  <!-- BUG: if the div below is uncommented, the control stops working -->
  <!--<div class="tab-list-container">-->
    <ul class="tab-list" data-athena="List">
      <li class="athena-selected">
        <a href="#a1" data-athena="Button:Select">Image A1</a>
      </li>
      <li>
        <a href="#a2" data-athena="Button:Select">Image A2</a>
      </li>
      <li>
        <a href="#a3" data-athena="Button:Select">Image A3</a>
      </li>
    </ul>
  <!--</div>-->
</div>

Use json2.js to stringify configs.

//TODO: USING JSON.STRINGIFY WILL BREAK IN OLDER BROWSERS
Athena.decorate = function( $element, keys, settings ) {
var nodeKeys = ( $element.attr( ATTR ) ) ? $element.attr( ATTR ).split( ' ' ) : [];
keys = _.union( nodeKeys, keys );
settings = settings;
if( settings ) {
return $element.attr( ATTR, keys.join( ' ' ) ).attr( ATTR + '-config', JSON.stringify( settings ) );
}
return $element.attr( ATTR, keys.join( ' ' ) );
};

CSS classes on Tabs

I've refactored Tabs to work as a master List and slaved Containers (removing the second slaved List). Oliver pointed out that as a result of this, there's a slightly-confusing issue now due to the fact that the master List adds "athena-selected" to the selected list item, while the related tab-panel Container has an "athena-hidden" class which gets removed. It would be clearer if both the list item and the container were flagged with an "athena-selected" class. This issue is due to the fact that Lists add a class while Containers remove a class. So, to fix, possibly extend Container to a TabContainer class which works with "athena-selected" instead of "athena-hidden".

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.