Add Coffeescript version of version.js.

Add Coffeescript version of version.js.

error: pathspec 'examples/version.coffee' did not match any file(s) known to git

--- examples/version.coffee
+++ examples/version.coffee
@@ -0,0 +1,5 @@
+console.log 'using PhantomJS version ' +
+    phantom.version.major + '.' +
+    phantom.version.minor + '.' +
+    phantom.version.patch
+phantom.exit()


Error reporting for editListItemByTitle improved.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/PortalGNU/node-sharepoint-rest.git/'


Update configuration

Update configuration

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/ehmicky/myos.git/'


Modified in browser at pixie.strd6.com

Modified in browser at pixie.strd6.com

error: pathspec 'src/timed_events.coffee' did not match any file(s) known to git

--- src/timed_events.coffee
+++ src/timed_events.coffee
@@ -0,0 +1,2 @@
+TimedEvents = (I={}) ->
+


Add menu item for package

Add menu item for package

error: pathspec 'menus/autosave-delay.cson' did not match any file(s) known to git

--- menus/autosave-delay.cson
+++ menus/autosave-delay.cson
@@ -0,0 +1,14 @@
+'menu': [
+  {
+    'label': 'Packages'
+    'submenu': [
+      'label': 'Autosave Onchange'
+      'submenu': [
+        {
+          'label': 'Toggle'
+          'command': 'autosave-delay:toggle'
+        }
+      ]
+    ]
+  }
+]


删除冲突内容

删除冲突内容

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/xiaokaceng/atwork-qdt.git/'


unsmart quotes for commands

unsmart quotes for commands

related to #23

--- lib/bot.coffee
+++ lib/bot.coffee
@@ -167,6 +167,9 @@

 processCommand = (bot, message, isDM = false) ->

+  message.text = message.text.split('“').join('"')
+  message.text = message.text.split('”').join('"')
+
   context = new ReplyContext(defaultBot, bot, message)

   if match = message.text.match(new RegExp(QUERY_REGEX)) && enableQueryCli


commented imgModule

commented imgModule

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/DnMllr/webglify.git/'


updates tests style for four-phase-testing as per: https://robots.thoughtbot.com/four-phase-test

--- spec/javascripts/issue_spec.js.coffee
+++ spec/javascripts/issue_spec.js.coffee
@@ -30,29 +30,45 @@
       expect(obj.type).toBe('PUT')
       expect(obj.url).toBe('http://gitlab/issues/6/close')
       obj.success saved: true
+
+    # setup
     $btnClose = $('a.btn-close')
     $btnReopen = $('a.btn-reopen')
     expect($btnReopen.hasClass('hidden')).toBe(true)
     expect($btnClose.text()).toBe('Close')
     expect(typeof $btnClose.prop('disabled')).toBe('undefined')
+
+    # excerize
     $btnClose.trigger('click')
+
+    # verify
     expect($btnClose.hasClass('hidden')).toBe(true)
     expect($btnReopen.hasClass('hidden')).toBe(false)
     expect($btnClose.prop('disabled')).toBe(false)
     expect($('div.issue-box-open').hasClass('hidden')).toBe(true)
     expect($('div.issue-box-closed').hasClass('hidden')).toBe(false)
+
+    # teardown
   it 'reopens an issue', ->
     $.ajax = (obj) ->
       expect(obj.type).toBe('PUT')
       expect(obj.url).toBe('http://gitlab/issues/6/reopen')
       obj.success saved: true
+
+    # setup
     $btnClose = $('a.btn-close')
     $btnReopen = $('a.btn-reopen')
     expect(typeof $btnReopen.prop('disabled')).toBe('undefined')
     expect($btnReopen.text()).toBe('Reopen')
+
+    # excerize
     $btnReopen.trigger('click')
+
+    # verify
     expect($btnReopen.hasClass('hidden')).toBe(true)
     expect($btnClose.hasClass('hidden')).toBe(false)
     expect($btnReopen.prop('disabled')).toBe(false)
     expect($('div.issue-box-open').hasClass('hidden')).toBe(false)
-    expect($('div.issue-box-closed').hasClass('hidden')).toBe(true)+    expect($('div.issue-box-closed').hasClass('hidden')).toBe(true)
+
+    # teardown


Fix gene isSubjectMatter ¯\(º_o)/¯

Fix gene isSubjectMatter ¯\(º_o)/¯

--- test/models/gene.coffee
+++ test/models/gene.coffee
@@ -15,9 +15,9 @@

   describe '#isSubjectMatter', ->

-    it 'returns true if there is a Subject Matter property', ->
-      @gene.set type: { properties: [{ value: 'Subject Matter' }] }
-      @gene.isSubjectMatter()
+    it 'checks against the gene type name', ->
+      @gene.set type: { name: 'D3 - Photography/Film Technique' }
+      @gene.isSubjectMatter().should.be.ok

   describe '#fetchFilterSuggest', ->


Create shared header

Create shared header

error: pathspec 'src/javascript/directives/header.coffee' did not match any file(s) known to git

--- src/javascript/directives/header.coffee
+++ src/javascript/directives/header.coffee
@@ -0,0 +1,2 @@
+app.directive 'sharedHeader', ->
+  template: '<h1>{{whatsMyName}}</h1>'


comments and debugging

comments and debugging

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/core-network/client-threejs.git/'


moved $(func) to new file

moved $(func) to new file

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/stevepeak/handyjs.git/'


Inherit environment variables into KONFIG

Signed-off-by: Sonmez Kartal <d2d15c3d37396a5f2a09f8b42cf5f27d43a3fbde@koding.com>

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/andrewjcasal/koding.git/'


dot notation

dot notation

--- workers/social/lib/social/models/graph/graph.coffee
+++ workers/social/lib/social/models/graph/graph.coffee
@@ -14,7 +14,7 @@
         return
       ret = []
       for i in wantedOrder
-        obj = objects[i['idx']]
+        obj = objects[i.idx]
         if obj
           ret.push(obj)
         else
@@ -43,7 +43,7 @@
       collectObjects({klass:klass, selector:selector, modelName:modelName})

   fetchFromNeo4j:(query, params, callback)->
-    resultsKey = params['resultsKey'] or "items"
+    resultsKey = params.resultsKey or "items"
     # gets ids from neo4j, fetches objects from mongo, returns in the same order
     @db.query query, params, (err, results)=>
       if err


IDE: routes referenceError fix

IDE: routes referenceError fix


increment & incrementColumnValue file

increment & incrementColumnValue file

error: pathspec 'lib/increment.coffee' did not match any file(s) known to git

--- lib/increment.coffee
+++ lib/increment.coffee
@@ -0,0 +1,43 @@
+ProtoBuf   = require("protobufjs")
+ByteBuffer = require 'protobufjs/node_modules/bytebuffer'
+
+ProtoBuf.convertFieldsToCamelCase = true
+builder = ProtoBuf.loadProtoFile("#{__dirname}/../proto/Client.proto")
+proto = builder.build()
+
+module.exports = class Increment
+	constructor: (@row, @ts) ->
+		@familyMap = {}
+
+
+	add: (cf, qualifier, value, timestamp) =>
+		timestamp ?= ByteBuffer.Long.MAX_VALUE
+
+		b = new ByteBuffer 8
+		b.writeLong ByteBuffer.Long.fromString("#{value}")
+
+		@familyMap[cf] ?= []
+		@familyMap[cf].push {qualifier, value: b.toBuffer(), timestamp}
+
+
+	getFields: () =>
+		o =
+			row: @row
+			mutateType: 'INCREMENT'
+			columnValue: []
+
+		for cf, qualifierValue of @familyMap
+			o.columnValue.push
+				family: cf
+				qualifierValue: qualifierValue
+
+		o
+
+
+	getRow: () =>
+		@row
+
+
+
+
+


fix get all libraries

fix get all libraries

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/bekite/knignish.git/'


Add in stress test script

Add in stress test script

error: pathspec 'services/document-updater/test/stress/coffee/run.coffee' did not match any file(s) known to git

