OSDN Git Service

fix filer pager
authoryasushiito <yas@pen-chan.jp>
Sun, 13 Apr 2014 07:52:28 +0000 (16:52 +0900)
committeryasushiito <yas@pen-chan.jp>
Sun, 13 Apr 2014 07:52:28 +0000 (16:52 +0900)
20 files changed:
app/controllers/application_controller.rb
app/views/templates/r/filer/_filer.html.erb
app/views/templates/r/filer/_footer.html.erb [deleted file]
app/views/templates/r/filer/pager/_default.html.erb [new file with mode: 0644]
app/views/templates/r/filer/pager/_more.html.erb [new file with mode: 0644]
app/views/templates/r/filer/pager/_none.html.erb [new file with mode: 0644]
app/views/templates/r/form/_extend_fform.html.erb [new file with mode: 0644]
lib/local_manifest/list_group/list/base.rb
lib/local_manifest/list_group/list/filter.rb
lib/locmare/filer.rb
lib/locmare/filer/footer.rb [deleted file]
lib/locmare/filer/pager.rb [new file with mode: 0644]
lib/locmare/form.rb
lib/locmare/list_group/list/base.rb
lib/locmare/profiler/association/belongs_to.rb
lib/locmare/profiler/association/has_many.rb
lib/locmare/profiler/association/has_one.rb
lib/locmare/profiler/header.rb
lib/peta/item.rb
public/local_manifest.json

