formstrap 0.4.8 → 0.4.10
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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/formstrap/vendor/redactor/index.js +1 -0
- data/app/assets/javascripts/formstrap/vendor/redactor/plugins/ai.js +1053 -0
- data/app/assets/javascripts/formstrap/vendor/redactor/plugins/linkstyles.js +2 -2
- data/app/assets/javascripts/formstrap.js +851 -2
- data/app/controllers/formstrap/ai_controller.rb +22 -0
- data/app/models/formstrap/redactor_view.rb +26 -3
- data/config/locales/de.yml +6 -1
- data/config/locales/en.yml +6 -1
- data/config/locales/formstrap/de.yml +4 -0
- data/config/locales/formstrap/en.yml +4 -0
- data/config/locales/formstrap/fr.yml +4 -0
- data/config/locales/formstrap/nl.yml +4 -0
- data/config/locales/fr.yml +6 -1
- data/config/locales/nl.yml +6 -1
- data/config/routes.rb +4 -0
- data/lib/formstrap/configuration.rb +11 -0
- data/lib/formstrap/version.rb +1 -1
- data/lib/formstrap.rb +9 -0
- data/package.json +1 -1
- metadata +5 -2
@@ -0,0 +1,22 @@
|
|
1
|
+
class Formstrap::AiController < FormstrapController
|
2
|
+
require "openai"
|
3
|
+
skip_before_action :verify_authenticity_token
|
4
|
+
|
5
|
+
def create
|
6
|
+
client = OpenAI::Client.new(
|
7
|
+
access_token: Formstrap.configuration.open_ai_key
|
8
|
+
)
|
9
|
+
|
10
|
+
data = JSON.parse(params["data"])
|
11
|
+
|
12
|
+
response = client.chat(
|
13
|
+
parameters: {
|
14
|
+
model: "gpt-4o",
|
15
|
+
messages: data["messages"],
|
16
|
+
temperature: 0.7
|
17
|
+
}
|
18
|
+
)
|
19
|
+
|
20
|
+
render json: response.to_json
|
21
|
+
end
|
22
|
+
end
|
@@ -16,7 +16,8 @@ module Formstrap
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def redactor_options
|
19
|
-
default_redactor_options.deep_merge(
|
19
|
+
ro = ai ? default_redactor_options.deep_merge(ai_redactor_options) : default_redactor_options
|
20
|
+
ro.deep_merge(redactor || {})
|
20
21
|
end
|
21
22
|
|
22
23
|
def default_redactor_options
|
@@ -46,10 +47,32 @@ module Formstrap
|
|
46
47
|
# Options in toolbar on the right
|
47
48
|
extrabar: %w[],
|
48
49
|
# Options in toolbar on the left
|
49
|
-
toolbar: %w[format bold italic deleted list table link html]
|
50
|
+
toolbar: %w[format bold italic deleted list table link html ai-tools]
|
50
51
|
},
|
51
|
-
plugins: %w[emoji linkstyles]
|
52
|
+
plugins: %w[emoji linkstyles ai]
|
52
53
|
}.delete_if { |k, v| v.nil? }
|
53
54
|
end
|
55
|
+
|
56
|
+
def ai
|
57
|
+
@ai.present? ? @ai : Formstrap.configuration.ai
|
58
|
+
end
|
59
|
+
|
60
|
+
def ai_redactor_options
|
61
|
+
{
|
62
|
+
ai: {
|
63
|
+
items: {
|
64
|
+
set: true,
|
65
|
+
fix: {title: I18n.t("redactor.ai.fix"), command: "ai.set", params: {prompt: "You are a professional copy writer. Each command requires a best effort result. Don’t ask questions, only return the improved text. Fix any grammatical or spelling mistakes in the language of the text that is provided."}},
|
66
|
+
translate: {title: I18n.t("redactor.ai.translate"), command: "ai.popupTranslate"}
|
67
|
+
},
|
68
|
+
translate: I18n.available_locales.map { |locale| I18n.t("languages.#{locale}") },
|
69
|
+
text: {
|
70
|
+
url: "/formstrap/ai",
|
71
|
+
model: "gpt-4o",
|
72
|
+
stream: false
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}
|
76
|
+
end
|
54
77
|
end
|
55
78
|
end
|
data/config/locales/de.yml
CHANGED
data/config/locales/en.yml
CHANGED
data/config/locales/fr.yml
CHANGED
data/config/locales/nl.yml
CHANGED
data/config/routes.rb
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
Rails.application.routes.draw do
|
4
4
|
namespace(:formstrap) do
|
5
|
+
# AI
|
6
|
+
post "ai", to: "ai#create"
|
7
|
+
|
8
|
+
# Media
|
5
9
|
get "media", to: "media#index", as: :media
|
6
10
|
post "media", to: "media#create", as: :new_media
|
7
11
|
get "media/thumbnail/:id", to: "media#thumbnail", as: :media_item_thumbnail
|
data/lib/formstrap/version.rb
CHANGED
data/lib/formstrap.rb
CHANGED
@@ -1,6 +1,15 @@
|
|
1
1
|
require_relative "formstrap/version"
|
2
2
|
require_relative "formstrap/engine"
|
3
|
+
require_relative "formstrap/configuration"
|
3
4
|
|
4
5
|
# Formstrap
|
5
6
|
require "formstrap/form_builder"
|
6
7
|
require "formstrap/form_helper"
|
8
|
+
|
9
|
+
module Formstrap
|
10
|
+
mattr_accessor :configuration, default: Formstrap::Configuration.new
|
11
|
+
|
12
|
+
def self.configure
|
13
|
+
yield configuration if block_given?
|
14
|
+
end
|
15
|
+
end
|
data/package.json
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: formstrap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jef Vlamings
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: An extensive Bootstrap form library to power your Ruby On Rails application.
|
14
14
|
email:
|
@@ -57,6 +57,7 @@ files:
|
|
57
57
|
- app/assets/javascripts/formstrap/vendor/redactor/i18n/fr.js
|
58
58
|
- app/assets/javascripts/formstrap/vendor/redactor/i18n/nl.js
|
59
59
|
- app/assets/javascripts/formstrap/vendor/redactor/index.js
|
60
|
+
- app/assets/javascripts/formstrap/vendor/redactor/plugins/ai.js
|
60
61
|
- app/assets/javascripts/formstrap/vendor/redactor/plugins/emoji.js
|
61
62
|
- app/assets/javascripts/formstrap/vendor/redactor/plugins/linkstyles.js
|
62
63
|
- app/assets/stylesheets/formstrap.css
|
@@ -79,6 +80,7 @@ files:
|
|
79
80
|
- app/assets/stylesheets/formstrap/vendor/overrides/redactor.scss
|
80
81
|
- app/assets/stylesheets/formstrap/vendor/tom-select-bootstrap.scss
|
81
82
|
- app/controllers/concerns/formstrap/pagination.rb
|
83
|
+
- app/controllers/formstrap/ai_controller.rb
|
82
84
|
- app/controllers/formstrap/media_controller.rb
|
83
85
|
- app/controllers/formstrap_controller.rb
|
84
86
|
- app/helpers/application_helper.rb
|
@@ -189,6 +191,7 @@ files:
|
|
189
191
|
- formstrap.gemspec
|
190
192
|
- formstrap.iml
|
191
193
|
- lib/formstrap.rb
|
194
|
+
- lib/formstrap/configuration.rb
|
192
195
|
- lib/formstrap/engine.rb
|
193
196
|
- lib/formstrap/form_builder.rb
|
194
197
|
- lib/formstrap/form_helper.rb
|