--- services/document-updater/test/stress/coffee/run.coffee
+++ services/document-updater/test/stress/coffee/run.coffee
@@ -0,0 +1,152 @@
+DocUpdaterClient = require "../../acceptance/js/helpers/DocUpdaterClient"
+# MockTrackChangesApi = require "../../acceptance/js/helpers/MockTrackChangesApi"
+# MockWebApi = require "../../acceptance/js/helpers/MockWebApi"
+assert = require "assert"
+async = require "async"
+
+insert = (string, pos, content) ->
+	string.slice(0, pos) + content + string.slice(pos)
+
+transform = (op1, op2) ->
+	if op2.p < op1.p
+		op1.p += op2.i.length
+	return op1
+
+class StressTestClient
+	constructor: (@options = {}) ->
+		@options.updateDelay ?= 200
+		@project_id = @options.project_id or DocUpdaterClient.randomId()
+		@doc_id = @options.doc_id or DocUpdaterClient.randomId()
+		@pos = @options.pos or 0
+		@content = @options.content or ""
+
+		@client_id = DocUpdaterClient.randomId()
+		@version = @options.version or 0
+		@inflight_op = null
+		@charCode = 0
+
+		@counts = {
+			conflicts: 0
+			local_updates: 0
+			remote_updates: 0
+			max_delay: 0
+		}
+
+		DocUpdaterClient.subscribeToAppliedOps (channel, update) =>
+			update = JSON.parse(update)
+			if update.doc_id == @doc_id
+				@processReply(update)
+
+	sendUpdate: () ->
+		data = String.fromCharCode(65 + @charCode++ % 26)
+		@content = insert(@content, @pos, data)
+		DocUpdaterClient.sendUpdate(
+			@project_id, @doc_id
+			{
+				doc: @doc_id
+				op: [@inflight_op = {
+					i: data
+					p: @pos++
+				}]
+				v: @version
+				meta:
+					source: @client_id
+			}
+		)
+		@inflight_op_sent = Date.now()
+
+	processReply: (update) ->
+		if update.error?
+			throw new Error("Error from server: '#{update.error}'")
+		assert(update.op.v == @version, "Op version from server is not increasing by 1 each time")
+		@version++
+		if update.op.meta.source == @client_id
+			@counts.local_updates++
+			@inflight_op = null
+			delay = Date.now() - @inflight_op_sent
+			@counts.max_delay = Math.max(@counts.max_delay, delay)
+			@continue()
+		else
+			assert(update.op.op.length == 1)
+			@counts.remote_updates++
+			external_op = update.op.op[0]
+			if @inflight_op?
+				@counts.conflicts++
+				external_op = transform(external_op, @inflight_op)
+			if external_op.p < @pos
+				@pos += external_op.i.length
+			@content = insert(@content, external_op.p, external_op.i)
+
+	continue: () ->
+		if @updateCount > 0
+			@updateCount--
+			setTimeout () =>
+				@sendUpdate()
+			, @options.updateDelay * ( 0.5 + Math.random() )
+		else
+			@updateCallback()
+
+	runForNUpdates: (n, callback = (error) ->) ->
+		@updateCallback = callback
+		@updateCount = n
+		@continue()
+
+	check: (callback = (error) ->) ->
+		DocUpdaterClient.getDoc @project_id, @doc_id, (error, res, body) =>
+			throw error if error?
+			if !body.lines?
+				return console.error "[#{new Date()}] ERROR: Invalid response from get doc (#{doc_id})", body
+			content = body.lines.join("\n")
+			if content != @content
+				console.error "[#{new Date()}] Error: Client content does not match server (Server: '#{content}', Client: '#{@content}')"
+			# TODO: Check content is of the correct form
+			callback()
+
+
+checkDocument = (project_id, doc_id, clients, callback = (error) ->) ->
+	jobs = clients.map (client) ->
+		(cb) -> client.check cb
+	async.parallel jobs, callback
+
+printSummary = (doc_id, clients) ->
+	slot = require('cluster-key-slot')
+	now = new Date()
+	console.log "[#{now}] [#{doc_id.slice(0,4)} (slot: #{slot(doc_id)})] #{clients.length} clients..."
+	for client in clients
+		console.log "[#{now}] \t[#{client.client_id.slice(0,4)}] { local: #{client.counts.local_updates }, remote: #{client.counts.remote_updates}, conflicts: #{client.counts.conflicts}, max_delay: #{client.counts.max_delay} }"
+		client.counts = {
+			local_updates: 0
+			remote_updates: 0
+			conflicts: 0
+			max_delay: 0
+		}
+
+UPDATE_DELAY = parseInt(process.argv[2], 10)
+SAMPLE_INTERVAL = parseInt(process.argv[3], 10)
+
+for doc_and_project_id in process.argv.slice(4)
+	do (doc_and_project_id) ->
+		[project_id, doc_id] = doc_and_project_id.split(":")
+		console.log {project_id, doc_id}
+		DocUpdaterClient.getDoc project_id, doc_id, (error, res, body) =>
+			throw error if error?
+			if !body.lines?
+				return console.error "[#{new Date()}] ERROR: Invalid response from get doc (#{doc_id})", body
+			content = body.lines.join("\n")
+			version = body.version
+
+			clients = []
+			for pos in [1, 2, 3, 4, 5]
+				do (pos) ->
+					client = new StressTestClient({doc_id, project_id, content, pos: pos, version: version, updateDelay: UPDATE_DELAY})
+					clients.push client
+
+			do runBatch = () ->
+				jobs = clients.map (client) ->
+					(cb) -> client.runForNUpdates(SAMPLE_INTERVAL / UPDATE_DELAY, cb)
+				async.parallel jobs, (error) ->
+					throw error if error?
+					printSummary(doc_id, clients)
+					checkDocument project_id, doc_id, clients, (error) ->
+						throw error if error?
+						runBatch()


Cleanup indentation.

Cleanup indentation.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Digipalvelutehdas/APIKA.git/'


refactor minifyHtml comply with standard building the files object dynamically

--- tasks/minifyHtml.coffee
+++ tasks/minifyHtml.coffee
@@ -1,31 +1,25 @@
 module.exports = (grunt) ->
 	prettyDiff = require 'prettydiff'
-	normalizeFilesHelper = require './normalizeFilesHelper'

 	grunt.registerMultiTask 'minifyHtml', 'Minifies Html', ->
-		normalized = normalizeFilesHelper @
-		groups = normalized.groups
-		data = @data
-		conditional = data.conditional ? true
+		options = @options {
+			conditional: true
+			html: 'html-yes'
+			mode: 'minify'
+		}

-		for dest, src of groups
-			sourceContents = []
+		@files.forEach (filePair) ->
+			filePair.src.filter (filePath) ->
+				unless grunt.file.exists filePath
+					grunt.log.warn "Source file \" #{filePath}\" not found."

-			src.forEach (source) ->
-				contents = grunt.file.read source
+					false
+				else
+					true
+			.map (filePath) ->
+				contents = grunt.file.read filePath
+				options.source = contents
+				compiled = prettyDiff.api(options)[0]

-				sourceContents.push contents
-
-			separator = grunt.util.linefeed
-			contents = sourceContents.join grunt.util.normalizelf separator
-
-			options =
-				source: contents
-				mode: 'minify'
-				conditional: conditional
-				html: 'html-yes'
-
-			compiled = prettyDiff.api(options)[0]
-
-			grunt.file.write dest, compiled
-			grunt.verbose.ok "#{src} -> #{dest}"+				grunt.file.write filePair.dest, compiled
+				grunt.verbose.ok "#{filePath} -> #{filePair.dest}"


Don't build query string manually

Don't build query string manually

--- SingularityUI/app/collections/HistoricalTasks.coffee
+++ SingularityUI/app/collections/HistoricalTasks.coffee
@@ -8,6 +8,13 @@
         sortDirection = @sortDirection.toUpperCase()
         if @sortColumn in ['updatedAt', 'createdAt']
             sortDirection = if sortDirection is 'ASC' then 'DESC' else 'ASC'
-        "#{ env.SINGULARITY_BASE }/#{ constants.apiBase }/history/request/#{ @requestId }/tasks?count=#{ @perPage }&page=#{ @currentPage }&orderBy=#{ @sortColumn }&orderDirection=#{ sortDirection }"
+
+        params =
+            count: @perPage
+            page: @currentPage
+            orderBy: @sortColumn
+            orderDirection: sortDirection
+
+        "#{ env.SINGULARITY_BASE }/#{ constants.apiBase }/history/request/#{ @requestId }/tasks?#{ $.param params }"

 module.exports = HistoricalTasks


fix port for live

fix port for live

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/jonasby/trello-sprints.git/'


Adding global hook for resting cache between tests

error: pathspec 'tests/unit/hooks.coffee' did not match any file(s) known to git

--- tests/unit/hooks.coffee
+++ tests/unit/hooks.coffee
@@ -0,0 +1,17 @@
+# clear cache between all tests
+
+afterEach ->
+  mods = [
+    '../../lib/utils/plugins'
+    '../../lib/core/compiler'
+    '../../lib/core/file'
+    '../../lib/core/files'
+    '../../lib/core/server'
+
+    '../../lib/scanner/resolve'
+    '../../lib/scanner/scan'
+  ]
+
+  for m in mods
+    mod = require.resolve m
+    delete require.cache[mod]


Wrap up some Galaxy configuration

Wrap up some Galaxy configuration

error: pathspec 'lib/galaxy.coffee' did not match any file(s) known to git

--- lib/galaxy.coffee
+++ lib/galaxy.coffee
@@ -0,0 +1,8 @@
+{ GALAXY_URL, GALAXY_PUBLISHABLE_TOKEN } = require('sharify').data
+
+module.exports =
+  headers:
+    Accept: 'application/vnd.galaxy-public+json'
+
+  url: (kind) ->
+    "#{GALAXY_URL}/#{kind}?token=#{GALAXY_PUBLISHABLE_TOKEN}"


Added logger.

Added logger.

error: pathspec 'lib/logger.coffee' did not match any file(s) known to git

--- lib/logger.coffee
+++ lib/logger.coffee
@@ -0,0 +1,15 @@
+winston = require 'winston'
+
+# ---
+
+module.exports = new winston.Logger({
+	transports: [
+		new winston.transports.Console({prettyPrint : true})
+	]
+})
+
+# ---
+
+exports.exception = (exception) ->
+	module.exports.debug(exception.message, exception);
+


Add new gifbin script

Add new gifbin script

error: pathspec 'src/scripts/gifbin.coffee' did not match any file(s) known to git

--- src/scripts/gifbin.coffee
+++ src/scripts/gifbin.coffee
@@ -0,0 +1,29 @@
+# Random gif from gifbin.com
+# Enrique Vidal - enrique@cloverinteractive.com
+
+Select      = require( "soupselect" ).select
+HTMLParser  = require "htmlparser"
+gif_domain  = "http://www.gifbin.com"
+
+module.exports = (robot)->
+  robot.respond /gifbin( me)?/i, (message)->
+    send_gif message, false, (text)->
+      message.send text
+
+send_gif = (message, location, response_handler)->
+  location ||= gif_domain + "/random"
+  message.http( location ).get() (error, response, body)->
+    return response_handler "Sorry, something went wrong" if error
+
+    if response.statusCode == 301
+      location = response.headers['location']
+      return send_gif( message, location, response_handler )
+
+    response_handler get_gif( body, ".box a img" )
+
+get_gif = (body, selector)->
+  html_handler  = new HTMLParser.DefaultHandler( (()->), ignoreWhitespace: true )
+  html_parser   = new HTMLParser.Parser html_handler
+
+  html_parser.parseComplete body
+  Select( html_handler.dom, selector )[0].attribs.src


Make the gitlab plugin more human

Make the gitlab plugin more human

--- src/scripts/gitlab.coffee
+++ src/scripts/gitlab.coffee
@@ -73,19 +73,13 @@
           when "user_destroy"
             robot.send user, "We will be missing #{bold(hook.name)} (#{bold(hook.email)}) on Gitlab"
       when "web"
-        message = []
+        message = ""
         branch = hook.ref.split("/")[2..].join("/")
         # if the ref before the commit is 00000, this is a new branch
         if /^0+$/.test(hook.before)
-            message.push "Gitlab #{bold(hook.repository.name)} (#{underline(hook.repository.homepage)}): #{bold(hook.user_name)} pushed a new branch: #{bold(branch)}"
+            message = "#{bold(hook.user_name)} pushed a new branch (#{bold(branch)}) to #{bold(hook.repository.name)} (#{underline(hook.repository.homepage)})"
         else
-            message.push "Gitlab #{bold(hook.repository.name)} (#{underline(hook.repository.homepage)}): #{bold(hook.user_name)} pushed #{bold(hook.total_commits_count)} commits to #{bold(branch)}:"
-            for i, commit of hook.commits
-              commit_message = commit.message.split("\n")[0]
-              message.push "    * #{commit_message} (#{underline(trim_commit_url(commit.url))})"
-            if hook.total_commits_count > 1
-                message.push "Entire diff: #{underline(hook.repository.homepage + '/compare/' + hook.before.substr(0,9) + '...' + hook.after.substr(0,9))}"
-        message = message.join("\n")
+            message = "#{bold(hook.user_name)} pushed #{bold(hook.total_commits_count)} commits to #{bold(branch)} in #{bold(hook.repository.name)} (#{underline(hook.repository.homepage + '/compare/' + hook.before.substr(0,9) + '...' + hook.after.substr(0,9))})"
         robot.send user, message

   robot.router.post "/gitlab/system", (req, res) ->


include route modifications

