logster 1.3.4 → 1.4.0.pre

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0608d174400cad75107bb0972a948a7d79305b1a67a89029a4cc6c3d1879170b'
4
- data.tar.gz: af46d5795445558f1232b29d205ec7fba05f2de1b2fddf184bc4f5150a57e737
3
+ metadata.gz: 704e5f54b6fb95470fcf7389710c45e899f22ea7da2bcc65639fb79512d3e374
4
+ data.tar.gz: 673fd0c04c7e048dee1bf24025d9e2324a9c367a90bde080f49138d03cf45d4d
5
5
  SHA512:
6
- metadata.gz: c4814225667dbef518c0c9025c2e2f01e9c47e8b8f911ee6e3535fa0afcac4542382c3797b1896535e2f4b663fb2014579f7349065cf232fc497af88e23b158d
7
- data.tar.gz: ac663209f2730c812af71b5d32dc2d291b853c656f2f36c6531fd8ab65a1e14a550778a4246a91176edeede99e5d9c5afbdac87369ddf6fd94dd860d6ad23815
6
+ metadata.gz: 370a818a8bdddb495be4f4cf1aa2a3666d761ce28acc2e20b79a76c289acb3829f410b96078d6b5b0d70b813aada7a6242466a62c19d173b1ed42df14c84f1f0
7
+ data.tar.gz: 10fd9f0292116941dcbc0180ff0534895ea2b9688997840d24021bcb2aa88163f7947f66f9684c4ab78aef81a1bcfb77fab2f9a67c78b5432762425f81200a18
data/.travis.yml CHANGED
@@ -5,11 +5,12 @@ matrix:
5
5
 
6
6
  rvm:
7
7
  - 2.3.4
8
+ - 2.5.3
8
9
 
9
10
  services:
10
11
  - redis-server
11
12
 
12
13
  before_install:
13
- - gem install bundler
14
+ - gem install bundler -v 1.17.2
14
15
 
15
16
  sudo: false
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # CHANGELOG
2
2
 
3
+ - 2019-01-09: Version 1.4.0
4
+ - FEATURE: allow navigation through merged errors
5
+ - FEATURE: search should look at env
6
+ - FIX: deselect message if new filtering doesn't include selected message
7
+ - UX: don't give timestamps more space than they need; use `div`s with flexbox instead of `table`
8
+ - FIX: hide "load more" when there are no more messages and filters/search applied
9
+
3
10
  - 2018-12-30: Version 1.3.4
4
11
  - FIX: linear-gradient issue on iOS
5
12
  - FIX: actions menu should have highest z-index
data/README.md CHANGED
@@ -93,7 +93,7 @@ Logster UI is built using [Ember.js](http://emberjs.com/)
93
93
  2. Create your feature branch (`git checkout -b my-new-feature`)
94
94
  3. Run `cd client-app && npm install`
95
95
  4. Run `rake client_dev` to start Sinatra server (port 9292) and Ember server (port 4200). Use Ember server for hot reload for client code.
96
- 5. Once you're done making changes, run `./build_client_app.sh` to make and copy a production build to the assets folder. (Shutting down the rake task will do this step automatically for you)
96
+ 5. Once you're done making changes, run `./build_client_app.sh` to make and copy a production build to the assets folder.
97
97
  6. Commit your changes (`git commit -am 'Add some feature'`)
98
98
  7. Push to the branch (`git push origin my-new-feature`)
99
99
  8. Create a new Pull Request
data/Rakefile CHANGED
@@ -15,9 +15,6 @@ task :client_dev do
15
15
  Process.wait pid
16
16
  Process.wait pid2
17
17
  rescue Interrupt => e
18
- sleep 0.5
19
- puts "Doing final build and copying build files to the assets folder..."
20
- `./build_client_app.sh`
21
18
  puts "Done!"
22
19
  exit 0
23
20
  end
@@ -2,38 +2,43 @@
2
2
  define("client-app/app",["exports","client-app/resolver","ember-load-initializers","client-app/config/environment"],function(e,t,n,a){Object.defineProperty(e,"__esModule",{value:!0})
3
3
  var s=Ember.Application.extend({modulePrefix:a.default.modulePrefix,podModulePrefix:a.default.podModulePrefix,Resolver:t.default});(0,n.default)(s,a.default.modulePrefix),e.default=s}),define("client-app/components/actions-menu",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({showMenu:!1,tagName:"span",init:function(){this._super.apply(this,arguments),this.bindingFunction=this.bindingFunction.bind(this)},bindingFunction:function(e){var t=this.$()[0]
4
4
  Em.$.contains(t,e.target)||t===e.target||this.set("showMenu",!1)},bindDocument:Ember.observer("showMenu",function(){var e=Em.$(document)
5
- this.get("showMenu")?e.on("click",this.get("bindingFunction")):e.unbind("click",this.get("bindingFunction"))}),actions:{expandMenu:function(){this.toggleProperty("showMenu")},share:function(){this.share()}}})}),define("client-app/components/message-info",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({buttons:Ember.computed("currentMessage.{canSolve,protected}",function(){var e=this.get("currentMessage.canSolve"),t=this.get("currentMessage.protected"),n=[]
5
+ this.get("showMenu")?e.on("click",this.get("bindingFunction")):e.unbind("click",this.get("bindingFunction"))}),actions:{expandMenu:function(){this.toggleProperty("showMenu")},share:function(){this.share()}}})}),define("client-app/components/env-tab",["exports","client-app/lib/utilities"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({current:1,didUpdateAttrs:function(){this.set("current",1)},isEnvArray:Ember.computed("message.env",function(){return Array.isArray(this.get("message.env"))}),html:Ember.computed("isEnvArray","current",function(){if(this.get("isEnvArray")){var e=this.get("message.env")[this.get("current")-1]
6
+ return(0,t.buildHashString)(e)}return(0,t.buildHashString)(this.get("message.env"))}),disableBackButtons:Ember.computed("current",function(){return 1===this.get("current")}),disableForwardButtons:Ember.computed("current","message.env.length",function(){return this.get("current")===this.get("message.env.length")}),actions:{takeStep:function(e){var t="back"===e?-1:1
7
+ this.set("current",this.get("current")+t)},bigJump:function(e){var t="back"===e?1:this.get("message.env.length")
8
+ this.set("current",t)}}})}),define("client-app/components/message-info",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({buttons:Ember.computed("currentMessage.{canSolve,protected}",function(){var e=this.get("currentMessage.canSolve"),t=this.get("currentMessage.protected"),n=[]
6
9
  return!t&&e&&n.push({klass:"solve",action:"solve",icon:"check-square-o",label:"Solve",danger:!0}),t?n.push({klass:"unprotect",action:"unprotect",icon:"unlock",label:"Unprotect"}):n.push({klass:"remove",action:"remove",icon:"trash-o",label:"Remove",danger:!0},{klass:"protect",action:"protect",icon:"lock",label:"Protect"}),n}),actions:{protect:function(){this.get("currentMessage").protect()},unprotect:function(){this.get("currentMessage").unprotect()},remove:function(){this.removeMessage(this.get("currentMessage"))},solve:function(){this.solveMessage(this.get("currentMessage"))},share:function(){window.location.pathname=this.get("currentMessage.shareUrl")}}})}),define("client-app/components/message-row",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0})
7
10
  var t=void 0,n=void 0
