diff --git a/app/controllers/settings_controller.rb b/app/controllers/settings_controller.rb index fb6edc786..98325a949 100644 --- a/app/controllers/settings_controller.rb +++ b/app/controllers/settings_controller.rb @@ -17,6 +17,9 @@ class SettingsController < ApplicationController SiteSettings.model_tags_custom_stop_words = params[:model_tags][:custom_stop_words].split SiteSettings.model_tags_auto_tag_new = params[:model_tags][:auto_tag_new] end + if params[:renderer] + @user.renderer_settings["grid_width"] = params[:renderer][:grid_width].to_i + end @user.save! redirect_to user_settings_path(@user) end diff --git a/app/views/application/_object_preview.html.erb b/app/views/application/_object_preview.html.erb index c2ded2f8a..c0bdb7c7e 100644 --- a/app/views/application/_object_preview.html.erb +++ b/app/views/application/_object_preview.html.erb @@ -7,8 +7,8 @@ data-preview-url="<%= library_model_model_file_path(library, model, file, file.file_format.to_sym)%>" data-format="<%= file.file_format %>" data-y-up="<%= file.y_up %>" - data-grid-size-x="<%= ENV.fetch("GRID_SIZE", 200)%>" - data-grid-size-z="<%= ENV.fetch("GRID_SIZE", 200)%>" + data-grid-size-x="<%= current_user.renderer_settings["grid_width"] %>" + data-grid-size-z="<%= current_user.renderer_settings["grid_width"] %>" > diff --git a/app/views/settings/show.html.erb b/app/views/settings/show.html.erb index 7e60576c5..ebd70746d 100644 --- a/app/views/settings/show.html.erb +++ b/app/views/settings/show.html.erb @@ -22,6 +22,17 @@ <%= form.number_field "pagination[per_page]", value: @user.pagination_settings["per_page"], in: 1..100, class: 'form-control' %> +

Renderer

+ +

+ Customise settings for 3d rendered previews. +

+ +
+ <%= form.label "Ground plane size (mm)", for: "renderer[grid_width]", class: "form-label"%> + <%= form.number_field "renderer[grid_width]", value: @user.renderer_settings["grid_width"], class: "form-control" %> +
+ <% if current_user.admin? %>

Tagging

diff --git a/db/migrate/20221128165903_add_renderer_settings_to_users.rb b/db/migrate/20221128165903_add_renderer_settings_to_users.rb new file mode 100644 index 000000000..9920307c2 --- /dev/null +++ b/db/migrate/20221128165903_add_renderer_settings_to_users.rb @@ -0,0 +1,5 @@ +class AddRendererSettingsToUsers < ActiveRecord::Migration[7.0] + def change + add_column :users, :renderer_settings, :json, default: {grid_width: 200, grid_depth: 200} + end +end diff --git a/db/schema.rb b/db/schema.rb index aedfbe86f..edc8f9beb 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2022_07_02_202932) do +ActiveRecord::Schema[7.0].define(version: 2022_11_28_165903) do create_table "creators", force: :cascade do |t| t.string "name", null: false t.datetime "created_at", null: false @@ -120,6 +120,7 @@ ActiveRecord::Schema[7.0].define(version: 2022_07_02_202932) do t.string "username", null: false t.boolean "admin", default: false t.json "pagination_settings", default: {"models"=>true, "creators"=>true, "per_page"=>12} + t.json "renderer_settings", default: {"grid_width"=>200, "grid_depth"=>200} t.index ["email"], name: "index_users_on_email", unique: true t.index ["username"], name: "index_users_on_username", unique: true end diff --git a/docker-compose.example.yml b/docker-compose.example.yml index d17874e11..bb96bd59b 100644 --- a/docker-compose.example.yml +++ b/docker-compose.example.yml @@ -10,7 +10,6 @@ services: environment: DATABASE_URL: postgresql://van_dam:password@db/van_dam?pool=5 SECRET_KEY_BASE: a_nice_long_random_string - GRID_SIZE: 260 # RAILS_RELATIVE_URL_ROOT: /vandam Sets the root of the app to /vandam useful for reverse proxies with nginx depends_on: - db @@ -31,4 +30,3 @@ services: volumes: db_data: - diff --git a/env.example b/env.example index e33878c02..e69de29bb 100644 --- a/env.example +++ b/env.example @@ -1 +0,0 @@ -GRID_SIZE: 260