app/models/dc_menu.rb in drg_cms-0.4.39 vs app/models/dc_menu.rb in drg_cms-0.4.53

- old
+ new

@@ -18,10 +18,18 @@ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #++ + +######################################################################### +# Mongoid::Document model for dc_menus collection. +# +# Default menu system for DRG CMS. Model recursively embeds DcMenuItem documents +# which (theoretically) results in infinite level of sub menus. In practice +# reasonable maximum level of 4 is advised. +######################################################################### class DcMenu include Mongoid::Document include Mongoid::Timestamps field :name, type: String @@ -39,18 +47,27 @@ validates :name, :length => { :minimum => 4 } validates :name, uniqueness: true validates_length_of :description, minimum: 10 ####################################################################### -# +# Will return all top level menu items of specified menu. Used in DcPage document for +# selecting top level selected menu, when document displayed in browser. +# +# Called from DcApplicationHelper :dc_choices4_menu: method. +# +# Parameters: +# [Site] DcSite document. Site for which menu belongs to. If site is not specified +# all current menus in dc_menus collection will be returned. +# +# Returns: +# Array. Of choices prepared for select input field. ####################################################################### def self.choices4_menu(site) rez = [] menus = (site.menu_name.blank? ? all : where(name: site.menu_name)).to_a menus.each do |menu| rez << [menu.name, nil] - menu.dc_menu_items.where(active: true).order_by(:order => 1).each do |menu_item| -# next unless menu_item.active + menu.dc_menu_items.where(active: true).order_by(order: 1).each do |menu_item| rez << ['-- ' + menu_item.caption, menu_item._id] end end rez end