include route modifications

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/companytools/ember-cli-dunlop.git/'


condition added

condition added

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/evercam/evercam-dashboard.git/'


Take care of images from github

Take care of images from github

error: pathspec 'server/accounts.coffee' did not match any file(s) known to git

--- server/accounts.coffee
+++ server/accounts.coffee
@@ -0,0 +1,26 @@
+Accounts.onCreateUser (options, user) ->
+  # Take care of github details
+  if (user.services.github)
+      accessToken = user.services.github.accessToken
+      result = Meteor.http.get("https://api.github.com/user", {
+        params: {
+          access_token: accessToken
+        }
+      })
+
+      if (result.error)
+        throw result.error;
+
+      user.services.github.picture = result.data.avatar_url;
+      user.services.github.url = result.data.url;
+      user.services.github.html_url = result.data.html_url;
+
+  # Google login details take care of themselves
+
+  # Now set up the profile
+  if options.profile
+    user.profile = options.profile
+  else
+    user.profile = {}
+
+  user


Added security snippets

Added security snippets

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/danseethaler/userlite-snippets.git/'


First version of CoffeeScript Port

First version of CoffeeScript Port

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/SoftwareDevPro/Lettering.coffee.git/'


Archive form issues fixed (#1370)

Archive form issues fixed (#1370)

* Archive form issues fixed

* Archive changes

* Changed the modal class with it's id.


countly host removed from konfig generator

see: https://github.com/koding/vault/pull/68

--- config/generateKonfig.coffee
+++ config/generateKonfig.coffee
@@ -126,8 +126,6 @@
     klientUrl: 'https://s3.amazonaws.com/koding-klient/development/latest/klient.deb'

     terraformerSecretKey: credentials.terraformer.secretKey
-
-  credentials.countly.host = 'http://dev.koding.com:32768/countly' if options.countlyPath

   marketingPagesURL = 'http://www.koding.com'


got chinese translations to appear with ?setLng=zh-Hant

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/UCSFMemoryAndAging/tabcat.git/'


More clever way of exporting the Asynchronizer class.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/kevgo/asynchronizer.git/'


Adicionando Snippet Exemplo

Adicionando Snippet Exemplo

error: pathspec 'snippets/snippet-name.cson' did not match any file(s) known to git


Clean up some typos and derpings in stream

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/damianb/crimson.git/'


Add test for component.json syntax

Add test for component.json syntax

error: pathspec 'src/spec/component.json.spec.coffee' did not match any file(s) known to git

--- src/spec/component.json.spec.coffee
+++ src/spec/component.json.spec.coffee
@@ -0,0 +1 @@
+require '../component.json'


codepickerfix

codepickerfix

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/treasures-io/main.git/'


Fixed datetime format and login/logout messages


DefineStackView: set the initial stack as default automatically if there is no stack defined for the team yet. [completes #103002544]

--- client/admin/lib/views/stacks/definestackview.coffee
+++ client/admin/lib/views/stacks/definestackview.coffee
@@ -170,7 +170,7 @@
       title          : 'Set as Default for Team'
       cssClass       : 'solid compact nav next hidden setasdefault-button'
       loader         : yes
-      callback       : @bound 'handleSetDefaultTemplate'
+      callback       : => @handleSetDefaultTemplate()

   handleSave: ->
@@ -243,17 +243,25 @@
                          template and try again"
         return

-      @outputView.add "You can now close this window, or set this
-                       template as default for your team members."
-
-      @cancelButton.setTitle 'Close'
-      @setAsDefaultButton.show()
+      { groupsController } = kd.singletons
+
+      currentGroup = groupsController.getCurrentGroup()
+
+      if not currentGroup.stackTemplates?.length
+        @handleSetDefaultTemplate completed = no
+
+      else
+        @outputView.add "You can now close this window, or set this
+                         template as default for your team members."
+
+        @cancelButton.setTitle 'Close'
+        @setAsDefaultButton.show()

   checkAndBootstrapCredentials: (callback) ->

     { credentialsData } = @stackTemplateView.credentialStatus
-    [credential]        = credentialsData
+    [ credential ]      = credentialsData

     failed = (err) =>
       @outputView.handleError err
@@ -504,7 +512,7 @@
       """

-  handleSetDefaultTemplate: ->
+  handleSetDefaultTemplate: (completed = yes) ->

     { stackTemplate }                       = @getData()
     { computeController, groupsController } = kd.singletons
@@ -532,4 +540,6 @@
         computeController.checkStackRevisions()

         @emit 'Reload'
-        @emit 'Completed', stackTemplate
+
+        if completed
+          @emit 'Completed', stackTemplate


IDE: Updated realtime.coffee file to add check for isSessionActive method

--- client/ide/lib/collaboration/helpers/realtime.coffee
+++ client/ide/lib/collaboration/helpers/realtime.coffee
@@ -79,7 +79,7 @@
   manager.fetchFileByTitle options, (err, file) ->
     return callback no  if err

-    if file.result.items.length > 0
+    if file.result?.items.length > 0
     then callback yes, file.result.items[0]
     else callback no


app-manager: Implemented opening default app for file extensions.

--- client/landing/app/MainApp/ApplicationManager.coffee
+++ client/landing/app/MainApp/ApplicationManager.coffee
@@ -142,7 +142,12 @@

   openFile: (file, app) ->

-    type = FSItem.getFileType file.getExtension()
+    extension = file.getExtension()
+    type      = FSItem.getFileType extension
+
+    if @defaultApps[extension] and not app
+      return @open @defaultApps[extension], (appController = @getFrontApp()) =>
+        appController.openFile file

     switch type
       when 'code','text','unknown'


default-apps: Fixed openFile method with default app support.

--- client/landing/app/MainApp/ApplicationManager.coffee
+++ client/landing/app/MainApp/ApplicationManager.coffee
@@ -145,23 +145,20 @@
       callback?()

-  openFile: (file, app) ->
-
-    extension = file.getExtension()
-    type      = FSItem.getFileType extension
-
-    if @defaultApps[extension] and not app
-      return @open @defaultApps[extension], (appController = @getFrontApp()) =>
-        appController.openFile file
+  openFile: (file) ->
+
+    extension  = file.getExtension()
+    type       = FSItem.getFileType extension
+    defaultApp = @defaultApps[extension]
+
+    return @openFileWithApplication defaultApp, file  if defaultApp

     switch type
       when 'code','text','unknown'
         log "open with a text editor"
-        @open app or @defaultApps.text,  (appController = @getFrontApp()) =>
-          appController.openFile file
+        @open @defaultApps.text, (appController)-> appController.openFile file
       when 'image'
-        @open app or @defaultApps.image, (appController = @getFrontApp()) =>
-          appController.openFile file
+        log "open with an image processing app"
       when 'video'
         log "open with a video app"
       when 'sound'


feat:show description for gd writer configurations

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/keboola/kbc-ui-wrapper.git/'


implement geb

implement geb

error: pathspec 'lib/run-function.coffee' did not match any file(s) known to git

--- lib/run-function.coffee
+++ lib/run-function.coffee
@@ -0,0 +1,21 @@
+{BufferedProcess} = require 'atom'
+
+module.exports =
+class RunFunction
+  strToCmd: (str) ->
+    res = str.split " "
+    return {} =
+      command: res.shift(),
+      args: res
+  run: (cmdStr,cb) ->
+    if cmdStr?
+      cmd = @strToCmd cmdStr
+      command = cmd.command
+      args = cmd.args
+      stdout = (output) ->
+        #if output.indexOf(str) > -1
+      exit = (code) =>
+
+      process = new BufferedProcess({command, args, stdout, exit})
+    else
+      atom.notifications.addInfo "daemon-run/-stop values not set"


added extra comment

added extra comment

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Bogdan-p/bookingbug-angular.git/'


updated regex in usesSoftTabs to only look for Tab and Space

--- src/editor.coffee
+++ src/editor.coffee
@@ -834,7 +834,7 @@
   usesSoftTabs: ->
     for bufferRow in [0..@buffer.getLastRow()]
       continue if @displayBuffer.tokenizedBuffer.lineForScreenRow(bufferRow).isComment()
-      if match = @buffer.lineForRow(bufferRow).match(/^\s/)
+      if match = @buffer.lineForRow(bufferRow).match(/^[ \t]/)
         return match[0][0] == ' '
     undefined


Abort task when view is created

Abort task when view is created

--- src/packages/fuzzy-finder/lib/fuzzy-finder.coffee
+++ src/packages/fuzzy-finder/lib/fuzzy-finder.coffee
@@ -35,6 +35,7 @@

   createView:  ->
     unless @fuzzyFinderView
+      @loadPathsTask?.abort()
       FuzzyFinderView  = require 'fuzzy-finder/lib/fuzzy-finder-view'
       @fuzzyFinderView = new FuzzyFinderView()
       if @projectPaths?.length > 0 and not @fuzzyFinderView.projectPaths?


Basic classifiers working.

Basic classifiers working.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/alpire/picoCTF-web.git/'


DataDog interface initial commit

DataDog interface initial commit

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/andrewjcasal/koding.git/'


Bugfix: assign app.containerId before attaching logger

--- src/application.coffee
+++ src/application.coffee
@@ -225,11 +225,11 @@
 					logSystemEvent(logTypes.startAppError, app, err)
 					throw err
 			.then ->
+				app.containerId = container.id
 				device.updateState(commit: app.commit)
 				logger.attach(app)
 		.tap (container) ->
 			# Update the app info, only if starting the container worked.
-			app.containerId = container.id
 			knex('app').update(app).where(appId: app.appId)
 			.then (affectedRows) ->
 				knex('app').insert(app) if affectedRows == 0


Add database methods for fetching and storing users.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/philbooth/GitHubReminder.git/'


Starting with tests over the history directive

error: pathspec 'test/unit/directives/history.coffee' did not match any file(s) known to git

--- test/unit/directives/history.coffee
+++ test/unit/directives/history.coffee
@@ -0,0 +1,167 @@
+beforeEach(module('taiga.directives.history'))
+beforeEach(module('gmWiki'))
+
+describe "GmHistoryDirective", ->
+    element = null
+    $rootScope = null
+    $compile = null
+
+    template = """
+

+

+

+
+
+    """
+
+    constants = {
+        users: {
+            1: {full_name: "User 1"}
+            2: {ful_name: "User 2"}
+        }
+        issueTypes: {
+            1: {name: "Type 1"}
+            2: {name: "Type 2"}
+        }
+        issueStatuses: {
+            1: {name: "Issue status 1"}
+            2: {name: "Issue status 2"}
+        }
+        priorities: {
+            1: {name: "Priority 1"}
+            2: {name: "Priority 2"}
+        }
+        severities: {
+            1: {name: "Severity 1"}
+            2: {name: "Severity 2"}
+        }
+    }
+
+
+    issueHistorical = [
+        {
+            id: 1278,
+            created_date: "2014-04-14T21:24:33.099Z",
+            content_type: "issue",
+            object_id: 1,
+            user: 1,
+            comment: "lalalalala",
+            fields: {
+                id: 1,
+                blocked_note: "test",
+                ref: 1,
+                modified_date: "2014-04-14T21:24:31.433Z",
+                created_date: "2014-03-25T16:08:29.513Z",
+                status: 1,
+                tags: ["sequi", "a"],
+                finished_date: "2014-04-14T21:24:31.432Z",
+                is_blocked: true,
+                subject: "test subject",
+                owner: 1,
+                watchers: ["2", "5"],
+                milestone: null,
+                description: "test description",
+                type: 1,
+                severity: 1,
+                project: 1,
+                assigned_to: 1,
+                priority: 1
+            },
+            changed_fields: {
+                description: {
+                    new: "test description",
+                    old: "Nisi odit aliquam quibusdam.",
+                    name: "description"
+                },
+                blocked_note: {
+                    new: "test",
+                    old: "",
+                    name: "blocked note"
+                },
+                is_blocked: {
+                    new: true,
+                    old: false,
+                    name: "is blocked"
+                },
+                subject: {
+                    new: "test subject",
+                    old: "Add setting to allow regular users to create folders at the root level.",
+                    name: "subject"
+                },
+                tags: {
+                    new: ["sequi", "a"],
+                    old: ["sequi", "a", "molestias"],
+                    name: "tags"
+                },
+                status: {
+                    new: 1,
+                    old: 2,
+                    name: "status"
+                },
+                type: {
+                    new: 1,
+                    old: 2,
+                    name: "type"
+                },
+                watchers: {
+                    new: ["1", "2"],
+                    old: [],
+                    name: "watchers"
+                },
+                severity: {
+                    new: 1,
+                    old: 2,
+                    name: "severity"
+                },
+                finished_date: {
+                    new: "2014-04-14T21:24:31.432Z",
+                    old: null,
+                    name: "finished date"
+                },
+                assigned_to: {
+                    new: 1,
+                    old: 2,
+                    name: "assigned to"
+                },
+                priority: {
+                    new: 1,
+                    old: 2,
+                    name: "priority"
+                }
+            }
+        },
+    ]
+
+    beforeEach(inject((_$compile_, _$rootScope_, gmWiki) ->
+        element = angular.element(template)
+        $compile = _$compile_
+        $rootScope = _$rootScope_
+
+
+        $rootScope.constants = constants
+    ))
+
+    it "should allow to draw an issue historical",  inject ($model)->
+        $rootScope.testIssueHistorical = {
+            models : _.map(issueHistorical, (item) => $model.make_model("issue-history", item))
+        }
+
+        element = $compile(element)($rootScope)
+        $rootScope.$digest()
+
+        #TODO ...


added github info script

added github info script

error: pathspec 'scripts/github-info.coffee' did not match any file(s) known to git

--- scripts/github-info.coffee
+++ scripts/github-info.coffee
@@ -0,0 +1,16 @@
+url = require 'url'
+
+module.exports = (robot) ->
+  robot.hear /(https?:\/\/(www\.)?github\.com\/)(.*)/i, (msg) ->
+    url_parsed = url.parse(msg.match[0])
+    path = url_parsed.path.substring(1)
+
+    if path
+      msg.http("https://api.github.com/repos/#{path}")
+        .query({
+          alt: 'json'
+        }).get() (err, res, body) ->
+          if res.statusCode is 200
+            data = JSON.parse(body)
+            description = data.description
+            msg.send "Github #{data.full_name}: #{data.description}"


Fix errors on Windows

Fix errors on Windows

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/nathan/lemma.git/'


few changes

few changes

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/evercam/evercam-dashboard.git/'


Ugh. No @mini. @mini is a prop.

Ugh. No @mini. @mini is a prop.

--- src/editor-view.coffee
+++ src/editor-view.coffee
@@ -72,16 +72,16 @@
     if editorOrParams instanceof Editor
       @editor = editorOrParams
     else
-      {@editor, @mini, placeholderText} = editorOrParams
+      {@editor, mini, placeholderText} = editorOrParams
       props ?= {}
-      props.mini = @mini
+      props.mini = mini
       props.placeholderText = placeholderText
       @editor ?= new Editor
         buffer: new TextBuffer
         softWrap: false
         tabLength: 2
         softTabs: true
-        mini: @mini
+        mini: mini

     props = defaults({@editor, parentView: this}, props)
     @component = React.renderComponent(EditorComponent(props), @element)


[fix] [levels] Fixed "!me" thing >_<

[fix] [levels] Fixed "!me" thing >_<

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Mikuia/Mikuia.git/'


Implement verify method

Implement verify method

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/laterpay/laterpay-client-node.git/'


Rearrange compile flags

Rearrange compile flags

--- Gruntfile.coffee
+++ Gruntfile.coffee
@@ -73,8 +73,8 @@
 	grunt.registerTask 'compile:bin', () ->
 		callback = @async()
 		proc = spawn "cc", [
-			"-o", "bin/synctex", "-lz", "-Isrc/synctex",
-			"src/synctex.c", "src/synctex/synctex_parser.c", "src/synctex/synctex_parser_utils.c"
+			"-o", "bin/synctex", "-Isrc/synctex",
+			"src/synctex.c", "src/synctex/synctex_parser.c", "src/synctex/synctex_parser_utils.c", "-lz"
 		], stdio: "inherit"
 		proc.on "close", callback


Add shim for rootView on either atom or window

--- src/select-list.coffee
+++ src/select-list.coffee
@@ -171,6 +171,8 @@
     if @previouslyFocusedElement?.isOnDom()
       @previouslyFocusedElement.focus()
     else
+      # TODO Remove once all packages have been updated
+      rootView = atom?.rootView ? window.rootView
       rootView.focus()

   # Public:


Renamed standup.coffee to hangout.coffee

error: pathspec 'src/scripts/hangout.coffee' did not match any file(s) known to git

--- src/scripts/hangout.coffee
+++ src/scripts/hangout.coffee
@@ -0,0 +1,22 @@
+# Description:
+#  Listens for "hangout" keyword and sends Google Hangout url. Saves a couple minutes in our office.
+#
+# Configuration:
+#   HUBOT_HANGOUT_URL
+#
+# Commands:
+#   hubot hangout - sends hangout url
+#
+# Notes:
+#  To generate a static Hangout URL, create a Google+ event sometime in the future
+#  @ https://plus.google.com/events
+#
+# Author:
+#   nicoritschel
+
+module.exports = (robot) ->
+  robot.listen /hangout(.*)/i, (msg) ->
+    if HUBOT_HANGOUT_URL
+      msg.send process.env.HUBOT_HANGOUT_URL
+    else
+      msg.send "Environment variable HUBOT_HANGOUT_URL has not been set. Add EXPORT HUBOT_HANOUT_URL="..." to your profile"


Generate hex digest hashes using various hashing algorithms

error: pathspec 'src/scripts/hashing.coffee' did not match any file(s) known to git

--- src/scripts/hashing.coffee
+++ src/scripts/hashing.coffee
@@ -0,0 +1,28 @@
+# Various hashing algorithms.
+#
+# md5|sha|sha1|sha256|sha512|rmd160 me <string> - Generate hash of <string>
+
+crypto = require 'crypto'
+
+module.exports = (robot) ->
+  robot.respond /md5( me)? (.*)/i, (msg) ->
+    msg.send hexDigest(msg.match[2], 'md5')
+
+  robot.respond /SHA( me)? (.*)/i, (msg) ->
+    msg.send hexDigest(msg.match[2], 'sha')
+
+  robot.respond /SHA1( me)? (.*)/i, (msg) ->
+    msg.send hexDigest(msg.match[2], 'sha1')
+
+  robot.respond /SHA256( me)? (.*)/i, (msg) ->
+    msg.send hexDigest(msg.match[2], 'sha256')
+
+  robot.respond /SHA512( me)? (.*)/i, (msg) ->
+    msg.send hexDigest(msg.match[2], 'sha512')
+
+  robot.respond /RMD160( me)? (.*)/i, (msg) ->
+    msg.send hexDigest(msg.match[2], 'rmd160')
+
+# hex digest helper
+hexDigest = (str, algo) ->
+  crypto.createHash(algo).update(str, 'utf8').digest('hex')


fix rescue time konnector

fix rescue time konnector

--- server/konnectors/rescuetime.coffee
+++ server/konnectors/rescuetime.coffee
@@ -93,7 +93,7 @@
 Something went wrong while fetching rescue time data.
 """
             else
-                async.eachSeries body.rows, (data, err) ->
+                async.eachSeries body.rows, (row, cb) ->
                     data =
                         date: row[0]
                         duration: row[1]
@@ -105,6 +105,6 @@
                         log.debug 'new activity imported'
                         log.debug JSON.stringify data

-                        callback err
+                        cb err
                 , (err) ->
                     callback()


Do not set window icon, fixes #4811

Do not set window icon, fixes #4811

--- src/browser/atom-window.coffee
+++ src/browser/atom-window.coffee
@@ -10,7 +10,6 @@
 class AtomWindow
   _.extend @prototype, EventEmitter.prototype

-  @iconPath: path.resolve(__dirname, '..', '..', 'resources', 'atom.png')
   @includeShellLoadTime: true

   browserWindow: null
@@ -26,7 +25,6 @@
     @browserWindow = new BrowserWindow
       show: false
       title: 'Atom'
-      icon: @constructor.iconPath
       'web-preferences':
         'direct-write': false
         'subpixel-font-scaling': false


Don't focus when opening locations

Don't focus when opening locations

--- src/browser/atom-window.coffee
+++ src/browser/atom-window.coffee
@@ -166,7 +166,6 @@

   openLocations: (locationsToOpen) ->
     if @loaded
-      @focus()
       @sendMessage 'open-locations', locationsToOpen
     else
       @browserWindow.once 'window:loaded', => @openLocations(locationsToOpen)


elements gone too deep

elements gone too deep

--- resources/assets/coffee/react/_components/bbcode-editor.coffee
+++ resources/assets/coffee/react/_components/bbcode-editor.coffee
@@ -165,16 +165,16 @@
             className: 'bbcode-size-select'
             title: osu.trans('bbcode.size._'),

-            span className: "bbcode-size-select__label", osu.trans('bbcode.size._'),
-              i className: "fa fa-chevron-down"
-              select
-                className: 'bbcode-size-select__select js-bbcode-btn--size'
-                onChange: @onInput
-                value: '100',
-                option value: '50', osu.trans('bbcode.size.tiny')
-                option value: '85', osu.trans('bbcode.size.small')
-                option value: '100', osu.trans('bbcode.size.normal')
-                option value: '150', osu.trans('bbcode.size.large')
+            span className: "bbcode-size-select__label", osu.trans('bbcode.size._')
+            i className: "fa fa-chevron-down"
+            select
+              className: 'bbcode-size-select__select js-bbcode-btn--size'
+              onChange: @onInput
+              value: '100',
+              option value: '50', osu.trans('bbcode.size.tiny')
+              option value: '85', osu.trans('bbcode.size.small')
+              option value: '100', osu.trans('bbcode.size.normal')
+              option value: '150', osu.trans('bbcode.size.large')

         el 'div', className: 'post-editor__actions',
           el 'button',


fix (Ui) Most steroids-dependant functions work inside iframe

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/AppGyver/supersonic.git/'


another broken thing

another broken thing


add dar-deploy-listener

add dar-deploy-listener

error: pathspec 'scripts/dar-deploy-listener.coffee' did not match any file(s) known to git

--- scripts/dar-deploy-listener.coffee
+++ scripts/dar-deploy-listener.coffee
@@ -0,0 +1,57 @@
+# Description:
+#   Listens for DAR deploy status and parses the output
+#
+# Dependencies:
+#   None
+#
+# Configuration:
+#   None
+#
+# Commands:
+#   None
+#
+
+NOTIFICATION_CHANNEL = 'rundeck-notifications'
+EMAIL_SUBJECT = 'SUCCESS - [Integration and Production] Deploy'
+
+parseLog = (data) =>
+  lines = data.split('\r\n')
+  refreshedList = []
+  failedList = []
+  refreshedPattern = /Refreshing table: (.*)/
+  failedPattern = /There was an error refreshing table: (.*)/
+
+  for line in lines
+    refreshed = line.match(refreshedPattern)
+    if refreshed
+      refreshedList.push refreshed[1]
+    failed = line.match(failedPattern)
+    if failed
+      failedList.push failed[1]
+
+  successList = refreshedList.filter((e) -> failedList.indexOf(e) < 0)
+
+  return { success: successList, failed: failedList }
+
+handleLog = (logUrl, robot) =>
+  https = require('https');
+  req = https.get logUrl, (res) ->
+    res.setEncoding('utf8')
+    res.on('data', (d) ->
+      status = parseLog d
+      msgData = {
+        channel: '#' + NOTIFICATION_CHANNEL
+        text: 'Failed to refresh: ' + status.failed.join(',')
+      }
+      robot.adapter.customMessage msgData
+    )
+  req.on('error', (e) ->
+    console.error(e)
+  )
+
+module.exports = (robot) ->
+
+  robot.catchAll (msg) ->
+    if msg.message.user.room == NOTIFICATION_CHANNEL && msg.message.user.name == 'slackbot'
+      if msg.message.rawMessage.files.length > 0 && msg.message.rawMessage.files[0].name == EMAIL_SUBJECT
+        handleLog msg.message.rawMessage.files[0].attachments[0].url, robot


tests for posts

tests for posts

error: pathspec 'test/posts_test.coffee' did not match any file(s) known to git

--- test/posts_test.coffee
+++ test/posts_test.coffee
@@ -0,0 +1,26 @@
+puts = require 'puts'
+request = require 'supertest'
+
+Post = require process.cwd() + '/.app/models/Post'
+app = require process.cwd() + '/.app'
+
+describe 'Post', ->
+  before (done) ->
+    Post.remove {}, ->
+      done()
+  it "should be created", (done) ->
+    postData = {
+      "title":"SomeTitle",
+      "body":"body of post",
+      "url":"some url"
+    }
+    request(app)
+      .post("/posts/create")
+      .send(postData)
+      .expect(201, (err, res) ->
+
+        res.body.should.include(postData)
+        res.body.should.have.property "_id"
+        res.body["_id"].should.be.ok
+        done()
+      )


Updated help

Updated help

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/slash7it/warbot.git/'


Now with giphy.

Now with giphy.

error: pathspec 'scripts/giphy.coffee' did not match any file(s) known to git

--- scripts/giphy.coffee
+++ scripts/giphy.coffee
@@ -0,0 +1,40 @@
+# Description:
+#   A way to search images on giphy.com
+#
+# Configuration:
+#   HUBOT_GIPHY_API_KEY
+#
+# Commands:
+#   hubot gif me <query> - Returns an animated gif matching the requested search term.
+
+giphy =
+  api_key: process.env.HUBOT_GIPHY_API_KEY
+  base_url: 'http://api.giphy.com/v1'
+
+module.exports = (robot) ->
+  robot.respond /(gif|giphy)( me)? (.*)/i, (msg) ->
+    giphyMe msg, msg.match[3], (url) ->
+      msg.send url
+
+giphyMe = (msg, query, cb) ->
+  endpoint = '/gifs/search'
+  url = "#{giphy.base_url}#{endpoint}"
+
+  msg.http(url)
+    .query
+      q: query
+      api_key: giphy.api_key
+    .get() (err, res, body) ->
+      response = undefined
+      try
+        response = JSON.parse(body)
+        images = response.data
+        if images.length > 0
+          image = msg.random images
+          cb image.images.original.url
+
+      catch e
+        response = undefined
+        cb 'Error'
+
+      return if response is undefined


replaced Q

replaced Q

(cherry picked from commit c0c94d14cf7ca24f2e8152cc24c70aa9927c3dd3)

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/AppGyver/steroids.git/'


examples of where coffee is bad

examples of where coffee is bad

error: pathspec 'bad.coffee' did not match any file(s) known to git

--- bad.coffee
+++ bad.coffee
@@ -0,0 +1,11 @@
+# good
+x = if y then 1 else 2
+# bad
+x = if y then
+  1 else 2
+
+# good
+x = 1 if y
+# bad
+x = 1
+  if y


Implement the Undo/Redo, issue #3

Implement the Undo/Redo, issue #3

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Hiroto-K/EncryptionHelper.git/'


Problem list visualizer wip.

Problem list visualizer wip.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/picoCTF/picoCTF-web.git/'


rename canSend to shouldSend to avoid some confusion

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/osokay/IotServerCore.git/'


nouvelles questions

nouvelles questions

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/LucasAdam/hubot-trivia-game-french.git/'


added abstract script

added abstract script

error: pathspec 'scripts/abstract.coffee' did not match any file(s) known to git

--- scripts/abstract.coffee
+++ scripts/abstract.coffee
@@ -0,0 +1,45 @@
+# Description:
+#   None
+#
+# Dependencies:
+#   None
+#
+# Configuration:
+#   None
+#
+# Commands:
+#   hubot abstract <topic> - Prints a nice abstract of the given topic
+#
+# Author:
+#   tantalor
+
+module.exports = (robot) ->
+  robot.respond /(abs|abstract) (.+)/i, (res) ->
+    abstract_url = "http://api.duckduckgo.com/?format=json&q=#{encodeURIComponent(res.match[2])}"
+    res.http(abstract_url)
+      .header('User-Agent', 'Hubot Abstract Script')
+      .get() (err, _, body) ->
+        return res.send "Sorry, the tubes are broken." if err
+        data = JSON.parse(body.toString("utf8"))
+        return unless data
+        topic = data.RelatedTopics[0] if data.RelatedTopics and data.RelatedTopics.length
+        if data.AbstractText
+          # hubot abs numerology
+          # Numerology is any study of the purported mystical relationship between a count or measurement and life.
+          # http://en.wikipedia.org/wiki/Numerology
+          res.send data.AbstractText
+          res.send data.AbstractURL if data.AbstractURL
+        else if topic and not /\/c\//.test(topic.FirstURL)
+          # hubot abs astronomy
+          # Astronomy is the scientific study of celestial objects.
+          # http://duckduckgo.com/Astronomy
+          res.send topic.Text
+          res.send topic.FirstURL
+        else if data.Definition
+          # hubot abs contumacious
+          # contumacious definition: stubbornly disobedient.
+          # http://merriam-webster.com/dictionary/contumacious
+          res.send data.Definition
+          res.send data.DefinitionURL if data.DefinitionURL
+        else
+          res.send "I don't know anything about that."


no no no

no no no

error: pathspec 'scripts/no-no-no.coffee' did not match any file(s) known to git

--- scripts/no-no-no.coffee
+++ scripts/no-no-no.coffee
@@ -0,0 +1,3 @@
+module.exports = (robot) ->
+  robot.hear /(what? no|no no no).*/i, (msg) ->
+    msg.send "http://mlkshk.com/r/AKHF.gif"


Fixing tabs.

Fixing tabs.

--- scripts/HubotMad.coffee
+++ scripts/HubotMad.coffee
@@ -16,5 +16,5 @@
 mad = "凸(｀0´)凸"

- robot.hear /(mad)/i, (msg) ->
-    msg.send mad
+robot.hear /(mad)/i, (msg) ->
+  msg.send mad


add ecore.coffee

add ecore.coffee

error: pathspec 'ecore.coffee' did not match any file(s) known to git


adding restart command

adding restart command

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/bubblegroup/bubblebot.git/'


added ability to copy a credential set from one environment to another


First test.

First test.

error: pathspec 'test/views/app_test.coffee' did not match any file(s) known to git

--- test/views/app_test.coffee
+++ test/views/app_test.coffee
@@ -0,0 +1,8 @@
+Formbuilder = window.Formbuilder
+
+describe 'Formbuilder', ->
+    beforeEach ->
+        @view = new Formbuilder()
+
+    it 'should exist', ->
+        expect(@view).to.be.ok


Render people on dashboard even when user is not admin

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/netguru/people.git/'


Remove unneeded rootView ivar

Remove unneeded rootView ivar

--- src/packages/command-panel/lib/preview-list.coffee
+++ src/packages/command-panel/lib/preview-list.coffee
@@ -13,7 +13,7 @@

   operations: null

-  initialize: (@rootView) ->
+  initialize: ->
     super

     @on 'core:move-down', => @selectNextOperation(); false


Ensure new notes are highlighted properly on a merge request diff

--- app/assets/javascripts/notes.js.coffee
+++ app/assets/javascripts/notes.js.coffee
@@ -148,6 +148,8 @@
     @note_ids.push(note.id)
     form = $("form[rel='" + note.discussion_id + "']")
     row = form.closest("tr")
+    note_html = $(note.html)
+    note_html.syntaxHighlight()

     # is this the first note of discussion?
     if row.is(".js-temp-notes-holder")
@@ -158,14 +160,16 @@
       row.next().find(".note").remove()

       # Add note to 'Changes' page discussions
-      $(".notes[rel='" + note.discussion_id + "']").append note.html
+      $(".notes[rel='" + note.discussion_id + "']").append note_html

       # Init discussion on 'Discussion' page if it is merge request page
       if $('body').attr('data-page').indexOf('projects:merge_request') == 0
-        $('ul.main-notes-list').append(note.discussion_with_diff_html)
+        discussion_html = $(note.discussion_with_diff_html)
+        discussion_html.syntaxHighlight()
+        $('ul.main-notes-list').append(discussion_html)
     else
       # append new note to all matching discussions
-      $(".notes[rel='" + note.discussion_id + "']").append note.html
+      $(".notes[rel='" + note.discussion_id + "']").append note_html

     # cleanup after successfully creating a diff/discussion note
     @removeDiscussionNoteForm(form)


automatic insert of doc with id 321 (testing purpose)

--- test/data_tests.coffee
+++ test/data_tests.coffee
@@ -3,13 +3,23 @@
 Client = require('../common/test/client').Client
 app = require('../server')

+client = new Client("http://localhost:8888/")

-client = new Client("http://localhost:8888/")
+# connection to DB for "hand work"
+cradle = require 'cradle'
+connection = new cradle.Connection
+    cache: true,
+    raw: false
+db = connection.database('cozy')

 describe "Test section", ->

     before (done) ->
+        # check database state for tests : insert id 321
+        db.save '321', {}
+
+        # start app
         app.listen(8888)
         done()

@@ -28,7 +38,6 @@
             should.exist @body.exist
             @body.exist.should.not.be.ok

-	# L'element d'id 321 doit etre ajoute a la main dans la base.
         it "When I send a request to check existence of Note with id 321", \
                 (done) ->
             client.get "data/exist/321/", (error, response, body) =>


Remove log noise.

Remove log noise.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/philbooth/GitHubReminder.git/'


Smoke test only passes on macOS

Smoke test only passes on macOS

--- spec/integration/smoke-spec.coffee
+++ spec/integration/smoke-spec.coffee
@@ -5,6 +5,8 @@
 runAtom = require './helpers/start-atom'

 describe "Smoke Test", ->
+  return unless process.platform is 'darwin' # Fails on win32
+
   atomHome = temp.mkdirSync('atom-home')

   beforeEach ->


Init sortable, if !loading and post-digest cycle

Great example on why it's not pretty trying to get JQuery plugins to
work together with Angular

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/UM-USElab/gradecraft-development.git/'


Found a better example of lenient highlighting

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/lonelyplanet/rizzo.git/'


Updated Formatting

Updated Formatting

--- src/badges.coffee
+++ src/badges.coffee
@@ -42,8 +42,9 @@
   'seer1', 'seer2', 'seer3', 'seer4', 'seer5',
   'shonin'
   'specops1', 'specops2', 'specops3', 'specops4', 'specops5',
-  'trekker1', 'trekker2', 'trekker3', 'trekker4', 'trekker5', 'translator1',
-  'translator2', 'translator3', 'translator4', 'translator5',
+  'trekker1', 'trekker2', 'trekker3', 'trekker4', 'trekker5',
+  'translator1', 'translator2', 'translator3', 'translator4',
+  'translator5',
   'verified'
 ]


Update level and hero counts

Update level and hero counts

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/VilkkuV/codecombat.git/'


removed 13101

removed 13101


Ensured unrendering is synchronous.

Ensured unrendering is synchronous.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/urbanetic/meteor-atlas-util.git/'


Added zoomIn() and zoomOut() methods.

Added zoomIn() and zoomOut() methods.


Show review pane immediately after a problem has been solved.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/alpire/picoCTF-web.git/'


gofmt

gofmt

--- atom.symlink/config.cson
+++ atom.symlink/config.cson
@@ -25,7 +25,7 @@
     goPath: "~/Code/Go"
   "go-rename": {}
   gofmt:
-    formatTool: "goreturns"
+    formatTool: "gofmt"
   linter: {}
   "tree-view":
     hideVcsIgnoredFiles: true


Install jsonlint

Install jsonlint

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/ocrampete16/dotfiles.git/'


Adds a stupid FOAAS thing maybe

Adds a stupid FOAAS thing maybe

Let's be honest, I haven't tested this, I don't know coffeescript and it's pretty likely not to work. But fingers crossed...

error: pathspec 'scripts/foaas.coffee' did not match any file(s) known to git

--- scripts/foaas.coffee
+++ scripts/foaas.coffee
@@ -0,0 +1,36 @@
+
+module.exports = (robot) ->
+  namePattern = /name:(\S\w+)/i
+  # subset of operations defined at http://foaas.com/operations
+  operations = [
+    '/off/:name/:from',
+    '/you/:name/:from',
+    '/donut/:name/:from',
+    '/shakespeare/:name/:from',
+    '/linus/:name/:from',
+    '/king/:name/:from',
+    '/chainsaw/:name/:from',
+    '/outside/:name/:from',
+    '/madison/:name/:from',
+    '/nugget/:name/:from',
+    '/yoda/:name/:from',
+    '/bus/:name/:from',
+    '/xmas/:name/:from',
+    '/bday/:name/:from',
+    '/shutup/:name/:from'
+  ]
+
+  FOAAS = 'http://foaas.com'
+
+  robot.respond /foaas (.*)/i, (res) ->
+    name = namePattern.exec res.match[0]
+    name = name[1]
+    from = res.message.user.name.toLowerCase()
+
+    if name
+      endpoint = FOAAS + operations[Math.floor(Math.random() * operations.length)]
+      endpoint = endpoint.replace(":name",name).replace(":from",from)
+      robot.http(endpoint).header("Accept", "text/plain").get() (err, res, body) ->
+        res.send body
+    else
+      res.send "I didn't understand that"


starting to identify super calls

starting to identify super calls

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/showell/CoffeeCoffee.git/'


set user name when viewing shared tab

set user name when viewing shared tab

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/leonidas/qa-dashboard.git/'


adding quad trees for collisions

adding quad trees for collisions

error: pathspec 'src/quad_tree.coffee' did not match any file(s) known to git

--- src/quad_tree.coffee
+++ src/quad_tree.coffee
@@ -0,0 +1,35 @@
+(
+
+  window.QuadTree(I) ->
+    I ||= {}
+
+    $.reverseMerge I,
+      bounds:
+        x: 0
+        y: 0
+        width: 480
+        height: 320
+      maxDepth: 4
+      maxChildren: 5
+
+    root = Node(I.bounds, I.maxDepth, I.maxChildren()
+
+    self =
+      clear: ->
+        root.clear()
+
+      insert: (obj) ->
+        if obj instanceOf Array
+          obj.invoke('root.insert')
+        else
+          root.insert(obj)
+
+
+      retrieve: (item) ->
+        return root.retrieve(item).copy()
+
+
+
+    self
+
+)()


Create an internationalization module which uses associative array and manage language from url

error: pathspec 'plugins/i18n.coffee' did not match any file(s) known to git

--- plugins/i18n.coffee
+++ plugins/i18n.coffee
@@ -0,0 +1,63 @@
+module.exports = (env, callback) ->
+  lang_FR = [
+    'LAB_KEYWORDS'        : 'Mots clés',
+    'LAB_DEMOS'           : 'Démos & Projets',
+    'LAB_MORE'            : 'Voir plus',
+    'LAB_HOME'            : 'Accueil',
+    'LAB_EXPERIENCES'     : 'Expériences',
+    'LAB_COMPETENCES'     : 'Compétences',
+    'LAB_FORMATIONS'      : 'Formations',
+    'LAB_BLOG'            : 'Blog',
+    'LAB_CONTACT'         : 'Contact',
+    'LAB_EXPERIENCES_PRO' : 'Expériences professionelles',
+
+    'DESC_POSTE'          : 'Ingénieur R&D à Catopsys',
+    'EXP_GITHUB'          : 'L’ensemble de ces démos sont a retrouver directement sur '
+  ]
+  lang_EN = [
+    'LAB_KEYWORDS'        : 'Keywords',
+    'LAB_DEMOS'           : 'Demos & Projects',
+    'LAB_MORE'            : 'More',
+    'LAB_HOME'            : 'Home',
+    'LAB_EXPERIENCES'     : 'Experiences',
+    'LAB_COMPETENCES'     : 'Competences',
+    'LAB_FORMATIONS'      : 'Formations',
+    'LAB_BLOG'            : 'Blog',
+    'LAB_CONTACT'         : 'Contact',
+    'LAB_EXPERIENCES_PRO' : 'Professionnal experiences',
+
+    'DESC_POSTE'          : 'R&D engineer at Catopsys',
+    'EXP_GITHUB'          : 'All this demos can be found on '
+  ]
+
+  # assign defaults any option not set in the config file
+  language = 'fr'
+
+  getString = (key) ->
+    if language == 'fr'
+      return lang_FR[0][key]
+    return lang_EN[0][key]
+
+  checkLanguage = (page) ->
+    if page.url.indexOf('/en/') != -1
+      language = 'en'
+    else
+      language = 'fr'
+
+  getRoot = () ->
+    if language == 'fr'
+      return ''
+    else
+      return '/en'
+
+  getLanguage = () ->
+    return language
+
+
+  env.helpers.s = getString
+  env.helpers.checkLanguage = checkLanguage
+  env.helpers.getRoot = getRoot
+  env.helpers.getLanguage = getLanguage
+
+  # tell the plugin manager we are done
+  callback()


[parser] Add do as an alias for no-variables let

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/demhydraz/cafe.git/'


stealth update option

stealth update option

--- query_runner.coffee
+++ query_runner.coffee
@@ -4,10 +4,45 @@

   constructor: (@looker, @query, @bot, @message, @visualization) ->

-  reply: (obj) ->
-    @bot.reply(@message, obj)
+  reply: (obj, cb) ->

-  run: ->
+    if @loadingMessage
+      # Hacky stealth update of message to preserve chat order
+
+      if typeof(obj) == 'string'
+        obj = {text: obj, channel: @message.channel}
+
+      params = {ts: @loadingMessage.ts, channel: @message.channel}
+
+      update = _.extend(params, obj)
+      update.attachments = if update.attachments then JSON.stringify(update.attachments) else null
+      update.text = update.text || " "
+
+      @bot.api.chat.update(update)
+    else
+      @bot.reply(@message, obj, cb)
+
+  startLoading: (cb) ->
+    params =
+      text: "Working on it..."
+      channel: @message.channel
+      as_user: true
+      attachments: [] # Override some Botkit stuff
+
+    @bot.say(params, (err, res) =>
+      @loadingMessage = res
+      cb()
+    )
+
+  run:  ->
+    if process.env.LOOKER_SLACKBOT_STEALTH_EDIT == "true"
+      @startLoading(=>
+        @_runInternal()
+      )
+    else
+      @_runInternal()
+
+  _runInternal: ->

     [txt, limit, path, ignore, fields] = @query.match(/([0-9]+ )?(([\w]+\/){0,2})(.+)/)

@@ -90,8 +125,8 @@
           fields: result.fields.measures.map((m) ->
             {title: m.label, value: result.data[0][m.name].rendered, short: true}
           )
-          text: query.share_url
         ]
+        text: query.share_url
       )
     else if result.fields.dimensions.length == 1 && result.fields.measures.length == 0
       @reply(
@@ -102,8 +137,8 @@
               d[result.fields.dimensions[0].name].rendered
             ).join("\n")
           ]