8
- e.default=Ember.Component.extend({tagName:"tr",classNameBindings:["model.rowClass",":message-row","model.selected:selected"],click:function(){this.selectedMessage(this.get("model"))},willInsertElement:function(){if(!t){var e=Em.$("#top-panel"),a=e.scrollTop(),s=e.height(),i=e[0].scrollHeight
11
+ e.default=Ember.Component.extend({tagName:"div",classNameBindings:["model.rowClass",":message-row","model.selected:selected"],click:function(){this.selectedMessage(this.get("model"))},willInsertElement:function(){if(!t){var e=Em.$("#top-panel"),a=e.scrollTop(),s=e.height(),i=e[0].scrollHeight
9
12
  n=i-20<s+a,t=!0}},didInsertElement:function(){var e=Em.$("#top-panel")
10
13
  Em.run.next(function(){t=!1,n&&(n=!1,e.scrollTop(e[0].scrollHeight-e.height()))})}})}),define("client-app/components/panel-resizer",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0})
11
14
  var t=["touchmove","mousemove"],n=["touchend","mouseup"],a=["touchstart","mousedown"]
12
15
  e.default=Ember.Component.extend({classNames:["divider"],divideView:function(e,t){var n=t||Em.$(window),a=n.height(),s=n.height()-e
13
16
  e<100||e+170>a||(this.divider.css("bottom",s-5),this.events.trigger("panelResized",s))},didInsertElement:function(){var e=this
14
17
  this.divider=Em.$(".divider")
15
- var s=Em.$(window),i=!1,o=function(t){i&&e.divideView(t.clientY||t.touches&&t.touches[0]&&t.touches[0].clientY,s)},r=function a(){Em.$("#overlay").remove(),i=!1,localStorage&&(localStorage.logster_divider_bottom=parseInt(e.divider.css("bottom"),10))
18
+ var s=Em.$(window),i=!1,r=function(t){i&&e.divideView(t.clientY||t.touches&&t.touches[0]&&t.touches[0].clientY,s)},o=function a(){Em.$("#overlay").remove(),i=!1,localStorage&&(localStorage.logster_divider_bottom=parseInt(e.divider.css("bottom"),10))
16
19
  var s=Em.$(document)
17
- t.forEach(function(e){return s.unbind(e,o)}),n.forEach(function(e){return s.unbind(e,a)})}
18
- this.divider.on(a.join(" "),function(e){e.preventDefault(),Em.$("<div id='overlay'></div>").appendTo(Em.$("body")),i=!0,Em.$(document).on(t.join(" "),_.throttle(o,25)).on(n.join(" "),r)}),Em.run.next(function(){if(localStorage&&localStorage.logster_divider_bottom){var t=s.height()-parseInt(localStorage.logster_divider_bottom,10)
19
- e.divideView(t,s)}})},willDestroyElement:function(){Em.$(".divider").off(a.join(" "))}})}),define("client-app/components/tab-contents",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({classNameBindings:["active",":content"],isLink:!1,invokeParent:function(e){for(var t=this.get("parentView");t&&!t[e];)t=t.get("parentView")
20
+ t.forEach(function(e){return s.unbind(e,r)}),n.forEach(function(e){return s.unbind(e,a)})}
21
+ this.divider.on(a.join(" "),function(e){e.preventDefault(),Em.$("<div id='overlay'></div>").appendTo(Em.$("body")),i=!0,Em.$(document).on(t.join(" "),_.throttle(r,25)).on(n.join(" "),o)}),Em.run.next(function(){var t=localStorage&&localStorage.logster_divider_bottom||300,n=s.height()-parseInt(t,10)
22
+ e.divideView(n,s)})},willDestroyElement:function(){Em.$(".divider").off(a.join(" "))}})}),define("client-app/components/tab-contents",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({classNameBindings:["active",":content"],isLink:!1,invokeParent:function(e){for(var t=this.get("parentView");t&&!t[e];)t=t.get("parentView")
20
23
  t&&t[e](this)},didInsertElement:function(){this.invokeParent("addTab"),this.get("defaultTab")&&this.invokeParent("selectTab")},willDestroyElement:function(){this.invokeParent("removeTab")}})}),define("client-app/components/tab-link",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({isLink:!0})}),define("client-app/components/tabbed-section",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tabs:Em.A(),selectTab:function(e){if(e.get("isLink"))this.triggerAction(e.get("action"))
21
24
  else{var t=this.get("selected")
22
25
  t&&t.set("active",!1),this.set("selected",e),e.set("active",!0)}},addTab:function(e){this.get("tabs").addObject(e),this.get("selected")||e.get("isLink")||this.selectTab(e)},removeTab:function(e){this.get("selected")===e&&this.set("selected",null),this.get("tabs").removeObject(e)}})}),define("client-app/components/time-formatter",["exports","client-app/lib/utilities"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({tagName:"span",classNames:"auto-update-time",attributeBindings:["dataTimestamp:data-timestamp","title"],title:Ember.computed(function(){return this.get("moment").format()}),dataTimestamp:Ember.computed(function(){return this.get("timestamp")}),moment:Ember.computed(function(){return moment(this.get("timestamp"))}),time:Ember.computed("timestamp",function(){return(0,t.formatTime)(this.get("timestamp"))})})}),define("client-app/components/update-time",["exports","client-app/lib/utilities"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({didInsertElement:function(){Em.run.later(function e(){Em.$(".auto-update-time").each(function(){var e=parseInt(this.getAttribute("data-timestamp"),10),n=(0,t.formatTime)(e)
23
26
  n!==this.innerText&&(this.innerText=n)}),Em.run.later(e,6e4)},6e4)}})}),define("client-app/controllers/index",["exports","client-app/lib/utilities"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({currentMessage:Em.computed.alias("model.currentMessage"),resizePanels:function(e){Em.$("#bottom-panel").css("height",e-13),Em.$("#top-panel").css("bottom",e+12)},actionsInMenu:Ember.computed(function(){return this.site.isMobile}),actions:{expandMessage:function(e){e.expand()},selectMessage:function(e){var t=this.get("currentMessage")
24
27
  t&&t.set("selected",!1),e.set("selected",!0),this.set("currentMessage",e)},showMoreBefore:function(){this.get("model").showMoreBefore()},loadMore:function(){return this.get("model").loadMore()},clear:function(){var e=this
25
- confirm("Clear the logs?\n\nCancel = No, OK = Clear")&&(0,t.ajax)("/clear",{type:"POST"}).then(function(){e.get("model").reload()})},removeMessage:function(e){this.get("model").destroy(e)},solveMessage:function(e){this.get("model").solve(e)}},filterChanged:Ember.observer("showDebug","showInfo","showWarn","showErr","showFatal",function(){var e=this,t=[];["Debug","Info","Warn","Err","Fatal"].forEach(function(n,a){e.get("show"+n)&&t.push(a)}),t.push(5)
28
+ confirm("Clear the logs?\n\nCancel = No, OK = Clear")&&(0,t.ajax)("/clear",{type:"POST"}).then(function(){e.get("model").reload()})},removeMessage:function(e){this.get("model").destroy(e)},solveMessage:function(e){this.get("model").solve(e)}},updateSelectedMessage:function(){var e=this.get("currentMessage.key"),t=this.get("model.messages")
29
+ if(e&&t){var n=t.find(function(t){return t.key===e})
30
+ n?n.set("selected",!0):this.set("currentMessage",null)}},filterChanged:Ember.observer("showDebug","showInfo","showWarn","showErr","showFatal",function(){var e=this,t=[];["Debug","Info","Warn","Err","Fatal"].forEach(function(n,a){e.get("show"+n)&&t.push(a)}),t.push(5)
26
31
  var n=this.get("model")
27
- n.set("filter",t),this.get("initialized")&&n.reload()}),searchChanged:Ember.observer("search",function(){var e=this.get("search"),t=this.get("model")
28
- t.set("search",e),this.get("initialized")&&t.reload()})})}),define("client-app/controllers/show",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({actions:{protect:function(){this.get("model").protect()},unprotect:function(){this.get("model").unprotect()}}})}),define("client-app/helpers/app-version",["exports","client-app/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){function a(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=t.default.APP.version,i=a.versionOnly||a.hideSha,o=a.shaOnly||a.hideVersion,r=null
29
- return i&&(a.showExtended&&(r=s.match(n.versionExtendedRegExp)),r||(r=s.match(n.versionRegExp))),o&&(r=s.match(n.shaRegExp)),r?r[0]:s}Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=a,e.default=Ember.Helper.helper(a)}),define("client-app/helpers/pluralize",["exports","ember-inflector/lib/helpers/pluralize"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=t.default}),define("client-app/helpers/singularize",["exports","ember-inflector/lib/helpers/singularize"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=t.default}),define("client-app/initializers/app-init",["exports","client-app/lib/utilities","client-app/lib/preload"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=s
32
+ n.set("filter",t),this.get("initialized")&&n.reload().then(function(){return e.updateSelectedMessage()})}),searchChanged:Ember.observer("search",function(){var e=this,t=this.get("search"),n=this.get("model")
33
+ n.set("search",t),this.get("initialized")&&n.reload().then(function(){return e.updateSelectedMessage()})})})}),define("client-app/controllers/show",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Controller.extend({actions:{protect:function(){this.get("model").protect()},unprotect:function(){this.get("model").unprotect()}}})}),define("client-app/helpers/app-version",["exports","client-app/config/environment","ember-cli-app-version/utils/regexp"],function(e,t,n){function a(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=t.default.APP.version,i=a.versionOnly||a.hideSha,r=a.shaOnly||a.hideVersion,o=null
34
+ return i&&(a.showExtended&&(o=s.match(n.versionExtendedRegExp)),o||(o=s.match(n.versionRegExp))),r&&(o=s.match(n.shaRegExp)),o?o[0]:s}Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=a,e.default=Ember.Helper.helper(a)}),define("client-app/helpers/pluralize",["exports","ember-inflector/lib/helpers/pluralize"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=t.default}),define("client-app/helpers/singularize",["exports","ember-inflector/lib/helpers/singularize"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=t.default}),define("client-app/initializers/app-init",["exports","client-app/lib/utilities","client-app/lib/preload"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=s
30
35
  var a=["component","route"]
31
36
  function s(e){moment.updateLocale("en",{relativeTime:{future:"in %s",past:"%s ago",s:"secs",m:"a min",mm:"%d mins",h:"an hr",hh:"%d hrs",d:"a day",dd:"%d days",M:"a mth",MM:"%d mths",y:"a yr",yy:"%d yrs"}})
32
37
  var s=document.getElementById("preloaded-data").dataset;(0,n.init)(s)
33
- var i=void 0,o=void 0;["","webkit","ms","moz","ms"].forEach(function(e){var t=e+(""===e?"hidden":"Hidden")
34
- void 0===document[t]||i||(i=t,o=e+"visibilitychange")}),(0,t.updateHiddenProperty)(i),document.addEventListener(o,function(){(0,t.resetTitleCount)()},!1),e.register("events:main",Ember.Object.extend(Ember.Evented).create(),{instantiate:!1}),a.forEach(function(t){return e.inject(t,"events","events:main")})
35
- var r=/mobile/i.test(navigator.userAgent)&&!/iPad/.test(navigator.userAgent)
36
- r&&Em.$("body").addClass("mobile"),e.register("site:main",{isMobile:r},{instantiate:!1}),e.inject("controller","site","site:main")}e.default={initialize:s}}),define("client-app/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","client-app/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0})
38
+ var i=void 0,r=void 0;["","webkit","ms","moz","ms"].forEach(function(e){var t=e+(""===e?"hidden":"Hidden")
39
+ void 0===document[t]||i||(i=t,r=e+"visibilitychange")}),(0,t.updateHiddenProperty)(i),document.addEventListener(r,function(){(0,t.resetTitleCount)()},!1),e.register("events:main",Ember.Object.extend(Ember.Evented).create(),{instantiate:!1}),a.forEach(function(t){return e.inject(t,"events","events:main")})
40
+ var o=/mobile/i.test(navigator.userAgent)&&!/iPad/.test(navigator.userAgent)
41
+ o&&Em.$("body").addClass("mobile"),e.register("site:main",{isMobile:o},{instantiate:!1}),e.inject("controller","site","site:main")}e.default={initialize:s}}),define("client-app/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","client-app/config/environment"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0})
37
42
  var a=void 0,s=void 0
