[Archivesspace_Users_Group] Creating settings for a plugin

Carlos Lemus carlos.lemus at unlv.edu
Thu Oct 15 17:49:05 EDT 2015


Hello Brian,

Thank you for your recommendations, they've helped out a lot. I believe I
am very close to what I want to do and  what I want to achieve, but I've
reached a little snag and I can't find the problem.

I took a little different path that I thought matched a bit closer to what
I wanted to accomplish through your suggestions and tried to mimic the
preferences/defaults. (a new version of my code at
https://github.com/l3mus/ArchivesSpace-authority-project/tree/master/plugin_settings
)

At
https://github.com/l3mus/ArchivesSpace-authority-project/blob/master/plugin_settings/frontend/controllers/plugin_settings_controller.rb#L82
 I am getting a nil class error because it's not in the json and I can't
find the area where it gets added or if there is a step that I'm missing
for it to add that setting. I think it would be beneficial if the settings
could be edited in a per repository/per user basis like the preferences
seem to work.

{"settings"=>{"ead_loc_text"=>"Findind Aid Location: "},
"global"=>#<JSONModel(:plugin_settings) {"id"=>1, "lock_version"=>22,
"json_schema_version"=>1, "repo_id"=>1, "user_uniq"=>"GLOBAL_USER",
"settings"=>#<JSONModel(:settings) {"ead_loc_text"=>"Findind Aid Location:
", "jsonmodel_type"=>"settings"}>, "create_time"=>"2015-10-14T21:45:28Z",
"system_mtime"=>"2015-10-15T20:13:34Z",
"user_mtime"=>"2015-10-15T20:13:34Z", "jsonmodel_type"=>"plugin_settings",
"uri"=>"/repositories/1/plugin_settings/1"}>,
"settings_global"=>{"ead_loc_text"=>"Findind Aid Location: "}}

it's missing that ['global']['repository']['ref'] value, I'm not sure where
it's coming from.

The json above is coming from the following. It's either in here or
somewhere before that that global setting is set.
https://github.com/l3mus/ArchivesSpace-authority-project/blob/master/plugin_settings/backend/model/plugin_settings.rb#L95

I appreciate the help,

Thank you,
Carlos Lemus

On Tue, Oct 13, 2015 at 7:11 AM, Carlos Lemus <carlos.lemus at unlv.edu> wrote:

> Hello Brian,
>
> Thank you for the response.  I will definitely need more values so I'll
> try taking a look at the defaults controller.
> I'll let you know if I get something working.
>
> Thank you,
> Carlos Lemus
> On Oct 13, 2015 6:31 AM, "Brian Hoffman" <brianjhoffman at gmail.com> wrote:
>
>> Hi Carlos,
>>
>> I think you might want to look at the defaults controller and model, as
>> well as the sequence controller and model. If you really just need a single
>> string value, you may want to dispense with the JSONModel stuff completely
>> and just have your backend endpoint take a single parameter and update the
>> model.
>>
>> You can look at the DefaultValues model for an example of how to just
>> have 1 row in the table.
>>
>> For the frontend, you’re probably better off not using the handle_crud
>> helper if you don’t use JSONModel, and just have the controller prepare and
>> send an update request to the backend. The default_values example might
>> help here too:
>>
>> https://github.com/archivesspace/archivesspace/blob/master/frontend/app/models/default_values.rb
>>
>> Brian
>>
>>
>>
>>
>>
>>
>> On Oct 12, 2015, at 5:54 PM, Carlos Lemus <carlos.lemus at unlv.edu> wrote:
>>
>> Hello,
>>
>> What I want to accomplish is to create a form, possibly in the
>> system_menu_controller, that will allow me to create certain
>> fields/settings with user-input values, save those values, and then let me
>> access them at different points in my plugin.
>>
>> What I've tried so far:
>>
>> I've tried to mimic a bit of the accessions_summary_reports and the
>> hello_world plugin. However, these seem both to be able to continuously
>> create new objects in the schema database pertaining to it, but I just want
>> to have one empty field for the settings that can just be updated instead
>> of having to create multiple settings. I have tried something similar with
>> the defaults, but I don't think I implemented them correctly.
>>
>> Here is a github link to my trial
>>
>> https://github.com/l3mus/ArchivesSpace-authority-project/tree/master/plugin_settings
>>
>> I hope that was clear enough, please let me know if I need to clarify
>> more.
>> I'm just looking for some direction on what I could be doing. How could I
>> approach doing this? I'm I looking in the right direction? Or is there a
>> better example that can help me form this?
>>
>> Thank you,
>>
>> Carlos Lemus
>> _______________________________________________
>> Archivesspace_Users_Group mailing list
>> Archivesspace_Users_Group at lyralists.lyrasis.org
>> http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lyralists.lyrasis.org/pipermail/archivesspace_users_group/attachments/20151015/b689b105/attachment.html>


More information about the Archivesspace_Users_Group mailing list