ecm_tags_backend 0.0.4 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8a21fd785fc8f800023d6d17d2a7e1b868096029
4
- data.tar.gz: f9eaa8ad4be23b3279e87143ba2df471c9ff15a7
3
+ metadata.gz: f66ad968d107be001b6b248254b43c339178a0d5
4
+ data.tar.gz: ba943c2fae96462c567dbc7afc57568bd155e0d0
5
5
  SHA512:
6
- metadata.gz: 478ef3ca513a20045aae530245dac77566b06d22c5ec74dd85798653875e4c232a12bc25fa8eb9f44d9d72312ddb135043fb5ff354bb34d90f31477402939bf0
7
- data.tar.gz: 951bec06cd1232a8bb8ba0d98f16cae720e91705d357e118bb4e5c9e08521e3dba33dcdc7398568354c1e8505a9c85602eadca01a4537fbd8a2ba15fb016e496
6
+ metadata.gz: f4ed824c09106fba2085bbca880dba9aef5da68ead58ba082302beaa65f3daf5af6b72a0f715c7e3a6c29c05e4b2b172345c6d5b7f4c8a5cf1e512b2d07cdc61
7
+ data.tar.gz: a0689be2c28ddd951f91182ed45bf103b263065dbdbdf20e02bd2ffffdfd2b800158a9624fa44bc4a93ef16fb4e624af3ed5580a567f4c56ed68f638dca7a55a
@@ -0,0 +1,33 @@
1
+ $ ->
2
+ $('[data-tag]').not('.ui-draggable').on 'mouseover', ->
3
+ $(this).draggable({
4
+ revert: true
5
+ })
6
+
7
+ $ ->
8
+ $('[data-taggable]').each ->
9
+ authenticity_token = $( 'meta[name="csrf-token"]' ).attr( 'content' );
10
+
11
+ $(@).droppable({
12
+ accept: '.draggable-tag',
13
+ activeClass: 'highlight',
14
+ drop: (event, ui) ->
15
+ dropped_element = $(ui.draggable)
16
+ tag_id = dropped_element.attr('data-tag-uid')
17
+ taggable_gid = $(@).attr('data-gid')
18
+ post_url = dropped_element.attr('data-tag-url')
19
+ console.log(post_url)
20
+ jqxhr = $.post(post_url, { authenticity_token: authenticity_token, gid: taggable_gid, tag_id: tag_id }, ->
21
+ # alert 'success'
22
+ return
23
+ ).done(->
24
+ # alert 'second success'
25
+ return
26
+ ).fail(->
27
+ # alert 'error'
28
+ return
29
+ ).always(->
30
+ # alert 'finished'
31
+ return
32
+ )
33
+ })
@@ -1,13 +1,51 @@
1
1
  module Ecm::Tags::Backend
2
2
  class TaggingsController < Itsf::Backend::Resource::BaseController
3
+ before_action :normalize_global_ids, only: [:create, :update]
4
+
3
5
  def self.resource_class
4
6
  Ecm::Tags::Tagging
5
7
  end
6
8
 
9
+ def create_by_gid_and_tag
10
+ @taggable = load_taggable
11
+ @tag = load_tag
12
+ @taggable.tags << @tag
13
+
14
+ respond_to do |format|
15
+ format.js { flash.now[:notice] = t('.success') }
16
+ end
17
+ end
18
+
19
+ def set_by_gid_and_tag
20
+ @taggable = load_taggable
21
+ @tag = load_tag
22
+ @taggable.tags = [@tag]
23
+
24
+ respond_to do |format|
25
+ format.js { flash.now[:notice] = t('.success') }
26
+ end
27
+ end
28
+
7
29
  private
8
30
 
31
+ def normalize_global_ids
32
+ taggable_gid = params[:tagging].delete(:taggable)
33
+ params[:tagging][:taggable] = GlobalID::Locator.locate(taggable_gid)
34
+
35
+ tagger_gid = params[:tagging].delete(:tagger)
36
+ params[:tagging][:tagger] = GlobalID::Locator.locate(tagger_gid)
37
+ end
38
+
39
+ def load_taggable
40
+ GlobalID::Locator.locate(params[:gid])
41
+ end
42
+
43
+ def load_tag
44
+ Ecm::Tags::Tag.find(params[:tag_id])
45
+ end
46
+
9
47
  def permitted_params
10
- params.require(:tag).permit(:name)
48
+ params.require(:tagging).permit(:name, :tag_id, :taggable, :tagger, :context)
11
49
  end
12
50
  end
13
51
  end
@@ -4,10 +4,12 @@ module Ecm::Tags::Backend
4
4
  Ecm::Tags::Tag
5
5
  end
6
6
 
7
+ respond_to :js
8
+
7
9
  private
8
10
 
9
11
  def permitted_params
10
- params.require(:tag).permit(:name)
12
+ params.require(:tag).permit(:name, :color)
11
13
  end
12
14
  end
13
15
  end
@@ -2,6 +2,13 @@ module Ecm
2
2
  module Tags
3
3
  module Backend
4
4
  module ApplicationHelper
5
+ def tag_toolbar(options = {})
6
+ render 'ecm/tags/backend/tag_toolbar'
7
+ end
8
+
9
+ def tag_labels_for(resource)
10
+ render 'ecm/tags/backend/tag_labels_for_resource', resource: resource
11
+ end
5
12
  end
6
13
  end
7
14
  end
@@ -0,0 +1,2 @@
1
+ - resource.tags.each do |tag|
2
+ %span.label.label-default{ style: "background-color: #{tag.color}" }= tag.name
@@ -0,0 +1,19 @@
1
+ - tag_url_method = local_assigns.has_key?(:overwrite_tags_on_drop) ? :set_by_gid_and_tag_taggings_path : :create_by_gid_and_tag_taggings_path
2
+ .navbar.navbar-default
3
+ .container-fluid
4
+ = simple_form_for((@tag || Ecm::Tags::Tag.new), url: ecm_tags_backend.tags_path, html: { class: 'navbar-form simple_form new_tag form-inline' }, remote: true) do |f|
5
+ = f.input :name, label: t('.add')
6
+ = f.submit
7
+
8
+ .navbar-brand
9
+ = Ecm::Tags::Tag.model_name.human(count: :other)
10
+ %ul.nav.navbar-nav
11
+ - Ecm::Tags::Tag.all.each do |tag|
12
+ %li
13
+ .navbar-text
14
+ %span.draggable-tag.label.label-default{ id: "tag-#{tag.to_param}", style: "background-color: #{tag.color}", data: { tag: true, 'tag-uid': tag.to_param, 'tag-url': ecm_tags_backend.send(tag_url_method) } }
15
+ = tag.name
16
+
17
+ - if local_assigns.has_key? :added_element
18
+ :javascript
19
+ $("#tag-#{added_element}").effect("highlight", {},1000);
@@ -1,5 +1,5 @@
1
- = form.input :tag
2
- = form.input(:taggable, :collection => [ Ecm::Pictures::PictureGallery, Ecm::Pictures::Picture ],
1
+ = form.association :tag
2
+ = form.input(:taggable, collection: Ecm::Tags::Backend.taggable_class_names.map(&:constantize),
3
3
  as: :grouped_select,
4
4
  group_method: :all,
5
5
  group_label_method: :model_name,
@@ -7,7 +7,7 @@
7
7
  label_method: :human,
8
8
  include_blank: true,
9
9
  selected: form.object.taggable.try(:to_global_id))
10
- = form.input(:tagger, :collection => [ Ecm::UserArea::User ],
10
+ = form.input(:tagger, collection: Ecm::Tags::Backend.tagger_class_names.map(&:constantize),
11
11
  as: :grouped_select,
12
12
  group_method: :all,
13
13
  group_label_method: :model_name,
@@ -0,0 +1,18 @@
1
+ = form.input :tag
2
+ = form.input(:taggable, :collection => [ Ecm::Pictures::PictureGallery, Ecm::Pictures::Picture ],
3
+ as: :grouped_select,
4
+ group_method: :all,
5
+ group_label_method: :model_name,
6
+ value_method: :to_global_id,
7
+ label_method: :human,
8
+ include_blank: true,
9
+ selected: form.object.taggable.try(:to_global_id))
10
+ = form.input(:tagger, :collection => [ Ecm::UserArea::User ],
11
+ as: :grouped_select,
12
+ group_method: :all,
13
+ group_label_method: :model_name,
14
+ value_method: :to_global_id,
15
+ label_method: :human,
16
+ include_blank: true,
17
+ selected: form.object.tagger.try(:to_global_id))
18
+ = form.input :context
@@ -0,0 +1,2 @@
1
+ $("#flash-notices").html('<%= j bootstrap_flash %>');
2
+ $("#tags-for-<%= dom_id(@taggable) %>").html('<%= j tag_labels_for(@taggable) %>');
@@ -1 +1,2 @@
1
- = form.input :name
1
+ = form.input :name
2
+ = form.input :color, input_html: { type: "color" }
@@ -0,0 +1,3 @@
1
+ $("#tag-toolbar").html("<%= escape_javascript render 'ecm/tags/backend/tag_toolbar', added_element: @resource.to_param %>");
2
+ $("#sidebar-wrapper").html("<%= escape_javascript render 'layouts/itsf/backend/vertical_navigation' %>")
3
+ console.log("create.js.erb file");
@@ -1,3 +1,11 @@
1
1
  de:
2
2
  classes:
3
- ecm/tags/backend/engine: Tagging
3
+ ecm/tags/backend/engine: Tagging
4
+ ecm:
5
+ tags:
6
+ backend:
7
+ taggings:
8
+ create_by_gid_and_tag:
9
+ success: 'Tag hinzugefügt'
10
+ routes:
11
+ ecm-tags-backend-engine: 'tags'
@@ -1,3 +1,11 @@
1
1
  en:
2
2
  classes:
3
- ecm/tags/backend/engine: Tagging
3
+ ecm/tags/backend/engine: Tagging
4
+ ecm:
5
+ tags:
6
+ backend:
7
+ taggings:
8
+ create_by_gid_and_tag:
9
+ success: 'Added tag'
10
+ routes:
11
+ ecm-tags-backend-engine: 'tags'
data/config/routes.rb CHANGED
@@ -1,6 +1,9 @@
1
1
  Ecm::Tags::Backend::Engine.routes.draw do
2
2
  resources :tags
3
- resources :taggings
3
+ resources :taggings do
4
+ post 'create_by_gid_and_tag', on: :collection
5
+ post 'set_by_gid_and_tag', on: :collection
6
+ end
4
7
 
5
8
  root to: 'home#index'
6
9
  end
@@ -16,6 +16,9 @@ module Ecm
16
16
  mattr_accessor :registered_services do
17
17
  -> { [] }
18
18
  end
19
+
20
+ mattr_accessor(:taggable_class_names) { [] }
21
+ mattr_accessor(:tagger_class_names) { [] }
19
22
  end
20
23
  end
21
24
  end
@@ -1,7 +1,7 @@
1
1
  module Ecm
2
2
  module Tags
3
3
  module Backend
4
- VERSION = '0.0.4'.freeze
4
+ VERSION = '1.0.0'.freeze
5
5
  end
6
6
  end
7
7
  end
@@ -11,6 +11,10 @@ module Ecm
11
11
  copy_file 'initializer.rb', 'config/initializers/ecm_tags_backend.rb'
12
12
  end
13
13
 
14
+ def generate_routes
15
+ route File.read(File.join(File.expand_path('../templates', __FILE__), 'routes.source'))
16
+ end
17
+
14
18
  def add_to_itsf_backend
15
19
  insert_into_itsf_backend_config(Ecm::Tags::Backend::Engine)
16
20
  end
@@ -0,0 +1,3 @@
1
+
2
+
3
+ mount Ecm::Tags::Backend::Engine, at: '/backend/ecm-tags-backend-engine'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecm_tags_backend
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-22 00:00:00.000000000 Z
11
+ date: 2017-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -49,7 +49,7 @@ files:
49
49
  - README.rdoc
50
50
  - Rakefile
51
51
  - app/assets/javascripts/ecm/tags/backend/application.js
52
- - app/assets/javascripts/ecm/tags/backend/application/dummy.js
52
+ - app/assets/javascripts/ecm/tags/backend/application/drag_and_drop.js.coffee
53
53
  - app/assets/javascripts/ecm_tags_backend.js
54
54
  - app/assets/stylesheets/ecm/tags/backend/application.css
55
55
  - app/assets/stylesheets/ecm/tags/backend/application/dummy.css
@@ -62,10 +62,15 @@ files:
62
62
  - app/policies/ecm/tags/backend/engine_policy.rb
63
63
  - app/policies/ecm/tags/tag_policy.rb
64
64
  - app/policies/ecm/tags/tagging_policy.rb
65
+ - app/views/ecm/tags/backend/_tag_labels_for_resource.html.haml
66
+ - app/views/ecm/tags/backend/_tag_toolbar.html.haml
65
67
  - app/views/ecm/tags/backend/taggings/_form.haml
68
+ - app/views/ecm/tags/backend/taggings/_form.haml.original
66
69
  - app/views/ecm/tags/backend/taggings/_show.haml
67
70
  - app/views/ecm/tags/backend/taggings/_table.haml
71
+ - app/views/ecm/tags/backend/taggings/create_by_gid_and_tag.js.erb
68
72
  - app/views/ecm/tags/backend/tags/_form.haml
73
+ - app/views/ecm/tags/backend/tags/create.js.erb
69
74
  - app/views/layouts/ecm/tags/backend/application.html.erb
70
75
  - config/initializers/assets.rb
71
76
  - config/locales/de.yml
@@ -79,6 +84,7 @@ files:
79
84
  - lib/ecm_tags_backend.rb
80
85
  - lib/generators/ecm/tags/backend/install/install_generator.rb
81
86
  - lib/generators/ecm/tags/backend/install/templates/initializer.rb
87
+ - lib/generators/ecm/tags/backend/install/templates/routes.source
82
88
  - lib/tasks/ecm/tags/backend_tasks.rake
83
89
  homepage: https://github.com/robotex82/ecm_tags_backend
84
90
  licenses:
@@ -100,9 +106,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
106
  version: '0'
101
107
  requirements: []
102
108
  rubyforge_project:
103
- rubygems_version: 2.4.8
109
+ rubygems_version: 2.6.11
104
110
  signing_key:
105
111
  specification_version: 4
106
112
  summary: ECM Tags Backend.
107
113
  test_files: []
108
- has_rdoc: