phcdevworks_scripts 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +35 -0
  4. data/Rakefile +32 -0
  5. data/app/assets/config/phcdevworks_scripts_manifest.js +1 -0
  6. data/app/assets/javascripts/phcdevworks_scripts/application.js +2 -0
  7. data/app/assets/javascripts/phcdevworks_scripts/script/versions.coffee +3 -0
  8. data/app/assets/stylesheets/phcdevworks_scripts/application.scss +2 -0
  9. data/app/assets/stylesheets/phcdevworks_scripts/script/authors.css +4 -0
  10. data/app/assets/stylesheets/phcdevworks_scripts/script/extensions.css +4 -0
  11. data/app/assets/stylesheets/phcdevworks_scripts/script/listings.css +4 -0
  12. data/app/assets/stylesheets/phcdevworks_scripts/script/urls.css +4 -0
  13. data/app/assets/stylesheets/phcdevworks_scripts/script/versions.scss +3 -0
  14. data/app/assets/stylesheets/phcdevworks_scripts/snippet/posts.css +4 -0
  15. data/app/assets/stylesheets/phcdevworks_scripts/snippet/urls.css +4 -0
  16. data/app/controllers/phcdevworks_scripts/application_controller.rb +13 -0
  17. data/app/controllers/phcdevworks_scripts/script/authors_controller.rb +82 -0
  18. data/app/controllers/phcdevworks_scripts/script/extensions_controller.rb +82 -0
  19. data/app/controllers/phcdevworks_scripts/script/listings_controller.rb +82 -0
  20. data/app/controllers/phcdevworks_scripts/script/urls_controller.rb +77 -0
  21. data/app/controllers/phcdevworks_scripts/script/versions_controller.rb +82 -0
  22. data/app/controllers/phcdevworks_scripts/snippet/posts_controller.rb +80 -0
  23. data/app/controllers/phcdevworks_scripts/snippet/urls_controller.rb +76 -0
  24. data/app/helpers/phcdevworks_scripts/application_helper.rb +4 -0
  25. data/app/helpers/phcdevworks_scripts/script/authors_helper.rb +4 -0
  26. data/app/helpers/phcdevworks_scripts/script/extensions_helper.rb +4 -0
  27. data/app/helpers/phcdevworks_scripts/script/listings_helper.rb +4 -0
  28. data/app/helpers/phcdevworks_scripts/script/urls_helper.rb +4 -0
  29. data/app/helpers/phcdevworks_scripts/script/versions_helper.rb +4 -0
  30. data/app/helpers/phcdevworks_scripts/snippet/posts_helper.rb +4 -0
  31. data/app/helpers/phcdevworks_scripts/snippet/urls_helper.rb +4 -0
  32. data/app/jobs/phcdevworks_scripts/application_job.rb +4 -0
  33. data/app/mailers/phcdevworks_scripts/application_mailer.rb +6 -0
  34. data/app/models/phcdevworks_scripts/application_record.rb +5 -0
  35. data/app/models/phcdevworks_scripts/author_versions.rb +5 -0
  36. data/app/models/phcdevworks_scripts/extension_versions.rb +5 -0
  37. data/app/models/phcdevworks_scripts/listing_versions.rb +5 -0
  38. data/app/models/phcdevworks_scripts/script.rb +7 -0
  39. data/app/models/phcdevworks_scripts/script/author.rb +33 -0
  40. data/app/models/phcdevworks_scripts/script/extension.rb +32 -0
  41. data/app/models/phcdevworks_scripts/script/listing.rb +38 -0
  42. data/app/models/phcdevworks_scripts/script/url.rb +24 -0
  43. data/app/models/phcdevworks_scripts/script/version.rb +26 -0
  44. data/app/models/phcdevworks_scripts/scriptversion_versions.rb +5 -0
  45. data/app/models/phcdevworks_scripts/snippet.rb +7 -0
  46. data/app/models/phcdevworks_scripts/snippet/post.rb +25 -0
  47. data/app/models/phcdevworks_scripts/snippet/url.rb +16 -0
  48. data/app/models/phcdevworks_scripts/url_versions.rb +5 -0
  49. data/app/views/layouts/phcdevworks_scripts/application.html.erb +94 -0
  50. data/app/views/layouts/phcdevworks_scripts/components/backend/footer/_footer.html.erb +16 -0
  51. data/app/views/layouts/phcdevworks_scripts/components/backend/navigation/_top_menu.html.erb +37 -0
  52. data/app/views/layouts/phcdevworks_scripts/components/backend/sidebars/_side_menu.html.erb +183 -0
  53. data/app/views/phcdevworks_scripts/script/authors/_form.html.erb +32 -0
  54. data/app/views/phcdevworks_scripts/script/authors/edit.html.erb +37 -0
  55. data/app/views/phcdevworks_scripts/script/authors/index.html.erb +63 -0
  56. data/app/views/phcdevworks_scripts/script/authors/new.html.erb +37 -0
  57. data/app/views/phcdevworks_scripts/script/authors/show.html.erb +49 -0
  58. data/app/views/phcdevworks_scripts/script/extensions/_form.html.erb +28 -0
  59. data/app/views/phcdevworks_scripts/script/extensions/edit.html.erb +37 -0
  60. data/app/views/phcdevworks_scripts/script/extensions/index.html.erb +59 -0
  61. data/app/views/phcdevworks_scripts/script/extensions/new.html.erb +37 -0
  62. data/app/views/phcdevworks_scripts/script/extensions/show.html.erb +49 -0
  63. data/app/views/phcdevworks_scripts/script/listings/_form.html.erb +62 -0
  64. data/app/views/phcdevworks_scripts/script/listings/edit.html.erb +35 -0
  65. data/app/views/phcdevworks_scripts/script/listings/index.html.erb +62 -0
  66. data/app/views/phcdevworks_scripts/script/listings/new.html.erb +36 -0
  67. data/app/views/phcdevworks_scripts/script/listings/show.html.erb +48 -0
  68. data/app/views/phcdevworks_scripts/script/urls/_form.html.erb +36 -0
  69. data/app/views/phcdevworks_scripts/script/urls/edit.html.erb +36 -0
  70. data/app/views/phcdevworks_scripts/script/urls/index.html.erb +61 -0
  71. data/app/views/phcdevworks_scripts/script/urls/new.html.erb +37 -0
  72. data/app/views/phcdevworks_scripts/script/urls/show.html.erb +49 -0
  73. data/app/views/phcdevworks_scripts/script/versions/_form.html.erb +20 -0
  74. data/app/views/phcdevworks_scripts/script/versions/edit.html.erb +37 -0
  75. data/app/views/phcdevworks_scripts/script/versions/index.html.erb +57 -0
  76. data/app/views/phcdevworks_scripts/script/versions/new.html.erb +37 -0
  77. data/app/views/phcdevworks_scripts/script/versions/show.html.erb +49 -0
  78. data/app/views/phcdevworks_scripts/snippet/posts/_form.html.erb +26 -0
  79. data/app/views/phcdevworks_scripts/snippet/posts/edit.html.erb +39 -0
  80. data/app/views/phcdevworks_scripts/snippet/posts/index.html.erb +68 -0
  81. data/app/views/phcdevworks_scripts/snippet/posts/new.html.erb +39 -0
  82. data/app/views/phcdevworks_scripts/snippet/posts/show.html.erb +71 -0
  83. data/app/views/phcdevworks_scripts/snippet/urls/_form.html.erb +22 -0
  84. data/app/views/phcdevworks_scripts/snippet/urls/edit.html.erb +39 -0
  85. data/app/views/phcdevworks_scripts/snippet/urls/index.html.erb +66 -0
  86. data/app/views/phcdevworks_scripts/snippet/urls/new.html.erb +39 -0
  87. data/app/views/phcdevworks_scripts/snippet/urls/show.html.erb +71 -0
  88. data/config/initializers/friendly_id.rb +107 -0
  89. data/config/routes.rb +32 -0
  90. data/db/migrate/20170509002355_create_phcdevworks_scripts_friendly_id_slugs.rb +18 -0
  91. data/db/migrate/20170517064030_create_phcdevworks_scripts_extension_versions.rb +17 -0
  92. data/db/migrate/20170517064049_create_phcdevworks_scripts_listing_versions.rb +17 -0
  93. data/db/migrate/20170517064114_create_phcdevworks_scripts_scriptversion_versions.rb +17 -0
  94. data/db/migrate/20170517064150_create_phcdevworks_scripts_url_versions.rb +17 -0
  95. data/db/migrate/20170517064208_create_phcdevworks_scripts_author_versions.rb +17 -0
  96. data/db/migrate/20170517064427_create_phcdevworks_scripts_licence_versions.rb +17 -0
  97. data/db/migrate/20190818022002_create_phcdevworks_scripts_snippet_posts.rb +16 -0
  98. data/db/migrate/20190818022024_create_phcdevworks_scripts_snippet_urls.rb +17 -0
  99. data/db/migrate/20190818022939_create_phcdevworks_scripts_script_authors.rb +18 -0
  100. data/db/migrate/20190818023353_create_phcdevworks_scripts_script_listings.rb +27 -0
  101. data/db/migrate/20190818023709_create_phcdevworks_scripts_script_extensions.rb +17 -0
  102. data/db/migrate/20190818023911_create_phcdevworks_scripts_script_urls.rb +21 -0
  103. data/db/migrate/20190818031653_create_phcdevworks_scripts_script_versions.rb +15 -0
  104. data/lib/phcdevworks_scripts.rb +5 -0
  105. data/lib/phcdevworks_scripts/engine.rb +33 -0
  106. data/lib/phcdevworks_scripts/version.rb +3 -0
  107. data/lib/tasks/phcdevworks_scripts_tasks.rake +4 -0
  108. metadata +352 -0
