jinda 0.1.0 → 0.1.6.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +19 -11
- data/Rakefile +3 -1
- data/bin/console +1 -1
- data/lib/generators/jinda/config_generator.rb +23 -9
- data/lib/generators/jinda/install_generator.rb +31 -22
- data/lib/generators/jinda/minitest_generator.rb +30 -0
- data/lib/generators/jinda/rspec_generator.rb +30 -0
- data/lib/generators/jinda/templates/.env +2 -0
- data/lib/generators/jinda/templates/app/assets/images/facebook-continue-button.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/google-continue-button.png +0 -0
- data/lib/generators/jinda/templates/app/assets/javascripts/jqm/jquery.mobile.datebox.js +10 -4
- data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +2 -1
- data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/app.scss +84 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/social.scss +133 -0
- data/lib/generators/jinda/templates/app/controllers/articles_controller.rb +17 -1
- data/lib/generators/jinda/templates/app/controllers/{ctrs_controller.rb → ctrs_controller.rb-gem-test} +0 -0
- data/lib/generators/jinda/templates/app/controllers/jinda_controller.rb +11 -3
- data/lib/generators/jinda/templates/app/jinda/index.mm +2 -2
- data/lib/generators/jinda/templates/app/jinda/template/linkview.haml +21 -0
- data/lib/generators/jinda/templates/app/models/jinda/module.rb +1 -1
- data/lib/generators/jinda/templates/app/models/user.rb +4 -2
- data/lib/generators/jinda/templates/app/views/jinda/_menu.haml +3 -1
- data/lib/generators/jinda/templates/app/views/jinda/_menu_mm.haml +17 -2
- data/lib/generators/jinda/templates/app/views/jinda/_static.haml +0 -10
- data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +4 -3
- data/lib/generators/jinda/templates/app/views/jinda/run_form.haml +1 -1
- data/lib/generators/jinda/templates/app/views/layouts/jqm/_full.haml +11 -11
- data/lib/generators/jinda/templates/spec/controllers/articles_controller_spec.rb +155 -0
- data/lib/generators/jinda/templates/spec/helpers/rails_helper.rb +46 -0
- data/lib/generators/jinda/templates/spec/helpers/spec_helper.rb +96 -0
- data/lib/generators/jinda/templates/spec/models/user_spec.rb +26 -0
- data/lib/generators/jinda/templates/spec/requests/jinda_routes_spec.rb +82 -0
- data/lib/generators/jinda/templates/spec/requests/password_resets_spec.rb +15 -0
- data/lib/generators/jinda/templates/test/application_system_test_case.rb +5 -0
- data/lib/generators/jinda/templates/test/integration/jinda_routes_test.rb +42 -0
- data/lib/generators/jinda/templates/test/test_helper.rb +6 -0
- data/lib/jinda/gemhelpers.rb +50 -0
- data/lib/jinda/helpers.rb +335 -30
- data/lib/jinda/railtie.rb +2 -2
- data/lib/jinda/version.rb +1 -1
- data/lib/tasks/jinda.rake +0 -169
- metadata +141 -21
- data/lib/generators/jinda/templates/app/assets/images/facebook-button.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/facebook-sign-in-button.png +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/rouge.css.erb +0 -11
- data/lib/generators/jinda/templates/spec/controllers/admins_controller_spec.rb +0 -5
- data/lib/generators/jinda/templates/spec/controllers/devs_controller_spec.rb +0 -5
- data/lib/generators/jinda/templates/spec/controllers/users_controller_spec.rb +0 -5
- data/lib/generators/jinda/templates/spec/helpers/admins_helper_spec.rb +0 -15
- data/lib/generators/jinda/templates/spec/helpers/devs_helper_spec.rb +0 -15
- data/lib/generators/jinda/templates/spec/helpers/users_helper_spec.rb +0 -15
- data/lib/generators/jinda/templates/spec/spec_helper.rb +0 -38
- data/test/jinda_test.rb +0 -7
- data/test/test_helper.rb +0 -4
@@ -0,0 +1,133 @@
|
|
1
|
+
html * {
|
2
|
+
font-family: 'Montserrat', sans-serif;
|
3
|
+
box-sizing: border-box;
|
4
|
+
}
|
5
|
+
|
6
|
+
body {
|
7
|
+
background: #4688F1;
|
8
|
+
padding: 0;
|
9
|
+
margin: 0;
|
10
|
+
}
|
11
|
+
|
12
|
+
.login-box {
|
13
|
+
padding: 20px;
|
14
|
+
max-width: 480px;
|
15
|
+
margin: 5vh auto;
|
16
|
+
text-align: center;
|
17
|
+
letter-spacing: 1px;
|
18
|
+
position: relative;
|
19
|
+
}
|
20
|
+
|
21
|
+
.login-box:hover {
|
22
|
+
box-shadow: 0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
|
23
|
+
}
|
24
|
+
|
25
|
+
.login-box h2 {
|
26
|
+
margin: 20px 0 20px;
|
27
|
+
padding: 0;
|
28
|
+
text-transform: uppercase;
|
29
|
+
color: #4688F1;
|
30
|
+
}
|
31
|
+
|
32
|
+
.social-button {
|
33
|
+
background-position: 25px 0px;
|
34
|
+
box-sizing: border-box;
|
35
|
+
color: rgb(255, 255, 255);
|
36
|
+
cursor: pointer;
|
37
|
+
display: inline-block;
|
38
|
+
height: 50px;
|
39
|
+
line-height: 50px;
|
40
|
+
text-align: left;
|
41
|
+
text-decoration: none;
|
42
|
+
text-transform: uppercase;
|
43
|
+
vertical-align: middle;
|
44
|
+
width: 100%;
|
45
|
+
border-radius: 3px;
|
46
|
+
margin: 10px auto;
|
47
|
+
outline: rgb(255, 255, 255) none 0px;
|
48
|
+
padding-left: 20%;
|
49
|
+
transition: all 0.2s cubic-bezier(0.72, 0.01, 0.56, 1) 0s;
|
50
|
+
-webkit-transition: all .3s ease;
|
51
|
+
-moz-transition: all .3s ease;
|
52
|
+
-ms-transition: all .3s ease;
|
53
|
+
-o-transition: all .3s ease;
|
54
|
+
transition: all .3s ease;
|
55
|
+
}
|
56
|
+
|
57
|
+
#facebook-connect {
|
58
|
+
background: rgb(255, 255, 255) url('https://eswarasai.com/projects/social-login/img/facebook.svg') no-repeat scroll 5px 0px / 30px 50px padding-box border-box;
|
59
|
+
border: 1px solid rgb(60, 90, 154);
|
60
|
+
}
|
61
|
+
|
62
|
+
#facebook-connect:hover {
|
63
|
+
border-color: rgb(60, 90, 154);
|
64
|
+
background: rgb(60, 90, 154) url('https://eswarasai.com/projects/social-login/img/facebook-white.svg') no-repeat scroll 5px 0px / 30px 50px padding-box border-box;
|
65
|
+
-webkit-transition: all .8s ease-out;
|
66
|
+
-moz-transition: all .3s ease;
|
67
|
+
-ms-transition: all .3s ease;
|
68
|
+
-o-transition: all .3s ease;
|
69
|
+
transition: all .3s ease-out;
|
70
|
+
}
|
71
|
+
|
72
|
+
#facebook-connect span {
|
73
|
+
box-sizing: border-box;
|
74
|
+
color: rgb(60, 90, 154);
|
75
|
+
cursor: pointer;
|
76
|
+
text-align: center;
|
77
|
+
text-transform: uppercase;
|
78
|
+
border: 0px none rgb(255, 255, 255);
|
79
|
+
outline: rgb(255, 255, 255) none 0px;
|
80
|
+
-webkit-transition: all .3s ease;
|
81
|
+
-moz-transition: all .3s ease;
|
82
|
+
-ms-transition: all .3s ease;
|
83
|
+
-o-transition: all .3s ease;
|
84
|
+
transition: all .3s ease;
|
85
|
+
}
|
86
|
+
|
87
|
+
#facebook-connect:hover span {
|
88
|
+
color: #FFF;
|
89
|
+
-webkit-transition: all .3s ease;
|
90
|
+
-moz-transition: all .3s ease;
|
91
|
+
-ms-transition: all .3s ease;
|
92
|
+
-o-transition: all .3s ease;
|
93
|
+
transition: all .3s ease;
|
94
|
+
}
|
95
|
+
|
96
|
+
#google-connect {
|
97
|
+
background: rgb(255, 255, 255) url('https://eswarasai.com/projects/social-login/img/google-plus.png') no-repeat scroll 5px 0px / 50px 50px padding-box border-box;
|
98
|
+
border: 1px solid rgb(220, 74, 61);
|
99
|
+
}
|
100
|
+
|
101
|
+
#google-connect:hover {
|
102
|
+
border-color: rgb(220, 74, 61);
|
103
|
+
background: rgb(220, 74, 61) url('https://eswarasai.com/projects/social-login/img/google-plus-white.png') no-repeat scroll 5px 0px / 50px 50px padding-box border-box;
|
104
|
+
-webkit-transition: all .8s ease-out;
|
105
|
+
-moz-transition: all .3s ease;
|
106
|
+
-ms-transition: all .3s ease;
|
107
|
+
-o-transition: all .3s ease;
|
108
|
+
transition: all .3s ease-out;
|
109
|
+
}
|
110
|
+
|
111
|
+
#google-connect span {
|
112
|
+
box-sizing: border-box;
|
113
|
+
color: rgb(220, 74, 61);
|
114
|
+
cursor: pointer;
|
115
|
+
text-align: center;
|
116
|
+
text-transform: uppercase;
|
117
|
+
border: 0px none rgb(220, 74, 61);
|
118
|
+
outline: rgb(255, 255, 255) none 0px;
|
119
|
+
-webkit-transition: all .3s ease;
|
120
|
+
-moz-transition: all .3s ease;
|
121
|
+
-ms-transition: all .3s ease;
|
122
|
+
-o-transition: all .3s ease;
|
123
|
+
transition: all .3s ease;
|
124
|
+
}
|
125
|
+
|
126
|
+
#google-connect:hover span {
|
127
|
+
color: #FFF;
|
128
|
+
-webkit-transition: all .3s ease;
|
129
|
+
-moz-transition: all .3s ease;
|
130
|
+
-ms-transition: all .3s ease;
|
131
|
+
-o-transition: all .3s ease;
|
132
|
+
transition: all .3s ease;
|
133
|
+
}
|
@@ -19,14 +19,23 @@ class ArticlesController < ApplicationController
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def create
|
22
|
+
|
22
23
|
@article = Article.new(
|
23
24
|
title: $xvars["form_article"]["title"],
|
24
25
|
text: $xvars["form_article"]["text"],
|
25
26
|
keywords: $xvars["form_article"]["keywords"],
|
26
27
|
body: $xvars["form_article"]["body"],
|
27
|
-
|
28
28
|
user_id: $xvars["user_id"])
|
29
29
|
@article.save!
|
30
|
+
# if @article.save!
|
31
|
+
# format.html { redirect_to @article, notice: 'Sample was successfully created.' }
|
32
|
+
# format.json { render :show, status: :created, location: @article }
|
33
|
+
# else
|
34
|
+
# format.html { render :new }
|
35
|
+
# format.json { render json: @article.errors, status: :unprocessable_entity }
|
36
|
+
# end
|
37
|
+
redirect_to @article
|
38
|
+
|
30
39
|
end
|
31
40
|
|
32
41
|
def my
|
@@ -40,14 +49,21 @@ class ArticlesController < ApplicationController
|
|
40
49
|
# They contain everything that we get their forms select_article and edit_article
|
41
50
|
article_id = $xvars["select_article"] ? $xvars["select_article"]["title"] : $xvars["p"]["article_id"]
|
42
51
|
@article = Article.find(article_id)
|
52
|
+
|
43
53
|
@article.update(title: $xvars["edit_article"]["article"]["title"],
|
44
54
|
text: $xvars["edit_article"]["article"]["text"],
|
45
55
|
keywords: $xvars["edit_article"]["article"]["keywords"],
|
46
56
|
body: $xvars["edit_article"]["article"]["body"])
|
57
|
+
redirect_to @article
|
58
|
+
|
47
59
|
|
48
60
|
end
|
49
61
|
|
50
62
|
def destroy
|
63
|
+
if Rails.env.test? #Temp solution until fix test of current_ma_user
|
64
|
+
current_ma_user = $xvars["current_ma_user"]
|
65
|
+
#current_ma_user = @article.user
|
66
|
+
end
|
51
67
|
if current_ma_user.role.upcase.split(',').include?("A") || current_ma_user == @article.user
|
52
68
|
@article.destroy
|
53
69
|
end
|
File without changes
|
@@ -36,11 +36,13 @@ class JindaController < ApplicationController
|
|
36
36
|
####################################################################################################]
|
37
37
|
# prepare xmain.runseq eg: how many form_step or total_step and step properties check if authorized
|
38
38
|
####################################################################################################]
|
39
|
+
# view menu by user selected what service (module and code) to run (not all services like menu did
|
40
|
+
# Its only one service
|
39
41
|
def init
|
40
42
|
module_code, code = params[:s].split(":")
|
41
43
|
@service= Jinda::Service.where(:module_code=> module_code, :code=> code).first
|
42
44
|
# @service= Jinda::Service.where(:module_code=> params[:module], :code=> params[:service]).first
|
43
|
-
|
45
|
+
if @service && authorize_init?
|
44
46
|
xmain = create_xmain(@service)
|
45
47
|
result = create_runseq(xmain)
|
46
48
|
unless result
|
@@ -59,6 +61,8 @@ class JindaController < ApplicationController
|
|
59
61
|
end
|
60
62
|
####################################################################################################]
|
61
63
|
# run if, form, mail, output etc depend on icon in freemind
|
64
|
+
# action from @runseq.action == do, form, if, output
|
65
|
+
# Then will call def run_do, run_form, run_if, run_output
|
62
66
|
####################################################################################################]
|
63
67
|
def run
|
64
68
|
init_vars(params[:id])
|
@@ -76,6 +80,9 @@ class JindaController < ApplicationController
|
|
76
80
|
redirect_to_root
|
77
81
|
else
|
78
82
|
service= @xmain.service
|
83
|
+
###############################################################################################
|
84
|
+
# Run View Form f created template by jinda rake follow freemind mm file
|
85
|
+
###############################################################################################
|
79
86
|
if service
|
80
87
|
@title= "Transaction ID #{@xmain.xid}: #{@xmain.name} / #{@runseq.name}"
|
81
88
|
fhelp= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.md"
|
@@ -251,7 +258,8 @@ class JindaController < ApplicationController
|
|
251
258
|
}
|
252
259
|
|
253
260
|
else
|
254
|
-
|
261
|
+
# bug in to_unsalfe_h rails 5.1.6 https://github.com/getsentry/raven-ruby/issues/799
|
262
|
+
# v = v.to_unsafe_h unless v.class == String
|
255
263
|
eval "@xvars[@runseq.code][k] = v"
|
256
264
|
end
|
257
265
|
}
|
@@ -345,7 +353,7 @@ class JindaController < ApplicationController
|
|
345
353
|
File.open('public/doc.html','w') {|f| f.puts html }
|
346
354
|
respond_to do |format|
|
347
355
|
format.html {
|
348
|
-
render :plain=> @print+html, :layout => 'layouts/_page'
|
356
|
+
render :plain=> @print+html, :layout => 'layouts/jqm/_page'
|
349
357
|
# render :text=> Maruku.new(doc).to_html, :layout => false
|
350
358
|
# format.html {
|
351
359
|
# h = RDoc::Markup::ToHtml.new
|
@@ -2,10 +2,10 @@
|
|
2
2
|
<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
|
3
3
|
<node CREATED="1273819432637" ID="ID_1098419600" MODIFIED="1334737006485" TEXT="Jinda">
|
4
4
|
<node CREATED="1273819462973" ID="ID_282419531" MODIFIED="1493705904561" POSITION="right" TEXT="services">
|
5
|
-
<node CREATED="1275756501221"
|
5
|
+
<node CREATED="1275756501221" ID="ID_1720745721" MODIFIED="1528215844718" TEXT="users:User">
|
6
6
|
<node CREATED="1278491598711" ID="ID_1662699954" MODIFIED="1494393920347" TEXT="role:m"/>
|
7
7
|
<node CREATED="1279700865182" ID="ID_1266797279" MODIFIED="1357798847781" TEXT="link:info: /users"/>
|
8
|
-
<node CREATED="1319015338880" ID="ID_189841353" MODIFIED="
|
8
|
+
<node CREATED="1319015338880" ID="ID_189841353" MODIFIED="1528215866339" TEXT="link:pending tasks: /jinda/pending"/>
|
9
9
|
<node CREATED="1275905802131" ID="ID_154000410" MODIFIED="1355422418892" TEXT="user:edit">
|
10
10
|
<node CREATED="1275756515843" ID="ID_1108188320" MODIFIED="1330477833918" TEXT="enter_user:edit">
|
11
11
|
<icon BUILTIN="attach"/>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
- @title= "My Articles"
|
2
|
+
%p
|
3
|
+
- @page_title = 'All Articlces'
|
4
|
+
= paginate @articles
|
5
|
+
%table#article-table
|
6
|
+
%tr
|
7
|
+
%th Title
|
8
|
+
%th Description
|
9
|
+
%th Created
|
10
|
+
%th Updated
|
11
|
+
%th Delete
|
12
|
+
%th Edit
|
13
|
+
- @articles.each do |article|
|
14
|
+
%tr
|
15
|
+
%td= link_to article.title, :controller=>"articles", :action=>"show", :id=>article.id
|
16
|
+
%td= article.text.html_safe
|
17
|
+
%td= article.created_at.strftime('%m/%d/%Y')
|
18
|
+
%td= article.updated_at.strftime('%m/%d/%Y')
|
19
|
+
%td(align='center')= link_to image_tag('delete.png', style:'border:none; float:none;'), "#", :onclick=>"if (confirm('Please Confirm')) {location.hash='/articles/destroy/#{article.id}';}"
|
20
|
+
%td(align='center')= link_to image_tag('pencil.png', style:'border:none; float:none;'), {controller: "jinda", action: "init", s: 'articles:xedit_article', article_id: article.id}, data: { confirm: "Please Confirm" }
|
21
|
+
|
@@ -28,8 +28,10 @@ class User
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def self.from_omniauth(auth)
|
31
|
-
|
32
|
-
|
31
|
+
# Rails now no longer support slice
|
32
|
+
# where(auth.slice(:uid, :provider, :email)).first_or_create do |user|
|
33
|
+
where(uid: auth.uid, provider: auth.provider, email: auth.info.email).first_or_create do |user|
|
34
|
+
case auth.provider
|
33
35
|
when 'identity'
|
34
36
|
identity = Identity.find auth.uid
|
35
37
|
user.code = identity.code
|
@@ -21,4 +21,6 @@
|
|
21
21
|
%li
|
22
22
|
= link_to "Refresh", "#", :onclick=>"window.location.replace('/')"
|
23
23
|
- if !login?
|
24
|
-
|
24
|
+
.login-box
|
25
|
+
= link_to image_tag( 'facebook-continue-button.png'), '/auth/facebook', rel: "external", class: "facebook-connect.social-button"
|
26
|
+
= link_to image_tag( 'google-continue-button.png'), '/auth/google_oauth2', rel: "external", class: "google-connect.social-button"
|
@@ -3,9 +3,24 @@
|
|
3
3
|
- unless m.role.blank?
|
4
4
|
- next unless login?
|
5
5
|
- next unless current_ma_user.role
|
6
|
-
|
6
|
+
-# next unless current_ma_user.role.upcase.split(',').include?(m.role.upcase)
|
7
|
+
-# ####################### Remove w space in role ###################
|
8
|
+
- next unless current_ma_user.role.upcase.split(",").map!(&:strip).include?(m.role.upcase)
|
9
|
+
|
7
10
|
%li
|
11
|
+
-# ########################### Main Display Menu ####################
|
8
12
|
= m.name
|
13
|
+
-# ##################################################################
|
14
|
+
-# Code to display current login user role and required role for menu
|
15
|
+
-# ##################################################################
|
16
|
+
|
17
|
+
-# if defined?(current_ma_user.role) && !current_ma_user.role.blank?
|
18
|
+
=# current_ma_user.role
|
19
|
+
-# if m.role?
|
20
|
+
=# m.role.upcase
|
21
|
+
|
22
|
+
-# ##################################################################
|
23
|
+
|
9
24
|
%ul
|
10
25
|
- m.services.asc(:seq).each do |s|
|
11
26
|
- next unless s.list
|
@@ -15,7 +30,7 @@
|
|
15
30
|
- unless s.role.blank?
|
16
31
|
- next unless login?
|
17
32
|
- next unless current_ma_user.role
|
18
|
-
- next unless current_ma_user.role.upcase.split(
|
33
|
+
- next unless current_ma_user.role.upcase.split(",").map!(&:strip).include?(s.role.upcase)
|
19
34
|
- if s.code.downcase=="link"
|
20
35
|
- name, url = s.name.split(":", 2)
|
21
36
|
- url.strip!
|
@@ -11,13 +11,3 @@
|
|
11
11
|
= link_to "Pending Tasks", "#", :onclick=>"location.hash='/jinda/pending'", "data-role"=>"button"
|
12
12
|
= link_to "Refresh", "#", :onclick=>"window.location.replace('/')", "data-role"=>"button"
|
13
13
|
= link_to "About", "#", :onclick=>"location.hash='#about'", "data-role"=>"button"
|
14
|
-
:javascript
|
15
|
-
function notice(msg) {
|
16
|
-
$("<div class='ui-loader ui-overlay-shadow ui-body-e ui-corner-all'><h1>"+ msg +"</h1></div>")
|
17
|
-
.css({ "display": "block", "opacity": 0.96, "top": $(window).scrollTop() + 100 })
|
18
|
-
.appendTo( $('div[data-id="main"]') )
|
19
|
-
.delay( 4000 )
|
20
|
-
.fadeOut( 400, function(){
|
21
|
-
$(this).remove();
|
22
|
-
});
|
23
|
-
}
|
@@ -14,17 +14,18 @@
|
|
14
14
|
%ul
|
15
15
|
%li Rubygems 2.4.1
|
16
16
|
%li Rails 5.1.4
|
17
|
-
%li rails new YOURAPP
|
17
|
+
%li rails new YOURAPP --skip-test-unit --skip-bundle --skip-active-record
|
18
|
+
%li (rails new YOURAPP -BOT)
|
18
19
|
|
19
20
|
|
20
21
|
%h2 Installation
|
21
22
|
%ul
|
22
|
-
%li gem 'jinda', '~> 0.
|
23
|
+
%li add gem 'jinda', '~> 0.1.1'
|
23
24
|
%li bundle
|
24
25
|
%li rails generate jinda:install
|
25
26
|
%li bundle
|
26
27
|
%li rails generate jinda:config
|
27
|
-
%li
|
28
|
+
%li rails jinda:seed, will create initial user:password admin:secret
|
28
29
|
%li when update app/jinda/index.mm, run rake jinda:update
|
29
30
|
|
30
31
|
%h2 Option: Themes available: Jinda_adminbsb, Jinda_adminlte
|
@@ -6,7 +6,7 @@
|
|
6
6
|
- next_step = 'end_form'
|
7
7
|
- if @help
|
8
8
|
%div(data-role="collapsible" data-theme="e" data-content-theme="c" data-mini="true")
|
9
|
-
%h3
|
9
|
+
%h3 Help
|
10
10
|
%p= markdown(@help)
|
11
11
|
= form_tag({ :action => next_step } , {:multipart => true, :onSubmit=>'return validate()', :class=>form_class, "data-ajax"=>"#{ajax?(@ui)}"}) do
|
12
12
|
= hidden_field_tag 'xmain_id', @xmain.id
|
@@ -8,7 +8,7 @@
|
|
8
8
|
= display_meta_tags
|
9
9
|
- if GMAP
|
10
10
|
= javascript_include_tag "http://maps.google.com/maps/api/js?sensor=false"
|
11
|
-
|
11
|
+
-# if ADSENSE
|
12
12
|
= render :partial => 'custom/adsense'
|
13
13
|
%body
|
14
14
|
= render :partial => "jinda/menu"
|
@@ -27,15 +27,15 @@
|
|
27
27
|
%div{"data-role" => "content"}
|
28
28
|
= yield
|
29
29
|
= render :partial => "jinda/static"
|
30
|
-
:javascript
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
30
|
+
/ :javascript
|
31
|
+
/ $(document).on("pagehide", 'div', function(e,ui) {
|
32
|
+
/ var page = $(e.target);
|
33
|
+
/ if(page.attr('data-cache') == 'never') {
|
34
|
+
/ page.remove();
|
35
|
+
/ }
|
36
|
+
/ });
|
37
|
+
/ $( document ).on( "pagechange", function(){
|
38
|
+
/ $.get("/jinda/ajax_notice", function(r) {$(r).appendTo('head').remove()});
|
39
|
+
/ });
|
40
40
|
|
41
41
|
/= raw handle_ma_notice
|
@@ -0,0 +1,155 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
require 'database_cleaner'
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
RSpec.describe ArticlesController, type: :controller do
|
7
|
+
|
8
|
+
|
9
|
+
let(:valid_input) {
|
10
|
+
{:title => "My Title", :text => "My Item", :user_id => "admin"}
|
11
|
+
}
|
12
|
+
|
13
|
+
let(:invalid_input) {
|
14
|
+
{:title => "", :text => "", :user_id => ""}
|
15
|
+
}
|
16
|
+
|
17
|
+
@user = User.new(:uid => "admin", :provider => "Facebook", :email => "1.0@kul.asia", :role=> "a,m")
|
18
|
+
|
19
|
+
|
20
|
+
$xvars = {}
|
21
|
+
$xvars["form_article"] = {}
|
22
|
+
|
23
|
+
$xvars["form_article"]["title"] = "AAAAAA"
|
24
|
+
$xvars["form_article"]["text"] = "AAAAAA"
|
25
|
+
$xvars["form_article"]["body"] = "AAAAA"
|
26
|
+
$xvars["user_id"] = @user.id
|
27
|
+
|
28
|
+
|
29
|
+
$xvars["select_article"] = {}
|
30
|
+
$xvars["select_article"] = nil
|
31
|
+
$xvars["p"] = {}
|
32
|
+
$nxvars = {}
|
33
|
+
$xvars["edit_article"] = {}
|
34
|
+
$xvars["edit_article"]["article"] = {}
|
35
|
+
$xvars["edit_article"]["article"]["title"] = "BBBBB"
|
36
|
+
$xvars["edit_article"]["article"]["text"] = "BBBBB"
|
37
|
+
$xvars["edit_article"]["article"]["keywords"] = "BBBBB"
|
38
|
+
$xvars["edit_article"]["article"]["body"] = "BBBBB"
|
39
|
+
$xvars["current_ma_user"] = @user
|
40
|
+
|
41
|
+
let(:valid_attributes) {
|
42
|
+
|
43
|
+
{title: $xvars["form_article"]["title"],
|
44
|
+
text: $xvars["form_article"]["text"],
|
45
|
+
keywords: $xvars["form_article"]["keywords"],
|
46
|
+
body: $xvars["form_article"]["body"],
|
47
|
+
user_id: $xvars["user_id"]}
|
48
|
+
}
|
49
|
+
|
50
|
+
let(:invalid_attributes) {
|
51
|
+
{}
|
52
|
+
}
|
53
|
+
|
54
|
+
let(:valid_session) { {} }
|
55
|
+
|
56
|
+
describe "GET #index" do
|
57
|
+
it "returns a success response" do
|
58
|
+
article = Article.create! valid_input
|
59
|
+
get :index, params: {}, session: valid_session
|
60
|
+
expect(response).to be_success
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe "GET #show" do
|
65
|
+
it "returns a success response" do
|
66
|
+
article = Article.create! valid_input
|
67
|
+
get :show, params: {id: article.to_param}, session: valid_session
|
68
|
+
expect(response).to be_success
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe "GET #edit" do
|
73
|
+
it "returns a success response" do
|
74
|
+
article = Article.create! valid_input
|
75
|
+
get :edit, params: {id: article.to_param}, session: valid_session
|
76
|
+
expect(response).to be_success
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe "POST #create" do
|
81
|
+
context "with valid params" do
|
82
|
+
it "creates a new Article" do
|
83
|
+
expect {
|
84
|
+
post :create, params: {article: valid_attributes}, session: valid_session
|
85
|
+
}.to change(Article, :count).by(1)
|
86
|
+
|
87
|
+
end
|
88
|
+
|
89
|
+
it "redirects to the created article" do
|
90
|
+
post :create, params: {article: valid_attributes}, session: valid_session
|
91
|
+
expect(response).to redirect_to(Article.last)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
context "with invalid params" do
|
96
|
+
it "returns a success response (i.e. to display the 'new' template)" do
|
97
|
+
post :create, params: {article: invalid_attributes}, session: valid_session
|
98
|
+
expect(response).not_to be_success
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
describe "PUT #update" do
|
104
|
+
context "with valid params" do
|
105
|
+
let(:new_attributes) {
|
106
|
+
$xvars
|
107
|
+
}
|
108
|
+
|
109
|
+
it "updates the requested article" do
|
110
|
+
article = Article.create! valid_attributes
|
111
|
+
$xvars["p"]["article_id"] = article.to_param
|
112
|
+
put :update, params: {id: article.to_param, article: new_attributes}, session: valid_session
|
113
|
+
article.reload
|
114
|
+
expect(article.title).to eq "BBBBB"
|
115
|
+
end
|
116
|
+
|
117
|
+
it "redirects to the article" do
|
118
|
+
article = Article.create! valid_attributes
|
119
|
+
$xvars["p"]["article_id"] = article.to_param
|
120
|
+
put :update, params: {id: article.to_param, article: new_attributes}, session: valid_session
|
121
|
+
expect(response).to redirect_to(article)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
context "with invalid params" do
|
126
|
+
it "returns a success response (i.e. to display the 'edit' template)" do
|
127
|
+
article = Article.create! valid_attributes
|
128
|
+
$xvars["p"]["article_id"] = article.to_param
|
129
|
+
put :update, params: {id: article.to_param, article: invalid_attributes}, session: valid_session
|
130
|
+
expect(response).not_to be_success
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
describe "DELETE #destroy" do
|
136
|
+
|
137
|
+
it "destroys the requested article" do
|
138
|
+
article = Article.create! valid_attributes
|
139
|
+
#current_ma_user = article.user_id
|
140
|
+
|
141
|
+
expect {
|
142
|
+
delete :destroy, params: {id: article.to_param}, session: valid_session
|
143
|
+
}.to change(Article, :count).by(-1)
|
144
|
+
end
|
145
|
+
|
146
|
+
it "redirects to the articles list" do
|
147
|
+
article = Article.create! valid_attributes
|
148
|
+
delete :destroy, params: {id: article.to_param}, session: valid_session
|
149
|
+
expect(response).to redirect_to(articles_url)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
if DatabaseCleaner.clean
|
153
|
+
puts "Cleaning Database ............................................"
|
154
|
+
end
|
155
|
+
end
|