index 55f54d1..8edc583 100644 (file)
@@ -130,7 +130,7 @@ class ApplicationController < ActionController::Base
     @items = list_result.items 
     respond_to do |format|
       format.html {
-        @filer = Locmare::Filer.new @list.item_name, list_result.items, list_result.paginate, @operators
+        @filer = Locmare::Filer.new @list.item_name, list_result.items, list_result, :default, @operators
         render @filer.template_name, :locals => {
           :filer => @filer
         }
index 5ff03c5..7c5f52e 100644 (file)
@@ -1,5 +1,5 @@
 <div class="filer">
   <%= render filer.header.template_name, :header => filer.header %>
   <%= render filer.body.template_name, :body => filer.body %>
-  <%= render filer.footer.template_name, :footer => filer.footer %>
+  <%= render filer.pager.template_name, :pager => filer.pager %>
 </div>
diff --git a/app/views/templates/r/filer/_footer.html.erb b/app/views/templates/r/filer/_footer.html.erb
deleted file mode 100644 (file)
index 6437be9..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<% if footer.paginate %>
-  <%= paginate(footer.paginate) %>
-<% end %>
diff --git a/app/views/templates/r/filer/pager/_default.html.erb b/app/views/templates/r/filer/pager/_default.html.erb
new file mode 100644 (file)
index 0000000..938994e
--- /dev/null
@@ -0,0 +1,3 @@
+<% if pager.paginate %>
+  <%= paginate(pager.paginate) %>
+<% end %>
diff --git a/app/views/templates/r/filer/pager/_more.html.erb b/app/views/templates/r/filer/pager/_more.html.erb
new file mode 100644 (file)
index 0000000..dfa3d9a
--- /dev/null
@@ -0,0 +1,3 @@
+<div>
+  <%= link_to 'more', pager.api_path %>
+</div>
diff --git a/app/views/templates/r/filer/pager/_none.html.erb b/app/views/templates/r/filer/pager/_none.html.erb
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/app/views/templates/r/form/_extend_fform.html.erb b/app/views/templates/r/form/_extend_fform.html.erb
new file mode 100644 (file)
index 0000000..d3e7893
--- /dev/null
@@ -0,0 +1,4 @@
+<%= form_for(form.item, :html => form.item.tag_attributes('form', 'data-form-name' => form.form_name)) do |f| %>
+  <%= render 'system/error_explanation', :obj => form.item %>
+  <%= render form.fields_template_name, :form => form, :f => f %>
+<% end %>
index 0d10804..4e8aa24 100644 (file)
@@ -24,6 +24,22 @@ module LocalManifest
           @model = ::Manifest.item_name_to_model self.item_name
         end
         
+        def has_id?
+          @type =~ /filter/
+        end
+        
+        def pre_id?
+          if @name =~ /^by_/
+            false
+          else
+            true
+          end
+        end
+        
+        def action_name
+          ''
+        end
+        
         def item_name
           @parent.item_name
         end
index 6b500f1..fdfe55f 100644 (file)
@@ -16,8 +16,11 @@ module LocalManifest
           @filter_key = @args['filter_key']
         end
         
+        def action_name
+          @name
+        end
+        
       end
-      
     end
   end
 end
index 3ce3b88..fb2a9c5 100644 (file)
@@ -1,21 +1,32 @@
 require_dependency "locmare/filer/header"
 require_dependency "locmare/filer/body"
-require_dependency "locmare/filer/footer"
+require_dependency "locmare/filer/pager"
 module Locmare
   class Filer
     include FilerModule
-    attr :manifest, :item_name, :items, :paginate, :operators, :template_dir, 
-      :header, :body, :footer
-    def initialize item_name, items, paginate, operators
+    
+    attr :manifest, :item_name, :items, :list_result, :pager_type, :operators, :template_dir, 
+      :header, :body, :pager
+      
+    def initialize item_name, items, list_result, pager_type, operators
       @item_name = item_name
       @items = items
-      @paginate = paginate
+      @list_result = list_result
+      @pager_type = pager_type.to_s
       @operators = operators
       @manifest = LocalManifest.manifest.filers[@item_name]
       @template_dir = 'templates/r/filer/'
       @header = Header.new self
       @body = Body.new self
-      @footer = Footer.new self, paginate
+      self.init_pager
+    end
+    
+    def init_pager
+      @pager = self.class.pager[@pager_type].new self
+    end
+    
+    def self.pager
+      {'none' => NonePager, 'default' => DefaultPager, 'more' => MorePager}
     end
     
     def model
diff --git a/lib/locmare/filer/footer.rb b/lib/locmare/filer/footer.rb
deleted file mode 100644 (file)
index 7e98a3d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-module Locmare
-  module FilerModule
-    class Footer
-      attr :filer, :paginate
-      def initialize filer, paginate
-        @filer = filer
-        @paginate = paginate
-      end
-      
-      def template_dir
-        @filer.template_dir
-      end
-      
-      def template_file_name
-        "footer"
-      end
-      
-      def template_name
-        self.template_dir + self.template_file_name
-      end
-      
-    end
-  end
-end
diff --git a/lib/locmare/filer/pager.rb b/lib/locmare/filer/pager.rb
new file mode 100644 (file)
index 0000000..d98b937
--- /dev/null
@@ -0,0 +1,54 @@
+module Locmare
+  module FilerModule
+    class Pager
+      attr :filer
+      
+      def initialize filer
+        @filer = filer
+      end
+      
+      def list_result
+        @filer.list_result
+      end
+      
+      def api_path
+        list_result.path
+      end
+      
+      def template_dir
+        @filer.template_dir + "pager/"
+      end
+      
+      def template_name
+        self.template_dir + self.template_file_name
+      end
+      
+    end
+    
+    class NonePager < Pager
+      def template_file_name
+        "none"
+      end
+      
+    end
+    
+    class DefaultPager < Pager
+      def template_file_name
+        "default"
+      end
+      
+      def paginate
+        list_result.paginate
+      end
+      
+    end
+    
+    class MorePager < Pager
+      def template_file_name
+        "more"
+      end
+      
+    end
+    
+  end
+end
index 584ca85..a9e3054 100644 (file)
@@ -15,7 +15,6 @@ module Locmare
       @manifest = LocalManifest.manifest.forms[@form_name]
       @template_dir = 'templates/r/form/'
       @fields = {}
-      self.init_fields
     end
     
     def each_field
@@ -57,7 +56,8 @@ module Locmare
         if boost_name = @item.class.find_boost_name(field_name)
           extend_form_name = @item.boosters[boost_name].model_name
           extend_form_manifest = LocalManifest.manifest.forms[extend_form_name]
-          @fields[field_name] = ExtendForm.new self, extend_form_name, @item, @mounted, @operators
+          extend_item = @item.boosters[boost_name].extend_item
+          @fields[field_name] = ExtendForm.new self, extend_form_name, extend_item, @mounted, @operators
         else
           @fields[field_name] = Field.new self, field_name, field_manifest
         end
@@ -89,9 +89,10 @@ module Locmare
   class ExtendForm < FormBase
     attr :parent
     
-    def initialize parent, form_name, item, mounted, submit, operators
+    def initialize parent, form_name, item, mounted, operators
       @parent = parent
       super form_name, item, mounted, operators
+      self.init_fields
     end
     
     def init_fields
@@ -101,11 +102,15 @@ module Locmare
           extend_form_manifest = LocalManifest.manifest.forms[extend_form_name]
           @fields[field_name] = ExtendField.new self, field_name, field_manifest, @item.boosters[n].extend_item
         else
-          @fields[field_name] = Field.new self, field_name, field_manifest
+       #   @fields[field_name] = Field.new self, field_name, field_manifest
         end
       end
     end
     
+    def template_file_name
+      "extend_form"
+    end
+    
   end
   
 end
index 38cc9b5..b5a447a 100644 (file)
@@ -2,16 +2,37 @@ module Locmare
   module ListGroupModule
     class Base
       class ListResult
-        attr :items, :paginate
-        def initialize items, paginate
+        attr :list, :items, :paginate
+        
+        def initialize list, items, paginate, operators, options
+          @list = list
           @items = items
           @paginate = paginate
+          @operators = operators
+          @options = options
+        end
+        
+        def path
+          if list_manifest.has_id?
+            filter_item_id = @options[:id]
+            if list_manifest.pre_id?
+              list_manifest.model.path_name + '/' + filter_item_id.to_s + '/' + list_manifest.action_name
+            else
+              list_manifest.model.path_name + '/' + list_manifest.action_name + '/' + filter_item_id.to_s
+            end
+          else
+            list_manifest.model.path_name + '/' + list_manifest.action_name
+          end
+        end
+        
+        def list_manifest
+          @list.list_manifest
         end
         
       end
       
       attr :item_name, :list_name, 
-        :model_manifest, :model_list_manifest, :model, 
+        :model_manifest, :model_list_manifest, :list_manifest, :model, 
         :default_page_size, :max_page_size
       def initialize item_name, list_name
         @item_name = item_name
@@ -63,7 +84,6 @@ module Locmare
         method_name = @where.conditions do |name|
           name
         end
-        p method_name
         @model.__send__ method_name
       end
       
@@ -115,7 +135,7 @@ module Locmare
         count = self.count operators, options
         pg = self.paginate count, offset, page_size
         self.boost items
-        ListResult.new items, pg
+        ListResult.new self, items, pg, operators, options
       end
       
     end
index 6dbc1d0..f7d680e 100644 (file)
@@ -27,7 +27,7 @@ module Locmare
           rescue ActiveRecord::RecordNotFound, ActiveRecord::Forbidden
             r = []
           end
-          ::Locmare::Filer.new self.parent_model.item_name, r, nil, self.profiler.operators
+          ::Locmare::Filer.new self.parent_model.item_name, r, nil, :none, self.profiler.operators
         end
         
         def model_manifest
index 27bd9ea..030d06d 100644 (file)
@@ -18,8 +18,8 @@ module Locmare
         
         def filer
           list_result = @has_many_manifest.list.open(self.profiler.operators, {:id => self.item.id, :page => 1, :page_size => 3})
-          items = list_result.items 
-          ::Locmare::Filer.new self.has_many_model.item_name, items, nil, self.profiler.operators
+          items = list_result.items
+          ::Locmare::Filer.new self.has_many_model.item_name, items, list_result, :more, self.profiler.operators
         end
         
         def profiler
index 9191174..326c1ec 100644 (file)
@@ -19,7 +19,7 @@ module Locmare
         def filer
           list_result = @has_one_manifest.list.open(self.profiler.operators, {:id => self.item.id})
           items = list_result.items 
-          ::Locmare::Filer.new self.has_one_model.item_name, items, nil, self.profiler.operators
+          ::Locmare::Filer.new self.has_one_model.item_name, items, nil, :none, self.profiler.operators
         end
         
         def profiler
index 92d8c6d..956b025 100644 (file)
@@ -7,7 +7,7 @@ module Locmare
       end
       
       def filer
-        Locmare::Filer.new @profiler.item_name, [@profiler.item], nil, @profiler.operators
+        Locmare::Filer.new @profiler.item_name, [@profiler.item], nil, :none, @profiler.operators
       end
       
     end
index 08910cc..b2a4cb4 100644 (file)
@@ -168,7 +168,7 @@ module Peta
     
     def boosts level
       self.class.my_peta.boost.each do |boost_name, boost_manifest|
-        next unless boost_manifest.level == level
+  #      next unless boost_manifest.level == level
         self.boost boost_manifest
       end
     end
@@ -178,6 +178,10 @@ module Peta
       @boosters[boost_manifest.name] = Locmare::Booster.new(boost_manifest, self)
     end
     
+    def boosters
+      @boosters
+          end
+    
     def extend_column? column_name
       self.class.extend_column? column_name
     end
index 58dad08..61cb536 100644 (file)
       ],\r
       "extend_settings": {\r
         "pettanr_pettan_commons_v01_licenses_license": {\r
-          "columns": {\r
-            "open": {},\r
-            "commercial": {},\r
-            "official": {},\r
-            "attribution": {},\r
-            "derive": {},\r
-            "thumbnail": {},\r
-            "gif_convert": {},\r
-            "reverse": {},\r
-            "sync_vh": {},\r
-            "overlap": {}\r
-          },\r
+          "columns": {},\r
           "column_names": [\r
             "open",\r
             "commercial",\r
         }\r
       }\r
     },\r
