ecm_tags_backend 0.0.4 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  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: