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