-          text: query.share_url
         ]
+        text: query.share_url
       )
     else if result.fields.dimensions.length == 1 && result.fields.measures.length == 1
       dim = result.fields.dimensions[0]
@@ -116,8 +151,8 @@
               "#{d[dim.name].rendered} – #{d[mes.name].rendered}"
             ).join("\n")
           ]
-          text: query.share_url
         ]
+        text: query.share_url
       )
     else
       @reply(query.share_url)


[bot] [fix] fixed !mikuia commands

[bot] [fix] fixed !mikuia commands

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Mikuia/Mikuia.git/'


Add benchmark for the gutter api fns

Add benchmark for the gutter api fns

--- benchmark/benchmark-suite.coffee
+++ benchmark/benchmark-suite.coffee
@@ -123,6 +123,19 @@
         div = document.createElement('div')
         div.innerHTML = html

+    describe "gutter-api.", ->
+      describe "getLineNumberElementsForClass.", ->
+        beforeEach ->
+          editor.gutter.addClassToLine(20, 'omgwow')
+          editor.gutter.addClassToLine(40, 'omgwow')
+
+        benchmark "DOM", 20000, ->
+          editor.gutter.getLineNumberElementsForClass('omgwow')
+
+      describe "getLineNumberElement.", ->
+        benchmark "DOM", 20000, ->
+          editor.gutter.getLineNumberElementDOM(12)
+
     describe "line-htmlification.", ->
       div = null
       html = null


