Coder Social home page Coder Social logo

davebalmer / jo Goto Github PK

View Code? Open in Web Editor NEW
1.2K 1.2K 180.0 975 KB

Jo (0.5.0) is a thin (~16K) candy shell for making HTML5 apps. Jo works with: PhoneGap, Chrome, Safari, Opera, FireFox, iOS, Android, BlackBerry 10, Tizen, & Windows Phone 8+. Features include skinnable UI widgets, a clean event model and a light data layer.

License: MIT License

Shell 0.47% CSS 58.08% JavaScript 40.14% Batchfile 0.32% HTML 1.00%

jo's People

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  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  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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

jo's Issues

joStack transitions need to use transition end event

joStack needs to clear out all child nodes from its DOM tree except for the current view, which it does after any CSS transitions defined in the app css.

Currently, uses 800ms fixed timeout, which is "ok" for a default, but joStack should be hook into the transition end event for the views if available.

Release tags on github

Please add tags for all the releases so far to the git repo.

(And think about adding a Flattr button to the project so that people can throw some gratitude your way).

Remove keyword "screen" from intro tutorials

The keyword "screen" can't be overwritten on Safari 5.0 or Chrome 6.0 (OSX). So the introduction tutorials run in a standard browser throw an undefined error stating "alert" doesn't exist. Changing the variable name to jScreen solved the issue for me ;)

Dragging from an input field pulls scrolls the browser

This is a weird iOS only thing. Dragging any other element from inside a joScroller works as expected, but an input field cases the main browser document to also drag. Haven't tested in a PhoneGap project yet, expect the same.

Scroll doesn't work into the Palm Web browser

Hi,

You framework is really awesome !! However, I see a big issue with your scroller into the Palm WebOS browser (1.4.5 and 2.0 beta).

WebOS overrides the scroll management. So, if you have some iframes or some elements with overflow: scroll, you can scroll in these. I try for another application to do a coverflow with finger motion. But WebOS raises mouse events a mouse click (mousedown is called only when you click...). In WebOS application, the mouse events are correclty called.

I think the only way will be to use the touch events (touchstart, touchmove ....) that Webkit provides.

What do you think ?

Regards

Julien

deactivate/reactivate when joCard isn't top card in stack

Right now, joCard.activate() is only called when a card is first pushed onto a stack, and deactivate() is only called when it's popped. I'd prefer for deactivate() to be called when another card is pushed on top of it, and then activated again when it becomes the top card again. Alternately, there could be new event types that get fired when a card isn't on top anymore. I'm thinking of the difference between deactivate() and cleanup() in webOS.

