name:finSaveRecordsForm dis:Save Records id:@1d722322-7c67324e appFormOn:folio batchRecords folderPath:Create Batch Records func helpDoc:/wiki/display/FINStack/Create+Batch+Records myFunc mod:2015-08-28T23:10:00.879Z src: () => do body: [ {name: "filt", editorType: "filter", prompt: "Records to be saved"}, {name: "chkbx", editorType: "checkbox", label: "Use Unique NavName"}, {name: "cancelButton", editorType: "button", label: "Cancel", controlBar: true}, {name: "applyButton", editorType: "button", label: "Save", controlBar: true} ] { "dis": "Save Records Template", "name": "finSaveRecordsForm", "body": body.toJSON, "cancelButton": "\$cancelButton", "commitButton": "\$applyButton", "commitAction": "finSaveRecordsSeparate(\$filt,\$chkbx)", "helpDoc": "/wiki/display/J2/Create+Batch+Records", "finForm": marker() }.toGrid.addMeta({formExecute: marker()}) end --- name:finSaveRecords id:@1d6a0b4b-9c447823 batchRecords func myFunc mod:2015-08-28T21:07:40.548Z src: (filt, type) => do same: (path, new) => do orig: ioReadZinc(path) good: false good2: true stat: false orig.each x=> do good2 = true x.each y=> do good = false new.each g=> if(y == g) good = true if(not good) good2 = false end if(good2) stat = true end echo(stat) return stat //return false if different end name: "io/"+type+"Records.zinc" results: readAll(parseFilter(filt)) rez: "" navs: read(navMeta)->equipPath.split("/").remove(0).map(r=> r.capitalize) try do //append ioCopy(name.parseUri,`io/SaveRecordsTemp.zinc`) ioDelete(`io/SaveRecordsTemp.zinc`) //check that exists results.each result=> do if(type == "Point") rez = rez.remove("curVal").remove("curStatus").remove("mod") else if(navs.index(type) != null) rez = result.remove("mod") if(not same(name.parseUri,rez)) do combined: ioReadZinc(name.parseUri).addRow(rez) combined.toGrid.ioWriteZinc(name.parseUri) end end end catch do //make new zinc if previous not exist ioDelete(`io/SaveRecordsTemp.zinc`) echo("create non exist") result: [] results.each x=> do if(type == "Point") result = result.add(x.remove("curVal").remove("curStatus").remove("mod")) else if(navs.index(type) != null) result = result.add(x.remove("mod")) end result.toGrid.ioWriteZinc(name.parseUri) end end //readAll(point).unique("navName") //on folio form, make option to use unique navName so 100 "room setpoints" aren't saved, just one --- name:finSaveEquipRecordsForm dis:Save Equip Records id:@1d6a0b4b-32bee9ef batchRecords folderPath:Create Batch Records formOn:equip func helpDoc:/wiki/display/FINStack/Create+Batch+Records myFunc mod:2015-08-28T23:10:00.879Z src: (id: false, selectedDicts: false) => do selectedIds: [] filtstr: "" if(not isBool(selectedDicts)) do selectedIds = selectedDicts.map(r => "@" + r->id) selectedIds.each x=> filtstr = filtstr+"id=="+x+" or " filtstr = filtstr[0 .. filtstr.size-5] end body: [ {name: "list", editorType: "list", prompt: "Equips to be saved", listType: "radio", dataProvider: filtstr, labelField: "dis"}, {name: "cancelButton", editorType: "button", label: "Cancel", controlBar: true}, {name: "applyButton", editorType: "button", label: "Save", controlBar: true} ] { "dis": "Save Equip Template", "name": "finSaveEquipRecordsForm", "body": body.toJSON, "cancelButton": "\$cancelButton", "commitButton": "\$applyButton", "commitAction": "finSaveRecords("+filtstr.toAxonCode()+",\"Equip\")", "helpDoc": "/wiki/display/J2/Create+Batch+Records", "finForm": marker() }.toGrid.addMeta({formExecute: marker()}) end --- name:finSaveFloorRecordsForm dis:Save Floor Records id:@1d72273c-a839cad3 batchRecords folderPath:Create Batch Records formOn:floor func helpDoc:/wiki/display/FINStack/Create+Batch+Records myFunc mod:2015-08-28T23:10:00.879Z src: (id: false, selectedDicts: false) => do selectedIds: [] filtstr: "" if(not isBool(selectedDicts)) do selectedIds = selectedDicts.map(r => "@" + r->id) selectedIds.each x=> filtstr = filtstr+"id=="+x+" or " filtstr = filtstr[0 .. filtstr.size-5] end body: [ {name: "list", editorType: "list", prompt: "Floors to be saved", listType: "radio", dataProvider: filtstr, labelField: "dis"}, {name: "cancelButton", editorType: "button", label: "Cancel", controlBar: true}, {name: "applyButton", editorType: "button", label: "Save", controlBar: true} ] { "dis": "Save Floor Template", "name": "finSaveFloorRecordsForm", "body": body.toJSON, "cancelButton": "\$cancelButton", "commitButton": "\$applyButton", "commitAction": "finSaveRecords("+filtstr.toAxonCode()+",\"Floor\")", "helpDoc": "/wiki/display/J2/Create+Batch+Records", "finForm": marker() }.toGrid.addMeta({formExecute: marker()}) end --- name:finSaveRecordsSeparate id:@1d72244c-23a022c1 batchRecords func myFunc mod:2015-08-28T21:11:25.826Z src: (filter,useUnique) => do navs: read(navMeta)->equipPath.split("/").remove(0) //return nav type that something is, null if not type: (rec) => do val: null navs.each nav=> do try do read(parseFilter("id=="+rec+" and "+nav)) val = nav end catch "" end return val end //create list of recs recs: [] if(useUnique) results: readAll(parseFilter(filter)).unique("navName") else results: readAll(parseFilter(filter)) results.each r=> recs = recs.add(r->id) //create dict of lists w/ keys being navs navDict: {} navs.each r=> navDict = navDict.set(r,"\"\"") //populate lists based on type t: "" recs.each x=> do t = type(x) if(t != null) navDict = navDict.set(t, navDict.get(t)+" or id=="+x) end //throw to save function navDict.each((x,y)=> if(x != "\"\"") finSaveRecords(x,y.capitalize)) end --- name:finSavePointRecordsForm dis:Save Point Records id:@1d6a0b4b-cb2e50fb batchRecords folderPath:Create Batch Records formOn:point func helpDoc:/wiki/display/FINStack/Create+Batch+Records myFunc mod:2015-08-28T23:10:00.879Z src: (id: false, selectedDicts: false) => do selectedIds: [] filtstr: "" if(not isBool(selectedDicts)) do selectedIds = selectedDicts.map(r => "@" + r->id) selectedIds.each x=> filtstr = filtstr+"id=="+x+" or " filtstr = filtstr[0 .. filtstr.size-5] end body: [ {name: "list", editorType: "list", prompt: "Points to be saved", listType: "radio", dataProvider: filtstr, labelField: "dis"}, {name: "cancelButton", editorType: "button", label: "Cancel", controlBar: true}, {name: "applyButton", editorType: "button", label: "Save", controlBar: true} ] { "dis": "Save Point Template", "name": "finSavePointRecordsForm", "body": body.toJSON, "cancelButton": "\$cancelButton", "commitButton": "\$applyButton", "commitAction": "finSaveRecords("+filtstr.toAxonCode()+",\"Point\")", "helpDoc": "/wiki/display/J2/Create+Batch+Records", "finForm": marker() }.toGrid.addMeta({formExecute: marker()}) end --- name:finSaveSiteRecordsForm dis:Save Site Records id:@1d722738-71062ada batchRecords folderPath:Create Batch Records formOn:site func helpDoc:/wiki/display/FINStack/Create+Batch+Records myFunc mod:2015-08-28T23:10:00.879Z src: (id: false, selectedDicts: false) => do selectedIds: [] filtstr: "" if(not isBool(selectedDicts)) do selectedIds = selectedDicts.map(r => "@" + r->id) selectedIds.each x=> filtstr = filtstr+"id=="+x+" or " filtstr = filtstr[0 .. filtstr.size-5] end body: [ {name: "list", editorType: "list", prompt: "Sites to be saved", listType: "radio", dataProvider: filtstr, labelField: "dis"}, {name: "cancelButton", editorType: "button", label: "Cancel", controlBar: true}, {name: "applyButton", editorType: "button", label: "Save", controlBar: true} ] { "dis": "Save Site Template", "name": "finSaveSiteRecordsForm", "body": body.toJSON, "cancelButton": "\$cancelButton", "commitButton": "\$applyButton", "commitAction": "finSaveRecords("+filtstr.toAxonCode()+",\"Site\")", "helpDoc": "/wiki/display/J2/Create+Batch+Records", "finForm": marker() }.toGrid.addMeta({formExecute: marker()}) end