Modified in browser at pixie.strd6.com

Modified in browser at pixie.strd6.com

error: pathspec 'src/engine_mouse.coffee' did not match any file(s) known to git

--- src/engine_mouse.coffee
+++ src/engine_mouse.coffee
@@ -0,0 +1,16 @@
+###*
+This module sets up the keyboard inputs for each engine update.
+
+@name Keyboard
+@fieldOf Engine
+@module
+@param {Object} I Instance variables
+@param {Object} self Reference to the engine
+###
+Engine.Keyboard = (I, self) ->
+  self.bind "beforeUpdate", ->
+    # TODO: Make a Gamepad/Keyboard input module that has web and XNA
+    # implementations
+    updateKeys?()
+
+  return {}


Stick Yubikey leak on end of VRBO URL and see what happens

error: pathspec 'scripts/vrbo.coffee' did not match any file(s) known to git

--- scripts/vrbo.coffee
+++ scripts/vrbo.coffee
@@ -0,0 +1,24 @@
+# Description:
+#   Load a random rental property from VRBO based on emorrise yubikey emissions
+#
+# Dependencies:
+#   None
+#
+# Configuration:
+#   None
+#
+# Commands:
+#   There are no commands
+#
+# Author:
+#   nzwulfin
+
+robot.respond /(\d{6}$)/i, (msg) ->
+  num = "#{msg.match[1]}"
+
+  msg.http("http://www.vrbo.com/#{num}")
+    .get() (err, res, body) ->
+      if res.statusCode == 404
+        msg.send 'Property #{num} not found.'
+      else
+        msg.send object.link


