tawork 0.0.23 → 0.0.24

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzE1NTgxMWQxYjI4MTJkMGJlYjEwM2U4YTY2ZWQ3OGVkMDE0NWRiNw==
4
+ ZjhmMzgxMzNlYjA5OGY4NzJhZmI4NDU2YTVmYmVkMTljZDczM2I0ZQ==
5
5
  data.tar.gz: !binary |-
6
- ZTcwMzg0NzBkOTQ0NWRkNDNmMDcwM2Q1ZTVhZTlkMGM3ZGRjNmE4YQ==
6
+ M2U1MjczODA5OTM0YjZiNTdmYzkwN2E2MWVhOTlhNTFlNmNiNzMzMA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MGExNzkxNWY4ODExNTJkNGZmMWVkNDAyM2QxNTkxMTM3NjBlMjk1ZWVmZDc2
10
- MDllZTBhY2ZjZTc0OWUyYTY0ZTk4NzVmNmJhMDgwOWUzZjFiMjkzNTMxMjdl
11
- NThlMmZlNDU4NTQ2ZjAwODU4YTk5NmQ0NjQ5NTUyYmNiNTU4MDA=
9
+ NjQyMjhiODJmOGZmNTY3YTdlZGFjMDc0OTI3NTM0MDY0ZmRiZTM0Yjk2NDI3
10
+ YzhhYmE2ZjhkMDdiMzIwYzlhODQ2ZGQ0OTc0YzUxZDBkY2QxOGIyM2ZmYWM5
11
+ MWEyYzJmMTU0NWRiOGY3N2E0NTYyMWM1ZmQyZWM1M2NjYmUyZmM=
12
12
  data.tar.gz: !binary |-
13
- NDkzMzZiOWI4NDZkYzdjYzVjMjM0MDNiMzhkMzUxMWVmNzBlYjIxMDdhMTM0
14
- NzM5N2FhYTYzOTZlMGM5NDViOGJkMzI4N2JmZmYyYjRhYWFkMmE1OWVlOTFi
15
- NDkxY2QyZmVmNzBmNWUwNjNhYWFjMDZiOTI0YTljYWM1ZmZlOGY=
13
+ YjE5M2IzMDJmZTRjMzE5ODFkY2RkYzNmYzBmYTRlMjVhNWE2MmQwOTc4NTM5
14
+ NmQxOTllODY2ZWNmYzNmYmM1YzI0ZDk3YTU2ZTBiY2RhYzU2YTEzYmViYTNi
15
+ YTQwNWNjNDRiMDIyMGU5Mjg1MWRlYmY5YjdkZjViMGUwYThhMTE=
data/Gemfile CHANGED
@@ -9,6 +9,7 @@ gem 'rails', "4.1.0.rc1"
9
9
  gem 'mysql2'
10
10
  gem 'bootstrap-sass'
11
11
 
12
+ gem 'docsplit'
12
13
  gem 'kaminari'
13
14
  gem 'elasticsearch', git: 'git://github.com/elasticsearch/elasticsearch-ruby.git'
14
15
  gem 'elasticsearch-model', git: 'git://github.com/elasticsearch/elasticsearch-rails.git'
data/Gemfile.lock CHANGED
@@ -120,6 +120,7 @@ GEM
120
120
  warden (~> 1.2.3)
121
121
  diff-lcs (1.2.5)
122
122
  diffy (3.0.2)
123
+ docsplit (0.7.4)
123
124
  dotenv (0.10.0)
124
125
  erubis (2.7.0)
125
126
  eventmachine (1.0.3)
@@ -337,6 +338,7 @@ DEPENDENCIES
337
338
  coffee-rails (~> 4.0.0)
338
339
  devise
339
340
  diffy
341
+ docsplit
340
342
  elasticsearch!
341
343
  elasticsearch-model!
342
344
  elasticsearch-rails!
@@ -8,4 +8,10 @@ window.Tawork =
8
8
  Models: {}
9
9
  Collections: {}
10
10
  Routers: {}
11
- Views: {}
11
+ Views: {}
12
+
13
+ # global window closer
14
+
15
+ $(document).click (event) ->
16
+ if( $(event.target).closest('.close-outside-click').length == 0 )
17
+ $('.close-outside-click').addClass("hide")
@@ -9,6 +9,7 @@ body
9
9
  font-size: 15px
10
10
  line-height: 1.428571429
11
11
  padding-top: 60px
12
+ padding-bottom: 30px
12
13
 
13
14
  /* Hide for mobile, show later */
14
15
  .sidebar
@@ -12,6 +12,7 @@ class Attachment < ActiveRecord::Base
12
12
  indexes :type, :as => :type, :boost => 100
13
13
  indexes :filename, :analyzer => 'snowball', :boost => 100
14
14
  indexes :content_type, :analyzer => 'snowball'