@@ -0,0 +1,82 @@
1
+ require_dependency "phcdevworks_scripts/application_controller"
2
+
3
+ module PhcdevworksScripts
4
+ class Script::VersionsController < ApplicationController
5
+
6
+ # Filters & Security
7
+ #include PhcdevworksCore::PhcpluginsHelper
8
+ before_action :authenticate_user!
9
+ before_action :set_paper_trail_whodunnit
10
+ before_action :set_script_version, only: [:show, :edit, :update, :destroy]
11
+
12
+ # GET /script/versions
13
+ def index
14
+ @script_versions = Script::Version.all
15
+ end
16
+
17
+ # GET /script/versions/1
18
+ def show
19
+ @script_versions = Script::Version.friendly.find(params[:id])
20
+ @versions = PhcdevworksScripts::ScriptversionVersions.where(item_id: params[:id], item_type: 'PhcdevworksScripts::Script::Version')
21
+ end
22
+
23
+ # GET /script/versions/new
24
+ def new
25
+ @script_version = Script::Version.new
26
+ end
27
+
28
+ # GET /script/versions/1/edit
29
+ def edit
30
+ end
31
+
32
+ # POST /script/versions
33
+ def create
34
+ @script_version = Script::Version.new(script_version_params)
35
+ @script_version.user_id = current_user.id
36
+ respond_to do |format|
37
+ if @script_version.save
38
+ format.html { redirect_to script_versions_path, :flash => { :success => 'Script Version has been Added.' }}
39
+ format.json { render :show, status: :created, location: @script_version }
40
+ else
41
+ format.html { render :new }
42
+ format.json { render json: @script_version.errors, status: :unprocessable_entity }
43
+ end
44
+ end
45
+ end
46
+
47
+ # PATCH/PUT /script/versions/1
48
+ def update
49
+ respond_to do |format|
50
+ if @script_version.update(script_version_params)
51
+ format.html { redirect_to script_versions_path, :flash => { :notice => 'Script Version Name has been Updated.' }}
52
+ format.json { render :show, status: :ok, location: @script_version }
53
+ else
54
+ format.html { render :edit }
55
+ format.json { render json: @script_version.errors, status: :unprocessable_entity }
56
+ end
57
+ end
58
+ end
59
+
60
+ # DELETE /script/versions/1
61
+ def destroy
62
+ @script_version.destroy
63
+ respond_to do |format|
64
+ format.html { redirect_to script_versions_path, :flash => { :error => 'Script Version and Connections have all been Removed.' }}
65
+ format.json { head :no_content }
66
+ end
67
+ end
68
+
69
+ private
70
+
71
+ # Callback
72
+ def set_script_version
73
+ @script_version = Script::Version.find(params[:id])
74
+ end
75
+
76
+ # Whitelist
77
+ def script_version_params
78
+ params.require(:script_version).permit(:script_version_number)
79
+ end
80
+
81
+ end
82
+ end
@@ -0,0 +1,80 @@
1
+ require_dependency "phcdevworks_scripts/application_controller"
2
+
3
+ module PhcdevworksScripts
4
+ class Snippet::PostsController < ApplicationController
5
+
6
+ # Filters & Security
7
+ #include PhcdevworksCore::PhcpluginsHelper
8
+ before_action :authenticate_user!
9
+ before_action :set_paper_trail_whodunnit
10
+ before_action :set_snippet_post, only: [:show, :edit, :update, :destroy]
11
+
12
+ # GET /snippet/posts
13
+ def index
14
+ @snippet_posts = Snippet::Post.all
15
+ end
16
+
17
+ # GET /snippet/posts/1
18
+ def show
19
+ end
20
+
21
+ # GET /snippet/posts/new
22
+ def new
23
+ @snippet_post = Snippet::Post.new
24
+ end
25
+
26
+ # GET /snippet/posts/1/edit
27
+ def edit
28
+ end
29
+
30
+ # POST /snippet/posts
31
+ def create
32
+ @snippet_post = Snippet::Post.new(snippet_post_params)
33
+ @snippet_post.user_id = current_user.id
34
+ respond_to do |format|
35
+ if @snippet_post.save
36
+ format.html { redirect_to snippet_posts_path, :flash => { :success => 'Script Snippet has been Added.' }}
37
+ format.json { render :show, status: :created, location: @snippet_post }
38
+ else
39
+ format.html { render :new }
40
+ format.json { render json: @snippet_post.errors, status: :unprocessable_entity }
41
+ end
42
+ end
43
+ end
44
+
45
+ # PATCH/PUT /snippet/posts/1
46
+ def update
47
+ respond_to do |format|
48
+ if @snippet_post.update(snippet_post_params)
49
+ format.html { redirect_to snippet_posts_path, :flash => { :notice => 'Script Snippet Name has been Updated.' }}
50
+ format.json { render :show, status: :ok, location: @snippet_post }
51
+ else
52
+ format.html { render :edit }
53
+ format.json { render json: @snippet_post.errors, status: :unprocessable_entity }
54
+ end
55
+ end
56
+ end
57
+
58
+ # DELETE /snippet/posts/1
59
+ def destroy
60
+ @snippet_post.destroy
61
+ respond_to do |format|
62
+ format.html { redirect_to snippet_posts_path, :flash => { :error => 'Script Snippet and Connections have all been Removed.' }}
63
+ format.json { head :no_content }
64
+ end
65
+ end
66
+
67
+ private
68
+
69
+ # Common Callbacks
70
+ def set_snippet_post
71
+ @snippet_post = Snippet::Post.friendly.find(params[:id])
72
+ end
73
+
74
+ # Whitelist
75
+ def snippet_post_params
76
+ params.require(:snippet_post).permit(:snippet_title, :snippet_code)
77
+ end
78
+
79
+ end
80
+ end
@@ -0,0 +1,76 @@
1
+ require_dependency "phcdevworks_scripts/application_controller"
2
+
3
+ module PhcdevworksScripts
4
+ class Snippet::UrlsController < ApplicationController
5
+
6
+ # Filters & Security
7
+ #include PhcdevworksCore::PhcpluginsHelper
8
+ #before_action :authenticate_user!
9
+ before_action :set_paper_trail_whodunnit
10
+ before_action :set_snippet_url, only: [:show, :edit, :update, :destroy]
11
+
12
+ # INDEX
13
+ def index
14
+ @script_urls = snippet_post.urls.all
15
+ end
16
+
17
+ # SHOW
18
+ def show
19
+ @script_url = snippet_post.urls.find(params[:id])
20
+ end
21
+
22
+ # NEW
23
+ def new
24
+ @script_url = snippet_post.urls.build
25
+ end
26
+
27
+ # EDIT
28
+ def edit
29
+ end
30
+
31
+ # CREATE
32
+ def create
33
+ @script_url = snippet_post.urls.create(script_url_params)
34
+ @script_url.user_id = current_user.id
35
+ if @script_url.save
36
+ redirect_to script_snippet_urls_path, :flash => { :success => 'Script url was successfully created.' }
37
+ else
38
+ render :new
39
+ end
40
+ end
41
+
42
+ # UPDATE
43
+ def update
44
+ @script_snippet = Snippet::Url.find(params[:snippet_id])
45
+ if @script_url.update(script_url_params)
46
+ redirect_to script_snippet_urls_path, :flash => { :success => 'Script url was successfully updated.' }
47
+ else
48
+ render :edit
49
+ end
50
+ end
51
+
52
+ # DELETE
53
+ def destroy
54
+ @script_url = snippet_post.urls.find(params[:id])
55
+ @script_url.destroy
56
+ redirect_to script_snippet_urls_path, :flash => { :error => 'Script url was successfully destroyed.' }
57
+ end
58
+
59
+ private
60
+
61
+ # Common Callbacks
62
+ def set_snippet_url
63
+ @snippet_url = Snippet::Url.friendly.find(params[:id])
64
+ end
65
+
66
+ def snippet_post
67
+ @snippet_post = Snippet::Post.friendly.find(params[:post_id])
68
+ end
69
+
70
+ # Whitelist
71
+ def snippet_url_params
72
+ params.require(:snippet_url).permit(:snippet_url)
73
+ end
74
+
75
+ end
76
+ end
@@ -0,0 +1,4 @@
1
+ module PhcdevworksScripts
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PhcdevworksScripts
2
+ module Script::AuthorsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PhcdevworksScripts
2
+ module Script::ExtensionsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PhcdevworksScripts
2
+ module Script::ListingsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PhcdevworksScripts
2
+ module Script::UrlsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PhcdevworksScripts
2
+ module Script::VersionsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PhcdevworksScripts
2
+ module Snippet::PostsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PhcdevworksScripts
2
+ module Snippet::UrlsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PhcdevworksScripts
2
+ class ApplicationJob < ActiveJob::Base
3
+ end
4
+ end
@@ -0,0 +1,6 @@
1
+ module PhcdevworksScripts
2
+ class ApplicationMailer < ActionMailer::Base
3
+ default from: 'from@example.com'
4
+ layout 'mailer'
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ module PhcdevworksScripts
2
+ class ApplicationRecord < ActiveRecord::Base
3
+ self.abstract_class = true
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module PhcdevworksScripts
2
+ class AuthorVersions < PaperTrail::Version
3
+ self.table_name = :phcdevworks_scripts_author_versions
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module PhcdevworksScripts
2
+ class ExtensionVersions < PaperTrail::Version
3
+ self.table_name = :phcdevworks_scripts_extension_versions
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module PhcdevworksScripts
2
+ class ListingVersions < PaperTrail::Version
3
+ self.table_name = :phcdevworks_scripts_listing_versions
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ module PhcdevworksScripts
2
+ module Script
3
+ def self.table_name_prefix
4
+ 'phcdevworks_scripts_script_'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,33 @@
1
+ module PhcdevworksScripts
2
+ class Script::Author < ApplicationRecord
3
+
4
+ # Clean URL Initialize
5
+ extend FriendlyId
6
+
7
+ # Paper Trail Initialize
8
+ has_paper_trail :class_name => 'PhcdevworksScripts::AuthorVersions'
9
+
10
+ # Relationships
11
+ has_many :listings, class_name: 'PhcdevworksScripts::Script::Listing'
12
+
13
+ # Form Fields Validation
14
+ validates :author_first_name,
15
+ presence: true
16
+
17
+ validates :author_website,
18
+ presence: true,
19
+ format: { with: URI::regexp(%w(http https)), message: "Please follow this URL format http or https://www.**********.com" }
20
+
21
+ validates :author_github,
22
+ presence: true,
23
+ format: { with: URI::regexp(%w(http https)), message: "Please follow this URL format http or https://www.**********.com" }
24
+
25
+ # Clean URL Define
26
+ friendly_id :phc_nice_url_slug, use: [:slugged, :finders]
27
+
28
+ def phc_nice_url_slug
29
+ [:author_first_name, :author_last_name]
30
+ end
31
+
32
+ end
33
+ end
@@ -0,0 +1,32 @@
1
+ module PhcdevworksScripts
2
+ class Script::Extension < ApplicationRecord
3
+
4
+ # Clean URL Initialize
5
+ extend FriendlyId
6
+
7
+ # Paper Trail Initialize
8
+ has_paper_trail :class_name => 'PhcdevworksScripts::ExtensionVersions'
9
+
10
+ # Relationships
11
+ has_many :listings, class_name: 'PhcdevworksScripts::Script::Listing', :through => :urls
12
+ has_many :urls, class_name: 'PhcdevworksScripts::Script::Url'
13
+
14
+ # Form Fields Validation
15
+ validates :script_extension_name,
16
+ presence: true
17
+
18
+ validates :script_extension_description,
19
+ presence: true
20
+
21
+ validates :script_extension,
22
+ presence: true
23
+
24
+ # Clean URL Define
25
+ friendly_id :phc_nice_url_slug, use: [:slugged, :finders]
26
+
27
+ def phc_nice_url_slug
28
+ [:script_extension]
29
+ end
30
+
31
+ end
32
+ end
@@ -0,0 +1,38 @@
1
+ module PhcdevworksScripts
2
+ class Script::Listing < ApplicationRecord
3
+
4
+ # Clean URL Initialize
5
+ extend FriendlyId
6
+
7
+ # Paper Trail Initialize
8
+ has_paper_trail :class_name => 'PhcdevworksScripts::ListingVersions'
9
+
10
+ # Relationships
11
+ has_many :urls, class_name: 'PhcdevworksScripts::Script::Url', :dependent => :destroy
12
+ belongs_to :author, class_name: 'PhcdevworksScripts::Script::Author'
13
+
14
+ # Form Fields Validation
15
+ validates :listing_title,
16
+ presence: true
17
+
18
+ validates :listing_description,
19
+ presence: true
20
+
21
+ validates :listing_script_source,
22
+ format: { with: URI::regexp(%w(http https)), message: "Please follow this URL format http or https://www.**********.com" }
23
+
24
+ validates :listing_script_website,
25
+ format: { with: URI::regexp(%w(http https)), message: "Please follow this URL format http or https://www.**********.com" }
26
+
27
+ validates :listing_script_repo,
28
+ format: { with: URI::regexp(%w(http https)), message: "Please follow this URL format http or https://www.**********.com" }
29
+
30
+ # Clean URL Define
31
+ friendly_id :phc_nice_url_slug, use: [:slugged, :finders]
32
+
33
+ def phc_nice_url_slug
34
+ [:listing_title]
35
+ end
36
+
37
+ end
38
+ end