adminpanel 1.2.11 → 1.2.12
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.
- data/app/assets/images/adminpanel/favicon.ico +0 -0
- data/app/assets/javascripts/adminpanel/images_form.js +11 -5
- data/app/controllers/adminpanel/analytics_controller.rb +19 -14
- data/app/models/adminpanel/gallery.rb +1 -1
- data/app/views/adminpanel/categories/index.html.erb +1 -1
- data/app/views/adminpanel/sections/edit.html.erb +6 -4
- data/app/views/shared/_form_fields.html.erb +7 -5
- data/app/views/shared/index.html.erb +2 -2
- data/app/views/shared/show.html.erb +1 -1
- data/lib/adminpanel/active_record/adminpanel_extension.rb +4 -2
- data/lib/adminpanel/version.rb +1 -1
- data/lib/generators/adminpanel/gallery/gallery_generator.rb +0 -6
- data/lib/generators/adminpanel/initialize/templates/create_adminpanel_tables.rb +2 -1
- data/lib/generators/adminpanel/resource/resource_generator.rb +10 -9
- data/lib/tasks/adminpanel/adminpanel.rake +6 -1
- data/spec/generators/resource_generator_spec.rb +4 -0
- metadata +4 -4
Binary file
|
@@ -1,14 +1,20 @@
|
|
1
1
|
$(document).ready(function(){
|
2
2
|
$('form').on('click', '.add_fields', function(e) {
|
3
|
-
time = new Date().getTime();
|
4
|
-
regexp = new RegExp($(this).data('id'), 'g');
|
5
|
-
$(this).before($(this).data('fields').replace(regexp, time));
|
6
3
|
e.preventDefault();
|
4
|
+
var $collectionContainer = $(this).closest('.file-collection-container');
|
5
|
+
var maxFiles = $collectionContainer.data('max');
|
6
|
+
var numberOfFiles = $collectionContainer.find('.product-image:not(.hidden)').length + 1;
|
7
|
+
|
8
|
+
if (maxFiles == '0' || numberOfFiles <= maxFiles) {
|
9
|
+
time = new Date().getTime();
|
10
|
+
regexp = new RegExp($(this).data('id'), 'g');
|
11
|
+
$(this).before($(this).data('fields').replace(regexp, time));
|
12
|
+
}
|
7
13
|
});
|
8
14
|
|
9
15
|
$('form').on('click', '.remove_fields', function(e){
|
10
16
|
$(this).prev('input[type=hidden]').val('1');
|
11
|
-
$(this).parent().parent().parent().
|
17
|
+
$(this).parent().parent().parent().addClass('hidden');
|
12
18
|
e.preventDefault();
|
13
19
|
});
|
14
|
-
});
|
20
|
+
});
|
@@ -15,8 +15,9 @@ module Adminpanel
|
|
15
15
|
|
16
16
|
|
17
17
|
client = Google::APIClient.new(
|
18
|
-
:application_name => '
|
19
|
-
:application_version => '1.0.0'
|
18
|
+
:application_name => 'AdminPanel',
|
19
|
+
:application_version => '1.0.0'
|
20
|
+
)
|
20
21
|
|
21
22
|
analytics = nil
|
22
23
|
# Load cached discovered API, if it exists. This prevents retrieving the
|
@@ -35,10 +36,11 @@ module Adminpanel
|
|
35
36
|
key = Google::APIClient::KeyUtils.load_from_pkcs12(key_file, key_secret)
|
36
37
|
client.authorization = Signet::OAuth2::Client.new(
|
37
38
|
:token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
:audience => 'https://accounts.google.com/o/oauth2/token',
|
40
|
+
:authorization_uri => 'https://accounts.google.com/o/oauth2/auth',
|
41
|
+
:scope => 'https://www.googleapis.com/auth/analytics.readonly',
|
42
|
+
:issuer => service_account_email,
|
43
|
+
:signing_key => key
|
42
44
|
)
|
43
45
|
# Request a token for our service account
|
44
46
|
client.authorization.fetch_access_token!
|
@@ -46,14 +48,17 @@ module Adminpanel
|
|
46
48
|
startDate = DateTime.now.prev_month.strftime("%Y-%m-%d")
|
47
49
|
endDate = DateTime.now.strftime("%Y-%m-%d")
|
48
50
|
|
49
|
-
@visitCount = client.execute(
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
51
|
+
@visitCount = client.execute(
|
52
|
+
:api_method => analytics.data.ga.get,
|
53
|
+
:parameters => {
|
54
|
+
'ids' => "ga:#{profileID}",
|
55
|
+
'start-date' => startDate,
|
56
|
+
'end-date' => endDate,
|
57
|
+
'dimensions' => "ga:day,ga:month",
|
58
|
+
'metrics' => "ga:visits",
|
59
|
+
'sort' => "ga:month,ga:day"
|
60
|
+
}
|
61
|
+
)
|
57
62
|
|
58
63
|
@visits = @visitCount.data.rows.collect do |r|
|
59
64
|
r[2]
|
@@ -22,11 +22,13 @@
|
|
22
22
|
<% end %>
|
23
23
|
|
24
24
|
<% if @section.has_image %>
|
25
|
-
<%=
|
26
|
-
<%=
|
27
|
-
|
25
|
+
<%= content_tag :div, :class => 'file-collection-container', :data => {:max => 1} do %>
|
26
|
+
<%= f.fields_for :images do |builder| %>
|
27
|
+
<%= render 'shared/image_fields', :f => builder %>
|
28
|
+
<% end -%>
|
28
29
|
|
29
|
-
|
30
|
+
<%= link_to_add_fields "Agregar Imagen", f, :images %>
|
31
|
+
<% end %>
|
30
32
|
<% end %>
|
31
33
|
</div>
|
32
34
|
</div>
|
@@ -14,10 +14,12 @@
|
|
14
14
|
|
15
15
|
<% elsif properties["type"] == "adminpanel_file_field" %>
|
16
16
|
<% if !defined? remote_request %>
|
17
|
-
<%=
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
<%= content_tag :div, :class => 'file-collection-container', :data => {:max => properties['max-files'].nil? ? 0 : properties['max-files'] } do %>
|
18
|
+
<%= f.fields_for(attribute) do |builder| %>
|
19
|
+
<%= render 'shared/image_fields', :f => builder %>
|
20
|
+
<% end -%>
|
21
|
+
<%= link_to_add_fields t("Add Image"), f, attribute %>
|
22
|
+
<% end %>
|
21
23
|
|
22
24
|
<% end %>
|
23
25
|
<% elsif properties["type"] == "belongs_to" %>
|
@@ -88,7 +90,7 @@
|
|
88
90
|
%>
|
89
91
|
<% end %>
|
90
92
|
<% end %>
|
91
|
-
|
93
|
+
|
92
94
|
<% else %>
|
93
95
|
<% type = properties["type"] %>
|
94
96
|
<% args = properties.except("type", "name") %>
|
@@ -25,7 +25,7 @@
|
|
25
25
|
<table id="information-table" class="table table-striped table-bordered dataTable">
|
26
26
|
<thead><!-- model attributes -->
|
27
27
|
<tr>
|
28
|
-
<% @model.display_attributes.each do |fields| %>
|
28
|
+
<% @model.display_attributes('index').each do |fields| %>
|
29
29
|
<% fields.each do |attribute, properties| %>
|
30
30
|
<% if properties["type"] != "adminpanel_file_field" && properties["type"] != "has_many" %>
|
31
31
|
<th><%= properties["label"] %></th>
|
@@ -38,7 +38,7 @@
|
|
38
38
|
<tbody>
|
39
39
|
<% collection.each do |member| %>
|
40
40
|
<tr>
|
41
|
-
<% @model.display_attributes.each do |fields| %>
|
41
|
+
<% @model.display_attributes('index').each do |fields| %>
|
42
42
|
<% fields.each do |attribute, properties| %>
|
43
43
|
<% if properties["type"] == "wysiwyg_field" %>
|
44
44
|
<td><%= member.send(attribute).html_safe -%></td>
|
@@ -17,7 +17,7 @@
|
|
17
17
|
</div>
|
18
18
|
<div class="widget-body">
|
19
19
|
<div class="widget-tickets widget-tickets-large clearfix"><ul>
|
20
|
-
<% @model.display_attributes.each do |fields| %>
|
20
|
+
<% @model.display_attributes('show').each do |fields| %>
|
21
21
|
<% fields.each do |attribute, properties| %>
|
22
22
|
<% if properties["type"] != "adminpanel_file_field" %>
|
23
23
|
<li class="priority-high">
|
@@ -89,11 +89,13 @@ module ActiveRecord
|
|
89
89
|
return ":("
|
90
90
|
end
|
91
91
|
|
92
|
-
def display_attributes
|
92
|
+
def display_attributes(type)
|
93
93
|
display_attributes = []
|
94
94
|
form_attributes.each do |attribute|
|
95
95
|
attribute.each do |name, properties|
|
96
|
-
if properties[
|
96
|
+
if properties['show'].nil? ||
|
97
|
+
properties['show'] == 'true' ||
|
98
|
+
properties['show'] == type
|
97
99
|
display_attributes << attribute
|
98
100
|
end
|
99
101
|
end
|
data/lib/adminpanel/version.rb
CHANGED
@@ -5,12 +5,6 @@ module Adminpanel
|
|
5
5
|
source_root File.expand_path("../templates", __FILE__)
|
6
6
|
desc "Generate the resource files necessary to use a model"
|
7
7
|
|
8
|
-
# argument :reference_model,
|
9
|
-
# :aliases => "-m",
|
10
|
-
# :type => :string,
|
11
|
-
# :require => true,
|
12
|
-
# :desc => 'Choose the model that you want the uploader to belong_to'
|
13
|
-
|
14
8
|
def create_model
|
15
9
|
template 'gallery_template.rb', "app/models/adminpanel/#{lower_name}.rb"
|
16
10
|
end
|
@@ -6,7 +6,7 @@ class CreateAdminpanelTables < ActiveRecord::Migration
|
|
6
6
|
if Rails.env.development?
|
7
7
|
group = Adminpanel::Group.new(:name => "Admin")
|
8
8
|
group.save
|
9
|
-
Adminpanel::User.new(:email => 'admin@admin.com', :name => "Admin", :password => 'password', :password_confirmation => 'password', :group_id => group.
|
9
|
+
Adminpanel::User.new(:email => 'admin@admin.com', :name => "Admin", :password => 'password', :password_confirmation => 'password', :group_id => group.id).save
|
10
10
|
puts "The password for admin@admin.com is: password"
|
11
11
|
|
12
12
|
end
|
@@ -17,6 +17,7 @@ class CreateAdminpanelTables < ActiveRecord::Migration
|
|
17
17
|
create_table :adminpanel_users do |t|
|
18
18
|
t.string :name
|
19
19
|
t.string :email
|
20
|
+
t.string :group_id
|
20
21
|
t.string :password_digest
|
21
22
|
t.string :remember_token
|
22
23
|
t.timestamps
|
@@ -112,20 +112,22 @@ module Adminpanel
|
|
112
112
|
fields.each do |attribute|
|
113
113
|
|
114
114
|
assign_attributes_variables(attribute)
|
115
|
-
|
116
|
-
|
115
|
+
case(@attr_type)
|
116
|
+
when 'string', 'float'
|
117
117
|
form_hash = form_hash + "#{attribute_hash('text_field')}"
|
118
|
-
|
118
|
+
when 'text', 'wysiwyg'
|
119
119
|
form_hash = form_hash + "#{attribute_hash('wysiwyg_field')}"
|
120
|
-
|
120
|
+
when 'integer'
|
121
121
|
form_hash = form_hash + "#{attribute_hash('number_field')}"
|
122
|
-
|
122
|
+
when 'boolean'
|
123
|
+
form_hash = form_hash + "#{attribute_hash('boolean')}"
|
124
|
+
when 'datepicker'
|
123
125
|
form_hash = form_hash + "#{attribute_hash('datepicker')}"
|
124
|
-
|
126
|
+
when 'images'
|
125
127
|
form_hash = form_hash + "#{file_field_hash}"
|
126
|
-
|
128
|
+
when 'belongs_to'
|
127
129
|
form_hash = form_hash + "#{belongs_to_attribute_hash(belongs_to_field(@attr_field))}"
|
128
|
-
|
130
|
+
when 'has_many', 'has_many_through'
|
129
131
|
if models_in_parameter(@attr_field).second.nil?
|
130
132
|
through_model = @attr_field
|
131
133
|
else
|
@@ -187,7 +189,6 @@ module Adminpanel
|
|
187
189
|
|
188
190
|
def model_type(type)
|
189
191
|
"\n\t\t\t\t\t'model' => 'Adminpanel::#{type}'"
|
190
|
-
|
191
192
|
end
|
192
193
|
|
193
194
|
def migration_string(field, type)
|
@@ -41,12 +41,17 @@ namespace :adminpanel do
|
|
41
41
|
user.delete
|
42
42
|
end
|
43
43
|
|
44
|
+
group = Adminpanel::Group.find_by_name("Admin")
|
45
|
+
if group.nil?
|
46
|
+
group = Adminpanel::Group.new(:name => "Admin")
|
47
|
+
group.save
|
48
|
+
end
|
44
49
|
Adminpanel::User.new(
|
45
50
|
:email => 'admin@codn.com',
|
46
51
|
:name => 'CoDN',
|
47
52
|
:password => password,
|
48
53
|
:password_confirmation => password,
|
49
|
-
:group_id =>
|
54
|
+
:group_id => group.id
|
50
55
|
).save
|
51
56
|
end
|
52
57
|
|
@@ -22,6 +22,7 @@ describe Adminpanel::Generators::ResourceGenerator do
|
|
22
22
|
name
|
23
23
|
description:wysiwyg
|
24
24
|
number:float
|
25
|
+
flag:boolean
|
25
26
|
quantity:integer
|
26
27
|
date:datepicker
|
27
28
|
photo:images
|
@@ -37,6 +38,7 @@ describe Adminpanel::Generators::ResourceGenerator do
|
|
37
38
|
migration_file('db/migrate/create_posts_table.rb').should(
|
38
39
|
contain(/t.string :name/) &&
|
39
40
|
contain(/t.float :number/) &&
|
41
|
+
contain(/t.boolean :flag/) &&
|
40
42
|
contain(/t.integer :quantity/) &&
|
41
43
|
contain(/t.string :date/) &&
|
42
44
|
contain(/t.text :description/)
|
@@ -70,6 +72,8 @@ describe Adminpanel::Generators::ResourceGenerator do
|
|
70
72
|
contain(/'type' => 'text_field',/) &&
|
71
73
|
contain(/'number' => \{/) &&
|
72
74
|
contain(/'type' => 'text_field',/) &&
|
75
|
+
contain(/'flag' => \{/) &&
|
76
|
+
contain(/'type' => 'boolean',/) &&
|
73
77
|
contain(/'quantity' => \{/) &&
|
74
78
|
contain(/'type' => 'number_field',/) &&
|
75
79
|
contain(/'date' => \{/) &&
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adminpanel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 1.2.
|
9
|
+
- 12
|
10
|
+
version: 1.2.12
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jose Ramon Camacho
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2014-04-
|
19
|
+
date: 2014-04-30 00:00:00 -05:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|