diff --git a/assets/scripts/app/controllers.coffee b/assets/scripts/app/controllers.coffee index 26a6043c..94c979fc 100644 --- a/assets/scripts/app/controllers.coffee +++ b/assets/scripts/app/controllers.coffee @@ -27,6 +27,7 @@ Travis.reopen require 'controllers/accounts' require 'controllers/builds' +require 'controllers/flash' require 'controllers/home' require 'controllers/profile' require 'controllers/repos' diff --git a/assets/scripts/app/controllers/flash.coffee b/assets/scripts/app/controllers/flash.coffee new file mode 100644 index 00000000..078ff97c --- /dev/null +++ b/assets/scripts/app/controllers/flash.coffee @@ -0,0 +1,7 @@ +Travis.FlashController = Ember.ArrayController.extend + init: -> + @_super.apply this, arguments + @set('content', Ember.A()) + + + diff --git a/assets/scripts/app/controllers/job.coffee b/assets/scripts/app/controllers/job.coffee deleted file mode 100644 index e69de29b..00000000 diff --git a/assets/scripts/app/routes.coffee b/assets/scripts/app/routes.coffee index 49bca579..6bf2ac83 100644 --- a/assets/scripts/app/routes.coffee +++ b/assets/scripts/app/routes.coffee @@ -6,7 +6,7 @@ Travis.Router = Ember.Router.extend showRoot: Ember.Route.transitionTo('root.home.show') showStats: Ember.Route.transitionTo('root.stats') - showRepo: Ember.Route.transitionTo('root.home.repo.show') + showRepo: Ember.Route.transitionTo('root.home.repo.show') showBuilds: Ember.Route.transitionTo('root.home.repo.builds.index') showBuild: Ember.Route.transitionTo('root.home.repo.builds.show') showPullRequests: Ember.Route.transitionTo('root.home.repo.pullRequests') @@ -117,6 +117,7 @@ Travis.Router = Ember.Router.extend router.get('homeController').connectOutlet 'right', 'sidebar' router.get('homeController').connectOutlet 'top', 'top' router.get('homeController').connectOutlet 'main', 'repo' + router.get('homeController').connectOutlet 'flash', 'flash' show: Ember.Route.extend route: '/' diff --git a/assets/scripts/app/templates/layouts/flash.hbs b/assets/scripts/app/templates/layouts/flash.hbs new file mode 100644 index 00000000..03394c57 --- /dev/null +++ b/assets/scripts/app/templates/layouts/flash.hbs @@ -0,0 +1,2 @@ +

{{view.message}}