Curly braces.

Curly braces.


invitation: send type to backend for filtering multiuse

--- client/Dashboard/views/groupsinvitationtabpaneview.coffee
+++ client/Dashboard/views/groupsinvitationtabpaneview.coffee
@@ -57,7 +57,8 @@
     @controller.showLazyLoader no

     options = {@timestamp , @requestLimit, search: @searchValue, }
-    options.showResolved = @options.showResolved
+    options.showResolved = @getOptions().showResolved
+    options.type = @getOptions().type

     @getData().fetchInvitationsByStatus options, (err, results)=>
       @controller.hideLazyLoader()


KiteLogger: comment-out kite logger console logs

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/andrewjcasal/koding.git/'


TBCampaign: Create campaign content in home page if campaign is still valid.


Added task bar model.

Added task bar model.

error: pathspec 'app/assets/javascripts/app/models/taskbar.js.coffee' did not match any file(s) known to git

--- app/assets/javascripts/app/models/taskbar.js.coffee
+++ app/assets/javascripts/app/models/taskbar.js.coffee
@@ -0,0 +1,4 @@
+class App.Taskbar extends App.Model
+  @configure 'Taskbar', 'type', 'type_id', 'callback', 'state', 'params', 'notify', 'active'
+  @extend Spine.Model.Local
+#  @url: 'api/taskbar'