15
+ indexes :body, :analyzer => 'snowball'
15
16
  indexes :created_at, :type => 'date', :include_in_all => false
16
17
  indexes :updated_at, :type => 'date', :include_in_all => false
17
18
  end
@@ -30,6 +31,7 @@ class Attachment < ActiveRecord::Base
30
31
  file, user,
31
32
  "uploading file: #{filename}"
32
33
  )
34
+ attachment.__elasticsearch__.index_document
33
35
  end
34
36
 
35
37
  attachment
@@ -83,10 +85,43 @@ class Attachment < ActiveRecord::Base
83
85
  def as_indexed_json(options = {})
84
86
  json = self.as_json
85
87
  json[:type] = self.class.to_s.underscore
88
+ json[:body] = self.extracted_text
86
89
 
87
90
  json
88
91
  end
89
92
 
93
+ def extracted_text
94
+ tmp_dir = File.join Rails.root, "tmp", "#{id}_#{Time.now.to_i}"
95
+ text_dir = File.join tmp_dir, "text_dump"
96
+ tmp_filename = File.join tmp_dir, filename
97
+
98
+ FileUtils.mkdir_p tmp_dir
99
+
100
+ File.open tmp_filename, "wb" do |file|
101
+ file.write self.file_data
102
+ end
103
+
104
+ docs = Dir[File.join(tmp_dir, "*")]
105
+ Docsplit.extract_text(docs, output: text_dir)
106
+
107
+ texts = []
108
+ Dir[File.join(text_dir, "*")].each do |file|
109
+ texts << File.read(file)
110
+ end
111
+
112
+ text = texts.join("\n")
113
+
114
+ encoding_options = {
115
+ :invalid => :replace, # Replace invalid byte sequences
116
+ :undef => :replace, # Replace anything not defined in ASCII
117
+ :replace => '', # Use a blank for those replacements
118
+ :universal_newline => true # Always break lines with \n
119
+ }
120
+ text.encode(Encoding.find('ASCII'), encoding_options)
121
+ rescue
122
+ Rails.logger.info "document not extractable."
123
+ end
124
+
90
125
  protected
91
126
 
92
127
  def wiki_attachment_data
@@ -96,4 +131,5 @@ class Attachment < ActiveRecord::Base
96
131
  def wiki_dir
97
132
  "/attachments/#{id}"
98
133
  end
134
+
99
135
  end
@@ -11,20 +11,30 @@
11
11
 
12
12
  .collapse.navbar-collapse
13
13
  %ul.nav.navbar-nav
14
- %li.dropdown
15
- %a.dropdown-toggle{"data-toggle" => "dropdown", :href => "#"}
16
- Spaces
17
- %b.caret
18
- %ul.dropdown-menu
19
- %li
20
- = link_to "Spaces Listing", wiki_pages_path, class: "space-link"
21
- %li.divider
22
- - Page.roots.each do |page|
14
+ - if current_user.present?
15
+ %li.dropdown
16
+ %a.dropdown-toggle{"data-toggle" => "dropdown", :href => "#"}
17
+ Spaces
18
+ %b.caret
19
+ %ul.dropdown-menu
23
20
  %li
24
- = link_to page.title, wiki_page_path(page)
25
- %li.divider
26
- %li
27
- = link_to "Create New Space", new_wiki_space_path
21
+ = link_to "Spaces Listing", wiki_pages_path, class: "space-link"
22
+ %li.divider
23
+ - Page.roots.each do |page|
24
+ %li
25
+ = link_to page.title, wiki_page_path(page)
26
+ %li.divider
27
+ %li
28
+ = link_to "Create New Space", new_wiki_space_path
29
+
30
+ %li.dropdown
31
+ %a.dropdown-toggle{"data-toggle" => "dropdown", :href => "#"}
32
+ Favourites
33
+ %b.caret
34
+ %ul.dropdown-menu
35
+ - Starred.where(user: current_user, starrable_type: 'Page').each do |starred|
36
+ %li
37
+ = link_to starred.starrable.title, wiki_page_path(starred.starrable)
28
38
  -# %li
29
39
  -# = link_to "wiki", wiki_path
30
40
  %ul.nav.navbar-nav.navbar-right
@@ -32,7 +42,7 @@
32
42
  #global-search-container
33
43
  %form.navbar-form
34
44
  %input#global-search.form-control{type: "text", placeholder: "Search...", style: "width: 400px;", autocomplete: "off"}
35
- #global-search-results.hide
45
+ #global-search-results.hide.close-outside-click
36
46
  :coffeescript
37
47
  view = new GlobalSearch(el: $("#global-search-container"))
38
48
  - if user_signed_in?
@@ -1,3 +1,3 @@
1
1
  module Tawork
2
- VERSION = '0.0.23'
2
+ VERSION = '0.0.24'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tawork
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.23
4
+ version: 0.0.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adnan Ali