jinda 0.7.0 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/app/assets/stylesheets/jinda.scss +185 -0
- data/app/controllers/concerns/jinda_run_concern.rb +6 -3
- data/app/views/jinda/index.html.haml +7 -7
- data/config/routes.rb +1 -1
- data/lib/generators/jinda/config_generator.rb +7 -6
- data/lib/generators/jinda/install_generator.rb +4 -4
- data/lib/generators/jinda/templates/Dockerfile +4 -2
- data/lib/generators/jinda/templates/app/controllers/jinda_org/sessions_controller.rb +4 -3
- data/lib/generators/jinda/templates/app/jinda/template/view.html.erb +18 -10
- data/lib/generators/jinda/templates/app/views/articles/_report.haml +32 -0
- data/lib/generators/jinda/templates/app/views/articles/edit.haml +22 -11
- data/lib/generators/jinda/templates/app/views/articles/edit_article/edit_article.html.erb +14 -12
- data/lib/generators/jinda/templates/app/views/articles/index.haml +3 -21
- data/lib/generators/jinda/templates/app/views/articles/my.haml +1 -16
- data/lib/generators/jinda/templates/app/views/articles/new_article/form_article.html.erb +1 -1
- data/lib/generators/jinda/templates/app/views/articles/show.html.haml +37 -21
- data/lib/generators/jinda/templates/app/views/identities/new.html.haml +32 -0
- data/lib/generators/jinda/templates/app/views/password_resets/new.html.haml +11 -0
- data/lib/generators/jinda/templates/app/views/sessions/new.html.haml +22 -0
- data/lib/generators/jinda/templates/docker-compose.yml +3 -2
- data/lib/generators/jinda/templates/entrypoint.sh +2 -1
- data/lib/jinda/version.rb +1 -1
- metadata +7 -20
- data/app/assets/stylesheets/jinda.css +0 -69
- data/lib/generators/jinda/templates/app/views/identities/new.html.erb +0 -37
- data/lib/generators/jinda/templates/app/views/password_resets/new.html.erb +0 -13
- data/lib/generators/jinda/templates/app/views/sessions/new.html.erb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d49fa24aa2e25021a773b5736e482b5d8478b3a96440c9655fa5f858b59ca4a4
|
4
|
+
data.tar.gz: 50fcacd6f6bb71d63703c1db158b2722b5a1302f98682308f0d22a905a5dadb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 401cb729865c3138c92668151db6af90f53e5e1c6d3583d35b9e0730e7be1b391a0d862cb9e810cf083678557e7ed3a0726749e44537883c0b9aa9c020e81f91
|
7
|
+
data.tar.gz: 6ef731fb5b4d44c08c6fdfe21a552a3c6a881fbd0ec6578fe78cb56d93903da34ec1bbf42ef9b7474893a6f47bc6f8f9930ff5bff8140c36afdae85d3ae974d7
|
data/README.md
CHANGED
@@ -15,7 +15,7 @@ Rails Application Generator using Freemind
|
|
15
15
|
These versions works for sure but others may do.
|
16
16
|
|
17
17
|
* Ruby 2.7.1
|
18
|
-
* Rails 6.0
|
18
|
+
* Rails 6.1.0
|
19
19
|
* MongoDB 6
|
20
20
|
* Freemind 1.0.1
|
21
21
|
|
@@ -40,7 +40,7 @@ app without ActiveRecord
|
|
40
40
|
|
41
41
|
## Add jinda to your Gemfile:
|
42
42
|
|
43
|
-
gem 'jinda', '~> 0.
|
43
|
+
gem 'jinda', '~> 0.7.0.1'
|
44
44
|
|
45
45
|
For Development (most updated)
|
46
46
|
|
@@ -0,0 +1,185 @@
|
|
1
|
+
// jinda.scss from jinda/app engine
|
2
|
+
#tooltip{
|
3
|
+
position:absolute;
|
4
|
+
border:1px solid #333;
|
5
|
+
background:#f7f5d1;
|
6
|
+
padding:2px 5px;
|
7
|
+
color:#333;
|
8
|
+
display:none;
|
9
|
+
}
|
10
|
+
#notice {
|
11
|
+
color: #F90609;
|
12
|
+
background-color: #EBD1D1;
|
13
|
+
font-weight: bolder;
|
14
|
+
padding-left: 10px;
|
15
|
+
}
|
16
|
+
.step {
|
17
|
+
/*display: table-row;*/
|
18
|
+
margin-top: 20px;
|
19
|
+
margin-bottom: 20px;
|
20
|
+
}
|
21
|
+
.steps_more {
|
22
|
+
font-size: 40px;
|
23
|
+
font-weight: bold;
|
24
|
+
vertical-align: middle;
|
25
|
+
color: white;
|
26
|
+
width: 80px;
|
27
|
+
height: 80px;
|
28
|
+
background:url(images/button_blue.png) no-repeat;
|
29
|
+
display: table-cell;
|
30
|
+
text-align:center;
|
31
|
+
}
|
32
|
+
.step_now {
|
33
|
+
font-size: 40px;
|
34
|
+
font-weight: bold;
|
35
|
+
vertical-align: middle;
|
36
|
+
color: white;
|
37
|
+
width: 80px;
|
38
|
+
height: 80px;
|
39
|
+
background:url(images/button_red.png) no-repeat;
|
40
|
+
display: table-cell;
|
41
|
+
text-align:center;
|
42
|
+
}
|
43
|
+
.steps_done {
|
44
|
+
font-size: 40px;
|
45
|
+
font-weight: bold;
|
46
|
+
vertical-align: middle;
|
47
|
+
color: white;
|
48
|
+
width: 80px;
|
49
|
+
height: 80px;
|
50
|
+
background:url(images/button_black.png) no-repeat;
|
51
|
+
display: table-cell;
|
52
|
+
text-align:center;
|
53
|
+
}
|
54
|
+
.sign_in {
|
55
|
+
width: 100%;
|
56
|
+
max-width: 410px;
|
57
|
+
padding: 15px;
|
58
|
+
margin: auto;
|
59
|
+
display: block;
|
60
|
+
|
61
|
+
}
|
62
|
+
|
63
|
+
#logreg-forms{
|
64
|
+
width:412px;
|
65
|
+
margin:10vh auto;
|
66
|
+
background-color:#f3f3f3;
|
67
|
+
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
|
68
|
+
transition: all 0.3s cubic-bezier(.25,.8,.25,1);
|
69
|
+
}
|
70
|
+
|
71
|
+
.module-table{
|
72
|
+
display: grid;
|
73
|
+
}
|
74
|
+
|
75
|
+
body {
|
76
|
+
background: #dfe7e9;
|
77
|
+
font-family: 'Roboto', sans-serif;
|
78
|
+
}
|
79
|
+
.form-control {
|
80
|
+
font-size: 16px;
|
81
|
+
transition: all 0.4s;
|
82
|
+
box-shadow: none;
|
83
|
+
}
|
84
|
+
.form-control:focus {
|
85
|
+
border-color: #5cb85c;
|
86
|
+
}
|
87
|
+
.form-control, .btn {
|
88
|
+
border-radius: 50px;
|
89
|
+
outline: none !important;
|
90
|
+
}
|
91
|
+
.form-group input {
|
92
|
+
border-width: 0px;
|
93
|
+
}
|
94
|
+
.signup-form {
|
95
|
+
width: 480px;
|
96
|
+
margin: 0 auto;
|
97
|
+
padding: 30px 0;
|
98
|
+
}
|
99
|
+
.signup-form form {
|
100
|
+
border-radius: 5px;
|
101
|
+
margin-bottom: 20px;
|
102
|
+
background: #fff;
|
103
|
+
box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
|
104
|
+
padding: 40px;
|
105
|
+
}
|
106
|
+
.signup-form a {
|
107
|
+
color: #5cb85c;
|
108
|
+
}
|
109
|
+
.signup-form h2 {
|
110
|
+
text-align: center;
|
111
|
+
font-size: 34px;
|
112
|
+
margin: 10px 0 15px;
|
113
|
+
}
|
114
|
+
.signup-form .hint-text {
|
115
|
+
color: #999;
|
116
|
+
text-align: center;
|
117
|
+
margin-bottom: 20px;
|
118
|
+
}
|
119
|
+
.signup-form .form-group {
|
120
|
+
margin-bottom: 20px;
|
121
|
+
}
|
122
|
+
.signup-form .btn {
|
123
|
+
font-size: 18px;
|
124
|
+
line-height: 26px;
|
125
|
+
font-weight: bold;
|
126
|
+
text-align: center;
|
127
|
+
}
|
128
|
+
.signup-btn {
|
129
|
+
text-align: center;
|
130
|
+
border-color: #5cb85c;
|
131
|
+
transition: all 0.4s;
|
132
|
+
}
|
133
|
+
.signup-btn:hover {
|
134
|
+
background: #5cb85c;
|
135
|
+
opacity: 0.8;
|
136
|
+
}
|
137
|
+
.or-seperator {
|
138
|
+
margin: 50px 0 15px;
|
139
|
+
text-align: center;
|
140
|
+
border-top: 1px solid #e0e0e0;
|
141
|
+
}
|
142
|
+
.or-seperator b {
|
143
|
+
padding: 0 10px;
|
144
|
+
width: 40px;
|
145
|
+
height: 40px;
|
146
|
+
font-size: 16px;
|
147
|
+
text-align: center;
|
148
|
+
line-height: 40px;
|
149
|
+
background: #fff;
|
150
|
+
display: inline-block;
|
151
|
+
border: 1px solid #e0e0e0;
|
152
|
+
border-radius: 50%;
|
153
|
+
position: relative;
|
154
|
+
top: -22px;
|
155
|
+
z-index: 1;
|
156
|
+
}
|
157
|
+
.social-btn .btn {
|
158
|
+
color: #fff;
|
159
|
+
margin: 10px 0 0 15px;
|
160
|
+
font-size: 15px;
|
161
|
+
border-radius: 50px;
|
162
|
+
font-weight: normal;
|
163
|
+
border: none;
|
164
|
+
transition: all 0.4s;
|
165
|
+
}
|
166
|
+
.social-btn .btn:first-child {
|
167
|
+
margin-left: 0;
|
168
|
+
}
|
169
|
+
.social-btn .btn:hover {
|
170
|
+
opacity: 0.8;
|
171
|
+
}
|
172
|
+
.social-btn .btn-primary {
|
173
|
+
background: #507cc0;
|
174
|
+
}
|
175
|
+
.social-btn .btn-info {
|
176
|
+
background: #64ccf1;
|
177
|
+
}
|
178
|
+
.social-btn .btn-danger {
|
179
|
+
background: #df4930;
|
180
|
+
}
|
181
|
+
.social-btn .btn i {
|
182
|
+
float: left;
|
183
|
+
margin: 3px 10px;
|
184
|
+
font-size: 20px;
|
185
|
+
}
|
@@ -18,9 +18,12 @@ module JindaRunConcern
|
|
18
18
|
# Check if help file available for this form
|
19
19
|
###############################################################################################
|
20
20
|
@help = File.read(fhelp) if File.exists?(fhelp)
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
f1= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.html.erb"
|
22
|
+
f2= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.html.haml"
|
23
|
+
if File.file?(f1)
|
24
|
+
@ui= File.read(f1)
|
25
|
+
elsif File.file?(f2)
|
26
|
+
@ui= File.read(f2)
|
24
27
|
else
|
25
28
|
# flash[:notice]= "Error: Can not find the view file for this controller"
|
26
29
|
ma_log "Error: Can not find the view file for this controller"
|
@@ -6,7 +6,7 @@
|
|
6
6
|
Dashboard
|
7
7
|
.content
|
8
8
|
%div.row::before
|
9
|
-
%div.col-lg-
|
9
|
+
%div.col-lg-4.col-md-4.col-xs-12
|
10
10
|
%div.small-box.bg-aqua
|
11
11
|
%div.inner
|
12
12
|
%b Current gems version found:
|
@@ -14,31 +14,31 @@
|
|
14
14
|
%li Ruby Version #{RUBY_VERSION }
|
15
15
|
%li Rails Version #{Rails.version }
|
16
16
|
%li gem jinda #{Gem.loaded_specs['jinda'].version}
|
17
|
-
%div.col-lg-
|
17
|
+
%div.col-lg-4.col-md-4.col-xs-12
|
18
18
|
%div.small-box.bg-green
|
19
19
|
%div.inner
|
20
20
|
%b Recently tested with:
|
21
21
|
%ul
|
22
22
|
%li Rubygems 2.7.1
|
23
|
-
%li Rails 6.0
|
24
|
-
%div.col-lg-
|
23
|
+
%li Rails 6.1.0
|
24
|
+
%div.col-lg-4.col-md-4.col-xs-12
|
25
25
|
%div.small-box.bg-yellow
|
26
26
|
%div.inner
|
27
27
|
%b Create New Rails:
|
28
28
|
%ul
|
29
29
|
%li rails new YOURAPP --skip-test-unit --skip-bundle --skip-active-record --skip-javascript --skip-turbolinks
|
30
30
|
%li (rails new YOURAPP -BOTJ)
|
31
|
-
%div.col-lg-
|
31
|
+
%div.col-lg-6.col-md-12.col-xs-12
|
32
32
|
%div.small-box.bg-red
|
33
33
|
%div.inner
|
34
34
|
%b Installation
|
35
35
|
%ul
|
36
|
-
%li add gem 'jinda'
|
36
|
+
%li add gem 'jinda' # to Gemfile then $ bundle
|
37
37
|
%li rails generate jinda:install, then bundle
|
38
38
|
%li rails generate jinda:config
|
39
39
|
%li rails jinda:seed, will create initial user:password admin:secret
|
40
40
|
%li when update app/jinda/index.mm, run rake jinda:update
|
41
|
-
%div.col-lg-
|
41
|
+
%div.col-lg-6.col-md-12.col-xs-12
|
42
42
|
%div.small-box.bg-blue
|
43
43
|
%div.inner
|
44
44
|
%b Option: Themes available: Jinda_adminbsb, Jinda_adminlte
|
data/config/routes.rb
CHANGED
@@ -12,7 +12,7 @@ Rails.application.routes.draw do
|
|
12
12
|
# end jinda method routes
|
13
13
|
post '/auth/:provider/callback' => 'sessions#create'
|
14
14
|
get '/auth/:provider/callback' => 'sessions#create'
|
15
|
-
get '/auth/failure' => 'sessions#
|
15
|
+
get '/auth/failure' => 'sessions#failure'
|
16
16
|
get '/logout' => 'sessions#destroy', :as => 'logout'
|
17
17
|
get '/articles/my' => 'articles#my'
|
18
18
|
get '/articles/my/destroy' => 'articles#destroy'
|
@@ -65,12 +65,13 @@ module Jinda
|
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
68
|
+
desc "Setup Dockerfile"
|
69
|
+
def setup_docker
|
70
|
+
puts " Setup Docker files"
|
71
|
+
FileUtils.cp source_paths[0]+"/"+"Dockerfile", "Dockerfile"
|
72
|
+
FileUtils.cp source_paths[0]+"/"+"docker-compose.yml", "docker-compose.yml"
|
73
|
+
FileUtils.cp source_paths[0]+"/"+"entrypoint.sh", "entrypoint.sh"
|
74
|
+
end
|
74
75
|
|
75
76
|
def finish
|
76
77
|
puts " configured omniauth.\n"
|
@@ -17,9 +17,9 @@ module Jinda
|
|
17
17
|
gem 'jquery-turbolinks', '2.1.0'
|
18
18
|
gem 'mongo', '2.11.3'
|
19
19
|
gem 'bson', '4.4.2'
|
20
|
-
gem 'mongoid', '
|
20
|
+
gem 'mongoid', git: 'git@github.com:kul1/mongoid.git'
|
21
21
|
gem 'turbolinks_render'
|
22
|
-
gem 'nokogiri', '1.
|
22
|
+
gem 'nokogiri', '~> 1.11.0'
|
23
23
|
gem 'haml', '~> 5.1', '>= 5.1.2'
|
24
24
|
gem 'haml-rails', '~> 2.0.1'
|
25
25
|
gem 'mail'
|
@@ -32,7 +32,7 @@ module Jinda
|
|
32
32
|
gem 'omniauth-identity', '~> 1.1.1'
|
33
33
|
gem 'omniauth-facebook', '6.0.0'
|
34
34
|
gem 'omniauth-google-oauth2', '0.8.0'
|
35
|
-
gem 'dotenv-rails'
|
35
|
+
gem 'dotenv-rails'
|
36
36
|
gem 'cloudinary', '1.13.2'
|
37
37
|
gem 'kaminari', '1.2.0'
|
38
38
|
gem 'kaminari-mongoid', '1.0.1'
|
@@ -53,7 +53,7 @@ module Jinda
|
|
53
53
|
gem 'selenium-webdriver'
|
54
54
|
gem 'rb-fsevent'
|
55
55
|
gem 'valid_attribute'
|
56
|
-
gem 'faker'
|
56
|
+
gem 'faker'
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
@@ -11,13 +11,15 @@ COPY . /myapp
|
|
11
11
|
|
12
12
|
# Set Rails environment to production
|
13
13
|
# ENV RAILS_ENV production
|
14
|
-
|
15
|
-
|
14
|
+
ENV RAILS_ENV development
|
15
|
+
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \
|
16
|
+
&& apt install -y nodejs
|
16
17
|
|
17
18
|
# Add a script to be executed every time the container starts.
|
18
19
|
COPY entrypoint.sh /usr/bin/
|
19
20
|
RUN chmod +x /usr/bin/entrypoint.sh
|
20
21
|
ENTRYPOINT ["entrypoint.sh"]
|
22
|
+
# EXPOSE 3000
|
21
23
|
EXPOSE 3000
|
22
24
|
|
23
25
|
# Start the main process.
|
@@ -5,6 +5,7 @@ class SessionsController < ApplicationController
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def failure
|
8
|
+
# redirect_to login_path, alert: "Authentication failed, please try again."
|
8
9
|
redirect_to login_path, alert: "Authentication failed, please try again."
|
9
10
|
end
|
10
11
|
|
@@ -21,8 +22,8 @@ class SessionsController < ApplicationController
|
|
21
22
|
cookies[:auth_token] = user.auth_token
|
22
23
|
end
|
23
24
|
# refresh_to root_path, :ma_notice => "Logged in" # Called by jinda_conroller
|
24
|
-
|
25
|
-
redirect_to articles_my_path
|
25
|
+
redirect_to root_path
|
26
|
+
# redirect_to articles_my_path
|
26
27
|
|
27
28
|
rescue
|
28
29
|
redirect_to root_path, :alert=> "Authentication failed, please try again."
|
@@ -38,6 +39,6 @@ class SessionsController < ApplicationController
|
|
38
39
|
|
39
40
|
def failure
|
40
41
|
ma_log "Authentication failed, please try again."
|
41
|
-
redirect_to
|
42
|
+
redirect_to new_session_path, :alert=> "Authentication failed, please try again."
|
42
43
|
end
|
43
44
|
end
|
@@ -1,11 +1,17 @@
|
|
1
|
+
|
2
|
+
<%- @title= 'Template for Document' %>
|
1
3
|
<%
|
2
4
|
doc = Jinda::Doc.new :issue_on=> Date.today, :process_at => Time.now
|
3
|
-
%>
|
4
|
-
|
5
|
-
|
6
|
-
<%=
|
7
|
-
|
8
|
-
|
5
|
+
%>
|
6
|
+
|
7
|
+
<h1>
|
8
|
+
<%= @title %>
|
9
|
+
</h1>
|
10
|
+
|
11
|
+
<div class = "module-table">
|
12
|
+
<%= fields_for doc do |f| %>
|
13
|
+
<%= f.label :category, "Category" %>
|
14
|
+
<%= f.select :category, [["Book", "book"], ["Letter", "letter"], ["Brochure", "brochure"]] %>
|
9
15
|
<%= f.label :issue_on, "Dated" %>
|
10
16
|
<%= f.date_field :issue_on, "blackDays"=>[0,6] %>
|
11
17
|
|
@@ -13,14 +19,16 @@
|
|
13
19
|
<%= f.file_field :dscan %>
|
14
20
|
<% end %>
|
15
21
|
<div>
|
16
|
-
|
17
|
-
|
22
|
+
<%= label_tag :description, "Description" %>
|
23
|
+
<%= text_field_tag :description %>
|
18
24
|
</div>
|
19
25
|
<div>
|
20
26
|
<%= label_tag :ma_display, "Display", :class=>"ui-input-text" %>
|
21
27
|
<%= select_tag :ma_display, options_for_select([['Yes', 'y'], ['No', 'n']],'y'), 'data-role'=>"slider" %>
|
22
28
|
</div>
|
23
29
|
<div>
|
24
|
-
|
25
|
-
|
30
|
+
<%= label_tag :keywords, "Search Keywords" %>
|
31
|
+
<%= text_field_tag :keywords %>
|
26
32
|
</div>
|
33
|
+
</div>
|
34
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
.box.box-info
|
2
|
+
.box-header.with-border
|
3
|
+
|
4
|
+
%h3.box-title
|
5
|
+
= @page_title
|
6
|
+
.label-warning
|
7
|
+
= flash[:notice]
|
8
|
+
.box-tools.pull-right
|
9
|
+
%button.btn.btn-box-tool{"data-widget" => "collapse", :type => "button"}
|
10
|
+
%i.fa.fa-minus
|
11
|
+
%button.btn.btn-box-tool{"data-widget" => "remove", :type => "button"}
|
12
|
+
%i.fa.fa-times
|
13
|
+
/ /.box-header
|
14
|
+
.box-body
|
15
|
+
.table-responsive
|
16
|
+
%table.table.no-margin
|
17
|
+
%thead
|
18
|
+
%tr
|
19
|
+
%th Title
|
20
|
+
%th Description
|
21
|
+
%th Created
|
22
|
+
%th Updated
|
23
|
+
%th Delete
|
24
|
+
%th Edit
|
25
|
+
- report.each do |article|
|
26
|
+
%tr
|
27
|
+
%td= link_to article.title, :controller=>"articles", :action=>"show", :article_id => article.id
|
28
|
+
%td= article.text.html_safe
|
29
|
+
%td= article.created_at.strftime('%m/%d/%Y')
|
30
|
+
%td= article.updated_at.strftime('%m/%d/%Y')
|
31
|
+
%td(align='center')= link_to image_tag('delete.png', style:'border:none; float:none;'), {controller: "articles", action: "destroy", article_id: article.id}, data: { confirm: "Please Confirm" }
|
32
|
+
%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" }
|
@@ -1,12 +1,23 @@
|
|
1
|
+
- @title= "Edit"
|
2
|
+
- @page_title = 'Edit'
|
3
|
+
.container
|
4
|
+
%div.row::before
|
5
|
+
%div.col-md-12
|
6
|
+
%h2.display-3.mt-5.pt-5
|
7
|
+
= @article.title
|
8
|
+
%hr
|
9
|
+
= @article.text
|
10
|
+
%h4.display-5
|
11
|
+
= @article.body.html_safe
|
1
12
|
|
2
|
-
|
3
|
-
.
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
+
.container
|
14
|
+
.card
|
15
|
+
= form_for @article, :html => {:class => "form-horizontal center"} , :article_id => @article.id do |f|
|
16
|
+
.form-group
|
17
|
+
= f.text_field :title, class: "form-control", :required => true
|
18
|
+
.form-group
|
19
|
+
= f.text_field :text, class: "form-control", :required => true
|
20
|
+
.form-group
|
21
|
+
= f.text_area :body, rows: 10, class: "form-control"
|
22
|
+
.form-group
|
23
|
+
= f.submit "Submit", class: "btn btn-default btn-success"
|
@@ -1,13 +1,15 @@
|
|
1
1
|
<%
|
2
|
-
|
3
|
-
%>
|
4
|
-
|
5
|
-
<%=
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
2
|
+
article = Article.find_by :id=> $xvars["select_article"]["title"]
|
3
|
+
%>
|
4
|
+
<div class ="module-table">
|
5
|
+
<%= fields_for article do |f| %>
|
6
|
+
<%= f.label :title, "Title" %>
|
7
|
+
<%= f.text_field :title %>
|
8
|
+
<%= f.label :text, "Text" %>
|
9
|
+
<%= f.text_field :text %>
|
10
|
+
<%= f.label :text, "Keywords" %>
|
11
|
+
<%= f.text_field :keywords %>
|
12
|
+
<%= f.label :body, "Body Content" %>
|
13
|
+
<%= f.text_area :body %>
|
14
|
+
<% end %>
|
15
|
+
</div>
|
@@ -1,23 +1,5 @@
|
|
1
1
|
- @title= "All Articles"
|
2
|
+
%p
|
3
|
+
- @page_title = 'All Articlces'
|
4
|
+
= render :partial => 'report', locals: { report: @articles}
|
2
5
|
= paginate @articles
|
3
|
-
%table{:id=>"pending-table", :width=>"100%"}
|
4
|
-
%tr{:style=>"color:black; background-color:#97BF60;"}
|
5
|
-
%th User
|
6
|
-
%th Title
|
7
|
-
%th Description
|
8
|
-
%th Created
|
9
|
-
%th Updated
|
10
|
-
%th Delete
|
11
|
-
- @articles.each do |article|
|
12
|
-
%tr
|
13
|
-
%td= article.user.code if article.user
|
14
|
-
%td= link_to article.title, :controller=>"articles", :action=>"show", :article_id=>article.id
|
15
|
-
%td= article.text
|
16
|
-
%td= article.created_at
|
17
|
-
%td= article.updated_at
|
18
|
-
%td(align='center')
|
19
|
-
- next unless login?
|
20
|
-
- unless current_ma_user.role.upcase.split(',').include?("A")
|
21
|
-
- next unless article.user
|
22
|
-
- next unless current_ma_user == article.user
|
23
|
-
= link_to image_tag('delete.png', style:'border:none; float:none;'), {controller: "articles", action: "destroy", article_id: article.id}, data: { confirm: "Please Confirm" }
|
@@ -1,20 +1,5 @@
|
|
1
1
|
- @title= "My Articles"
|
2
2
|
%p
|
3
3
|
- @page_title = 'All Articlces'
|
4
|
+
= render :partial => 'report', locals: { report: @my_articles}
|
4
5
|
= paginate @my_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
|
-
- @my_articles.each do |article|
|
14
|
-
%tr
|
15
|
-
%td= link_to article.title, :controller=>"articles", :action=>"show", :article_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;'), {controller: "articles", action: "destroy", article_id: article.id}, data: { confirm: "Please Confirm" }
|
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" }
|
@@ -1,26 +1,42 @@
|
|
1
1
|
- title @article.title
|
2
2
|
- description @article.text
|
3
3
|
- keywords @article.keywords
|
4
|
+
.container
|
5
|
+
%div.row::before
|
6
|
+
%div.col-md-12
|
7
|
+
%h2.display-3.mt-5.pt-5
|
8
|
+
= @article.title
|
9
|
+
= link_to image_tag('pencil.png', style:'border:none; float:right;', id: 'article_pen'), {controller: "articles", action: "edit", article_id: @article.id}, data: { confirm: "Please Confirm" }
|
10
|
+
%hr
|
11
|
+
= @article.text
|
12
|
+
%h4.display-5
|
13
|
+
= @article.body.html_safe
|
14
|
+
- @comments.each do |comment|
|
15
|
+
%div#article-comment.ui-corner-all
|
16
|
+
.col-md-10.col-sm-12
|
17
|
+
%div.small-box.bg-gray
|
18
|
+
%div.inner
|
19
|
+
%div.font-weight-light
|
20
|
+
Author:
|
21
|
+
%b= comment.user.code if comment.user
|
22
|
+
%div#comment-body
|
23
|
+
%i= comment.body
|
24
|
+
%hr
|
4
25
|
|
5
|
-
|
6
|
-
|
7
|
-
#article-title= @article.title
|
26
|
+
.container
|
27
|
+
.card
|
8
28
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
= f.label :body, "Comment"
|
24
|
-
= f.text_area :body
|
25
|
-
= f.hidden_field :user_id, :value => current_ma_user
|
26
|
-
= f.submit
|
29
|
+
- if login?
|
30
|
+
%h4.display-5
|
31
|
+
Add a comment:
|
32
|
+
= form_with(model: [@article, Comment.new], local: true) do |f|
|
33
|
+
.form-group
|
34
|
+
= f.hidden_field :article_id, :value => @article.id
|
35
|
+
.form-group
|
36
|
+
= f.label :body, "Comment"
|
37
|
+
.form-group
|
38
|
+
= f.text_area :body, rows: 5, class: "form-control"
|
39
|
+
.form-group
|
40
|
+
= f.hidden_field :user_id, :value => current_ma_user
|
41
|
+
.form-group
|
42
|
+
= f.submit "Submit", class: "btn btn-default btn-success"
|
@@ -0,0 +1,32 @@
|
|
1
|
+
.container
|
2
|
+
.signup-form
|
3
|
+
- @title= 'Sign Up'
|
4
|
+
= form_tag "/auth/identity/register", {'data-ajax'=>'false'} do
|
5
|
+
%h1.h3.mb-3.font-weight-normal{:style => "text-align: center"} Sign Up
|
6
|
+
.sign_in
|
7
|
+
.label-warning
|
8
|
+
= flash[:alert]
|
9
|
+
- if @identity && @identity.errors.any?
|
10
|
+
.error_messages
|
11
|
+
%h3
|
12
|
+
= pluralize(@identity.errors.count, "error")
|
13
|
+
prohibited this account from being saved:
|
14
|
+
%ul
|
15
|
+
- @identity.errors.full_messages.each do |msg|
|
16
|
+
%li= msg
|
17
|
+
.form-group.form-control
|
18
|
+
= label_tag :code, 'Username'
|
19
|
+
= text_field_tag :code, @identity.try(:code)
|
20
|
+
.form-group.form-control
|
21
|
+
= label_tag :email
|
22
|
+
= text_field_tag :email, @identity.try(:email)
|
23
|
+
.form-group.form-control
|
24
|
+
= label_tag :password, 'Password'
|
25
|
+
= password_field_tag :password
|
26
|
+
.form-group.form-control
|
27
|
+
= label_tag :password_confirmation, 'Confirm password'
|
28
|
+
= password_field_tag :password_confirmation
|
29
|
+
%button.btn.btn-success.btn-block.actions{:type => "submit"}
|
30
|
+
%i.fas.fa-sign-up-alt
|
31
|
+
Sign Up
|
32
|
+
|
@@ -0,0 +1,11 @@
|
|
1
|
+
.container
|
2
|
+
.signup-form
|
3
|
+
.sign_in
|
4
|
+
= form_tag password_resets_path, :method => :post do
|
5
|
+
.form-group.form-control
|
6
|
+
= label_tag :email
|
7
|
+
= text_field_tag :email, params[:email]
|
8
|
+
%button.btn.btn-success.btn-block.actions{:type => "submit"}
|
9
|
+
%i.fas.fa-sign-in-alt
|
10
|
+
Reset Password
|
11
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
.container
|
2
|
+
.signup-form
|
3
|
+
= form_tag "/auth/identity/callback", {'data-ajax'=>'false'} do
|
4
|
+
%h1.h3.mb-3.font-weight-normal{:style => "text-align: center"} Sign in
|
5
|
+
.sign_in
|
6
|
+
.label-warning
|
7
|
+
= flash[:alert]
|
8
|
+
.form-group.form-control
|
9
|
+
= label_tag :auth_key, "User name"
|
10
|
+
= text_field_tag :auth_key
|
11
|
+
.form-group.form-control
|
12
|
+
= label_tag :password, "Password"
|
13
|
+
= password_field_tag :password
|
14
|
+
.form-group
|
15
|
+
= label_tag :remember_me
|
16
|
+
= check_box_tag :remember_me, 1, params.permit[:remember_me]
|
17
|
+
%button.btn.btn-success.btn-block.actions{:type => "submit"}
|
18
|
+
%i.fas.fa-sign-in-alt
|
19
|
+
Sign in
|
20
|
+
= link_to 'Forgotten password?', new_password_reset_path, data: {icon: 'info', mini: 'true', role: 'button'}
|
21
|
+
%hr/
|
22
|
+
|
@@ -1,7 +1,8 @@
|
|
1
|
-
version: '3'
|
1
|
+
version: '3.5'
|
2
2
|
services:
|
3
3
|
web:
|
4
4
|
build: .
|
5
|
+
env_file: .env
|
5
6
|
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
|
6
7
|
volumes:
|
7
8
|
- .:/myapp
|
@@ -13,4 +14,4 @@ services:
|
|
13
14
|
mongodb:
|
14
15
|
image: mongo
|
15
16
|
ports:
|
16
|
-
- "
|
17
|
+
- "27888:27017"
|
@@ -5,8 +5,9 @@ cp /myapp/config/mongoid.yml-docker /myapp/config/mongoid.yml
|
|
5
5
|
# Remove a potentially pre-existing server.pid for Rails.
|
6
6
|
rm -f /myapp/tmp/pids/server.pid
|
7
7
|
# Compile the assets
|
8
|
-
|
8
|
+
bundle exec rake assets:precompile
|
9
9
|
# Add admin user
|
10
|
+
# rake db:seed
|
10
11
|
rake jinda:seed
|
11
12
|
# Then exec the container's main process (what's set as CMD in the Dockerfile).
|
12
13
|
exec "$@"
|
data/lib/jinda/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jinda
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Prateep Kul
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-01-
|
12
|
+
date: 2021-01-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -59,20 +59,6 @@ dependencies:
|
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 7.1.0
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: rails
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "<"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '6.1'
|
69
|
-
type: :runtime
|
70
|
-
prerelease: false
|
71
|
-
version_requirements: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "<"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '6.1'
|
76
62
|
description: 'Generate Rails workflow from mind map: Freemind'
|
77
63
|
email:
|
78
64
|
- 1.0@kul.asia
|
@@ -180,7 +166,7 @@ files:
|
|
180
166
|
- app/assets/stylesheets/images/icons-36-black.png
|
181
167
|
- app/assets/stylesheets/images/icons-36-white.png
|
182
168
|
- app/assets/stylesheets/images/indicator.gif
|
183
|
-
- app/assets/stylesheets/jinda.
|
169
|
+
- app/assets/stylesheets/jinda.scss
|
184
170
|
- app/assets/stylesheets/jinda_jqm.css.scss
|
185
171
|
- app/assets/stylesheets/jquery.mobile-1.2.1.css
|
186
172
|
- app/assets/stylesheets/jquery.mobile.datebox.css
|
@@ -285,6 +271,7 @@ files:
|
|
285
271
|
- lib/generators/jinda/templates/app/views/admins/edit_role/edit_role.html.erb
|
286
272
|
- lib/generators/jinda/templates/app/views/admins/edit_role/select_user.html.erb
|
287
273
|
- lib/generators/jinda/templates/app/views/api/v1/note.haml
|
274
|
+
- lib/generators/jinda/templates/app/views/articles/_report.haml
|
288
275
|
- lib/generators/jinda/templates/app/views/articles/edit.haml
|
289
276
|
- lib/generators/jinda/templates/app/views/articles/edit_article/edit_article.html.erb
|
290
277
|
- lib/generators/jinda/templates/app/views/articles/edit_article/select_article.html.erb
|
@@ -305,7 +292,7 @@ files:
|
|
305
292
|
- lib/generators/jinda/templates/app/views/docs/edit/select_note.html.erb
|
306
293
|
- lib/generators/jinda/templates/app/views/docs/index.haml
|
307
294
|
- lib/generators/jinda/templates/app/views/docs/my.haml
|
308
|
-
- lib/generators/jinda/templates/app/views/identities/new.html.
|
295
|
+
- lib/generators/jinda/templates/app/views/identities/new.html.haml
|
309
296
|
- lib/generators/jinda/templates/app/views/jinda_mailer/gmail.html.erb
|
310
297
|
- lib/generators/jinda/templates/app/views/layouts/_head.html.erb
|
311
298
|
- lib/generators/jinda/templates/app/views/layouts/_meta_tag.html.erb
|
@@ -343,8 +330,8 @@ files:
|
|
343
330
|
- lib/generators/jinda/templates/app/views/notes/show.haml
|
344
331
|
- lib/generators/jinda/templates/app/views/notes/xedit/edit_note.html.erb
|
345
332
|
- lib/generators/jinda/templates/app/views/password_resets/edit.html.erb
|
346
|
-
- lib/generators/jinda/templates/app/views/password_resets/new.html.
|
347
|
-
- lib/generators/jinda/templates/app/views/sessions/new.html.
|
333
|
+
- lib/generators/jinda/templates/app/views/password_resets/new.html.haml
|
334
|
+
- lib/generators/jinda/templates/app/views/sessions/new.html.haml
|
348
335
|
- lib/generators/jinda/templates/app/views/sitemap/index.xml.haml
|
349
336
|
- lib/generators/jinda/templates/app/views/user_mailer/password_reset.html.haml
|
350
337
|
- lib/generators/jinda/templates/app/views/user_mailer/password_reset.text.erb
|
@@ -1,69 +0,0 @@
|
|
1
|
-
#tooltip{
|
2
|
-
position:absolute;
|
3
|
-
border:1px solid #333;
|
4
|
-
background:#f7f5d1;
|
5
|
-
padding:2px 5px;
|
6
|
-
color:#333;
|
7
|
-
display:none;
|
8
|
-
}
|
9
|
-
#notice {
|
10
|
-
color: #F90609;
|
11
|
-
background-color: #EBD1D1;
|
12
|
-
font-weight: bolder;
|
13
|
-
padding-left: 10px;
|
14
|
-
}
|
15
|
-
.step {
|
16
|
-
/*display: table-row;*/
|
17
|
-
margin-top: 20px;
|
18
|
-
margin-bottom: 20px;
|
19
|
-
}
|
20
|
-
.steps_more {
|
21
|
-
font-size: 40px;
|
22
|
-
font-weight: bold;
|
23
|
-
vertical-align: middle;
|
24
|
-
color: white;
|
25
|
-
width: 80px;
|
26
|
-
height: 80px;
|
27
|
-
background:url(images/button_blue.png) no-repeat;
|
28
|
-
display: table-cell;
|
29
|
-
text-align:center;
|
30
|
-
}
|
31
|
-
.step_now {
|
32
|
-
font-size: 40px;
|
33
|
-
font-weight: bold;
|
34
|
-
vertical-align: middle;
|
35
|
-
color: white;
|
36
|
-
width: 80px;
|
37
|
-
height: 80px;
|
38
|
-
background:url(images/button_red.png) no-repeat;
|
39
|
-
display: table-cell;
|
40
|
-
text-align:center;
|
41
|
-
}
|
42
|
-
.steps_done {
|
43
|
-
font-size: 40px;
|
44
|
-
font-weight: bold;
|
45
|
-
vertical-align: middle;
|
46
|
-
color: white;
|
47
|
-
width: 80px;
|
48
|
-
height: 80px;
|
49
|
-
background:url(images/button_black.png) no-repeat;
|
50
|
-
display: table-cell;
|
51
|
-
text-align:center;
|
52
|
-
}
|
53
|
-
.sign_in {
|
54
|
-
width: 100%;
|
55
|
-
max-width: 410px;
|
56
|
-
padding: 15px;
|
57
|
-
margin: auto;
|
58
|
-
display: block;
|
59
|
-
|
60
|
-
}
|
61
|
-
|
62
|
-
#logreg-forms{
|
63
|
-
width:412px;
|
64
|
-
margin:10vh auto;
|
65
|
-
background-color:#f3f3f3;
|
66
|
-
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
|
67
|
-
transition: all 0.3s cubic-bezier(.25,.8,.25,1);
|
68
|
-
}
|
69
|
-
|
@@ -1,37 +0,0 @@
|
|
1
|
-
<div class="container">
|
2
|
-
<div id="logreg-forms">
|
3
|
-
<div class="sign_in">
|
4
|
-
<%- @title= 'Sign Up' %>
|
5
|
-
<%= form_tag "/auth/identity/register", {'data-ajax'=>'false'} do %>
|
6
|
-
<h1 class="h3 mb-3 font-weight-normal" style="text-align: center"> Sign Up</h1>
|
7
|
-
<% if @identity && @identity.errors.any? %>
|
8
|
-
<div class="error_messages">
|
9
|
-
<h2><%= pluralize(@identity.errors.count, "error") %> prohibited this account from being saved:</h2>
|
10
|
-
<ul>
|
11
|
-
<% @identity.errors.full_messages.each do |msg| %>
|
12
|
-
<li><%= msg %></li>
|
13
|
-
<% end %>
|
14
|
-
</ul>
|
15
|
-
</div>
|
16
|
-
<% end %>
|
17
|
-
<div class="field form-control" data-role="fieldcontain">
|
18
|
-
<%= label_tag :code, 'Username' %>
|
19
|
-
<%= text_field_tag :code, @identity.try(:code) %>
|
20
|
-
</div>
|
21
|
-
<div class="field form-control" data-role="fieldcontain">
|
22
|
-
<%= label_tag :email %>
|
23
|
-
<%= text_field_tag :email, @identity.try(:email) %>
|
24
|
-
</div>
|
25
|
-
<div class="field form-control" data-role="fieldcontain">
|
26
|
-
<%= label_tag :password, 'Password' %>
|
27
|
-
<%= password_field_tag :password %>
|
28
|
-
</div>
|
29
|
-
<div class="field form-control" data-role="fieldcontain">
|
30
|
-
<%= label_tag :password_confirmation, 'Confirm password' %>
|
31
|
-
<%= password_field_tag :password_confirmation %>
|
32
|
-
</div>
|
33
|
-
<button class="btn btn-warning btn-block actions" type="submit"><i class="fas fa-sign-up-alt"></i> Sign Up</button>
|
34
|
-
<% end %>
|
35
|
-
</div>
|
36
|
-
</div>
|
37
|
-
</div>
|
@@ -1,13 +0,0 @@
|
|
1
|
-
<div class="container">
|
2
|
-
<div id="logreg-forms">
|
3
|
-
<div class="sign_in">
|
4
|
-
<%= form_tag password_resets_path, :method => :post do %>
|
5
|
-
<div class="field">
|
6
|
-
<%= label_tag :email %>
|
7
|
-
<%= text_field_tag :email, params[:email] %>
|
8
|
-
</div>
|
9
|
-
<button class="btn btn-success btn-block actions" type="submit"><i class="fas fa-sign-in-alt"></i> Reset Password</button>
|
10
|
-
<% end %>
|
11
|
-
</div>
|
12
|
-
</div>
|
13
|
-
</div>
|
@@ -1,26 +0,0 @@
|
|
1
|
-
<div class="container">
|
2
|
-
<div id="logreg-forms">
|
3
|
-
<div class="sign_in">
|
4
|
-
|
5
|
-
<%= form_tag "/auth/identity/callback", {'data-ajax'=>'false'} do %>
|
6
|
-
<h1 class="h3 mb-3 font-weight-normal" style="text-align: center"> Sign in</h1>
|
7
|
-
<div class="form-control" data-role="fieldcontain">
|
8
|
-
<%= label_tag :auth_key, "User name" %>
|
9
|
-
<%= text_field_tag :auth_key %>
|
10
|
-
</div>
|
11
|
-
<div class="form-control" data-role="fieldcontain">
|
12
|
-
<%= label_tag :password, "Password" %>
|
13
|
-
<%= password_field_tag :password %>
|
14
|
-
</div>
|
15
|
-
<div class="field" data-role="fieldcontain" data-icon="info">
|
16
|
-
<%= label_tag :remember_me %>
|
17
|
-
<%= check_box_tag :remember_me, 1, params.permit[:remember_me] %>
|
18
|
-
</div>
|
19
|
-
|
20
|
-
<button class="btn btn-success btn-block actions" type="submit"><i class="fas fa-sign-in-alt"></i> Sign in</button>
|
21
|
-
<%= link_to 'Forgotten password?', new_password_reset_path, data: {icon: 'info', mini: 'true', role: 'button'} %>
|
22
|
-
<hr>
|
23
|
-
<% end %>
|
24
|
-
</div>
|
25
|
-
</div>
|
26
|
-
</div>
|