(I'm basically constructing my Jo app in a webOSish way, where cards stay on the stack, but should have a deactivate() method that is called so that the card can stop any polling or animations that they do while active. I can think of a few workarounds, but they tend to break the stack metaphor and none of them are particularly elegant.)

Not everything is chainable

Not everything is chainable and it is not obvious what is and what is not.

For example, the following does not work (returns undefined):

    var navbar = new joNavbar().setStack(stack);
    var stack = new joStackScroller().push( card );

CSS styling for webOS

I'm trying to use jo for webOS app development. I had some problems with misaligned CSS styling. I don't know if I'm the only one, but I found the fix for this problem:

I found that the following styling, on all elements, needs to be added to fix it:

"background-origin: border-box; "

however, it was sufficient to add it to the global, joElement styling (right after the body styling)
PLUS adding it to the styling of "jotoggle > * "

also, jopopup is missing in the global joElement styling list

What about joLawn?

joLawn is mentioned in the documentation, but it seems there are no references to it... is it still in the works?

Make requiring jsure

Need to smarten up the Makefiles to remove the requirement if it's not installed.

Bug: only last joFooter is ok, others are emplty

For example, I have an object with elements - here I am making exemplars of elements and subscribe for theirs events.
var tabBar = new joTabBar([
{label: ' Account'},
{label: ' Settings'} no settings page yet
]);
var elements = {
'mainPageFooter' : new joFooter(tabBar),
'anotherPageFooter' : new joFooter([someButton, tabBar]),
};

Now if I willpush joCard which contains elements['anotherPageFooter' ] to stack- allwill be ok. But if I will am push joCard with mainPageFooter the joFooter element will be empty.

same problem when using stack.pop() - previous pages have empty joFooter. So last joFooter rendering empty joFooters which created before.

Help: Documentation once-over

I've recently updated the docs, but some of them are probably still out of date. Would love getting some feedback if there are any examples that don't work, especially.

joStack should have a animateDoneEvent event

This would allow you to preform an action when the joStack is done animating( CSS transition) the current screen. I created a new event (animateDoneEvent) in my fork of jo for this purpose.

I use it to re-enable the back button so my IOS users can not click an the back button during a screen transition.

this.stack.animateDoneEvent.subscribe( function(){
console.debug("animate done enable back");
MobileApp.nav.back.enable();
});

Scrolling seems slow on Android (older versions)

Mostly prior to 2.1 and slower devices. Not sure how to get around this, but it would be nice to get a fix in there, or at least build a "native scroller" subclass of joStackScroller which uses an approach similar to jQuery Mobile's "floating toolbars".

DS_Store

find . -name .DS_Store -delete && echo ".DS_Store" > .gitignore

Screen width of demo app on Android is wrong

the screen width of the demo app on my Android device is wrong.
This helps:
<meta name="viewport" content="user-scalable=no, width=device-width" >

Also trying to push an item in the list does not really work well, I can push and an item gets selected, but it's always the wrong one, and I can't even push the 'done' button..

Jo looks very promising though, I like the concepts!

joScroller is broken

The refactoring from the old Grrok version isn't working well yet. Considering baking an auto-scroll feature into all joContainer objects and avoiding this extra class.

(option?) use CSS position: fixed whenever possible for navigation bars

The scrolling area touch-event hack is necessary on iOS and Android<2.3, but many devices support CSS position: fixed.

In my own testing, web applications have much better performance characteristics for content in the scrolling pane. I've noticed that the web forms kitchen-sink widgets' animations are smoother when compared to the touch-event hacked technique.

This might be a solution to:
#22

Drag & drop

Users want to be able to drag & drop items in lists to reorder them, and possibly drag to other lists. This is a pretty big undertaking, definitely could use some help to get it in the features sooner than later.

New flat theme "Flattery"

Flat design theme based on less.js customizations. Should be easy to change colors, rounding, sizing and spacing. Also add a glyph font and remove dependency on images (which don't scale too easily).

joButton disable doesn't work

Im trying to disable a already instantiated joButton:

// function...
this.addButton = new joButton("Add").selectEvent.subscribe(this.pushDetail, this),
// later
this.addButton.disable();

The button looks like a disabled one, but I can click it and the function gets called...

joInput does not recognize character '9' [nine] or '(' [open parenthesis]

Context: Android HTML5 App using PhoneGap (versions: 1.6.0, 1.8.0 and 2.0.0rc1)
Issue is only reproducible on specific devices. verified issue on HP Touchpad running Cyanogen7, issue also reported on jewel & Samsung Galaxy S2 (GT-I9100).

Hints:
testing on PC browser did not trigger issue.
In a standard US Keyboard '9' and '(' are the same physical key.
Changing the soft keyboard app on android device did not fix issue.

My workaround:
Removed all code from JoFramework setting attribute editablecontent.

Include jsdocs/ in git repo

Would it be possible to include jsdocs/ within the git repo so makedoc could work ootb?

../joDoc/jodoc --template jodocs/singletemplate.html ... > jodocs/docs/index.html

Maybe even called htdocs/ so it's obvious it's meant to be a live website. I'm interested in creating a simple static nodejs server that could show the docs from localhost:8000.

Ability to configure tag names for UI controls

Received some feedback that it would be nice to be able to have the framework create UI elements in the DOM with different names. Adding a config method which lets you set the tag names for any UI class in the JS.

joNavbar can't be extended

There is an issue with joNavbar that prevent it from being extended (subclassed).

The listener for the back button is a function called back. But in the constructor function, it is replaced by the back property which hold the reference to the joBackButton.

The code works because when adding the event listener, the reference to the function has not be called yet, but this cause issues when extending the joNavbar.

The listener should be named goBack instead of back (or any other name that is not back).

Chrome Beta crashes page on joStack.push()

Sometimes takes a second go to cause this. Will contact Chrome team and see if they can reproduce. If you run up against it, downgrade to latest stable release and retest your app.

Minor bug in joStack Scoller

JoStackScroller.back() actually calls joStack.forward()

Details:
The following code:

joStack.prototype.forward.call(this);

Should be:
joStack.prototype.back.call(this);

Reorganize CSS files

"aluminum.css" has become sort of a mess. The files will be changed to have a "jo.css" file, with optional "ios.css", "webos.css", "mozilla.css" files that have tweaks (especially to default transitions). This should make it easier to skin, because the default CSS will have just enough to make the widgets work, with no significant visual styling.

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.