Skip to content

Instantly share code, notes, and snippets.

View davelowensohn's full-sized avatar

Dave Lowensohn davelowensohn

View GitHub Profile
@davelowensohn
davelowensohn / components_date-picker_component.js
Last active August 4, 2016 23:02
Ember Datepicker example
import Ember from 'ember';
import moment from 'moment';
const { computed } = Ember;
export default Ember.Component.extend({
classNames: 'date-picker',
inputDate: null,
@davelowensohn
davelowensohn / component.js
Created February 18, 2016 18:30
Ember 2.x nested @each workaround
// Nested eaches don't work, as per Ember rules:
// computedOrderSubTotal: computed('allOrderItems.@each.properties.@each.qty') [....]
// Workaround:
nestedProperties: computed.mapBy('allOrderItems', 'properties'),
computedOrderSubTotal: computed('nestedProperties.@each.qty', 'nestedProperties.@each.pricePerUnit', {
get() {
return this.get('nestedProperties').map( item => item.pricePerUnit * item.qty).reduce( (a,b) => a + b, 0);
},
@davelowensohn
davelowensohn / cart.liquid
Last active May 25, 2016 06:19
Shopify cart item tags contain one or more
{% assign finalsale_in_cart = false %}
{% for item in cart.items %}
{% capture tag_pile %}
{% for tag in item.product.tags %}
{{ tag }}
{% endfor %}
{% endcapture %}
{% if tag_pile contains 'Jewelry' or tag_pile contains 'Swim' or tag_pile contains 'Intimate' %}
@davelowensohn
davelowensohn / product.liquid
Created May 25, 2016 08:15
Shopify semi-automatic vendor collections
{% assign product_vendor_handle = product.vendor | handle %}
{% if collections[product_vendor_handle].handle == product_vendor_handle %}
{% assign vendor_url = collections[product_vendor_handle].url %}
{% else %}
{% assign vendor_url = product.vendor | url_for_vendor %}
{% endif %}
<div id="product-vendor"><span class="product-vendor">{{ product.vendor | link_to: vendor_url }}</span></div>
@davelowensohn
davelowensohn / some-component.js
Last active June 7, 2016 23:28
Styled Ember checkboxes
isSomething: Ember.computed.alias('model.something'), // boolean
actions: {
checkSomething() {
this.toggleProperty('model.something');
},
}
@davelowensohn
davelowensohn / providers.js
Last active October 15, 2016 00:10
AJAX dependent update pattern
// Example 1
updateProviders(next) {
var matrix = this.get('allPatientProviderMatrix');
var curledMatrix = {matrix}; // wrap array in {} to JSONify
var ember = this;
new Promise( function(resolve, reject) {
var localEmber = ember;
Ember.$.ajax({
type: "POST",
url: ENV.fullApiUrl+'/matrix/' + localEmber.get('model.report.id'),
@davelowensohn
davelowensohn / component.hbs
Created August 1, 2016 19:30
Prevent negative number entry on specified number inputs
{{input type="number" min='1' class="positive" value=model.posiVibeCount}}
@davelowensohn
davelowensohn / gist:f49f3027591f47a900cdd9688b15ffb3
Created September 26, 2016 21:13
Simple OSX directory-level web server
python -m SimpleHTTPServer 8000
@davelowensohn
davelowensohn / components.validated-field.js
Last active October 21, 2016 01:02
ember-changeset rollback issue
import Ember from 'ember';
export default Ember.Component.extend({
});
@davelowensohn
davelowensohn / promisemodel.hbs
Last active December 8, 2016 01:37
Hard-fought Ember promise CP that actually resolves in template
{{model.allVariantsQty.value}}