RapidApp

 view release on metacpan or  search on metacpan

lib/RapidApp/CoreSchema/Result/NavtreeNode.pm  view on Meta::CPAN

package RapidApp::CoreSchema::Result::NavtreeNode;

use strict;
use warnings;

use Moose;
use MooseX::NonMoose;
use namespace::autoclean;
extends 'DBIx::Class::Core';

__PACKAGE__->table("navtree_node");

__PACKAGE__->add_columns(
  "id",
  {
    data_type => "integer",
    extra => { unsigned => 1 },
    is_auto_increment => 1,
    is_nullable => 0,
  },
  "pid",
  {
    data_type => "integer",
    default_value => 0,
    extra => { unsigned => 1 },
    is_foreign_key => 1,
    is_nullable => 1,
  },
  "text",
  { data_type => "varchar", is_nullable => 0, size => 255 },
  "iconcls",
  { data_type => "varchar", is_nullable => 1, size => 255 },
  "expanded",
  { data_type => "tinyint", is_nullable => 1 },
  "ordering",
  { data_type => "integer", default_value => 500000, is_nullable => 0 },
);
__PACKAGE__->set_primary_key("id");


__PACKAGE__->belongs_to(
  "pid",
  "RapidApp::CoreSchema::Result::NavtreeNode",
  { id => "pid" },
  {
    is_deferrable => 1,
    join_type     => "LEFT",
    on_delete     => "CASCADE",
    on_update     => "CASCADE",
  },
);


__PACKAGE__->has_many(
  "navtree_nodes",
  "RapidApp::CoreSchema::Result::NavtreeNode",
  { "foreign.pid" => "self.id" },
  { cascade_copy => 0, cascade_delete => 0 },
);


__PACKAGE__->has_many(
  "navtree_node_to_roles",
  "RapidApp::CoreSchema::Result::NavtreeNodeToRole",
  { "foreign.node_id" => "self.id" },
  { cascade_copy => 0, cascade_delete => 0 },
);


__PACKAGE__->has_many(
  "saved_states",
  "RapidApp::CoreSchema::Result::SavedState",
  { "foreign.node_id" => "self.id" },
  { cascade_copy => 0, cascade_delete => 0 },
);

use RapidApp::Util qw(:all);

sub update {
  my $self = shift;

  # Fail-safe: prevent changes to the 'DUMMY ROOT NODE' (id 0)
  if ($self->get_column('id') == 0) {
    #warn RED.BOLD "Tried to call update() on the DUMMY ROOT NODE." . CLEAR;
    # Updated: The 'Organize Tree' section is known to try to update the dummy root 
    # node which is a harmless side-effect which we are just silently ignoring.
    # TODO: investigate the real reason and fix properly
    return undef;
  }

  return $self->next::method(@_);
}


__PACKAGE__->load_components('+RapidApp::DBIC::Component::TableSpec');
__PACKAGE__->TableSpec_m2m( roles => 'navtree_node_to_roles', 'role' );
__PACKAGE__->apply_TableSpec;

__PACKAGE__->TableSpec_set_conf( 
	title => 'Navtree Node',
	title_multi => 'Navtree Nodes',
	iconCls => 'ra-icon-folder',
	multiIconCls => 'ra-icon-folders',
	display_column => 'text'
);


__PACKAGE__->TableSpec_set_conf('column_properties_ordered', 

	pid => { no_column => \1, no_multifilter => \1, no_quick_search => \1 },
	navtree_node_to_roles => { no_column => \1, no_multifilter => \1, no_quick_search => \1 },
  
  id => {
    header => 'Id',
    width  => 55,
    allow_edit => \0,
    allow_add  => \0
  },

	text => {
		header => 'Text',
		width	=> 200,
		allow_edit => \0
	},
	
	iconcls => {
		header => 'Icon Cls',
		width	=> 150,
		#allow_edit => \0,
		hidden => \1,
    editor => { xtype => 'ra-all-icon-assets-combo', }
	},
	
	expanded => {



( run in 0.818 second using v1.01-cache-2.11-cpan-63c85eba8c4 )