From 00e6a9e9023f25275a08a21ba76b2e4ccca009d1 Mon Sep 17 00:00:00 2001 From: Samuele Mattiuzzo Date: Sat, 9 Jan 2016 23:07:15 +0000 Subject: [PATCH] Broken? --- lib/atom-slack-snippets.coffee | 14 +++----------- lib/post-view.coffee | 6 ++++-- lib/select-channel-view.coffee | 30 ++++++++++++++++++++---------- lib/select-token-view.coffee | 9 +++++++-- 4 files changed, 34 insertions(+), 25 deletions(-) diff --git a/lib/atom-slack-snippets.coffee b/lib/atom-slack-snippets.coffee index 823fe28..3f5137d 100644 --- a/lib/atom-slack-snippets.coffee +++ b/lib/atom-slack-snippets.coffee @@ -1,6 +1,5 @@ -request = require 'request-promise' {CompositeDisposable} = require 'atom' -AtomSlackSnippetsView = require './select-token-view' +SelectTokenView = require './select-token-view' module.exports = @@ -10,15 +9,8 @@ module.exports = type: 'array' default: [] items: - type: 'object' - properties: - name: - type: 'string' - default: '' - token: - type: 'string' - default: '' - + type: 'string' + default: '' activate: (state) -> @subscriptions = new CompositeDisposable diff --git a/lib/post-view.coffee b/lib/post-view.coffee index 1db5692..569e512 100644 --- a/lib/post-view.coffee +++ b/lib/post-view.coffee @@ -4,7 +4,7 @@ request = require 'request-promise' module.exports = -class PostView extends View +class PostView extends SelectListView # fetches the selected text and posts to the channel (item) # using token initialize: (item, token)-> @@ -32,9 +32,10 @@ class PostView extends View json: true }) .then( (body)=> if body['ok'] == false + # handle error message console.log body['error'] else - @panel.hide() + # handle success message ) .catch( (err) => console.log err ) @@ -45,6 +46,7 @@ class PostView extends View json: true }) .then( (body)=> if body['ok'] == false + # handle error message console.log body['error'] else @_postToChannel(body['channel']['id']) diff --git a/lib/select-channel-view.coffee b/lib/select-channel-view.coffee index 6e804b5..83f28ec 100644 --- a/lib/select-channel-view.coffee +++ b/lib/select-channel-view.coffee @@ -15,11 +15,8 @@ class SelectChannelView extends SelectListView @channels = [] @users = [] - @addClass 'overlay from-top' - @setItems @_createItems() - @panel ?= atom.workspace.addModalPanel(item: @) - @panel.show() - @focusFilterEditor() + @_create() + viewForItem: (item) -> "
  • #{ item.name }
  • " @@ -30,13 +27,21 @@ class SelectChannelView extends SelectListView cancelled: -> @panel.hide() # PRIVATE METHODS - _createItems: -> + _create: -> @_getAllItems() items = [] - for i in [channels..., users...] + [ch, u] = [null, null] + while not ch? and not u? + [ch, u] = [@channels, @users] + for i in [ch..., u...] [v, t] = if i.profile? then [i.profile.real_name, 'user'] else [i.name, 'channel'] items.push({id:i.id, name:v, type:t}) - items + @setItems items + + @addClass 'overlay from-top' + @panel ?= atom.workspace.addModalPanel(item: @) + @panel.show() + @focusFilterEditor() _getAllItems: -> # loops till we have channels and users to post to, @@ -44,10 +49,11 @@ class SelectChannelView extends SelectListView # needs improvement or better logic elsewhere, otherwise blocks # atom's loading for a bit too much if @channels.length == 0 and @users.length == 0 - console.log('fetching') @_getChannels() @_getUsers() - setTimeout @_getAllItems.bind(@), 5 * 1000 + timer = setTimeout @_getAllItems.bind(@), 5 * 1000 + else + clearTimeout timer _getChannels: -> request({ @@ -56,8 +62,10 @@ class SelectChannelView extends SelectListView json: true }) .then( (body)=> if body['ok'] == false + # handle error message console.log(body['error']) else + console.log('got the chans') @channels = body['channels'] ) .catch( (err) => console.log(err) ) @@ -69,8 +77,10 @@ class SelectChannelView extends SelectListView json: true }) .then( (body)=> if body['ok'] == false + # handle error message console.log(body['error']) else + console.log('got the users') @users = body['members'] ) .catch( (err) => console.log(err) ) diff --git a/lib/select-token-view.coffee b/lib/select-token-view.coffee index 7e5e4ec..5c47664 100644 --- a/lib/select-token-view.coffee +++ b/lib/select-token-view.coffee @@ -1,4 +1,3 @@ -request = require 'request-promise' {SelectListView} = require 'atom-space-pen-views' SelectChannelView = require './select-channel-view' @@ -26,4 +25,10 @@ class SelectTokenView extends SelectListView cancelled: -> @panel.hide() - _createItems: -> atom.config.get('atom-slack-snippets.tokens') + _createItems: -> + tokens = atom.config.get('atom-slack-snippets.tokens') + items = [] + for item in tokens + [n, t] = item.split "|" + items.push({'name': n, 'token': t}) + items