Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local function setup(prefs)
- return function (metadata)
- local trimmedPath=strutil.upToLastOccurrenceOf(metadata.Pathname,'/') -- Trims lowest folder level.
- local parentFolder=strutil.fromLastOccurrenceOf(metadata.Pathname,'/') -- Gets parent folder's string.
- local grandParentFolder=strutil.fromLastOccurrenceOf(trimmedPath,'/') -- Gets grandparent folder's string.
- local changedMetadata={}
- if prefs.action=='COPY' then
- changedMetadata[prefs.destfield1]=parentFolder
- changedMetadata[prefs.destfield2]=grandParentFolder
- elseif prefs.action=='PREPEND' then
- changedMetadata[prefs.destfield1]=parentFolder..(metadata[prefs.destfield1] or '')
- changedMetadata[prefs.destfield2]=grandParentFolder..(metadata[prefs.destfield2] or '')
- elseif prefs.action=='APPEND' then
- changedMetadata[prefs.destfield1]=(metadata[prefs.destfield1] or '')..parentFolder
- changedMetadata[prefs.destfield2]=(metadata[prefs.destfield2] or '')..grandParentFolder
- end
- return changedMetadata
- end
- end
- function buildUI()
- local builder=smbuilder()
- local c=builder:createView('{"text":"COPY MULTILEVEL FOLDER NAME","bounds" : "0,0,parent.width,120"}')
- assert(c,"unable to create view object")
- -- Parent folder's UI
- assert(builder:create('combo',{["id"] = "action", ["options"] = {"COPY","APPEND","PREPEND"}, ["bounds"]="25,42,150,67",["text"]="COPY"}))
- assert(builder:create('label','{ "bounds":"155,42,280,67","text":"parent folder to", "align" : "left"}'))
- assert(builder:create('combo','{"id" : "destfield1", "options" : "stringFields", "bounds":"285,42,415,67","text":"SubCategory"}'))
- -- Grandparent folder's UI
- assert(builder:create('combo',{["id"] = "action", ["options"] = {"COPY","APPEND","PREPEND"}, ["bounds"]="25,72,150,97",["text"]="COPY"}))
- assert(builder:create('label','{ "bounds":"155,72,330,97","text":"grand parent folder to", "align" : "left"}'))
- assert(builder:create('combo','{"id" : "destfield2", "options" : "stringFields", "bounds":"335,72,465,97","text":"Show"}'))
- builder:register(c,setup)
- -- Now inject this
- return c
- end
- --[[ ========================================================== ]]--
- return buildUI
Add Comment
Please, Sign In to add comment