it('returns a display name for a service', function() {
- var services = new models.ServiceList();
- assert.equal('mysql', services.createDisplayName('service-mysql'));
- assert.equal('mysql', services.createDisplayName('mysql'));
+ var service = new models.Service({id: 'mysql', exposed: false});
+ assert.equal('mysql', service.get('displayName'));
+ service = new models.Service({id: 'service-mysql', exposed: false});
+ assert.equal('mysql', service.get('displayName'));
+ });
+
+ it('updates the display name when the id changes', function() {
+ var service = new models.Service({id: 'service-mysql', exposed:
false});
+ assert.equal('mysql', service.get('displayName'));
+ service.set('id', 'service-flibbertigibbet');
+ assert.equal('flibbertigibbet', service.get('displayName'));
});
it('returns a display name for a unit', function() {
Reviewers: mp+154099_ code.launchpad. net,
Message:
Please take a look.
Description:
Fix bug 1157138
Make service displayName dynamic so that newly created services
accurately change their display when transitioning from ghost to real.
https:/ /code.launchpad .net/~gary/ juju-gui/ bug1157138/ +merge/ 154099
(do not edit description out of merge proposal)
Please review this at https:/ /codereview. appspot. com/7885045/
Affected files: models. js fakebackend. js
A [revision details]
M app/models/
M test/test_
M test/test_model.js
Index: [revision details]
=== added file '[revision details]'
--- [revision details] 2012-01-01 00:00:00 +0000
+++ [revision details] 2012-01-01 00:00:00 +0000
@@ -0,0 +1,2 @@
+Old revision: <email address hidden>
+New revision: <email address hidden>
Index: test/test_ fakebackend. js fakebackend. js' fakebackend. js 2013-03-12 13:50:44 +0000 fakebackend. js 2013-03-19 14:14:15 +0000
assert. isTrue( Y.Lang. isString( attrs.clientId) );
assert. deepEqual( attrs, { wordpress- 10',
destroyed: false,
initialized: true, db.units. get_units_ for_service( service) ;
assert. lengthOf( units, 1);
=== modified file 'test/test_
--- test/test_
+++ test/test_
@@ -100,15 +100,19 @@
delete attrs.clientId;
+ aggregated_status: undefined,
charm: 'cs:precise/
config: undefined,
+ constraints: undefined,
+ displayName: 'wordpress',
exposed: false,
id: 'wordpress',
name: 'wordpress',
- displayName: 'wordpress',
- subordinate: undefined
+ pending: false,
+ subordinate: false,
+ unit_count: undefined
});
var units = fakebackend.
Index: test/test_model.js model.js'
=== modified file 'test/test_
--- test/test_model.js 2013-03-08 18:57:11 +0000
+++ test/test_model.js 2013-03-19 14:19:14 +0000
@@ -360,9 +360,17 @@
});
it('returns a display name for a service', function() { ServiceList( ); equal(' mysql', services. createDisplayNa me('service- mysql') ); equal(' mysql', services. createDisplayNa me('mysql' )); equal(' mysql', service. get('displayNam e')); equal(' mysql', service. get('displayNam e')); equal(' mysql', service. get('displayNam e')); flibbertigibbet '); equal(' flibbertigibbet ', service. get('displayNam e'));
- var services = new models.
- assert.
- assert.
+ var service = new models.Service({id: 'mysql', exposed: false});
+ assert.
+ service = new models.Service({id: 'service-mysql', exposed: false});
+ assert.
+ });
+
+ it('updates the display name when the id changes', function() {
+ var service = new models.Service({id: 'service-mysql', exposed:
false});
+ assert.
+ service.set('id', 'service-
+ assert.
});
it('returns a display name for a unit', function() {
Index: app/models/ models. js models. js' models. js 2013-03-11 17:44:48 +0000 models. js 2013-03-19 14:19:14 +0000 Environment = Environment;
=== modified file 'app/models/
--- app/models/
+++ app/models/
@@ -77,9 +77,17 @@
});
models.
- var Service = Y.Base. create( 'service' , Y.Model, [], { create( 'service' , Y.Model, [], {}, { 'id').replace( 'service- ', '');
+ var Service = Y.Base.
ATTRS: {
- displayName: {},
+ displayName: {
+ /**
+ Dynamically calculate a display name that accounts for Juju Core
name
+ prefixes.
+ */
+ getter: function() {
+ return this.get(
+ }
+ },
name: {},
charm: {},
config: {},
@@ -101,31 +109,6 @@
var ServiceList = Y.Base. create( 'serviceList' , Y.ModelList, [], { 'service- ', ''); CalculatedValue s: function(obj) { 'displayName' , this.createDisp layName( obj.get( 'id'))) ; .superclass. add.apply( this, arguments); isArray( result) ) { each(result, this._setDefaul tsAndCalculated Values, this); tsAndCalculated Values( result) ;
model: Service,
- /**
- * Create a display name that can be used in the views as an entity
label
- * agnostic from juju type.
- *
- * @method createDisplayName
- * @param {String} name The name to modify.
- * @return {String} A display name.
- */
- createDisplayName: function(name) {
- return name.replace(
- },
-
- _setDefaultsAnd
- obj.set(
- },
-
- add: function() {
- var result = ServiceUnitList
- if (Y.Lang.
- Y.Array.
- } else {
- this._setDefaul
- }
- return result;
- },
process_ delta: function(action, data) {
_process_ delta(this, action, data, {exposed: false});