38
43
  n.default.APP&&(a=n.default.APP.name,s=n.default.APP.version),e.default={name:"App Version",initialize:(0,t.default)(a,s)}}),define("client-app/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0]
39
44
  e.register("container-debug-adapter:main",t.default),e.inject("container-debug-adapter:main","namespace","application:main")}}}),define("client-app/initializers/ember-data",["exports","ember-data/setup-container","ember-data"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"ember-data",initialize:t.default}}),define("client-app/initializers/export-application-global",["exports","client-app/config/environment"],function(e,t){function n(){var e=arguments[1]||arguments[0]
@@ -45,36 +50,39 @@ n=self}var a,s=t.default.exportApplicationGlobal
45
50
  a="string"==typeof s?s:Ember.String.classify(t.default.modulePrefix),n[a]||(n[a]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[a]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=n,e.default={name:"export-application-global",initialize:n}}),define("client-app/instance-initializers/ember-data",["exports","ember-data/initialize-store-service"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"ember-data",initialize:t.default}}),define("client-app/lib/preload",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.init=function(e){t={rootPath:e.rootPath,preload:JSON.parse(e.preloaded)}}
46
51
  var t=void 0
47
52
  e.default={get:function(e){return Em.get(t,e)}}}),define("client-app/lib/utilities",["exports","client-app/lib/preload"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.escapeHtml=s,e.ajax=i,e.preloadOrAjax=function(e,n){var a=t.default.get("preload."+e.replace(".json",""))
48
- return a?Em.RSVP.resolve(a):i(e,n)},e.updateHiddenProperty=function(e){o=e},e.isHidden=c,e.increaseTitleCount=function(e){if(!c())return
49
- r=r||document.title,l=l||0,l+=e,document.title=r+" ("+l+")"},e.resetTitleCount=function(){l=0,document.title=r||document.title},e.formatTime=function(e){var t=void 0,n=moment(e),a=moment()
53
+ return a?Em.RSVP.resolve(a):i(e,n)},e.updateHiddenProperty=function(e){r=e},e.isHidden=c,e.increaseTitleCount=function(e){if(!c())return
54
+ o=o||document.title,l=l||0,l+=e,document.title=o+" ("+l+")"},e.resetTitleCount=function(){l=0,document.title=o||document.title},e.formatTime=function(e){var t=void 0,n=moment(e),a=moment()
50
55
  t=n.diff(a.startOf("day"))>0?n.format("h:mm a"):n.diff(a.startOf("week"))>0?n.format("dd h:mm a"):n.diff(a.startOf("year"))>0?n.format("D MMM h:mm a"):n.format("D MMM YY")
51
56
  return t},e.buildArrayString=u,e.buildHashString=function e(t,a){if(!t)return""
52
57
  var i=[]
53
- var o=[]
54
- _.each(t,function(e,t){null===e?i.push("null"):"[object Array]"===Object.prototype.toString.call(e)?i.push("<tr><td>"+s(t)+"</td><td>"+u(e)+"</td></tr>"):"object"===(void 0===e?"undefined":n(e))?o.push(t):i.push("<tr><td>"+s(t)+"</td><td>"+s(e)+"</td></tr>")})
55
- _.size(o)>0&&_.each(o,function(n){var a=t[n]
58
+ var r=[]
59
+ _.each(t,function(e,t){null===e?i.push("null"):"[object Array]"===Object.prototype.toString.call(e)?i.push("<tr><td>"+s(t)+"</td><td>"+u(e)+"</td></tr>"):"object"===(void 0===e?"undefined":n(e))?r.push(t):i.push("<tr><td>"+s(t)+"</td><td>"+s(e)+"</td></tr>")})
60
+ _.size(r)>0&&_.each(r,function(n){var a=t[n]
56
61
  i.push("<tr><td></td><td><table>"),i.push("<td>"+s(n)+"</td><td>"+e(a,!0)+"</td>"),i.push("</table></td></tr>")})
57
- var r=a?"":"env-table"
58
- return"<table class='"+r+"'>"+i.join("\n")+"</table>"}
62
+ var o=a?"":"env-table"
63
+ return"<table class='"+o+"'>"+i.join("\n")+"</table>"}
59
64
  var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"}
60
- function s(e){return String(e).replace(/[&<>"'\/]/g,function(e){return a[e]})}function i(e,n){return(n=n||{}).headers=n.headers||{},n.headers["X-SILENCE-LOGGER"]=!0,Em.$.ajax(t.default.get("rootPath")+e,n)}var o=void 0,r=void 0,l=void 0
61
- function c(){return void 0!==o?document[o]:!document.hasFocus}function u(e){var t=[]
62
- return e.forEach(function(e){null===e?t.push("null"):"[object Array]"===Object.prototype.toString.call(e)?t.push(u(e)):t.push(s(e.toString()))}),"["+t.join(", ")+"]"}}),define("client-app/models/message-collection",["exports","client-app/lib/utilities","client-app/models/message"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Em.Object.extend({messages:Em.A(),currentMessage:null,total:0,solve:function(e){var t=this
65
+ function s(e){return String(e).replace(/[&<>"'\/]/g,function(e){return a[e]})}function i(e,n){return(n=n||{}).headers=n.headers||{},n.headers["X-SILENCE-LOGGER"]=!0,Em.$.ajax(t.default.get("rootPath")+e,n)}var r=void 0,o=void 0,l=void 0
66
+ function c(){return void 0!==r?document[r]:!document.hasFocus}function u(e){var t=[]
67
+ return e.forEach(function(e){null===e?t.push("null"):"[object Array]"===Object.prototype.toString.call(e)?t.push(u(e)):t.push(s(e.toString()))}),"["+t.join(", ")+"]"}}),define("client-app/models/message-collection",["exports","client-app/lib/utilities","client-app/models/message"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0})
68
+ e.default=Em.Object.extend({messages:Em.A(),currentMessage:null,total:0,solve:function(e){var t=this
63
69
  e.solve().then(function(){t.reload()})},destroy:function(e){var t=this.get("messages"),n=t.indexOf(e)
64
70
  e.destroy(),e.set("selected",!1),this.set("total",this.get("total")-1),this.get("messages").removeObject(e),n>0?((e=t[n-1]).set("selected",!0),this.set("currentMessage",e)):this.get("total")>0?((e=t[0]).set("selected",!0),this.set("currentMessage",e)):this.reload()},load:function(e){var n=this
65
71
  e=e||{}
66
72
  var a={filter:this.get("filter").join("_")},s=this.get("search")
67
73
  _.isEmpty(s)||(a.search=s,this.get("regexSearch")&&(a.regex_search="true"))
68
- e.before&&(a.before=e.before),e.after&&(a.after=e.after),(0,t.ajax)("/messages.json",{data:a}).then(function(a){if(0==Ember.compare(a.filter,n.get("filter"))&&0==Ember.compare(a.search,n.get("search"))){if(a.messages.length>0){var s=n.toMessages(a.messages),i=n.get("messages")
69
- e.before?i.unshiftObjects(s):(s.forEach(function(e){i.forEach(function(t){t.key==e.key&&(i.removeObject(t),n.get("currentMessage")===t&&(n.set("currentMessage",e),e.set("selected",t.get("selected"))))})}),i.addObjects(s),s.length>0&&(0,t.increaseTitleCount)(s.length))}n.set("total",a.total)}})},reload:function(){this.set("total",0),this.get("messages").clear(),this.load()},loadMore:function(){var e=this.get("messages")
74
+ return e.before&&(a.before=e.before),e.after&&(a.after=e.after),(0,t.ajax)("/messages.json",{data:a}).then(function(a){if(0==Ember.compare(a.filter,n.get("filter"))&&0==Ember.compare(a.search,n.get("search"))){if(a.messages.length>0){var s=n.toMessages(a.messages),i=n.get("messages")
75
+ e.before?i.unshiftObjects(s):(s.forEach(function(e){i.forEach(function(t){t.key==e.key&&(i.removeObject(t),n.get("currentMessage")===t&&(n.set("currentMessage",e),e.set("selected",t.get("selected"))))})}),i.addObjects(s),s.length>0&&(0,t.increaseTitleCount)(s.length))}return n.set("total",a.total),a}})},reload:function(){var e=this
76
+ return this.set("total",0),this.get("messages").clear(),this.load().then(function(t){return e.updateCanLoadMore(t)})},updateCanLoadMore:function(e){e&&(e.messages.length<50?this.set("canLoadMore",!1):this.set("canLoadMore",!0))},loadMore:function(){var e=this.get("messages")
70
77
  if(0!==e.length){var t=e[e.length-1].get("key")
71
- this.load({after:t})}else this.load({})},moreBefore:Ember.computed("totalBefore",function(){return this.get("totalBefore")>0}),totalBefore:Ember.computed("total","messages.length",function(){return this.get("total")-this.get("messages").length}),showMoreBefore:function(){var e=this.get("messages")[0].get("key")
72
- this.load({before:e})},regexSearch:Ember.computed("search",function(){var e=this.get("search")
78
+ this.load({after:t})}else this.load({})},hideCountInLoadMore:Ember.computed("search","filter",function(){var e=this.get("search"),t=this.get("filter")
79
+ return e&&e.length>0||t&&t.length<6}),moreBefore:Ember.computed("messages.length","canLoadMore",function(){return this.get("messages.length")>=50&&this.get("canLoadMore")}),totalBefore:Ember.computed("total","messages.length",function(){return this.get("total")-this.get("messages").length}),showMoreBefore:function(){var e=this,t=this.get("messages")[0].get("key")
80
+ this.load({before:t}).then(function(t){return e.updateCanLoadMore(t)})},regexSearch:Ember.computed("search",function(){var e=this.get("search")
73
81
  if(e&&e.length>2&&"/"===e[0]){var t=e.match(/\/(.*)\/(.*)/)
74
82
  if(t&&3===t.length)try{return new RegExp(t[1],t[2])}catch(n){}}}),toMessages:function(e){return e.map(function(e){return n.default.create(e)})}})}),define("client-app/models/message",["exports","client-app/lib/utilities","client-app/lib/preload"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Em.Object.extend({MAX_LEN:200,expand:function(){this.set("expanded",!0)},solve:function(){return(0,t.ajax)("/solve/"+this.get("key"),{type:"PUT"})},destroy:function(){return(0,t.ajax)("/message/"+this.get("key"),{type:"DELETE"})},protect:function(){return this.set("protected",!0),(0,t.ajax)("/protect/"+this.get("key"),{type:"PUT"})},unprotect:function(){return this.set("protected",!1),(0,t.ajax)("/unprotect/"+this.get("key"),{type:"DELETE"})},showCount:Ember.computed("count",function(){return this.get("count")>1}),hasMore:Ember.computed("message","expanded",function(){var e=this.get("message")
75
83
  return!this.get("expanded")&&e.length>this.MAX_LEN}),shareUrl:Ember.computed("key",function(){return n.default.get("rootPath")+"/show/"+this.get("key")}),displayMessage:Ember.computed("message","expanded",function(){var e=this.get("message")
76
- return!this.get("expanded")&&e.length>this.MAX_LEN&&(e=e.substr(0,this.MAX_LEN)),e}),updateFromObject:function(e){this.set("count",e.get("count"))},canSolve:Ember.computed(function(){var e=this.get("backtrace")
77
- return this.get("env.application_version")&&e&&e.length>0}),envTable:Ember.computed("env",function(){return(0,t.buildHashString)(this.get("env"))}),rowClass:Ember.computed("severity",function(){switch(this.get("severity")){case 0:return"debug"
84
+ return!this.get("expanded")&&e.length>this.MAX_LEN&&(e=e.substr(0,this.MAX_LEN)),e}),updateFromObject:function(e){this.set("count",e.get("count"))},canSolve:Ember.computed(function(){var e=this.get("backtrace"),t=this.get("env")
85
+ return(Array.isArray(t)?t.map(function(e){return e.application_version}).compact().join(""):t.application_version)&&e&&e.length>0}),rowClass:Ember.computed("severity",function(){switch(this.get("severity")){case 0:return"debug"
78
86
  case 1:return"info"
79
87
  case 2:return"warn"
80
88
  case 3:return"error"
@@ -87,6 +95,6 @@ n.map(function(){this.route("index",{path:"/"}),this.route("show",{path:"/show/:
87
95
  var a=0,s=1
88
96
  this.refreshInterval=setInterval(function(){a+=1
89
97
  var e=(0,n.isHidden)(),i=!e
90
- e&&a%s==0&&(i=!0,s<20&&s++),i&&(t.loadMore(),e||(s=1))},3e3),this.events.on("panelResized",function(t){e.resizePanels(t)})},deactivate:function(){clearInterval(this.refreshInterval)}})}),define("client-app/routes/show",["exports","client-app/models/message","client-app/lib/utilities"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({model:function(e){return(0,n.preloadOrAjax)("/show/"+e.id+".json")},setupController:function(e,n){this._super.apply(this,arguments),e.set("model",t.default.create(n))}})}),define("client-app/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})
91
- define("client-app/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"yOsrYpw5",block:'{"symbols":[],"statements":[[1,[21,"update-time"],false],[0,"\\n"],[1,[21,"outlet"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/application.hbs"}})}),define("client-app/templates/components/actions-menu",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"ebB3+Z4x",block:'{"symbols":["&default"],"statements":[[4,"if",[[23,["actionsInMenu"]]],null,{"statements":[[4,"if",[[23,["showMenu"]]],null,{"statements":[[0," "],[7,"div"],[11,"class","actions-menu"],[9],[0,"\\n "],[14,1],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[7,"button"],[11,"class","expand btn no-text"],[3,"action",[[22,0,[]],"expandMenu"]],[9],[7,"i"],[11,"class","fa fa-ellipsis-h"],[9],[10],[10],[0,"\\n "],[7,"button"],[11,"class","share btn"],[3,"action",[[22,0,[]],"share"]],[9],[7,"i"],[11,"class","fa fa-share"],[9],[10],[7,"span"],[9],[0,"Share"],[10],[10],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[14,1],[0,"\\n "],[7,"button"],[11,"class","share btn"],[3,"action",[[22,0,[]],"share"]],[9],[7,"i"],[11,"class","fa fa-share"],[9],[10],[7,"span"],[9],[0,"Share"],[10],[10],[0,"\\n"]],"parameters":[]}]],"hasEval":false}',meta:{moduleName:"client-app/templates/components/actions-menu.hbs"}})}),define("client-app/templates/components/message-info",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"xIA+ooeo",block:'{"symbols":["btn"],"statements":[[7,"div"],[11,"class","message-info"],[9],[0,"\\n"],[4,"tabbed-section",null,null,{"statements":[[4,"tab-contents",null,[["name","hint","currentMessage"],["info","show info",[23,["currentMessage"]]]],{"statements":[[4,"if",[[23,["showTitle"]]],null,{"statements":[[0," "],[7,"h3"],[9],[0,"Message\\n"],[4,"if",[[23,["currentMessage","showCount"]]],null,{"statements":[[0," ("],[1,[23,["currentMessage","count"]],false],[0," copies reported)\\n"]],"parameters":[]},null],[0," "],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[7,"pre"],[9],[1,[23,["currentMessage","message"]],false],[10],[0,""]],"parameters":[]},null],[4,"tab-contents",null,[["name","defaultTab","hint","currentMessage"],["backtrace","true","show backtrace",[23,["currentMessage"]]]],{"statements":[[4,"if",[[23,["showTitle"]]],null,{"statements":[[0," "],[7,"h3"],[9],[0,"Backtrace"],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[7,"pre"],[9],[1,[23,["currentMessage","backtrace"]],false],[10],[0,""]],"parameters":[]},null],[4,"if",[[23,["currentMessage","env"]]],null,{"statements":[[4,"tab-contents",null,[["className","name","hint","currentMessage"],["env","env","show environment",[23,["currentMessage"]]]],{"statements":[[4,"if",[[23,["showTitle"]]],null,{"statements":[[0," "],[7,"h3"],[9],[0,"Env"],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[1,[23,["currentMessage","envTable"]],true],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},null]],"parameters":[]},null],[0,"\\n"],[4,"if",[[23,["currentMessage"]]],null,{"statements":[[0," "],[7,"div"],[11,"class","message-actions"],[9],[0,"\\n"],[4,"actions-menu",null,[["actionsInMenu","share"],[[23,["actionsInMenu"]],[27,"action",[[22,0,[]],"share"],null]]],{"statements":[[4,"each",[[23,["buttons"]]],null,{"statements":[[0," "],[7,"button"],[12,"class",[28,[[22,1,["klass"]]," btn ",[27,"if",[[22,1,["danger"]],"danger",""],null]]]],[3,"action",[[22,0,[]],[22,1,["action"]]]],[9],[0,"\\n "],[7,"i"],[12,"class",[28,["fa fa-",[22,1,["icon"]]]]],[9],[10],[0,"\\n "],[7,"span"],[9],[1,[22,1,["label"]],false],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[1]},null]],"parameters":[]},null],[0," "],[10],[0,"\\n"]],"parameters":[]},null],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/components/message-info.hbs"}})}),define("client-app/templates/components/message-row",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"QT7t0R6S",block:'{"symbols":[],"statements":[[7,"td"],[11,"class","count"],[9],[0,"\\n"],[4,"if",[[23,["model","showCount"]]],null,{"statements":[[0," "],[7,"span"],[9],[1,[23,["model","count"]],false],[10],[0,"\\n"]],"parameters":[]},null],[10],[0,"\\n"],[7,"td"],[11,"class","severity"],[9],[1,[23,["model","glyph"]],true],[10],[0,"\\n"],[7,"td"],[11,"class","message-body"],[9],[0,"\\n "],[7,"div"],[11,"class","message"],[9],[0,"\\n "],[1,[23,["model","displayMessage"]],false],[0,"\\n "],[10],[0,"\\n"],[10],[0,"\\n"],[7,"td"],[11,"class","protected"],[9],[0,"\\n"],[4,"if",[[23,["model","protected"]]],null,{"statements":[[0," "],[7,"i"],[11,"title","message is protected, clearing will not remove it"],[11,"class","fa fa-lock"],[9],[10],[0,"\\n"]],"parameters":[]},null],[10],[0,"\\n"],[7,"td"],[11,"class","time"],[9],[1,[27,"time-formatter",null,[["timestamp"],[[23,["model","timestamp"]]]]],false],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/components/message-row.hbs"}})}),define("client-app/templates/components/panel-resizer",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"FLUzT7ST",block:'{"symbols":[],"statements":[[7,"div"],[11,"class","line-1"],[9],[10],[0,"\\n"],[7,"div"],[11,"class","line-2"],[9],[10],[0,"\\n"],[7,"div"],[11,"class","line-3"],[9],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/components/panel-resizer.hbs"}})}),define("client-app/templates/components/tabbed-section",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"nreTgL17",block:'{"symbols":["tab","&default"],"statements":[[14,2],[0,"\\n"],[7,"ul"],[11,"class","tabs"],[9],[0,"\\n"],[4,"each",[[23,["tabs"]]],null,{"statements":[[0," "],[7,"li"],[9],[0,"\\n "],[7,"a"],[12,"title",[28,[[27,"unbound",[[22,1,["hint"]]],null]]]],[11,"href","#"],[12,"class",[28,[[27,"if",[[22,1,["active"]],"active"],null]]]],[3,"action",[[22,0,[]],[23,["selectTab"]],[22,1,[]]]],[9],[0,"\\n "],[1,[27,"unbound",[[22,1,["name"]]],null],false],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[1]},null],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/components/tabbed-section.hbs"}})}),define("client-app/templates/components/time-formatter",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"sp53cTcH",block:'{"symbols":[],"statements":[[1,[21,"time"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/components/time-formatter.hbs"}})}),define("client-app/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"zPUWk0aI",block:'{"symbols":["message"],"statements":[[7,"div"],[11,"id","top-panel"],[9],[0,"\\n "],[7,"table"],[11,"id","log-table"],[9],[0,"\\n "],[7,"thead"],[9],[0,"\\n "],[7,"tr"],[9],[0,"\\n "],[7,"th"],[11,"class","count"],[9],[10],[0,"\\n "],[7,"th"],[11,"class","severity"],[9],[10],[0,"\\n "],[7,"th"],[11,"class","info"],[9],[10],[0,"\\n "],[7,"th"],[11,"class","protected"],[9],[10],[0,"\\n "],[7,"th"],[11,"class","time"],[9],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"tbody"],[9],[0,"\\n"],[4,"if",[[23,["model","moreBefore"]]],null,{"statements":[[0," "],[7,"tr"],[11,"class","show-more"],[3,"action",[[22,0,[]],"showMoreBefore"]],[9],[0,"\\n "],[7,"td"],[11,"colspan","5"],[9],[0,"select to see "],[1,[23,["model","totalBefore"]],false],[0," more"],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[4,"each",[[23,["model","messages"]]],null,{"statements":[[0," "],[1,[27,"message-row",null,[["model","selectedMessage"],[[22,1,[]],[27,"action",[[22,0,[]],"selectMessage"],null]]]],false],[0,"\\n"]],"parameters":[1]},null],[0," "],[10],[0,"\\n "],[10],[0,"\\n"],[10],[0,"\\n"],[7,"div"],[11,"id","bottom-panel"],[9],[0,"\\n "],[1,[27,"message-info",null,[["currentMessage","removeMessage","solveMessage","actionsInMenu"],[[23,["currentMessage"]],[27,"action",[[22,0,[]],"removeMessage"],null],[27,"action",[[22,0,[]],"solveMessage"],null],[23,["actionsInMenu"]]]]],false],[0,"\\n\\n "],[7,"div"],[11,"class","action-panel"],[9],[0,"\\n "],[7,"div"],[11,"class","severity-filters"],[9],[0,"\\n "],[7,"div"],[11,"class","more-wrapping"],[9],[0,"\\n "],[7,"label"],[11,"class","debug"],[9],[0,"\\n "],[1,[27,"input",null,[["type","checked"],["checkbox",[23,["showDebug"]]]]],false],[0,"\\n "],[7,"span"],[9],[0,"Debug"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"label"],[11,"class","info"],[9],[0,"\\n "],[1,[27,"input",null,[["type","checked"],["checkbox",[23,["showInfo"]]]]],false],[0,"\\n "],[7,"span"],[9],[0,"Info"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"label"],[11,"class","warn"],[9],[0,"\\n "],[1,[27,"input",null,[["type","checked"],["checkbox",[23,["showWarn"]]]]],false],[0,"\\n "],[7,"i"],[11,"class","fa fa-exclamation-circle warning"],[9],[10],[0,"\\n "],[7,"span"],[9],[0,"Warning"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"label"],[11,"class","error"],[9],[0,"\\n "],[1,[27,"input",null,[["type","checked"],["checkbox",[23,["showErr"]]]]],false],[0,"\\n "],[7,"i"],[11,"class","fa fa-times-circle error"],[9],[10],[0,"\\n "],[7,"span"],[9],[0,"Error"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"label"],[11,"class","fatal"],[9],[0,"\\n "],[1,[27,"input",null,[["type","checked"],["checkbox",[23,["showFatal"]]]]],false],[0,"\\n "],[7,"i"],[11,"class","fa fa-times-circle fatal"],[9],[10],[0,"\\n "],[7,"span"],[9],[0,"Fatal"],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","search-clear-all"],[9],[0,"\\n "],[1,[27,"input",null,[["type","class","placeholder","value"],["textfield","search","Search",[23,["search"]]]]],false],[0,"\\n "],[7,"button"],[11,"class","clear btn danger"],[3,"action",[[22,0,[]],"clear"]],[9],[7,"i"],[11,"class","fa fa-times"],[9],[10],[7,"span"],[9],[0,"Clear logs"],[10],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n"],[10],[0,"\\n"],[1,[21,"panel-resizer"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/index.hbs"}})}),define("client-app/templates/show",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"V916vpg9",block:'{"symbols":[],"statements":[[4,"link-to",["index"],null,{"statements":[[0,"Recent"]],"parameters":[]},null],[0,"\\n"],[7,"div"],[11,"id","bottom-panel"],[11,"class","full"],[9],[0,"\\n "],[1,[27,"message-info",null,[["currentMessage","showTitle","actionsInMenu"],[[23,["model"]],"true",false]]],false],[0,"\\n"],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/show.hbs"}})}),define("client-app/config/environment",[],function(){try{var e="client-app/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(unescape(t))}
92
- return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(a){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("client-app/app").default.create({name:"client-app",version:"0.0.0+33034a58"})
98
+ e&&a%s==0&&(i=!0,s<20&&s++),i&&(t.loadMore(),e||(s=1))},3e3),this.events.on("panelResized",function(t){e.resizePanels(t)})},deactivate:function(){clearInterval(this.refreshInterval)}})}),define("client-app/routes/show",["exports","client-app/models/message","client-app/lib/utilities"],function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Route.extend({model:function(e){return(0,n.preloadOrAjax)("/show/"+e.id+".json")},setupController:function(e,n){this._super.apply(this,arguments),e.set("model",t.default.create(n))}})})
99
+ define("client-app/services/ajax",["exports","ember-ajax/services/ajax"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("client-app/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"yOsrYpw5",block:'{"symbols":[],"statements":[[1,[21,"update-time"],false],[0,"\\n"],[1,[21,"outlet"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/application.hbs"}})}),define("client-app/templates/components/actions-menu",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"ebB3+Z4x",block:'{"symbols":["&default"],"statements":[[4,"if",[[23,["actionsInMenu"]]],null,{"statements":[[4,"if",[[23,["showMenu"]]],null,{"statements":[[0," "],[7,"div"],[11,"class","actions-menu"],[9],[0,"\\n "],[14,1],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[7,"button"],[11,"class","expand btn no-text"],[3,"action",[[22,0,[]],"expandMenu"]],[9],[7,"i"],[11,"class","fa fa-ellipsis-h"],[9],[10],[10],[0,"\\n "],[7,"button"],[11,"class","share btn"],[3,"action",[[22,0,[]],"share"]],[9],[7,"i"],[11,"class","fa fa-share"],[9],[10],[7,"span"],[9],[0,"Share"],[10],[10],[0,"\\n"]],"parameters":[]},{"statements":[[0," "],[14,1],[0,"\\n "],[7,"button"],[11,"class","share btn"],[3,"action",[[22,0,[]],"share"]],[9],[7,"i"],[11,"class","fa fa-share"],[9],[10],[7,"span"],[9],[0,"Share"],[10],[10],[0,"\\n"]],"parameters":[]}]],"hasEval":false}',meta:{moduleName:"client-app/templates/components/actions-menu.hbs"}})}),define("client-app/templates/components/env-tab",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"5078JpTW",block:'{"symbols":[],"statements":[[4,"if",[[23,["isEnvArray"]]],null,{"statements":[[0," "],[7,"div"],[11,"class","nav-controls"],[9],[0,"\\n "],[7,"button"],[12,"disabled",[21,"disableBackButtons"]],[11,"class","btn nav-btn no-text"],[3,"action",[[22,0,[]],"bigJump","back"]],[9],[7,"i"],[11,"class","fa fa-fast-backward"],[9],[10],[10],[0,"\\n "],[7,"button"],[12,"disabled",[21,"disableBackButtons"]],[11,"class","btn nav-btn no-text"],[3,"action",[[22,0,[]],"takeStep","back"]],[9],[7,"i"],[11,"class","fa fa-backward"],[9],[10],[10],[0,"\\n "],[7,"span"],[11,"class","env-number"],[9],[1,[21,"current"],false],[0,"/"],[1,[23,["message","env","length"]],false],[10],[0,"\\n "],[7,"button"],[12,"disabled",[21,"disableForwardButtons"]],[11,"class","btn nav-btn no-text"],[3,"action",[[22,0,[]],"takeStep","front"]],[9],[7,"i"],[11,"class","fa fa-forward"],[9],[10],[10],[0,"\\n "],[7,"button"],[12,"disabled",[21,"disableForwardButtons"]],[11,"class","btn nav-btn no-text"],[3,"action",[[22,0,[]],"bigJump","front"]],[9],[7,"i"],[11,"class","fa fa-fast-forward"],[9],[10],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[]},null],[1,[21,"html"],true],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/components/env-tab.hbs"}})}),define("client-app/templates/components/message-info",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"SK12lkYh",block:'{"symbols":["btn"],"statements":[[7,"div"],[11,"class","message-info"],[9],[0,"\\n"],[4,"tabbed-section",null,null,{"statements":[[4,"tab-contents",null,[["name","hint","currentMessage"],["info","show info",[23,["currentMessage"]]]],{"statements":[[4,"if",[[23,["showTitle"]]],null,{"statements":[[0," "],[7,"h3"],[9],[0,"Message\\n"],[4,"if",[[23,["currentMessage","showCount"]]],null,{"statements":[[0," ("],[1,[23,["currentMessage","count"]],false],[0," copies reported)\\n"]],"parameters":[]},null],[0," "],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[7,"pre"],[9],[1,[23,["currentMessage","message"]],false],[10],[0,""]],"parameters":[]},null],[4,"tab-contents",null,[["name","defaultTab","hint","currentMessage"],["backtrace","true","show backtrace",[23,["currentMessage"]]]],{"statements":[[4,"if",[[23,["showTitle"]]],null,{"statements":[[0," "],[7,"h3"],[9],[0,"Backtrace"],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[7,"pre"],[9],[1,[23,["currentMessage","backtrace"]],false],[10],[0,""]],"parameters":[]},null],[4,"if",[[23,["currentMessage","env"]]],null,{"statements":[[4,"tab-contents",null,[["className","name","hint","currentMessage"],["env","env","show environment",[23,["currentMessage"]]]],{"statements":[[4,"if",[[23,["showTitle"]]],null,{"statements":[[0," "],[7,"h3"],[9],[0,"Env"],[10],[0,"\\n"]],"parameters":[]},null],[0," "],[1,[27,"env-tab",null,[["message"],[[23,["currentMessage"]]]]],false],[0,"\\n"]],"parameters":[]},null]],"parameters":[]},null]],"parameters":[]},null],[0,"\\n"],[4,"if",[[23,["currentMessage"]]],null,{"statements":[[0," "],[7,"div"],[11,"class","message-actions"],[9],[0,"\\n"],[4,"actions-menu",null,[["actionsInMenu","share"],[[23,["actionsInMenu"]],[27,"action",[[22,0,[]],"share"],null]]],{"statements":[[4,"each",[[23,["buttons"]]],null,{"statements":[[0," "],[7,"button"],[12,"class",[28,[[22,1,["klass"]]," btn ",[27,"if",[[22,1,["danger"]],"danger",""],null]]]],[3,"action",[[22,0,[]],[22,1,["action"]]]],[9],[0,"\\n "],[7,"i"],[12,"class",[28,["fa fa-",[22,1,["icon"]]]]],[9],[10],[0,"\\n "],[7,"span"],[9],[1,[22,1,["label"]],false],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[1]},null]],"parameters":[]},null],[0," "],[10],[0,"\\n"]],"parameters":[]},null],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/components/message-info.hbs"}})}),define("client-app/templates/components/message-row",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"pF0hQ9a+",block:'{"symbols":[],"statements":[[7,"div"],[11,"class","count"],[9],[0,"\\n"],[4,"if",[[23,["model","showCount"]]],null,{"statements":[[0," "],[1,[23,["model","count"]],false],[0,"\\n"]],"parameters":[]},null],[10],[0,"\\n"],[7,"div"],[11,"class","severity"],[9],[1,[23,["model","glyph"]],true],[10],[0,"\\n"],[7,"div"],[11,"class","message-body"],[9],[0,"\\n "],[1,[23,["model","displayMessage"]],false],[0,"\\n"],[10],[0,"\\n"],[7,"div"],[11,"class","protected"],[9],[0,"\\n"],[4,"if",[[23,["model","protected"]]],null,{"statements":[[0," "],[7,"i"],[11,"title","message is protected, clearing will not remove it"],[11,"class","fa fa-lock"],[9],[10],[0,"\\n"]],"parameters":[]},null],[10],[0,"\\n"],[7,"div"],[11,"class","time"],[9],[1,[27,"time-formatter",null,[["timestamp"],[[23,["model","timestamp"]]]]],false],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/components/message-row.hbs"}})}),define("client-app/templates/components/panel-resizer",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"FLUzT7ST",block:'{"symbols":[],"statements":[[7,"div"],[11,"class","line-1"],[9],[10],[0,"\\n"],[7,"div"],[11,"class","line-2"],[9],[10],[0,"\\n"],[7,"div"],[11,"class","line-3"],[9],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/components/panel-resizer.hbs"}})}),define("client-app/templates/components/tabbed-section",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"nreTgL17",block:'{"symbols":["tab","&default"],"statements":[[14,2],[0,"\\n"],[7,"ul"],[11,"class","tabs"],[9],[0,"\\n"],[4,"each",[[23,["tabs"]]],null,{"statements":[[0," "],[7,"li"],[9],[0,"\\n "],[7,"a"],[12,"title",[28,[[27,"unbound",[[22,1,["hint"]]],null]]]],[11,"href","#"],[12,"class",[28,[[27,"if",[[22,1,["active"]],"active"],null]]]],[3,"action",[[22,0,[]],[23,["selectTab"]],[22,1,[]]]],[9],[0,"\\n "],[1,[27,"unbound",[[22,1,["name"]]],null],false],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n"]],"parameters":[1]},null],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/components/tabbed-section.hbs"}})}),define("client-app/templates/components/time-formatter",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"sp53cTcH",block:'{"symbols":[],"statements":[[1,[21,"time"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/components/time-formatter.hbs"}})}),define("client-app/templates/index",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"whComJMa",block:'{"symbols":["message"],"statements":[[7,"div"],[11,"id","top-panel"],[9],[0,"\\n "],[7,"div"],[11,"id","log-table"],[9],[0,"\\n"],[4,"if",[[23,["model","moreBefore"]]],null,{"statements":[[0," "],[7,"div"],[11,"class","show-more"],[3,"action",[[22,0,[]],"showMoreBefore"]],[9],[0,"\\n"],[4,"if",[[23,["model","hideCountInLoadMore"]]],null,{"statements":[[0," Load more\\n"]],"parameters":[]},{"statements":[[0," Select to see "],[1,[23,["model","totalBefore"]],false],[0," more\\n"]],"parameters":[]}],[0," "],[10],[0,"\\n"]],"parameters":[]},null],[4,"each",[[23,["model","messages"]]],null,{"statements":[[0," "],[1,[27,"message-row",null,[["model","selectedMessage"],[[22,1,[]],[27,"action",[[22,0,[]],"selectMessage"],null]]]],false],[0,"\\n"]],"parameters":[1]},null],[0," "],[10],[0,"\\n"],[10],[0,"\\n"],[7,"div"],[11,"id","bottom-panel"],[9],[0,"\\n "],[1,[27,"message-info",null,[["currentMessage","removeMessage","solveMessage","actionsInMenu"],[[23,["currentMessage"]],[27,"action",[[22,0,[]],"removeMessage"],null],[27,"action",[[22,0,[]],"solveMessage"],null],[23,["actionsInMenu"]]]]],false],[0,"\\n\\n "],[7,"div"],[11,"class","action-panel"],[9],[0,"\\n "],[7,"div"],[11,"class","severity-filters"],[9],[0,"\\n "],[7,"div"],[11,"class","more-wrapping"],[9],[0,"\\n "],[7,"label"],[11,"class","debug"],[9],[0,"\\n "],[1,[27,"input",null,[["type","checked"],["checkbox",[23,["showDebug"]]]]],false],[0,"\\n "],[7,"span"],[9],[0,"Debug"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"label"],[11,"class","info"],[9],[0,"\\n "],[1,[27,"input",null,[["type","checked"],["checkbox",[23,["showInfo"]]]]],false],[0,"\\n "],[7,"span"],[9],[0,"Info"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"label"],[11,"class","warn"],[9],[0,"\\n "],[1,[27,"input",null,[["type","checked"],["checkbox",[23,["showWarn"]]]]],false],[0,"\\n "],[7,"i"],[11,"class","fa fa-exclamation-circle warning"],[9],[10],[0,"\\n "],[7,"span"],[9],[0,"Warning"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"label"],[11,"class","error"],[9],[0,"\\n "],[1,[27,"input",null,[["type","checked"],["checkbox",[23,["showErr"]]]]],false],[0,"\\n "],[7,"i"],[11,"class","fa fa-times-circle error"],[9],[10],[0,"\\n "],[7,"span"],[9],[0,"Error"],[10],[0,"\\n "],[10],[0,"\\n "],[7,"label"],[11,"class","fatal"],[9],[0,"\\n "],[1,[27,"input",null,[["type","checked"],["checkbox",[23,["showFatal"]]]]],false],[0,"\\n "],[7,"i"],[11,"class","fa fa-times-circle fatal"],[9],[10],[0,"\\n "],[7,"span"],[9],[0,"Fatal"],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n "],[7,"div"],[11,"class","search-clear-all"],[9],[0,"\\n "],[1,[27,"input",null,[["type","class","placeholder","value"],["textfield","search","Search",[23,["search"]]]]],false],[0,"\\n "],[7,"button"],[11,"class","clear btn danger"],[3,"action",[[22,0,[]],"clear"]],[9],[7,"i"],[11,"class","fa fa-times"],[9],[10],[7,"span"],[9],[0,"Clear logs"],[10],[10],[0,"\\n "],[10],[0,"\\n "],[10],[0,"\\n"],[10],[0,"\\n"],[1,[21,"panel-resizer"],false],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/index.hbs"}})}),define("client-app/templates/show",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.HTMLBars.template({id:"V916vpg9",block:'{"symbols":[],"statements":[[4,"link-to",["index"],null,{"statements":[[0,"Recent"]],"parameters":[]},null],[0,"\\n"],[7,"div"],[11,"id","bottom-panel"],[11,"class","full"],[9],[0,"\\n "],[1,[27,"message-info",null,[["currentMessage","showTitle","actionsInMenu"],[[23,["model"]],"true",false]]],false],[0,"\\n"],[10],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/show.hbs"}})}),define("client-app/config/environment",[],function(){try{var e="client-app/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(unescape(t))}
100
+ return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(a){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("client-app/app").default.create({name:"client-app",version:"0.0.0+9e5a1fad"})
@@ -1 +1 @@
1
- .divider,.message-info{border-bottom:1px solid #ddd}body{font-family:Roboto,Arial,"Liberation Sans","DejaVu Sans",sans-serif;font-size:12px}body.mobile,body.mobile .message{font-size:14px}pre{font-family:"Roboto Mono",Consolas,Monaco,Ubuntu Mono,monospace}table.env-table tbody tr td{border-top:none;line-height:18px;vertical-align:top}table.env-table,table.env-table table{border-spacing:0;border-collapse:collapse}table.env-table td{padding-right:5px}.message,th{padding-right:10px}tbody tr{width:98%}tbody tr td{border-top:1px #e9e9e9 solid;line-height:25px}.message-row:hover{background-color:#f8f8f8;cursor:pointer}.message-row.selected{background-color:#dfdfdf}th{text-align:left;color:#222;padding-bottom:8px}td.time{color:#999;vertical-align:top;font-size:12px}.action-panel .clear,.action-panel .search,.action-panel i.fa,.btn .fa,.btn span,input,label span{vertical-align:middle}td.severity{text-align:center}td.count,td.time,th.time{text-align:right}.message{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px}th.count{width:20px}th.severity{width:15px}th.time{width:85px;padding-right:20px}td.time{padding-right:8px}th.protected{width:10px}i.fatal{color:#e00}i.error{color:#900}i.warning{color:#feb800}.debug{color:#777}td.count{padding-right:4px}.btn,tr.show-more{text-align:center;text-decoration:none}.count span{font-size:11px;font-weight:700}.action-panel .search{border:1px solid #ddd;padding:3px;box-sizing:border-box}tr.show-more{height:30px;background-color:#ddd;cursor:pointer}#overlay,.divider{cursor:row-resize}#bottom-panel{position:fixed;bottom:0;left:0;right:0;height:300px;background-color:#f1f1f1;padding:0 8px 8px;z-index:2}#bottom-panel.full{position:static;background-color:inherit;height:90%}#bottom-panel.full>div{padding-bottom:40px}#bottom-panel.full .tabs{display:none}#bottom-panel.full .message-info{position:static}#bottom-panel.full .message-info .content{display:block;position:static}#bottom-panel.full button.delete,.hidden{display:none}#bottom-panel.full .save,#bottom-panel.full .share{bottom:10px}#bottom-panel.full .message-actions button{margin-top:8px}#bottom-panel.full .message-actions{position:fixed;height:40px;width:100%;left:0;bottom:0;background-color:#eee;border-top:1px solid #dfdfdf;padding-left:10px}.divider,.tabs{border-top:1px solid #ddd}.message-actions{position:absolute;bottom:5px;right:0;margin-right:10px}.message-actions button{margin-left:5px}.divider{position:fixed;bottom:310px;left:0;right:0;height:15px;background-color:#fafafa}.divider div{margin:auto;width:24px;height:1px;background-color:#ccc;position:relative}.divider .line-1{top:5px}.divider .line-2{top:6px}.divider .line-3{top:7px}#top-panel{position:fixed;top:0;left:0;right:0;bottom:320px;overflow:auto}.action-panel,.message-info{position:absolute;left:0;right:0}.message-info{top:0}.action-panel{bottom:0;font-weight:700}.action-panel input{margin:0}.severity-filters label{margin-right:18px}.action-panel .clear{float:right}#log-table{border-collapse:collapse;margin:auto;width:99%;table-layout:fixed}.message-info .env-table,.message-info pre{position:relative;margin:10px}#overlay{position:fixed;z-index:99999;top:0;bottom:0;left:0;right:0;opacity:0}.message-info .content,.tabs{position:absolute;left:0;right:0}.message-info .content{top:0;bottom:35px;overflow:auto;display:none}.message-info .content.active{display:block}.tabs{bottom:13px;list-style-type:none;margin:0 0 5px;padding:0 0 0 10px}.tabs a,.tabs li{position:relative}.tabs li{float:left;padding-right:5px;margin:0}.tabs a{top:6px;text-decoration:none;color:#333;border:1px solid #ddd;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;padding:6px;background-color:#e1e1e1}.tabs a.active{border-top:1px solid #f1f1f1;background-color:#f1f1f1}.btn{display:inline-block;margin:0;padding:5px 12px;font-size:1em;line-height:0;cursor:pointer;transition:all .25s;background-color:#ddd;border:none;color:#333;font-weight:400}.btn:hover{color:#000;background-color:#ccc}.btn .fa{margin-right:7px}.btn:active{text-shadow:none}.btn.danger:hover{background-color:#c63c1b;color:#eee}.search-clear-all .clear,.search-clear-all .search{height:24px}.search-clear-all .clear,.search-clear-all .search,.severity-filters label{align-self:center}.search-clear-all .clear{margin-left:auto}@media (min-width:701px){.search-clear-all,.severity-filters{height:100%}.more-wrapping,.search-clear-all,.severity-filters{display:flex}.severity-filters{float:left}.action-panel{padding:10px;box-sizing:border-box;height:42px}.message-info{bottom:42px}}@media (max-width:700px){.severity-filters{padding:10px}.search-clear-all{padding:0 10px 10px}.action-panel{height:69px}.message-info{bottom:69px}}@media (max-width:415px){.severity-filters{overflow-x:scroll;overflow-y:hidden;white-space:nowrap}.more-wrapping:after,.more-wrapping:before{content:"";position:absolute;height:18px}.more-wrapping:before{width:15px;margin-left:-10px;background:linear-gradient(to right,#f1f1f1 0,rgba(241,241,241,.001) 100%)}.more-wrapping:after{right:0;width:23px;background:linear-gradient(to left,#f1f1f1 0,rgba(241,241,241,.001) 100%)}}.btn.no-text .fa{margin:0}.actions-menu{position:absolute;background:#fafafa;display:inline-flex;flex-direction:column;bottom:27px;right:45px;width:115px;padding:5px 5px 0;box-shadow:0 4px 14px rgba(0,0,0,.15)}.actions-menu button{margin:0 0 5px;height:27px}
1
+ .divider,.message-info{border-bottom:1px solid #ddd}body{font-family:Roboto,Arial,"Liberation Sans","DejaVu Sans",sans-serif;font-size:12px}body.mobile,body.mobile .message{font-size:14px}pre{font-family:"Roboto Mono",Consolas,Monaco,Ubuntu Mono,monospace}table.env-table tbody tr td{border-top:none;line-height:18px;vertical-align:top}table.env-table,table.env-table table{border-spacing:0;border-collapse:collapse}table.env-table td{padding-right:5px}tbody tr{width:98%}.message-row{display:flex}.message-row .protected,.message-row .severity{text-align:center;width:25px;flex-grow:0;flex-shrink:0;font-size:12px}.message-row div{border-top:.5px #e9e9e9 solid;padding-top:1px;padding-bottom:1px;line-height:25px}.message-row .count{width:30px;flex-grow:0;flex-shrink:0;padding-right:4px;box-sizing:border-box;font-size:11px;font-weight:700;text-align:right}.message-row .message-body{flex-grow:1;flex-shrink:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px}.message-row .time{flex-grow:0;flex-shrink:0;color:#999;vertical-align:top;font-size:12px;padding-right:8px}.action-panel .clear,.action-panel .search,.action-panel i.fa,.btn .fa,.btn span,input,label span{vertical-align:middle}.message-row:hover{background-color:#f8f8f8;cursor:pointer}.message-row.selected{background-color:#dfdfdf}i.fatal{color:#e00}i.error{color:#900}i.warning{color:#feb800}.debug{color:#777}.btn,.tabs a{text-decoration:none;color:#333}.action-panel .search{border:1px solid #ddd;padding:3px;box-sizing:border-box}#log-table .show-more{text-align:center;height:30px;line-height:30px;text-decoration:none;background-color:#ddd;cursor:pointer;margin-top:8px}#overlay,.divider{cursor:row-resize}#bottom-panel{position:fixed;bottom:0;left:0;right:0;height:300px;background-color:#f1f1f1;padding:0 8px 8px;z-index:2}#bottom-panel.full{position:static;background-color:inherit;height:90%}#bottom-panel.full>div{padding-bottom:40px}#bottom-panel.full .tabs{display:none}#bottom-panel.full .message-info{position:static}#bottom-panel.full .message-info .content{display:block;position:static}#bottom-panel.full button.delete,.hidden{display:none}#bottom-panel.full .save,#bottom-panel.full .share{bottom:10px}#bottom-panel.full .message-actions button{margin-top:8px}#bottom-panel.full .message-actions{position:fixed;height:40px;width:100%;left:0;bottom:0;background-color:#eee;border-top:1px solid #dfdfdf;padding-left:10px}.divider,.tabs{border-top:1px solid #ddd}.message-actions{position:absolute;bottom:5px;right:0;margin-right:10px}.message-actions button{margin-left:5px}.divider{position:fixed;bottom:310px;left:0;right:0;height:15px;background-color:#fafafa}.divider div{margin:auto;width:24px;height:1px;background-color:#ccc;position:relative}.divider .line-1{top:5px}.divider .line-2{top:6px}.divider .line-3{top:7px}#top-panel{position:fixed;top:0;left:0;right:0;bottom:320px;overflow:auto}.action-panel,.message-info{position:absolute;left:0;right:0}.message-info{top:0}.action-panel{bottom:0;font-weight:700}.action-panel input{margin:0}.severity-filters label{margin-right:18px}.action-panel .clear{float:right}#log-table{margin:auto;width:99%}.message-info .env-table,.message-info pre{position:relative;margin:10px}#overlay{position:fixed;z-index:99999;top:0;bottom:0;left:0;right:0;opacity:0}.message-info .content,.tabs{position:absolute;left:0;right:0}.message-info .content{top:0;bottom:35px;overflow:auto;display:none}.message-info .content.active{display:block}.tabs{bottom:13px;list-style-type:none;margin:0 0 5px;padding:0 0 0 10px}.tabs a,.tabs li{position:relative}.tabs li{float:left;padding-right:5px;margin:0}.tabs a{top:6px;border:1px solid #ddd;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;padding:6px;background-color:#e1e1e1}.tabs a.active{border-top:1px solid #f1f1f1;background-color:#f1f1f1}.btn{display:inline-block;margin:0;padding:5px 12px;font-size:1em;line-height:0;text-align:center;cursor:pointer;transition:all .25s;background-color:#ddd;border:none;font-weight:400}.btn:hover{color:#000;background-color:#ccc}.btn .fa{margin-right:7px}.btn:active{text-shadow:none}.btn.danger:hover{background-color:#c63c1b;color:#eee}.search-clear-all .clear,.search-clear-all .search{height:24px}.search-clear-all .clear,.search-clear-all .search,.severity-filters label{align-self:center}.search-clear-all .clear{margin-left:auto}@media (min-width:701px){.search-clear-all,.severity-filters{height:100%}.more-wrapping,.search-clear-all,.severity-filters{display:flex}.severity-filters{float:left}.action-panel{padding:10px;box-sizing:border-box;height:42px}.message-info{bottom:42px}}@media (max-width:700px){.severity-filters{padding:10px}.search-clear-all{padding:0 10px 10px}.action-panel{height:69px}.message-info{bottom:69px}}@media (max-width:415px){.severity-filters{overflow-x:scroll;overflow-y:hidden;white-space:nowrap}.more-wrapping:after,.more-wrapping:before{content:"";position:absolute;height:18px}.more-wrapping:before{width:15px;margin-left:-10px;background:linear-gradient(to right,#f1f1f1 0,rgba(241,241,241,.001) 100%)}.more-wrapping:after{right:0;width:23px;background:linear-gradient(to left,#f1f1f1 0,rgba(241,241,241,.001) 100%)}}.btn.no-text .fa{margin:0}.btn[disabled]{opacity:.5}.actions-menu{position:absolute;background:#fafafa;display:inline-flex;flex-direction:column;bottom:27px;right:45px;width:115px;padding:5px 5px 0;box-shadow:0 4px 14px rgba(0,0,0,.15)}.actions-menu button{margin:0 0 5px;height:27px}.nav-controls{margin:10px}.env-number{margin:0 7px}
@@ -0,0 +1,44 @@
1
+ import Component from "@ember/component";
2
+ import { computed } from "@ember/object";
3
+ import { buildHashString } from "client-app/lib/utilities";
4
+
5
+ export default Component.extend({
6
+ current: 1,
7
+
8
+ didUpdateAttrs() {
9
+ this.set("current", 1);
10
+ },
11
+
12
+ isEnvArray: computed("message.env", function() {
13
+ return Array.isArray(this.get("message.env"));
14
+ }),
15
+
16
+ html: computed("isEnvArray", "current", function() {
17
+ if (!this.get("isEnvArray")) {
18
+ return buildHashString(this.get("message.env"));
19
+ } else {
20
+ const currentEnv = this.get("message.env")[this.get("current") - 1];
21
+ return buildHashString(currentEnv);
22
+ }
23
+ }),
24
+
25
+ disableBackButtons: computed("current", function() {
26
+ return this.get("current") === 1;
27
+ }),
28
+
29
+ disableForwardButtons: computed("current", "message.env.length", function() {
30
+ return this.get("current") === this.get("message.env.length");
31
+ }),
32
+
33
+ actions: {
34
+ takeStep(dir) {
35
+ const amount = dir === "back" ? -1 : 1;
36
+ this.set("current", this.get("current") + amount);
37
+ },
38
+
39
+ bigJump(dir) {
40
+ const newCurrent = dir === "back" ? 1 : this.get("message.env.length");
41
+ this.set("current", newCurrent);
42
+ }
43
+ }
44
+ });
@@ -4,7 +4,7 @@ let CHECKED_BOTTOM;
4
4
  let STICK_TO_BOTTOM;
5
5
 
6
6
  export default Component.extend({
7
- tagName: "tr",
7
+ tagName: "div",
8
8
 
9
9
  classNameBindings: [
10
10
  "model.rowClass",
@@ -61,11 +61,10 @@ export default Component.extend({
61
61
  });
62
62
 
63
63
  Em.run.next(() => {
64
- if (localStorage && localStorage.logster_divider_bottom) {
65
- const fromTop =
66
- $win.height() - parseInt(localStorage.logster_divider_bottom, 10);
67
- this.divideView(fromTop, $win);
68
- }
64
+ const amount =
65
+ (localStorage && localStorage.logster_divider_bottom) || 300;
66
+ const fromTop = $win.height() - parseInt(amount, 10);
67
+ this.divideView(fromTop, $win);
69
68
  });
70
69
  },
71
70
 
@@ -56,6 +56,19 @@ export default Controller.extend({
56
56
  }
57
57
  },
58
58
 
59
+ updateSelectedMessage() {
60
+ const currentKey = this.get("currentMessage.key");
61
+ const messages = this.get("model.messages");
62
+ if (currentKey && messages) {
63
+ const match = messages.find(m => m.key === currentKey);
64
+ if (match) {
65
+ match.set("selected", true);
66
+ } else {
67
+ this.set("currentMessage", null);
68
+ }
69
+ }
70
+ },
71
+
59
72
  filterChanged: observer(
60
73
  "showDebug",
61
74
  "showInfo",
@@ -75,7 +88,7 @@ export default Controller.extend({
75
88
  const model = this.get("model");
76
89
  model.set("filter", filter);
77
90
  if (this.get("initialized")) {
78
- model.reload();
91
+ model.reload().then(() => this.updateSelectedMessage());
79
92
  }
80
93
  }
81
94
  ),
@@ -86,7 +99,7 @@ export default Controller.extend({
86
99
  model.set("search", search);
87
100
 
88
101
  if (this.get("initialized")) {
89
- model.reload();
102
+ model.reload().then(() => this.updateSelectedMessage());
90
103
  }
91
104
  })
92
105
  });
@@ -3,6 +3,8 @@ import Message from "client-app/models/message";
3
3
  import { compare } from "@ember/utils";
4
4
  import { computed } from "@ember/object";
5
5
 
6
+ const BATCH_SIZE = 50;
7
+
6
8
  export default Em.Object.extend({
7
9
  messages: Em.A(),
8
10
  currentMessage: null,
@@ -61,7 +63,7 @@ export default Em.Object.extend({
61
63
  data.after = opts.after;
62
64
  }
63
65
 
64
- ajax("/messages.json", {
66
+ return ajax("/messages.json", {
65
67
  data: data
66
68
  }).then(data => {
67
69
  // guard against race: ensure the results we're trying to apply
@@ -98,6 +100,7 @@ export default Em.Object.extend({
98
100
  }
99
101
  }
100
102
  this.set("total", data.total);
103
+ return data;
101
104
  });
102
105
  },
103
106
 
@@ -105,7 +108,18 @@ export default Em.Object.extend({
105
108
  this.set("total", 0);
106
109
  this.get("messages").clear();
107
110
 
108
- this.load();
111
+ return this.load().then(data => this.updateCanLoadMore(data));
112
+ },
113
+
114
+ updateCanLoadMore(data) {
115
+ if (!data) {
116
+ return;
117
+ }
118
+ if (data.messages.length < BATCH_SIZE) {
119
+ this.set("canLoadMore", false);
120
+ } else {
121
+ this.set("canLoadMore", true);
122
+ }
109
123
  },
110
124
 
111
125
  loadMore() {
@@ -121,8 +135,14 @@ export default Em.Object.extend({
121
135
  });
122
136
  },
123
137
 
124
- moreBefore: computed("totalBefore", function() {
125
- return this.get("totalBefore") > 0;
138
+ hideCountInLoadMore: computed("search", "filter", function() {
139
+ const search = this.get("search");
140
+ const filter = this.get("filter");
141
+ return (search && search.length > 0) || (filter && filter.length < 6);
142
+ }),
143
+
144
+ moreBefore: computed("messages.length", "canLoadMore", function() {
145
+ return this.get("messages.length") >= BATCH_SIZE && this.get("canLoadMore");
126
146
  }),
127
147
 
128
148
  totalBefore: computed("total", "messages.length", function() {
@@ -135,7 +155,7 @@ export default Em.Object.extend({
135
155
 
136
156
  this.load({
137
157
  before: firstKey
138
- });
158
+ }).then(data => this.updateCanLoadMore(data));
139
159
  },
140
160
 
141
161
  regexSearch: computed("search", function() {
@@ -1,4 +1,4 @@
1
- import { ajax, buildHashString } from "client-app/lib/utilities";
1
+ import { ajax } from "client-app/lib/utilities";
2
2
  import Preload from "client-app/lib/preload";
3
3
  import { computed } from "@ember/object";
4
4
 
@@ -58,13 +58,14 @@ export default Em.Object.extend({
58
58
 
59
59
  canSolve: computed(function() {
60
60
  const backtrace = this.get("backtrace");
61
- return (
62
- this.get("env.application_version") && backtrace && backtrace.length > 0
63
- );
64
- }),
65
-
66
- envTable: computed("env", function() {
67
- return buildHashString(this.get("env"));
61
+ const env = this.get("env");
62
+ const appVersion = Array.isArray(env)
63
+ ? env
64
+ .map(e => e.application_version)
65
+ .compact()
66
+ .join("")
67
+ : env.application_version;
68
+ return appVersion && backtrace && backtrace.length > 0;
68
69
  }),
69
70
 
70
71
  rowClass: computed("severity", function() {
@@ -32,66 +32,65 @@ tbody tr {
32
32
  width: 98%;
33
33
  }
34
34
 
35
- tbody tr td {
36
- border-top: 1px #e9e9e9 solid;
37
- line-height: 25px;
35
+ .message-row {
36
+ display: flex;
38
37
  }
39
38
 
40
- .message-row:hover {
41
- background-color: #f8f8f8;
42
- cursor: pointer;
43
- }
44
-
45
- .message-row.selected {
46
- background-color: #dfdfdf;
47
- }
48
-
49
- th {
50
- text-align: left;
51
- padding-right: 10px;
52
- color: #222;
53
- padding-bottom: 8px;
39
+ .message-row .severity,
40
+ .message-row .protected {
41
+ text-align: center;
42
+ width: 25px;
43
+ flex-grow: 0;
44
+ flex-shrink: 0;
45
+ font-size: 12px;
54
46
  }
55
47
 
56
- td.time {
57
- color: #999;
58
- vertical-align: top;
59
- font-size: 12px;
48
+ .message-row div {
49
+ border-top: 0.5px #e9e9e9 solid;
50
+ padding-top: 1px;
51
+ padding-bottom: 1px;
52
+ line-height: 25px;
60
53
  }
61
54
 
62
- td.severity {
63
- text-align: center;
55
+ .message-row .count {
56
+ width: 30px;
57
+ flex-grow: 0;
58
+ flex-shrink: 0;
59
+ padding-right: 4px;
60
+ box-sizing: border-box;
61
+ font-size: 11px;
62
+ font-weight: 700;
64
63
  }
65
64
 
66
- .message {
65
+ .message-row .message-body {
66
+ flex-grow: 1;
67
+ flex-shrink: 1;
67
68
  overflow: hidden;
68
69
  white-space: nowrap;
69
70
  text-overflow: ellipsis;
70
- padding-right: 10px;
71
71
  font-size: 13px;
72
72
  }
73
73
 
74
- th.count {
75
- width: 20px;
76
- }
77
-
78
- th.severity {
79
- width: 15px;
74
+ .message-row .time {
75
+ flex-grow: 0;
76
+ flex-shrink: 0;
77
+ color: #999;
78
+ vertical-align: top;
79
+ font-size: 12px;
80
+ padding-right: 8px;
80
81
  }
81
82
 
82
- th.time {
83
- width: 85px;
83
+ .message-row .count {
84
84
  text-align: right;
85
- padding-right: 20px;
86
85
  }
87
86
 
88
- td.time {
89
- text-align: right;
90
- padding-right: 8px;
87
+ .message-row:hover {
88
+ background-color: #f8f8f8;
89
+ cursor: pointer;
91
90
  }
92
91
 
93
- th.protected {
94
- width: 10px;
92
+ .message-row.selected {
93
+ background-color: #dfdfdf;
95
94
  }
96
95
 
97
96
  i.fatal {
@@ -110,16 +109,6 @@ i.warning {
110
109
  color: #777;
111
110
  }
112
111
 
113
- td.count {
114
- text-align: right;
115
- padding-right: 4px;
116
- }
117
-
118
- .count span {
119
- font-size: 11px;
120
- font-weight: bold;
121
- }
122
-
123
112
  .action-panel .search {
124
113
  border: 1px solid #ddd;
125
114
  padding: 3px;
@@ -127,12 +116,14 @@ td.count {
127
116
  box-sizing: border-box;
128
117
  }
129
118
 
130
- tr.show-more {
119
+ #log-table .show-more {
131
120
  text-align: center;
132
121
  height: 30px;
122
+ line-height: 30px;
133
123
  text-decoration: none;
134
124
  background-color: #ddd;
135
125
  cursor: pointer;
126
+ margin-top: 8px;
136
127
  }
137
128
 
138
129
  #bottom-panel {
@@ -281,10 +272,8 @@ label span {
281
272
  }
282
273
 
283
274
  #log-table {
284
- border-collapse: collapse;
285
275
  margin: auto;
286
276
  width: 99%;
287
- table-layout: fixed;
288
277
  }
289
278
 
290
279
  .btn .fa,
@@ -465,12 +454,20 @@ label span {
465
454
  .more-wrapping:before {
466
455
  width: 15px;
467
456
  margin-left: -10px;
468
- background: linear-gradient(to right, #f1f1f1 0%, rgba(241, 241, 241, 0.001) 100%);
457
+ background: linear-gradient(
458
+ to right,
459
+ #f1f1f1 0%,
460
+ rgba(241, 241, 241, 0.001) 100%
461
+ );
469
462
  }
470
463
  .more-wrapping:after {
471
464
  right: 0;
472
465
  width: 23px;
473
- background: linear-gradient(to left, #f1f1f1 0%, rgba(241, 241, 241, 0.001) 100%);
466
+ background: linear-gradient(
467
+ to left,
468
+ #f1f1f1 0%,
469
+ rgba(241, 241, 241, 0.001) 100%
470
+ );
474
471
  }
475
472
  }
476
473
 
@@ -478,6 +475,10 @@ label span {
478
475
  margin: 0;
479
476
  }
480
477
 
478
+ .btn[disabled] {
479
+ opacity: 0.5;
480
+ }
481
+
481
482
  .actions-menu {
482
483
  position: absolute;
483
484
  background: #fafafa;
@@ -495,3 +496,11 @@ label span {
495
496
  margin: 0 0 5px 0;
496
497
  height: 27px;
497
498
  }
499
+
500
+ .nav-controls {
501
+ margin: 10px 10px;
502
+ }
503
+
504
+ .env-number {
505
+ margin: 0 7px;
506
+ }