mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
Clean up discourse.js
This commit is contained in:
@@ -141,6 +141,15 @@ Ember.LOG_STACKTRACE_ON_DEPRECATION = (Ember.ENV.LOG_STACKTRACE_ON_DEPRECATION !
|
||||
*/
|
||||
Ember.SHIM_ES5 = (Ember.ENV.SHIM_ES5 === false) ? false : Ember.EXTEND_PROTOTYPES;
|
||||
|
||||
/**
|
||||
Determines whether Ember logs info about version of used libraries
|
||||
|
||||
@property LOG_VERSION
|
||||
@type Boolean
|
||||
@default true
|
||||
*/
|
||||
Ember.LOG_VERSION = (Ember.ENV.LOG_VERSION === false) ? false : true;
|
||||
|
||||
/**
|
||||
Empty function. Useful for some operations.
|
||||
|
||||
@@ -1596,7 +1605,7 @@ var MapWithDefault = Ember.MapWithDefault = function(options) {
|
||||
@static
|
||||
@param [options]
|
||||
@param {anything} [options.defaultValue]
|
||||
@return {Ember.MapWithDefault|Ember.Map} If options are passed, returns
|
||||
@return {Ember.MapWithDefault|Ember.Map} If options are passed, returns
|
||||
`Ember.MapWithDefault` otherwise returns `Ember.Map`
|
||||
*/
|
||||
MapWithDefault.create = function(options) {
|
||||
@@ -1670,7 +1679,7 @@ var FIRST_KEY = /^([^\.\*]+)/;
|
||||
|
||||
If you plan to run on IE8 and older browsers then you should use this
|
||||
method anytime you want to retrieve a property on an object that you don't
|
||||
know for sure is private. (Properties beginning with an underscore '_'
|
||||
know for sure is private. (Properties beginning with an underscore '_'
|
||||
are considered private.)
|
||||
|
||||
On all newer browsers, you only need to use this method to retrieve
|
||||
@@ -1731,7 +1740,7 @@ get = function get(obj, keyName) {
|
||||
|
||||
If you plan to run on IE8 and older browsers then you should use this
|
||||
method anytime you want to set a property on an object that you don't
|
||||
know for sure is private. (Properties beginning with an underscore '_'
|
||||
know for sure is private. (Properties beginning with an underscore '_'
|
||||
are considered private.)
|
||||
|
||||
On all newer browsers, you only need to use this method to set
|
||||
@@ -4069,7 +4078,7 @@ Ember.RunLoop = RunLoop;
|
||||
|
||||
```javascript
|
||||
Ember.run(function(){
|
||||
// code to be execute within a RunLoop
|
||||
// code to be execute within a RunLoop
|
||||
});
|
||||
```
|
||||
|
||||
@@ -4108,7 +4117,7 @@ var run = Ember.run;
|
||||
|
||||
```javascript
|
||||
Ember.run.begin();
|
||||
// code to be execute within a RunLoop
|
||||
// code to be execute within a RunLoop
|
||||
Ember.run.end();
|
||||
```
|
||||
|
||||
@@ -4126,7 +4135,7 @@ Ember.run.begin = function() {
|
||||
|
||||
```javascript
|
||||
Ember.run.begin();
|
||||
// code to be execute within a RunLoop
|
||||
// code to be execute within a RunLoop
|
||||
Ember.run.end();
|
||||
```
|
||||
|
||||
@@ -5963,7 +5972,6 @@ define("container",
|
||||
register: function(type, name, factory, options) {
|
||||
var fullName;
|
||||
|
||||
|
||||
if (type.indexOf(':') !== -1){
|
||||
options = factory;
|
||||
factory = name;
|
||||
@@ -5973,15 +5981,23 @@ define("container",
|
||||
fullName = type + ":" + name;
|
||||
}
|
||||
|
||||
this.registry.set(fullName, factory);
|
||||
this._options.set(fullName, options || {});
|
||||
var normalizedName = this.normalize(fullName);
|
||||
|
||||
this.registry.set(normalizedName, factory);
|
||||
this._options.set(normalizedName, options || {});
|
||||
},
|
||||
|
||||
resolve: function(fullName) {
|
||||
return this.resolver(fullName) || this.registry.get(fullName);
|
||||
},
|
||||
|
||||
normalize: function(fullName) {
|
||||
return fullName;
|
||||
},
|
||||
|
||||
lookup: function(fullName, options) {
|
||||
fullName = this.normalize(fullName);
|
||||
|
||||
options = options || {};
|
||||
|
||||
if (this.cache.has(fullName) && options.singleton !== false) {
|
||||
@@ -6110,7 +6126,8 @@ define("container",
|
||||
}
|
||||
|
||||
function factoryFor(container, fullName) {
|
||||
return container.resolve(fullName);
|
||||
var name = container.normalize(fullName);
|
||||
return container.resolve(name);
|
||||
}
|
||||
|
||||
function instantiate(container, fullName) {
|
||||
@@ -6584,6 +6601,20 @@ Ember.Error.prototype = Ember.create(Error.prototype);
|
||||
|
||||
|
||||
|
||||
(function() {
|
||||
/**
|
||||
Expose RSVP implementation
|
||||
|
||||
@class RSVP
|
||||
@namespace Ember
|
||||
@constructor
|
||||
*/
|
||||
Ember.RSVP = requireModule('rsvp');
|
||||
|
||||
})();
|
||||
|
||||
|
||||
|
||||
(function() {
|
||||
/**
|
||||
@module ember
|
||||
@@ -7197,7 +7228,7 @@ Ember.Enumerable = Ember.Mixin.create(
|
||||
|
||||
@method nextObject
|
||||
@param {Number} index the current index of the iteration
|
||||
@param {Object} previousObject the value returned by the last call to
|
||||
@param {Object} previousObject the value returned by the last call to
|
||||
`nextObject`.
|
||||
@param {Object} context a context object you can use to maintain state.
|
||||
@return {Object} the next object in the iteration or undefined
|
||||
@@ -8264,9 +8295,9 @@ Ember.Array = Ember.Mixin.create(Ember.Enumerable, /** @scope Ember.Array.protot
|
||||
|
||||
@method arrayContentWillChange
|
||||
@param {Number} startIdx The starting index in the array that will change.
|
||||
@param {Number} removeAmt The number of items that will be removed. If you
|
||||
@param {Number} removeAmt The number of items that will be removed. If you
|
||||
pass `null` assumes 0
|
||||
@param {Number} addAmt The number of items that will be added If you
|
||||
@param {Number} addAmt The number of items that will be added If you
|
||||
pass `null` assumes 0.
|
||||
@return {Ember.Array} receiver
|
||||
*/
|
||||
@@ -8740,11 +8771,11 @@ Ember.MutableArray = Ember.Mixin.create(Ember.Array, Ember.MutableEnumerable,
|
||||
passed array. You should also call `this.enumerableContentDidChange()`
|
||||
|
||||
@method replace
|
||||
@param {Number} idx Starting index in the array to replace. If
|
||||
@param {Number} idx Starting index in the array to replace. If
|
||||
idx >= length, then append to the end of the array.
|
||||
@param {Number} amt Number of elements that should be removed from
|
||||
@param {Number} amt Number of elements that should be removed from
|
||||
the array, starting at *idx*.
|
||||
@param {Array} objects An array of zero or more objects that should be
|
||||
@param {Array} objects An array of zero or more objects that should be
|
||||
inserted into the array at *idx*
|
||||
*/
|
||||
replace: Ember.required(),
|
||||
@@ -9998,14 +10029,14 @@ CoreObject.PrototypeMixin = Mixin.create({
|
||||
view.get('classNames'); // ['ember-view', 'bar', 'foo', 'baz']
|
||||
```
|
||||
Adding a single property that is not an array will just add it in the array:
|
||||
|
||||
|
||||
```javascript
|
||||
var view = App.FooBarView.create({
|
||||
classNames: 'baz'
|
||||
})
|
||||
view.get('classNames'); // ['ember-view', 'bar', 'foo', 'baz']
|
||||
```
|
||||
|
||||
|
||||
Using the `concatenatedProperties` property, we can tell to Ember that mix
|
||||
the content of the properties.
|
||||
|
||||
@@ -10962,40 +10993,8 @@ Ember.Mixin.prototype.toString = classToString;
|
||||
|
||||
|
||||
(function() {
|
||||
/**
|
||||
@module ember
|
||||
@submodule ember-runtime
|
||||
*/
|
||||
|
||||
/**
|
||||
Defines a namespace that will contain an executable application. This is
|
||||
very similar to a normal namespace except that it is expected to include at
|
||||
least a 'ready' function which can be run to initialize the application.
|
||||
|
||||
Currently `Ember.Application` is very similar to `Ember.Namespace.` However,
|
||||
this class may be augmented by additional frameworks so it is important to
|
||||
use this instance when building new applications.
|
||||
|
||||
# Example Usage
|
||||
|
||||
```javascript
|
||||
MyApp = Ember.Application.create({
|
||||
VERSION: '1.0.0',
|
||||
store: Ember.Store.create().from(Ember.fixtures)
|
||||
});
|
||||
|
||||
MyApp.ready = function() {
|
||||
//..init code goes here...
|
||||
}
|
||||
```
|
||||
|
||||
@class Application
|
||||
@namespace Ember
|
||||
@extends Ember.Namespace
|
||||
*/
|
||||
Ember.Application = Ember.Namespace.extend();
|
||||
|
||||
|
||||
})();
|
||||
|
||||
|
||||
@@ -11379,6 +11378,25 @@ Ember.ObjectProxy = Ember.Object.extend(
|
||||
}
|
||||
});
|
||||
|
||||
Ember.ObjectProxy.reopenClass({
|
||||
create: function () {
|
||||
var mixin, prototype, i, l, properties, keyName;
|
||||
if (arguments.length) {
|
||||
prototype = this.proto();
|
||||
for (i = 0, l = arguments.length; i < l; i++) {
|
||||
properties = arguments[i];
|
||||
for (keyName in properties) {
|
||||
if (!properties.hasOwnProperty(keyName) || keyName in prototype) { continue; }
|
||||
if (!mixin) mixin = {};
|
||||
mixin[keyName] = null;
|
||||
}
|
||||
}
|
||||
if (mixin) this._initMixins([mixin]);
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
}
|
||||
});
|
||||
|
||||
})();
|
||||
|
||||
|
||||
@@ -11699,7 +11717,7 @@ if (ignore.length>0) {
|
||||
/**
|
||||
The NativeArray mixin contains the properties needed to to make the native
|
||||
Array support Ember.MutableArray and all of its dependent APIs. Unless you
|
||||
have `Ember.EXTEND_PROTOTYPES or `Ember.EXTEND_PROTOTYPES.Array` set to
|
||||
have `Ember.EXTEND_PROTOTYPES` or `Ember.EXTEND_PROTOTYPES.Array` set to
|
||||
false, this will be applied automatically. Otherwise you can apply the mixin
|
||||
at anytime by calling `Ember.NativeArray.activate`.
|
||||
|
||||
@@ -12274,7 +12292,8 @@ Ember.ArrayController = Ember.ArrayProxy.extend(Ember.ControllerMixin,
|
||||
|
||||
objectAtContent: function(idx) {
|
||||
var length = get(this, 'length'),
|
||||
object = get(this,'arrangedContent').objectAt(idx);
|
||||
arrangedContent = get(this,'arrangedContent'),
|
||||
object = arrangedContent && arrangedContent.objectAt(idx);
|
||||
|
||||
if (idx >= 0 && idx < length) {
|
||||
var controllerClass = this.lookupItemController(object);
|
||||
@@ -12425,15 +12444,16 @@ Ember.$ = jQuery;
|
||||
@module ember
|
||||
@submodule ember-views
|
||||
*/
|
||||
if (Ember.$) {
|
||||
// http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dndevents
|
||||
var dragEvents = Ember.String.w('dragstart drag dragenter dragleave dragover drop dragend');
|
||||
|
||||
// http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dndevents
|
||||
var dragEvents = Ember.String.w('dragstart drag dragenter dragleave dragover drop dragend');
|
||||
|
||||
// Copies the `dataTransfer` property from a browser event object onto the
|
||||
// jQuery event object for the specified events
|
||||
Ember.EnumerableUtils.forEach(dragEvents, function(eventName) {
|
||||
Ember.$.event.fixHooks[eventName] = { props: ['dataTransfer'] };
|
||||
});
|
||||
// Copies the `dataTransfer` property from a browser event object onto the
|
||||
// jQuery event object for the specified events
|
||||
Ember.EnumerableUtils.forEach(dragEvents, function(eventName) {
|
||||
Ember.$.event.fixHooks[eventName] = { props: ['dataTransfer'] };
|
||||
});
|
||||
}
|
||||
|
||||
})();
|
||||
|
||||
@@ -12450,7 +12470,8 @@ Ember.EnumerableUtils.forEach(dragEvents, function(eventName) {
|
||||
// Internet Explorer prior to 9 does not allow setting innerHTML if the first element
|
||||
// is a "zero-scope" element. This problem can be worked around by making
|
||||
// the first node an invisible text node. We, like Modernizr, use ­
|
||||
var needsShy = (function(){
|
||||
|
||||
var needsShy = this.document && (function(){
|
||||
var testEl = document.createElement('div');
|
||||
testEl.innerHTML = "<div></div>";
|
||||
testEl.firstChild.innerHTML = "<script></script>";
|
||||
@@ -12460,7 +12481,7 @@ var needsShy = (function(){
|
||||
// IE 8 (and likely earlier) likes to move whitespace preceeding
|
||||
// a script tag to appear after it. This means that we can
|
||||
// accidentally remove whitespace when updating a morph.
|
||||
var movesWhitespace = (function() {
|
||||
var movesWhitespace = this.document && (function() {
|
||||
var testEl = document.createElement('div');
|
||||
testEl.innerHTML = "Test: <script type='text/x-placeholder'></script>Value";
|
||||
return testEl.childNodes[0].nodeValue === 'Test:' &&
|
||||
@@ -13131,7 +13152,7 @@ Ember.EventDispatcher = Ember.Object.extend(
|
||||
setup: function(addedEvents) {
|
||||
var event, events = {
|
||||
touchstart : 'touchStart',
|
||||
// touchmove : 'touchMove',
|
||||
touchmove : 'touchMove',
|
||||
touchend : 'touchEnd',
|
||||
touchcancel : 'touchCancel',
|
||||
keydown : 'keyDown',
|
||||
@@ -13142,7 +13163,7 @@ Ember.EventDispatcher = Ember.Object.extend(
|
||||
contextmenu : 'contextMenu',
|
||||
click : 'click',
|
||||
dblclick : 'doubleClick',
|
||||
// mousemove : 'mouseMove',
|
||||
mousemove : 'mouseMove',
|
||||
focusin : 'focusIn',
|
||||
focusout : 'focusOut',
|
||||
mouseenter : 'mouseEnter',
|
||||
@@ -13290,8 +13311,9 @@ Ember.EventDispatcher = Ember.Object.extend(
|
||||
// Add a new named queue for rendering views that happens
|
||||
// after bindings have synced, and a queue for scheduling actions
|
||||
// that that should occur after view rendering.
|
||||
var queues = Ember.run.queues;
|
||||
queues.splice(Ember.$.inArray('actions', queues)+1, 0, 'render', 'afterRender');
|
||||
var queues = Ember.run.queues,
|
||||
indexOf = Ember.ArrayPolyfills.indexOf;
|
||||
queues.splice(indexOf.call(queues, 'actions')+1, 0, 'render', 'afterRender');
|
||||
|
||||
})();
|
||||
|
||||
@@ -14080,7 +14102,7 @@ class:
|
||||
* `mouseEnter`
|
||||
* `mouseLeave`
|
||||
|
||||
Form events:
|
||||
Form events:
|
||||
|
||||
* `submit`
|
||||
* `change`
|
||||
@@ -14088,7 +14110,7 @@ class:
|
||||
* `focusOut`
|
||||
* `input`
|
||||
|
||||
HTML5 drag and drop events:
|
||||
HTML5 drag and drop events:
|
||||
|
||||
* `dragStart`
|
||||
* `drag`
|
||||
@@ -15530,17 +15552,24 @@ Ember.View = Ember.CoreView.extend(
|
||||
// once the view has been inserted into the DOM, legal manipulations
|
||||
// are done on the DOM element.
|
||||
|
||||
function notifyMutationListeners() {
|
||||
Ember.run.once(Ember.View, 'notifyMutationListeners');
|
||||
}
|
||||
|
||||
var DOMManager = {
|
||||
prepend: function(view, html) {
|
||||
view.$().prepend(html);
|
||||
notifyMutationListeners();
|
||||
},
|
||||
|
||||
after: function(view, html) {
|
||||
view.$().after(html);
|
||||
notifyMutationListeners();
|
||||
},
|
||||
|
||||
html: function(view, html) {
|
||||
view.$().html(html);
|
||||
notifyMutationListeners();
|
||||
},
|
||||
|
||||
replace: function(view) {
|
||||
@@ -15550,15 +15579,18 @@ var DOMManager = {
|
||||
|
||||
view._insertElementLater(function() {
|
||||
Ember.$(element).replaceWith(get(view, 'element'));
|
||||
notifyMutationListeners();
|
||||
});
|
||||
},
|
||||
|
||||
remove: function(view) {
|
||||
view.$().remove();
|
||||
notifyMutationListeners();
|
||||
},
|
||||
|
||||
empty: function(view) {
|
||||
view.$().empty();
|
||||
notifyMutationListeners();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -15619,14 +15651,14 @@ Ember.View.reopenClass({
|
||||
`className` and optional `falsyClassName`.
|
||||
|
||||
- if a `className` or `falsyClassName` has been specified:
|
||||
- if the value is truthy and `className` has been specified,
|
||||
- if the value is truthy and `className` has been specified,
|
||||
`className` is returned
|
||||
- if the value is falsy and `falsyClassName` has been specified,
|
||||
- if the value is falsy and `falsyClassName` has been specified,
|
||||
`falsyClassName` is returned
|
||||
- otherwise `null` is returned
|
||||
- if the value is `true`, the dasherized last part of the supplied path
|
||||
- if the value is `true`, the dasherized last part of the supplied path
|
||||
is returned
|
||||
- if the value is not `false`, `undefined` or `null`, the `value`
|
||||
- if the value is not `false`, `undefined` or `null`, the `value`
|
||||
is returned
|
||||
- if none of the above rules apply, `null` is returned
|
||||
|
||||
@@ -15673,6 +15705,20 @@ Ember.View.reopenClass({
|
||||
}
|
||||
});
|
||||
|
||||
var mutation = Ember.Object.extend(Ember.Evented).create();
|
||||
|
||||
Ember.View.addMutationListener = function(callback) {
|
||||
mutation.on('change', callback);
|
||||
};
|
||||
|
||||
Ember.View.removeMutationListener = function(callback) {
|
||||
mutation.off('change', callback);
|
||||
};
|
||||
|
||||
Ember.View.notifyMutationListeners = function() {
|
||||
mutation.trigger('change');
|
||||
};
|
||||
|
||||
/**
|
||||
Global views hash
|
||||
|
||||
@@ -16476,7 +16522,7 @@ var get = Ember.get, set = Ember.set, fmt = Ember.String.fmt;
|
||||
|
||||
Given an empty `<body>` and the following code:
|
||||
|
||||
```javascript
|
||||
```javascript
|
||||
someItemsView = Ember.CollectionView.create({
|
||||
classNames: ['a-collection'],
|
||||
content: ['A','B','C'],
|
||||
@@ -16831,15 +16877,15 @@ define("metamorph",
|
||||
|
||||
var K = function(){},
|
||||
guid = 0,
|
||||
document = window.document,
|
||||
document = this.document,
|
||||
|
||||
// Feature-detect the W3C range API, the extended check is for IE9 which only partially supports ranges
|
||||
supportsRange = ('createRange' in document) && (typeof Range !== 'undefined') && Range.prototype.createContextualFragment,
|
||||
supportsRange = document && ('createRange' in document) && (typeof Range !== 'undefined') && Range.prototype.createContextualFragment,
|
||||
|
||||
// Internet Explorer prior to 9 does not allow setting innerHTML if the first element
|
||||
// is a "zero-scope" element. This problem can be worked around by making
|
||||
// the first node an invisible text node. We, like Modernizr, use ­
|
||||
needsShy = (function(){
|
||||
needsShy = document && (function(){
|
||||
var testEl = document.createElement('div');
|
||||
testEl.innerHTML = "<div></div>";
|
||||
testEl.firstChild.innerHTML = "<script></script>";
|
||||
@@ -16850,7 +16896,7 @@ define("metamorph",
|
||||
// IE 8 (and likely earlier) likes to move whitespace preceeding
|
||||
// a script tag to appear after it. This means that we can
|
||||
// accidentally remove whitespace when updating a morph.
|
||||
movesWhitespace = (function() {
|
||||
movesWhitespace = document && (function() {
|
||||
var testEl = document.createElement('div');
|
||||
testEl.innerHTML = "Test: <script type='text/x-placeholder'></script>Value";
|
||||
return testEl.childNodes[0].nodeValue === 'Test:' &&
|
||||
@@ -17294,7 +17340,10 @@ var objectCreate = Object.create || function(parent) {
|
||||
return new F();
|
||||
};
|
||||
|
||||
var Handlebars = this.Handlebars || Ember.imports.Handlebars;
|
||||
var Handlebars = this.Handlebars || (Ember.imports && Ember.imports.Handlebars);
|
||||
if(!Handlebars && typeof require === 'function') {
|
||||
Handlebars = require('handlebars');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -17647,7 +17696,7 @@ Ember.Handlebars.registerHelper('helperMissing', function(path, options) {
|
||||
|
||||
## Example with bound options
|
||||
|
||||
Bound hash options are also supported. Example:
|
||||
Bound hash options are also supported. Example:
|
||||
|
||||
```handlebars
|
||||
{{repeat text countBinding="numRepeats"}}
|
||||
@@ -17685,15 +17734,15 @@ Ember.Handlebars.registerHelper('helperMissing', function(path, options) {
|
||||
{{concatenate prop1 prop2 prop3}}. If any of the properties change,
|
||||
the helpr will re-render. Note that dependency keys cannot be
|
||||
using in conjunction with multi-property helpers, since it is ambiguous
|
||||
which property the dependent keys would belong to.
|
||||
|
||||
which property the dependent keys would belong to.
|
||||
|
||||
## Use with unbound helper
|
||||
|
||||
The {{unbound}} helper can be used with bound helper invocations
|
||||
The {{unbound}} helper can be used with bound helper invocations
|
||||
to render them in their unbound form, e.g.
|
||||
|
||||
```handlebars
|
||||
{{unbound capitalize name}}
|
||||
{{unbound capitalize name}}
|
||||
```
|
||||
|
||||
In this example, if the name property changes, the helper
|
||||
@@ -17719,7 +17768,7 @@ Ember.Handlebars.registerBoundHelper = function(name, fn) {
|
||||
view = data.view,
|
||||
currentContext = (options.contexts && options.contexts[0]) || this,
|
||||
normalized,
|
||||
pathRoot, path,
|
||||
pathRoot, path,
|
||||
loc, hashOption;
|
||||
|
||||
// Detect bound options (e.g. countBinding="otherCount")
|
||||
@@ -17824,7 +17873,7 @@ function evaluateMultiPropertyBoundHelper(context, fn, normalizedProperties, opt
|
||||
// Assemble liast of watched properties that'll re-render this helper.
|
||||
watchedProperties = [];
|
||||
for (boundOption in boundOptions) {
|
||||
if (boundOptions.hasOwnProperty(boundOption)) {
|
||||
if (boundOptions.hasOwnProperty(boundOption)) {
|
||||
watchedProperties.push(normalizePath(context, boundOptions[boundOption], data));
|
||||
}
|
||||
}
|
||||
@@ -17953,22 +18002,30 @@ Ember.Handlebars.resolvePaths = function(options) {
|
||||
var set = Ember.set, get = Ember.get;
|
||||
var Metamorph = requireModule('metamorph');
|
||||
|
||||
function notifyMutationListeners() {
|
||||
Ember.run.once(Ember.View, 'notifyMutationListeners');
|
||||
}
|
||||
|
||||
// DOMManager should just abstract dom manipulation between jquery and metamorph
|
||||
var DOMManager = {
|
||||
remove: function(view) {
|
||||
view.morph.remove();
|
||||
notifyMutationListeners();
|
||||
},
|
||||
|
||||
prepend: function(view, html) {
|
||||
view.morph.prepend(html);
|
||||
notifyMutationListeners();
|
||||
},
|
||||
|
||||
after: function(view, html) {
|
||||
view.morph.after(html);
|
||||
notifyMutationListeners();
|
||||
},
|
||||
|
||||
html: function(view, html) {
|
||||
view.morph.html(html);
|
||||
notifyMutationListeners();
|
||||
},
|
||||
|
||||
// This is messed up.
|
||||
@@ -17991,11 +18048,13 @@ var DOMManager = {
|
||||
morph.replaceWith(buffer.string());
|
||||
view.transitionTo('inDOM');
|
||||
view.triggerRecursively('didInsertElement');
|
||||
notifyMutationListeners();
|
||||
});
|
||||
},
|
||||
|
||||
empty: function(view) {
|
||||
view.morph.html("");
|
||||
notifyMutationListeners();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -18757,14 +18816,14 @@ EmberHandlebars.registerHelper('unless', function(context, options) {
|
||||
|
||||
Result in the following rendered output:
|
||||
|
||||
```html
|
||||
```html
|
||||
<img class="aValue">
|
||||
```
|
||||
|
||||
A boolean return value will insert a specified class name if the property
|
||||
returns `true` and remove the class name if the property returns `false`.
|
||||
|
||||
A class name is provided via the syntax
|
||||
A class name is provided via the syntax
|
||||
`somePropertyName:class-name-if-true`.
|
||||
|
||||
```javascript
|
||||
@@ -18919,9 +18978,9 @@ EmberHandlebars.registerHelper('bindAttr', function(options) {
|
||||
@method bindClasses
|
||||
@for Ember.Handlebars
|
||||
@param {Ember.Object} context The context from which to lookup properties
|
||||
@param {String} classBindings A string, space-separated, of class bindings
|
||||
@param {String} classBindings A string, space-separated, of class bindings
|
||||
to use
|
||||
@param {Ember.View} view The view in which observers should look for the
|
||||
@param {Ember.View} view The view in which observers should look for the
|
||||
element to update
|
||||
@param {Srting} bindAttrId Optional bindAttr id used to lookup elements
|
||||
@return {Array} An array of class names to add
|
||||
@@ -19610,7 +19669,7 @@ Ember.Handlebars.registerHelper('unbound', function(property, fn) {
|
||||
// Unbound helper call.
|
||||
options.data.isUnbound = true;
|
||||
helper = Ember.Handlebars.helpers[arguments[0]] || Ember.Handlebars.helperMissing;
|
||||
out = helper.apply(this, Array.prototype.slice.call(arguments, 1));
|
||||
out = helper.apply(this, Array.prototype.slice.call(arguments, 1));
|
||||
delete options.data.isUnbound;
|
||||
return out;
|
||||
}
|
||||
@@ -20905,7 +20964,7 @@ helpers = helpers || Ember.Handlebars.helpers; data = data || {};
|
||||
var buffer = '', stack1, hashTypes, escapeExpression=this.escapeExpression, self=this;
|
||||
|
||||
function program1(depth0,data) {
|
||||
|
||||
|
||||
var buffer = '', hashTypes;
|
||||
data.buffer.push("<option value=\"\">");
|
||||
hashTypes = {};
|
||||
@@ -20915,7 +20974,7 @@ function program1(depth0,data) {
|
||||
}
|
||||
|
||||
function program3(depth0,data) {
|
||||
|
||||
|
||||
var hashTypes;
|
||||
hashTypes = {'contentBinding': "STRING"};
|
||||
data.buffer.push(escapeExpression(helpers.view.call(depth0, "Ember.SelectOption", {hash:{
|
||||
@@ -20930,7 +20989,7 @@ function program3(depth0,data) {
|
||||
stack1 = helpers.each.call(depth0, "view.content", {hash:{},inverse:self.noop,fn:self.program(3, program3, data),contexts:[depth0],types:["ID"],hashTypes:hashTypes,data:data});
|
||||
if(stack1 || stack1 === 0) { data.buffer.push(stack1); }
|
||||
return buffer;
|
||||
|
||||
|
||||
}),
|
||||
attributeBindings: ['multiple', 'disabled', 'tabindex'],
|
||||
|
||||
@@ -23362,6 +23421,34 @@ function teardownView(route) {
|
||||
|
||||
|
||||
|
||||
(function() {
|
||||
Ember.onLoad('Ember.Handlebars', function() {
|
||||
var handlebarsResolve = Ember.Handlebars.resolveParams,
|
||||
map = Ember.ArrayPolyfills.map,
|
||||
get = Ember.get;
|
||||
|
||||
function resolveParams(context, params, options) {
|
||||
var resolved = handlebarsResolve(context, params, options);
|
||||
return map.call(resolved, unwrap);
|
||||
|
||||
function unwrap(object, i) {
|
||||
if (params[i] === 'controller') { return object; }
|
||||
|
||||
if (Ember.ControllerMixin.detect(object)) {
|
||||
return unwrap(get(object, 'model'));
|
||||
} else {
|
||||
return object;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ember.Router.resolveParams = resolveParams;
|
||||
});
|
||||
|
||||
})();
|
||||
|
||||
|
||||
|
||||
(function() {
|
||||
/**
|
||||
@module ember
|
||||
@@ -23371,7 +23458,7 @@ function teardownView(route) {
|
||||
var get = Ember.get, set = Ember.set;
|
||||
Ember.onLoad('Ember.Handlebars', function(Handlebars) {
|
||||
|
||||
var resolveParams = Ember.Handlebars.resolveParams,
|
||||
var resolveParams = Ember.Router.resolveParams,
|
||||
isSimpleClick = Ember.ViewUtils.isSimpleClick;
|
||||
|
||||
function fullRouteName(router, name) {
|
||||
@@ -23652,7 +23739,7 @@ Ember.onLoad('Ember.Handlebars', function(Handlebars) {
|
||||
*/
|
||||
Ember.onLoad('Ember.Handlebars', function(Handlebars) {
|
||||
|
||||
var resolveParams = Ember.Handlebars.resolveParams,
|
||||
var resolveParams = Ember.Router.resolveParams,
|
||||
isSimpleClick = Ember.ViewUtils.isSimpleClick;
|
||||
|
||||
var EmberHandlebars = Ember.Handlebars,
|
||||
@@ -24277,7 +24364,7 @@ Ember.HashLocation = Ember.Object.extend({
|
||||
|
||||
set(self, 'lastSetURL', null);
|
||||
|
||||
callback(location.hash.substr(1));
|
||||
callback(path);
|
||||
});
|
||||
});
|
||||
},
|
||||
@@ -24655,11 +24742,14 @@ var get = Ember.get, set = Ember.set,
|
||||
```
|
||||
|
||||
By default, calling `Ember.Application.create()` will automatically initialize
|
||||
your application by calling the `Ember.Application.initialize()` method. If
|
||||
your application by calling the `Ember.Application.initialize()` method. If
|
||||
you need to delay initialization, you can call your app's `deferReadiness()`
|
||||
method. When you are ready for your app to be initialized, call its
|
||||
`advanceReadiness()` method.
|
||||
|
||||
You can define a `ready` method on the `Ember.Application` instance, which
|
||||
will be run by Ember when the application is initialized.
|
||||
|
||||
Because `Ember.Application` inherits from `Ember.Namespace`, any classes
|
||||
you create will have useful string representations when calling `toString()`.
|
||||
See the `Ember.Namespace` documentation for more information.
|
||||
@@ -24854,10 +24944,13 @@ var Application = Ember.Application = Ember.Namespace.extend({
|
||||
this.scheduleInitialize();
|
||||
}
|
||||
|
||||
if ( Ember.LOG_VERSION ) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -25216,6 +25309,7 @@ Ember.Application.reopenClass({
|
||||
Ember.Container.defaultContainer = Ember.Container.defaultContainer || container;
|
||||
|
||||
container.set = Ember.set;
|
||||
container.normalize = normalize;
|
||||
container.resolver = resolverFor(namespace);
|
||||
container.optionsForType('view', { singleton: false });
|
||||
container.optionsForType('template', { instantiate: false });
|
||||
@@ -25255,6 +25349,7 @@ function resolverFor(namespace) {
|
||||
|
||||
if (type === 'template') {
|
||||
var templateName = name.replace(/\./g, '/');
|
||||
|
||||
if (Ember.TEMPLATES[templateName]) {
|
||||
return Ember.TEMPLATES[templateName];
|
||||
}
|
||||
@@ -25284,9 +25379,31 @@ function resolverFor(namespace) {
|
||||
};
|
||||
}
|
||||
|
||||
Ember.runLoadHooks('Ember.Application', Ember.Application);
|
||||
function normalize(fullName) {
|
||||
var split = fullName.split(':'),
|
||||
type = split[0],
|
||||
name = split[1];
|
||||
|
||||
|
||||
if (type !== 'template') {
|
||||
var result = name;
|
||||
|
||||
if (result.indexOf('.') > -1) {
|
||||
result = result.replace(/\.(.)/g, function(m) { return m[1].toUpperCase(); });
|
||||
}
|
||||
|
||||
if (name.indexOf('_') > -1) {
|
||||
result = result.replace(/_(.)/g, function(m) { return m[1].toUpperCase(); });
|
||||
}
|
||||
|
||||
return type + ':' + result;
|
||||
} else {
|
||||
return fullName;
|
||||
}
|
||||
}
|
||||
|
||||
Ember.runLoadHooks('Ember.Application', Ember.Application);
|
||||
|
||||
})();
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user