do not set status for offline users

do not set status for offline users

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/VoiSmart/Rocket.Chat.git/'


remove note to self

remove note to self


Fix crash when missing 'main'

Fix crash when missing 'main'

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/nathan/lemma.git/'


Added Logger class.

Added Logger class.

error: pathspec 'src/utils/Logger.coffee' did not match any file(s) known to git


Adding in typeracer

Adding in typeracer

error: pathspec 'scripts/typeracer.coffee' did not match any file(s) known to git

--- scripts/typeracer.coffee
+++ scripts/typeracer.coffee
@@ -0,0 +1,21 @@
+# Description:
+#   Challenges anyone to typeracers
+#
+# Dependencies:
+#   None
+#
+# Configuration:
+#   None
+#
+# Commands:
+#   None
+#
+# Author:
+#   dexdexdex
+
+module.exports = (robot) ->
+  robot.hear /(typeracer)/i, (msg) ->
+    msg.send "http://play.typeracer.com/?rt=trgnawhleinad";
+
+  robot.hear /(time to duel)/i, (msg) ->
+    msg.send "http://play.typeracer.com/?rt=trgnawhleinad"


Fixed Verifcation Doc Insert into collection, when not allowed

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/CO-OPEN/Mangos.git/'


Initial commit

Initial commit

--- mongodb_event_store.coffee
+++ mongodb_event_store.coffee
@@ -0,0 +1,51 @@
+# this should go into its own module: eventric-mongodb-eventstore so we can test with mongodb
+# TODO actually this should not know anything about aggregates and events, we need a `DomainEventRepository` for that, dont we?
+MongoClient = require('mongodb').MongoClient
+
+class MongoDBEventStore
+
+  initialize: (callback) ->
+
+    MongoClient.connect 'mongodb://127.0.0.1:27017/events', (err, db) =>
+      if err
+        console.log 'MongoDB connection failed'
+        callback? err, null
+        return
+
+      console.log 'MongoDB connected'
+      @db = db
+      callback? null
+
+
+
+  save: (domainEvent, callback) ->
+
+    @db.collection domainEvent.aggregate.name, (err, collection) ->
+      return callback err, null if err
+
+      collection.insert domainEvent, (err, doc) ->
+        return callback err if err
+
+        callback null
+
+
+  find: ([aggregateName, query, projection]..., callback) ->
+    if not query
+      err = new Error 'Missing query'
+      callback err, null
+      return
+    projection = {} unless projection
+
+    @db.collection aggregateName, (err, collection) =>
+      return callback err, null if err
+
+      collection.find query, projection, (err, cursor) =>
+        return callback err, null if err
+
+        cursor.toArray (err, items) =>
+          return callback err, null if err
+
+          callback null, items
+
+
+module.exports = MongoDBEventStore


Warn user when going to XML Editor. Cleanup and comments.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/bmedx/modulestore.git/'


bug fix

bug fix

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/qiangyu/nodejsconfig.git/'


Added achewood.coffee
---
I always did what I was supposed to

got a EDUCATION

taught myself COMPUTER SCIENCE

error: pathspec 'src/achewood.coffee' did not match any file(s) known to git

--- src/achewood.coffee
+++ src/achewood.coffee
@@ -0,0 +1,52 @@
+# Description
+#   Philippe is standing on it.
+#
+# Dependencies:
+#  "htmlparser": "1.7.6"
+#  "soupselect": "0.2.0"
+#
+# Configuration:
+#   None
+#
+# Commands:
+#   achewood - A random Achewood comic
+#   achewood current - The most recent Achewood comic
+#   achewood <date> - Achewood comic from <date> - mm/dd/yyyy format
+#   saddest thing - The saddest thing, according to Lie Bot
+#
+# Author:
+#   1000hz
+
+htmlparser = require "htmlparser"
+Select = require("soupselect").select
+
+module.exports = (robot) ->
+  withDate = (date) ->
+    "http://achewood.com/index.php?date=#{date}"
+
+  fetchAchewood = (msg, url) ->
+    msg.http(url).get() (err, res, body) ->
+      handler = new htmlparser.DefaultHandler()
+      parser = new htmlparser.Parser(handler)
+      parser.parseComplete(body)
+
+      img = Select handler.dom, "img.comic"
+      comic = img[0].attribs
+
+      msg.send "http://achewood.com" + comic.src + "#.png"
+      msg.send comic.title
+
+  robot.respond /achewood\s?((0[1-9]|1[0-2]).(0[1-9]|[1-2][0-9]|3[0-1]).(20\d{2})$|current)?/i, (msg) ->
+    if msg.match[1] == undefined
+      msg.http("http://www.ohnorobot.com/random.pl?comic=636")
+          .get() (err, res, body) ->
+            fetchAchewood(msg, res.headers['location'])
+    else if msg.match[1] == "current"
+      fetchAchewood(msg, "http://achewood.com")
+    else
+      date = "#{msg.match[2]}#{msg.match[3]}#{msg.match[4]}"
+      fetchAchewood(msg, withDate(date))
+
+  robot.respond /.*saddest thing\?*/i, (msg) ->
+    saddest = msg.random ["06022003", "11052001", "09052006", "07302007"]
+    fetchAchewood(msg, withDate(saddest))


bug fix

bug fix

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/bubblegroup/bubblebot.git/'


bug fixes

bug fixes


test for #1106

test for #1106

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/maowug/coffeescript.git/'


ignoring vendor/bundle for heroku

ignoring vendor/bundle for heroku

--- src/helpers.coffee
+++ src/helpers.coffee
@@ -223,6 +223,7 @@
   conventions.ignored ?= paths.ignored ? [
     /[\\/]_/
     /vendor[\\/]node[\\/]/
+    /vendor[\\/]bundle[\\/]/
   ]
   conventions.vendor  ?= /(^bower_components|vendor)[\\/]/


+ seperate default-type value to a single file

error: pathspec 'src/default-type.coffee' did not match any file(s) known to git

--- src/default-type.coffee
+++ src/default-type.coffee
@@ -0,0 +1,3 @@
+Type            = require 'abstract-type'
+module.exports  = type: Type 'String'
+


Providers: Google: update default interface details for Google Provider


Add test to SCD detector as NoFlo component

error: pathspec 'spec/SCDDetect.coffee' did not match any file(s) known to git

