Skip to content
This repository has been archived by the owner on Feb 12, 2022. It is now read-only.

Commit

Permalink
(GH1710) merges latest from master
Browse files Browse the repository at this point in the history
  • Loading branch information
Christopher McCulloh committed Feb 23, 2016
2 parents 9023395 + 1bddca6 commit 16a6399
Show file tree
Hide file tree
Showing 41 changed files with 488 additions and 182 deletions.
27 changes: 27 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Releasing Fuel UX

## Build



## QA

1. Import release into Fuel UX site (drop release into /node_modules/)
1. Run `gulp release` to push to dev
1. Go through ever single page on http://fuelux-dev.herokuapp.com
* Scroll to the bottom of each page scanning for visual errors
* Make sure right-hand nav functions correctly
* Click on the "base" example of each control on the control pages and make sure it functions
* Pay special attention to any controls that were modified in the release, look at each example and interact with it to make sure there are no obvious issues

## Deploy

## Integrate
Each time a release is done, it must be integrated into the following properties:

* [Fuel UX](https://github.com/ExactTarget/fuelux)
* [MC Theme](https://github.com/ExactTarget/fuelux-mctheme)
* [Rucksack](https://github.com/ExactTarget/rucksack)
* [Fuel UX Fusion](https://github.exacttarget.com/uxarchitecture/fusion-fuel)
* [Components](https://github.exacttarget.com/uxarchitecture/fuelux-components)
* [Site](https://github.exacttarget.com/uxarchitecture/fuelux-site)
3 changes: 2 additions & 1 deletion bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@
"requirejs-text": "2.x",
"underscore": "1.x",
"blanket": "1.x",
"jquery-simulate-ext": "~1.3.0"
"jquery-simulate-ext": "~1.3.0",
"require-handlebars-plugin": "~1.0.0"
},
"ignore": [
"**/.*",
Expand Down
32 changes: 25 additions & 7 deletions dist/css/fuelux.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/css/fuelux.css.map

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions dist/css/fuelux.min.css

Large diffs are not rendered by default.

Binary file modified dist/fuelux.zip
Binary file not shown.
76 changes: 57 additions & 19 deletions dist/js/fuelux.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/*!
* Fuel UX v3.14.1
* Fuel UX EDGE - Built 2016/02/22, 5:40:55 PM
* Previous release: v3.14.1
* Copyright 2012-2016 ExactTarget
* Licensed under the BSD-3-Clause license (https://github.com/ExactTarget/fuelux/blob/master/LICENSE)
*/
Expand Down Expand Up @@ -3081,6 +3082,10 @@
this.toggleFolder( ev.currentTarget );
}, this ) );

this.$element.on( 'click.fu.tree', '.tree-overflow', $.proxy( function( ev ) {
this.populate( $( ev.currentTarget ) );
}, this ) );

// folderSelect default is true
if ( this.options.folderSelect ) {
this.$element.addClass( 'tree-folder-select' );
Expand Down Expand Up @@ -3125,28 +3130,59 @@

populate: function populate( $el, isBackgroundProcess ) {
var self = this;

// populate was initiated based on clicking overflow link
var isOverflow = $el.hasClass( 'tree-overflow' );

var $parent = ( $el.hasClass( 'tree' ) ) ? $el : $el.parent();
var loader = $parent.find( '.tree-loader:eq(0)' );
var atRoot = $parent.hasClass( 'tree' );

if ( isOverflow && !atRoot ) {
$parent = $parent.parent();
}

var treeData = $parent.data();
// expose overflow data to datasource so it can be responded to appropriately.
if ( isOverflow ) {
treeData.overflow = $el.data();
}

isBackgroundProcess = isBackgroundProcess || false; // no user affordance needed (ex.- "loading")

if ( isOverflow ) {
if ( atRoot ) {
// the loader at the root level needs to continually replace the overflow trigger
// otherwise, when loader is shown below, it will be the loader for the last folder
// in the tree, instead of the loader at the root level.
$el.replaceWith( $parent.find( '> .tree-loader' ).remove() );
} else {
$el.remove();
}
}

var $loader = $parent.find( '.tree-loader:last' );

if ( isBackgroundProcess === false ) {
loader.removeClass( 'hide hidden' ); // hide is deprecated
$loader.removeClass( 'hide hidden' ); // jQuery deprecated hide in 3.0. Use hidden instead. Leaving hide here to support previous markup
}
this.options.dataSource( treeData ? treeData : {}, function( items ) {
loader.addClass( 'hidden' );


this.options.dataSource( treeData ? treeData : {}, function( items ) {
$.each( items.data, function( index, value ) {
var $entity;

if ( value.type === 'folder' ) {
$entity = self.$element.find( '[data-template=treebranch]:eq(0)' ).clone().removeClass( 'hide hidden' ).removeData( 'template' ); // hide is deprecated
$entity = self.$element.find( '[data-template=treebranch]:eq(0)' ).clone().removeClass( 'hide hidden' ).removeData( 'template' ).removeAttr( 'data-template' ); // jQuery deprecated hide in 3.0. Use hidden instead. Leaving hide here to support previous markup
$entity.data( value );
$entity.find( '.tree-branch-name > .tree-label' ).html( value.text || value.name );
} else if ( value.type === 'item' ) {
$entity = self.$element.find( '[data-template=treeitem]:eq(0)' ).clone().removeClass( 'hide hidden' ).removeData( 'template' ); // hide is deprecated
$entity = self.$element.find( '[data-template=treeitem]:eq(0)' ).clone().removeClass( 'hide hidden' ).removeData( 'template' ).removeAttr( 'data-template' ); // jQuery deprecated hide in 3.0. Use hidden instead. Leaving hide here to support previous markup
$entity.find( '.tree-item-name > .tree-label' ).html( value.text || value.name );
$entity.data( value );
} else if ( value.type === 'overflow' ) {
$entity = self.$element.find( '[data-template=treeoverflow]:eq(0)' ).clone().removeClass( 'hide hidden' ).removeData( 'template' ).removeAttr( 'data-template' ); // jQuery deprecated hide in 3.0. Use hidden instead. Leaving hide here to support previous markup
$entity.find( '.tree-overflow-name > .tree-label' ).html( value.text || value.name );
$entity.data( value );
}

// Decorate $entity with data or other attributes making the
Expand Down Expand Up @@ -3198,14 +3234,16 @@
}
} );

// add child nodes
if ( $el.hasClass( 'tree-branch-header' ) ) {
$parent.find( '.tree-branch-children:eq(0)' ).append( $entity );
// add child node
if ( atRoot ) {
$parent.append( $entity );
} else {
$el.append( $entity );
$parent.find( '.tree-branch-children:eq(0)' ).append( $entity );
}
} );

$parent.find( '.tree-loader' ).addClass( 'hidden' );

// return newly populated folder
self.$element.trigger( 'loaded.fu.tree', $parent );
} );
Expand Down Expand Up @@ -3259,7 +3297,7 @@
//take care of the styles
$branch.addClass( 'tree-open' );
$branch.attr( 'aria-expanded', 'true' );
$treeFolderContentFirstChild.removeClass( 'hide hidden' ); // hide is deprecated
$treeFolderContentFirstChild.removeClass( 'hide hidden' ); // jQuery deprecated hide in 3.0. Use hidden instead. Leaving hide here to support previous markup
$branch.find( '> .tree-branch-header .icon-folder' ).eq( 0 )
.removeClass( 'glyphicon-folder-close' )
.addClass( 'glyphicon-folder-open' );
Expand Down Expand Up @@ -3334,7 +3372,7 @@
var closedReported = function closedReported( event, closed ) {
reportedClosed.push( closed );

// hide is deprecated
// jQuery deprecated hide in 3.0. Use hidden instead. Leaving hide here to support previous markup
if ( self.$element.find( ".tree-branch.tree-open:not('.hidden, .hide')" ).length === 0 ) {
self.$element.trigger( 'closedAll.fu.tree', {
tree: self.$element,
Expand Down Expand Up @@ -7283,10 +7321,10 @@
this.$endDate.parent().attr( 'aria-hidden', 'true' );

if ( val === 'after' ) {
this.$endAfter.parent().removeClass( 'hide hidden' ); // hide is deprecated
this.$endAfter.parent().removeClass( 'hide hidden' ); // jQuery deprecated hide in 3.0. Use hidden instead. Leaving hide here to support previous markup
this.$endAfter.parent().attr( 'aria-hidden', 'false' );
} else if ( val === 'date' ) {
this.$endDate.parent().removeClass( 'hide hidden' ); // hide is deprecated
this.$endDate.parent().removeClass( 'hide hidden' ); // jQuery deprecated hide in 3.0. Use hidden instead. Leaving hide here to support previous markup
this.$endDate.parent().attr( 'aria-hidden', 'false' );
}
},
Expand Down Expand Up @@ -7475,11 +7513,11 @@
case 'daily':
case 'weekly':
case 'monthly':
this.$repeatIntervalPanel.removeClass( 'hide hidden' ); // hide is deprecated
this.$repeatIntervalPanel.removeClass( 'hide hidden' ); // jQuery deprecated hide in 3.0. Use hidden instead. Leaving hide here to support previous markup
this.$repeatIntervalPanel.attr( 'aria-hidden', 'false' );
break;
default:
this.$repeatIntervalPanel.addClass( 'hidden' ); // hide is deprecated
this.$repeatIntervalPanel.addClass( 'hidden' ); // jQuery deprecated hide in 3.0. Use hidden instead. Leaving hide here to support previous markup
this.$repeatIntervalPanel.attr( 'aria-hidden', 'true' );
break;
}
Expand All @@ -7489,7 +7527,7 @@
this.$recurrencePanels.attr( 'aria-hidden', 'true' );

// show panel for current selection
this.$element.find( '.repeat-' + val ).removeClass( 'hide hidden' ); // hide is deprecated
this.$element.find( '.repeat-' + val ).removeClass( 'hide hidden' ); // jQuery deprecated hide in 3.0. Use hidden instead. Leaving hide here to support previous markup
this.$element.find( '.repeat-' + val ).attr( 'aria-hidden', 'false' );

// the end selection should only be shown when
Expand All @@ -7498,7 +7536,7 @@
this.$end.addClass( 'hidden' );
this.$end.attr( 'aria-hidden', 'true' );
} else {
this.$end.removeClass( 'hide hidden' ); // hide is deprecated
this.$end.removeClass( 'hide hidden' ); // jQuery deprecated hide in 3.0. Use hidden instead. Leaving hide here to support previous markup
this.$end.attr( 'aria-hidden', 'false' );
}

Expand Down
9 changes: 5 additions & 4 deletions dist/js/fuelux.min.js

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions dist/templates/handlebars/bootstrap/button.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<div class="form-group{{#if validation}} has-{{validation}}{{/if}}">
<label class="control-label{{#if horizontal}} col-sm-2{{/if}}" for="{{#if id}}{{id}}{{else}}myButton{{/if}}">{{#if label}}{{label}}{{/if}}</label>
<div class="{{#if buttonalign}}{{buttonalign}}{{/if}}{{#if horizontal}} col-sm-10{{/if}}">
<{{#if isinput}}input{{else}}{{#if islink}}a{{else}}button{{/if}}{{/if}} {{#unless islink}}type="{{#if type}}{{type}}{{else}}button{{/if}}"{{else}}role="button"{{/unless}} id="{{#if id}}{{id}}{{else}}myButton{{/if}}" name="{{#if name}}{{name}}{{else}}{{#if id}}{{id}}{{else}}myButton{{/if}}{{/if}}" class='btn{{#if buttonstyle}} {{buttonstyle}}{{else}} btn-default{{/if}}{{#if inputsize}} {{inputsize}}{{/if}}'{{#if disabled}} disabled{{/if}} aria-label="{{#if label}}{{label}}{{/if}}" {{#if isinput}}value="{{text}}"{{/if}}>{{#unless isinput}}{{text}}{{/unless}}</{{#if isinput}}input{{else}}{{#if islink}}a{{else}}button{{/if}}{{/if}}>
{{#if helptext}}<p class="help-block">{{helptext}}</p>{{/if}}
</div>
</div>
32 changes: 32 additions & 0 deletions dist/templates/handlebars/bootstrap/input.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<div class="form-group{{#if horizontal}}{{#if inputsize}} form-group-{{inputsize}}{{/if}}{{/if}}{{#if validation}} has-{{validation}}{{#if feedback}} has-feedback{{/if}}{{/if}}">
{{#if label}}<label for="{{#if id}}{{id}}{{else}}myInput{{/if}}" class="control-label{{#if horizontal}} col-sm-2{{/if}}">{{label}}</label>{{/if}}
{{#if horizontal}}<div class="col-sm-10">{{/if}}
{{#if hasAside}}<div class="input-group">{{/if}}
{{#if prependText}}<span id="{{#if id}}{{id}}{{else}}myInput{{/if}}Prepend" class="input-group-addon{{#if horizontal}}{{#if inputsize}} input-{{inputsize}}{{/if}}{{/if}}">{{prependText}}</span>{{/if}}
{{#with prependCheckbox}}<label class="input-group-addon checkbox-custom" data-initialize="checkbox">
<input class="sr-only" type="checkbox" aria-label="{{#if aria}}{{aria}}{{else}}{{value}}{{/if}}" {{#if checked}}checked="checked"{{/if}} id="{{#if ../id}}{{../id}}{{else}}myInput{{/if}}Checkbox" name="{{#if ../name}}{{../name}}{{else}}{{#if ../id}}{{../id}}{{else}}myInput{{/if}}{{/if}}Checkbox" value="{{value}}"{{#if readonly}} readonly{{/if}}{{#if disabled}} disabled{{/if}}>
</label>{{/with}}
{{#with prependButtonDropdown}}
<div class="input-group-btn">
<button type="button" class="btn dropdown-toggle{{#if ../inputsize}} btn-{{../inputsize}}{{/if}}{{#if style}} {{style}}{{/if}}" data-toggle="dropdown"{{#if ../label}} aria-label="{{../label}} related options"{{/if}} aria-haspopup="true" aria-expanded="false"{{#if required}} required{{/if}}{{#if readonly}} readonly{{/if}}{{#if disabled}} disabled{{/if}}>{{text}}&nbsp;<span class="caret"></span></button>
<ul class="dropdown-menu">{{#each options}}
{{#if separator}}<li role="separator" class="divider"></li>{{else}}<li><a href="#">{{value}}</a></li>{{/if}}{{/each}}
</ul>
</div>{{/with}}
<input type="{{#if type}}{{type}}{{else}}text{{/if}}" class="{{#unless horizontal}}{{#if inputsize}}input-{{inputsize}} {{/if}}{{/unless}}form-control" id="{{#if id}}{{id}}{{else}}myInput{{/if}}" name="{{#if name}}{{name}}{{else}}{{#if id}}{{id}}{{else}}myInput{{/if}}{{/if}}"{{#if placeholder}} placeholder="{{placeholder}}"{{/if}}{{#if required}} required{{/if}}{{#if readonly}} readonly{{/if}}{{#if disabled}} disabled{{/if}}{{#if validation}}{{#if feedback}}aria-describedby="{{#if id}}{{id}}{{else}}myInput{{/if}}Status"{{/if}}{{/if}}>
{{#with appendButtonDropdown}}
<div class="input-group-btn">
<button type="button" class="btn dropdown-toggle{{#if ../inputsize}} btn-{{../inputsize}}{{/if}}{{#if style}} {{style}}{{/if}}" data-toggle="dropdown"{{#if ../label}} aria-label="{{../label}} related options"{{/if}} aria-haspopup="true" aria-expanded="false"{{#if required}} required{{/if}}{{#if readonly}} readonly{{/if}}{{#if disabled}} disabled{{/if}}>{{text}}&nbsp;<span class="caret"></span></button>
<ul class="dropdown-menu dropdown-menu-right">{{#each options}}
{{#if separator}}<li role="separator" class="divider"></li>{{else}}<li><a href="#">{{value}}</a></li>{{/if}}{{/each}}
</ul>
</div>{{/with}}
{{#with appendCheckbox}}<label class="input-group-addon checkbox-custom" data-initialize="checkbox">
<input class="sr-only" type="checkbox" aria-label="{{#if checkboxAria}}{{checkboxAria}}{{else}}{{value}}{{/if}}" {{#if checked}}checked="checked"{{/if}} id="{{#if ../id}}{{../id}}{{else}}myInput{{/if}}Checkbox" name="{{#if ../name}}{{../name}}{{else}}{{#if ../id}}{{../id}}{{else}}myInput{{/if}}{{/if}}Checkbox" value="{{value}}"{{#if readonly}} readonly{{/if}}{{#if disabled}} disabled{{/if}}>
</label>{{/with}}
{{#if appendText}}<span id="{{#if id}}{{id}}{{else}}myInput{{/if}}Prepend" class="input-group-addon{{#if horizontal}}{{#if inputsize}} input-{{inputsize}}{{/if}}{{/if}}">{{appendText}}</span>{{/if}}
{{#if hasAside}}</div>{{/if}}
{{#if feedback}}<span class="glyphicon glyphicon-{{feedback}} form-control-feedback" aria-hidden="true"></span><span id="{{#if id}}{{id}}{{else}}myInput{{/if}}Status" class="sr-only">({{#if validation}}{{validation}}{{/if}})</span>{{/if}}
{{#if helptext}}<p class="help-block">{{helptext}}</p>{{/if}}
{{#if horizontal}}</div>{{/if}}
</div>
7 changes: 7 additions & 0 deletions dist/templates/handlebars/bootstrap/textarea.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<div class="form-group{{#if validation}} has-{{validation}}{{/if}}">
<label class="control-label{{#if horizontal}} col-sm-2{{/if}}" for="{{#if id}}{{id}}{{else}}myTextarea{{/if}}">{{#if label}}{{label}}{{/if}}</label>
{{#if horizontal}}<div class="col-sm-10">{{/if}}
<textarea class="form-control" id="{{#if id}}{{id}}{{else}}myTextarea{{/if}}" name="{{#if name}}{{name}}{{else}}{{#if id}}{{id}}{{else}}myTextarea{{/if}}{{/if}}" rows="{{#if rows}}{{rows}}{{/if}}"{{#if required}} required{{/if}}{{#if readonly}} readonly{{/if}}{{#if disabled}} disabled{{/if}}>{{#if text}}{{text}}{{/if}}</textarea>
{{#if helptext}}<p class="help-block">{{helptext}}</p>{{/if}}
{{#if horizontal}}</div>{{/if}}
</div>
21 changes: 15 additions & 6 deletions dist/templates/handlebars/fuelux/checkbox.hbs
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
{{#unless inline}}<div class="checkbox{{#if highlight}} highlight{{/if}}">{{/unless}}
<label class="checkbox-custom{{#if inline}} checkbox-inline{{/if}}{{#if highlight}} highlight{{/if}}"{{#unless doNotInit}} data-initialize="checkbox"{{/unless}} id="{{#if id}}{{id}}{{else}}myCustomCheckbox{{/if}}">
<input class="sr-only" type="checkbox" {{#if data-toggle}}data-toggle="{{data-toggle}}" {{/if}}{{#if checked}}checked="checked" {{/if}}{{#if disabled}}disabled="disabled" {{/if}}value="" name="{{#if name}}{{name}}{{else}}myCustomCheckboxName{{/if}}">
<span class="checkbox-label">{{#if label}}{{label}}{{else}}Checkbox Label{{/if}}</span>
</label>
{{#unless inline}}</div>{{/unless}}
<div class="form-group{{#if validation}} has-{{validation}}{{/if}}">
<label for="{{#if id}}{{id}}{{else}}myCustomCheckboxWrapper{{/if}}" class="control-label{{#if horizontal}} col-sm-2{{/if}}">{{#if label}}{{label}}{{/if}}</label>

<div class="{{#if inline}}checkbox{{/if}}{{#if horizontal}} col-sm-10{{/if}}"{{#if required}} required{{/if}}>
{{#each checkboxes}}
{{#unless ../inline}}<div class="checkbox{{#if ../highlight}} highlight{{/if}}">{{/unless}}
<label class="checkbox-custom{{#if ../inline}} checkbox-inline{{/if}}{{#if ../highlight}} highlight{{/if}}"{{#unless ../doNotInit}} data-initialize="checkbox"{{/unless}} id="{{#if id}}{{id}}{{else}}{{#if ../id}}{{../id}}{{else}}myCustomCheckbox{{/if}}{{@index}}{{/if}}">
<input class="sr-only" type="checkbox" {{#if data-toggle}}data-toggle="{{data-toggle}}" {{/if}}{{#if checked}}checked="checked" {{/if}}{{#if disabled}}disabled="disabled" {{/if}}{{#if value}}value="{{value}}" {{/if}}name="{{#if name}}{{name}}{{else}}{{#if id}}{{id}}{{else}}{{#if ../id}}{{../id}}{{else}}myCustomCheckbox{{/if}}{{/if}}{{@index}}{{/if}}">
<span class="checkbox-label">{{#if label}}{{label}}{{else}}Checkbox {{@index}} Label{{/if}}</span>
</label>
{{#unless ../inline}}</div>{{/unless}}
{{/each}}
{{#if helptext}}<p class="help-block">{{helptext}}</p>{{/if}}
</div>
</div>
Loading

0 comments on commit 16a6399

Please sign in to comment.