class Zone
define_creatable
define_editor :zone_edit
define_editor_field({:name=>"vtag", :filter=>:filt_to_tag, :type=>:vtag})
define_editor_field({:name=>"name", :filter=>:filt_none})
define_editor_field({:name=>"access", :filter=>:filt_none,
:proc_fun=>proc do |ed, ch, obj, arg|
if obj.can_access?(arg)
obj.remove_access(arg)
ch.view "Security access removed for #{ch.peek(arg)}"+ENDL
else
obj.add_access(arg)
ch.view "Security access added for #{ch.peek(arg)}"+ENDL
end
log :info, "Security access list changed for #{obj.name}"
end,
:display=>proc do |obj|
["#{mxptag('send access prompt')}#R[#Waccess#R]:#{mxptag('/send')} #G#{obj.access_list}#n"]
end
})
define_editor_field({:name=>"notes",:arg_type=>:arg_none, :filter=>:filt_none,
:proc_fun=>proc do |ed, ch, obj, arg|
ch.editing.unshift(obj.devnotes)
ch.view "Editing developer notes." + ENDL
end,
:display=>proc do |obj|
["#{mxptag('send notes')}#R[#Wnotes#R]:#{mxptag('/send')}","#n"+obj.devnotes,"----"]
end
})
def self.create ch
area = self.new
area.namespace = nil
area.assign_tag Tag.gen_generic_tag(area), nil
return area
end
end