+ diff --git a/assets/scripts/app/templates/layouts/home.hbs b/assets/scripts/app/templates/layouts/home.hbs index 8e1dc46b..e6c26fdc 100644 --- a/assets/scripts/app/templates/layouts/home.hbs +++ b/assets/scripts/app/templates/layouts/home.hbs @@ -8,6 +8,7 @@
+ {{outlet flash}} {{outlet main}}
diff --git a/assets/scripts/app/templates/layouts/profile.hbs b/assets/scripts/app/templates/layouts/profile.hbs index 49c4195d..1d636a93 100644 --- a/assets/scripts/app/templates/layouts/profile.hbs +++ b/assets/scripts/app/templates/layouts/profile.hbs @@ -8,6 +8,7 @@
+ {{outlet flash}} {{outlet main}}
diff --git a/assets/scripts/app/templates/layouts/simple.hbs b/assets/scripts/app/templates/layouts/simple.hbs index f12f1934..82f33937 100644 --- a/assets/scripts/app/templates/layouts/simple.hbs +++ b/assets/scripts/app/templates/layouts/simple.hbs @@ -4,6 +4,7 @@
+ {{outlet flash}} {{outlet main}}
diff --git a/assets/scripts/app/views.coffee b/assets/scripts/app/views.coffee index e9021235..c1684ac1 100644 --- a/assets/scripts/app/views.coffee +++ b/assets/scripts/app/views.coffee @@ -20,6 +20,7 @@ require 'ext/ember/namespace' require 'views/accounts' require 'views/build' +require 'views/flash' require 'views/job' require 'views/repo' require 'views/profile' diff --git a/assets/scripts/app/views/flash.coffee b/assets/scripts/app/views/flash.coffee new file mode 100644 index 00000000..14b52287 --- /dev/null +++ b/assets/scripts/app/views/flash.coffee @@ -0,0 +1,11 @@ +@Travis.reopen + FlashView: Travis.View.extend + elementId: 'flash' + templateName: 'layouts/flash' + + flashBinding: 'controller.firstObject' + classNameBindings: ['flash.type'] + messageBinding: 'flash.message' + + close: (event) -> + @get('controller').shiftObject() diff --git a/assets/styles/app/flash.sass b/assets/styles/app/flash.sass index b4c2648b..6be37843 100644 --- a/assets/styles/app/flash.sass +++ b/assets/styles/app/flash.sass @@ -1,9 +1,37 @@ @import "_mixins/all" -#flash-messages - position: absolute - left: 400px - top: 10px - font-size: 25px - color: #FFFFFF +#flash + display: none + margin: -20px -40px 20px -30px + padding: 15px 40px 15px 30px + color: gray + font-weight: bold + border-bottom: 1px solid $color-border-light + @include box-shadow(transparent 0 0 0 0, $color-border-normal 0 1px 6px 0, transparent 0 0 0 0, transparent 0 0 0 0) + + &.success, &.notice, &.error + display: block + + &.success + background-color: #ebfcc2 + + &.notice + background-color: lightGoldenrodYellow + + &.error + background-color: #f5d7d3 + + p + margin: 0 + + .close + display: block + position: absolute + top: 17px + right: 40px + width: 16px + height: 16px + background: inline-image('ui/close.png') no-repeat 0 0 + opacity: 0.5 + cursor: pointer diff --git a/public/scripts/app.js b/public/scripts/app.js index da89d307..8328a51b 100644 --- a/public/scripts/app.js +++ b/public/scripts/app.js @@ -29619,4 +29619,4 @@ var _require=function(){function c(a,c){document.addEventListener?a.addEventList ++g&&setTimeout(c,0)})}}(); (function(){!window.WebSocket&&window.MozWebSocket&&(window.WebSocket=window.MozWebSocket);if(window.WebSocket)Pusher.Transport=window.WebSocket,Pusher.TransportType="native";var c=(document.location.protocol=="http:"?Pusher.cdn_http:Pusher.cdn_https)+Pusher.VERSION,a=[];window.JSON||a.push(c+"/json2"+Pusher.dependency_suffix+".js");if(!window.WebSocket)window.WEB_SOCKET_DISABLE_AUTO_INITIALIZATION=!0,a.push(c+"/flashfallback"+Pusher.dependency_suffix+".js");var b=function(){return window.WebSocket?function(){Pusher.ready()}: function(){window.WebSocket?(Pusher.Transport=window.WebSocket,Pusher.TransportType="flash",window.WEB_SOCKET_SWF_LOCATION=c+"/WebSocketMain.swf",WebSocket.__addTask(function(){Pusher.ready()}),WebSocket.__initialize()):(Pusher.Transport=null,Pusher.TransportType="none",Pusher.ready())}}(),e=function(a){var b=function(){document.body?a():setTimeout(b,0)};b()},g=function(){e(b)};a.length>0?_require(a,g):g()})(); -;minispade.register('app', "(function() {(function() {\nminispade.require('auth');\nminispade.require('controllers');\nminispade.require('helpers');\nminispade.require('models');\nminispade.require('pusher');\nminispade.require('routes');\nminispade.require('slider');\nminispade.require('store');\nminispade.require('tailing');\nminispade.require('templates');\nminispade.require('views');\nminispade.require('config/locales');\nminispade.require('data/sponsors');\n\n Travis.reopen({\n App: Em.Application.extend({\n autoinit: false,\n currentUserBinding: 'auth.user',\n authStateBinding: 'auth.state',\n init: function() {\n this._super.apply(this, arguments);\n this.store = Travis.Store.create();\n this.store.loadMany(Travis.Sponsor, Travis.SPONSORS);\n this.set('auth', Travis.Auth.create({\n app: this,\n endpoint: Travis.config.api_endpoint\n }));\n this.slider = new Travis.Slider();\n this.pusher = new Travis.Pusher(Travis.config.pusher);\n return this.tailing = new Travis.Tailing();\n },\n signIn: function() {\n return this.get('auth').signIn();\n },\n signOut: function() {\n this.get('auth').signOut();\n return this.get('router').send('showRoot');\n },\n receive: function() {\n return this.store.receive.apply(this.store, arguments);\n },\n toggleSidebar: function() {\n var element;\n $('body').toggleClass('maximized');\n element = $('');\n $('#top .profile').append(element);\n Em.run.later((function() {\n return element.remove();\n }), 10);\n element = $('');\n $('#repo').append(element);\n return Em.run.later((function() {\n return element.remove();\n }), 10);\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=app");minispade.register('auth', "(function() {(function() {\n\n this.Travis.Auth = Ember.Object.extend({\n iframe: $('