pass in settings via query string parameters
This commit is contained in:
@@ -2,20 +2,34 @@ defmodule LabelmakerWeb.Label do
|
|||||||
use LabelmakerWeb, :live_view
|
use LabelmakerWeb, :live_view
|
||||||
|
|
||||||
@label_dir Path.join(:code.priv_dir(:labelmaker), "static/labels")
|
@label_dir Path.join(:code.priv_dir(:labelmaker), "static/labels")
|
||||||
|
File.mkdir_p!(@label_dir)
|
||||||
|
|
||||||
def mount(%{"label" => label}, _session, socket) do
|
@defaults %{
|
||||||
File.mkdir_p!(@label_dir)
|
"label" => "Labelmaker",
|
||||||
|
"font" => "Helvetica",
|
||||||
|
"color" => "black",
|
||||||
|
"size" => "24"
|
||||||
|
}
|
||||||
|
|
||||||
filename = "#{label}.png"
|
@permitted_keys Map.keys(@defaults)
|
||||||
|
|
||||||
|
def mount(params, _session, socket) do
|
||||||
|
options =
|
||||||
|
@defaults
|
||||||
|
|> Map.merge(params)
|
||||||
|
|> Map.take(@permitted_keys)
|
||||||
|
|
||||||
|
IO.inspect(options)
|
||||||
|
filename = "#{options["label"]}.png"
|
||||||
filepath = Path.join(@label_dir, filename)
|
filepath = Path.join(@label_dir, filename)
|
||||||
|
|
||||||
unless File.exists?(filepath) do
|
unless File.exists?(filepath) do
|
||||||
generate_label_image(label, filepath)
|
generate_label_image(options, filepath)
|
||||||
end
|
end
|
||||||
|
|
||||||
{:ok,
|
{:ok,
|
||||||
assign(socket,
|
assign(socket,
|
||||||
label: label,
|
label: options["label"],
|
||||||
image_path: ~p"/labels/#{filename}"
|
image_path: ~p"/labels/#{filename}"
|
||||||
)}
|
)}
|
||||||
end
|
end
|
||||||
@@ -29,17 +43,17 @@ defmodule LabelmakerWeb.Label do
|
|||||||
"""
|
"""
|
||||||
end
|
end
|
||||||
|
|
||||||
defp generate_label_image(label, filepath) do
|
defp generate_label_image(options, filepath) do
|
||||||
args = [
|
args = [
|
||||||
"-background",
|
"-background",
|
||||||
"none",
|
"none",
|
||||||
"-fill",
|
"-fill",
|
||||||
"black",
|
options["color"],
|
||||||
"-pointsize",
|
"-pointsize",
|
||||||
"24",
|
options["size"],
|
||||||
"-font",
|
"-font",
|
||||||
"Comic-Sans-MS",
|
options["font"],
|
||||||
"label:#{label}",
|
"label:#{options["label"]}",
|
||||||
filepath
|
filepath
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -50,4 +64,8 @@ defmodule LabelmakerWeb.Label do
|
|||||||
# File.rm(tmp_file)
|
# File.rm(tmp_file)
|
||||||
# Base.encode64(png_binary)
|
# Base.encode64(png_binary)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# defp get_image_settings(socket) do
|
||||||
|
#
|
||||||
|
# end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user