--- spec/SCDDetect.coffee
+++ spec/SCDDetect.coffee
@@ -0,0 +1,245 @@
+noflo = require 'noflo'
+chai = require 'chai' unless chai
+SCDDetect = require '../components/SCDDetect.coffee'
+Canvas = require 'canvas'
+Image = Canvas.Image
+fs = require 'fs'
+
+describe 'SCDDetect component', ->
+  c = null
+  ins = null
+  cascade = null
+  out = null
+  error = null
+
+  beforeEach ->
+    c = SCDDetect.getComponent()
+    ins = noflo.internalSocket.createSocket()
+    cascade = noflo.internalSocket.createSocket()
+    out = noflo.internalSocket.createSocket()
+    error = noflo.internalSocket.createSocket()
+    c.inPorts.canvas.attach ins
+    c.inPorts.cascade.attach cascade
+    c.outPorts.out.attach out
+    c.outPorts.error.attach error
+
+  describe 'when instantiated', ->
+    it 'should have input ports', ->
+      chai.expect(c.inPorts.canvas).to.be.an 'object'
+      chai.expect(c.inPorts.cascade).to.be.an 'object'
+    it 'should have output ports', ->
+      chai.expect(c.outPorts.out).to.be.an 'object'
+      chai.expect(c.outPorts.error).to.be.an 'object'
+
+  describe 'when image loaded', ->
+    @timeout 10000
+    canvas = null
+    img = null
+    beforeEach (done) ->
+        fs.readFile __dirname+'/being-d4.jpg', (err, image) ->
+          if err
+            return done err
+          img = new Image
+          img.src = image
+          canvas = new Canvas img.width, img.height
+          canvas.getContext('2d').drawImage(img, 0, 0)
+          done()
+
+    it 'should have correct image and canvas size', ->
+      chai.expect(img.width).to.equal 1439
+      chai.expect(img.height).to.equal 960
+      chai.expect(canvas.width).to.equal 1439
+      chai.expect(canvas.height).to.equal 960
+
+    describe 'when canvas sent', ->
+      @timeout 15000
+      grps = []
+      results = null
+
+      before (done) ->
+        grps = []
+        out.on 'begingroup', (grp) ->
+          grps.push grp
+        out.once "data", (data) ->
+          results = data
+          done()
+        ins.beginGroup 'foo'
+        ins.send canvas
+
+      it 'should find faces', ->
+        chai.expect(results).to.be.an 'array'
+        chai.expect(results.length).to.equal 15
+        chai.expect(grps.length).to.equal 1
+
+      it 'should sort faces by confidence', ->
+        chai.expect(results[0].confidence).to.be.at.least results[1].confidence
+        chai.expect(results[1].confidence).to.be.at.least results[2].confidence
+        chai.expect(results[2].confidence).to.be.at.least results[3].confidence
+        chai.expect(results[3].confidence).to.be.at.least results[4].confidence
+
+      unless noflo.isBrowser()
+        it.skip 'should find the right faces', ->
+          expected = [
+            x: 492,
+            y: 268,
+            width: 57,
+            height: 57,
+            neighbors: 7,
+            confidence: 11.28613306999998
+          ,
+            x: 367,
+            y: 271,
+            width: 56,
+            height: 56,
+            neighbors: 8,
+            confidence: 11.188660410000004
+          ,
+            x: 172,
+            y: 295,
+            width: 57,
+            height: 57,
+            neighbors: 5,
+            confidence: 8.33351699000001
+          ,
+            x: 993,
+            y: 508,
+            width: 62,
+            height: 62,
+            neighbors: 5,
+            confidence: 5.652669490000009
+          ,
+            x: 296,
+            y: 477,
+            width: 65,
+            height: 65,
+            neighbors: 8,
+            confidence: 5.49484601000000
+          ,
+            x: 485,
+            y: 353,
+            width: 55,
+            height: 55,
+            neighbors: 6,
+            confidence: 4.98707517000000
+          ,
+            x: 646,
+            y: 254,
+            width: 58,
+            height: 58,
+            neighbors: 2,
+            confidence: 2.481149969999999
+          ,
+            x: 590,
+            y: 441,
+            width: 69,
+            height: 69,
+            neighbors: 3,
+            confidence: 2.256392189999995
+          ,
+            x: 461,
+            y: 502,
+            width: 61,
+            height: 61,
+            neighbors: 6,
+            confidence: 1.986859089999997
+          ,
+            x: 1222,
+            y: 378,
+            width: 72,
+            height: 72,
+            neighbors: 5,
+            confidence: 1.325425789999999
+          ,
+            x: 366,
+            y: 383,
+            width: 61,
+            height: 61,
+            neighbors: 4,
+            confidence: 1.290298050000000
+          ,
+            x: 861,
+            y: 282,
+            width: 59,
+            height: 59,
+            neighbors: 8,
+            confidence: 1.289433169999998
+          ,
+            x: 962,
+            y: 312,
+            width: 53,
+            height: 53,
+            neighbors: 4,
+            confidence: -0.1545753700000000
+          ,
+            x: 1049,
+            y: 394,
+            width: 61,
+            height: 61,
+            neighbors: 1,
+            confidence: -0.4406286100000015
+          ,
+            x: 1050,
+            y: 295,
+            width: 58,
+            height: 58,
+            neighbors: 2,
+            confidence: -2.9389983699999966
+          ]
+          for face,i in results
+            delta = 1
+            chai.expect(face.x).to.be.closeTo expected[i].x, delta
+            chai.expect(face.y).to.be.closeTo expected[i].y, delta
+            chai.expect(face.width).to.be.closeTo expected[i].width, delta
+            chai.expect(face.height).to.be.closeTo expected[i].height, delta
+
+  unless noflo.isBrowser()
+    describe 'when 1x1 image loaded', ->
+      canvas = null
+      img = null
+      beforeEach (done) ->
+        # load image, copy to canvas
+        if noflo.isBrowser()
+          img = document.createElement('image')
+          canvas = document.createElement('canvas')
+          img.onerror = (err) ->
+            done(err)
+          img.onload = () ->
+            canvas.width = img.width
+            canvas.height = img.height
+            canvas.getContext('2d').drawImage(img, 0, 0)
+            done()
+          img.src = '1x1.gif'
+        else
+          fs.readFile __dirname+'/1x1.gif', (err, image) ->
+            if err
+              return done err
+            img = new Image
+            img.src = image
+            canvas = new Canvas img.width, img.height
+            canvas.getContext('2d').drawImage(img, 0, 0)
+            done()
+
+      it 'should have correct image and canvas size', ->
+        chai.expect(img.width).to.equal 1
+        chai.expect(img.height).to.equal 1
+        chai.expect(canvas.width).to.equal 1
+        chai.expect(canvas.height).to.equal 1
+
+      describe 'when canvas sent', ->
+        grps = []
+        results = null
+
+        before (done) ->
+          grps = []
+          out.on 'begingroup', (grp) ->
+            grps.push grp
+          out.once "data", (data) ->
+            results = data
+            done()
+          ins.beginGroup 'foo'
+          ins.send canvas
+
+        it 'should find no faces', ->
+          chai.expect(results).to.be.an 'array'
+          chai.expect(results.length).to.equal 0
+          chai.expect(grps.length).to.equal 1


commented text module

commented text module

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/DnMllr/webglify.git/'


Add hotkey for changing timestamp hour.

Add hotkey for changing timestamp hour.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/lmjohns3/thorax-media.git/'


Add spec outline

Add spec outline

error: pathspec 'spec/rust.spec.coffee' did not match any file(s) known to git

--- spec/rust.spec.coffee
+++ spec/rust.spec.coffee
@@ -0,0 +1,26 @@
+describe 'atom-language-rust', ->
+  grammar = null
+
+  beforeEach ->
+    waitsForPromise ->
+      atom.packages.activatePackage 'language-rust'
+    runs ->
+      grammar = atom.grammars.grammarForScopeName('source.rust')
+
+  it 'should be ready to parse', ->
+    expect(grammar).toBeDefined()
+    expect(grammar.scopeName).toBe 'source.rust'
+
+  describe 'when tokenizing comments', ->
+    it 'should recognize line comments', ->
+      tokens = grammar.tokenizeLines('//test')
+      expect(tokens[0][0]).toEqual
+        scopes: [
+          'comment.line.double-slash.rust'
+        ]
+        value: '//'
+			expect(tokens[0][1]).toEqual
+				scopes: [
+					'comment.line.double-slash.rust'
+				]
+				value: 'test'


Throw an exception when creating a `File` object for a path that isn't a file

This exception is getting thrown inside of `Project.scan` when it incorrectly parses a path with newlines in it. But the exception gets swallowed by ChildProcess.exec. At least it prevents a file from being created that we don't end up unsubscribing from. But `Project.scan` needs to be improved.

--- src/app/file.coffee
+++ src/app/file.coffee
@@ -9,6 +9,7 @@
   md5: null

   constructor: (@path) ->
+    throw "Creating file with path that is not a file: #{@path}" unless fs.isFile(@path)
     @updateMd5()

   getPath: ->


Bounding Box Check bei Standort setzen

Bounding Box Check bei Standort setzen

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/dennisreimann/OpenData-Bremen.git/'


bug fix

bug fix


allow destroying ec2builds

allow destroying ec2builds


moving aws api calls off of the environment objec and onto each object


pre gravity calculation

pre gravity calculation

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/sebastianPsm/Beerline.js.git/'


missing require for createId in emailnotification.coffee

--- workers/social/lib/social/models/emailnotification.coffee
+++ workers/social/lib/social/models/emailnotification.coffee
@@ -1,4 +1,6 @@
 {Model, Base, ObjectId, secure} = require 'bongo'
+
+createId = require 'hat'

 # Poor mans unique ID generator
 getUniqueId= -> createId 128


Social: use helper functions and cleanup message.coffee

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/andrewjcasal/koding.git/'


Social: change fat arrow to normal arrow


avatar: consider dpr when calculating image size


Sidebar: Use fetchMachines in addMachineList.

--- client/Social/Activity/sidebar/activitysidebar.coffee
+++ client/Social/Activity/sidebar/activitysidebar.coffee
@@ -741,15 +741,10 @@
   #   else @fetchMachines @bound 'listMachines'

-   addMachineList: ->
-
-    KD.remote.api.Sidebar.fetchEnvironment (err, data) =>
-      @machineLists = []
-      @machineListsByName = {}
-      @addSubView @ownMachinesList = new SidebarOwnMachinesList {}, data.own
-
-      @machineLists.push @ownMachinesList
-      @machineListsByName.own = @ownMachinesList
+  addMachineList: ->
+
+    @fetchMachines (machines) =>
+      @renderMachines machines

   # handleMachineItemClick: (machineItem, event) ->


deleting the quick update option

deleting the quick update option