Line # Revision Author
1 305 ahitrov package users::Phone;
2
3 use base "Contenido::Document";
4 use Contenido::Globals;
5
6 sub extra_properties
7 {
8 return (
9 { 'attr' => 'name', 'type' => 'string', 'rusname' => 'Телефон (только номер)' },
10 { 'attr' => 'status', 'type' => 'status', 'rusname' => 'Статус e-mail-адреса',
11 'cases' => [
12 [0, 'Не активен'],
13 [1, 'Подтвержден'],
14 [3, 'Потерян / заблокирован'],
15 ],
16 },
17 { 'attr' => 'name_format', 'type' => 'string', 'rusname' => 'Телефон отформатированный' },
18 { 'attr' => 'name_orig', 'type' => 'string', 'rusname' => 'Телефон (ввод пользователя)' },
19 # { 'attr' => 'login', 'type' => 'string', 'rusname' => 'Login' },
20 # { 'attr' => 'passwd', 'type' => 'string', 'rusname' => 'Password' },
21 )
22 }
23
24 420 ahitrov sub get_code {
25 my $self = shift;
26 if ( $self->name_format =~ /\((\d+)\)/ ) {
27 return $1;
28 }
29 }
30
31 sub get_number {
32 my $self = shift;
33 my $number = $self->name_format;
34 for ( $number ) {
35 423 ahitrov s/^[\+\d+]\(/\(/;
36 420 ahitrov s/\(\d+\)//;
37 s/\D//g;
38 }
39 return $number;
40 }
41
42 305 ahitrov sub class_name
43 {
44 return 'Телефон';
45 }
46
47 sub class_description
48 {
49 return 'Телефон';
50 }
51
52 sub search_fields
53 {
54 return ('name');
55 }
56
57 sub class_table
58 {
59 return 'users::SQL::CredentialsTable';
60 }
61
62 sub contenido_status_style
63 {
64 my $self = shift;
65 373 ahitrov if ( $self->main == 1 || $self->status == 2 ) {
66 305 ahitrov return 'color:green;';
67 } elsif ( $self->status == 3 ) {
68 373 ahitrov return 'color:black;';
69 305 ahitrov }
70 }
71
72 sub pre_store
73 {
74 my $self = shift;
75
76 my $default_section = $project->s_alias->{user_phones} if ref $project->s_alias eq 'HASH' && exists $project->s_alias->{user_phones};
77 if ( $default_section && !$self->{sections} ) {
78 $self->{sections} = $default_section;
79 }
80
81 return 1;
82 }
83 1;