+    "pettanr_creative_commons_v30_licenses_license": {\r
+      "fields": {\r
+        "open": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "commercial": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "official": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "attribution": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "derive": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "thumbnail": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "gif_convert": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "reverse": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "sync_vh": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "overlap": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        }\r
+      },\r
+      "field_names": [\r
+        "open",\r
+        "commercial",\r
+        "official",\r
+        "attribution:",\r
+        "derive",\r
+        "thumbnail",\r
+        "gif_convert",\r
+        "reverse",\r
+        "sync_vh",\r
+        "overlap"\r
+      ]\r
+    },\r
+    "pettanr_creative_commons_v30_licenses_credit_picture": {\r
+      "fields": {\r
+        "source_url_btn_id": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "source_url_off_btn_id": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        }\r
+      },\r
+      "field_names": [\r
+        "source_url_btn_id",\r
+        "source_url_off_btn_id"\r
+      ]\r
+    },\r
     "pettanr_pettan_commons_v01_licenses_license": {\r
       "fields": {\r
         "open": {\r
         "source_url_btn_id",\r
         "source_url_off_btn_id"\r
       ]\r
+    },\r
+    "pettanr_pettan_protected_v01_licenses_license": {\r
+      "fields": {\r
+        "open": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "commercial": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "official": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "attribution": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "derive": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "thumbnail": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "gif_convert": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "reverse": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "sync_vh": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "overlap": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        }\r
+      },\r
+      "field_names": [\r
+        "open",\r
+        "commercial",\r
+        "official",\r
+        "attribution:",\r
+        "derive",\r
+        "thumbnail",\r
+        "gif_convert",\r
+        "reverse",\r
+        "sync_vh",\r
+        "overlap"\r
+      ]\r
+    },\r
+    "pettanr_pettan_protected_v01_licenses_credit_picture": {\r
+      "fields": {\r
+        "source_url_btn_id": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "source_url_off_btn_id": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        }\r
+      },\r
+      "field_names": [\r
+        "source_url_btn_id",\r
+        "source_url_off_btn_id"\r
+      ]\r
+    },\r
+    "pettanr_pettan_public_v01_licenses_license": {\r
+      "fields": {\r
+        "open": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "commercial": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "official": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "attribution": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "derive": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "thumbnail": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "gif_convert": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "reverse": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "sync_vh": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "overlap": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        }\r
+      },\r
+      "field_names": [\r
+        "open",\r
+        "commercial",\r
+        "official",\r
+        "attribution:",\r
+        "derive",\r
+        "thumbnail",\r
+        "gif_convert",\r
+        "reverse",\r
+        "sync_vh",\r
+        "overlap"\r
+      ]\r
+    },\r
+    "pettanr_pettan_public_v01_licenses_credit_picture": {\r
+      "fields": {\r
+        "source_url_btn_id": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "source_url_off_btn_id": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        }\r
+      },\r
+      "field_names": [\r
+        "source_url_btn_id",\r
+        "source_url_off_btn_id"\r
+      ]\r
+    },\r
+    "pettanr_public_domain_v01_licenses_license": {\r
+      "fields": {\r
+        "open": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "commercial": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "official": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "attribution": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "derive": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "thumbnail": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "gif_convert": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "reverse": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "sync_vh": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "overlap": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        }\r
+      },\r
+      "field_names": [\r
+        "open",\r
+        "commercial",\r
+        "official",\r
+        "attribution:",\r
+        "derive",\r
+        "thumbnail",\r
+        "gif_convert",\r
+        "reverse",\r
+        "sync_vh",\r
+        "overlap"\r
+      ]\r
+    },\r
+    "pettanr_public_domain_v01_licenses_credit_picture": {\r
+      "fields": {\r
+        "source_url_btn_id": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "source_url_off_btn_id": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        }\r
+      },\r
+      "field_names": [\r
+        "source_url_btn_id",\r
+        "source_url_off_btn_id"\r
+      ]\r
+    },\r
+    "pettanr_unknown_v01_licenses_license": {\r
+      "fields": {\r
+        "open": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "commercial": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "official": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "attribution": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "derive": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "thumbnail": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "gif_convert": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "reverse": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "sync_vh": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "overlap": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        }\r
+      },\r
+      "field_names": [\r
+        "open",\r
+        "commercial",\r
+        "official",\r
+        "attribution:",\r
+        "derive",\r
+        "thumbnail",\r
+        "gif_convert",\r
+        "reverse",\r
+        "sync_vh",\r
+        "overlap"\r
+      ]\r
+    },\r
+    "pettanr_unknown_v01_licenses_credit_picture": {\r
+      "fields": {\r
+        "source_url_btn_id": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        },\r
+        "source_url_off_btn_id": {\r
+          "tag": {\r
+            "type": "number"\r
+          },\r
+          "row_break": true\r
+        }\r
+      },\r
+      "field_names": [\r
+        "source_url_btn_id",\r
+        "source_url_off_btn_id"\r
+      ]\r
     }\r
   },\r
   "buckets": {\r